From 7f03463902855210a253e61a4a0b1a4dcd072f2b Mon Sep 17 00:00:00 2001 From: Peter Breitenlohner Date: Fri, 20 Mar 2009 07:39:11 +0000 Subject: new build system git-svn-id: svn://tug.org/texlive/trunk@12444 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/libs/freetype/.cvsignore | 7 - Build/source/libs/freetype/.cvsignore.delete | 0 Build/source/libs/freetype/ChangeLog | 17 - Build/source/libs/freetype/FILES | 80 - Build/source/libs/freetype/INSTALL | 733 - Build/source/libs/freetype/MakeSub.in | 7 - Build/source/libs/freetype/Makefile.in | 70 - Build/source/libs/freetype/PATENTS | 28 - Build/source/libs/freetype/README | 708 - Build/source/libs/freetype/ac/freetype.ac | 3 - Build/source/libs/freetype/ac/withenable.ac | 3 - Build/source/libs/freetype/aclocal.m4 | 6578 ----- Build/source/libs/freetype/announce | 68 - Build/source/libs/freetype/config.guess | 1555 -- Build/source/libs/freetype/config.sub | 1685 -- Build/source/libs/freetype/configure | 25983 ------------------- Build/source/libs/freetype/configure.in | 266 - Build/source/libs/freetype/docs/FAQ | 843 - Build/source/libs/freetype/docs/FTL.txt | 165 - Build/source/libs/freetype/docs/GPL.txt | 339 - Build/source/libs/freetype/docs/apiref.txt | 1918 -- Build/source/libs/freetype/docs/apirefx.txt | 1223 - Build/source/libs/freetype/docs/bitmaps.txt | 770 - Build/source/libs/freetype/docs/changes.txt | 1031 - Build/source/libs/freetype/docs/convntns.txt | 970 - Build/source/libs/freetype/docs/credits | 97 - Build/source/libs/freetype/docs/freetype.lsm | 17 - Build/source/libs/freetype/docs/glyphs.htm | 1257 - Build/source/libs/freetype/docs/glyphs.txt | 999 - Build/source/libs/freetype/docs/i18n.txt | 161 - Build/source/libs/freetype/docs/image/baselin2.gif | Bin 1282 -> 0 bytes Build/source/libs/freetype/docs/image/baseline.gif | Bin 2976 -> 0 bytes Build/source/libs/freetype/docs/image/emsquare.gif | Bin 2917 -> 0 bytes Build/source/libs/freetype/docs/image/freetype.gif | Bin 10545 -> 0 bytes Build/source/libs/freetype/docs/image/freetype.png | Bin 10756 -> 0 bytes Build/source/libs/freetype/docs/image/grid1.gif | Bin 1399 -> 0 bytes Build/source/libs/freetype/docs/image/grid2.gif | Bin 3390 -> 0 bytes Build/source/libs/freetype/docs/image/grid3.gif | Bin 3313 -> 0 bytes Build/source/libs/freetype/docs/image/metrics.gif | Bin 3296 -> 0 bytes Build/source/libs/freetype/docs/image/metrics2.gif | Bin 2934 -> 0 bytes Build/source/libs/freetype/docs/image/small2.gif | Bin 8814 -> 0 bytes Build/source/libs/freetype/docs/image/tfp-back.png | Bin 53962 -> 0 bytes Build/source/libs/freetype/docs/optimize.txt | 181 - Build/source/libs/freetype/docs/porting.txt | 1078 - Build/source/libs/freetype/docs/raster.txt | 577 - Build/source/libs/freetype/docs/readme.txt | 106 - Build/source/libs/freetype/docs/threads.txt | 117 - Build/source/libs/freetype/docs/user.txt | 916 - Build/source/libs/freetype/freetype.ac | 61 - Build/source/libs/freetype/freetype.spec | 171 - Build/source/libs/freetype/ft_conf.h.in | 220 - Build/source/libs/freetype/howto/mac.txt | 19 - Build/source/libs/freetype/howto/msdos.txt | 272 - Build/source/libs/freetype/howto/os2.txt | 200 - Build/source/libs/freetype/howto/unix.txt | 258 - Build/source/libs/freetype/howto/windows.txt | 349 - Build/source/libs/freetype/install-sh | 519 - Build/source/libs/freetype/lib/.cvsignore | 3 - Build/source/libs/freetype/lib/.cvsignore.delete | 0 .../libs/freetype/lib/arch/amigaos/Makefile.gcc | 77 - .../libs/freetype/lib/arch/amigaos/freetype.c | 25 - .../libs/freetype/lib/arch/amigaos/ft_conf.h | 212 - .../libs/freetype/lib/arch/amigaos/smakefile | 126 - .../source/libs/freetype/lib/arch/ansi/freetype.c | 32 - Build/source/libs/freetype/lib/arch/ansi/ft_conf.h | 245 - Build/source/libs/freetype/lib/arch/beos/Makefile | 102 - .../source/libs/freetype/lib/arch/beos/freetype.c | 32 - Build/source/libs/freetype/lib/arch/beos/ft_conf.h | 214 - Build/source/libs/freetype/lib/arch/beos/ttmutex.c | 150 - .../libs/freetype/lib/arch/debugger/Makefile | 107 - .../libs/freetype/lib/arch/debugger/freetype.c | 32 - .../libs/freetype/lib/arch/debugger/ft_conf.h | 249 - Build/source/libs/freetype/lib/arch/mac/README | 47 - Build/source/libs/freetype/lib/arch/mac/freetype.c | 44 - Build/source/libs/freetype/lib/arch/mac/ft_conf.h | 198 - Build/source/libs/freetype/lib/arch/mac/ttmmap.c | 1072 - .../libs/freetype/lib/arch/msdos/Makefile.BC | 171 - .../libs/freetype/lib/arch/msdos/Makefile.MS | 127 - .../libs/freetype/lib/arch/msdos/Makefile.TC | 127 - .../libs/freetype/lib/arch/msdos/Makefile.VC | 129 - .../libs/freetype/lib/arch/msdos/Makefile.dm | 94 - .../libs/freetype/lib/arch/msdos/Makefile.gcc | 108 - .../libs/freetype/lib/arch/msdos/Makefile.wat | 105 - .../source/libs/freetype/lib/arch/msdos/depend.dos | 111 - .../source/libs/freetype/lib/arch/msdos/freetype.c | 39 - .../source/libs/freetype/lib/arch/msdos/ft_conf.h | 251 - .../source/libs/freetype/lib/arch/msdos/hugefile.c | 87 - .../source/libs/freetype/lib/arch/msdos/hugemem.c | 496 - Build/source/libs/freetype/lib/arch/msdos/makedep | 39 - .../source/libs/freetype/lib/arch/os2/Makefile.dm | 94 - .../source/libs/freetype/lib/arch/os2/Makefile.emx | 102 - .../source/libs/freetype/lib/arch/os2/Makefile.icc | 82 - .../source/libs/freetype/lib/arch/os2/Makefile.wat | 98 - Build/source/libs/freetype/lib/arch/os2/freetype.c | 32 - Build/source/libs/freetype/lib/arch/os2/ft_conf.h | 229 - Build/source/libs/freetype/lib/arch/os2/os2file.c | 1236 - .../source/libs/freetype/lib/arch/unix/.cvsignore | 1 - .../libs/freetype/lib/arch/unix/.cvsignore.delete | 0 .../source/libs/freetype/lib/arch/unix/Makefile.in | 256 - .../source/libs/freetype/lib/arch/unix/freetype.c | 27 - Build/source/libs/freetype/lib/arch/unix/ttmmap.c | 1028 - Build/source/libs/freetype/lib/arch/vms/README | 20 - .../source/libs/freetype/lib/arch/vms/descrip.mms | 163 - Build/source/libs/freetype/lib/arch/vms/ft_conf.h | 212 - .../libs/freetype/lib/arch/win16/Makefile.BC | 190 - .../libs/freetype/lib/arch/win16/Makefile.MS | 116 - .../libs/freetype/lib/arch/win16/Makefile.VC | 185 - .../source/libs/freetype/lib/arch/win16/depend.win | 113 - .../source/libs/freetype/lib/arch/win16/freetype.c | 51 - .../source/libs/freetype/lib/arch/win16/ft_conf.h | 235 - .../source/libs/freetype/lib/arch/win16/hugefile.c | 51 - .../source/libs/freetype/lib/arch/win16/hugemem.c | 539 - Build/source/libs/freetype/lib/arch/win16/makedef | 28 - Build/source/libs/freetype/lib/arch/win16/makedep | 48 - Build/source/libs/freetype/lib/arch/win16/ttf.def | 134 - .../libs/freetype/lib/arch/win32/.cvsignore.delete | 0 .../libs/freetype/lib/arch/win32/Makefile.BC | 171 - .../libs/freetype/lib/arch/win32/Makefile.CL | 175 - .../libs/freetype/lib/arch/win32/Makefile.Min | 109 - .../libs/freetype/lib/arch/win32/Makefile.VC | 205 - .../libs/freetype/lib/arch/win32/Makefile.gcc | 107 - .../source/libs/freetype/lib/arch/win32/depend.win | 107 - .../source/libs/freetype/lib/arch/win32/freetype.c | 44 - .../libs/freetype/lib/arch/win32/freetype.dsp | 138 - .../libs/freetype/lib/arch/win32/freetype.dsw | 54 - .../libs/freetype/lib/arch/win32/freetype.ide | Bin 35542 -> 0 bytes .../libs/freetype/lib/arch/win32/freetype.mak | 363 - .../libs/freetype/lib/arch/win32/freetype.mdp | Bin 37376 -> 0 bytes .../source/libs/freetype/lib/arch/win32/ft_conf.h | 243 - .../source/libs/freetype/lib/arch/win32/ft_dll.dsp | 106 - Build/source/libs/freetype/lib/arch/win32/makedef | 28 - Build/source/libs/freetype/lib/arch/win32/makedep | 45 - Build/source/libs/freetype/lib/arch/win32/ttf.def | 134 - Build/source/libs/freetype/lib/extend/ftxcmap.c | 404 - Build/source/libs/freetype/lib/extend/ftxcmap.h | 60 - Build/source/libs/freetype/lib/extend/ftxerr18.c | 281 - Build/source/libs/freetype/lib/extend/ftxerr18.h | 38 - Build/source/libs/freetype/lib/extend/ftxgasp.c | 69 - Build/source/libs/freetype/lib/extend/ftxgasp.h | 53 - Build/source/libs/freetype/lib/extend/ftxgdef.c | 1126 - Build/source/libs/freetype/lib/extend/ftxgdef.h | 218 - Build/source/libs/freetype/lib/extend/ftxgpos.c | 6224 ----- Build/source/libs/freetype/lib/extend/ftxgpos.h | 865 - Build/source/libs/freetype/lib/extend/ftxgsub.c | 4425 ---- Build/source/libs/freetype/lib/extend/ftxgsub.h | 600 - Build/source/libs/freetype/lib/extend/ftxkern.c | 645 - Build/source/libs/freetype/lib/extend/ftxkern.h | 181 - Build/source/libs/freetype/lib/extend/ftxopen.c | 1458 -- Build/source/libs/freetype/lib/extend/ftxopen.h | 290 - Build/source/libs/freetype/lib/extend/ftxopenf.h | 143 - Build/source/libs/freetype/lib/extend/ftxpost.c | 544 - Build/source/libs/freetype/lib/extend/ftxpost.h | 109 - Build/source/libs/freetype/lib/extend/ftxsbit.c | 1393 - Build/source/libs/freetype/lib/extend/ftxsbit.h | 490 - Build/source/libs/freetype/lib/extend/ftxwidth.c | 185 - Build/source/libs/freetype/lib/extend/ftxwidth.h | 80 - Build/source/libs/freetype/lib/extend/readme.1st | 61 - Build/source/libs/freetype/lib/freetype.h | 1184 - Build/source/libs/freetype/lib/fterrid.h | 162 - Build/source/libs/freetype/lib/ftnameid.h | 877 - Build/source/libs/freetype/lib/ttapi.c | 2220 -- Build/source/libs/freetype/lib/ttcache.c | 464 - Build/source/libs/freetype/lib/ttcache.h | 216 - Build/source/libs/freetype/lib/ttcalc.c | 426 - Build/source/libs/freetype/lib/ttcalc.h | 119 - Build/source/libs/freetype/lib/ttcmap.c | 635 - Build/source/libs/freetype/lib/ttcmap.h | 202 - Build/source/libs/freetype/lib/ttconfig.h | 273 - Build/source/libs/freetype/lib/ttdebug.c | 404 - Build/source/libs/freetype/lib/ttdebug.h | 170 - Build/source/libs/freetype/lib/ttengine.h | 116 - Build/source/libs/freetype/lib/ttextend.c | 212 - Build/source/libs/freetype/lib/ttextend.h | 167 - Build/source/libs/freetype/lib/ttfile.c | 1176 - Build/source/libs/freetype/lib/ttfile.h | 430 - Build/source/libs/freetype/lib/ttgload.c | 1353 - Build/source/libs/freetype/lib/ttgload.h | 51 - Build/source/libs/freetype/lib/ttinterp.c | 6681 ----- Build/source/libs/freetype/lib/ttinterp.h | 55 - Build/source/libs/freetype/lib/ttload.c | 1598 -- Build/source/libs/freetype/lib/ttload.h | 238 - Build/source/libs/freetype/lib/ttmemory.c | 399 - Build/source/libs/freetype/lib/ttmemory.h | 129 - Build/source/libs/freetype/lib/ttmutex.c | 85 - Build/source/libs/freetype/lib/ttmutex.h | 63 - Build/source/libs/freetype/lib/ttobjs.c | 1500 -- Build/source/libs/freetype/lib/ttobjs.h | 881 - Build/source/libs/freetype/lib/ttraster.c | 2725 -- Build/source/libs/freetype/lib/ttraster.h | 127 - Build/source/libs/freetype/lib/tttables.h | 216 - Build/source/libs/freetype/lib/tttags.h | 61 - Build/source/libs/freetype/lib/tttypes.h | 151 - Build/source/libs/freetype/license.txt | 7 - Build/source/libs/freetype/ltconfig | 3078 --- Build/source/libs/freetype/ltmain.sh | 6930 ----- Build/source/libs/freetype/mkinstalldirs | 161 - Build/source/libs/freetype/net.m4 | 55 - Build/source/libs/freetype/pascal/README | 10 - Build/source/libs/freetype/po/.cvsignore | 8 - Build/source/libs/freetype/po/.cvsignore.delete | 0 Build/source/libs/freetype/po/Makefile.in.in | 220 - Build/source/libs/freetype/po/POTFILES.in | 10 - Build/source/libs/freetype/po/cs.po | 883 - Build/source/libs/freetype/po/de.po | 885 - Build/source/libs/freetype/po/es.po | 888 - Build/source/libs/freetype/po/fr.po | 883 - Build/source/libs/freetype/po/freetype.pot | 842 - Build/source/libs/freetype/po/nl.po | 883 - Build/source/libs/freetype/readme.1st | 10 - Build/source/libs/freetype/test/.cvsignore | 12 - Build/source/libs/freetype/test/.cvsignore.delete | 0 Build/source/libs/freetype/test/README | 6 - Build/source/libs/freetype/test/arabic.c | 386 - Build/source/libs/freetype/test/arabic.h | 66 - .../libs/freetype/test/arch/amigaos/Makefile.gcc | 118 - Build/source/libs/freetype/test/arch/amigaos/TODO | 16 - .../libs/freetype/test/arch/amigaos/gfsamiga.c | 428 - .../libs/freetype/test/arch/amigaos/gw_amiga.c | 519 - .../libs/freetype/test/arch/amigaos/smakefile | 195 - .../libs/freetype/test/arch/debugger/Makefile | 110 - .../libs/freetype/test/arch/msdos/Makefile.BC | 191 - .../libs/freetype/test/arch/msdos/Makefile.MS | 152 - .../libs/freetype/test/arch/msdos/Makefile.TC | 267 - .../libs/freetype/test/arch/msdos/Makefile.VC | 153 - .../libs/freetype/test/arch/msdos/Makefile.dm | 156 - .../libs/freetype/test/arch/msdos/Makefile.gcc | 151 - .../libs/freetype/test/arch/msdos/depend.dos | 76 - .../source/libs/freetype/test/arch/msdos/gfs_dos.c | 374 - .../libs/freetype/test/arch/msdos/gmain_dj.c | 470 - Build/source/libs/freetype/test/arch/msdos/makedep | 35 - .../source/libs/freetype/test/arch/msdos/time_tc.h | 124 - .../source/libs/freetype/test/arch/os2/Makefile.dm | 153 - .../libs/freetype/test/arch/os2/Makefile.emx | 119 - .../libs/freetype/test/arch/os2/Makefile.icc | 157 - .../libs/freetype/test/arch/os2/Makefile.wat | 172 - Build/source/libs/freetype/test/arch/os2/gfs_os2.c | 219 - Build/source/libs/freetype/test/arch/os2/gpm_os2.c | 654 - .../source/libs/freetype/test/arch/os2/gpm_os2.def | 5 - .../source/libs/freetype/test/arch/unix/.cvsignore | 1 - .../libs/freetype/test/arch/unix/.cvsignore.delete | 0 .../libs/freetype/test/arch/unix/Makefile.in | 184 - .../source/libs/freetype/test/arch/unix/gwin_x11.c | 451 - .../libs/freetype/test/arch/win16/Makefile.BC | 222 - .../libs/freetype/test/arch/win16/Makefile.MS | 155 - .../libs/freetype/test/arch/win16/Makefile.VC | 197 - .../libs/freetype/test/arch/win16/depend.win | 78 - .../libs/freetype/test/arch/win16/gw_win16.c | 431 - Build/source/libs/freetype/test/arch/win16/makedep | 43 - .../libs/freetype/test/arch/win32/Makefile.BC | 207 - .../libs/freetype/test/arch/win32/Makefile.CL | 185 - .../libs/freetype/test/arch/win32/Makefile.Min | 134 - .../libs/freetype/test/arch/win32/Makefile.gcc | 143 - .../libs/freetype/test/arch/win32/depend.win | 78 - .../libs/freetype/test/arch/win32/gw_win32.c | 378 - Build/source/libs/freetype/test/arch/win32/makedep | 42 - Build/source/libs/freetype/test/blitter.c | 492 - Build/source/libs/freetype/test/blitter.h | 52 - Build/source/libs/freetype/test/common.c | 276 - Build/source/libs/freetype/test/common.h | 81 - Build/source/libs/freetype/test/display.c | 299 - Build/source/libs/freetype/test/display.h | 73 - Build/source/libs/freetype/test/fdebug.c | 286 - Build/source/libs/freetype/test/ftdump.c | 1146 - Build/source/libs/freetype/test/fterror.c | 107 - Build/source/libs/freetype/test/ftlint.c | 296 - Build/source/libs/freetype/test/ftmetric.c | 399 - Build/source/libs/freetype/test/ftsbit.c | 295 - Build/source/libs/freetype/test/ftstring.c | 484 - Build/source/libs/freetype/test/ftstrpnm.c | 534 - Build/source/libs/freetype/test/ftstrtto.c | 1476 -- Build/source/libs/freetype/test/fttimer.c | 455 - Build/source/libs/freetype/test/ftview.c | 539 - Build/source/libs/freetype/test/ftzoom.c | 682 - Build/source/libs/freetype/test/gdriver.h | 55 - Build/source/libs/freetype/test/gevents.h | 43 - Build/source/libs/freetype/test/gmain.c | 475 - Build/source/libs/freetype/test/gmain.h | 71 - Build/source/libs/freetype/test/textdisp.c | 47 - Build/source/libs/freetype/test/textdisp.h | 32 - Build/source/libs/freetype/withenable.ac | 10 - Build/source/libs/ncurses/ANNOUNCE | 493 - Build/source/libs/ncurses/INSTALL | 1245 - Build/source/libs/ncurses/MANIFEST | 997 - Build/source/libs/ncurses/Makefile.in | 97 - Build/source/libs/ncurses/Makefile.os2 | 234 - Build/source/libs/ncurses/NEWS | 6894 ----- Build/source/libs/ncurses/README | 183 - Build/source/libs/ncurses/README.emx | 45 - Build/source/libs/ncurses/TO-DO | 173 - Build/source/libs/ncurses/aclocal.m4 | 4022 --- Build/source/libs/ncurses/announce.html.in | 569 - Build/source/libs/ncurses/config.guess | 1555 -- Build/source/libs/ncurses/config.sub | 1685 -- Build/source/libs/ncurses/configure | 14024 ---------- Build/source/libs/ncurses/configure.in | 1341 - Build/source/libs/ncurses/convert_configure.pl | 90 - Build/source/libs/ncurses/dist.mk | 138 - Build/source/libs/ncurses/include/Caps | 1264 - Build/source/libs/ncurses/include/Caps.aix4 | 1255 - Build/source/libs/ncurses/include/Caps.hpux11 | 1278 - Build/source/libs/ncurses/include/Caps.keys | 1354 - Build/source/libs/ncurses/include/Caps.osf1r5 | 1274 - Build/source/libs/ncurses/include/Caps.uwin | 1090 - Build/source/libs/ncurses/include/MKhashsize.sh | 14 - Build/source/libs/ncurses/include/MKkey_defs.sh | 182 - Build/source/libs/ncurses/include/MKncurses_def.sh | 80 - .../source/libs/ncurses/include/MKparametrized.sh | 35 - Build/source/libs/ncurses/include/MKterm.h.awk.in | 311 - Build/source/libs/ncurses/include/Makefile.in | 130 - Build/source/libs/ncurses/include/capdefaults.c | 84 - Build/source/libs/ncurses/include/curses.h.in | 1026 - Build/source/libs/ncurses/include/curses.tail | 137 - Build/source/libs/ncurses/include/curses.wide | 239 - Build/source/libs/ncurses/include/edit_cfg.sh | 67 - Build/source/libs/ncurses/include/headers | 35 - Build/source/libs/ncurses/include/nc_alloc.h | 91 - Build/source/libs/ncurses/include/nc_panel.h | 66 - Build/source/libs/ncurses/include/ncurses_cfg.hin | 62 - Build/source/libs/ncurses/include/ncurses_defs | 180 - Build/source/libs/ncurses/include/ncurses_dll.h | 52 - Build/source/libs/ncurses/include/term_entry.h | 165 - Build/source/libs/ncurses/include/termcap.h.in | 75 - Build/source/libs/ncurses/include/tic.h | 311 - Build/source/libs/ncurses/include/unctrl.h.in | 63 - Build/source/libs/ncurses/install-sh | 519 - Build/source/libs/ncurses/man/MKterminfo.sh | 110 - Build/source/libs/ncurses/man/Makefile.in | 79 - Build/source/libs/ncurses/man/captoinfo.1m | 189 - Build/source/libs/ncurses/man/clear.1 | 48 - Build/source/libs/ncurses/man/curs_add_wch.3x | 134 - Build/source/libs/ncurses/man/curs_add_wchstr.3x | 97 - Build/source/libs/ncurses/man/curs_addch.3x | 173 - Build/source/libs/ncurses/man/curs_addchstr.3x | 82 - Build/source/libs/ncurses/man/curs_addstr.3x | 87 - Build/source/libs/ncurses/man/curs_addwstr.3x | 92 - Build/source/libs/ncurses/man/curs_attr.3x | 232 - Build/source/libs/ncurses/man/curs_beep.3x | 63 - Build/source/libs/ncurses/man/curs_bkgd.3x | 98 - Build/source/libs/ncurses/man/curs_bkgrnd.3x | 106 - Build/source/libs/ncurses/man/curs_border.3x | 138 - Build/source/libs/ncurses/man/curs_border_set.3x | 201 - Build/source/libs/ncurses/man/curs_clear.3x | 94 - Build/source/libs/ncurses/man/curs_color.3x | 216 - Build/source/libs/ncurses/man/curs_delch.3x | 70 - Build/source/libs/ncurses/man/curs_deleteln.3x | 87 - Build/source/libs/ncurses/man/curs_extend.3x | 84 - Build/source/libs/ncurses/man/curs_get_wch.3x | 161 - Build/source/libs/ncurses/man/curs_get_wstr.3x | 167 - Build/source/libs/ncurses/man/curs_getcchar.3x | 144 - Build/source/libs/ncurses/man/curs_getch.3x | 307 - Build/source/libs/ncurses/man/curs_getstr.3x | 107 - Build/source/libs/ncurses/man/curs_getyx.3x | 89 - Build/source/libs/ncurses/man/curs_in_wch.3x | 68 - Build/source/libs/ncurses/man/curs_in_wchstr.3x | 117 - Build/source/libs/ncurses/man/curs_inch.3x | 73 - Build/source/libs/ncurses/man/curs_inchstr.3x | 88 - Build/source/libs/ncurses/man/curs_initscr.3x | 124 - Build/source/libs/ncurses/man/curs_inopts.3x | 214 - Build/source/libs/ncurses/man/curs_ins_wch.3x | 65 - Build/source/libs/ncurses/man/curs_ins_wstr.3x | 104 - Build/source/libs/ncurses/man/curs_insch.3x | 70 - Build/source/libs/ncurses/man/curs_insstr.3x | 99 - Build/source/libs/ncurses/man/curs_instr.3x | 89 - Build/source/libs/ncurses/man/curs_inwstr.3x | 94 - Build/source/libs/ncurses/man/curs_kernel.3x | 159 - Build/source/libs/ncurses/man/curs_mouse.3x | 254 - Build/source/libs/ncurses/man/curs_move.3x | 63 - Build/source/libs/ncurses/man/curs_outopts.3x | 193 - Build/source/libs/ncurses/man/curs_overlay.3x | 76 - Build/source/libs/ncurses/man/curs_pad.3x | 133 - Build/source/libs/ncurses/man/curs_print.3x | 74 - Build/source/libs/ncurses/man/curs_printw.3x | 84 - Build/source/libs/ncurses/man/curs_refresh.3x | 126 - Build/source/libs/ncurses/man/curs_scanw.3x | 97 - Build/source/libs/ncurses/man/curs_scr_dump.3x | 94 - Build/source/libs/ncurses/man/curs_scroll.3x | 84 - Build/source/libs/ncurses/man/curs_slk.3x | 149 - Build/source/libs/ncurses/man/curs_termattrs.3x | 134 - Build/source/libs/ncurses/man/curs_termcap.3x | 164 - Build/source/libs/ncurses/man/curs_terminfo.3x | 294 - Build/source/libs/ncurses/man/curs_touch.3x | 96 - Build/source/libs/ncurses/man/curs_trace.3x | 149 - Build/source/libs/ncurses/man/curs_util.3x | 146 - Build/source/libs/ncurses/man/curs_window.3x | 159 - Build/source/libs/ncurses/man/default_colors.3x | 125 - Build/source/libs/ncurses/man/define_key.3x | 65 - Build/source/libs/ncurses/man/form.3x | 200 - Build/source/libs/ncurses/man/form_cursor.3x | 74 - Build/source/libs/ncurses/man/form_data.3x | 63 - Build/source/libs/ncurses/man/form_driver.3x | 272 - Build/source/libs/ncurses/man/form_field.3x | 97 - .../libs/ncurses/man/form_field_attributes.3x | 91 - Build/source/libs/ncurses/man/form_field_buffer.3x | 105 - Build/source/libs/ncurses/man/form_field_info.3x | 84 - Build/source/libs/ncurses/man/form_field_just.3x | 78 - Build/source/libs/ncurses/man/form_field_new.3x | 96 - Build/source/libs/ncurses/man/form_field_opts.3x | 120 - .../source/libs/ncurses/man/form_field_userptr.3x | 73 - .../libs/ncurses/man/form_field_validation.3x | 144 - Build/source/libs/ncurses/man/form_fieldtype.3x | 135 - Build/source/libs/ncurses/man/form_hook.3x | 100 - Build/source/libs/ncurses/man/form_new.3x | 79 - Build/source/libs/ncurses/man/form_new_page.3x | 77 - Build/source/libs/ncurses/man/form_opts.3x | 90 - Build/source/libs/ncurses/man/form_page.3x | 95 - Build/source/libs/ncurses/man/form_post.3x | 90 - Build/source/libs/ncurses/man/form_requestname.3x | 69 - Build/source/libs/ncurses/man/form_userptr.3x | 73 - Build/source/libs/ncurses/man/form_win.3x | 95 - Build/source/libs/ncurses/man/infocmp.1m | 424 - Build/source/libs/ncurses/man/infotocap.1m | 74 - Build/source/libs/ncurses/man/key_defined.3x | 60 - Build/source/libs/ncurses/man/keybound.3x | 64 - Build/source/libs/ncurses/man/keyok.3x | 63 - Build/source/libs/ncurses/man/make_sed.sh | 83 - Build/source/libs/ncurses/man/man_db.renames | 139 - Build/source/libs/ncurses/man/manlinks.sed | 101 - Build/source/libs/ncurses/man/menu.3x | 190 - Build/source/libs/ncurses/man/menu_attributes.3x | 100 - Build/source/libs/ncurses/man/menu_cursor.3x | 73 - Build/source/libs/ncurses/man/menu_driver.3x | 170 - Build/source/libs/ncurses/man/menu_format.3x | 84 - Build/source/libs/ncurses/man/menu_hook.3x | 101 - Build/source/libs/ncurses/man/menu_items.3x | 91 - Build/source/libs/ncurses/man/menu_mark.3x | 84 - Build/source/libs/ncurses/man/menu_new.3x | 79 - Build/source/libs/ncurses/man/menu_opts.3x | 104 - Build/source/libs/ncurses/man/menu_pattern.3x | 82 - Build/source/libs/ncurses/man/menu_post.3x | 91 - Build/source/libs/ncurses/man/menu_requestname.3x | 69 - Build/source/libs/ncurses/man/menu_spacing.3x | 84 - Build/source/libs/ncurses/man/menu_userptr.3x | 73 - Build/source/libs/ncurses/man/menu_win.3x | 95 - Build/source/libs/ncurses/man/mitem_current.3x | 101 - Build/source/libs/ncurses/man/mitem_name.3x | 64 - Build/source/libs/ncurses/man/mitem_new.3x | 83 - Build/source/libs/ncurses/man/mitem_opts.3x | 84 - Build/source/libs/ncurses/man/mitem_userptr.3x | 72 - Build/source/libs/ncurses/man/mitem_value.3x | 76 - Build/source/libs/ncurses/man/mitem_visible.3x | 59 - Build/source/libs/ncurses/man/ncurses.3x | 919 - Build/source/libs/ncurses/man/panel.3x | 182 - Build/source/libs/ncurses/man/resizeterm.3x | 92 - Build/source/libs/ncurses/man/term.5 | 208 - Build/source/libs/ncurses/man/term.7 | 204 - Build/source/libs/ncurses/man/terminfo.head | 105 - Build/source/libs/ncurses/man/terminfo.tail | 1666 -- Build/source/libs/ncurses/man/tic.1m | 313 - Build/source/libs/ncurses/man/toe.1m | 81 - Build/source/libs/ncurses/man/tput.1 | 288 - Build/source/libs/ncurses/man/tset.1 | 254 - Build/source/libs/ncurses/man/wresize.3x | 64 - Build/source/libs/ncurses/mk-0th.awk | 101 - Build/source/libs/ncurses/mk-1st.awk | 373 - Build/source/libs/ncurses/mk-2nd.awk | 128 - Build/source/libs/ncurses/mkinstalldirs | 161 - Build/source/libs/ncurses/ncurses.ac | 105 - Build/source/libs/ncurses/ncurses/Makefile.in | 288 - Build/source/libs/ncurses/ncurses/README | 2 - Build/source/libs/ncurses/ncurses/README.IZ | 65 - Build/source/libs/ncurses/ncurses/SigAction.h | 113 - .../source/libs/ncurses/ncurses/base/MKkeyname.awk | 90 - .../source/libs/ncurses/ncurses/base/MKlib_gen.sh | 401 - .../source/libs/ncurses/ncurses/base/MKunctrl.awk | 72 - Build/source/libs/ncurses/ncurses/base/README | 7 - .../source/libs/ncurses/ncurses/base/define_key.c | 63 - .../source/libs/ncurses/ncurses/base/key_defined.c | 76 - Build/source/libs/ncurses/ncurses/base/keybound.c | 47 - Build/source/libs/ncurses/ncurses/base/keyok.c | 73 - Build/source/libs/ncurses/ncurses/base/lib_addch.c | 413 - .../source/libs/ncurses/ncurses/base/lib_addstr.c | 209 - Build/source/libs/ncurses/ncurses/base/lib_beep.c | 73 - Build/source/libs/ncurses/ncurses/base/lib_bkgd.c | 138 - Build/source/libs/ncurses/ncurses/base/lib_box.c | 126 - Build/source/libs/ncurses/ncurses/base/lib_chgat.c | 62 - Build/source/libs/ncurses/ncurses/base/lib_clear.c | 56 - .../source/libs/ncurses/ncurses/base/lib_clearok.c | 55 - .../source/libs/ncurses/ncurses/base/lib_clrbot.c | 76 - .../source/libs/ncurses/ncurses/base/lib_clreol.c | 91 - Build/source/libs/ncurses/ncurses/base/lib_color.c | 535 - .../libs/ncurses/ncurses/base/lib_colorset.c | 59 - Build/source/libs/ncurses/ncurses/base/lib_delch.c | 69 - .../source/libs/ncurses/ncurses/base/lib_delwin.c | 78 - .../libs/ncurses/ncurses/base/lib_dft_fgbg.c | 71 - Build/source/libs/ncurses/ncurses/base/lib_echo.c | 61 - .../source/libs/ncurses/ncurses/base/lib_endwin.c | 60 - Build/source/libs/ncurses/ncurses/base/lib_erase.c | 73 - Build/source/libs/ncurses/ncurses/base/lib_flash.c | 73 - .../source/libs/ncurses/ncurses/base/lib_freeall.c | 129 - Build/source/libs/ncurses/ncurses/base/lib_getch.c | 575 - .../source/libs/ncurses/ncurses/base/lib_getstr.c | 215 - Build/source/libs/ncurses/ncurses/base/lib_hline.c | 80 - .../source/libs/ncurses/ncurses/base/lib_immedok.c | 54 - .../source/libs/ncurses/ncurses/base/lib_inchstr.c | 64 - .../source/libs/ncurses/ncurses/base/lib_initscr.c | 97 - Build/source/libs/ncurses/ncurses/base/lib_insch.c | 137 - .../source/libs/ncurses/ncurses/base/lib_insdel.c | 63 - .../source/libs/ncurses/ncurses/base/lib_insnstr.c | 68 - Build/source/libs/ncurses/ncurses/base/lib_instr.c | 73 - .../libs/ncurses/ncurses/base/lib_isendwin.c | 51 - .../source/libs/ncurses/ncurses/base/lib_leaveok.c | 55 - Build/source/libs/ncurses/ncurses/base/lib_mouse.c | 1296 - Build/source/libs/ncurses/ncurses/base/lib_move.c | 61 - Build/source/libs/ncurses/ncurses/base/lib_mvwin.c | 108 - .../source/libs/ncurses/ncurses/base/lib_newterm.c | 211 - .../source/libs/ncurses/ncurses/base/lib_newwin.c | 303 - Build/source/libs/ncurses/ncurses/base/lib_nl.c | 79 - .../source/libs/ncurses/ncurses/base/lib_overlay.c | 184 - Build/source/libs/ncurses/ncurses/base/lib_pad.c | 313 - .../source/libs/ncurses/ncurses/base/lib_printw.c | 139 - .../libs/ncurses/ncurses/base/lib_redrawln.c | 75 - .../source/libs/ncurses/ncurses/base/lib_refresh.c | 187 - .../source/libs/ncurses/ncurses/base/lib_restart.c | 92 - Build/source/libs/ncurses/ncurses/base/lib_scanw.c | 106 - .../source/libs/ncurses/ncurses/base/lib_screen.c | 205 - .../source/libs/ncurses/ncurses/base/lib_scroll.c | 130 - .../libs/ncurses/ncurses/base/lib_scrollok.c | 55 - .../source/libs/ncurses/ncurses/base/lib_scrreg.c | 60 - .../libs/ncurses/ncurses/base/lib_set_term.c | 497 - Build/source/libs/ncurses/ncurses/base/lib_slk.c | 215 - .../libs/ncurses/ncurses/base/lib_slkatr_set.c | 55 - .../libs/ncurses/ncurses/base/lib_slkatrof.c | 53 - .../libs/ncurses/ncurses/base/lib_slkatron.c | 53 - .../libs/ncurses/ncurses/base/lib_slkatrset.c | 53 - .../source/libs/ncurses/ncurses/base/lib_slkattr.c | 52 - .../libs/ncurses/ncurses/base/lib_slkclear.c | 61 - .../libs/ncurses/ncurses/base/lib_slkcolor.c | 52 - .../source/libs/ncurses/ncurses/base/lib_slkinit.c | 51 - .../source/libs/ncurses/ncurses/base/lib_slklab.c | 51 - .../source/libs/ncurses/ncurses/base/lib_slkrefr.c | 120 - .../source/libs/ncurses/ncurses/base/lib_slkset.c | 95 - .../libs/ncurses/ncurses/base/lib_slktouch.c | 53 - Build/source/libs/ncurses/ncurses/base/lib_touch.c | 91 - .../source/libs/ncurses/ncurses/base/lib_ungetch.c | 79 - Build/source/libs/ncurses/ncurses/base/lib_vline.c | 79 - .../libs/ncurses/ncurses/base/lib_wattroff.c | 56 - .../source/libs/ncurses/ncurses/base/lib_wattron.c | 56 - Build/source/libs/ncurses/ncurses/base/lib_winch.c | 54 - .../source/libs/ncurses/ncurses/base/lib_window.c | 248 - Build/source/libs/ncurses/ncurses/base/memmove.c | 69 - Build/source/libs/ncurses/ncurses/base/nc_panel.c | 41 - .../source/libs/ncurses/ncurses/base/resizeterm.c | 330 - .../libs/ncurses/ncurses/base/safe_sprintf.c | 262 - Build/source/libs/ncurses/ncurses/base/sigaction.c | 99 - Build/source/libs/ncurses/ncurses/base/tries.c | 141 - Build/source/libs/ncurses/ncurses/base/version.c | 42 - Build/source/libs/ncurses/ncurses/base/vsscanf.c | 356 - Build/source/libs/ncurses/ncurses/base/wresize.c | 239 - Build/source/libs/ncurses/ncurses/curses.priv.h | 1131 - Build/source/libs/ncurses/ncurses/fifo_defs.h | 59 - Build/source/libs/ncurses/ncurses/llib-lncurses | 3080 --- Build/source/libs/ncurses/ncurses/llib-lncursesw | 3844 --- Build/source/libs/ncurses/ncurses/modules | 219 - .../source/libs/ncurses/ncurses/tinfo/MKcaptab.awk | 71 - .../libs/ncurses/ncurses/tinfo/MKfallback.sh | 102 - .../libs/ncurses/ncurses/tinfo/MKkeys_list.sh | 62 - .../source/libs/ncurses/ncurses/tinfo/MKnames.awk | 98 - Build/source/libs/ncurses/ncurses/tinfo/README | 8 - Build/source/libs/ncurses/ncurses/tinfo/access.c | 132 - .../source/libs/ncurses/ncurses/tinfo/add_tries.c | 125 - .../libs/ncurses/ncurses/tinfo/alloc_entry.c | 266 - .../libs/ncurses/ncurses/tinfo/alloc_ttype.c | 491 - .../source/libs/ncurses/ncurses/tinfo/captoinfo.c | 838 - .../source/libs/ncurses/ncurses/tinfo/comp_error.c | 146 - .../libs/ncurses/ncurses/tinfo/comp_expand.c | 184 - .../source/libs/ncurses/ncurses/tinfo/comp_hash.c | 331 - .../source/libs/ncurses/ncurses/tinfo/comp_parse.c | 500 - .../source/libs/ncurses/ncurses/tinfo/comp_scan.c | 863 - Build/source/libs/ncurses/ncurses/tinfo/doalloc.c | 75 - .../source/libs/ncurses/ncurses/tinfo/free_ttype.c | 106 - .../source/libs/ncurses/ncurses/tinfo/getenv_num.c | 56 - .../libs/ncurses/ncurses/tinfo/home_terminfo.c | 67 - .../libs/ncurses/ncurses/tinfo/init_keytry.c | 80 - Build/source/libs/ncurses/ncurses/tinfo/lib_acs.c | 175 - .../libs/ncurses/ncurses/tinfo/lib_baudrate.c | 225 - .../libs/ncurses/ncurses/tinfo/lib_cur_term.c | 76 - Build/source/libs/ncurses/ncurses/tinfo/lib_data.c | 91 - .../libs/ncurses/ncurses/tinfo/lib_has_cap.c | 65 - .../source/libs/ncurses/ncurses/tinfo/lib_kernel.c | 154 - .../libs/ncurses/ncurses/tinfo/lib_longname.c | 57 - .../source/libs/ncurses/ncurses/tinfo/lib_napms.c | 75 - .../libs/ncurses/ncurses/tinfo/lib_options.c | 267 - .../source/libs/ncurses/ncurses/tinfo/lib_print.c | 92 - Build/source/libs/ncurses/ncurses/tinfo/lib_raw.c | 296 - .../source/libs/ncurses/ncurses/tinfo/lib_setup.c | 548 - .../libs/ncurses/ncurses/tinfo/lib_termcap.c | 381 - .../libs/ncurses/ncurses/tinfo/lib_termname.c | 44 - .../source/libs/ncurses/ncurses/tinfo/lib_tgoto.c | 203 - Build/source/libs/ncurses/ncurses/tinfo/lib_ti.c | 103 - .../source/libs/ncurses/ncurses/tinfo/lib_tparm.c | 791 - .../source/libs/ncurses/ncurses/tinfo/lib_tputs.c | 257 - .../libs/ncurses/ncurses/tinfo/lib_ttyflags.c | 178 - .../source/libs/ncurses/ncurses/tinfo/make_keys.c | 140 - .../source/libs/ncurses/ncurses/tinfo/name_match.c | 107 - .../libs/ncurses/ncurses/tinfo/parse_entry.c | 986 - .../source/libs/ncurses/ncurses/tinfo/read_entry.c | 517 - .../libs/ncurses/ncurses/tinfo/read_termcap.c | 1168 - Build/source/libs/ncurses/ncurses/tinfo/setbuf.c | 150 - Build/source/libs/ncurses/ncurses/tinfo/strings.c | 142 - .../libs/ncurses/ncurses/tinfo/write_entry.c | 591 - Build/source/libs/ncurses/ncurses/trace/README | 5 - .../source/libs/ncurses/ncurses/trace/lib_trace.c | 197 - .../libs/ncurses/ncurses/trace/lib_traceatr.c | 310 - .../libs/ncurses/ncurses/trace/lib_tracebits.c | 248 - .../libs/ncurses/ncurses/trace/lib_tracechr.c | 72 - .../libs/ncurses/ncurses/trace/lib_tracedmp.c | 146 - .../libs/ncurses/ncurses/trace/lib_tracemse.c | 92 - .../source/libs/ncurses/ncurses/trace/trace_buf.c | 109 - .../libs/ncurses/ncurses/trace/trace_tries.c | 76 - .../libs/ncurses/ncurses/trace/trace_xnames.c | 75 - Build/source/libs/ncurses/ncurses/trace/varargs.c | 182 - Build/source/libs/ncurses/ncurses/trace/visbuf.c | 290 - .../source/libs/ncurses/ncurses/tty/MKexpanded.sh | 99 - Build/source/libs/ncurses/ncurses/tty/hardscroll.c | 325 - Build/source/libs/ncurses/ncurses/tty/hashmap.c | 538 - Build/source/libs/ncurses/ncurses/tty/lib_mvcur.c | 1236 - Build/source/libs/ncurses/ncurses/tty/lib_tstp.c | 399 - Build/source/libs/ncurses/ncurses/tty/lib_twait.c | 447 - .../source/libs/ncurses/ncurses/tty/lib_vidattr.c | 310 - .../source/libs/ncurses/ncurses/tty/tty_display.h | 140 - Build/source/libs/ncurses/ncurses/tty/tty_input.h | 61 - Build/source/libs/ncurses/ncurses/tty/tty_update.c | 1896 -- .../libs/ncurses/ncurses/widechar/charable.c | 80 - .../libs/ncurses/ncurses/widechar/lib_add_wch.c | 109 - .../libs/ncurses/ncurses/widechar/lib_box_set.c | 113 - .../libs/ncurses/ncurses/widechar/lib_cchar.c | 127 - .../libs/ncurses/ncurses/widechar/lib_erasewchar.c | 77 - .../libs/ncurses/ncurses/widechar/lib_get_wch.c | 117 - .../libs/ncurses/ncurses/widechar/lib_get_wstr.c | 231 - .../libs/ncurses/ncurses/widechar/lib_hline_set.c | 79 - .../libs/ncurses/ncurses/widechar/lib_in_wch.c | 61 - .../libs/ncurses/ncurses/widechar/lib_in_wchnstr.c | 68 - .../libs/ncurses/ncurses/widechar/lib_ins_wch.c | 130 - .../libs/ncurses/ncurses/widechar/lib_inwstr.c | 100 - .../ncurses/ncurses/widechar/lib_pecho_wchar.c | 57 - .../libs/ncurses/ncurses/widechar/lib_slk_wset.c | 149 - .../libs/ncurses/ncurses/widechar/lib_unget_wch.c | 80 - .../libs/ncurses/ncurses/widechar/lib_vid_attr.c | 94 - .../libs/ncurses/ncurses/widechar/lib_vline_set.c | 78 - .../libs/ncurses/ncurses/widechar/lib_wacs.c | 114 - .../libs/ncurses/ncurses/widechar/lib_wunctrl.c | 56 - Build/source/libs/ncurses/tar-copy.sh | 77 - Build/source/libs/ncurses/withenable.ac | 15 - Build/source/libs/zlib/Makefile.in | 929 +- Build/source/libs/zlib/README | 130 +- Build/source/libs/zlib/configure | 6363 ++++- 646 files changed, 6885 insertions(+), 250175 deletions(-) delete mode 100644 Build/source/libs/freetype/.cvsignore delete mode 100644 Build/source/libs/freetype/.cvsignore.delete delete mode 100644 Build/source/libs/freetype/ChangeLog delete mode 100644 Build/source/libs/freetype/FILES delete mode 100644 Build/source/libs/freetype/INSTALL delete mode 100644 Build/source/libs/freetype/MakeSub.in delete mode 100644 Build/source/libs/freetype/Makefile.in delete mode 100644 Build/source/libs/freetype/PATENTS delete mode 100644 Build/source/libs/freetype/README delete mode 100644 Build/source/libs/freetype/ac/freetype.ac delete mode 100644 Build/source/libs/freetype/ac/withenable.ac delete mode 100644 Build/source/libs/freetype/aclocal.m4 delete mode 100644 Build/source/libs/freetype/announce delete mode 100755 Build/source/libs/freetype/config.guess delete mode 100755 Build/source/libs/freetype/config.sub delete mode 100755 Build/source/libs/freetype/configure delete mode 100644 Build/source/libs/freetype/configure.in delete mode 100644 Build/source/libs/freetype/docs/FAQ delete mode 100644 Build/source/libs/freetype/docs/FTL.txt delete mode 100644 Build/source/libs/freetype/docs/GPL.txt delete mode 100644 Build/source/libs/freetype/docs/apiref.txt delete mode 100644 Build/source/libs/freetype/docs/apirefx.txt delete mode 100644 Build/source/libs/freetype/docs/bitmaps.txt delete mode 100644 Build/source/libs/freetype/docs/changes.txt delete mode 100644 Build/source/libs/freetype/docs/convntns.txt delete mode 100644 Build/source/libs/freetype/docs/credits delete mode 100644 Build/source/libs/freetype/docs/freetype.lsm delete mode 100644 Build/source/libs/freetype/docs/glyphs.htm delete mode 100644 Build/source/libs/freetype/docs/glyphs.txt delete mode 100644 Build/source/libs/freetype/docs/i18n.txt delete mode 100644 Build/source/libs/freetype/docs/image/baselin2.gif delete mode 100644 Build/source/libs/freetype/docs/image/baseline.gif delete mode 100644 Build/source/libs/freetype/docs/image/emsquare.gif delete mode 100644 Build/source/libs/freetype/docs/image/freetype.gif delete mode 100644 Build/source/libs/freetype/docs/image/freetype.png delete mode 100644 Build/source/libs/freetype/docs/image/grid1.gif delete mode 100644 Build/source/libs/freetype/docs/image/grid2.gif delete mode 100644 Build/source/libs/freetype/docs/image/grid3.gif delete mode 100644 Build/source/libs/freetype/docs/image/metrics.gif delete mode 100644 Build/source/libs/freetype/docs/image/metrics2.gif delete mode 100644 Build/source/libs/freetype/docs/image/small2.gif delete mode 100644 Build/source/libs/freetype/docs/image/tfp-back.png delete mode 100644 Build/source/libs/freetype/docs/optimize.txt delete mode 100644 Build/source/libs/freetype/docs/porting.txt delete mode 100644 Build/source/libs/freetype/docs/raster.txt delete mode 100644 Build/source/libs/freetype/docs/readme.txt delete mode 100644 Build/source/libs/freetype/docs/threads.txt delete mode 100644 Build/source/libs/freetype/docs/user.txt delete mode 100644 Build/source/libs/freetype/freetype.ac delete mode 100644 Build/source/libs/freetype/freetype.spec delete mode 100644 Build/source/libs/freetype/ft_conf.h.in delete mode 100644 Build/source/libs/freetype/howto/mac.txt delete mode 100644 Build/source/libs/freetype/howto/msdos.txt delete mode 100644 Build/source/libs/freetype/howto/os2.txt delete mode 100644 Build/source/libs/freetype/howto/unix.txt delete mode 100644 Build/source/libs/freetype/howto/windows.txt delete mode 100755 Build/source/libs/freetype/install-sh delete mode 100644 Build/source/libs/freetype/lib/.cvsignore delete mode 100644 Build/source/libs/freetype/lib/.cvsignore.delete delete mode 100644 Build/source/libs/freetype/lib/arch/amigaos/Makefile.gcc delete mode 100644 Build/source/libs/freetype/lib/arch/amigaos/freetype.c delete mode 100644 Build/source/libs/freetype/lib/arch/amigaos/ft_conf.h delete mode 100644 Build/source/libs/freetype/lib/arch/amigaos/smakefile delete mode 100644 Build/source/libs/freetype/lib/arch/ansi/freetype.c delete mode 100644 Build/source/libs/freetype/lib/arch/ansi/ft_conf.h delete mode 100644 Build/source/libs/freetype/lib/arch/beos/Makefile delete mode 100644 Build/source/libs/freetype/lib/arch/beos/freetype.c delete mode 100644 Build/source/libs/freetype/lib/arch/beos/ft_conf.h delete mode 100644 Build/source/libs/freetype/lib/arch/beos/ttmutex.c delete mode 100644 Build/source/libs/freetype/lib/arch/debugger/Makefile delete mode 100644 Build/source/libs/freetype/lib/arch/debugger/freetype.c delete mode 100644 Build/source/libs/freetype/lib/arch/debugger/ft_conf.h delete mode 100644 Build/source/libs/freetype/lib/arch/mac/README delete mode 100644 Build/source/libs/freetype/lib/arch/mac/freetype.c delete mode 100644 Build/source/libs/freetype/lib/arch/mac/ft_conf.h delete mode 100644 Build/source/libs/freetype/lib/arch/mac/ttmmap.c delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/Makefile.BC delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/Makefile.MS delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/Makefile.TC delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/Makefile.VC delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/Makefile.dm delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/Makefile.gcc delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/Makefile.wat delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/depend.dos delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/freetype.c delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/ft_conf.h delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/hugefile.c delete mode 100644 Build/source/libs/freetype/lib/arch/msdos/hugemem.c delete mode 100755 Build/source/libs/freetype/lib/arch/msdos/makedep delete mode 100644 Build/source/libs/freetype/lib/arch/os2/Makefile.dm delete mode 100644 Build/source/libs/freetype/lib/arch/os2/Makefile.emx delete mode 100644 Build/source/libs/freetype/lib/arch/os2/Makefile.icc delete mode 100644 Build/source/libs/freetype/lib/arch/os2/Makefile.wat delete mode 100644 Build/source/libs/freetype/lib/arch/os2/freetype.c delete mode 100644 Build/source/libs/freetype/lib/arch/os2/ft_conf.h delete mode 100644 Build/source/libs/freetype/lib/arch/os2/os2file.c delete mode 100644 Build/source/libs/freetype/lib/arch/unix/.cvsignore delete mode 100644 Build/source/libs/freetype/lib/arch/unix/.cvsignore.delete delete mode 100644 Build/source/libs/freetype/lib/arch/unix/Makefile.in delete mode 100644 Build/source/libs/freetype/lib/arch/unix/freetype.c delete mode 100644 Build/source/libs/freetype/lib/arch/unix/ttmmap.c delete mode 100644 Build/source/libs/freetype/lib/arch/vms/README delete mode 100644 Build/source/libs/freetype/lib/arch/vms/descrip.mms delete mode 100644 Build/source/libs/freetype/lib/arch/vms/ft_conf.h delete mode 100644 Build/source/libs/freetype/lib/arch/win16/Makefile.BC delete mode 100644 Build/source/libs/freetype/lib/arch/win16/Makefile.MS delete mode 100644 Build/source/libs/freetype/lib/arch/win16/Makefile.VC delete mode 100644 Build/source/libs/freetype/lib/arch/win16/depend.win delete mode 100644 Build/source/libs/freetype/lib/arch/win16/freetype.c delete mode 100644 Build/source/libs/freetype/lib/arch/win16/ft_conf.h delete mode 100644 Build/source/libs/freetype/lib/arch/win16/hugefile.c delete mode 100644 Build/source/libs/freetype/lib/arch/win16/hugemem.c delete mode 100755 Build/source/libs/freetype/lib/arch/win16/makedef delete mode 100755 Build/source/libs/freetype/lib/arch/win16/makedep delete mode 100644 Build/source/libs/freetype/lib/arch/win16/ttf.def delete mode 100644 Build/source/libs/freetype/lib/arch/win32/.cvsignore.delete delete mode 100644 Build/source/libs/freetype/lib/arch/win32/Makefile.BC delete mode 100644 Build/source/libs/freetype/lib/arch/win32/Makefile.CL delete mode 100644 Build/source/libs/freetype/lib/arch/win32/Makefile.Min delete mode 100644 Build/source/libs/freetype/lib/arch/win32/Makefile.VC delete mode 100644 Build/source/libs/freetype/lib/arch/win32/Makefile.gcc delete mode 100644 Build/source/libs/freetype/lib/arch/win32/depend.win delete mode 100644 Build/source/libs/freetype/lib/arch/win32/freetype.c delete mode 100644 Build/source/libs/freetype/lib/arch/win32/freetype.dsp delete mode 100644 Build/source/libs/freetype/lib/arch/win32/freetype.dsw delete mode 100644 Build/source/libs/freetype/lib/arch/win32/freetype.ide delete mode 100644 Build/source/libs/freetype/lib/arch/win32/freetype.mak delete mode 100644 Build/source/libs/freetype/lib/arch/win32/freetype.mdp delete mode 100644 Build/source/libs/freetype/lib/arch/win32/ft_conf.h delete mode 100644 Build/source/libs/freetype/lib/arch/win32/ft_dll.dsp delete mode 100755 Build/source/libs/freetype/lib/arch/win32/makedef delete mode 100755 Build/source/libs/freetype/lib/arch/win32/makedep delete mode 100644 Build/source/libs/freetype/lib/arch/win32/ttf.def delete mode 100644 Build/source/libs/freetype/lib/extend/ftxcmap.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxcmap.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxerr18.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxerr18.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxgasp.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxgasp.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxgdef.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxgdef.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxgpos.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxgpos.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxgsub.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxgsub.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxkern.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxkern.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxopen.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxopen.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxopenf.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxpost.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxpost.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxsbit.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxsbit.h delete mode 100644 Build/source/libs/freetype/lib/extend/ftxwidth.c delete mode 100644 Build/source/libs/freetype/lib/extend/ftxwidth.h delete mode 100644 Build/source/libs/freetype/lib/extend/readme.1st delete mode 100644 Build/source/libs/freetype/lib/freetype.h delete mode 100644 Build/source/libs/freetype/lib/fterrid.h delete mode 100644 Build/source/libs/freetype/lib/ftnameid.h delete mode 100644 Build/source/libs/freetype/lib/ttapi.c delete mode 100644 Build/source/libs/freetype/lib/ttcache.c delete mode 100644 Build/source/libs/freetype/lib/ttcache.h delete mode 100644 Build/source/libs/freetype/lib/ttcalc.c delete mode 100644 Build/source/libs/freetype/lib/ttcalc.h delete mode 100644 Build/source/libs/freetype/lib/ttcmap.c delete mode 100644 Build/source/libs/freetype/lib/ttcmap.h delete mode 100644 Build/source/libs/freetype/lib/ttconfig.h delete mode 100644 Build/source/libs/freetype/lib/ttdebug.c delete mode 100644 Build/source/libs/freetype/lib/ttdebug.h delete mode 100644 Build/source/libs/freetype/lib/ttengine.h delete mode 100644 Build/source/libs/freetype/lib/ttextend.c delete mode 100644 Build/source/libs/freetype/lib/ttextend.h delete mode 100644 Build/source/libs/freetype/lib/ttfile.c delete mode 100644 Build/source/libs/freetype/lib/ttfile.h delete mode 100644 Build/source/libs/freetype/lib/ttgload.c delete mode 100644 Build/source/libs/freetype/lib/ttgload.h delete mode 100644 Build/source/libs/freetype/lib/ttinterp.c delete mode 100644 Build/source/libs/freetype/lib/ttinterp.h delete mode 100644 Build/source/libs/freetype/lib/ttload.c delete mode 100644 Build/source/libs/freetype/lib/ttload.h delete mode 100644 Build/source/libs/freetype/lib/ttmemory.c delete mode 100644 Build/source/libs/freetype/lib/ttmemory.h delete mode 100644 Build/source/libs/freetype/lib/ttmutex.c delete mode 100644 Build/source/libs/freetype/lib/ttmutex.h delete mode 100644 Build/source/libs/freetype/lib/ttobjs.c delete mode 100644 Build/source/libs/freetype/lib/ttobjs.h delete mode 100644 Build/source/libs/freetype/lib/ttraster.c delete mode 100644 Build/source/libs/freetype/lib/ttraster.h delete mode 100644 Build/source/libs/freetype/lib/tttables.h delete mode 100644 Build/source/libs/freetype/lib/tttags.h delete mode 100644 Build/source/libs/freetype/lib/tttypes.h delete mode 100644 Build/source/libs/freetype/license.txt delete mode 100755 Build/source/libs/freetype/ltconfig delete mode 100755 Build/source/libs/freetype/ltmain.sh delete mode 100755 Build/source/libs/freetype/mkinstalldirs delete mode 100644 Build/source/libs/freetype/net.m4 delete mode 100644 Build/source/libs/freetype/pascal/README delete mode 100644 Build/source/libs/freetype/po/.cvsignore delete mode 100644 Build/source/libs/freetype/po/.cvsignore.delete delete mode 100644 Build/source/libs/freetype/po/Makefile.in.in delete mode 100644 Build/source/libs/freetype/po/POTFILES.in delete mode 100644 Build/source/libs/freetype/po/cs.po delete mode 100644 Build/source/libs/freetype/po/de.po delete mode 100644 Build/source/libs/freetype/po/es.po delete mode 100644 Build/source/libs/freetype/po/fr.po delete mode 100644 Build/source/libs/freetype/po/freetype.pot delete mode 100644 Build/source/libs/freetype/po/nl.po delete mode 100644 Build/source/libs/freetype/readme.1st delete mode 100644 Build/source/libs/freetype/test/.cvsignore delete mode 100644 Build/source/libs/freetype/test/.cvsignore.delete delete mode 100644 Build/source/libs/freetype/test/README delete mode 100644 Build/source/libs/freetype/test/arabic.c delete mode 100644 Build/source/libs/freetype/test/arabic.h delete mode 100644 Build/source/libs/freetype/test/arch/amigaos/Makefile.gcc delete mode 100644 Build/source/libs/freetype/test/arch/amigaos/TODO delete mode 100644 Build/source/libs/freetype/test/arch/amigaos/gfsamiga.c delete mode 100644 Build/source/libs/freetype/test/arch/amigaos/gw_amiga.c delete mode 100644 Build/source/libs/freetype/test/arch/amigaos/smakefile delete mode 100644 Build/source/libs/freetype/test/arch/debugger/Makefile delete mode 100644 Build/source/libs/freetype/test/arch/msdos/Makefile.BC delete mode 100644 Build/source/libs/freetype/test/arch/msdos/Makefile.MS delete mode 100644 Build/source/libs/freetype/test/arch/msdos/Makefile.TC delete mode 100644 Build/source/libs/freetype/test/arch/msdos/Makefile.VC delete mode 100644 Build/source/libs/freetype/test/arch/msdos/Makefile.dm delete mode 100644 Build/source/libs/freetype/test/arch/msdos/Makefile.gcc delete mode 100644 Build/source/libs/freetype/test/arch/msdos/depend.dos delete mode 100644 Build/source/libs/freetype/test/arch/msdos/gfs_dos.c delete mode 100644 Build/source/libs/freetype/test/arch/msdos/gmain_dj.c delete mode 100755 Build/source/libs/freetype/test/arch/msdos/makedep delete mode 100644 Build/source/libs/freetype/test/arch/msdos/time_tc.h delete mode 100644 Build/source/libs/freetype/test/arch/os2/Makefile.dm delete mode 100644 Build/source/libs/freetype/test/arch/os2/Makefile.emx delete mode 100644 Build/source/libs/freetype/test/arch/os2/Makefile.icc delete mode 100644 Build/source/libs/freetype/test/arch/os2/Makefile.wat delete mode 100644 Build/source/libs/freetype/test/arch/os2/gfs_os2.c delete mode 100644 Build/source/libs/freetype/test/arch/os2/gpm_os2.c delete mode 100644 Build/source/libs/freetype/test/arch/os2/gpm_os2.def delete mode 100644 Build/source/libs/freetype/test/arch/unix/.cvsignore delete mode 100644 Build/source/libs/freetype/test/arch/unix/.cvsignore.delete delete mode 100644 Build/source/libs/freetype/test/arch/unix/Makefile.in delete mode 100644 Build/source/libs/freetype/test/arch/unix/gwin_x11.c delete mode 100644 Build/source/libs/freetype/test/arch/win16/Makefile.BC delete mode 100644 Build/source/libs/freetype/test/arch/win16/Makefile.MS delete mode 100644 Build/source/libs/freetype/test/arch/win16/Makefile.VC delete mode 100644 Build/source/libs/freetype/test/arch/win16/depend.win delete mode 100644 Build/source/libs/freetype/test/arch/win16/gw_win16.c delete mode 100755 Build/source/libs/freetype/test/arch/win16/makedep delete mode 100644 Build/source/libs/freetype/test/arch/win32/Makefile.BC delete mode 100644 Build/source/libs/freetype/test/arch/win32/Makefile.CL delete mode 100644 Build/source/libs/freetype/test/arch/win32/Makefile.Min delete mode 100644 Build/source/libs/freetype/test/arch/win32/Makefile.gcc delete mode 100644 Build/source/libs/freetype/test/arch/win32/depend.win delete mode 100644 Build/source/libs/freetype/test/arch/win32/gw_win32.c delete mode 100755 Build/source/libs/freetype/test/arch/win32/makedep delete mode 100644 Build/source/libs/freetype/test/blitter.c delete mode 100644 Build/source/libs/freetype/test/blitter.h delete mode 100644 Build/source/libs/freetype/test/common.c delete mode 100644 Build/source/libs/freetype/test/common.h delete mode 100644 Build/source/libs/freetype/test/display.c delete mode 100644 Build/source/libs/freetype/test/display.h delete mode 100644 Build/source/libs/freetype/test/fdebug.c delete mode 100644 Build/source/libs/freetype/test/ftdump.c delete mode 100644 Build/source/libs/freetype/test/fterror.c delete mode 100644 Build/source/libs/freetype/test/ftlint.c delete mode 100644 Build/source/libs/freetype/test/ftmetric.c delete mode 100644 Build/source/libs/freetype/test/ftsbit.c delete mode 100644 Build/source/libs/freetype/test/ftstring.c delete mode 100644 Build/source/libs/freetype/test/ftstrpnm.c delete mode 100644 Build/source/libs/freetype/test/ftstrtto.c delete mode 100644 Build/source/libs/freetype/test/fttimer.c delete mode 100644 Build/source/libs/freetype/test/ftview.c delete mode 100644 Build/source/libs/freetype/test/ftzoom.c delete mode 100644 Build/source/libs/freetype/test/gdriver.h delete mode 100644 Build/source/libs/freetype/test/gevents.h delete mode 100644 Build/source/libs/freetype/test/gmain.c delete mode 100644 Build/source/libs/freetype/test/gmain.h delete mode 100644 Build/source/libs/freetype/test/textdisp.c delete mode 100644 Build/source/libs/freetype/test/textdisp.h delete mode 100644 Build/source/libs/freetype/withenable.ac delete mode 100644 Build/source/libs/ncurses/ANNOUNCE delete mode 100644 Build/source/libs/ncurses/INSTALL delete mode 100644 Build/source/libs/ncurses/MANIFEST delete mode 100644 Build/source/libs/ncurses/Makefile.in delete mode 100644 Build/source/libs/ncurses/Makefile.os2 delete mode 100644 Build/source/libs/ncurses/NEWS delete mode 100644 Build/source/libs/ncurses/README delete mode 100644 Build/source/libs/ncurses/README.emx delete mode 100644 Build/source/libs/ncurses/TO-DO delete mode 100644 Build/source/libs/ncurses/aclocal.m4 delete mode 100644 Build/source/libs/ncurses/announce.html.in delete mode 100755 Build/source/libs/ncurses/config.guess delete mode 100755 Build/source/libs/ncurses/config.sub delete mode 100755 Build/source/libs/ncurses/configure delete mode 100644 Build/source/libs/ncurses/configure.in delete mode 100644 Build/source/libs/ncurses/convert_configure.pl delete mode 100644 Build/source/libs/ncurses/dist.mk delete mode 100644 Build/source/libs/ncurses/include/Caps delete mode 100644 Build/source/libs/ncurses/include/Caps.aix4 delete mode 100644 Build/source/libs/ncurses/include/Caps.hpux11 delete mode 100644 Build/source/libs/ncurses/include/Caps.keys delete mode 100644 Build/source/libs/ncurses/include/Caps.osf1r5 delete mode 100644 Build/source/libs/ncurses/include/Caps.uwin delete mode 100755 Build/source/libs/ncurses/include/MKhashsize.sh delete mode 100755 Build/source/libs/ncurses/include/MKkey_defs.sh delete mode 100755 Build/source/libs/ncurses/include/MKncurses_def.sh delete mode 100755 Build/source/libs/ncurses/include/MKparametrized.sh delete mode 100644 Build/source/libs/ncurses/include/MKterm.h.awk.in delete mode 100644 Build/source/libs/ncurses/include/Makefile.in delete mode 100644 Build/source/libs/ncurses/include/capdefaults.c delete mode 100644 Build/source/libs/ncurses/include/curses.h.in delete mode 100644 Build/source/libs/ncurses/include/curses.tail delete mode 100644 Build/source/libs/ncurses/include/curses.wide delete mode 100755 Build/source/libs/ncurses/include/edit_cfg.sh delete mode 100644 Build/source/libs/ncurses/include/headers delete mode 100644 Build/source/libs/ncurses/include/nc_alloc.h delete mode 100644 Build/source/libs/ncurses/include/nc_panel.h delete mode 100644 Build/source/libs/ncurses/include/ncurses_cfg.hin delete mode 100644 Build/source/libs/ncurses/include/ncurses_defs delete mode 100644 Build/source/libs/ncurses/include/ncurses_dll.h delete mode 100644 Build/source/libs/ncurses/include/term_entry.h delete mode 100644 Build/source/libs/ncurses/include/termcap.h.in delete mode 100644 Build/source/libs/ncurses/include/tic.h delete mode 100644 Build/source/libs/ncurses/include/unctrl.h.in delete mode 100755 Build/source/libs/ncurses/install-sh delete mode 100755 Build/source/libs/ncurses/man/MKterminfo.sh delete mode 100644 Build/source/libs/ncurses/man/Makefile.in delete mode 100644 Build/source/libs/ncurses/man/captoinfo.1m delete mode 100644 Build/source/libs/ncurses/man/clear.1 delete mode 100644 Build/source/libs/ncurses/man/curs_add_wch.3x delete mode 100644 Build/source/libs/ncurses/man/curs_add_wchstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_addch.3x delete mode 100644 Build/source/libs/ncurses/man/curs_addchstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_addstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_addwstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_attr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_beep.3x delete mode 100644 Build/source/libs/ncurses/man/curs_bkgd.3x delete mode 100644 Build/source/libs/ncurses/man/curs_bkgrnd.3x delete mode 100644 Build/source/libs/ncurses/man/curs_border.3x delete mode 100644 Build/source/libs/ncurses/man/curs_border_set.3x delete mode 100644 Build/source/libs/ncurses/man/curs_clear.3x delete mode 100644 Build/source/libs/ncurses/man/curs_color.3x delete mode 100644 Build/source/libs/ncurses/man/curs_delch.3x delete mode 100644 Build/source/libs/ncurses/man/curs_deleteln.3x delete mode 100644 Build/source/libs/ncurses/man/curs_extend.3x delete mode 100644 Build/source/libs/ncurses/man/curs_get_wch.3x delete mode 100644 Build/source/libs/ncurses/man/curs_get_wstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_getcchar.3x delete mode 100644 Build/source/libs/ncurses/man/curs_getch.3x delete mode 100644 Build/source/libs/ncurses/man/curs_getstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_getyx.3x delete mode 100644 Build/source/libs/ncurses/man/curs_in_wch.3x delete mode 100644 Build/source/libs/ncurses/man/curs_in_wchstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_inch.3x delete mode 100644 Build/source/libs/ncurses/man/curs_inchstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_initscr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_inopts.3x delete mode 100644 Build/source/libs/ncurses/man/curs_ins_wch.3x delete mode 100644 Build/source/libs/ncurses/man/curs_ins_wstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_insch.3x delete mode 100644 Build/source/libs/ncurses/man/curs_insstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_instr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_inwstr.3x delete mode 100644 Build/source/libs/ncurses/man/curs_kernel.3x delete mode 100644 Build/source/libs/ncurses/man/curs_mouse.3x delete mode 100644 Build/source/libs/ncurses/man/curs_move.3x delete mode 100644 Build/source/libs/ncurses/man/curs_outopts.3x delete mode 100644 Build/source/libs/ncurses/man/curs_overlay.3x delete mode 100644 Build/source/libs/ncurses/man/curs_pad.3x delete mode 100644 Build/source/libs/ncurses/man/curs_print.3x delete mode 100644 Build/source/libs/ncurses/man/curs_printw.3x delete mode 100644 Build/source/libs/ncurses/man/curs_refresh.3x delete mode 100644 Build/source/libs/ncurses/man/curs_scanw.3x delete mode 100644 Build/source/libs/ncurses/man/curs_scr_dump.3x delete mode 100644 Build/source/libs/ncurses/man/curs_scroll.3x delete mode 100644 Build/source/libs/ncurses/man/curs_slk.3x delete mode 100644 Build/source/libs/ncurses/man/curs_termattrs.3x delete mode 100644 Build/source/libs/ncurses/man/curs_termcap.3x delete mode 100644 Build/source/libs/ncurses/man/curs_terminfo.3x delete mode 100644 Build/source/libs/ncurses/man/curs_touch.3x delete mode 100644 Build/source/libs/ncurses/man/curs_trace.3x delete mode 100644 Build/source/libs/ncurses/man/curs_util.3x delete mode 100644 Build/source/libs/ncurses/man/curs_window.3x delete mode 100644 Build/source/libs/ncurses/man/default_colors.3x delete mode 100644 Build/source/libs/ncurses/man/define_key.3x delete mode 100644 Build/source/libs/ncurses/man/form.3x delete mode 100644 Build/source/libs/ncurses/man/form_cursor.3x delete mode 100644 Build/source/libs/ncurses/man/form_data.3x delete mode 100644 Build/source/libs/ncurses/man/form_driver.3x delete mode 100644 Build/source/libs/ncurses/man/form_field.3x delete mode 100644 Build/source/libs/ncurses/man/form_field_attributes.3x delete mode 100644 Build/source/libs/ncurses/man/form_field_buffer.3x delete mode 100644 Build/source/libs/ncurses/man/form_field_info.3x delete mode 100644 Build/source/libs/ncurses/man/form_field_just.3x delete mode 100644 Build/source/libs/ncurses/man/form_field_new.3x delete mode 100644 Build/source/libs/ncurses/man/form_field_opts.3x delete mode 100644 Build/source/libs/ncurses/man/form_field_userptr.3x delete mode 100644 Build/source/libs/ncurses/man/form_field_validation.3x delete mode 100644 Build/source/libs/ncurses/man/form_fieldtype.3x delete mode 100644 Build/source/libs/ncurses/man/form_hook.3x delete mode 100644 Build/source/libs/ncurses/man/form_new.3x delete mode 100644 Build/source/libs/ncurses/man/form_new_page.3x delete mode 100644 Build/source/libs/ncurses/man/form_opts.3x delete mode 100644 Build/source/libs/ncurses/man/form_page.3x delete mode 100644 Build/source/libs/ncurses/man/form_post.3x delete mode 100644 Build/source/libs/ncurses/man/form_requestname.3x delete mode 100644 Build/source/libs/ncurses/man/form_userptr.3x delete mode 100644 Build/source/libs/ncurses/man/form_win.3x delete mode 100644 Build/source/libs/ncurses/man/infocmp.1m delete mode 100644 Build/source/libs/ncurses/man/infotocap.1m delete mode 100644 Build/source/libs/ncurses/man/key_defined.3x delete mode 100644 Build/source/libs/ncurses/man/keybound.3x delete mode 100644 Build/source/libs/ncurses/man/keyok.3x delete mode 100755 Build/source/libs/ncurses/man/make_sed.sh delete mode 100644 Build/source/libs/ncurses/man/man_db.renames delete mode 100644 Build/source/libs/ncurses/man/manlinks.sed delete mode 100644 Build/source/libs/ncurses/man/menu.3x delete mode 100644 Build/source/libs/ncurses/man/menu_attributes.3x delete mode 100644 Build/source/libs/ncurses/man/menu_cursor.3x delete mode 100644 Build/source/libs/ncurses/man/menu_driver.3x delete mode 100644 Build/source/libs/ncurses/man/menu_format.3x delete mode 100644 Build/source/libs/ncurses/man/menu_hook.3x delete mode 100644 Build/source/libs/ncurses/man/menu_items.3x delete mode 100644 Build/source/libs/ncurses/man/menu_mark.3x delete mode 100644 Build/source/libs/ncurses/man/menu_new.3x delete mode 100644 Build/source/libs/ncurses/man/menu_opts.3x delete mode 100644 Build/source/libs/ncurses/man/menu_pattern.3x delete mode 100644 Build/source/libs/ncurses/man/menu_post.3x delete mode 100644 Build/source/libs/ncurses/man/menu_requestname.3x delete mode 100644 Build/source/libs/ncurses/man/menu_spacing.3x delete mode 100644 Build/source/libs/ncurses/man/menu_userptr.3x delete mode 100644 Build/source/libs/ncurses/man/menu_win.3x delete mode 100644 Build/source/libs/ncurses/man/mitem_current.3x delete mode 100644 Build/source/libs/ncurses/man/mitem_name.3x delete mode 100644 Build/source/libs/ncurses/man/mitem_new.3x delete mode 100644 Build/source/libs/ncurses/man/mitem_opts.3x delete mode 100644 Build/source/libs/ncurses/man/mitem_userptr.3x delete mode 100644 Build/source/libs/ncurses/man/mitem_value.3x delete mode 100644 Build/source/libs/ncurses/man/mitem_visible.3x delete mode 100644 Build/source/libs/ncurses/man/ncurses.3x delete mode 100644 Build/source/libs/ncurses/man/panel.3x delete mode 100644 Build/source/libs/ncurses/man/resizeterm.3x delete mode 100644 Build/source/libs/ncurses/man/term.5 delete mode 100644 Build/source/libs/ncurses/man/term.7 delete mode 100644 Build/source/libs/ncurses/man/terminfo.head delete mode 100644 Build/source/libs/ncurses/man/terminfo.tail delete mode 100644 Build/source/libs/ncurses/man/tic.1m delete mode 100644 Build/source/libs/ncurses/man/toe.1m delete mode 100644 Build/source/libs/ncurses/man/tput.1 delete mode 100644 Build/source/libs/ncurses/man/tset.1 delete mode 100644 Build/source/libs/ncurses/man/wresize.3x delete mode 100644 Build/source/libs/ncurses/mk-0th.awk delete mode 100644 Build/source/libs/ncurses/mk-1st.awk delete mode 100644 Build/source/libs/ncurses/mk-2nd.awk delete mode 100755 Build/source/libs/ncurses/mkinstalldirs delete mode 100644 Build/source/libs/ncurses/ncurses.ac delete mode 100644 Build/source/libs/ncurses/ncurses/Makefile.in delete mode 100644 Build/source/libs/ncurses/ncurses/README delete mode 100644 Build/source/libs/ncurses/ncurses/README.IZ delete mode 100644 Build/source/libs/ncurses/ncurses/SigAction.h delete mode 100644 Build/source/libs/ncurses/ncurses/base/MKkeyname.awk delete mode 100755 Build/source/libs/ncurses/ncurses/base/MKlib_gen.sh delete mode 100644 Build/source/libs/ncurses/ncurses/base/MKunctrl.awk delete mode 100644 Build/source/libs/ncurses/ncurses/base/README delete mode 100644 Build/source/libs/ncurses/ncurses/base/define_key.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/key_defined.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/keybound.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/keyok.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_addch.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_addstr.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_beep.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_bkgd.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_box.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_chgat.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_clear.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_clearok.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_clrbot.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_clreol.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_color.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_colorset.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_delch.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_delwin.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_dft_fgbg.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_echo.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_endwin.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_erase.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_flash.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_freeall.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_getch.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_getstr.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_hline.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_immedok.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_inchstr.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_initscr.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_insch.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_insdel.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_insnstr.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_instr.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_isendwin.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_leaveok.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_mouse.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_move.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_mvwin.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_newterm.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_newwin.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_nl.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_overlay.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_pad.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_printw.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_redrawln.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_refresh.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_restart.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_scanw.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_screen.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_scroll.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_scrollok.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_scrreg.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_set_term.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slk.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slkatr_set.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slkatrof.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slkatron.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slkatrset.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slkattr.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slkclear.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slkcolor.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slkinit.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slklab.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slkrefr.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slkset.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_slktouch.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_touch.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_ungetch.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_vline.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_wattroff.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_wattron.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_winch.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/lib_window.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/memmove.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/nc_panel.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/resizeterm.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/safe_sprintf.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/sigaction.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/tries.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/version.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/vsscanf.c delete mode 100644 Build/source/libs/ncurses/ncurses/base/wresize.c delete mode 100644 Build/source/libs/ncurses/ncurses/curses.priv.h delete mode 100644 Build/source/libs/ncurses/ncurses/fifo_defs.h delete mode 100644 Build/source/libs/ncurses/ncurses/llib-lncurses delete mode 100644 Build/source/libs/ncurses/ncurses/llib-lncursesw delete mode 100644 Build/source/libs/ncurses/ncurses/modules delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/MKcaptab.awk delete mode 100755 Build/source/libs/ncurses/ncurses/tinfo/MKfallback.sh delete mode 100755 Build/source/libs/ncurses/ncurses/tinfo/MKkeys_list.sh delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/MKnames.awk delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/README delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/access.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/add_tries.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/alloc_entry.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/alloc_ttype.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/captoinfo.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/comp_error.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/comp_expand.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/comp_hash.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/comp_parse.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/comp_scan.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/doalloc.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/free_ttype.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/getenv_num.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/home_terminfo.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/init_keytry.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_acs.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_baudrate.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_cur_term.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_data.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_has_cap.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_kernel.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_longname.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_napms.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_options.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_print.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_raw.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_setup.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_termcap.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_termname.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_tgoto.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_ti.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_tparm.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_tputs.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/lib_ttyflags.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/make_keys.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/name_match.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/parse_entry.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/read_entry.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/read_termcap.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/setbuf.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/strings.c delete mode 100644 Build/source/libs/ncurses/ncurses/tinfo/write_entry.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/README delete mode 100644 Build/source/libs/ncurses/ncurses/trace/lib_trace.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/lib_traceatr.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/lib_tracebits.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/lib_tracechr.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/lib_tracedmp.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/lib_tracemse.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/trace_buf.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/trace_tries.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/trace_xnames.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/varargs.c delete mode 100644 Build/source/libs/ncurses/ncurses/trace/visbuf.c delete mode 100755 Build/source/libs/ncurses/ncurses/tty/MKexpanded.sh delete mode 100644 Build/source/libs/ncurses/ncurses/tty/hardscroll.c delete mode 100644 Build/source/libs/ncurses/ncurses/tty/hashmap.c delete mode 100644 Build/source/libs/ncurses/ncurses/tty/lib_mvcur.c delete mode 100644 Build/source/libs/ncurses/ncurses/tty/lib_tstp.c delete mode 100644 Build/source/libs/ncurses/ncurses/tty/lib_twait.c delete mode 100644 Build/source/libs/ncurses/ncurses/tty/lib_vidattr.c delete mode 100644 Build/source/libs/ncurses/ncurses/tty/tty_display.h delete mode 100644 Build/source/libs/ncurses/ncurses/tty/tty_input.h delete mode 100644 Build/source/libs/ncurses/ncurses/tty/tty_update.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/charable.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_add_wch.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_box_set.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_cchar.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_erasewchar.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_get_wch.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_get_wstr.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_hline_set.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_in_wch.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_in_wchnstr.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_ins_wch.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_inwstr.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_pecho_wchar.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_slk_wset.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_unget_wch.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_vid_attr.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_vline_set.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_wacs.c delete mode 100644 Build/source/libs/ncurses/ncurses/widechar/lib_wunctrl.c delete mode 100755 Build/source/libs/ncurses/tar-copy.sh delete mode 100644 Build/source/libs/ncurses/withenable.ac (limited to 'Build') diff --git a/Build/source/libs/freetype/.cvsignore b/Build/source/libs/freetype/.cvsignore deleted file mode 100644 index acd3f61f5f7..00000000000 --- a/Build/source/libs/freetype/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -config.cache -MakeSub -Makefile -config.status -libtool -ft_conf.h -config.log diff --git a/Build/source/libs/freetype/.cvsignore.delete b/Build/source/libs/freetype/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Build/source/libs/freetype/ChangeLog b/Build/source/libs/freetype/ChangeLog deleted file mode 100644 index 210076a2b7e..00000000000 --- a/Build/source/libs/freetype/ChangeLog +++ /dev/null @@ -1,17 +0,0 @@ -2008-01-31 Peter Breitenlohner - - Convert from autoconf-2.13 to autoconf-2.59+: - * configure.in: Adapt to autoconf-2.59+ syntax, - revert KPSE_CONFIG_FILES to AC_CONFIG_FILES. - * net.4: Replaced AC_DEFUN(FOO,...) by AC_DEFUN([FOO],...). - * aclocal.m4: Regenerated (aclocal). - * config.guess, config.sub, ltmain.sh: - Regenerated (libtoolize -if). - * configure: Regenerated (autoconf). - -2008-01-23 Karl Berry - - * freetype.ac: call AC_PROG_CPP, else when used from - ttf2pk/configure --with-system-freetype, CPP is not defined. - Report from Jonathan Kew, 3 Nov 2006 11:08:13 ff. - diff --git a/Build/source/libs/freetype/FILES b/Build/source/libs/freetype/FILES deleted file mode 100644 index f626728c73d..00000000000 --- a/Build/source/libs/freetype/FILES +++ /dev/null @@ -1,80 +0,0 @@ -This text file contains an overview of this package's directory and -file hierarchy. - - howto/ Various system-specific HOWTOs, explaining how - to compile the library on different platforms. - - lib/ The C engine source directory. - lib/extend Some standard engine extensions. - lib/arch/ System-specific configuration header files. - - docs/ Documentation. - docs/image GIF images for documentation. - - test/ The C test programs. - test/arch/ System-specific graphics drivers for test - programs. - - contrib/ Contributions directory. - contrib/mac An HQX archive containing a port to the Mac. - contrib/ttf2pk The ttf2pk TrueType to PK converter source - code. - contrib/ttf2pfb The ttf2pfb TrueType to PS font converter - source code. - contrib/ttf2bdf The ttf2bdf TrueType to BDF converter source - code. - contrib/ftos2 The FreeType/2 font server source code for - OS/2. - contrib/ttfbanner An ASCII poster program source code. - - po/ Contributions to the internationalized error - message strings extension. - - pascal/ Used to hold a Pascal version of the engine, - which is now available separately. - - -The following files might be helpful: - -FILES This file. - -readme.1st A notice about the possible interaction of patents -PATENTS owned by Apple on TrueType, with respect to FreeType. - -README A short and general introduction to FreeType. - -INSTALL The FreeType installation How-To. Everything you need - to know to build the library and the test programs. - This file contains only generic explanations. See the - `freetype/howto' directory for system-specific hints. - -license.txt The FreeType licensing conditions. -docs/FTL.txt -docs/GPL.txt - -announce The FreeType UseNet announce post. This file is sent - to some newsgroups when a new release is made. - - -The following files are Unix-specific and can be ignored on other -platforms: - -ft_conf.h.in Generic library configuration header file for - autoconf. -configure.in Generic configure script for autoconf. -configure Configure script generated from `configure.in' by - autoconf. -config.sub Script needed by configure. -config.guess Script needed by configure. -Makefile.in Generic makefile for configure. -MakeSub.in Generic makefile for libtool. -ltconfig Libtool configuration script. -ltmain.sh Libtool script. -mkinstalldirs Tool for generating subdirectories. -aclocal.m4, -net.m4 Auxiliary data files for autoconf. -install-sh Script used to install the library in a portable way -freetype.spec This file can be used as a specification to build RPMs - from the FreeType package. - ---- end of FILES --- diff --git a/Build/source/libs/freetype/INSTALL b/Build/source/libs/freetype/INSTALL deleted file mode 100644 index 42ce7020a8b..00000000000 --- a/Build/source/libs/freetype/INSTALL +++ /dev/null @@ -1,733 +0,0 @@ - - The FreeType compilation guide - - -Table of contents ------------------ - - I. Introduction - - II. Compiling and installing the C library - - 1. Choosing a configuration file - 2. Compiling the library - 3. System-specific builds - 4. Compiling the extensions - 5. Using a Makefile - 6. Building a dynamic library (`so' or `DLL') - 7. Internationalization and the `ftxerr18' extension - 8. TrueType patents - - -III. Compiling the test programs - - 1. Compiling the graphics sub-system - 2. Internationalization on Unix - 3. Compiling the test programs - 4. The `fdebug' program - - - IV. Compiling the Pascal source - - --------------------------------------------------------------------- - - - -I. Introduction -=============== - - This file gives detailed information on how to compile and install - this release of FreeType on your system. - - -******************************************************************** -* * -* FOR A QUICK INSTALLATION GUIDE, WE STRONGLY RECOMMEND TO READ * -* THE SYSTEM-SPECIFIC DOCUMENTS LOCATED IN THE `howto' DIRECTORY * -* INSTEAD OF THIS GENERIC DOCUMENTATION. * -* * -******************************************************************** - - - This package, known as the FreeType 1.5 Public Release, contains - several things which are best described by the directories - containing them: - - - `lib' - - Contains the 1.5 release of the FreeType library. It is written - in portable ANSI C and should compile fine with any type of ANSI - C compiler. - - Note however that some system-specific files are provided in the - `lib/arch' directory, in order to provide enhanced performance. - - If you need to include FreeType in a graphics library or an - embedded system, you will most probably only need to use its - contents and discard the rest. - - - `test' - - Contains test and demo programs used during development. Note - that some of these programs might not compile on all platforms, - as they need to display graphics. - - - `po' - - On Unix, all of FreeType test programs support - internationalization through the use of the `gettext' library. - This directory contains `po' files, which are used to translate - the original English text into language-specific one. - - Note also that this release contains an extension, called - `ftxerr18' used to return internationalized strings from the - usual FreeType error codes. The `po' files also contain - translations for this extension. - - If you don't plan to use `ftxerr18' or internationalization, - simply ignore it. Note also that even if `gettext' isn't - available on your system, the test programs will be compiled - correctly (using the `--disable-nls' configure switch). - - - `contrib' - - Contains a set of contributed tools and utilities related to - TrueType or FreeType. Here you can find real situations how to - use the library. - - - This file explains how to compile the library, and the test - programs on various platforms. - - - -II. Compiling the C library -=========================== - - -******************************************************************** -* * -* NOTE THAT WE STRONGLY RECOMMEND TO READ THE SYSTEM-SPECIFIC * -* DOCUMENTS LOCATED IN THE `howto' DIRECTORY FOR A * -* `QUICK'N'EASY' COMPILATION & INSTALLATION GUIDE ON YOUR * -* PLATFORM. THE FOLLOWING IS A VERY DETAILED EXPLANATION ON HOW * -* TO COMPILE THE LIBRARY. * -* * -******************************************************************** - - - The following concepts are important to build the library. - - - 1. Choosing a configuration file - -------------------------------- - - The source code for the C library is located in the `lib' - directory. - - It uses a file named `ft_conf.h', which contains the definitions - of many configuration macros to toggle various engine features, - as well as tell system-specific information (e.g., the size of - the `int' type in bytes, etc). - - There are several configuration files provided with this - release. They are located in the `lib/arch/' directory, - where stands for a given architecture or environment. - - For example, the file `lib/arch/ansi/ft_conf.h' can be used to - build the library with any ANSI-compliant compiler and runtime - library. - - This release also provides configuration files for the following - systems: MS-DOS, OS/2, Unix, VMS, Win 16, Win 32, Amiga OS, Mac, - and BeOS. - - Make sure, when compiling each source file of the FreeType - library, to include the path to your configuration file in your - include directories. - - - 2. Compiling the library - ------------------------ - - The library can be quickly compiled by invoking a Makefile, as - described in the system-specific documents in the `howto' - directory. - - We will now describe how to compile the library by hand. - - Traditionally, building a library like FreeType needs the - following steps: - - - Compile each individual `.c' file into the corresponding - object file, whose extension might be `.o' or `.obj', - depending on the platform. - - - Group all object files into a library (e.g. `libfreetype.a' or - `freetype.lib'), which is later used at link time to build the - executables using it. - - For example, to build a static FreeType library on an ANSI - system, with gcc, one should type - - cd lib # go to `lib' directory - gcc -c -I arch/ansi tt*.c # compile base engine sources - ar -r libfreetype.a tt*.o # create library from objects - - Note that we included the path to the configuration file in the - include list during compilation, by using the `-I' switch on the - `arch/ansi' directory. This is required to use the - configuration file named `lib/arch/ansi/ft_conf.h'. - - However, we recommend you to build the base FreeType engine as a - SINGLE OBJECT FILE, i.e., a single `freetype.o' or - `freetype.obj' file containing all the code for the base engine. - It works by including all the `.c' files in a single one, and - has a few advantages over a `traditional build': - - - Because all the code is `part' of a single source file, many - internal functions need not be declared as `extern' anymore. - - This means that when compiling the engine as a dynamic - library, only FreeType external functions will (correctly) be - exported as entry points. - - This also typically allows the compiler to perform more - aggressive optimizations on the source code, and results in - somewhat faster and/or smaller overall code size depending on - your compiler and environment. - - - Compilation speed is greatly improved, as the pre-processor - and compiler need to be called only once, instead of a dozen - times. - - - During development, this allows to detect very easily - unresolved dependencies regarding the base engine's internal - symbols. - - To compile the engine as a single object file, simply go to the - `lib' directory and compile the file - `lib/arch//freetype.c'. - - For example, to compile the ANSI build with gcc in SINGLE OBJECT - MODE, use - - cd lib - gcc -c -I arch/ansi -I . arch/ansi/freetype.c - - This will create a single file called `freetype.o' containing - the object code for the base TrueType engine. - - Note that we did include the paths to the configuration file - (i.e. `arch/ansi') AND to the current directory (i.e. `.', - where the included source files are located). - - `freetype.o' only contains the base engine. Extensions to the - engine are located in the `lib/extend' directory and must be - compiled separately as described later. - - - 3. System-specific builds - ------------------------- - - The files `ttfile.c', `ttmemory.c', and `ttmutex.c' are used to - provide an implementation of i/o access, memory management, and - thread synchronization for the rest of the library. - - These source files, located in the `lib' directory, use the ANSI - C library for i/o and memory, and simply ignore threads (as the - C standard doesn't know about threads at all). - - However, this release provides, for each supported platform, - system-specific versions of these files, located in the - `lib/arch/' hierarchy. Here are a few examples: - - lib/arch/os2/os2file.c: - - A replacement for `ttfile' which directly uses OS/2 system - calls for i/o access. This results in slightly better - performance, but much reduced resource requirements. - - lib/arch/unix/ttmmap.c: - - A replacement for `ttfile' which uses memory-mapped files - instead of buffered-based reads on Unix. This increases - *dramatically* the engine's performance when reading font - files and loading glyphs. - - These files are directly included by the platform specific - versions of `freetype.c' which are located in - `lib/arch/'. This means that, by default, the - single-object build of FreeType always chooses the best - implementation available for a supported system. - - Note that it is also possible to redefine `ttmemory' or - `ttmutex' with a similar scheme. This is used, for example, by - the OS/2 font driver based on FreeType (called FreeType/2), - which uses some special system calls to allocate memory - shareable among distinct processes. - - By providing your own version of `ttfile', `ttmemory', and - `ttmutex', you are able to tailor the FreeType engine for - optimal performance and resource usage on your system. - - - 4. Compiling the extensions - --------------------------- - - The base TrueType engine is located in the `lib' directory. - This release also provides many specific extensions in - `lib/extend'. - - An extension is a simple way to extend FreeType's capabilities. - It is used to perform any of the following: - - - Access some TrueType tables that are not loaded and returned - by the base engine, like - - * the kerning table(s) - * the `gasp' table - * the glyph Postscript names - * the OpenType layout tables (GDEF, GPOS, GSUB) - - - Perform some advanced operations on the TrueType data for very - specific uses, like - - * enumerate the contents of a given charmap - * access a font file's embedded bitmaps (called sbits) - * return an array containing the dimensions of each glyph in - the font - - The idea is to keep the base engine small (under 60 kByte), - while providing optional enhancements for specific uses. - - Writing an extension is rather easy. And adding a new extension - to the engine doesn't need any modifications to the base - engine's source code. - - To compile the extensions, simply go to the `lib' directory, - then compile each file in `lib/extend'. Here is an example with - gcc: - - cd lib # go to `lib' - gcc -c -I arch/ansi -I . -I extend extend/ftx*.c - # compile all extensions - - - You can later add each extension object file to the FreeType - library file. For example, here is how to create the static - library on Unix: - - cd lib - # .. compile the engine, then the extensions - ar libfreetype.a *.o # create static library - - - 5. Using a Makefile - ------------------- - - This release also provides Makefiles for many systems and - compilers in the `lib/arch/' hierarchy. For more - information, please read the documentation in the `howto' - directory, which contains system-specific instructions on how to - use them. - - Generally, you should go the `lib' directory, then invoke your - system-specific Makefile from there. Here is an example: - - cd lib - make -farch\msdos\Makefile.TC - - to compile the library under DOS with the Turbo C compiler and - Borland make tool. Or: - - cd lib - wmake -f arch\msdos\Makefile.wat - - to compile it under DOS with the Watcom compiler and wmake tool. - - The ANSI target does not come with a Makefile, as there is no - standard make tool available on all platforms. You will have to - compile the library by hand as described in section I.3. - - Finally, note that most of the makefiles will build the library - in single object mode; for a `traditional compile', try the - `debug' target (i.e., say `make debug'). - - - 6. Building a dynamic library (`so' or `DLL') - --------------------------------------------- - - It is possible to build the engine as a dynamic library. The - method to do so can vary greatly depending on the platform. - - a. Building a shared object on Unix - - NOTE THAT THIS RELEASE USES `libtool' TO AUTOMATICALLY CREATE - A SHARED OBJECT FOR FREETYPE ON UNIX SYSTEMS THAT SUPPORT - DYNAMIC LIBRARIES. WE STRONGLY RECOMMEND YOU TO READ THE - `howto/unix.txt' FILE TO KNOW HOW TO USE THE `configure' - SCRIPT. THIS SUB-SECTION DESCRIBES HOW TO COMPILE THE SHARED - OBJECT BY HAND. - - In order to build a shared object like `libfreetype.so' on - Unix, one has to compile each object file as - position-independent code (a.k.a. PIC). - - We also strongly recommend to build the base engine as a - single object, as this prevents internal `extern' functions to - be exported as entry points (and creating a smaller overall - .so file). - - For example, this with gcc, one can use the `-fPIC' flag when - compiling the object files. Here is an example: - - cd lib # go to `lib' - gcc -c -fPIC -I arch/ansi -I . \ - arch/ansi/freetype.c # compile engine - gcc -c -fPIC -I arch/ansi -I . -I extend - extend/ftx*.c # & extensions - - You can now invoke your linker to create the shared object - from the various object files. See your system's - documentation for details, or read the Unix-specific howto to - know how to do it `easily' through the use of `libtool'. - - b. Building a DLL on Windows or OS/2 - - The dynamic linkers of Windows and OS/2 differ greatly from - Unix ones. - - - The first difference is that the object files that make up - the DLL do not need to be compiled as position-independent - code. - - - The second difference is that the DLL's entry points must - generally be declared as so in the source file, and/or maybe - listed in a `definition' file used at link time when - creating the DLL. - - Each FreeType API function is declared with the help of a - special macro named FT_EXPORT_DEF. For example, here is the - declaration of the function `FT_Init_FreeType', as written in - `freetype.h': - - FT_EXPORT_DEF( TT_Error ) - TT_Init_FreeType( TT_Engine* engine ); - - If the configuration file `ft_conf.h' doesn't define - FT_EXPORT_DEF, it is automatically set to `extern' by default. - - In order to build FreeType as a DLL, one might need to define - FT_EXPORT_DEF in its `ft_conf.h' to the keywords tagging the - function as a DLL entry point. This keyword varies with - compilers and platforms; examples are `__system', - `__dllentry', `_FAR _PASCAL _export' after the type name, etc. - Note that FT_EXPORT_DEF is a (macro) function, taking the type - name as argument, in order to allow the last example. - - Please refer to your compiler's user guide for instructions. - - You can also `grep' for FT_EXPORT_DEF in the `freetype.h' - source file to obtain the list of exported functions of the - FreeType API, which could then be used to write a `def' file - for the DLL. We provide a sample .def file (built with an Unix - script) for Windows. - - Note also that the definition (i.e. its implementation) of - each exported function is preceded with the FT_EXPORT_FUNC - macro, as in - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_FreeType( TT_Engine* engine ) - { - TT_Error error; - ... - } - - (to be found in `ttapi.c'). - - By default, FT_EXPORT_FUNC converts to an empty string, but it - can also be redefined if you need to. - - - 7. Internationalization and the `ftxerr18' extension - ---------------------------------------------------- - - The engine extension named `ftxerr18' is used to convert a - FreeType error code into a human-readable string of text. - - However, it is able to support internationalization on Unix - systems through the use of the `gettext' library. This means - that the error messages will be localized to your system's - language, provided it is available in this release. The - currently available languages are - - - English (by default) - - Czech - - German - - Spanish - - French - - Dutch - - One can add a new language by adding a `.po' file in the `po' - directory. Please read the file `docs/i18n.txt' for more - details on how to use `gettext'. - - In order to enable localization of the `ftxerr18' extension, one - has to set the macro HAVE_LIBINTL_H at compile time. By - default, the extension will build with support for the English - language. - - Unix-specific: ------------------------------------------------- - - Note that the Unix `configure' script that comes with this - release is able to automatically detect whether your system - has `gettext' installed and set HAVE_LIBINTL_H in the - `ft_conf_h' file accordingly. - - To disable internationalization, run `configure' with the - option `--disable-nls' (NLS stands for `National Language - Support'). Then rebuild the library. - - ---------------------------------------------------------------- - - Note that we do not support internationalization on non-Unix - platforms, as the `gettext' library isn't available everywhere, - or does not work in a consistent way in different environments. - - - 8. TrueType patents - ------------------- - - We have recently discovered that Apple owns several patents that - relate to the rendering of TrueType fonts. This could mean that - the free use and distribution of the FreeType library could be - illegal in the US, UK, France, and possibly other countries. - - For more information, please see the FreeType Patents page at: - - http://www.freetype.org/patents.htm - - To avoid problems, we have decided to turn off by default the - compilation of the TrueType bytecode interpreter (which is the - only part of FreeType that might violate an Apple patent). This - has two effects: - - - saving about 18 kbyte of code in the engine - - ignoring completely the grid-fitting of vector outlines, which - results in extremely low quality at small pixel sizes. - - Nevertheless, such an engine can be used by font converters - and/or graphics libraries to display glyphs at high pixel sizes. - - If you believe you can go ahead, this section will now explain - how to build a `complete' engine, at the cost of possible patent - violation. This is done simply by activating the compilation of - the TrueType bytecode interpreter. In order to do so, simply - recompile the library (more exactly, it affects only ttinterp.c) - while #defin'ing TT_CONFIG_OPTION_BYTECODE_INTERPRETER. Look - for the following line in your configuration file `ft_conf.h': - - #undef FT_CONFIG_OPTION_BYTECODE_INTERPRETER - - Then change the `#undef' into a `#define': - - #define FT_CONFIG_OPTION_BYTECODE_INTERPRETER - - Now rebuild the engine with this new configuration file. - - - -III. Compiling the test programs -================================ - - This section explains how to compile the FreeType test programs - located in the `test' directory. Note that you should have - successfully compiled the library, as described in section I - before proceeding. - - WE STRONGLY RECOMMEND TO READ THE SYSTEM-SPECIFIC DOCUMENTS IN THE - `howto' DIRECTORY FOR A `QUICK'N'EASY' GUIDE ON HOW TO COMPILE AND - RUN THE TEST PROGRAMS. - - - 1. Compile the graphics sub-system and utility sources - ------------------------------------------------------ - - Some of the test programs need to display a graphics window to - show their results. In order to do so, they use a tiny graphics - system which was specifically written for FreeType (Note: The - code isn't really clean there -- you have been warned). - - Also, some simple C sources in the `test' directory are utility - functions used by nearly all test programs, and they should also - be compiled before them. These are the following files: - - gmain.h: the sub-system interface - gmain.c: the sub-system device-independent implementation - gevents.h: the definition of the events used by the test - program - gdriver.h: the system-specific device interface - blitter.c: a set of simple bitmap blitting functions - common.c: common routines used by all test programs - display.c: some routines dealing with text display - - as well as a system-specific `graphics driver' located in the - `test/arch/' hierarchy. For example: - - test/arch/msdos/gfs_dos.c: used to display graphics in a - full-screen Dos session - test/arch/os2/gpm_os2.c: used to display graphics in an OS/2 - Presentation Manager window - test/arch/unix/gwin_x11.c: used to display graphics in an X11 - window. - - You must compile the graphics sub-system and utilities before - compiling the test programs. This can be done simply with gcc - as: - - cd test - gcc -c -I../lib gmain.c blitter.c common.c display.c - gcc -c -I../lib -I. arch//yourdriver.c -o ./gdriver.o - - Note that a given test program may require some specific include - paths (like `/usr/X11/include' with X11 for example). - - The resulting object files can be grouped in a library if you - want to. - - - 2. Internationalization on Unix - ------------------------------- - - On Unix and Unix-like systems, the test programs are able to - support internationalization through the use of the `gettext' - library and the `ftxerr18' engine extension (see section I.7). - - To enable it, one has to compile each test program with the - macro HAVE_LIBINTL_H set. This is the same macro used to enable - it in `ftxerr18'. - - Note that the Unix `configure' script that comes with this - release is able to automatically detect whether `gettext' is - available on your system and set the macro accordingly when - compiling the test programs. - - You can disable internationalisation with the `--disable-nls' - option when invoking the `configure' script. - - - 3. Compile the test programs - ---------------------------- - - All test programs begin with the `ft' prefix in the `test' - directory, as in `ftzoom', `ftdump', `ftmetric'", etc. are test - programs. - - The easiest way to compile the test programs is compiling each - source file to an object file, including the path to the - FreeType engine source and its extensions. You need to use the - following include paths: - - - the path to the engine's public header file, i.e. `freetype.h' - which normally is `lib' - - - the path to the engine's extensions header files, located - normally in `lib/extend' - - - the path to the configuration file `ft_conf.h'. This is only - required to support internationalisation, as the test programs - read `ft_conf.h' only to see whether HAVE_LIBINTL_H is - defined. - - When compiling your own programs to FreeType, you shouldn't - normally need this file and path. - - Here is an example, compiling a test program with the ANSI - build: - - cd test - gcc -c -I../lib -I../lib/extend -I../lib/arch/ansi \ - .c - - Then, link this object file to the FreeType library, utilities - and graphics sub-system to build an executable. - - You can then invoke each program directly. - - - 4. The `fdebug' test program - ---------------------------- - - All test programs begin with the `ft' prefix (in the `test' - directory) as in `ftzoom', `ftdump', `ftmetric', etc. - - However, one test program named `fdebug' is used exclusively by - FreeType developers. It is a very simple TrueType bytecode - debugger, and was written to inspect the execution of the - TrueType interpreter. - - Note that we rather use the Pascal debugger for real work on the - interpreter, as it provides a much easier windowed interface - through the use of the Turbo Vision library. The C debugger is - mainly used to check that both Pascal and C sources produce the - same output. The Pascal debugger is available in the `ftpascal' - package, it is not included with this release. - - You will need gcc to compile the debugger. It uses a special - build of the FreeType engine to work. Follow these steps to - compile it: - - 1. Ensure the bytecode interpreter is not turned off (using - the debugger with the default build which is patents-compliant - is not really useful). How to process is explained in part 8 - of chapter II above (but of course you should modify the - `ft_conf.h' file which is specific to the debugger). This - implies that you must first be sure that you are really - allowed to use such a version of FreeType. - - 2. Compile the library for the `debugger' system, i.e. - - cd freetype/lib - make -f arch/debugger/Makefile - - this will create a file named `libttf.a' in the directory - `freetype/lib/arch/debugger' which will NOT interfere with - your normal build (which is located in `freetype/lib'). - - 3. Compile the debugger: - - cd freetype/test - make -f arch/debugger/Makefile - - This will create an executable called `fdebug.exe' or - `fdebug', which is linked with the version of the library - found in `freetype/lib/arch/debugger' as described above. - - [For old Unix variants like 4.2BSD please uncomment the flag - HAVE_POSIX_TERMIOS in the makefile.] - - You can invoke the debugger in two ways: - - a. To debug a given glyph program in a given font, type - - fdebug glyph_number pointsize fontfile[.ttf] - - b. To debug a given font's CVT program, type - - fdebug --cvt pointsize fontfile[.ttf] - - Type `?' while running fdebug for a list of key bindings. - - -IV. Compiling the Pascal source -=============================== - - The Pascal source code is no longer part of this package. It has - been moved to another archive (resp. CVS repository). Please - visit http://www.freetype.org for more information. - - ---- end of INSTALL --- diff --git a/Build/source/libs/freetype/MakeSub.in b/Build/source/libs/freetype/MakeSub.in deleted file mode 100644 index 90d10b9ecae..00000000000 --- a/Build/source/libs/freetype/MakeSub.in +++ /dev/null @@ -1,7 +0,0 @@ -# this file is part of the FreeType project - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -libdir = @libdir@ -bindir = @bindir@ -includedir = @includedir@ diff --git a/Build/source/libs/freetype/Makefile.in b/Build/source/libs/freetype/Makefile.in deleted file mode 100644 index f238b0c4d2a..00000000000 --- a/Build/source/libs/freetype/Makefile.in +++ /dev/null @@ -1,70 +0,0 @@ -# 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. - -RMF = @RM@ -f - -MAKEFILE = arch/unix/Makefile - -FTLIBDIR = lib -FTTESTDIR = test -FTPODIR = po - -all: ttlib tttest ttpo - -debug: ttlibdebug tttest ttpo - -# we can't use the target names 'lib', 'test', etc. -# because make will believe that the directories are -# the targets and are up-to-date! Grrr... >:-( - -ttlib: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) all - -ttlibdebug: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) debug - -tttest: - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) all - -ttpo: - cd $(FTPODIR); $(MAKE) all - -install: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) install - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) install - cd $(FTPODIR); $(MAKE) install - -uninstall: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) uninstall - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) uninstall - cd $(FTPODIR); $(MAKE) uninstall - -clean: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) clean - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) clean - cd $(FTPODIR); $(MAKE) clean - -distclean: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) distclean - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) distclean - cd $(FTPODIR); $(MAKE) distclean - $(RMF) config.cache config.log config.status Makefile \ - MakeSub ft_conf.h libtool - -check: - @echo This package does not yet have a validation suite - -depend: - cd $(FTLIBDIR); $(MAKE) -f $(MAKEFILE) depend - cd $(FTTESTDIR); $(MAKE) -f $(MAKEFILE) depend - -.PHONY: all debug ttlib ttlibdebug tttest ttpo install uninstall \ - clean distclean depend - -# end of Makefile.in diff --git a/Build/source/libs/freetype/PATENTS b/Build/source/libs/freetype/PATENTS deleted file mode 100644 index ce34bc830a2..00000000000 --- a/Build/source/libs/freetype/PATENTS +++ /dev/null @@ -1,28 +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 -THE FREETYPE LIBRARY MIGHT BE ILLEGAL IN FRANCE, UK, USA, 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/Build/source/libs/freetype/README b/Build/source/libs/freetype/README deleted file mode 100644 index 79dcd59ec3e..00000000000 --- a/Build/source/libs/freetype/README +++ /dev/null @@ -1,708 +0,0 @@ - - - Welcome to the - - F R E E T Y P E P R O J E C T - - http://www.freetype.org - - Release 1.5 - - The FREE TrueType Font Engine - - Copyright 1996 David Turner - - 2001 Robert Wilhelm - Werner Lemberg - - - Table of Contents - ----------------- - - I. Introduction - - II. The FreeType mini-FAQ - - III. How to use the test programs - - 1. ftzoom - 2. ftlint - 3. ftview - 4. fttimer - 5. ftdump - 6. ftstring - 7. ftstrpnm - 8. fterror - 9. ftsbit - 10. ftmetric - 11. ftstrtto - - IV. How to use the programs in the `contrib' directory - - V. Final remarks - - -I. Introduction -=============== - - Please read the file `INSTALL' for installation instructions! - - The FreeType engine is a free and portable TrueType font rendering - engine. It has been developed to provide TrueType support to a - great variety of platforms and environments. - - Notice that FreeType is a *library*. It is *not* a font server - for your preferred environment, even though it has been written to - allow the design of many font servers. - - To our knowledge, this is the only royalty-free complete TrueType - engine available. Moreover, its quality fully matches these of - Windows or the Macintosh, a thing that cannot be said for most - other commercial engines available. - - FreeType is a clean-room implementation that is not derived from - the original TrueType engine developed by Apple and Microsoft. It - has been created with the sole help of the published TrueType - specifications, which, to our great surprise and pain, turned out - to be extremely poor or misleading in critical areas. Much hard - work has been undertaken to solve numerous ambiguities; - nevertheless, its end result is a portable, fast quality renderer! - - The library itself takes about 53 kByte of Intel code, complete - with a TrueType byte-code interpreter and a high-performance - scan-line converter. - - You will find in this release: - - - A TrueType engine, with source code in ANSI C. It has been - successfully compiled and run on various platforms, including - MS-DOS, OS/2, Amiga, Linux, and several other variants of Unix. - It should be portable to many other platforms too. - - - An API to be used by client applications and font servers, - providing several low level abstractions that can be used to - open font files and collections, create point sizes and load, - process and render glyph outlines and bitmaps. - - - Support for the following features: - - o Font smoothing, a.k.a. gray-level rendering. - - Just like Windows 95, the renderer uses a `fine' algorithm - that only smoothes diagonals and curves, while keeping the - horizontal and vertical stems intact. - - This results in glyphs that are much more legible than the - `fuzzy' ones generated by programs like Acrobat. - - o Support for all character mapping formats. - - o A full-featured TrueType byte-code interpreter. - - The engine is able to hint the glyphs to produce excellent - output at small sizes. It was extremely difficult to get this - component right, due to the ambiguous and misleading TrueType - specifications. However, we now *match* Windows and Macintosh - qualities. - - o TrueType collection support, when several fonts are embedded - in the same file. - - o Support for extensions. - - It is now possible to extend the library in parts to support - additional features, like optional tables that are not - considered by the current core engine. - - o Kerning support. - - Provided as a sample extension with this release, kerning - tables can be accessed from a TrueType font for applications - that need it. - - o Support for vertical metrics. - - It is possible to load vertical metrics when they are present - in a font file. Metrics can be retrieved glyph by glyph, - using the loader, or in arrays with a new API. - - o Support for thread-safety and re-entrancy. - - You will only need to specialize the file `ttmutex.c' for your - platform to include system-specific synchronization calls. - - o Support for embedded bitmaps. - - This feature is already used in x-tt, a TrueType font server - for X Window System. - - o Support for OpenType. With this release, GSUB and GPOS have - been completely implemented. - - Note also that: - - - Though development of the library is mainly performed on OS/2 - and Linux, the library does not contain system-specific code. - - - The package contains some graphics drivers used by the test - programs for display purposes on MS-DOS, OS/2, Amiga, X11, and - Windows. These drivers are absolutely not mandatory for running - the FreeType engine. Some console-mode test programs like - `ftlint' or `ftdump' don't use graphics at all. - - - There was a Pascal version that was distributed along with the C - version. Unfortunately, it is not up to date when compared to - the C version, so we decided to split the two projects. If you - are interested, you can find the Pascal version in packages - named like `ftpascal-1.x.tar.gz' or `ftpas1x.zip'. - - - -II. The FreeType mini-FAQ -========================= - - Summary - - 0. Where to find the latest FreeType release? - - 1. Did the API change? - - 2. What does the `Free' in FreeType means? Can you use it in a - commercial product? (YES!) - - 3. I have made a small program based on the test programs but I - would like to know how to do xxx? - - 4. When will I be able to use FreeType to display TrueType fonts - under X11, OS/2 or Wine? (NOW!) - - 5. Trying to compile the FreeType sources gives me lots of - warnings with my ANSI C compliant compiler! - - ------------------------------------------------------------------ - - 0. Where to find the latest FreeType release? - - The latest package is usually uploaded to various source - repositories, like SunSite, SimTel, or Hobbes. There are two - archive formats (zip and tar.gz), which also differ by their - CR/LF conventions. - - * for DOS and OS/2: `ft-15.zip' - - which should be available at: - - Hobbes: ftp://ftp.cdrom.com/pub/os2/misc - SimTel: ftp://ftp.simtel.net/pub/msdos/graphics - - * for UNIX and Amiga: `freetype-1.5.tar.gz' - - look at: - - SunSite: ftp://sunsite.unc.edu/pub/Linux/X11/fonts - - As uploading can take several days before the package becomes - available to the public, we advise you to download it from our - own ftp site if you read this message few days after the - announcement at: - - ftp://ftp.freetype.org/freetype/ - - Our home page is at: - - http://www.freetype.org - - Screen shots are available! - - There are also three mailing lists: - - o announce@freetype.org - - Announcements only about new versions of FreeType and - related packages. This list is moderated and expected to - have very low traffic. - - o freetype@freetype.org - - Discusses general use of FreeType, future, and needed - additions, as well as many other font-related discussions - which do not always relate directly to the FreeType code - itself... - - o devel@freetype.org - - Discusses development, design choices, portability issues, - internals, specific licenses, etc. - - To subscribe, send the usual "subscribe" command to: - - announce-request@freetype.org - freetype-request@freetype.org - devel-request@freetype.org - - To report bugs please use send an e-mail to devel@freetype.org. - - ------------------------------------------------------------------ - - 1. Did the API change since the version 1.2? - - Only very marginally. Please refer to `changes.txt'. - - ------------------------------------------------------------------ - - 2. What does the `Free' in FreeType means? Can you use it in a - commercial product? (YES!) - - We have placed this release under our special FreeType license. - - It was inspired by the BSD, Artistic, and IJG (Independent JPEG - group) licences, which specifically encourage the use of this - software in commercial products! - - The reason we did this is that we believe that TrueType is a - very useful technology, and want to make it available on all - machines and platforms. The license is there to ensure that - the engine can be spread as widely as possible. - - Since version 1.5, you can also optionally choose to use the - GNU Public Licence (GPL) instead. The GPL is used only to allow - GPL-ed applications to use FreeType (since the "disclaimer - clause" is considered an unacceptable "restriction" in GNU - speak); for a commercial product, you should avoid the GPL, and - then elect the FreeType licence. - - However, free does not mean public domain. This engine is - copyrighted by its authors, and they will fiercely defend their - rights. - - ------------------------------------------------------------------ - - 3. I have made a small program based on the test programs but I - would like to know how to do xxx? - - (Where xxx is a feature lacking from the current - implementation). - - First of all, read the documentation. The user guide gives - some basic hints and concepts. You can also read the source - code of the test programs that you didn't consider yet. If - you are really stuck, mail your question to: - - freetype@freetype.org - - We shall try to help you. - - ------------------------------------------------------------------ - - 4. When will I be able to use FreeType to display TrueType fonts - under X11, OS/2, or Wine? - - You can already do that under X11 and OS/2 :-) Go to the - FreeType web page (http://www.freetype.org) for up-to-date - information. - - And yes, it looks terrific! - - For X11, you could also take a look at `xfstt', an independent - TrueType font server for Unix which doesn't rely on the - FreeType code. - - You are welcome to volunteer for other platforms, like: - - Amiga, RISC OS, BeOS, and others - - [Note that the FreeType library is already available with Amiga - and BeOS.] - - Please contact devel@freetype.org for more information. - - ------------------------------------------------------------------ - - 5. Trying to compile the FreeType sources gives me lots of - warnings with my ANSI C compliant compiler! - - We use gcc as our reference compiler for warnings. This means - that we use the `-ansi -pedantic -Wall' flags and try to get - rid of warnings in this situation. - - If you are compiling with another compiler, you may encounter - warnings, not errors. - - We have spent much efforts to reduce seriously the number of - warnings produced by major compilers, including Visual Age, - Visual C++ and Borland C++. - - Note that the Borland compilers seem to produce lots of - irrelevant warnings (like `potential loss of precision'). - - -III. How to use the test programs -================================= - - All test programs having a graphic interface use the same key - convention: - - x : fine counter_clockwise rotation - c : fine clockwise rotation - - v : fast counter_clockwise rotation - b : fast clockwise rotation - - h : toggle hinting on/off - K : toggle kerning on/off - B : toggle display of embedded bitmaps on/off - S : toggle GSUB on/off - P : toggle GPOS on/off - - + : fast scale up - - : fast scale down - u : fine scale up - j : fine scale down - - l : go to next glyph - k : go to previous glyph - - o : go to tenth next glyph - i : go to tenth previous glyph - - 0 : go to hundredth next glyph (useful for CJK fonts) - 9 : go to hundredth previous glyph - - ) : go to thousandth next glyph - ( : go to thousandth previous glyph - - } : go to tenthousandth next glyph - { : go to tenthousandth previous glyph - - q : - ESC : exit - - These keys were chosen because they are available on all - platforms. Note also that each program uses only a subset of this - key map. - - 1. FTZOOM - --------- - - `ftzoom' is a very simple glyph viewer that supports font - smoothing. Its usage is: - - ftzoom [-g] [-p platformID -e encodingID] - [-r resolution] [-z magnification] [-n] fontfilename - - With -g you can select gray-scaling; with -n you can suppress - usage of the `post' table in the TrueType font. - - For example: - - ftzoom arial.ttf to show the glyphs found - in the Arial font - ftzoom -g times.ttf to show smoothed version of - Times's glyphs. - ftzoom -p 3 -e 1 uwjmg3.ttf use cmap for platform ID 3, - encoding ID 1 for this Japanese - font. - - 2. FTLINT - --------- - - `ftlint' is used to execute all glyphs instructions found in a - font file at a given char size size. Its usage is: - - ftlint pointsize fontfilename [fontfilename] ... - - For example: - - ftlint 12 arial.ttf - ftlint 15 times.ttf - - It reports error codes and faulty glyph numbers. This is a - console tool that doesn't need the graphics subsystem. - - NOTE: Trying to hint at sizes smaller than 7 is irrelevant. - - 3. FTVIEW - --------- - - A font viewer that supports hinting and font smoothing. Its - usage: - - ftview [-g] -[r resolution] [-B] pointsize fontfilename - - like in: - - ftview 12 arial.ttf show the hinted Arial at size 12pt. - - ftview -g 15 timesi.ttf show the hinted and font-smoothed - Times at size 15pt. - - `-r' selects the resolution; `-B' forces the use of embedded - bitmaps. - - Note that it is possible to change the point size during display - with the keys `u', `j', `+', and `-'. It is also possible to - browse the whole glyph set with the `k', `l', `i', `o', `0', - `9', `(', `)', `{', and `}' keys (see key map above). - - The OS/2 PM driver comes with an additional magnifying window. - The magnified zone is set with the mouse, while the scale is - changed with the help of `PageUp' and `PageDown'. - - Note 1: The engine uses the font's CVT program to determine at - which size to enable or disable glyph hinting. Don't be - surprised to see unhinted glyphs at sizes < 7pt. - - Note 2: Vertical drop-out control has been added to the gray - scaling renderer. As a consequence, the library doesn't - produce unpleasant results at small ppems with badly - hinted glyphs. - - 4. FTTIMER - ---------- - - This program is used to benchmark FreeType's scan-converter (the - component in charge of translating a vectorial shape description - into a bitmap). It does so in preloading all glyphs from a font - file, then rendering them as fast as possible in a 640x450 - buffer. The glyphs are rendered at size 400pt / 96dpi, which is - _quite_ big. - - Its usage is: - - fttimer [-g] [-v] fontfilename - - where - - -g : Asks for gray-level rendering at size 200pt instead - (a.k.a. font-smoothing). - - -v : Asks for the display of the produced bitmap. Beware - that display slows things down (display on X11 is - _terrible_, especially with gray-levels, but this is - not a problem for us :-). - - Note that the returned numbers are not a benchmark of FreeType's - overall performance! Only of the scan-line renderer (which - seems quite fast, apparently :-). - - When comparing measured performances across machines, please - only consider the undisplayed ones. We're interested in all - kinds of results (please provide the following information: - - font file - number of rendered glyphs - render time - total time - glyphs / s - processor type - CPU clock - - and which compiler used (with optimization involved)! This - can make a great difference! - - etc.) - - 5. FTDUMP - --------- - - This program is a very simple font dumper. In its current - incarnation, it will only output a font's name table, character - encoding maps IDs and total memory consumption. For TrueType - Open files, the available GSUB and GPOS tables are also shown. - - The `total memory used' reported is the amount that is used by - the engine to load one face, with one instance (a point size). - - Each additional instance takes only a fraction of that amount, - and is labeled by `instance object'. As you can see, FreeType - isn't really greedy. - - Usage: ftdump fontpathname[.ttf|.ttc] - - 6. FTSTRING - ----------- - - This program demonstrates string text generation. It only - displays a given message on the screen, and lets you resize it - with the classic key bindings `u', `j', `+', and `-'. - - Usage: - - ftstring ptsize fontname[.ttf|.ttc] [message_string] - - If the message is omitted, it will revert to the classic - typographic test sentence: - - The quick brown fox jumps over the lazy dog - - which is made of all letters of the English alphabet. - - `ftstring' only works with font files that contain a Unicode - character mapping table (either Windows Unicode or Apple - Unicode). For the moment, the message can however only be - written in ASCII, as accents aren't supported yet. - - 7. FTSTRPNM - ----------- - - Usage: - - ftstrpnm [options] filename [string] - - Options: - - -g gray-level rendering (default: off) - -h hinting off (default: on) - -r X resolution X dpi (default: 96) - -p X pointsize X pt (default: 12) - -b X border X pixels wide (default: 0) - - This program is quite similar to ftstring but converts the - rendered image of the specified string into a bitmap in PBM or - PGM format written to stdout; PBM (Portable BitMap) and PGM - (Portable GrayMap) formats can be further converted to popular - graphics formats like GIF or PNG with the netpbm tool suite - available via Internet. - - 8. FTERROR - ---------- - - This program tests the gettext() functionality on UNIX platforms - (usually provided in the GNU gettext package). It will return - language specific error and warning messages depending on your - locale. Currently Czech, Dutch, French, German, and Spanish - translations of the FreeType messages are included -- we invite - you to contribute more translations. - - Typically, you have to set the LANG environment variable to your - locale to get localized messages. Example: - - LANG=de fterror - - fterror also gives you a textual interpretation of a particular - (numerical) error code, as returned by the Freetype library. - Example: - - LANG=fr fterror 0x40E - - Note that providing message strings for FreeType's error and - warning messages is an extension and not part of the FreeType - library itself. Please refer to `docs/i18n.txt' for further - details. - - 9. FTSBIT - --------- - - Usage: - - ftsbit ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..] - - This tool dumps the information in the tables for embedded - bitmaps. Additionally, it prints (to the console) a selected - glyph bitmap. - - 10. FTMETRIC - ------------ - - Usage: - - ftmetric [options below] point fontname[.ttf|.ttc] ... - - -B show sbit's metrics (default: none) - -c C use C'th font index of TrueType collection - (default: 0) - -i index glyph index (default: 0) - -r R use resolution R dpi (default: 72dpi) - - With this small program you can inspect the metric data of a - given glyph; additionally, it dumps the particular glyph to the - console. - - 11. FTSTRTTO - ------------ - - Usage: - - ftstrtto [options below] ppem fontname[.ttf|.ttc] [string|-] - - -c C use font with index C in TrueType collection - (default: 0) - -f F use feature F (can be specified more than once) - -g gray-level rendering - -l L use language L - -r R use resolution R dpi (default: 96dpi) - -s S use script S - -u interpret input data as UTF8-encoded - -v display string vertically - -x display string from right to left - - F, L, and S must be specified as 4-character tags. - Specifying only F and S selects default language system of S. - Specifying only L and S selects the req. feature of L only - (if any). - - If `-' is specified as input string, stdin is read instead. - - This program uses almost all features of FreeType to display a - string on screen. Its usage is similar to `ftstring', but you - can additionally select GSUB and GPOS features, the collection - in a font, toggle kerning and embedded bitmaps interactively, - and input the optional string in UTF8 encoding. - - For a list of available script, language, and feature tags - please refer to the TrueType Open (resp. OpenType) - specification. - - Example: - - ftstrtto -s "latn" -l "DEU " -f "liga" -f "frac" \ - 40 pala.ttf "fi ff ffi ffl 1/2" - - Note that you can inspect the available tags in a font with - `ftdump'. - - The features `init', `medi', and `fina', and `isol' are treated - specially. Internally, ftstrtto assigns initial, medial, - isolated, and final properties to Arabic characters in the input - string. If one of the features is switched on, all glyphs with - the corresponding property are modified (if covered). - - Example: - - ftstrtto -s arab -f init -f medi -f fina -f isol \ - -f liga -f mset -x -u 20 trado.ttf - < arab.utf8 - - `mset' is another, Arabic specific feature to position combining - marks. - - If you select the swash feature `swsh', the displayed - alternative in the string is always the first available one. - - - -IV. HOW TO USE THE PROGRAMS IN THE `CONTRIB' DIRECTORY -====================================================== - - These programs are contributions to FreeType and not really part - of it. Please read the documentation files in the respective - subdirectories how to compile and install them. - - -V. FINAL REMARKS -================ - -Of course, all source code is provided `as is'. Please read the -file `license.txt' for more information. - -We hope you will find this engine useful, and look forward to file. -your feed-back. We're of course very interested in bug reports, as -well as FreeType success stories :-) - - -Thanks for your time and consideration, - - - David Turner, Robert Wilhelm, Werner Lemberg, - and all the FreeType enthusiasts... - - ---- end of README --- diff --git a/Build/source/libs/freetype/ac/freetype.ac b/Build/source/libs/freetype/ac/freetype.ac deleted file mode 100644 index 90c43ce4ed3..00000000000 --- a/Build/source/libs/freetype/ac/freetype.ac +++ /dev/null @@ -1,3 +0,0 @@ -## libs/freetype/ac/freetype.ac -## define required functions and headers from system freetype -KPSE_CHECK_LIB([freetype], [TT_Init_FreeType], [freetype.h]) diff --git a/Build/source/libs/freetype/ac/withenable.ac b/Build/source/libs/freetype/ac/withenable.ac deleted file mode 100644 index 55cb676e47a..00000000000 --- a/Build/source/libs/freetype/ac/withenable.ac +++ /dev/null @@ -1,3 +0,0 @@ -## libs/freetype/ac/withenable.ac -## configure options and TL libraries required for freetype -KPSE_WITH_LIB([freetype]) diff --git a/Build/source/libs/freetype/aclocal.m4 b/Build/source/libs/freetype/aclocal.m4 deleted file mode 100644 index 94113b757bf..00000000000 --- a/Build/source/libs/freetype/aclocal.m4 +++ /dev/null @@ -1,6578 +0,0 @@ -# generated automatically by aclocal 1.10.1 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008 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 51 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 1s/^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 MSVC, -# 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 "$LTCFLAGS" && LTCFLAGS=$CFLAGS -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_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -_LT_CC_BASENAME([$compiler]) - -# 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"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC -])# _LT_AC_SYS_COMPILER - - -# _LT_CC_BASENAME(CC) -# ------------------- -# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. -AC_DEFUN([_LT_CC_BASENAME], -[for cc_temp in $1""; do - case $cc_temp in - compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; - distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` -]) - - -# _LT_COMPILER_BOILERPLATE -# ------------------------ -# Check for compiler boilerplate output or warnings with -# the simple compiler test code. -AC_DEFUN([_LT_COMPILER_BOILERPLATE], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* -])# _LT_COMPILER_BOILERPLATE - - -# _LT_LINKER_BOILERPLATE -# ---------------------- -# Check for linker boilerplate output or warnings with -# the simple link test code. -AC_DEFUN([_LT_LINKER_BOILERPLATE], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* -])# _LT_LINKER_BOILERPLATE - - -# _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_REQUIRE([LT_AC_PROG_SED])dnl -AC_LINK_IFELSE(AC_LANG_PROGRAM,[ -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# 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 "$lt_aix_libpath_sed"` -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 </dev/null 2>&1 && unset CDPATH - -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-*kfreebsd*-gnu|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-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - 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-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - 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 - ;; -sparc*-*solaris*) - # 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 - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; - *) LD="${LD-ld} -64" ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -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]) - echo "$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}\{0,1\} :&$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 other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; 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_REQUIRE([LT_AC_PROG_SED])dnl -AC_CACHE_CHECK([$1], [$2], - [$2=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $3" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker 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 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - $2=yes - fi - 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; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - while (test "X"`$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` - fi - ;; - 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 < -#endif - -#include - -#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); */ - } - else - puts (dlerror ()); - - exit (status); -}] -EOF - if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) $1 ;; - x$lt_dlneed_uscore) $2 ;; - x$lt_dlunknown|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="-ldld"], - [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="-ldld"]) - ]) - ]) - ]) - ]) - ]) - ;; - 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" - wl=$lt_prog_compiler_wl 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 - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - 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_PROG_SED])dnl -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 - echo "$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}\{0,1\} :&$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 - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes - fi - fi - chmod u+w . 2>&AS_MESSAGE_LOG_FD - $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" - old_striplib="$STRIP -S" - 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_REQUIRE([LT_AC_PROG_SED])dnl -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" -m4_if($1,[],[ -if test "$GCC" = yes; then - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$lt_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. - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[[lt_foo]]++; } - if (lt_freq[[lt_foo]] == 1) { print lt_foo; } -}'` - sys_lib_search_path_spec=`echo $lt_search_path_spec` -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.so - # instead of lib.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 - ;; - -bsdi[[45]]*) - 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~ - chmod a+x \$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`' - m4_if([$1], [],[ - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) - 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 - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[[123]]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - 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 - ;; - freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ - freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - 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' - ;; - -interix[[3-9]]*) - 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' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -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* | k*bsd*-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' - 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=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | 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' - ;; - -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 - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - 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" - ;; - -rdos*) - dynamic_linker=no - ;; - -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.3*) - 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 - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -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 - -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 -])# AC_LIBTOOL_SYS_DYNAMIC_LINKER - - -# _LT_AC_TAGCONFIG -# ---------------- -AC_DEFUN([_LT_AC_TAGCONFIG], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -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 - if test -z "$LTCFLAGS"; then - eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" - 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" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; 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 DLLs -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 recognize 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 <&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 recognize 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 variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - 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|DragonFly)/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 - ;; - -interix[[3-9]]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' - ;; - -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* | k*bsd*-gnu) - 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*) - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - 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 - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | 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_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_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" - done - 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 -# AC_CONFIG_SUBDIRS is not called here. 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 -# AC_CONFIG_SUBDIRS is not called here. 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 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([_LT_AC_PROG_CXXCPP]) -_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) -])# _LT_AC_LANG_CXX - -# _LT_AC_PROG_CXXCPP -# ------------------ -AC_DEFUN([_LT_AC_PROG_CXXCPP], -[ -AC_REQUIRE([AC_PROG_CXX]) -if test -n "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - AC_PROG_CXXCPP -fi -])# _LT_AC_PROG_CXXCPP - -# 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;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -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 - -# Report which library types will 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 - ;; -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([_LT_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_shlibpath_var, $1)=unsupported -_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=cpp - -# 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;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# 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 - $as_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 - $as_unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) - -# 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 - : - 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' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - 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 '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${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 '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_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' - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported - # Joseph Beckenbach 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 - ;; - - 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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _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)='' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - - if test "$GXX" = yes ; then - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | $EGREP '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 -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 $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 lds - 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 -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}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - _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 lds - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~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(ld_shlibs, $1)=no - ;; - esac - 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* | dragonfly*) - # 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 - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) ;; - *) - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _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*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _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 - hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - _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 - ;; - interix[[3-9]]*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - 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 ${output_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}${output_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* | k*bsd*-gnu) - 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 - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - _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' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _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' - ;; - pgCC*) - # Portland Group C++ compiler - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_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' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='echo' - - # 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' - ;; - esac - ;; - 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::"' - ;; - openbsd2*) - # C++ shared libraries are fairly broken - _LT_AC_TAGVAR(ld_shlibs, $1)=no - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - _LT_AC_TAGVAR(hardcode_direct, $1)=yes - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd='echo' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - 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 ${output_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}${output_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 ${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~ - $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 ${output_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}${output_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 - ;; - 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(archive_cmds_need_lc,$1)=yes - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -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} ${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 compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # 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 - - output_verbose_link_cmd='echo' - - # 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' - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - # So that behaviour is only enabled if SCOABSPATH is set to a - # non-empty value in the environment. Most likely only useful for - # creating official distributions of packages. - # This is a hack until libtool officially supports absolute path - # names for shared libraries. - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - 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_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 < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - # - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - if test "$solaris_use_stlport4" != yes; then - _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac -]) - -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 - return - end -" - -# Code to be used in simple link tests -lt_simple_link_test_code="\ - program t - end -" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${F77-"f77"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) - -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 - ;; -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]) - -_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_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 {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. -_LT_AC_SYS_COMPILER - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${GCJ-"gcj"} -compiler=$CC -_LT_AC_TAGVAR(compiler, $1)=$CC -_LT_CC_BASENAME([$compiler]) - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - -_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds - -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_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 }' - -# 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 - -# save warnings/boilerplate of simple test code -_LT_COMPILER_BOILERPLATE -_LT_LINKER_BOILERPLATE - -# 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_CC_BASENAME([$compiler]) -_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 LTCFLAGS 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(fix_srcfile_path, $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, 2002, 2003, 2004, 2005, 2006, 2007 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 1s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# 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 -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# 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 - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# 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_fix_srcfile_path - -# 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([LT_AC_PROG_SED]) -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 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'" - ;; -linux* | k*bsd*-gnu) - if test "$host_cpu" = ia64; then - symcode='[[ABCDGIRSTW]]' - 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'" - fi - ;; -irix* | nonstopux*) - symcode='[[BCDEGRST]]' - ;; -osf*) - symcode='[[BCDEGQRST]]' - ;; -solaris*) - symcode='[[BDRT]]' - ;; -sco3.2v5*) - symcode='[[DT]]' - ;; -sysv4.2uw2*) - symcode='[[DT]]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[[ABDT]]' - ;; -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 - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # 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 < $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 < 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 <> 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* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | 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). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - _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)= - ;; - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - 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 - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - 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* | dragonfly*) - # 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)='${wl}-a ${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)='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - 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* | k*bsd*-gnu) - 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* | ecpc*) - # 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' - ;; - pgCC*) - # Portland Group C++ compiler. - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - 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' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - _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 ' - ;; - esac - ;; - 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*) - ;; - 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 - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - _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' - ;; - esac - ;; - 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* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | 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). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - _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' - ;; - - interix[[3-9]]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - 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 - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | 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* | k*bsd*-gnu) - case $cc_basename 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' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - ;; - 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' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - _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)='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - _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)='' - ;; - esac - ;; - 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' - ;; - - rdos*) - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' - ;; - - solaris*) - _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' - _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; - *) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; - esac - ;; - - 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*) - _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 - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - _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' - ;; - - unicos*) - _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' - _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no - ;; - - 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 - -# -# Check to make sure the static flag actually works. -# -wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" -AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], - _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), - $lt_tmp_static_flag, - [], - [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) -]) - - -# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) -# ------------------------------------ -# See if the linker supports building shared libraries. -AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], -[AC_REQUIRE([LT_AC_PROG_SED])dnl -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 '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[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= - # Just being paranoid about ensuring that cc_basename is set. - _LT_CC_BASENAME([$compiler]) - 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 - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - 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}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - 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 - 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 - - # 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 <&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 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 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 '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - - interix[[3-9]]*) - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - 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 '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - else - _LT_AC_TAGVAR(ld_shlibs, $1)=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*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <&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 - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) - _LT_AC_TAGVAR(ld_shlibs, $1)=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - fi - ;; - esac - ;; - - 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 - ;; - - *) - 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)" = no; then - runpath_var= - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= - 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 "$lt_prog_compiler_static"; 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 - : - 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' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - 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 '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${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 '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_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' - # Exported symbols can be pulled into shared objects from archives - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes - # This is similar to how AIX traditionally builds its shared libraries. - _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${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 - ;; - - bsdi[[45]]*) - _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' - _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' - _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[[012]]) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _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)='' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - if test "$GCC" = yes ; then - 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 lds - _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}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - _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 lds - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~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(ld_shlibs, $1)=no - ;; - esac - 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* | dragonfly*) - _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*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - _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 - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -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*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: - - case $host_cpu in - hppa*64*|ia64*) - _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' - _LT_AC_TAGVAR(hardcode_direct, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - ;; - *) - _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*) - if test -f /usr/libexec/ld.so; then - _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(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - _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 - else - _LT_AC_TAGVAR(ld_shlibs, $1)=no - 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 ${output_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)=: - ;; - - solaris*) - _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - _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 - wlarc='' - _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]].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' - fi - ;; - 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*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' - _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' - _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no - _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no - _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' - _LT_AC_TAGVAR(link_all_deplibs, $1)=yes - _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - 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 - -# -# 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* - echo "$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) - pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $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 -# #undef WIN32_LEAN_AND_MEAN -# #include -# -# #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 -# 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) -]) - - -# Cheap backport of AS_EXECUTABLE_P and required macros -# from Autoconf 2.59; we should not use $as_executable_p directly. - -# _AS_TEST_PREPARE -# ---------------- -m4_ifndef([_AS_TEST_PREPARE], -[m4_defun([_AS_TEST_PREPARE], -[if test -x / >/dev/null 2>&1; then - as_executable_p='test -x' -else - as_executable_p='test -f' -fi -])])# _AS_TEST_PREPARE - -# AS_EXECUTABLE_P -# --------------- -# Check whether a file is executable. -m4_ifndef([AS_EXECUTABLE_P], -[m4_defun([AS_EXECUTABLE_P], -[AS_REQUIRE([_AS_TEST_PREPARE])dnl -$as_executable_p $1[]dnl -])])# AS_EXECUTABLE_P - -# 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 -IFS=$as_save_IFS -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 && continue - 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_SUBST([SED]) -AC_MSG_RESULT([$SED]) -]) - diff --git a/Build/source/libs/freetype/announce b/Build/source/libs/freetype/announce deleted file mode 100644 index 60318b40423..00000000000 --- a/Build/source/libs/freetype/announce +++ /dev/null @@ -1,68 +0,0 @@ - - - Announcing - - - F R E E T Y P E 1 . 4 . 9 - - - The FREE TrueType Font Engine - - - Copyright (C) 1996-2001 The FreeType Development Team - - - - The FreeType engine is a free and portable TrueType font rendering - engine, available in ANSI C and Pascal source code. It has been - developed to provide TrueType support to a great variety of - platforms and environments. - - Notice that FreeType is a *library*. It is *not* a font server - for your preferred environment, even though it has been designed - to be the basis of many high-level libraries, tools and font - servers. - - - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - - WE HAVE RECENTLY DISCOVERED THAT APPLE OWNS SEVERAL PATENTS - RELATED TO THE RENDERING OF TRUETYPE FONTS. THIS COULD MEAN THAT - THE FREE USE OF THE FREETYPE LIBRARY MIGHT BE ILLEGAL IN FRANCE, - UK, USA, AND POSSIBLY OTHER COUNTRIES. FOR MORE INFORMATION, WE - STRONGLY ADVISE YOU TO GO TO THE FREETYPE WEB SITE AT: - - http://www.freetype.org/patents.html - - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER DISCLAIMER - - - It's a clean-room implementation that is not derived from the - original TrueType engine developed by Apple and Microsoft, though - it matches it regarding rendering quality. To our knowledge, it's - the only royalty-free complete TrueType engine available. - - Some news: - - . version 1.5 fixes minor bugs found in 1.3.1. - . version 1.4 were never released officially (by us). - . full support for GSUB and GPOS tables in OpenType fonts. - . enhanced ftdump/ftstrtto test programs using GPOS support. - . ftstrpnm supports coloured text. - . TT_Char_Index() now uses a TT_ULong for char codes. - . support files for BeOS. - . the Pascal version is no longer part of the package but is - available separately. - . uses a new version of libtool, solving some compilation problems - with the test programs on some platforms like Solaris. - - - For more information, please visit the freetype web site at: - - http://www.freetype.org diff --git a/Build/source/libs/freetype/config.guess b/Build/source/libs/freetype/config.guess deleted file mode 100755 index e5716eea733..00000000000 --- a/Build/source/libs/freetype/config.guess +++ /dev/null @@ -1,1555 +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, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. - -timestamp='2009-02-03' - -# 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., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, 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 . -# Please send patches to . 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 ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 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 ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # 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 "$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 ; set_cc_for_build= ;' - -# 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 ;; - sh5el) machine=sh5le-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 ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - 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 ;; - 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 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - 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 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - 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 ;; - 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 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - 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 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # 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 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* 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 && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - 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 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????: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 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - 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 ;; - *: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 - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - 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 ;; - *:AIX:*:[456]) - 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 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 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 - #include - - 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 - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - 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 && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - 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 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - 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 ;; - 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 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:[3456]*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T | authenticamd | genuineintel) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 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 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *: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 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - 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 | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - 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 | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - 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 ;; - padre:Linux:*:*) - echo sparc-unknown-linux-gnu - exit ;; - 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 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - 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 ;; - "") - # 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 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - 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 ;; - 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 ;; - 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 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - 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 ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - 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 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /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 ;; - 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 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - 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 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 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 | S7501*:*: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; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - 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; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *: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 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - 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 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *: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 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *: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 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; -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 < -# include -#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 - 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\n"); 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 -# 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 && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# 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 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < 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/Build/source/libs/freetype/config.sub b/Build/source/libs/freetype/config.sub deleted file mode 100755 index d546a94b951..00000000000 --- a/Build/source/libs/freetype/config.sub +++ /dev/null @@ -1,1685 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. - -timestamp='2009-02-03' - -# 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., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, 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 . 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 ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 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 ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # 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 ;; - - * ) - 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-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-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 | -knuth | -cray) - 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 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -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/'` - ;; - -sco5v6*) - # 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 | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k | z80) - 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) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # 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-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # 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 - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - 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 - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - 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 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - 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 - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - 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 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - 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 - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - 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 - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - 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 - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - 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 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - 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 - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - 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 - ;; - tile*) - basic_machine=tile-unknown - os=-linux-gnu - ;; - 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 - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-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 - ;; - mmix) - basic_machine=mmix-knuth - ;; - 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 - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - 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* \ - | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -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* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -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* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # 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* | -haiku* \ - | -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 - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -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 - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-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 - ;; - mep-*) - os=-elf - ;; - 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 - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-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 - -# 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/Build/source/libs/freetype/configure b/Build/source/libs/freetype/configure deleted file mode 100755 index 631163c7cdf..00000000000 --- a/Build/source/libs/freetype/configure +++ /dev/null @@ -1,25983 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.61a. -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006 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 more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -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+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# 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 - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# 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 - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -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 -IFS=$as_save_IFS - - ;; -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 - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -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) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; 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 || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - -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 ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= - 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 -IFS=$as_save_IFS - - - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -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+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -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+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - 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 "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -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 - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "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" || - { $as_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 sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -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$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# 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'" - - - - -# 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 </dev/null 2>&1 && unset CDPATH - -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 - -exec 7<&0 &1 - -# 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` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -ac_unique_file="lib/freetype.h" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#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 -datarootdir -datadir -sysconfdir -sharedstatedir -localstatedir -includedir -oldincludedir -docdir -infodir -htmldir -dvidir -pdfdir -psdir -libdir -localedir -mandir -DEFS -ECHO_C -ECHO_N -ECHO_T -LIBS -build_alias -host_alias -target_alias -build -build_cpu -build_vendor -build_os -host -host_cpu -host_vendor -host_os -CC -CFLAGS -LDFLAGS -CPPFLAGS -ac_ct_CC -EXEEXT -OBJEXT -SED -GREP -EGREP -LN_S -ECHO -AR -RANLIB -STRIP -DLLTOOL -AS -OBJDUMP -CPP -CXX -CXXFLAGS -ac_ct_CXX -CXXCPP -F77 -FFLAGS -ac_ct_F77 -LIBTOOL -USE_NLS -target -target_cpu -target_vendor -target_os -XX_CFLAGS -freetype_version -version_info -SET_MAKE -HAVE_LOCALE_H -HAVE_LIBINTL_H -LOCALEDIR -MSGFMT -GMSGFMT -XGETTEXT -MSGMERGE -CATALOGS -CATOBJEXT -INSTOBJEXT -DATADIRNAME -RM -RMDIR -INSTALL_PROGRAM -INSTALL_SCRIPT -INSTALL_DATA -XMKMF -X_CFLAGS -X_PRE_LIBS -X_LIBS -X_EXTRA_LIBS -X_PROGRAMS -TT_FILE_COMPONENT -LIBOBJS -LTLIBOBJS' -ac_subst_files='' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -CXX -CXXFLAGS -CCC -CXXCPP -F77 -FFLAGS -XMKMF' - - -# 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. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -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 - - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -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) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval enable_$ac_useropt=\$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 ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$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 ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - 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 ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$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_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-.]/_/g'` - eval with_$ac_useropt=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 ;; - - -*) { $as_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 && - { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_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'` - { $as_echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute directory names. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } -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 - $as_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 - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { $as_echo "$as_me: error: Working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } - - -# 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 the parent directory. - ac_confdir=`$as_dirname -- "$0" || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_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 - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# 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 \`..'] - -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] - --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] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -X features: - --x-includes=DIR X include files are in DIR - --x-libraries=DIR X library files are in DIR - -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-static[=PKGS] build static libraries [default=no] - --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-fast-install[=PKGS] - optimize for fast installation [default=yes] - --disable-libtool-lock avoid locking (might break parallel builds) - --disable-nls don't use NLS - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --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] - --with-locale-dir=DIR Location of the locale file(s) - PREFIX/share/locale - --with-x use the X Window System - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - CPP C preprocessor - CXX C++ compiler command - CXXFLAGS C++ compiler flags - CXXCPP C++ preprocessor - F77 Fortran 77 compiler command - FFLAGS Fortran 77 compiler flags - XMKMF Path to xmkmf, Makefile generator for X Window System - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested 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 - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -configure -generated by GNU Autoconf 2.61a - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006 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 -fi -cat >config.log <<_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.61a. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -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` -/usr/bin/hostinfo = `(/usr/bin/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=. - $as_echo "PATH: $as_dir" -done -IFS=$as_save_IFS - -} >&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_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=`$as_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_arg'" - ;; - 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: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -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, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - 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 - -# 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 -n "$CONFIG_SITE"; then - set x "$CONFIG_SITE" -elif test "x$prefix" != xNONE; then - set x "$prefix/share/config.site" "$prefix/etc/config.site" -else - set x "$ac_default_prefix/share/config.site" \ - "$ac_default_prefix/etc/config.site" -fi -shift -for ac_site_file -do - if test -r "$ac_site_file"; then - { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -$as_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 - { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 -$as_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 $ac_precious_vars; 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,) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -$as_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 - { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { $as_echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -$as_echo "$as_me: former value: $ac_old_val" >&2;} - { $as_echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -$as_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=`$as_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 - { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -$as_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 - - - -srcdir=`cd $srcdir; pwd` - -# Check whether --enable-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=no -fi - - - - - -# Check whether --enable-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-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 - - -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 - { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} - { (exit 1); exit 1; }; } -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} - { (exit 1); exit 1; }; } - -{ $as_echo "$as_me:$LINENO: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -$as_echo "$as_me: error: invalid value of canonical build" >&2;} - { (exit 1); exit 1; }; };; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:$LINENO: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} - { (exit 1); exit 1; }; } -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -$as_echo "$as_me: error: invalid value of canonical host" >&2;} - { (exit 1); exit 1; }; };; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -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 - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_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. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_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. -{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -# -# List of possible output files, starting from the most likely. -# The algorithm is not robust to junk in `.', hence go to wildcards (a.*) -# only as a last resort. b.out is created by i960 compilers. -ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out' -# -# The IRIX 6 linker writes into existing files which may not be -# executable, retaining their permissions. Remove them first so a -# subsequent execution test works. -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { (ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi - -{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -if test -z "$ac_file"; then - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -$as_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 - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&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' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_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 - { { $as_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 -$as_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 -{ $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -rm -f a.out a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_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 | *.map | *.inf | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -$as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then - $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -$as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - 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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - 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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - 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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$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 -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=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 -#include -#include -#include -/* 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]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 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 -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac - - -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 - -{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${lt_cv_path_SED+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$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 -IFS=$as_save_IFS -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 && continue - 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 - -fi - -SED=$lt_cv_path_SED - -{ $as_echo "$as_me:$LINENO: result: $SED" >&5 -$as_echo "$SED" >&6; } - -{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - $as_echo_n "(cached) " >&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 - $as_echo_n "(cached) " >&6 -else - ac_path_GREP_found=false -# 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$PATH_SEPARATOR/usr/xpg4/bin -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" && $as_test_x "$ac_path_GREP"; } || continue - # Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - - $ac_path_GREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -fi - -GREP="$ac_cv_path_GREP" -if test -z "$GREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - -else - ac_cv_path_GREP=$GREP -fi - - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then - $as_echo_n "(cached) " >&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 - $as_echo_n "(cached) " >&6 -else - ac_path_EGREP_found=false -# 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$PATH_SEPARATOR/usr/xpg4/bin -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" && $as_test_x "$ac_path_EGREP"; } || continue - # Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - - $ac_path_EGREP_found && break 3 - done -done - -done -IFS=$as_save_IFS - - -fi - -EGREP="$ac_cv_path_EGREP" -if test -z "$EGREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } -fi - -else - ac_cv_path_EGREP=$EGREP -fi - - - fi -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - - -# Check whether --with-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. - { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&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 - { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if test "${lt_cv_path_LD+set}" = set; then - $as_echo_n "(cached) " >&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 variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$lt_cv_prog_gnu_ld" >&6; } -with_gnu_ld=$lt_cv_prog_gnu_ld - - -{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5 -$as_echo_n "checking for $LD option to reload object files... " >&6; } -if test "${lt_cv_ld_reload_flag+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_ld_reload_flag='-r' -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 -$as_echo "$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' -case $host_os in - darwin*) - if test "$GCC" = yes; then - reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' - else - reload_cmds='$LD$reload_flag -o $output$reload_objs' - fi - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 -$as_echo_n "checking for BSD-compatible nm... " >&6; } -if test "${lt_cv_path_NM+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$NM"; then - # Let the user override the test. - lt_cv_path_NM="$NM" -else - lt_nm_to_check="${ac_tool_prefix}nm" - if test -n "$ac_tool_prefix" && test "$build" = "$host"; then - lt_nm_to_check="$lt_nm_to_check nm" - fi - for lt_tmp_nm in $lt_nm_to_check; do - lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do - IFS="$lt_save_ifs" - test -z "$ac_dir" && ac_dir=. - tmp_nm="$ac_dir/$lt_tmp_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" - done - test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm -fi -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 -$as_echo "$lt_cv_path_NM" >&6; } -NM="$lt_cv_path_NM" - -{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - -{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 -$as_echo_n "checking how to recognize dependent libraries... " >&6; } -if test "${lt_cv_deplibs_check_method+set}" = set; then - $as_echo_n "(cached) " >&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 - ;; - -bsdi[45]*) - 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', - # unless we find 'file', for example because we are cross-compiling. - if ( file / ) >/dev/null 2>&1; then - lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' - lt_cv_file_magic_cmd='func_win32_libid' - else - lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - lt_cv_file_magic_cmd='$OBJDUMP -f' - fi - ;; - -darwin* | rhapsody*) - lt_cv_deplibs_check_method=pass_all - ;; - -freebsd* | dragonfly*) - 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|DragonFly)/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 - ;; - -interix[3-9]*) - # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' - ;; - -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* | k*bsd*-gnu) - 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*) - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' - else - lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' - fi - ;; - -osf3* | osf4* | osf5*) - lt_cv_deplibs_check_method=pass_all - ;; - -rdos*) - lt_cv_deplibs_check_method=pass_all - ;; - -solaris*) - lt_cv_deplibs_check_method=pass_all - ;; - -sysv4 | sysv4.3*) - 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 - ;; - pc) - lt_cv_deplibs_check_method=pass_all - ;; - esac - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - lt_cv_deplibs_check_method=pass_all - ;; -esac - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$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"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# Check whether --enable-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=$? - $as_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 3737 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_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-*kfreebsd*-gnu|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=$? - $as_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-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_i386_fbsd" - ;; - 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-*kfreebsd*-gnu) - LD="${LD-ld} -m elf_x86_64_fbsd" - ;; - 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" - { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 -$as_echo_n "checking whether the C compiler needs -belf... " >&6; } -if test "${lt_cv_cc_needs_belf+set}" = set; then - $as_echo_n "(cached) " >&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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - lt_cv_cc_needs_belf=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - lt_cv_cc_needs_belf=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 -{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 -$as_echo "$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 - ;; -sparc*-*solaris*) - # 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=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.o` in - *64-bit*) - case $lt_cv_prog_gnu_ld in - yes*) LD="${LD-ld} -m elf64_sparc" ;; - *) LD="${LD-ld} -64" ;; - esac - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-cygwin* | *-*-mingw* | *-*-pw32*) - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. -set dummy ${ac_tool_prefix}dlltool; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_DLLTOOL+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$DLLTOOL"; then - ac_cv_prog_DLLTOOL="$DLLTOOL" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -DLLTOOL=$ac_cv_prog_DLLTOOL -if test -n "$DLLTOOL"; then - { $as_echo "$as_me:$LINENO: result: $DLLTOOL" >&5 -$as_echo "$DLLTOOL" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_DLLTOOL"; then - ac_ct_DLLTOOL=$DLLTOOL - # Extract the first word of "dlltool", so it can be a program name with args. -set dummy dlltool; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_DLLTOOL"; then - ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_DLLTOOL="dlltool" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL -if test -n "$ac_ct_DLLTOOL"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5 -$as_echo "$ac_ct_DLLTOOL" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_DLLTOOL" = x; then - DLLTOOL="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - DLLTOOL=$ac_ct_DLLTOOL - fi -else - DLLTOOL="$ac_cv_prog_DLLTOOL" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. -set dummy ${ac_tool_prefix}as; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AS+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$AS"; then - ac_cv_prog_AS="$AS" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AS="${ac_tool_prefix}as" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -AS=$ac_cv_prog_AS -if test -n "$AS"; then - { $as_echo "$as_me:$LINENO: result: $AS" >&5 -$as_echo "$AS" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AS"; then - ac_ct_AS=$AS - # Extract the first word of "as", so it can be a program name with args. -set dummy as; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AS+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AS"; then - ac_cv_prog_ac_ct_AS="$ac_ct_AS" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AS="as" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_AS=$ac_cv_prog_ac_ct_AS -if test -n "$ac_ct_AS"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_AS" >&5 -$as_echo "$ac_ct_AS" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AS" = x; then - AS="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - AS=$ac_ct_AS - fi -else - AS="$ac_cv_prog_AS" -fi - - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. -set dummy ${ac_tool_prefix}objdump; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_OBJDUMP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$OBJDUMP"; then - ac_cv_prog_OBJDUMP="$OBJDUMP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -OBJDUMP=$ac_cv_prog_OBJDUMP -if test -n "$OBJDUMP"; then - { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5 -$as_echo "$OBJDUMP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_OBJDUMP"; then - ac_ct_OBJDUMP=$OBJDUMP - # Extract the first word of "objdump", so it can be a program name with args. -set dummy objdump; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_OBJDUMP"; then - ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_OBJDUMP="objdump" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP -if test -n "$ac_ct_OBJDUMP"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5 -$as_echo "$ac_ct_OBJDUMP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_OBJDUMP" = x; then - OBJDUMP="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - OBJDUMP=$ac_ct_OBJDUMP - fi -else - OBJDUMP="$ac_cv_prog_OBJDUMP" -fi - - ;; - -esac - -need_locks="$enable_libtool_lock" - - -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 -{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&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 - $as_echo_n "(cached) " >&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 to if __STDC__ is defined, since - # 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 -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_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 nonexistent 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 -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_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 -{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 -$as_echo "$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 to if __STDC__ is defined, since - # 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 -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_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 nonexistent 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 -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_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 - { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_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 - - -{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - $as_echo_n "(cached) " >&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 -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_stdc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no -fi - -rm -f core 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 - -_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 - -_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 -#include -#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)) - return 2; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_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 core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -$as_echo "$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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - -for ac_header in dlfcn.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&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 { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - -ac_ext=cpp -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 -z "$CXX"; then - if test -n "$CCC"; then - CXX=$CCC - else - if test -n "$ac_tool_prefix"; then - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CXX+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - { $as_echo "$as_me:$LINENO: result: $CXX" >&5 -$as_echo "$CXX" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CXX" && break - done -fi -if test -z "$CXX"; then - ac_ct_CXX=$CXX - for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CXX="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5 -$as_echo "$ac_ct_CXX" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CXX" && break -done - - if test "x$ac_ct_CXX" = x; then - CXX="g++" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - CXX=$ac_ct_CXX - fi -fi - - fi -fi -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5 -$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } -if test "${ac_cv_cxx_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5 -$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GXX=yes -else - GXX= -fi -ac_test_CXXFLAGS=${CXXFLAGS+set} -ac_save_CXXFLAGS=$CXXFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5 -$as_echo_n "checking whether $CXX accepts -g... " >&6; } -if test "${ac_cv_prog_cxx_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_cxx_werror_flag=$ac_cxx_werror_flag - ac_cxx_werror_flag=yes - ac_cv_prog_cxx_g=no - CXXFLAGS="-g" - 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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cxx_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CXXFLAGS="" - 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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cxx_werror_flag=$ac_save_cxx_werror_flag - CXXFLAGS="-g" - 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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cxx_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_cxx_werror_flag=$ac_save_cxx_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5 -$as_echo "$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 -ac_ext=cpp -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 "$CXX" && ( test "X$CXX" != "Xno" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cpp -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 -{ $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5 -$as_echo_n "checking how to run the C++ preprocessor... " >&6; } -if test -z "$CXXCPP"; then - if test "${ac_cv_prog_CXXCPP+set}" = set; then - $as_echo_n "(cached) " >&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 to if __STDC__ is defined, since - # 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 -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_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 nonexistent 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 -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_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 -{ $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5 -$as_echo "$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 to if __STDC__ is defined, since - # 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 -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_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 nonexistent 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 -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_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 - { { $as_echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=cpp -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 - -fi - - -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 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn - 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_F77+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_F77="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -F77=$ac_cv_prog_F77 -if test -n "$F77"; then - { $as_echo "$as_me:$LINENO: result: $F77" >&5 -$as_echo "$F77" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$F77" && break - done -fi -if test -z "$F77"; then - ac_ct_F77=$F77 - for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgf95 lf95 ftn -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_F77+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_F77="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_F77=$ac_cv_prog_ac_ct_F77 -if test -n "$ac_ct_F77"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_F77" >&5 -$as_echo "$ac_ct_F77" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_F77" && break -done - - if test "x$ac_ct_F77" = x; then - F77="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - F77=$ac_ct_F77 - fi -fi - - -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_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 -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5 -$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; } -if test "${ac_cv_f77_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF - program main -#ifndef __GNUC__ - choke me -#endif - - end -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_f77_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5 -$as_echo "$ac_cv_f77_compiler_gnu" >&6; } -ac_ext=$ac_save_ext -ac_test_FFLAGS=${FFLAGS+set} -ac_save_FFLAGS=$FFLAGS -FFLAGS= -{ $as_echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5 -$as_echo_n "checking whether $F77 accepts -g... " >&6; } -if test "${ac_cv_prog_f77_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - FFLAGS=-g -cat >conftest.$ac_ext <<_ACEOF - program main - - end -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_f77_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_prog_f77_g=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5 -$as_echo "$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 - -if test $ac_compiler_gnu = yes; then - G77=yes -else - G77= -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 - - - -# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! - -# find the maximum length of command line arguments -{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 -$as_echo_n "checking the maximum length of command line arguments... " >&6; } -if test "${lt_cv_sys_max_cmd_len+set}" = set; then - $as_echo_n "(cached) " >&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; - ;; - - netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) - # This has been around since 386BSD, at least. Likely further. - if test -x /sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` - elif test -x /usr/sbin/sysctl; then - lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` - else - lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs - fi - # And add a safety zone - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - ;; - - interix*) - # We know the value 262144 and hardcode it with a safety zone (like BSD) - lt_cv_sys_max_cmd_len=196608 - ;; - - osf*) - # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure - # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not - # nice to cause kernel panics so lets avoid the loop below. - # First set a reasonable default. - lt_cv_sys_max_cmd_len=16384 - # - if test -x /sbin/sysconfig; then - case `/sbin/sysconfig -q proc exec_disable_arg_limit` in - *1*) lt_cv_sys_max_cmd_len=-1 ;; - esac - fi - ;; - sco3.2v5*) - lt_cv_sys_max_cmd_len=102400 - ;; - sysv5* | sco5v6* | sysv4.2uw2*) - kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` - if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` - else - lt_cv_sys_max_cmd_len=32768 - fi - ;; - *) - lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` - if test -n "$lt_cv_sys_max_cmd_len"; then - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` - lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` - else - SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} - while (test "X"`$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` - fi - ;; - esac - -fi - -if test -n $lt_cv_sys_max_cmd_len ; then - { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 -$as_echo "$lt_cv_sys_max_cmd_len" >&6; } -else - { $as_echo "$as_me:$LINENO: result: none" >&5 -$as_echo "none" >&6; } -fi - - - - - -# Check for command to grab the raw symbol name followed by C symbol from nm. -{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5 -$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } -if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then - $as_echo_n "(cached) " >&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 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'" - ;; -linux* | k*bsd*-gnu) - if test "$host_cpu" = ia64; then - symcode='[ABCDGIRSTW]' - 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'" - fi - ;; -irix* | nonstopux*) - symcode='[BCDEGRST]' - ;; -osf*) - symcode='[BCDEGQRST]' - ;; -solaris*) - symcode='[BDRT]' - ;; -sco3.2v5*) - symcode='[DT]' - ;; -sysv4.2uw2*) - symcode='[DT]' - ;; -sysv5* | sco5v6* | unixware* | OpenUNIX*) - symcode='[ABDT]' - ;; -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 - - # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. - symxfrm="\\1 $ac_symprfx\\2 \\2" - - # 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 <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_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=$? - $as_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 < 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 <> 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=$? - $as_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 - { $as_echo "$as_me:$LINENO: result: failed" >&5 -$as_echo "failed" >&6; } -else - { $as_echo "$as_me:$LINENO: result: ok" >&5 -$as_echo "ok" >&6; } -fi - -{ $as_echo "$as_me:$LINENO: checking for objdir" >&5 -$as_echo_n "checking for objdir... " >&6; } -if test "${lt_cv_objdir+set}" = set; then - $as_echo_n "(cached) " >&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 -{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 -$as_echo "$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 1s/^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 MSVC, -# 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AR+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:$LINENO: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_AR+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AR" = x; then - AR="false" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RANLIB+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_RANLIB="ranlib" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - 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 "$LTCFLAGS" && LTCFLAGS=$CFLAGS -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_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -if test -n "$RANLIB"; then - case $host_os in - openbsd*) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" - ;; - *) - old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" - ;; - esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" -fi - -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# 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 - { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 -$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - $as_echo_n "(cached) " >&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 <&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 - { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - -if test -z "$lt_cv_path_MAGIC_CMD"; then - if test -n "$ac_tool_prefix"; then - { $as_echo "$as_me:$LINENO: checking for file" >&5 -$as_echo_n "checking for file... " >&6; } -if test "${lt_cv_path_MAGIC_CMD+set}" = set; then - $as_echo_n "(cached) " >&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 <&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 - { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 -$as_echo "$MAGIC_CMD" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - else - MAGIC_CMD=: - fi -fi - - fi - ;; -esac - -enable_dlopen=no -enable_win32_dll=yes - -# Check whether --enable-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 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;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(){return(0);}' - - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* - - - -lt_prog_compiler_no_builtin_flag= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag=' -fno-builtin' - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6698: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:6702: \$? = $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 other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$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= - -{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&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* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | 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). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - 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' - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - 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 - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic='-qnocommon' - lt_prog_compiler_wl='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | 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* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-fpic' - lt_prog_compiler_static='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - lt_prog_compiler_wl='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl='-Qoption ld ';; - *) - lt_prog_compiler_wl='-Wl,';; - esac - ;; - - sunos4*) - lt_prog_compiler_wl='-Qoption ld ' - lt_prog_compiler_pic='-PIC' - lt_prog_compiler_static='-Bstatic' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3*) - 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 - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_pic='-KPIC' - lt_prog_compiler_static='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl='-Wl,' - lt_prog_compiler_can_build_shared=no - ;; - - uts4*) - lt_prog_compiler_pic='-pic' - lt_prog_compiler_static='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 -$as_echo "$lt_prog_compiler_pic" >&6; } - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic"; then - -{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } -if test "${lt_prog_compiler_pic_works+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_pic_works=no - ac_outfile=conftest.$ac_objext - echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:6988: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:6992: \$? = $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 other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_pic_works=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 -$as_echo "$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 - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" -{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_prog_compiler_static_works+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_static_works=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker 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 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_static_works=yes - fi - else - lt_prog_compiler_static_works=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 -$as_echo "$lt_prog_compiler_static_works" >&6; } - -if test x"$lt_prog_compiler_static_works" = xyes; then - : -else - lt_prog_compiler_static= -fi - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7092: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:7096: \$? = $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 - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o=yes - fi - fi - chmod u+w . 2>&5 - $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 -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 -$as_echo "$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 - { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&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 - { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_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 - -{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&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= - # Just being paranoid about ensuring that cc_basename is set. - for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - 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 - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - 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}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - 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 - 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 - - # 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 <&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 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 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 '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs=no - fi - ;; - - interix[3-9]*) - hardcode_direct=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='${wl}-rpath,$libdir' - export_dynamic_flag_spec='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - 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 '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - 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*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <&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 - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - ld_shlibs=no - fi - ;; - esac - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - 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" = no; then - runpath_var= - hardcode_libdir_flag_spec= - export_dynamic_flag_spec= - whole_archive_flag_spec= - 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 "$lt_prog_compiler_static"; 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 - : - 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' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - 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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# 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 "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${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 '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# 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 "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec='$convenience' - archive_cmds_need_lc=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${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 - ;; - - bsdi[45]*) - 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*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc=no - hardcode_direct=no - hardcode_automatic=yes - hardcode_shlibpath_var=unsupported - whole_archive_flag_spec='' - link_all_deplibs=yes - if test "$GCC" = yes ; then - 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 lds - 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}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - 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 lds - archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~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}' - ;; - *) - ld_shlibs=no - ;; - esac - 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* | dragonfly*) - 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*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - 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 - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -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*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_libdir_flag_spec_ld='+b $libdir' - hardcode_direct=no - hardcode_shlibpath_var=no - ;; - *) - 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*) - if test -f /usr/libexec/ld.so; then - 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' - archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - 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 - else - ld_shlibs=no - 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 ${output_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=: - ;; - - solaris*) - no_undefined_flag=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - 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 - wlarc='' - 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].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' - fi - ;; - 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*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag='${wl}-z,text' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag='${wl}-z,text' - allow_undefined_flag='${wl}-z,nodefs' - archive_cmds_need_lc=no - hardcode_shlibpath_var=no - hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator=':' - link_all_deplibs=yes - export_dynamic_flag_spec='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - 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 - -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5 -$as_echo "$ld_shlibs" >&6; } -test "$ld_shlibs" = no && can_build_shared=no - -# -# 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. - { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_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 - pic_flag=$lt_prog_compiler_pic - 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=$? - $as_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* - { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 -$as_echo "$archive_cmds_need_lc" >&6; } - ;; - esac - fi - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&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 - case $host_os in - darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; - *) lt_awk_arg="/^libraries:/" ;; - esac - lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` - if echo "$lt_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. - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` - else - lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` - fi - # Ok, now we have the path, separated by spaces, we can step through it - # and add multilib dir if necessary. - lt_tmp_lt_search_path_spec= - lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` - for lt_sys_path in $lt_search_path_spec; do - if test -d "$lt_sys_path/$lt_multi_os_dir"; then - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" - else - test -d "$lt_sys_path" && \ - lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" - fi - done - lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' -BEGIN {RS=" "; FS="/|\n";} { - lt_foo=""; - lt_count=0; - for (lt_i = NF; lt_i > 0; lt_i--) { - if ($lt_i != "" && $lt_i != ".") { - if ($lt_i == "..") { - lt_count++; - } else { - if (lt_count == 0) { - lt_foo="/" $lt_i lt_foo; - } else { - lt_count--; - } - } - } - } - if (lt_foo != "") { lt_freq[lt_foo]++; } - if (lt_freq[lt_foo] == 1) { print lt_foo; } -}'` - sys_lib_search_path_spec=`echo $lt_search_path_spec` -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.so - # instead of lib.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 - ;; - -bsdi[45]*) - 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~ - chmod a+x \$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`' - - sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" - 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 - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - 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 - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - 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' - ;; - -interix[3-9]*) - 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' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -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* | k*bsd*-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' - 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=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | 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' - ;; - -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 - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - 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" - ;; - -rdos*) - dynamic_linker=no - ;; - -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.3*) - 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 - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -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 -{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = 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 - -{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&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 -{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5 -$as_echo "$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= -{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 -$as_echo_n "checking whether stripping libraries is possible... " >&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" - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "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" - old_striplib="$STRIP -S" - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - ;; - *) - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "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 - { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - $as_echo_n "(cached) " >&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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dl_dlopen=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$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 - - ;; - - *) - { $as_echo "$as_me:$LINENO: checking for shl_load" >&5 -$as_echo_n "checking for shl_load... " >&6; } -if test "${ac_cv_func_shl_load+set}" = set; then - $as_echo_n "(cached) " >&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 declares shl_load. - For example, HP-UX 11i 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 to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shl_load - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -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 -#endif - -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_shl_load=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_shl_load=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5 -$as_echo "$ac_cv_func_shl_load" >&6; } -if test $ac_cv_func_shl_load = yes; then - lt_cv_dlopen="shl_load" -else - { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5 -$as_echo_n "checking for shl_load in -ldld... " >&6; } -if test "${ac_cv_lib_dld_shl_load+set}" = set; then - $as_echo_n "(cached) " >&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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load (); -int -main () -{ -return shl_load (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dld_shl_load=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_shl_load=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 -$as_echo "$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="-ldld" -else - { $as_echo "$as_me:$LINENO: checking for dlopen" >&5 -$as_echo_n "checking for dlopen... " >&6; } -if test "${ac_cv_func_dlopen+set}" = set; then - $as_echo_n "(cached) " >&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 declares dlopen. - For example, HP-UX 11i declares gettimeofday. */ -#define dlopen innocuous_dlopen - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlopen (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef dlopen - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -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 -#endif - -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_dlopen=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5 -$as_echo "$ac_cv_func_dlopen" >&6; } -if test $ac_cv_func_dlopen = yes; then - lt_cv_dlopen="dlopen" -else - { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if test "${ac_cv_lib_dl_dlopen+set}" = set; then - $as_echo_n "(cached) " >&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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dl_dlopen=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dl_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$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 - { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5 -$as_echo_n "checking for dlopen in -lsvld... " >&6; } -if test "${ac_cv_lib_svld_dlopen+set}" = set; then - $as_echo_n "(cached) " >&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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_svld_dlopen=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_svld_dlopen=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5 -$as_echo "$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 - { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5 -$as_echo_n "checking for dld_link in -ldld... " >&6; } -if test "${ac_cv_lib_dld_dld_link+set}" = set; then - $as_echo_n "(cached) " >&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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dld_link (); -int -main () -{ -return dld_link (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dld_dld_link=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dld_dld_link=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 -$as_echo "$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="-ldld" -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" - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - - save_LIBS="$LIBS" - LIBS="$lt_cv_dlopen_libs $LIBS" - - { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5 -$as_echo_n "checking whether a program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self+set}" = set; then - $as_echo_n "(cached) " >&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 < -#endif - -#include - -#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); */ - } - else - puts (dlerror ()); - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 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_dlunknown|x*) lt_cv_dlopen_self=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5 -$as_echo "$lt_cv_dlopen_self" >&6; } - - if test "x$lt_cv_dlopen_self" = xyes; then - wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" - { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 -$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } -if test "${lt_cv_dlopen_self_static+set}" = set; then - $as_echo_n "(cached) " >&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 < -#endif - -#include - -#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); */ - } - else - puts (dlerror ()); - - exit (status); -} -EOF - if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) >&5 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_dlunknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi -fi -rm -fr conftest* - - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 -$as_echo "$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 library types will actually be built -{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - -{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&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 - ;; -esac -{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - -{ $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5 -$as_echo "$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 LTCFLAGS 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 \ - fix_srcfile_path \ - 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" - { $as_echo "$as_me:$LINENO: creating $ofile" >&5 -$as_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, 2002, 2003, 2004, 2005, 2006, 2007 -# Free Software Foundation, Inc. -# -# This file is part of GNU Libtool: -# Originally by Gordon Matzigkeit , 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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 1s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -# 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 -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# 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 - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# 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=$lt_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 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 - { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 -$as_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 - { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 -$as_echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} - else - { $as_echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 -$as_echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} - fi - fi - if test -z "$LTCFLAGS"; then - eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" - 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 - "") ;; - *) { { $as_echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 -$as_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 - { { $as_echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 -$as_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" && - ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || - (test "X$CXX" != "Xg++"))) ; then - ac_ext=cpp -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_shlibpath_var_CXX=unsupported -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=cpp - -# 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;" - -# Code to be used in simple link tests -lt_simple_link_test_code='int main(int, char *[]) { return(0); }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* - - -# 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 - $as_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 - $as_unset lt_cv_path_LD -fi -test -z "${LDCXX+set}" || LD=$LDCXX -CC=${CXX-"c++"} -compiler=$CC -compiler_CXX=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# 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 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. - { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5 -$as_echo_n "checking for ld used by $CC... " >&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 - { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5 -$as_echo_n "checking for GNU ld... " >&6; } -else - { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5 -$as_echo_n "checking for non-GNU ld... " >&6; } -fi -if test "${lt_cv_path_LD+set}" = set; then - $as_echo_n "(cached) " >&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 variants of GNU ld only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - case `"$lt_cv_path_LD" -v 2>&1 &5 -$as_echo "$LD" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi -test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 -$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} - { (exit 1); exit 1; }; } -{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 -$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } -if test "${lt_cv_prog_gnu_ld+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # I'd rather use --version here, but apparently some GNU lds only accept -v. -case `$LD -v 2>&1 &5 -$as_echo "$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 -{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&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 - : - 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' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - 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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# 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 "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${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 '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_cxx_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# 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 "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_CXX='$convenience' - archive_cmds_need_lc_CXX=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' - fi - fi - ;; - - beos*) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag_CXX=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs_CXX=no - 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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_CXX=no - fi - ;; - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_CXX=no - hardcode_direct_CXX=no - hardcode_automatic_CXX=yes - hardcode_shlibpath_var_CXX=unsupported - whole_archive_flag_spec_CXX='' - link_all_deplibs_CXX=yes - - if test "$GXX" = yes ; then - lt_int_apple_cc_single_mod=no - output_verbose_link_cmd='echo' - if $CC -dumpspecs 2>&1 | $EGREP '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 -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 $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 lds - 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 -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}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds_CXX='$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 lds - archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - 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}' - ;; - *) - ld_shlibs_CXX=no - ;; - esac - 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 - ;; - freebsd[12]*) - # 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* | dragonfly*) - # 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 - hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_CXX=: - - case $host_cpu in - hppa*64*|ia64*) ;; - *) - export_dynamic_flag_spec_CXX='${wl}-E' - ;; - esac - fi - case $host_cpu in - hppa*64*|ia64*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - ;; - *) - 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*) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - 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 - hppa*64*) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - ia64*) - archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - ;; - *) - 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 - ;; - interix[3-9]*) - hardcode_direct_CXX=no - hardcode_shlibpath_var_CXX=no - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - export_dynamic_flag_spec_CXX='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - 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 ${output_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}${output_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* | k*bsd*-gnu) - 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 - # version 8.0 and above of icpc choke on multiply defined symbols - # if we add $predep_objects and $postdep_objects, however 7.1 and - # earlier do not add the objects themselves. - case `$CC -V 2>&1` in - *"Version 7."*) - 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' - ;; - *) # Version 8.0 or newer - tmp_idyn= - case $host_cpu in - ia64*) tmp_idyn=' -i_dynamic';; - esac - archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - ;; - esac - archive_cmds_need_lc_CXX=no - 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' - ;; - pgCC*) - # Portland Group C++ compiler - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' - archive_expsym_cmds_CXX='$CC -shared $pic_flag $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' - whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_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' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' - archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' - hardcode_libdir_flag_spec_CXX='-R$libdir' - whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - - # Not sure whether something based on - # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 - # would be better. - output_verbose_link_cmd='echo' - - # 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' - ;; - esac - ;; - 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::"' - ;; - openbsd2*) - # C++ shared libraries are fairly broken - ld_shlibs_CXX=no - ;; - openbsd*) - if test -f /usr/libexec/ld.so; then - hardcode_direct_CXX=yes - hardcode_shlibpath_var_CXX=no - archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' - hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' - if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then - archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' - export_dynamic_flag_spec_CXX='${wl}-E' - whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - fi - output_verbose_link_cmd='echo' - else - ld_shlibs_CXX=no - fi - ;; - 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 ${output_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}${output_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 ${output_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 ${output_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}${output_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 - ;; - 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++ - archive_cmds_need_lc_CXX=yes - no_undefined_flag_CXX=' -zdefs' - archive_cmds_CXX='$CC -G${allow_undefined_flag} -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} ${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 compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. - # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' - ;; - esac - link_all_deplibs_CXX=yes - - output_verbose_link_cmd='echo' - - # 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' - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) - whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - ;; - esac - fi - ;; - esac - ;; - sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag_CXX='${wl}-z,text' - archive_cmds_need_lc_CXX=no - hardcode_shlibpath_var_CXX=no - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - # For security reasons, it is highly recommended that you always - # use absolute paths for naming shared libraries, and exclude the - # DT_RUNPATH tag from executables and libraries. But doing so - # requires that you compile everything twice, which is a pain. - # So that behaviour is only enabled if SCOABSPATH is set to a - # non-empty value in the environment. Most likely only useful for - # creating official distributions of packages. - # This is a hack until libtool officially supports absolute path - # names for shared libraries. - no_undefined_flag_CXX='${wl}-z,text' - allow_undefined_flag_CXX='${wl}-z,nodefs' - archive_cmds_need_lc_CXX=no - hardcode_shlibpath_var_CXX=no - hardcode_libdir_flag_spec_CXX='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator_CXX=':' - link_all_deplibs_CXX=yes - export_dynamic_flag_spec_CXX='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - case $cc_basename in - CC*) - archive_cmds_CXX='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_CXX='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - ;; - 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 -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -$as_echo "$ld_shlibs_CXX" >&6; } -test "$ld_shlibs_CXX" = no && can_build_shared=no - -GCC_CXX="$GXX" -LD_CXX="$LD" - - -cat > conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_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 - -# PORTME: override above test on systems where it is broken -case $host_os in -interix[3-9]*) - # Interix 3.5 installs completely hosed .la files for C++, so rather than - # hack all around it, let's just trust "g++" to DTRT. - predep_objects_CXX= - postdep_objects_CXX= - postdeps_CXX= - ;; - -linux*) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - # - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - if test "$solaris_use_stlport4" != yes; then - postdeps_CXX='-library=Cstd -library=Crun' - fi - ;; - esac - ;; - -solaris*) - case $cc_basename in - CC*) - # The more standards-conforming stlport4 library is - # incompatible with the Cstd library. Avoid specifying - # it if it's in CXXFLAGS. Ignore libCrun as - # -library=stlport4 depends on it. - case " $CXX $CXXFLAGS " in - *" -library=stlport4 "*) - solaris_use_stlport4=yes - ;; - esac - - # Adding this requires a known-good setup of shared libraries for - # Sun compiler versions before 5.6, else PIC objects from an old - # archive will be linked into the output, leading to subtle bugs. - if test "$solaris_use_stlport4" != yes; then - postdeps_CXX='-library=Cstd -library=Crun' - fi - ;; - esac - ;; -esac - - -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= - -{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&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* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - mingw* | cygwin* | 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). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - 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= - ;; - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - 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 - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic_CXX='-qnocommon' - lt_prog_compiler_wl_CXX='-Wl,' - ;; - 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* | dragonfly*) - # FreeBSD uses GNU C++ - ;; - hpux9* | hpux10* | hpux11*) - case $cc_basename in - CC*) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_static_CXX='${wl}-a ${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='${wl}-a ${wl}archive' - case $host_cpu in - hppa*64*|ia64*) - # +Z the default - ;; - *) - lt_prog_compiler_pic_CXX='+Z' - ;; - esac - ;; - *) - ;; - esac - ;; - interix*) - # This is c89, which is MS Visual C++ (no shared libs) - # Anyone wants to do a port? - ;; - 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* | k*bsd*-gnu) - case $cc_basename in - KCC*) - # KAI C++ Compiler - lt_prog_compiler_wl_CXX='--backend -Wl,' - lt_prog_compiler_pic_CXX='-fPIC' - ;; - icpc* | ecpc*) - # Intel C++ - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-static' - ;; - pgCC*) - # Portland Group C++ compiler. - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-fpic' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - 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' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C++ 5.9 - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - lt_prog_compiler_wl_CXX='-Qoption ld ' - ;; - esac - ;; - 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*) - ;; - 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 - ;; - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - case $cc_basename in - CC*) - lt_prog_compiler_wl_CXX='-Wl,' - lt_prog_compiler_pic_CXX='-KPIC' - lt_prog_compiler_static_CXX='-Bstatic' - ;; - esac - ;; - vxworks*) - ;; - *) - lt_prog_compiler_can_build_shared_CXX=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5 -$as_echo "$lt_prog_compiler_pic_CXX" >&6; } - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_CXX"; then - -{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } -if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_pic_works_CXX=no - ac_outfile=conftest.$ac_objext - echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:11972: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:11976: \$? = $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 other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_pic_works_CXX=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 -$as_echo "$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 - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" -{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_prog_compiler_static_works_CXX+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_static_works_CXX=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker 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 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_static_works_CXX=yes - fi - else - lt_prog_compiler_static_works_CXX=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 -$as_echo "$lt_prog_compiler_static_works_CXX" >&6; } - -if test x"$lt_prog_compiler_static_works_CXX" = xyes; then - : -else - lt_prog_compiler_static_CXX= -fi - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o_CXX=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12076: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:12080: \$? = $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 - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o_CXX=yes - fi - fi - chmod u+w . 2>&5 - $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 -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5 -$as_echo "$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 - { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&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 - { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_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 - -{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&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 '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' - ;; - *) - export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' - ;; - esac - -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 -$as_echo "$ld_shlibs_CXX" >&6; } -test "$ld_shlibs_CXX" = no && can_build_shared=no - -# -# 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. - { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_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 - pic_flag=$lt_prog_compiler_pic_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=$? - $as_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* - { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5 -$as_echo "$archive_cmds_need_lc_CXX" >&6; } - ;; - esac - fi - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&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" - -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.so - # instead of lib.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 - ;; - -bsdi[45]*) - 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~ - chmod a+x \$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`' - - 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 - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - 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 - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - 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' - ;; - -interix[3-9]*) - 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' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -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* | k*bsd*-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' - 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=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | 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' - ;; - -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 - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - 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" - ;; - -rdos*) - dynamic_linker=no - ;; - -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.3*) - 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 - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -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 -{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = 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 - -{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&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 -{ $as_echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5 -$as_echo "$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 - - -# 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 LTCFLAGS 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 \ - fix_srcfile_path_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 -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# 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 - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# 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=$lt_fix_srcfile_path - -# 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 - return - end -" - -# Code to be used in simple link tests -lt_simple_link_test_code="\ - program t - end -" - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${F77-"f77"} -compiler=$CC -compiler_F77=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 -$as_echo_n "checking if libtool supports shared libraries... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5 -$as_echo "$can_build_shared" >&6; } - -{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 -$as_echo_n "checking whether to build shared libraries... " >&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 - ;; -esac -{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5 -$as_echo "$enable_shared" >&6; } - -{ $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5 -$as_echo_n "checking whether to build static libraries... " >&6; } -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes -{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5 -$as_echo "$enable_static" >&6; } - -GCC_F77="$G77" -LD_F77="$LD" - -lt_prog_compiler_wl_F77= -lt_prog_compiler_pic_F77= -lt_prog_compiler_static_F77= - -{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&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* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | 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). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - 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' - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - 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 - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic_F77='-qnocommon' - lt_prog_compiler_wl_F77='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | 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* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-fpic' - lt_prog_compiler_static_F77='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl_F77='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - lt_prog_compiler_wl_F77='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - lt_prog_compiler_wl_F77='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_F77='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_F77='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static_F77='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl_F77='-Qoption ld ';; - *) - lt_prog_compiler_wl_F77='-Wl,';; - esac - ;; - - 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*) - 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 - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_pic_F77='-KPIC' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl_F77='-Wl,' - lt_prog_compiler_can_build_shared_F77=no - ;; - - uts4*) - lt_prog_compiler_pic_F77='-pic' - lt_prog_compiler_static_F77='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_F77=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5 -$as_echo "$lt_prog_compiler_pic_F77" >&6; } - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_F77"; then - -{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; } -if test "${lt_prog_compiler_pic_works_F77+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_pic_works_F77=no - ac_outfile=conftest.$ac_objext - echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13638: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:13642: \$? = $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 other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_pic_works_F77=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 -$as_echo "$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 - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" -{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_prog_compiler_static_works_F77+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_static_works_F77=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker 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 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_static_works_F77=yes - fi - else - lt_prog_compiler_static_works_F77=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 -$as_echo "$lt_prog_compiler_static_works_F77" >&6; } - -if test x"$lt_prog_compiler_static_works_F77" = xyes; then - : -else - lt_prog_compiler_static_F77= -fi - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o_F77=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:13742: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:13746: \$? = $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 - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o_F77=yes - fi - fi - chmod u+w . 2>&5 - $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 -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5 -$as_echo "$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 - { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&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 - { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_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 - -{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&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= - # Just being paranoid about ensuring that cc_basename is set. - for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - 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 - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - 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}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - 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 - 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 - - # 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 <&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 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 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 '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_F77=no - fi - ;; - - interix[3-9]*) - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' - export_dynamic_flag_spec_F77='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec_F77='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - 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 '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - else - ld_shlibs_F77=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*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_F77=no - cat <&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 - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs_F77=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - ld_shlibs_F77=no - fi - ;; - esac - ;; - - 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 - ;; - - *) - 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" = no; then - runpath_var= - hardcode_libdir_flag_spec_F77= - export_dynamic_flag_spec_F77= - whole_archive_flag_spec_F77= - 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 "$lt_prog_compiler_static"; 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 - : - 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' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - 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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# 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 "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${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 '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_f77_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# 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 "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_F77='$convenience' - archive_cmds_need_lc_F77=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${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 - ;; - - bsdi[45]*) - 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_F77='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_F77=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag_F77='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_F77='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_F77='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_F77=no - hardcode_direct_F77=no - hardcode_automatic_F77=yes - hardcode_shlibpath_var_F77=unsupported - whole_archive_flag_spec_F77='' - link_all_deplibs_F77=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - module_cmds_F77='$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 lds - archive_expsym_cmds_F77='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_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}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds_F77='$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 lds - archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - 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}' - ;; - *) - ld_shlibs_F77=no - ;; - esac - 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* | dragonfly*) - 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*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - 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 - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -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*) - archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_F77='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_F77=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_libdir_flag_spec_ld_F77='+b $libdir' - hardcode_direct_F77=no - hardcode_shlibpath_var_F77=no - ;; - *) - 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*) - if test -f /usr/libexec/ld.so; then - 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' - archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - 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 - else - ld_shlibs_F77=no - 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 ${output_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=: - ;; - - solaris*) - no_undefined_flag_F77=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - 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 - wlarc='' - 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].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' - fi - ;; - 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*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag_F77='${wl}-z,text' - archive_cmds_need_lc_F77=no - hardcode_shlibpath_var_F77=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag_F77='${wl}-z,text' - allow_undefined_flag_F77='${wl}-z,nodefs' - archive_cmds_need_lc_F77=no - hardcode_shlibpath_var_F77=no - hardcode_libdir_flag_spec_F77='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator_F77=':' - link_all_deplibs_F77=yes - export_dynamic_flag_spec_F77='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_F77='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_F77='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_F77='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - 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 - -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5 -$as_echo "$ld_shlibs_F77" >&6; } -test "$ld_shlibs_F77" = no && can_build_shared=no - -# -# 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. - { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_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 - pic_flag=$lt_prog_compiler_pic_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=$? - $as_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* - { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5 -$as_echo "$archive_cmds_need_lc_F77" >&6; } - ;; - esac - fi - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&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" - -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.so - # instead of lib.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 - ;; - -bsdi[45]*) - 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~ - chmod a+x \$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`' - - 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 - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - 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 - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - 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' - ;; - -interix[3-9]*) - 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' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -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* | k*bsd*-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' - 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=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | 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' - ;; - -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 - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - 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" - ;; - -rdos*) - dynamic_linker=no - ;; - -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.3*) - 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 - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -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 -{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = 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 - -{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&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 -{ $as_echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5 -$as_echo "$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 - - -# 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 LTCFLAGS 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 \ - fix_srcfile_path_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 -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# 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 - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# 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=$lt_fix_srcfile_path - -# 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 {}" - -# Code to be used in simple link tests -lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }' - -# ltmain only uses $CC for tagged configurations so make sure $CC is set. - -# If no C compiler was specified, use CC. -LTCC=${LTCC-"$CC"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${GCJ-"gcj"} -compiler=$CC -compiler_GCJ=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - -# GCJ did not exist at the time GCC didn't implicitly link libc in. -archive_cmds_need_lc_GCJ=no - -old_archive_cmds_GCJ=$old_archive_cmds - - -lt_prog_compiler_no_builtin_flag_GCJ= - -if test "$GCC" = yes; then - lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 -$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } -if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_rtti_exceptions=no - ac_outfile=conftest.$ac_objext - echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:15931: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:15935: \$? = $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 other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_cv_prog_compiler_rtti_exceptions=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 -$as_echo "$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= - -{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 -$as_echo_n "checking for $compiler option to produce PIC... " >&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* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - - mingw* | cygwin* | 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). - # Although the cygwin gcc ignores -fPIC, still need this for old-style - # (--disable-auto-import) libraries - 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' - ;; - - interix[3-9]*) - # Interix 3.x gcc -fpic/-fPIC options generate broken code. - # Instead, we relocate shared libraries at runtime. - ;; - - 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 - ;; - darwin*) - # PIC is the default on this platform - # Common symbols not allowed in MH_DYLIB files - case $cc_basename in - xlc*) - lt_prog_compiler_pic_GCJ='-qnocommon' - lt_prog_compiler_wl_GCJ='-Wl,' - ;; - esac - ;; - - mingw* | cygwin* | 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* | k*bsd*-gnu) - case $cc_basename in - icc* | ecc*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-static' - ;; - pgcc* | pgf77* | pgf90* | pgf95*) - # Portland Group compilers (*not* the Pentium gcc compiler, - # which looks to be a dead project) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-fpic' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - ccc*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All Alpha code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - *) - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) - # Sun C 5.9 - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - lt_prog_compiler_wl_GCJ='-Wl,' - ;; - *Sun\ F*) - # Sun Fortran 8.3 passes all unrecognized flags to the linker - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - lt_prog_compiler_wl_GCJ='' - ;; - esac - ;; - esac - ;; - - osf3* | osf4* | osf5*) - lt_prog_compiler_wl_GCJ='-Wl,' - # All OSF/1 code is PIC. - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - rdos*) - lt_prog_compiler_static_GCJ='-non_shared' - ;; - - solaris*) - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - case $cc_basename in - f77* | f90* | f95*) - lt_prog_compiler_wl_GCJ='-Qoption ld ';; - *) - lt_prog_compiler_wl_GCJ='-Wl,';; - esac - ;; - - 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*) - 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 - ;; - - sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_pic_GCJ='-KPIC' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - unicos*) - lt_prog_compiler_wl_GCJ='-Wl,' - lt_prog_compiler_can_build_shared_GCJ=no - ;; - - uts4*) - lt_prog_compiler_pic_GCJ='-pic' - lt_prog_compiler_static_GCJ='-Bstatic' - ;; - - *) - lt_prog_compiler_can_build_shared_GCJ=no - ;; - esac - fi - -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5 -$as_echo "$lt_prog_compiler_pic_GCJ" >&6; } - -# -# Check to make sure the PIC flag actually works. -# -if test -n "$lt_prog_compiler_pic_GCJ"; then - -{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 -$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... " >&6; } -if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_pic_works_GCJ=no - ac_outfile=conftest.$ac_objext - echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16221: $lt_compile\"" >&5) - (eval "$lt_compile" 2>conftest.err) - ac_status=$? - cat conftest.err >&5 - echo "$as_me:16225: \$? = $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 other than the usual output. - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_pic_works_GCJ=yes - fi - fi - $rm conftest* - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 -$as_echo "$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 - -# -# Check to make sure the static flag actually works. -# -wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" -{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 -$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } -if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_prog_compiler_static_works_GCJ=no - save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $lt_tmp_static_flag" - echo "$lt_simple_link_test_code" > conftest.$ac_ext - if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then - # The linker 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 - $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp - $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 - if diff conftest.exp conftest.er2 >/dev/null; then - lt_prog_compiler_static_works_GCJ=yes - fi - else - lt_prog_compiler_static_works_GCJ=yes - fi - fi - $rm conftest* - LDFLAGS="$save_LDFLAGS" - -fi -{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 -$as_echo "$lt_prog_compiler_static_works_GCJ" >&6; } - -if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then - : -else - lt_prog_compiler_static_GCJ= -fi - - -{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 -$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } -if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then - $as_echo_n "(cached) " >&6 -else - lt_cv_prog_compiler_c_o_GCJ=no - $rm -r conftest 2>/dev/null - mkdir conftest - cd conftest - mkdir out - echo "$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}\{0,1\} :&$lt_compiler_flag :; t' \ - -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ - -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16325: $lt_compile\"" >&5) - (eval "$lt_compile" 2>out/conftest.err) - ac_status=$? - cat out/conftest.err >&5 - echo "$as_me:16329: \$? = $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 - $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp - $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 - if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then - lt_cv_prog_compiler_c_o_GCJ=yes - fi - fi - chmod u+w . 2>&5 - $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 -{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 -$as_echo "$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 - { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 -$as_echo_n "checking if we can lock with hard links... " >&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 - { $as_echo "$as_me:$LINENO: result: $hard_links" >&5 -$as_echo "$hard_links" >&6; } - if test "$hard_links" = no; then - { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 -$as_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 - -{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 -$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&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= - # Just being paranoid about ensuring that cc_basename is set. - for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - - 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 - ;; - interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) - with_gnu_ld=yes - ;; - 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}' - - # Set some defaults for GNU ld with shared library support. These - # are reset later if shared libraries are not supported. Putting them - # here allows them to be overridden if necessary. - 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 - 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 - - # 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 <&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 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 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 '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $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}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' - else - ld_shlibs_GCJ=no - fi - ;; - - interix[3-9]*) - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' - export_dynamic_flag_spec_GCJ='${wl}-E' - # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. - # Instead, shared libraries are loaded at an image base (0x10000000 by - # default) and relocated if they conflict, which is a slow very memory - # consuming and fragmenting process. To avoid this, we pick a random, - # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link - # time. Moving up from 0x10000000 also allows more sbrk(2) space. - archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - ;; - - gnu* | linux* | k*bsd*-gnu) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - tmp_addflag= - case $cc_basename,$host_cpu in - pgcc*) # Portland Group C compiler - whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag' - ;; - pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers - whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_addflag=' $pic_flag -Mnomain' ;; - ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 - tmp_addflag=' -i_dynamic' ;; - efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 - tmp_addflag=' -i_dynamic -nofor_main' ;; - ifc* | ifort*) # Intel Fortran compiler - tmp_addflag=' -nofor_main' ;; - esac - case `$CC -V 2>&1 | sed 5q` in - *Sun\ C*) # Sun C 5.9 - whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' - tmp_sharedflag='-G' ;; - *Sun\ F*) # Sun Fortran 8.3 - tmp_sharedflag='-G' ;; - *) - tmp_sharedflag='-shared' ;; - esac - archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' - - 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 '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' - fi - else - ld_shlibs_GCJ=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*) - if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then - ld_shlibs_GCJ=no - cat <&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 - ;; - - sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) - case `$LD -v 2>&1` in - *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) - ld_shlibs_GCJ=no - cat <<_LT_EOF 1>&2 - -*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not -*** reliably create shared libraries on SCO systems. Therefore, libtool -*** is disabling shared libraries support. We urge you to upgrade GNU -*** binutils to release 2.16.91.0.3 or newer. Another option is to modify -*** your PATH or compiler configuration so that the native linker is -*** used, and then restart. - -_LT_EOF - ;; - *) - if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then - hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' - archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' - archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' - else - ld_shlibs_GCJ=no - fi - ;; - esac - ;; - - 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 - ;; - - *) - 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" = no; then - runpath_var= - hardcode_libdir_flag_spec_GCJ= - export_dynamic_flag_spec_GCJ= - whole_archive_flag_spec_GCJ= - 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 "$lt_prog_compiler_static"; 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 - : - 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' - if test "$aix_use_runtimelinking" = yes; then - shared_flag="$shared_flag "'${wl}-G' - fi - 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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# 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 "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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 '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${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 '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - -lt_aix_libpath_sed=' - /Import File Strings/,/^$/ { - /^0/ { - s/^0 *\(.*\)$/\1/ - p - } - }' -aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` -# 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 "$lt_aix_libpath_sed"` -fi -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - 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' - # Exported symbols can be pulled into shared objects from archives - whole_archive_flag_spec_GCJ='$convenience' - archive_cmds_need_lc_GCJ=yes - # This is similar to how AIX traditionally builds its shared libraries. - archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${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 - ;; - - bsdi[45]*) - 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_GCJ='`cygpath -w "$srcfile"`' - enable_shared_with_static_runtimes_GCJ=yes - ;; - - darwin* | rhapsody*) - case $host_os in - rhapsody* | darwin1.[012]) - allow_undefined_flag_GCJ='${wl}-undefined ${wl}suppress' - ;; - *) # Darwin 1.3 on - if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then - allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - else - case ${MACOSX_DEPLOYMENT_TARGET} in - 10.[012]) - allow_undefined_flag_GCJ='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' - ;; - 10.*) - allow_undefined_flag_GCJ='${wl}-undefined ${wl}dynamic_lookup' - ;; - esac - fi - ;; - esac - archive_cmds_need_lc_GCJ=no - hardcode_direct_GCJ=no - hardcode_automatic_GCJ=yes - hardcode_shlibpath_var_GCJ=unsupported - whole_archive_flag_spec_GCJ='' - link_all_deplibs_GCJ=yes - if test "$GCC" = yes ; then - output_verbose_link_cmd='echo' - archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' - module_cmds_GCJ='$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 lds - archive_expsym_cmds_GCJ='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_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}' - else - case $cc_basename in - xlc*) - output_verbose_link_cmd='echo' - archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' - module_cmds_GCJ='$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 lds - archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' - 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}' - ;; - *) - ld_shlibs_GCJ=no - ;; - esac - 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* | dragonfly*) - 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*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' - fi - if test "$with_gnu_ld" = no; then - 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 - fi - ;; - - hpux11*) - if test "$GCC" = yes -a "$with_gnu_ld" = no; then - case $host_cpu in - hppa*64*) - archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -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*) - archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - ;; - ia64*) - archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' - ;; - *) - archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' - ;; - esac - fi - if test "$with_gnu_ld" = no; then - hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' - hardcode_libdir_separator_GCJ=: - - case $host_cpu in - hppa*64*|ia64*) - hardcode_libdir_flag_spec_ld_GCJ='+b $libdir' - hardcode_direct_GCJ=no - hardcode_shlibpath_var_GCJ=no - ;; - *) - 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*) - if test -f /usr/libexec/ld.so; then - 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' - archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' - 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 - else - ld_shlibs_GCJ=no - 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 ${output_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=: - ;; - - solaris*) - no_undefined_flag_GCJ=' -z text' - if test "$GCC" = yes; then - wlarc='${wl}' - 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 - wlarc='' - 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].*) ;; - *) - # The compiler driver will combine and reorder linker options, - # but understands `-z linker_flag'. GCC discards it without `$wl', - # but is careful enough not to reorder. - # Supported since Solaris 2.6 (maybe 2.5.1?) - if test "$GCC" = yes; then - whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' - else - whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' - fi - ;; - 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*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) - no_undefined_flag_GCJ='${wl}-z,text' - archive_cmds_need_lc_GCJ=no - hardcode_shlibpath_var_GCJ=no - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - sysv5* | sco3.2v5* | sco5v6*) - # Note: We can NOT use -z defs as we might desire, because we do not - # link with -lc, and that would cause any symbols used from libc to - # always be unresolved, which means just about no library would - # ever link correctly. If we're not using GNU ld we use -z text - # though, which does catch some bad symbols but isn't as heavy-handed - # as -z defs. - no_undefined_flag_GCJ='${wl}-z,text' - allow_undefined_flag_GCJ='${wl}-z,nodefs' - archive_cmds_need_lc_GCJ=no - hardcode_shlibpath_var_GCJ=no - hardcode_libdir_flag_spec_GCJ='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' - hardcode_libdir_separator_GCJ=':' - link_all_deplibs_GCJ=yes - export_dynamic_flag_spec_GCJ='${wl}-Bexport' - runpath_var='LD_RUN_PATH' - - if test "$GCC" = yes; then - archive_cmds_GCJ='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds_GCJ='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - ;; - - 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 - -{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5 -$as_echo "$ld_shlibs_GCJ" >&6; } -test "$ld_shlibs_GCJ" = no && can_build_shared=no - -# -# 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. - { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 -$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } - $rm conftest* - echo "$lt_simple_compile_test_code" > conftest.$ac_ext - - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_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 - pic_flag=$lt_prog_compiler_pic_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=$? - $as_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* - { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5 -$as_echo "$archive_cmds_need_lc_GCJ" >&6; } - ;; - esac - fi - ;; -esac - -{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 -$as_echo_n "checking dynamic linker characteristics... " >&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" - -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.so - # instead of lib.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 - ;; - -bsdi[45]*) - 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~ - chmod a+x \$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`' - - 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 - ;; - -freebsd* | dragonfly*) - # DragonFly does not have aout. When/if they implement a new - # versioning mechanism, adjust this. - if test -x /usr/bin/objformat; then - objformat=`/usr/bin/objformat` - else - case $host_os in - freebsd[123]*) objformat=aout ;; - *) objformat=elf ;; - esac - fi - 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 - ;; - freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ - freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - *) # from 4.6 on, and DragonFly - shlibpath_overrides_runpath=yes - 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' - ;; - -interix[3-9]*) - 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' - dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - -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* | k*bsd*-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' - 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=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | 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' - ;; - -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 - sys_lib_dlsearch_path_spec="/usr/lib" - need_lib_prefix=no - # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. - case $host_os in - openbsd3.3 | openbsd3.3.*) need_version=yes ;; - *) need_version=no ;; - esac - 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" - ;; - -rdos*) - dynamic_linker=no - ;; - -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.3*) - 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 - ;; - -sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) - version_type=freebsd-elf - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - if test "$with_gnu_ld" = yes; then - sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' - shlibpath_overrides_runpath=no - else - sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' - shlibpath_overrides_runpath=yes - case $host_os in - sco3.2v5*) - sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" - ;; - esac - fi - sys_lib_dlsearch_path_spec='/usr/lib' - ;; - -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 -{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5 -$as_echo "$dynamic_linker" >&6; } -test "$dynamic_linker" = 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 - -{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 -$as_echo_n "checking how to hardcode library paths into programs... " >&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 -{ $as_echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5 -$as_echo "$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 - - -# 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 LTCFLAGS 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 \ - fix_srcfile_path_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 -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# 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 - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# 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=$lt_fix_srcfile_path - -# 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 }' - -# 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"} - -# If no C compiler flags were specified, use CFLAGS. -LTCFLAGS=${LTCFLAGS-"$CFLAGS"} - -# Allow CC to be a program name with arguments. -compiler=$CC - - -# save warnings/boilerplate of simple test code -ac_outfile=conftest.$ac_objext -echo "$lt_simple_compile_test_code" >conftest.$ac_ext -eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_compiler_boilerplate=`cat conftest.err` -$rm conftest* - -ac_outfile=conftest.$ac_objext -echo "$lt_simple_link_test_code" >conftest.$ac_ext -eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err -_lt_linker_boilerplate=`cat conftest.err` -$rm conftest* - - -# Allow CC to be a program name with arguments. -lt_save_CC="$CC" -CC=${RC-"windres"} -compiler=$CC -compiler_RC=$CC -for cc_temp in $compiler""; do - case $cc_temp in - compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; - distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; - \-*) ;; - *) break;; - esac -done -cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` - -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 LTCFLAGS 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 \ - fix_srcfile_path_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 -host_os=$host_os - -# The build system. -build_alias=$build_alias -build=$build -build_os=$build_os - -# 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 - -# LTCC compiler flags. -LTCFLAGS=$lt_LTCFLAGS - -# 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=$lt_fix_srcfile_path - -# 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" - - ;; - - *) - { { $as_echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 -$as_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" - { { $as_echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 -$as_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 - - - - - - - - - - - - - - - - - - - - - -freetype_version='1.5' - -version_info='6:0:4' - -# Check whether --enable-nls was given. -if test "${enable_nls+set}" = set; then - enableval=$enable_nls; USE_NLS=no -else - USE_NLS=yes -fi - - - -{ $as_echo "$as_me:$LINENO: checking target system type" >&5 -$as_echo_n "checking target system type... " >&6; } -if test "${ac_cv_target+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "x$target_alias" = x; then - ac_cv_target=$ac_cv_host -else - ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;} - { (exit 1); exit 1; }; } -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_target" >&5 -$as_echo "$ac_cv_target" >&6; } -case $ac_cv_target in -*-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical target" >&5 -$as_echo "$as_me: error: invalid value of canonical target" >&2;} - { (exit 1); exit 1; }; };; -esac -target=$ac_cv_target -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_target -shift -target_cpu=$1 -target_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -target_os=$* -IFS=$ac_save_IFS -case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac - - -# 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}- - -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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -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 - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - 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 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_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 -$as_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;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_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. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - 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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - 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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - 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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$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 -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=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 -#include -#include -#include -/* 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]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 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 -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac - - -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 -{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&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 - $as_echo_n "(cached) " >&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 to if __STDC__ is defined, since - # 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 -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_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 nonexistent 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 -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_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 -{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 -$as_echo "$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 to if __STDC__ is defined, since - # 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 -#else -# include -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_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 nonexistent 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 -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_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 - { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_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 - - - -if test "x$CC" = xgcc; then - XX_CFLAGS="-Wall -pedantic -ansi -D_REENTRANT" -else - case "$host" in - *-dec-osf*) - XX_CFLAGS="-std1 -O2 -g3" - ;; - *) - XX_CFLAGS= - ;; - esac -fi - - - -case "$host" in - *-dec-osf*) - ln -s ../../MakeSub lib/arch - ln -s ../../MakeSub test/arch - ;; -esac - - - - - - - - -if test "$USE_NLS" = "yes"; then - { $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - - - -for ac_header in locale.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&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 { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_func in setlocale -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&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 declares $ac_func. - For example, HP-UX 11i 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 to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -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 -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - - - -for ac_header in libintl.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&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 { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - ALL_LINGUAS="de fr cs nl es" - - LIBINTL= - LTLIBINTL= - - { $as_echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 -$as_echo_n "checking for GNU gettext in libc... " >&6; } -if test "${ftgt_cv_func_gnugettext_libc+set}" = set; then - $as_echo_n "(cached) " >&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 -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; - -int -main () -{ - -bindtextdomain ("", ""); -return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ftgt_cv_func_gnugettext_libc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ftgt_cv_func_gnugettext_libc=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ftgt_cv_func_gnugettext_libc" >&5 -$as_echo "$ftgt_cv_func_gnugettext_libc" >&6; } - - if test "$ftgt_cv_func_gnugettext_libc" != "yes"; then - -{ $as_echo "$as_me:$LINENO: checking for gettext in -lintl" >&5 -$as_echo_n "checking for gettext in -lintl... " >&6; } -if test "${ac_cv_lib_intl_gettext+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gettext (); -int -main () -{ -return gettext (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_intl_gettext=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_gettext=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_gettext" >&5 -$as_echo "$ac_cv_lib_intl_gettext" >&6; } -if test $ac_cv_lib_intl_gettext = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBINTL 1 -_ACEOF - - LIBS="-lintl $LIBS" - -fi - - - if test "$ac_cv_lib_intl_gettext" != "yes"; then - { $as_echo "$as_me:$LINENO: checking for GNU gettext in libintl, using libiconv" >&5 -$as_echo_n "checking for GNU gettext in libintl, using libiconv... " >&6; } -if test "${ftgt_cv_func_gnugettext_libintliconv+set}" = set; then - $as_echo_n "(cached) " >&6 -else - { $as_echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5 -$as_echo_n "checking for bindtextdomain in -lintl... " >&6; } -if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lintl -liconv $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char bindtextdomain (); -int -main () -{ -return bindtextdomain (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_intl_bindtextdomain=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_intl_bindtextdomain=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5 -$as_echo "$ac_cv_lib_intl_bindtextdomain" >&6; } -if test $ac_cv_lib_intl_bindtextdomain = yes; then - ftgt_cv_func_gnugettext_libintliconv=yes LIBS="$LIBS -lintl -liconv" -else - ftgt_cv_func_gnugettext_libintliconv=no - USE_NLS=no -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ftgt_cv_func_gnugettext_libintliconv" >&5 -$as_echo "$ftgt_cv_func_gnugettext_libintliconv" >&6; } - fi - fi -fi - -if test "$USE_NLS" = "yes"; then - LOCALEDIR='${prefix}/share/locale' - -# Check whether --with-locale-dir was given. -if test "${with_locale_dir+set}" = set; then - withval=$with_locale_dir; - if test x$withval = xyes; then - { $as_echo "$as_me:$LINENO: WARNING: Usage is: --with-locale-dir=basedir" >&5 -$as_echo "$as_me: WARNING: Usage is: --with-locale-dir=basedir" >&2;} - else - if test x$withval = xno; then - { $as_echo "$as_me:$LINENO: WARNING: Usage is: --with-locale-dir=basedir" >&5 -$as_echo "$as_me: WARNING: Usage is: --with-locale-dir=basedir" >&2;} - else - LOCALEDIR=$withval - fi - fi - -fi - - - - # Extract the first word of "msgfmt", so it can be a program name with args. -set dummy msgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGFMT+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $MSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. - ;; - *) - 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_MSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="$MSGFMT" - ;; -esac -fi -MSGFMT=$ac_cv_path_MSGFMT -if test -n "$MSGFMT"; then - { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5 -$as_echo "$MSGFMT" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test -n "$MSGFMT"; then - -for ac_func in dcgettext -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&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 declares $ac_func. - For example, HP-UX 11i 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 to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -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 -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - # Extract the first word of "gmsgfmt", so it can be a program name with args. -set dummy gmsgfmt; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_GMSGFMT+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $GMSGFMT in - [\\/]* | ?:[\\/]*) - ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. - ;; - *) - 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" - ;; -esac -fi -GMSGFMT=$ac_cv_path_GMSGFMT -if test -n "$GMSGFMT"; then - { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5 -$as_echo "$GMSGFMT" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - # Extract the first word of "xgettext", so it can be a program name with args. -set dummy xgettext; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XGETTEXT+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $XGETTEXT in - [\\/]* | ?:[\\/]*) - ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. - ;; - *) - 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_XGETTEXT="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT="$XGETTEXT" - ;; -esac -fi -XGETTEXT=$ac_cv_path_XGETTEXT -if test -n "$XGETTEXT"; then - { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5 -$as_echo "$XGETTEXT" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - # Extract the first word of "msgmerge", so it can be a program name with args. -set dummy msgmerge; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_MSGMERGE+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $MSGMERGE in - [\\/]* | ?:[\\/]*) - ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. - ;; - *) - 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_MSGMERGE="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE="$MSGMERGE" - ;; -esac -fi -MSGMERGE=$ac_cv_path_MSGMERGE -if test -n "$MSGMERGE"; then - { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5 -$as_echo "$MSGMERGE" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - if test -n "$XGETTEXT"; then - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT="" - fi - fi - - if test -n "$XGETTEXT"; then - if $XGETTEXT --help > /dev/null 2> /dev/null; then - : ; - else - { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 -$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; } - XGETTEXT="" - fi - fi - - if test -n "$MSGFMT"; then - if $MSGFMT < /dev/null 2> /dev/null; then - { $as_echo "$as_me:$LINENO: result: found msgfmt program is not GNU msgfmt; NLS won't be installed" >&5 -$as_echo "found msgfmt program is not GNU msgfmt; NLS won't be installed" >&6; } - MSGFMT="" - fi - fi - - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - CATOBJEXT=.gmo - DATADIRNAME=share -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CATOBJEXT=.mo - DATADIRNAME=lib -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - INSTOBJEXT=.mo - fi - - if test -n "$ALL_LINGUAS"; then - for lang in $ALL_LINGUAS; do - CATALOGS="$CATALOGS $lang$CATOBJEXT" - done - fi - - - - -fi - -if test x"$MSGFMT" = x; then - USE_NLS=no -fi - - -# Extract the first word of "rm", so it can be a program name with args. -set dummy rm; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RM+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$RM"; then - ac_cv_prog_RM="$RM" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RM="rm" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -RM=$ac_cv_prog_RM -if test -n "$RM"; then - { $as_echo "$as_me:$LINENO: result: $RM" >&5 -$as_echo "$RM" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# Extract the first word of "rmdir", so it can be a program name with args. -set dummy rmdir; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_RMDIR+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_RMDIR="rmdir" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -RMDIR=$ac_cv_prog_RMDIR -if test -n "$RMDIR"; then - { $as_echo "$as_me:$LINENO: result: $RMDIR" >&5 -$as_echo "$RMDIR" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -# 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. -{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 -IFS=$as_save_IFS - - -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. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 -$as_echo "$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' - -{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5 -$as_echo_n "checking whether ln -s works... " >&6; } -LN_S=$as_ln_s -if test "$LN_S" = "ln -s"; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5 -$as_echo "no, using $LN_S" >&6; } -fi - - - - - - # Most operating systems have gethostbyname() in the default searched - # libraries (i.e. libc): - { $as_echo "$as_me:$LINENO: checking for gethostbyname" >&5 -$as_echo_n "checking for gethostbyname... " >&6; } -if test "${ac_cv_func_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&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 gethostbyname to an innocuous variant, in case declares gethostbyname. - For example, HP-UX 11i declares gettimeofday. */ -#define gethostbyname innocuous_gethostbyname - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char gethostbyname (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef gethostbyname - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -/* 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_gethostbyname || defined __stub___gethostbyname -choke me -#endif - -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 -$as_echo "$ac_cv_func_gethostbyname" >&6; } -if test $ac_cv_func_gethostbyname = yes; then - : -else - # Some OSes (eg. Solaris) place it in libnsl: - -{ $as_echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 -$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_nsl_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_nsl_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 -$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test $ac_cv_lib_nsl_gethostbyname = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBNSL 1 -_ACEOF - - LIBS="-lnsl $LIBS" - -else - # Some strange OSes (SINIX) have it in libsocket: - -{ $as_echo "$as_me:$LINENO: checking for gethostbyname in -lsocket" >&5 -$as_echo_n "checking for gethostbyname in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_gethostbyname" >&5 -$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; } -if test $ac_cv_lib_socket_gethostbyname = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSOCKET 1 -_ACEOF - - LIBS="-lsocket $LIBS" - -else - # Unfortunately libsocket sometimes depends on libnsl. - # AC_CHECK_LIB's API is essentially broken so the following - # ugliness is necessary: - { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lsocket" >&5 -$as_echo_n "checking for gethostbyname in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket -lnsl $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_gethostbyname" >&5 -$as_echo "$ac_cv_lib_socket_gethostbyname" >&6; } -if test $ac_cv_lib_socket_gethostbyname = yes; then - LIBS="-lsocket -lnsl $LIBS" -else - -{ $as_echo "$as_me:$LINENO: checking for gethostbyname in -lresolv" >&5 -$as_echo_n "checking for gethostbyname in -lresolv... " >&6; } -if test "${ac_cv_lib_resolv_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lresolv $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_resolv_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_resolv_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_gethostbyname" >&5 -$as_echo "$ac_cv_lib_resolv_gethostbyname" >&6; } -if test $ac_cv_lib_resolv_gethostbyname = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBRESOLV 1 -_ACEOF - - LIBS="-lresolv $LIBS" - -fi - -fi - - -fi - - -fi - - -fi - - { $as_echo "$as_me:$LINENO: checking for socket" >&5 -$as_echo_n "checking for socket... " >&6; } -if test "${ac_cv_func_socket+set}" = set; then - $as_echo_n "(cached) " >&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 socket to an innocuous variant, in case declares socket. - For example, HP-UX 11i declares gettimeofday. */ -#define socket innocuous_socket - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char socket (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef socket - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char socket (); -/* 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_socket || defined __stub___socket -choke me -#endif - -int -main () -{ -return socket (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_socket=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_socket=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_socket" >&5 -$as_echo "$ac_cv_func_socket" >&6; } -if test $ac_cv_func_socket = yes; then - : -else - -{ $as_echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 -$as_echo_n "checking for socket in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_socket+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char socket (); -int -main () -{ -return socket (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_socket=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_socket=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 -$as_echo "$ac_cv_lib_socket_socket" >&6; } -if test $ac_cv_lib_socket_socket = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBSOCKET 1 -_ACEOF - - LIBS="-lsocket $LIBS" - -else - { $as_echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 -$as_echo_n "checking for socket in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_socket+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket -lnsl $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char socket (); -int -main () -{ -return socket (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_socket=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_socket=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 -$as_echo "$ac_cv_lib_socket_socket" >&6; } -if test $ac_cv_lib_socket_socket = yes; then - LIBS="-lsocket -lnsl $LIBS" -fi - -fi - -fi - - - -{ $as_echo "$as_me:$LINENO: checking for cos in -lm" >&5 -$as_echo_n "checking for cos in -lm... " >&6; } -if test "${ac_cv_lib_m_cos+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lm $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char cos (); -int -main () -{ -return cos (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_m_cos=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_m_cos=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_cos" >&5 -$as_echo "$ac_cv_lib_m_cos" >&6; } -if test $ac_cv_lib_m_cos = yes; then - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBM 1 -_ACEOF - - LIBS="-lm $LIBS" - -fi - - -{ $as_echo "$as_me:$LINENO: checking for X" >&5 -$as_echo_n "checking for X... " >&6; } - - -# Check whether --with-x was given. -if test "${with_x+set}" = set; then - withval=$with_x; -fi - -# $have_x is `yes', `no', `disabled', or empty when we do not yet know. -if test "x$with_x" = xno; then - # The user explicitly disabled X. - have_x=disabled -else - case $x_includes,$x_libraries in #( - *\'*) { { $as_echo "$as_me:$LINENO: error: Cannot use X directory names containing '" >&5 -$as_echo "$as_me: error: Cannot use X directory names containing '" >&2;} - { (exit 1); exit 1; }; };; #( - *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # One or both of the vars are not set, and there is no cached value. -ac_x_includes=no ac_x_libraries=no -rm -f -r conftest.dir -if mkdir conftest.dir; then - cd conftest.dir - cat >Imakefile <<'_ACEOF' -incroot: - @echo incroot='${INCROOT}' -usrlibdir: - @echo usrlibdir='${USRLIBDIR}' -libdir: - @echo libdir='${LIBDIR}' -_ACEOF - if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then - # GNU make sometimes prints "make[1]: Entering...", which would confuse us. - for ac_var in incroot usrlibdir libdir; do - eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" - done - # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. - for ac_extension in a so sl; do - if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && - test -f "$ac_im_libdir/libX11.$ac_extension"; then - ac_im_usrlibdir=$ac_im_libdir; break - fi - done - # Screen out bogus values from the imake configuration. They are - # bogus both because they are the default anyway, and because - # using them would break gcc on systems where it needs fixed includes. - case $ac_im_incroot in - /usr/include) ac_x_includes= ;; - *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; - esac - case $ac_im_usrlibdir in - /usr/lib | /lib) ;; - *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; - esac - fi - cd .. - rm -f -r conftest.dir -fi - -# Standard set of common directories for X headers. -# Check X11 before X11Rn because it is often a symlink to the current release. -ac_x_header_dirs=' -/usr/X11/include -/usr/X11R6/include -/usr/X11R5/include -/usr/X11R4/include - -/usr/include/X11 -/usr/include/X11R6 -/usr/include/X11R5 -/usr/include/X11R4 - -/usr/local/X11/include -/usr/local/X11R6/include -/usr/local/X11R5/include -/usr/local/X11R4/include - -/usr/local/include/X11 -/usr/local/include/X11R6 -/usr/local/include/X11R5 -/usr/local/include/X11R4 - -/usr/X386/include -/usr/x386/include -/usr/XFree86/include/X11 - -/usr/include -/usr/local/include -/usr/unsupported/include -/usr/athena/include -/usr/local/x11r5/include -/usr/lpp/Xamples/include - -/usr/openwin/include -/usr/openwin/share/include' - -if test "$ac_x_includes" = no; then - # Guess where to find include files, by looking for Xlib.h. - # First, try using that file with no special directory specified. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # We can compile using X headers with no special include directory. -ac_x_includes= -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - for ac_dir in $ac_x_header_dirs; do - if test -r "$ac_dir/X11/Xlib.h"; then - ac_x_includes=$ac_dir - break - fi -done -fi - -rm -f conftest.err conftest.$ac_ext -fi # $ac_x_includes = no - -if test "$ac_x_libraries" = no; then - # Check for the libraries. - # See if we find them without any special options. - # Don't add to $LIBS permanently. - ac_save_LIBS=$LIBS - LIBS="-lX11 $LIBS" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include -int -main () -{ -XrmInitialize () - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - LIBS=$ac_save_LIBS -# We can link X programs with no special library path. -ac_x_libraries= -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - LIBS=$ac_save_LIBS -for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` -do - # Don't even attempt the hair of trying to link an X program! - for ac_extension in a so sl; do - if test -r "$ac_dir/libX11.$ac_extension"; then - ac_x_libraries=$ac_dir - break 2 - fi - done -done -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi # $ac_x_libraries = no - -case $ac_x_includes,$ac_x_libraries in #( - no,* | *,no | *\'*) - # Didn't find X, or a directory has "'" in its name. - ac_cv_have_x="have_x=no";; #( - *) - # Record where we found X for the cache. - ac_cv_have_x="have_x=yes\ - ac_x_includes='$ac_x_includes'\ - ac_x_libraries='$ac_x_libraries'" -esac -fi -;; #( - *) have_x=yes;; - esac - eval "$ac_cv_have_x" -fi # $with_x != no - -if test "$have_x" != yes; then - { $as_echo "$as_me:$LINENO: result: $have_x" >&5 -$as_echo "$have_x" >&6; } - no_x=yes -else - # If each of the values was on the command line, it overrides each guess. - test "x$x_includes" = xNONE && x_includes=$ac_x_includes - test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries - # Update the cache value to reflect the command line values. - ac_cv_have_x="have_x=yes\ - ac_x_includes='$x_includes'\ - ac_x_libraries='$x_libraries'" - { $as_echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5 -$as_echo "libraries $x_libraries, headers $x_includes" >&6; } -fi - -if test "$no_x" = yes; then - # Not all programs may use this symbol, but it does not hurt to define it. - -cat >>confdefs.h <<\_ACEOF -#define X_DISPLAY_MISSING 1 -_ACEOF - - X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= -else - if test -n "$x_includes"; then - X_CFLAGS="$X_CFLAGS -I$x_includes" - fi - - # It would also be nice to do this for all -L options, not just this one. - if test -n "$x_libraries"; then - X_LIBS="$X_LIBS -L$x_libraries" - # For Solaris; some versions of Sun CC require a space after -R and - # others require no space. Words are not sufficient . . . . - { $as_echo "$as_me:$LINENO: checking whether -R must be followed by a space" >&5 -$as_echo_n "checking whether -R must be followed by a space... " >&6; } - ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" - ac_xsave_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - 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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - X_LIBS="$X_LIBS -R$x_libraries" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - LIBS="$ac_xsave_LIBS -R $x_libraries" - 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 { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - X_LIBS="$X_LIBS -R $x_libraries" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: result: neither works" >&5 -$as_echo "neither works" >&6; } -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - ac_c_werror_flag=$ac_xsave_c_werror_flag - LIBS=$ac_xsave_LIBS - fi - - # Check for system-dependent libraries X programs must link with. - # Do this before checking for the system-independent R6 libraries - # (-lICE), since we may need -lsocket or whatever for X linking. - - if test "$ISC" = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" - else - # Martyn Johnson says this is needed for Ultrix, if the X - # libraries were built with DECnet support. And Karl Berry says - # the Alpha needs dnet_stub (dnet does not exist). - ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char XOpenDisplay (); -int -main () -{ -return XOpenDisplay (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - { $as_echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5 -$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } -if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dnet_ntoa (); -int -main () -{ -return dnet_ntoa (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dnet_dnet_ntoa=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dnet_dnet_ntoa=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 -$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } -if test $ac_cv_lib_dnet_dnet_ntoa = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" -fi - - if test $ac_cv_lib_dnet_dnet_ntoa = no; then - { $as_echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5 -$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } -if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldnet_stub $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dnet_ntoa (); -int -main () -{ -return dnet_ntoa (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_dnet_stub_dnet_ntoa=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_dnet_stub_dnet_ntoa=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 -$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } -if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" -fi - - fi -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext - LIBS="$ac_xsave_LIBS" - - # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, - # to get the SysV transport functions. - # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) - # needs -lnsl. - # The nsl library prevents programs from opening the X display - # on Irix 5.2, according to T.E. Dickey. - # The functions gethostbyname, getservbyname, and inet_addr are - # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. - { $as_echo "$as_me:$LINENO: checking for gethostbyname" >&5 -$as_echo_n "checking for gethostbyname... " >&6; } -if test "${ac_cv_func_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&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 gethostbyname to an innocuous variant, in case declares gethostbyname. - For example, HP-UX 11i declares gettimeofday. */ -#define gethostbyname innocuous_gethostbyname - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char gethostbyname (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef gethostbyname - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -/* 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_gethostbyname || defined __stub___gethostbyname -choke me -#endif - -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyname" >&5 -$as_echo "$ac_cv_func_gethostbyname" >&6; } - - if test $ac_cv_func_gethostbyname = no; then - { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lnsl" >&5 -$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } -if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lnsl $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_nsl_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_nsl_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyname" >&5 -$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } -if test $ac_cv_lib_nsl_gethostbyname = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" -fi - - if test $ac_cv_lib_nsl_gethostbyname = no; then - { $as_echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5 -$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } -if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char gethostbyname (); -int -main () -{ -return gethostbyname (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_bsd_gethostbyname=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_bsd_gethostbyname=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5 -$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } -if test $ac_cv_lib_bsd_gethostbyname = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" -fi - - fi - fi - - # lieder@skyler.mavd.honeywell.com says without -lsocket, - # socket/setsockopt and other routines are undefined under SCO ODT - # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary - # on later versions), says Simon Leinen: it contains gethostby* - # variants that don't use the name server (or something). -lsocket - # must be given before -lnsl if both are needed. We assume that - # if connect needs -lnsl, so does gethostbyname. - { $as_echo "$as_me:$LINENO: checking for connect" >&5 -$as_echo_n "checking for connect... " >&6; } -if test "${ac_cv_func_connect+set}" = set; then - $as_echo_n "(cached) " >&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 connect to an innocuous variant, in case declares connect. - For example, HP-UX 11i declares gettimeofday. */ -#define connect innocuous_connect - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char connect (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef connect - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char connect (); -/* 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_connect || defined __stub___connect -choke me -#endif - -int -main () -{ -return connect (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_connect=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_connect=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5 -$as_echo "$ac_cv_func_connect" >&6; } - - if test $ac_cv_func_connect = no; then - { $as_echo "$as_me:$LINENO: checking for connect in -lsocket" >&5 -$as_echo_n "checking for connect in -lsocket... " >&6; } -if test "${ac_cv_lib_socket_connect+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lsocket $X_EXTRA_LIBS $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char connect (); -int -main () -{ -return connect (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_socket_connect=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_socket_connect=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5 -$as_echo "$ac_cv_lib_socket_connect" >&6; } -if test $ac_cv_lib_socket_connect = yes; then - X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" -fi - - fi - - # Guillermo Gomez says -lposix is necessary on A/UX. - { $as_echo "$as_me:$LINENO: checking for remove" >&5 -$as_echo_n "checking for remove... " >&6; } -if test "${ac_cv_func_remove+set}" = set; then - $as_echo_n "(cached) " >&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 remove to an innocuous variant, in case declares remove. - For example, HP-UX 11i declares gettimeofday. */ -#define remove innocuous_remove - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char remove (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef remove - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char remove (); -/* 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_remove || defined __stub___remove -choke me -#endif - -int -main () -{ -return remove (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_remove=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_remove=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5 -$as_echo "$ac_cv_func_remove" >&6; } - - if test $ac_cv_func_remove = no; then - { $as_echo "$as_me:$LINENO: checking for remove in -lposix" >&5 -$as_echo_n "checking for remove in -lposix... " >&6; } -if test "${ac_cv_lib_posix_remove+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lposix $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char remove (); -int -main () -{ -return remove (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_posix_remove=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_posix_remove=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5 -$as_echo "$ac_cv_lib_posix_remove" >&6; } -if test $ac_cv_lib_posix_remove = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" -fi - - fi - - # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. - { $as_echo "$as_me:$LINENO: checking for shmat" >&5 -$as_echo_n "checking for shmat... " >&6; } -if test "${ac_cv_func_shmat+set}" = set; then - $as_echo_n "(cached) " >&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 shmat to an innocuous variant, in case declares shmat. - For example, HP-UX 11i declares gettimeofday. */ -#define shmat innocuous_shmat - -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char shmat (); below. - Prefer to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef shmat - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shmat (); -/* 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_shmat || defined __stub___shmat -choke me -#endif - -int -main () -{ -return shmat (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_func_shmat=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_func_shmat=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5 -$as_echo "$ac_cv_func_shmat" >&6; } - - if test $ac_cv_func_shmat = no; then - { $as_echo "$as_me:$LINENO: checking for shmat in -lipc" >&5 -$as_echo_n "checking for shmat in -lipc... " >&6; } -if test "${ac_cv_lib_ipc_shmat+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lipc $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shmat (); -int -main () -{ -return shmat (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_ipc_shmat=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_ipc_shmat=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5 -$as_echo "$ac_cv_lib_ipc_shmat" >&6; } -if test $ac_cv_lib_ipc_shmat = yes; then - X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" -fi - - fi - fi - - # Check for libraries that X11R6 Xt/Xaw programs need. - ac_save_LDFLAGS=$LDFLAGS - test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" - # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to - # check for ICE first), but we must link in the order -lSM -lICE or - # we get undefined symbols. So assume we have SM if we have ICE. - # These have to be linked with before -lX11, unlike the other - # libraries we check for below, so use a different variable. - # John Interrante, Karl Berry - { $as_echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5 -$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } -if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lICE $X_EXTRA_LIBS $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 GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char IceConnectionNumber (); -int -main () -{ -return IceConnectionNumber (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - ac_cv_lib_ICE_IceConnectionNumber=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_lib_ICE_IceConnectionNumber=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 -$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } -if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then - X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" -fi - - LDFLAGS=$ac_save_LDFLAGS - -fi - -if test "$no_x" = yes; then - { $as_echo "$as_me:$LINENO: WARNING: Test programs needing X11 won't be compiled." >&5 -$as_echo "$as_me: WARNING: Test programs needing X11 won't be compiled." >&2;} -else - X_PROGRAMS="\$(X_PROGRAMS)" - -fi - - - - -for ac_header in stdlib.h fcntl.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&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 { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 -$as_echo_n "checking for an ANSI C-conforming const... " >&6; } -if test "${ac_cv_c_const+set}" = set; then - $as_echo_n "(cached) " >&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 cs; - /* SunOS 4.1.1 cc rejects this. */ - char const *const *pcpcc; - char **ppc; - /* 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"; - pcpcc = &g + (g ? g-g : 0); - /* HPUX 7.0 cc rejects these. */ - ++pcpcc; - ppc = (char**) pcpcc; - pcpcc = (char const *const *) ppc; - { /* SCO 3.2v4 cc rejects this. */ - char *t; - char const *s = 0 ? (char *) 0 : (char const *) 0; - - *t++ = 0; - if (s) return 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; - if (!foo) return 0; - } - return !cs[0] && !zero.x; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_c_const=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_c_const=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 -$as_echo "$ac_cv_c_const" >&6; } -if test $ac_cv_c_const = no; then - -cat >>confdefs.h <<\_ACEOF -#define const -_ACEOF - -fi - -{ $as_echo "$as_me:$LINENO: checking for int" >&5 -$as_echo_n "checking for int... " >&6; } -if test "${ac_cv_type_int+set}" = set; then - $as_echo_n "(cached) " >&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 -typedef int ac__type_new_; -int -main () -{ -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type_int=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_int=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 -$as_echo "$ac_cv_type_int" >&6; } - -# 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. -{ $as_echo "$as_me:$LINENO: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if test "${ac_cv_sizeof_int+set}" = set; then - $as_echo_n "(cached) " >&6 -else - 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 - typedef int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 - typedef int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid; break -else - $as_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 core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - $as_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 - typedef int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 - typedef int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=$ac_mid; break -else - $as_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 core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo= ac_hi= -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core 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 - typedef int ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr '(' $ac_mid ')' + 1` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_int=$ac_lo;; -'') if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (int) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof_int=0 - fi ;; -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 - typedef int ac__type_sizeof_; -static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } -static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (((long int) (sizeof (ac__type_sizeof_))) < 0) - { - long int i = longval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_int=`cat conftest.val` -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (int) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (int) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof_int=0 - fi -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.val -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -{ $as_echo "$as_me:$LINENO: checking for long" >&5 -$as_echo_n "checking for long... " >&6; } -if test "${ac_cv_type_long+set}" = set; then - $as_echo_n "(cached) " >&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 -typedef long ac__type_new_; -int -main () -{ -if ((ac__type_new_ *) 0) - return 0; -if (sizeof (ac__type_new_)) - return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_type_long=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_type_long=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 -$as_echo "$ac_cv_type_long" >&6; } - -# 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. -{ $as_echo "$as_me:$LINENO: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if test "${ac_cv_sizeof_long+set}" = set; then - $as_echo_n "(cached) " >&6 -else - 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 - typedef long ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 - typedef long ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid; break -else - $as_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 core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - $as_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 - typedef long ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) < 0)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; 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 - typedef long ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) >= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_lo=$ac_mid; break -else - $as_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 core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo= ac_hi= -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core 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 - typedef long ac__type_sizeof_; -int -main () -{ -static int test_array [1 - 2 * !(((long int) (sizeof (ac__type_sizeof_))) <= $ac_mid)]; -test_array [0] = 0 - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_hi=$ac_mid -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_lo=`expr '(' $ac_mid ')' + 1` -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in -?*) ac_cv_sizeof_long=$ac_lo;; -'') if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (long) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof_long=0 - fi ;; -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 - typedef long ac__type_sizeof_; -static long int longval () { return (long int) (sizeof (ac__type_sizeof_)); } -static unsigned long int ulongval () { return (long int) (sizeof (ac__type_sizeof_)); } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (((long int) (sizeof (ac__type_sizeof_))) < 0) - { - long int i = longval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ((long int) (sizeof (ac__type_sizeof_)))) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_sizeof_long=`cat conftest.val` -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (long) -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute sizeof (long) -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; } - else - ac_cv_sizeof_long=0 - fi -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.val -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - - - - - -for ac_header in stdlib.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5 -$as_echo_n "checking $ac_header usability... " >&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 { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_header_compiler=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_header_compiler=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5 -$as_echo_n "checking $ac_header presence... " >&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 { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&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 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - ac_header_preproc=yes -else - $as_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 -{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in - yes:no: ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} - ac_header_preproc=yes - ;; - no:yes:* ) - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 -$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} - { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 -$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} - - ;; -esac -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - eval "$as_ac_Header=\$ac_header_preproc" -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - -fi -if test `eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -for ac_func in getpagesize -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&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 declares $ac_func. - For example, HP-UX 11i 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 to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -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 -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - -{ $as_echo "$as_me:$LINENO: checking for working mmap" >&5 -$as_echo_n "checking for working mmap... " >&6; } -if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then - $as_echo_n "(cached) " >&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 -#include - -#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H -char *malloc (); -#endif - -/* This mess was copied from the GNU getpagesize.h. */ -#ifndef HAVE_GETPAGESIZE -/* Assume that all systems that can run configure have sys/param.h. */ -# ifndef HAVE_SYS_PARAM_H -# define HAVE_SYS_PARAM_H 1 -# endif - -# ifdef _SC_PAGESIZE -# define getpagesize() sysconf(_SC_PAGESIZE) -# else /* no _SC_PAGESIZE */ -# ifdef HAVE_SYS_PARAM_H -# include -# 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) - return 1; - for (i = 0; i < pagesize; ++i) - *(data + i) = rand (); - umask (0); - fd = creat ("conftest.mmap", 0600); - if (fd < 0) - return 1; - if (write (fd, data, pagesize) != pagesize) - return 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) - return 1; - data2 = (char *) malloc (2 * pagesize); - if (!data2) - return 1; - data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1); - if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_FIXED, fd, 0L)) - return 1; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data2 + i)) - return 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) - return 1; - if (read (fd, data3, pagesize) != pagesize) - return 1; - for (i = 0; i < pagesize; ++i) - if (*(data + i) != *(data3 + i)) - return 1; - close (fd); - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mmap_fixed_mapped=yes -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_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 core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5 -$as_echo "$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 - TT_FILE_COMPONENT=ttfile.c -else - TT_FILE_COMPONENT=arch/unix/ttmmap.c -fi - - - - -for ac_func in memcpy memmove -do -as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 -$as_echo_n "checking for $ac_func... " >&6; } -if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&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 declares $ac_func. - For example, HP-UX 11i 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 to if __STDC__ is defined, since - exists even on freestanding compilers. */ - -#ifdef __STDC__ -# include -#else -# include -#endif - -#undef $ac_func - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -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 -#endif - -int -main () -{ -return $ac_func (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && - $as_test_x conftest$ac_exeext; then - eval "$as_ac_var=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_var=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ - conftest$ac_exeext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -if test `eval 'as_val=${'$as_ac_var'} - $as_echo "$as_val"'` = yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - -fi -done - - -ac_config_headers="$ac_config_headers ft_conf.h" - - -$srcdir/mkinstalldirs lib/arch/unix test/arch/unix - -ac_config_files="$ac_config_files Makefile MakeSub lib/arch/unix/Makefile test/arch/unix/Makefile" - -ac_config_files="$ac_config_files po/Makefile.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, we kill variables containing newlines. -# 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. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5 -$as_echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - 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" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - else - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - 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}' - -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=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$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" -{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -$as_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 more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -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+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# 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 - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# 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 - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -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 -IFS=$as_save_IFS - - ;; -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 - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -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) >/dev/null 2>&1 && $as_unset $as_var - fi -done - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; 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 || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "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" || - { $as_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 sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir -fi -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' -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$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# 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'" - - -exec 6>&1 - -# Save the log message, to keep $[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by $as_me, which was -generated by GNU Autoconf 2.61a. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -# Files that config.status was made for. -config_files="$ac_config_files" -config_headers="$ac_config_headers" - -_ACEOF - -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 and configuration settings, 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 ." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -config.status -configured by $0, generated by GNU Autoconf 2.61a, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2006 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -test -n "\$AWK" || AWK=awk -_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 - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --debug | --debu | --deb | --de | --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;; - --he | --h) - # Conflict between --help and --header - { $as_echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { $as_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" - ac_need_defaults=false ;; - - 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 - set X '$SHELL' '$0'$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "ft_conf.h") CONFIG_HEADERS="$CONFIG_HEADERS ft_conf.h" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "MakeSub") CONFIG_FILES="$CONFIG_FILES MakeSub" ;; - "lib/arch/unix/Makefile") CONFIG_FILES="$CONFIG_FILES lib/arch/unix/Makefile" ;; - "test/arch/unix/Makefile") CONFIG_FILES="$CONFIG_FILES test/arch/unix/Makefile" ;; - "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; - - *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -$as_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 against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$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 "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || -{ - $as_echo "$me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -echo 'BEGIN {' >"$tmp/subs.awk" -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' - echo "_ACEOF" -} >conf$$subs.sh -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh - - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` = $ac_delim_num; then - break - elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF -cat >>"\$tmp/subs.awk" <<\CEOF -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\).*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\).*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' >$CONFIG_STATUS -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF -CEOF -cat >>"\$tmp/subs.awk" <>$CONFIG_STATUS <<\_ACEOF -fi # test -n "$CONFIG_FILES" - - -for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5 -$as_echo "$as_me: error: Invalid tag $ac_tag." >&2;} - { (exit 1); exit 1; }; };; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; - esac - ac_file_inputs="$ac_file_inputs $ac_f" - done - - # 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. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin";; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= - -case `sed -n '/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p -' $ac_file_inputs` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -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&@top_builddir@&$ac_top_builddir_sub&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -$ac_datarootdir_hack -" $ac_file_inputs | $AWK -f "$tmp/subs.awk" >$tmp/out - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} - - rm -f "$tmp/stdin" - case $ac_file in - -) cat "$tmp/out"; rm -f "$tmp/out";; - *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;; - esac - ;; - :H) - # - # CONFIG_HEADER - # -_ACEOF - -# Transform confdefs.h into a sed script `conftest.defines', that -# substitutes the proper values into config.h.in to produce config.h. -rm -f conftest.defines conftest.tail -# First, append a space to every undef/define line, to ease matching. -echo 's/$/ /' >conftest.defines -# Then, protect against being on the right side of a sed subst, or in -# an unquoted here document, in config.status. If some macros were -# called several times there might be several #defines for the same -# symbol, which is useless. But do not sort them, since the last -# AC_DEFINE must be honored. -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where -# NAME is the cpp macro being defined, VALUE is the value it is being given. -# PARAMS is the parameter list in the macro definition--in most cases, it's -# just an empty string. -ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*' -ac_dB='\\)[ (].*,\\1define\\2' -ac_dC=' ' -ac_dD=' ,' - -uniq confdefs.h | - sed -n ' - t rset - :rset - s/^[ ]*#[ ]*define[ ][ ]*// - t ok - d - :ok - s/[\\&,]/\\&/g - s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p - s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p - ' >>conftest.defines - -# Remove the space that was appended to ease matching. -# Then replace #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. -# (The regexp can be short, since the line contains either #define or #undef.) -echo 's/ $// -s,^[ #]*u.*,/* & */,' >>conftest.defines - -# Break up conftest.defines: -ac_max_sed_lines=50 - -# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1" -# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2" -# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1" -# et cetera. -ac_in='$ac_file_inputs' -ac_out='"$tmp/out1"' -ac_nxt='"$tmp/out2"' - -while : -do - # Write a here document: - cat >>$CONFIG_STATUS <<_ACEOF - # First, check the format of the line: - cat >"\$tmp/defines.sed" <<\\CEOF -/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def -/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def -b -:def -_ACEOF - sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS - echo 'CEOF - sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS - ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in - sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail - grep . conftest.tail >/dev/null || break - rm -f conftest.defines - mv conftest.tail conftest.defines -done -rm -f conftest.defines conftest.tail - -echo "ac_result=$ac_in" >>$CONFIG_STATUS -cat >>$CONFIG_STATUS <<\_ACEOF - if test x"$ac_file" != x-; then - $as_echo "/* $configure_input */" >"$tmp/config.h" - cat "$ac_result" >>"$tmp/config.h" - if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f $ac_file - mv "$tmp/config.h" $ac_file - fi - else - $as_echo "/* $configure_input */" - cat "$ac_result" - fi - rm -f "$tmp/out12" - ;; - - - esac - - - case $ac_file$ac_mode in - "po/Makefile.in":F) sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile ;; - - esac -done # for ac_tag - - -{ (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 - - - diff --git a/Build/source/libs/freetype/configure.in b/Build/source/libs/freetype/configure.in deleted file mode 100644 index 15937225dfc..00000000000 --- a/Build/source/libs/freetype/configure.in +++ /dev/null @@ -1,266 +0,0 @@ -dnl This file is part of the FreeType project, and may only be used, -dnl modified, and distributed under the terms of the FreeType project -dnl license, LICENSE.TXT. By continuing to use, modify, or distribute -dnl this file you indicate that you have read the license and understand -dnl and accept it fully. -dnl -dnl Process this file with autoconf to produce a configure script. - -AC_INIT(lib/freetype.h) - -dnl Due to a bug in autoconf we must set $srcdir explicitly to an absolute -dnl path. -srcdir=`cd $srcdir; pwd` - -AM_DISABLE_STATIC -AC_LIBTOOL_WIN32_DLL -AM_PROG_LIBTOOL - -dnl FreeType version -freetype_version='1.5' - -dnl libttf.so version -version_info='6:0:4' - -AC_ARG_ENABLE(nls, - [ --disable-nls don't use NLS], - USE_NLS=no, USE_NLS=yes) -AC_SUBST(USE_NLS) - -dnl Checks for system type. -AC_CANONICAL_SYSTEM - -dnl Checks for programs. -AC_PROG_CC -AC_PROG_CPP - -dnl get Compiler flags right. - -if test "x$CC" = xgcc; then - XX_CFLAGS="-Wall -pedantic -ansi -D_REENTRANT" -else - case "$host" in - *-dec-osf*) - XX_CFLAGS="-std1 -O2 -g3" - ;; - *) - XX_CFLAGS= - ;; - esac -fi -AC_SUBST(XX_CFLAGS) - -dnl at least Digital UNIX 4.0d needs this due to a strange make program - -case "$host" in - *-dec-osf*) - ln -s ../../MakeSub lib/arch - ln -s ../../MakeSub test/arch - ;; -esac - -AC_SUBST(freetype_version) -AC_SUBST(version_info) - - -dnl NLS/gettext nightmare^H^H^H^H^H^H^H^H^H^H support... - -dnl autoconf-2.59+ disallows AC_REQUIRE outside AC_DEFUN -AC_DEFUN([ft_AC_REQUIRE_AC_PROG_MAKE_SET], - [AC_REQUIRE([AC_PROG_MAKE_SET])]) - -if test "$USE_NLS" = "yes"; then - ft_AC_REQUIRE_AC_PROG_MAKE_SET - AC_CHECK_HEADERS(locale.h) - AC_CHECK_FUNCS(setlocale) - AC_SUBST(HAVE_LOCALE_H) - - AC_CHECK_HEADERS(libintl.h) - AC_SUBST(HAVE_LIBINTL_H) - - ALL_LINGUAS="de fr cs nl es" - - dnl We now need to check whether the "intl" library is available. - dnl The bad news is that a number of possibilities can happen: - dnl a) GNU gettext support is already available from the (modern) libc - dnl b) some version of gettext is available as standalone "intl" lib - dnl No real problem (this was the only case previously detected) - dnl c) a recent version of gettext is used, and it needs the - dnl (separate) "iconv" library to work - dnl - dnl This test has been adapted from gettext.m4, written by Bruno Haible - LIBINTL= - LTLIBINTL= - - dnl First, test case a) - AC_CACHE_CHECK([for GNU gettext in libc], ftgt_cv_func_gnugettext_libc, - [AC_TRY_LINK([ -#include -extern int _nl_msg_cat_cntr; -extern int *_nl_domain_bindings; - ],[ -bindtextdomain ("", ""); -return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings - ], ftgt_cv_func_gnugettext_libc=yes, - ftgt_cv_func_gnugettext_libc=no)]) - - if test "$ftgt_cv_func_gnugettext_libc" != "yes"; then - dnl It does not come for free. Let's check case b), - dnl id est see whether libintl exists and does not depend on libiconv. - AC_CHECK_LIB(intl, gettext) - - if test "$ac_cv_lib_intl_gettext" != "yes"; then - dnl Does not work; so let's check case c), - dnl id est see whether libintl exists and depends on libiconv. - AC_CACHE_CHECK([for GNU gettext in libintl, using libiconv], - ftgt_cv_func_gnugettext_libintliconv, - [AC_CHECK_LIB(intl, bindtextdomain, - ftgt_cv_func_gnugettext_libintliconv=yes LIBS="$LIBS -lintl -liconv", - [ftgt_cv_func_gnugettext_libintliconv=no - dnl No NLS support then! - USE_NLS=no], - -liconv)]) - fi - fi -fi - -if test "$USE_NLS" = "yes"; then - dnl Handle localedir - LOCALEDIR='${prefix}/share/locale' - AC_ARG_WITH(locale-dir, - [ --with-locale-dir=DIR Location of the locale file(s) - [PREFIX/share/locale]],[ - if test x$withval = xyes; then - AC_MSG_WARN(Usage is: --with-locale-dir=basedir) - else - if test x$withval = xno; then - AC_MSG_WARN(Usage is: --with-locale-dir=basedir) - else - LOCALEDIR=$withval - fi - fi - ]) - AC_SUBST(LOCALEDIR) - - AC_PATH_PROG(MSGFMT, msgfmt, $MSGFMT) - if test -n "$MSGFMT"; then - AC_CHECK_FUNCS(dcgettext) - AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) - AC_PATH_PROG(XGETTEXT, xgettext, $XGETTEXT) - AC_PATH_PROG(MSGMERGE, msgmerge, $MSGMERGE) - - dnl Test whether we really found GNU xgettext. - if test -n "$XGETTEXT"; then - if $XGETTEXT --omit-header /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT="" - fi - fi - - dnl We add another test for comparing GNU xgettext with openwin xgettext - if test -n "$XGETTEXT"; then - if $XGETTEXT --help > /dev/null 2> /dev/null; then - : ; - else - AC_MSG_RESULT( - [found xgettext program is not GNU xgettext; ignore it]) - XGETTEXT="" - fi - fi - - dnl Test whether we really found GNU msgfmt. - if test -n "$MSGFMT"; then - if $MSGFMT < /dev/null 2> /dev/null; then - AC_MSG_RESULT( - [found msgfmt program is not GNU msgfmt; NLS won't be installed]) - MSGFMT="" - fi - fi - - AC_TRY_LINK(, - [extern int _nl_msg_cat_cntr; - return _nl_msg_cat_cntr], - [CATOBJEXT=.gmo - DATADIRNAME=share], - [CATOBJEXT=.mo - DATADIRNAME=lib]) - INSTOBJEXT=.mo - fi - - if test -n "$ALL_LINGUAS"; then - for lang in $ALL_LINGUAS; do - CATALOGS="$CATALOGS $lang$CATOBJEXT" - done - fi - AC_SUBST(CATALOGS) - AC_SUBST(CATOBJEXT) - AC_SUBST(INSTOBJEXT) - AC_SUBST(DATADIRNAME) -fi - -dnl don't use NLS, when there is no gettext installed -if test x"$MSGFMT" = x; then - USE_NLS=no -fi - - -AC_CHECK_PROG(RM, rm, rm) -AC_CHECK_PROG(RMDIR, rmdir, rmdir) -AC_PROG_INSTALL -AC_PROG_LN_S - -dnl Checks for libraries. -sinclude(net.m4) -AC_LIBRARY_NET -AC_CHECK_LIB(m, cos) - -dnl Checks for header files. -AC_PATH_XTRA -dnl Don't compile X programs (and emit a warning message) -dnl if X isn't available. -if test "$no_x" = yes; then - AC_MSG_WARN([Test programs needing X11 won't be compiled.]) -else - X_PROGRAMS="\$(X_PROGRAMS)" - AC_SUBST(X_PROGRAMS) -fi - -AC_CHECK_HEADERS(stdlib.h fcntl.h unistd.h) - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_CHECK_SIZEOF(int) -AC_CHECK_SIZEOF(long) - -dnl Checks for library functions. - -dnl Here we check whether we can use our mmap file component. -AC_FUNC_MMAP -if test "$ac_cv_func_mmap_fixed_mapped" != yes; then - TT_FILE_COMPONENT=ttfile.c -else - TT_FILE_COMPONENT=arch/unix/ttmmap.c -fi -AC_SUBST(TT_FILE_COMPONENT) - -AC_CHECK_FUNCS(memcpy memmove) - -AC_CONFIG_HEADER(ft_conf.h) - -dnl Another bug: to make --srcdir work correctly we have to create the -dnl directory hierarchy first since autoconf only uses mkdir. -$srcdir/mkinstalldirs lib/arch/unix test/arch/unix - -AC_CONFIG_FILES([Makefile - MakeSub - lib/arch/unix/Makefile - test/arch/unix/Makefile]) -AC_CONFIG_FILES([po/Makefile.in], - [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile]) -AC_OUTPUT - - -dnl end of configure.in diff --git a/Build/source/libs/freetype/docs/FAQ b/Build/source/libs/freetype/docs/FAQ deleted file mode 100644 index 3e80f2b69ba..00000000000 --- a/Build/source/libs/freetype/docs/FAQ +++ /dev/null @@ -1,843 +0,0 @@ - FreeType 1 User FAQ - --------------------------------------------------------------------- - - - Table of contents - - -1. How do I compile the test programs? - -2. What are the test programs? - -3. How do I use them? - -4. How do I only compile the FreeType library? - -5. The library compiles fine on my system, unfortunately it seems - the test programs won't. What can I do? - -6. I did compile the test programs `out of the box' without - problems, but the results are ugly. What did I have wrong? - -7. What is FreeType, and what is it not? - -8. Can FreeType be ported to other platforms? - -9. My TrueType font only works on a Mac/in Windows. Will I be able - to use it with FreeType? - -10. What are the most common character mappings? - -11. How do I render text with FreeType? - -12. How do I render rotated/slanted text with FreeType? - -13. How do I compute a glyph bitmap's dimensions? - -14. Why is text rendering so slow? Does FreeType cache glyphs? - -15. Do you always render the same glyphs as Windows or the Mac? - -16. The program `ftlint' reports errors with one of my fonts, though - it works perfectly under Windows. What does this mean? - -17. What does the `fttimer' test program benchmarks? - -18. Is it possible to perform styling (like oblique, italic, bold, - underline, etc.) with FreeType? - -19. When does glyph hinting takes place? Is it when the glyph is - loaded, or when it is converted to a bitmap/pixmap? - -20. Which is the best, caching outlines or bitmaps? - -21. Can I open OpenType and/or TrueType GX fonts with FreeType? - -22. How can I access additional TrueType tables that FreeType - doesn't support? - -23. When will I be able to use FreeType to display TrueType fonts in - X11, Wine, or OS/2, or even other systems? - -24. What does the `free' in FreeType really means? - -25. Does FreeType support threads? Is it re-entrant? - -26. Does FreeType support `foreign languages'? - -27. I'm using fractional char sizes, but the glyphs stay at the same - integer size. Why? - -28. Hinting doesn't work at very small sizes. Why? - --------------------------------------------------------------------- - -1. How do I compile the test programs? - - Detailed compilation steps are given in the `freetype/INSTALL' - file, as well as system and compiler specific hints in the - `freetype/howto' directory. What follows is a _very_ simple - guide: - - For Unix: - - Do the following on the prompt while in the base directory of - the FreeType package: - - % ./configure - % make - % make install - - This will build and install the library (shared, if supported) - together with the test programs. Say `./configure --help' to - see the available configuring options. - - This should work with any ANSI C compiler. - - For other platforms: - - Go to the `test' directory. Look at one of the makefiles - located in the `arch/' directory, and use the - appropriate makefile from there. - - For example: - - make -f arch/msdos/makefile.gcc (DJGPP or emx) - wmake -f=arch\msdos\makefile.wat (Watcom DOS) - nmake -f arch\os2\makefile.icc (Visual Age OS/2) - make -f arch/amigaos/makefile.gcc (GCC Amiga) - - This will compile both the library and the test programs. - - --------------------------------------------------------------------- - -2. What are the test programs? - - The test programs are simple sources that `show off' the FreeType - library. They are located in the `test' directory. They make use - of a small graphics sub-system which is able to display bitmaps - and pixmaps on a variety of platforms through the use of - system-specific `drivers'. - - The test programs are: - - ftdump: A simple TTF information dumper. Also prints the - memory used by each opened font file with FreeType. - Doesn't use the graphics sub-system. - - ftlint: A simple TrueType bytecode verifier. It simply hints - all glyphs of one or more font files at a given size - and reports errors. Doesn't use the graphics - sub-system. - - ftview: A simple font viewer. Displays all glyphs in a font - file in a window. - - ftstring: Renders a simple string to the screen. Demonstrates - how to produce text with FreeType. - - fttimer: A simple benchmark, used to profile the scan-line - conversion routines (and only them). Supports also - display. - - ftstrpnm: A version of `ftstring' which saves a bit/pixmap to a - PNM file rather than to the screen. No graphics - sub-system needed. - - ftzoom: A simple glyph viewer, useful to view, zoom and rotate - individual glyphs in a font file. - - fterror: This program demonstrates how to use the ftxerr18 - extension. Note that internationalized strings will - be available on some platforms only (e.g. Linux). - - ftmetric: A simple metric/glyph dumper. No graphics sub-system - needed. - - ftsbit: Displays data about embedded bitmaps in a TrueType - font. - - ftstrtto: Renders a string to screen, using TrueType Open - features. - - NOTE: The file `ftdebug.c' isn't part of the test suite. It is - used only by the developers team to debug the engine at a - higher level. It won't work with a standard library - compile. - - - The tiny graphics subsystem is defined in the following files: - - gmain.h/gmain.c: The subsystem's main body/interface. - - gevents.h: The definition of events defined for the - subsystem - - gdriver.h: The generic interface of all system-specific - drivers. - - System-specific drivers are in the `test/arch/' - directories, like: - - test/arch/msdos/gfs_dos.c Full-Screen DOS driver - test/arch/os2/gpm_os2.c PM (Windowed) OS/2 driver - test/arch/unix/gwin_x11.c X11 Windowed driver - - etc. - - --------------------------------------------------------------------- - -3. How do I use them? - - Please read the file freetype/README for a full description. - - --------------------------------------------------------------------- - -4. How do I only compile the FreeType library? - - For Unix: - - Do a `configure' run as described in section 1. Then change to - the lib subdirectory and say `make' and `make install'. - - For other platforms: - - Go to the `lib' directory. Look at one of the makefiles located - in the `arch/' directory, and use it from `lib'. - - For example: - - make -f arch/msdos/makefile.gcc (DJGPP or emx) - wmake -f=arch\msdos\makefile.wat (Watcom DOS) - nmake -f arch\os2\makefile.icc (Visual Age OS/2) - make -f arch/amigaos/makefile.gcc (GCC Amiga) - - The library is pure ANSI C and doesn't depend on any - system-specific package. You do not need gcc to compile it. - - --------------------------------------------------------------------- - -5. The library compiles fine on my system, unfortunately it seems - the test programs won't. What can I do? - - As said before, some test programs rely on a small graphics - sub-system to display the bitmaps and pixmaps produced by the - library. The following systems are currently supported: - - DOS Full-Screen Note that the windowed graphics - Amiga Full-Screen driver are very 'basic', they do - Amiga Windowed not provide menus, dialog boxes, - OS/2 Full-Screen etc. Rather, they provide one - OS/2 Windowed windowed bitmap/pixmap and translate - X11 Windowed events to the ones defined in - Win32 Windowed `test/gevents'. - - If you want to add support to your system, you should write a new - graphics driver. To do that, read the file `test/gdriver.h' which - contains the driver generic interface, then browse the drivers - that are already provided. - - The graphics drivers are located in the `test/arch/' - directories. They're not part of the library proper. - - IMPORTANT NOTE: - - You can also directly link the library to your own application - and render glyphs directly into your own bitmaps with very few - efforts. - - --------------------------------------------------------------------- - -6. I did compile the test programs `out of the box' without - problems, but the results are ugly. What did I have wrong? - - Well, chances are you built the `patents-free' version of the - Freetype library, which does not enable the bytecode interpreter, - which means that at small to normal point sizes, the glyphs are - distorded, hence ugly. - - Apple Computer owns three patents that are related to the - processing of glyph outlines within TrueType fonts. This process - if also called hinting or grid-fitting and is used to enhance the - quality of glyphs at small bitmap sizes. - - When the work with Freetype began, we were not aware of these - patents. Since version 1.3, however, we have provided a way to - build a patent-compliant version of the library, which completely - disables the TrueType interpreter (quite a rude way). If the - result is usable with big point sizes, or for special tasks such - as font converting, it results about useless for normal screen - reading. Beginning with version 1.5, this behaviour is even by - default, so this is what you get if you compile `out of the box'. - - However, the source code for the bytecode interpreter is still - available and can be activated at compile time, for those who - want to use it anyway (because they purchased a license from - Apple, or because they are in a country where the patents do not - apply, etc.). For details, check the `freetype/INSTALL' file. - - --------------------------------------------------------------------- - -7. What is FreeType, and what is it not? - - FreeType is a rather low-level font engine. It has been designed - primarily to be the basis of several font servers, for very - different systems which all have their own metrics and graphics - models. This means that it focuses on the following points: - - - Opening and loading font files in memory. - - - Giving access to most important font properties and TrueType - tables. - - - Providing a simple way to translate system-specific character - codes into glyph indexes, according to the TrueType `cmap' - specification. - - - Loading and rendering _individual_ glyphs as nicely as possible - (either in outlines, bitmaps, or pixmaps), and performing - excellent hinting. - - It isn't a high-level text rendering library, and many tasks will - have to be performed by higher level layers like: - - - glyph caching (outlines and/or maps) - - text rendering - - justification, kerning - - font mapping - - rotated/slanted text - - However, its API provides many functions that ease these - operations considerably: - - - Glyph outlines can be copied and transformed easily with the API - functions, then rendered to bitmaps or pixmaps with FreeType's - scan-line converter, which is very fast. - - - The glyph loader places the outlines in order to ease the - process of text rendering. See the documentation file named - `glyphs.htm' (resp. `glyphs.txt') or `ftstring's source for more - details. - - - The engine gives you access to several TrueType tables that can - be processed by your application to provide more powerful - rendering (e.g. kerning). - - - It is possible, and rather simple, to write separately - compilable extensions to the engine to access other TrueType - tables that are not supported by the engine in this release. - This can be handy if one wants to access data in TrueType GX or - OpenType fonts (as these formats comply to the TrueType `sfnt' - file storage format, they can be opened by the FreeType engine - as a normal TrueType file). - - --------------------------------------------------------------------- - -8. Can FreeType be ported to other platforms? - - FreeType is written in pure ANSI C and should compile well on all - 16, 32, and 64 bit processors. Note, however, that the 16-bit - port requires a large memory model. Furthermore, some tables - found in TrueType programs may exceed 64 kBytes, which calls for - the so-called huge memory model. This is really true for CJK and - Unicode fonts. Nearly all others should work fine with the large - model. - - It does not support some very exotic platforms though, like a - 32-bit only processor (where the only word size is 32-bit, even - for chars and shorts). However, nothing prevents you to test it - by yourself... - - The memory management and file access routines have been gathered - in two components, namely `ttmemory' and `ttfile', which can be - specialized for a specific system. Their standard version, found - in the `lib' directory, uses simply the ANSI libc. However, - examples are given of alternative file components for OS/2 and - Unix in: - - lib/arch/os2/ttfile.c - (accessing the low-level OS/2 file API directly) - - lib/arch/unix/ttmmap.c - (using memory-mapped files for improved access) - - You would certainly need to rewrite these components if you intend - to use FreeType in an embedded system. - - --------------------------------------------------------------------- - -9. My TrueType font only works on a Mac/in Windows. Will I be able - to use it with FreeType? - - Short Answer: YES, but be cautious! - - If you have read section 9 or 25, you know that a font file might - have different charMaps entries, used to translate character codes - to glyph indexes. The problem of most `system-specific' TrueType - fonts (sigh) is that they only contain one single mapping, like - Apple Roman, or Windows Glyph List, making it usable only on the - platform it was `designed' for. - - The test program `ftdump' can be used to display the character - encodings supported in a font file. Most fonts come with Apple - Roman and Windows Unicode. - - FreeType can use every charmap found in a font file, so it is up - to your application to choose the one that fits its task best. If - you use a font which only provides an Apple Roman charcode, you'll - probably have a hard time rendering Unicode strings without an - additional translation. - - Note that the tool `ttf_edit' can actually add missing cmaps to a - TrueType font file. More info on this can be found at: - - http://www.truetex.com - - Another possibility is to use Just van Rossum's TTX compiler - (still beta) which can convert a TrueType font into an XML - description and vice versa; it can be found at - - http://www.letterror.com/ttx/ - http://sourceforge.net/projects/fonttools/ - - --------------------------------------------------------------------- - -10. What are the most common character mappings? - - If you don't want to read the TrueType specification, here is some - information about the most used char maps. Each map is designed - by a `platform ID', followed by a platform-specific `encoding ID': - - Examples: - - 0, 0 : Apple Unicode - 1, 0 : Apple Roman - 3, 0 : Windows Symbol - 3, 1 : Windows Unicode - - Windows and Apple Unicode charmaps differ only in internal storage - layout. Both can be used transparently with FreeType. - - Many fonts come also with both Apple Roman and Windows Unicode. - - --------------------------------------------------------------------- - -11. How do I render text with FreeType? - - This is explained with great detail in the glyphs documentation - file available in both text (glyphs.txt) and HTML (glyphs.htm, - including schematics). - - Text rendering isn't difficult. One can also look at the code for - `ftstring' or `ftstrtto' to see how it is done. - - --------------------------------------------------------------------- - -12. How do I render rotated/slanted text with FreeType? - - It is possible to transform the outlines returned by the glyph - loader, hence producing rotated or slanted text. Please read the - `glyphs' documentation file, which explains this in great detail, - as well as some other important things. - - --------------------------------------------------------------------- - -13. How do I compute a glyph bitmap's dimensions? - - You should grid-fit its bounding box, then compute its width and - height. This is explained in the `bitmaps.txt' documentation - file. - - --------------------------------------------------------------------- - -14. Why is text rendering so slow? - Does FreeType cache glyphs? - - The FreeType 1 engine doesn't cache anything, be it outlines or - bitmaps. Hence, a program that renders text by calling the glyph - loader on each letter is slow. - - Because caching cannot be performed in both an _easy_ and - _portable_ way it is left to the application. Moreover, some - graphics systems already provide some sort of caching, and it is - better to take advantage of it rather than re-implementing it. - - The `how's and `when's of caching are explained in the `glyphs' - documentation file. The `bitmaps' documentation file is also a - good source of information if you intend to render individual - glyph bitmaps. - - --------------------------------------------------------------------- - -15. Do you always render the same glyphs as Windows or the Mac? - - Short answer: No for rare cases. - - There are a lot of technical details, too numerous and lengthy to - be put here, that prevents the FreeType library from matching 100% - the glyphs produced by the Windows or Macintosh rasterizers. - - This engine is a clean-room implementation, and most of the - reasons why its development took so much time is the largely - deficient TrueType specification published by Apple and Microsoft. - A number of key technical aspects are missing, and we found many - `undocumented' features in the TrueType bytecode, after several - months of testing and trying. We are now very satisfied with the - current quality, though still try to improve it. - - The glyph metrics (bearings and advances) also match significantly - those computed by Windows, or found in the TrueType pre-calc - tables. - - As hinting glyphs also makes use of several rounding operations, - we will be unable to provide a perfect clone unless we implement - the exact same computations _and_ rounding errors -- this is - very unlikely... - - --------------------------------------------------------------------- - -16. The program `ftlint' reports errors with one of my fonts, though - it works perfectly under Windows. What does this mean? - - Associated to each glyph is a small `program', written in a - specific bytecode language, which is in charge of hinting the - glyph's outline to make it perfect on screen as on paper. Some of - these programs can be broken (e.g., accessing invalid areas of - memory, performing a divide by zero, etc.), and these are the - errors that are reported by `ftlint'. - - They can also mean a bug in the TrueType bytecode interpreter (or - more likely an `undocumented' feature we haven't discovered yet), - but should now be extremely rare. - - Surprisingly, even largely distributed fonts can contain broken - glyph programs. For example: - - - antqua.ttf, glyph 163 (MS Office 4.2): - - The program tries to access point number 0x127, which is too - much. - - - timesbs, arialbs, courbs (MS Office International): - - The back-slanted versions of the MS core fonts produce stack - overflows in many glyphs, and other oddities. It seems their - `maximum profile' table is invalid. - - - a ton of `free' fonts, apparently designed with mediocre tools. - - It seems the Windows TrueType engine doesn't check its arguments - often, and let all overflows run, possibly writing to critical - portions of memory. Please, don't ask us what this could do to - Windows NT :-) - - The FreeType engine performs checks on every opcode. We cannot - guarantee that it is bullet proof, of course, but it seems to work - well and catch font bugs accordingly. - - We also have artificially `enlarged' some allocated tables to make - the engine work with the back-slanted fonts without compromising - security, but it's clearly a hack we would have preferred to - avoid! - - --------------------------------------------------------------------- - -17. What does the `fttimer' test program benchmarks? - - This test program is only dedicated to profiling FreeType's - scan-line converter, a component also called `rasterizer', which - is in charge of converting a vectorial outline into a bitmap, or a - pixmap. - - It simply loads all glyphs of a font file (by slices of 512 at - once), then converts them. Only the conversion is actually - benchmarked. - - The glyphs are rendered at size 400pt at a resolution of 96dpi - (this is about 500 pixels high). As you'll see by running - `fttimer', the rasterizer is very fast. - - --------------------------------------------------------------------- - -18. Is it possible to perform styling (like oblique, italic, bold, - underline, etc.) with FreeType? - - Actually, these refer to very different things: - - - Italic and Bold styles usually mean many variations from the - `Regular' font. This is why you normally need a proper font - file for each of these. For example, the MS core font Times - comes in the following TrueType files: - - TIMES.TTF Times New Roman Regular - TIMESI.TTF Times New Roman Italic - TIMESB.TTF Times New Roman Bold - TIMESBI.TTF Times New Roman Bold Italic - (sometimes named TIMESZ.TTF) - - With FreeType, you simply need the required font file to use it. - - - Oblique style refers to a transformation that is applied to a - regular font in order to make it `slanted', likes italics do. - However, an italic font very frequently contains small but - important variations that cannot be produced by this method and - make the font more appealing. - - Slanting can easily be done with a transformation under - FreeType, with the exact same process as rendering rotated text. - Please read the `glyphs' documentation file where it is - explained in details. - - Usually, Windows or the Macintosh produce oblique versions of a - regular font if the corresponding italic TrueType file isn't - available. They also stretch regular fonts horizontally if the - bold one isn't available. All of this can be done with trivial - transformations. - - - Underlining and stroking are not really part of the glyphs. - They're simply lines that are printed on the glyph after it has - been rendered. Each TrueType file provides, in its OS/2 table - (which is accessible through the face object properties in - FreeType), several values that define the position and width of - those lines, in notional font units. - - If you want to use them, you'll have to scale these values to - your current instance/point size, then draw the lines yourself. - - --------------------------------------------------------------------- - -19. When does glyph hinting takes place? Is it when the glyph is - loaded, or when it is converted to a bitmap/pixmap? - - The glyph loader returns fitted outlines by default (it can be - asked to return a non-fitted one, or simply the original outline - in notional coordinates too). - - This is important to have a glyph's correct metrics, even if it is - not to be rendered immediately, like when caching outlines for - rotated text. - - --------------------------------------------------------------------- - -20. Which is the best, caching outlines or bitmaps? - - It depends on your application, and what it does with text. - - Usually, if all you need is render some simple text at specific - point sizes, then simply cache the bitmaps or pixmaps. - - However, if you want to do more advanced things, like rotated - text, which require sub-pixel placement to look good, you should - then only cache the outlines, and transform/place them as needed - before sending them to the scan-line converter. - - It's always possible to produce a bitmap from an outline, and the - scan-converter is very fast. It's up to you then... - - --------------------------------------------------------------------- - -21. Can I open OpenType and/or TrueType GX fonts with FreeType? - - TrueType GX fonts are normal TrueType fonts with enhanced tables - and capabilities. They can always be opened by a normal TrueType - engine (like Windows, the Mac, or FreeType), but their improved - features won't be available. - - On the contrary, OpenType fonts may vary. While some may contain - legal TrueType glyphs, an `otf' file may only contain glyphs - encoded in the Type 2 format. You won't be able to produce any - glyphs from such a font file without a dedicated font engine (like - the ones promised in NT 5 and Java 2D... or with Freetype 2). - - FreeType 1 is a TrueType glyph engine and doesn't support Type 2 - fonts. Supporting them would require a very different philosophy - and a different core engine (even though they could share an API). - - Note that you can write extensions to the engine to access - supplemental tables defined in these formats (see next question). - - Note that FreeType version 2 (which is now widely available) - includes a PostScript Type 1 / Type 2 interpreter... - - --------------------------------------------------------------------- - -22. How can I access additional TrueType tables that FreeType - doesn't support? - - You can write an `engine extension'. This is a separately - compilable component which can enhance the base library's - functionalities, without recompiling it. Some important - extensions are provided in the `lib/extend' directory. - - You'll need of course to know the TrueType specification - precisely, as well as some of the conventions used to access - tables and to manage memory. Read the documentation files for - more details, or contact the developers at: - - devel@freetype.org - - --------------------------------------------------------------------- - -23. When will I be able to use FreeType to display TrueType fonts in - X11, Wine or OS/2, or even other systems? - - Actually, an OS/2 replacement for TRUETYPE.DLL based on FreeType - is part of this package (to be found in contrib/ftos2). Thanks go - to Michal Necasek (mike@mendelu.cz) for his excellent work! - - At least three X11 TrueType font servers are available; two of - them (xfsft and xtt) are based on FreeType, whereas the third - (xfstt) uses a separately developed TrueType engine. - - More information about these servers is available at the FreeType - homepage (http://www.freetype.org). - - Don't hesitate to contact us if you plan to use or port the engine - to exotic platforms, we're always interested in helping out. - - --------------------------------------------------------------------- - -24. What does the `free' in FreeType really means? - - The previous releases of FreeType (alphas and beta) were placed - under the LGPL. FreeType 1.0, and later releases, come with an an - alternate license, inspired from the BSD, Artistic, and IJG's - (Independent JPEG Group) ones. In short: - - - You are encouraged to use and distribute this program in all - kinds of products, including commercial ones. - - - You don't have to pay us anything for it (royalty-free). - - - You may not pretend you wrote it, or part of it that you may use - in one of your product, and you have to state clearly that you - use the FreeType code if you distribute products based on it, or - parts of it (credits clause). - - - This source code is provided AS IS, with no warranty whatsoever, - and we cannot promise support for it. - - From version 1.5 and later releases, we added the choice for the - user of the library to use the GNU General Public License instead. - As a result, you can link the Freetype library with any GPL-ed - software, without any inconvenience; however, you then have the - obligation to publish all of the source code of the products you - release. - - The exact and legal terms are in the files `docs/FTL.txt' and - `docs/GPL.txt', respectively. - - Enjoy ;-) - - --------------------------------------------------------------------- - -25. Does FreeType support threads? Is it re-entrant? - - Short answer: Basically yes, but not fully tested. - - We have changed some code since FreeType 1.0 in order to support - multi-threaded environments. However, these have not been tested - yet. Apparently, the thread-safe and reentrant builds now work - well perfectly once compiled; however, no serious concurrency - testing has been performed (of course, a serious lock analysis was - done in order to modify the source). - - Right now, the mutex management functions are all gathered in the - component `ttmutex', which has to be specialized for your own - system if a thread build will be necessary. - - --------------------------------------------------------------------- - -26. Does FreeType support `foreign languages'? - - Short Answer: YES, it does! - - From a TrueType font file point of view, there are several parts - to the file, one of them being the `glyphs', i.e., picture - representations of the symbols. - - Another part is the mapping table, also called `charMap'. - - For example, glyph #1 could be letter `A', and glyph #2 could be - letter `Z'. Glyphs can be stored in any order in a font file. - - The mapping tables contain at least one char-map entry. For - example, you could have an ASCII-map that maps character code 0x41 - to glyph #1, and code 0x5A to glyph #2, etc. FreeType provides a - `charMap' object class to access and use this information easily. - - There are several character encodings recognized and defined by - the TrueType specification, like Latin-1, Unicode, Apple Scripts, - WGL, etc., but a font file might only contain one or two of them. - - When using a more `exotic' character encoding like EBCDIC (this is - IBM mainframe stuff!), you would need to translate it to one of - the available formats (or to add a charmap table to the font). - Cf. section 8. - - --------------------------------------------------------------------- - -27. I'm using fractional char sizes, but the glyphs stay at the same - integer size. Why? - - Because hinting only works well with integer pixel sizes. There - is a flag that can be set in a TrueType font file to force integer - pixel size scaling, even if you ask for fractional sizes with an - API function like TT_Set_Instance_CharSize(). Needless to say, - nearly all fonts have the flag set. So this is normal. - - Also, notice that when giving a charsize in fractional points, - this will be converted to integer pixels with the formula: - - pixel_size = char_size * y_resolution / 72 - - For example, using a resolution of 96 dpi, we would have: - - 9.5 pts => 12.666 pixels => 13 pixels - 10.0 pts => 13.333 pixels => 13 pixels, i.e. same size - 10.5 pts => 14 pixels => 14 pixels - 11.0 pts => 14.666 pixels => 15 pixels - 11.5 pts => 15.333 pixels => 15 pixels, i.e. same size - - If you want to control the exact size in pixels of your glyphs, - simply use a resolution of 72dpi, where char_size = pixel_size. - - --------------------------------------------------------------------- - -28. Hinting doesn't work at very small sizes. Why? - - This is normal. There are very good technical reasons why hinting - doesn't work well at sizes under 7 ppem, usually meaning the - appearance of ugly spikes and glyph distortions. This is why the - engine disables hinting by default at such low sizes. - - ---- end of FAQ --- diff --git a/Build/source/libs/freetype/docs/FTL.txt b/Build/source/libs/freetype/docs/FTL.txt deleted file mode 100644 index be596b35e4c..00000000000 --- a/Build/source/libs/freetype/docs/FTL.txt +++ /dev/null @@ -1,165 +0,0 @@ - The FreeType Project LICENSE - ---------------------------- - - 2000-Feb-08 - - Copyright 1996-2002 by - David Turner, Robert Wilhelm, and Werner Lemberg - - Minor editings 2001-Mar-01 - - - -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. - - -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-2002 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 - 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 - Robert Wilhelm - Werner Lemberg - - ---- end of FTL.txt --- diff --git a/Build/source/libs/freetype/docs/GPL.txt b/Build/source/libs/freetype/docs/GPL.txt deleted file mode 100644 index e8a612e5c3b..00000000000 --- a/Build/source/libs/freetype/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. - - - Copyright (C) 19yy - - 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. - - , 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/Build/source/libs/freetype/docs/apiref.txt b/Build/source/libs/freetype/docs/apiref.txt deleted file mode 100644 index b40e66d93d1..00000000000 --- a/Build/source/libs/freetype/docs/apiref.txt +++ /dev/null @@ -1,1918 +0,0 @@ - The FreeType Engine - - Core Library Reference - - - ----------------------------------- - - - Table of Contents: - - Introduction - - I. Types - - II. Functions - - III. Error codes - - - -------------------- - - -Introduction -============ - - This reference presents the types, functions, and error codes - defined in the high-level API header file `freetype.h'. Note that - all symbols defined in this file are prefixed by `TT_' to avoid - conflict of names with other packages at link time. - - The reference for extensions of the FreeType library can be found - in the file `apirefx.txt'. - - - --------------------------------------------------------------------- --------------------------------------------------------------------- - - - -I. Types -======== - - Here is the list of all types defined in the core FreeType API. - Their exact definition can be found in the file `freetype.h' which - should be included in every client application. - - - TT_Bool - - Can be either non-zero (true) or zero (false). - - .................................................................. - - TT_Fixed - - A signed 16.16 fixed float integer type used to specify - transform coefficients and other important data. - - .................................................................. - - TT_FWord - - A signed 16-bit type used to express a distance measured in the - font's original EM units. These are also called `FUnits' in the - TrueType specification. - - .................................................................. - - TT_UFWord - - An unsigned 16-bit type. - - .................................................................. - - TT_String - TT_Char - TT_Byte - - These types represent various 8-bit integer values (for strings, - signed, and unsigned values, respectively). - - .................................................................. - - TT_Short - TT_UShort - TT_Long - TT_ULong - - These four types are aliases for 16-bit integer (signed and - unsigned) and 32-bit integer types (signed and unsigned). - - .................................................................. - - TT_Int - - A signed type, either 16-bit or 32-bit, whichever is the most - efficient for the target platform. - - .................................................................. - - TT_F2Dot14 - - A 2.14 fixed float integer type used for unary vectors and some - scaling coefficients. Its layout is: - - s : 1 -- sign bit - m : 1 -- mantissa bit - f : 14 -- unsigned fractional value - - where `s:m' denotes a 2-bit signed integer value to which the - positive fractional part `f' should always be added. - - .................................................................. - - TT_F26Dot6 - - A 26.6 fixed float integer format used to define fractional - pixel coordinates. Here, 1 unit = 1/64 pixel. - - .................................................................. - - TT_Pos - - This type is used to store point coordinates, either in - fractional pixels (26.6 fixed floats) or in EM units (simple - integers). - - The interpretation of the value depends on the context. For - example, all distances relative to a scaled glyph are expressed - in fractional pixels (including bearings, advances, etc). - However, the same distances are measured in notional font units - when the glyph has been loaded unscaled. - - .................................................................. - - TT_UnitVector - - A simple structure used to store a unit vector. The vector's - coordinates are expressed in fixed float format (2.14). - - struct - { - TT_F2Dot14 x; - TT_F2Dot14 y; - } - - .................................................................. - - TT_Vector - - A simple structure used to store a single vector. Its - coordinates are expressed in fixed float format (26.6). - - struct - { - TT_F26Dot6 x; - TT_F26Dot6 y; - } - - .................................................................. - - TT_Matrix - - A simple structure used to store a single 2x2 matrix. Its - coefficients are expressed in 16.16 fixed float format. This - matrix is used to perform linear transformations on the glyph - outline, such as slanting or rotation. - - struct - { - TT_Fixed xx, xy; - TT_Fixed yx, yy; - }; - - The computation performed is: - - x' = xx * x + xy * y - y' = yx * x + yy * y - - .................................................................. - - TT_BBox - - A simple type to hold a glyph's bounding box. Used by the - TT_Get_Outline_BBox() API. - - struct - { - TT_Pos xMin, yMin; - TT_Pos xMax, yMax; - } - - .................................................................. - - TT_Outline - - Outlines are represented from now on as a class in itself, with - their own API. - - This structure is used to describe a vectorial glyph - representation to the rasterizer. It consists of several fields - as described below. Note however that: - - ***** THIS STRUCTURE MAY CHANGE IN THE FUTURE. We thus - ***** encourage you to use the outlines APIs described below to - ***** process your outlines i.e., create/copy/translate/ - ***** transform them, as well as rendering bitmaps and pixmaps. - - ***** THE STRUCTURE CHANGED BETWEEN 1.0 and 1.1! - - Now that you have been warned, the fields are: - - - An array of points: - - The `n_points' field gives the number of points in the - outline, while their coordinates are found in the single - vector array called `points'. The `flags' array holds a flag - for each point indicating its type. - - Currently, only the first bit (bit 0, the least significant - bit) of each byte is meaningful to the rasterizer. If set, it - indicates that the point is _on_ the curve. If not set, the - point is said to be _off_ the curve. It is then a Bezier - control point. - - For more information about point states, read the TrueType - specification or the scan-line documentation `raster.txt'. - - - An array of contours end-point indices: - - The `n_contours' field gives the number of contours, while the - `contours' array holds the indices of each contour's last - point. Note that the first contour always begins at point 0. - - Hence, `contours[0]' holds the index of the last point of the - first contour. The second contour starts at point number - `contours[0]+1', and ends at point number `contours[1]'. - - ** IMPORTANT NOTE: ** - ********************* - - The last table entry _must_ always give the total number of - points used to draw the contours, i.e.: - - contours[n_contours - 1] == n_points - - If this value is greater than `n_points' when calling the - scan-line converter, the component will immediately return - an error (TT_Err_Too_Many_Points). If the value is smaller, - only the points contained in the described contours will be - used in the conversion process. - - - An owner field: - - This flag should **NEVER** be changed by the user. It - indicates whether the pointer fields own the arrays they refer - to (when the flag is set), or if they simply alias them (flag - unset). - - - A high precision flag: - - If this boolean is set (i.e. not zero), the scan-line - converter uses a higher precision to compute segment and - Bezier coordinates (more precisely, it uses 1/1024 precision, - instead of the normal 1/64). This is of course slower but can - be important for glyphs rendered at small sizes. - - - A second pass flag: - - If this boolean is set, the scan-line converter performs a - second sweep on the bitmap/pixmap to detect vertical drop-out. - Only horizontal drop-outs are detected in the first pass. - This is slower, but important for glyphs rendered at small - sizes. - - - A dropout mode: - - Used to specify which method applies for drop-out control - (also called `continuity testing' in other environments). The - mode value must be one of the values defined by the TrueType - specification. - - The more recent modes 4 and 5 introduced in the newest - TrueType specification (Version 1.66) are fully supported. - - An invalid value (i.e., not 0, 1, 2, 4, or 5) is taken as no - dropout control (equivalent to mode 0). - - NOTE 1: - - The outline returned by TT_Get_Glyph_Outline() only alias the - data that is part of a glyph container (see below). However, - it is possible to create and process your own outlines with - the new API functions TT_New_Outline(), TT_Done_Outline(), - TT_Copy_Outline(), TT_Translate_Outline(), etc. - - TT_Done_Outline() will only discard an outline's array if it - owns them. - - NOTE 2: - - The outlines created by TT_New_Outline() are _not_ released by - the engine while executing TT_Done_FreeType(), they must be - explicitly discarded by the user who has created them! - - NOTE 3: - - The glyph loader sets the fields `high_precision', - `dropout_mode', and `second_pass' automatically. - - NOTE 4: - - This structure was called TT_Glyph_Outline in beta versions of - FreeType. - - .................................................................. - - TT_Glyph_Metrics - - A structure used to return simple glyph metrics, applicable for - either horizontal or vertical layout. The values are expressed - in fractional pixels (26.6 format) if scaling was active, - otherwise in FUnits. - - The main idea was to accomodate vertical text layouts by - eradicating the two explicit `leftSideBearing' and - `advanceWidth' names. - - The interpretation of the fields varies with the text layout: - - bearingX: Also known as the `left side bearing'. In - horizontal metrics, this value gives the horizontal - distance from the pen position to the glyph's bbox - xmin, otherwise it specifies the vertical distance. - - bearingY: Also known as the `top side bearing', this is the - vertical distance from the baseline to the glyph's - bbox ymax in horizontal metrics, otherwise the - horizontal distance. - - struct - { - TT_BBox bbox; /* the glyph's bbox */ - - TT_Pos bearingX; /* left-side bearing */ - TT_Pos bearingY; /* top-side bearing */ - - TT_Pos advance; /* advance width or height */ - }; - - ** IMPORTANT NOTE ** - - Because of the conventions inherent to the TrueType engine, - the outlines generated at glyph-load time are all placed so - that the pen is at position (0,0). This means that it is not - necessary to increase the pen position by `bearingX' and/or - `bearingY' before writing a glyph. Text output can be - performed with simple lines such as: - - for (glyphs in text) - { - TT_Load_Glyph( ... ); - TT_Get_Glyph_Outline( glyph, &outline ); - TT_Translate_Outline( outline, - cur_pos_x * 64, cur_pos_y * 64 ); - - TT_Get_Outline_Bitmap( outline, bitmap ); - /* blit bitmap to surface */ - - cur_pos_x += (metrics.advance + 32) / 64 - } - - For an example see the file `test/ftstring.c'. - - NOTE 2: - - This structure has changed from the beta version of FreeType. - - NOTE 3: - - FreeType only implements TT_Get_Glyph_Metrics() to return - horizontal metrics. For extracting vertical metrics you - should use TT_Get_Glyph_Big_Metrics(). - - .................................................................. - - TT_Big_Glyph_Metrics - - This structure is used to return the metrics of a glyph for both - horizontal and vertical layout. - - The `linearXXX' fields represent unhinted scaled metrics values. - They can be useful for applications which need to compute device - independent placement of glyphs. Applying these metrics to - hinted glyphs will in most cases ruin the grid fitting performed - by the bytecode interpreter. - - struct - { - TT_BBox bbox; /* the glyph's bounding box */ - - TT_Pos horiBearingX; /* horizontal left-side bearing */ - TT_Pos horiBearingY; /* horizontal top-side bearing */ - - TT_Pos vertBearingX; /* vertical left-side bearing */ - TT_Pos vertBearingY; /* vertical top-side bearing */ - - TT_Pos horiAdvance; /* horizontal advance */ - TT_Pos vertAdvance; /* vertical advance */ - - TT_Pos linearHoriBearingX; /* lin. scaled hor. lsb. */ - TT_Pos linearHoriAdvance; /* lin. scaled hor. adv. */ - - TT_Pos linearVertBearingY; /* lin. scaled vert. tsb. */ - TT_Pos linearVertAdvance; /* lin. scaled vert. adv. */ - } - - .................................................................. - - TT_Instance_Metrics - - A structure used to return instance (point size) metrics. - - struct - { - int pointSize; - /* point size in points (1 point = 1/72 inch) */ - - TT_UShort x_ppem; /* horizontal pixels per EM square */ - TT_UShort y_ppem; /* vertical pixels per EM square */ - - TT_Fixed x_scale; /* 16.16 scale for EM -> frac pixels */ - TT_Fixed y_scale; /* 16.16 scale for EM -> frac pixels */ - - TT_UShort x_resolution; /* device hor. res. in dpi */ - TT_UShort y_resolution; /* device vert. res. in dpi */ - }; - - The fields `x_scale' and `y_scale' can be used by clients to - convert notional units (in funits) in fractional pixels (in 26.6 - fixed float format), e.g.: - - TT_FUnit em_distance; - TT_F26Dot6 frac_distance; - TT_Fixed x_scale; - - frac_distance = (em_distance * x_scale) / 0x10000; - - .................................................................. - - TT_Raster_Map - - This structure is used to specify a target bitmap (or pixmap) - for the scan-line converter. It _must_ be set up by the client - application. - - - The `rows' field contains the total number of rows in the - bitmap. - - - The `width' field gives the number of pixels per row (a bit or - a byte, depending on the map's nature). - - - The `cols' field gives the number of columns, i.e. bytes, - taken by each row in the map buffer. - - ** IMPORTANT: ** The `cols' field must be a multiple of 4 for - pixmaps! - - Usually, its value should be `(width+7)/8' for bitmaps, and - `(width+3) & -4' for pixmaps. - - - The `flow' field gives the map's vertical orientation. - - If the first bytes of the bitmap buffer pertain to its upper - row, the flow is said to be going `down' and the field should - take the value `TT_Flow_Down', otherwise the flow is going - `up', and the value is `TT_Flow_Up'. - - To cite an example, the PC video modes use a `down' flow, - where the first VRAM byte corresponds to the upper and - leftmost corner of the screen. - - - The `bitmap' field is a typeless pointer to the map's buffer. - - - The `size' field contains the buffer's size in bytes. It is - usually computed as follows: - - size = rows * cols; - - NOTE 1: - - For bitmaps, the leftmost-pixel is related to the highest - (i.e. most significant) bit of its byte. There is currently - no support for the opposite convention found in some systems. - - (It can be easily added if you really need it, just ask the - development team.) - - struct - { - int rows; /* number of rows */ - int cols; /* number of columns (bytes) per row */ - int width; /* number of pixels per line */ - int flow; /* bitmap orientation */ - - void* bitmap; /* bit/pixmap buffer */ - long size; /* bit/pixmap size in bytes */ - } TT_Raster_Map; - - NOTE 2: - - TT_Get_Outline_Bitmap() resp. TT_Get_Glyph_Bitmap() are used - to render bitmaps into a TT_Raster_Map. The convention used - is 0 for the background, and 1 for the foreground. The glyph - is simply `or-ed' to the bitmap buffer. - - NOTE 3: - - TT_Get_Outline_Pixmap() and TT_Get_Glyph_Pixmap() are used to - render pixmaps into a TT_Raster_Map. Note that pixels are - drawn in spans of 4 successive bytes, only if needed. This - means that you must ALWAYS pass a clean pixmap buffer to these - functions. Otherwise, garbage could accumulate! - - .................................................................. - - TT_Header - - This structure is used to hold the font's header. Its layout - and meaning are defined in the TrueType specification, in the - `head' section. - - .................................................................. - - TT_Horizontal_Header - - This structure is used to hold the font's horizontal header. - Its layout and meaning are defined in the TrueType - specification, in the `hhead' section. - - .................................................................. - - TT_OS2 - - This structure is used to hold the font's OS/2 table. Its - layout and meaning are defined in the TrueType specification, in - the `OS/2' section. - - Note that since FreeType 1.3, we support fonts without an OS/2 - table (mainly old but popular Mac fonts). In this case, the - table's `version' field will be set to 0xFFFF by the loader, and - all other fields will be zeroed. - - .................................................................. - - TT_Postscript - - This structure is used to hold the font's PostScript table. Its - layout and meaning are defined in the TrueType specification, in - the `post' section. - - .................................................................. - - TT_Hdmx - - This structure is used to hold the font's horizontal device - metrics. Its layout and meaning are defined in the in the - `hdmx' section of the TrueType specification. - - .................................................................. - - TT_Face_Properties - - This structure is used to return an opened face's properties. - These are: - - - The total number of glyphs in the font, given by the field - `num_Glyphs'. - - - The maximum number of points for the font's glyphs. This - value is used to allocate the points tables of a glyph - container's outline. It can be fairly large (like 256 points - for Roman fonts). - - - The maximum number of contours for the font's glyphs. This - value is used to allocate the contours tables of a glyph - container's outline. It can be fairly large (over 16, even in - Roman fonts). - - - The number of character mappings and name records within the - font. These values can still be retrieved through the APIs - TT_Get_CharMapCount() and TT_Get_Num_Names(), though these - have been _seriously_ deprecated. - - - The number of associated faces. This number is always 1 for a - normal TrueType font file. However, when the face object was - opened from a TrueType collection, it contains the total - number of embedded fonts. - - - Pointers to the face's header and horizontal header, the OS/2 - and PostScript tables, and the horizontal device metrics. - - struct - { - TT_UShort num_Glyphs; /* number of glyphs in face */ - TT_UShort max_Points; /* max. numb. of points in a glyph */ - TT_Short max_Contours; - /* maximum number of contours in a glyph */ - - TT_ULong num_Faces; - /* 1 for normal TrueType files resp. */ - /* the number of embedded faces for TT */ - /* collections */ - - TT_Header* header; /* TrueType header table */ - TT_Horizontal_Header* horizontal; - /* TrueType horizontal header */ - TT_Vertical_Header* vertical; - /* TrueType vertical header */ - TT_OS2* os2; /* TrueType OS/2 table */ - TT_Postscript* postscript; - /* TrueType PostScript table */ - TT_Hdmx* hdmx; /* TrueType hdmx table */ - - } TT_Face_Properties; - - - Note that the `vertical' field is set to NULL if the font file - does not contain any vertical metrics. - - - Note also that since version 1.3 we support font files without - an OS/2 table. See the definition of TT_OS2 for more details. - - .................................................................. - - TT_Stream - - This handle type defines a stream used to access a font file's - data. A client application should never deal with streams - directly, but some engine extensions need it to support more - advanced features like sbit support. - - .................................................................. - - TT_Face - - This type defines a handle used to reference a face object. The - objects are never accessed directly by a client application; it - can only obtain handles to new objects, and use them to query - specific information or processes. - - See also: - - TT_Open_Face(), TT_Open_Collection(), TT_Close_Face(), - TT_Get_Face_Properties(), etc. - - .................................................................. - - TT_Instance - - This type defines a handle used to reference an instance object - (also called a `pointsize' in other type engines). An instance - is always created from a valid face object, and is destroyed - with it by the engine. - - See also: - - TT_New_Instance(), TT_Done_Instance(), - TT_Set_Instance_CharSizes(), TT_Set_Instance_Resolutions(), - etc. - - .................................................................. - - TT_Glyph - - This type defines a handle used to reference a glyph container - object. A glyph container is an object owning tables sized to - the font's maximum profile to hold any glyph of a given font - file. - - It contains an outline, some metrics, as well as some data - related to the way it should be processed by the scan-line - converter. - - Note that a glyph container doesn't contain any bitmap or - pixmap! - - See also: - - TT_New_Glyph(), TT_Done_Glyph(), TT_Load_Glyph(), - TT_Get_Glyph_Metrics(), TT_Get_Glyph_Big_Metrics(), - TT_Get_Glyph_Outline(), TT_Get_Glyph_Bitmap(), - TT_Get_Glyph_Pixmap() - - .................................................................. - - TT_CharMap - - This type defines a handle used to reference a charMap object. - A charMap is an object owning the tables needed to perform the - mapping from characters code to glyphs numbers. A charMap is - always created from a valid face object, and is destroyed with - it by the engine. - - See also: - - TT_Get_CharMap(), TT_Char_Index(). - - .................................................................. - - TT_Error - - This is the type of all error codes returned by the API. Nearly - all functions return an error code, set to 0 in case of success. - - A list of all error codes is given in section III. - - .................................................................. - - TT_Engine - - For the sake of re-entrancy it is possible to distinguish - `engines' to separate several running instances of the library. - For example, it could be used as a DLL shared by several client - applications. - - Each client program must begin by creating its own engine, - through a call to TT_Init_FreeType(). The engine must also be - passed as the first argument of the following functions: - - TT_Open_Face() - TT_Open_Collection() - TT_Set_Raster_Gray_Palette() - TT_Get_Outline_Bitmap() - TT_Get_Outline_Pixmap() - TT_Done_FreeType() - - Note that any FreeType object pertains to one single engine - (there is no sharing). Closing an engine with - TT_Done_FreeType() will delete all the objects that have been - allocated within its instance. - - - --------------------------------------------------------------------- --------------------------------------------------------------------- - - - -II. Functions -============= - - Here is a list of the core library's API. - - NOTE: - - A function's default result is an error code of type TT_Error; a - list of error codes is given in section III below. - - Some functions return other types, in which case the result type - is documented with its description. - - .................................................................. - - TT_FreeType_Version( int* major, int* minor ); - - Queries the major and minor version of the library. - - .................................................................. - - TT_Init_FreeType( TT_Engine* engine ); - - Creates and initializes a new engine. Returns a handle to the - engine in the `*engine' variable. - - This call must be performed before any other function of - FreeType is invoked. The engine handle must be passed to the - following functions: - - TT_Open_Face() - TT_Open_Collection() - TT_Set_Raster_Gray_Palette() - TT_Done_FreeType() - - .................................................................. - - TT_Done_FreeType( TT_Engine engine ); - - Finalizes and destroys an engine. This call destroys _all_ - objects that were previously created and used with the engine. - - .................................................................. - - TT_Open_Face( TT_Engine engine, - TT_Text* fontPathName, - TT_Face* face ); - - This call opens a font file, located by `fontPathName', and - returns a handle to the newly corresponding face object in the - handle `*face'. The object is part of the `engine' instance. - - Example: - - error = TT_Open_Face( engine, "c:\ttf\wingding.ttf", &face ); - if ( error ) - fprintf( stderr, "Could not open face.\n" ); - - NOTE 1: - - The font file can be a TrueType collection; in this case, the - engine will always open the first embedded font found in the - file. - - NOTE 2: - - `TT_Text' is usually defined as `char' by a typedef - declaration. It may be a 16-bit quantity (or even wider) for - some operating systems; see ttconfig.h for details. - - .................................................................. - - TT_Open_Collection( TT_Engine engine, - TT_Text* collectionPathName, - TT_ULong fontIndex, - TT_Face* face ); - - This call opens one of the fonts found in a TrueType collection. - The font is selected through the `fontIndex' argument. The - first font has index 0. - - Note that to know a collection's number of embedded fonts, - you will have to: - - 1 - open the first collection font with TT_Open_Face(). - - 2 - query the face's properties through - TT_Get_Face_Properties(). - - The number of embedded faces is then `properties->num_Faces'. - - Example: - - TT_Face face; - TT_Face_Properties properties; - - - /* Open first embedded collection font */ - error = TT_Open_Face( engine, "c:\ttf\sample.ttc", &face ); - if ( error ) { ...error... } - - /* Get face properties */ - error = TT_Get_Face_Properties( face, &properties ); - if ( error ) { ...error... } - - printf( "There are %d fonts in this collection.\n", - properties->num_Faces ); - - TT_Close_Face( face ); - - /* Open second font in collection */ - error = TT_Open_Collection( engine, "c:\ttf\sample.ttc", 1, - &face ); - if ( error ) { ...error... } - - NOTE 1: - - If the file isn't a collection, `fontIndex' must be zero. - Otherwise, an error will be returned. - - NOTE 2: - - `TT_Text' is usually defined as `char' by a typedef - declaration. It may be a 16-bit quantity (or even wider) for - some operating systems; see ttconfig.h for details. - - .................................................................. - - TT_Set_Raster_Gray_Palette( TT_Engine engine, - TT_Byte* palette ); - - Sets the gray-level palette for an engine. The palette is used - to create pixmaps through the TT_Get_Glyph_Pixmap() function. - It is an array of five bytes, following the convention: - - palette[0] = background (white) - palette[1] = light - palette[2] = medium - palette[3] = dark - palette[4] = foreground (black) - - .................................................................. - - TT_Get_Face_Properties( TT_Face face, - TT_Face_Properties* properties ); - - Returns the `face' object's `*properties'. This structure - contains various data like the total number of glyphs and - pointers to some mandatory TrueType tables. - - See the definition of TT_Face_Properties in section I for more - details. - - Note that since version 1.3, FreeType supports fonts with no - OS/2 table, like many old Mac fonts. See the definition of - TT_OS2 for more details. - - .................................................................. - - TT_Get_Face_Metrics( TT_Face face, - TT_UShort firstGlyph, - TT_UShort lastGlyph, - TT_Short* leftBearings, - TT_UShort* widths, - TT_Short* topBearings, - TT_UShort* heights ); - - This function returns the original horizontal AND vertical - metrics for a given face `face' and a given glyph range specified - by `firstGlyph' and `lastGlyph' as found in the `hmtx' and `vmtx' - tables. These are the glyphs' left-side bearings (in - `leftBearings') and horizontal advance widths (in `widths'), as - well as top-side bearings (in `topBearings') and vertical advance - heights (in `heights'). If you aren't interested in any of the - metrics fields, simply set its value to NULL. - - All are expressed in font units, a.k.a. EM units. - - The metrics arrays must be allocated by the client program. - - IMPORTANT NOTE: - - As vertical metrics are optional in a TrueType font, this - function will return an error (TT_Err_No_Vertical_Data) if this - function is called on such a face with non-NULL `topBearings' - or `heights' arguments. - - If a font has no vertical data, the `vertical' field in its - properties structure is set to NULL. - - .................................................................. - - TT_Set_Face_Pointer( TT_Face face, - void* data ); - - For convenience purposes, each face object has a `generic' - pointer which value is unused by the engine, but that can be set - freely by client applications through this function. - - Do what you want with it; it is here to give you a chance to - link a face object to your own structures and data. - - .................................................................. - - void* TT_Get_Face_Pointer( TT_Face face ); - ^^^^ - Returns a face object's generic pointer. See - TT_Set_Face_Pointer() above. - - .................................................................. - - TT_Flush_Face( TT_Face face ); - - Closes a given face object's file handler or descriptor. This - is useful to save system resources if your application opens - dozens or even hundreds of fonts. The face object is still - valid, and its file will be re-opened automatically on the next - request which requires disk access. - - .................................................................. - - TT_Close_Face( TT_Face face ); - - Closes a given `face' object. This function will also destroy - all the face's child instances. The face's glyphs will not be - destroyed, however. - - .................................................................. - - TT_New_Instance( TT_Face face, - TT_Instance* instance ); - - Creates a new instance object related to the `face' object. A - handle to the newly created instance is returned in `instance'. - - The default instance resolution is 96dpi in both vertical and - horizontal direction; the default point size is 10pt. - - .................................................................. - - TT_Set_Instance_Resolutions( TT_Instance instance, - TT_UShort xResolution, - TT_UShort yResolution ); - - Sets the target device resolutions for a given instance. The - values are expressed in dots per inch (dpi). A value of 96dpi - is typical for an SVGA display, 72dpi for a Macintosh one, and - 300 to 6000dpi for printers. Default value (before a call to - this function) is 96dpi. - - .................................................................. - - TT_Set_Instance_CharSize( TT_Instance instance, - TT_F26Dot6 charsize ); - - Sets the point size for a given instance. The size is expressed - in fractional (26.6) `points', where 1 point = 1/72 inch. The - default value is 10pt (before a call to this function). - - For example, to use a char size of 12pt, call the function with: - - TT_Set_Instance_CharSize( instance, 12 * 64 ); - - Fractional point sizes are thus possible. - - Call this function after TT_Set_Instance_Resolutions(). - - .................................................................. - - TT_Set_Instance_CharSizes( TT_Instance instance, - TT_F26Dot6 charWidth, - TT_F26Dot6 charHeight ); - - Sets an instance's glyph width and height independently in - fractional (26.6) points. Similar to Set_Instance_CharSize() - with the exception that the horizontal and vertical glyph - dimensions can differ. - - Call this function after TT_Set_Instance_Resolutions(). - - .................................................................. - - TT_Set_Instance_PixelSizes( TT_Instance instance, - TT_UShort pixelWidth, - TT_UShort pixelHeight, - TT_F26Dot6 pointSize ); - - This function can be used to specify directly the pixel sizes - and point size of a given instance, independently of device - resolutions. This is not the recommended way to do it, but can - be used for debugging or simplicity in some special cases. - - Note that you _must_ provide a point size! - - Call this function after TT_Set_Instance_Resolutions(). - - .................................................................. - - TT_Set_Instance_Transform_Flags( TT_Instance instance, - TT_Bool rotated, - TT_Bool stretched ); - - Sets the transform flags for a given instance. These flags are - passed to the interpreter each time a glyph is loaded within the - instance. Their role is to notify the glyph hinting mechanism - that the resulting glyph will be transformed in a special way. - Setting one of these flags to true usually disables hinting, - though this behaviour varies with each font file. - - NOTE: - - The glyph loader doesn't perform the rotation or the - stretching automatically; this must be done explicitly by the - client application. Use the function TT_Transform_Outline() - for that purpose. - - .................................................................. - - TT_Get_Instance_Metrics( TT_Instance instance, - TT_Instance_Metrics* imetrics ); - - This call returns a given instance's current metrics. They are - returned in the `imetrics' structure, which contains, among - other things, the current point size, ppem, and device - resolution (horizontal and vertical). - - .................................................................. - - TT_Set_Instance_Pointer( TT_Instance instance, - void* data ); - - For convenience purposes, each instance object has a `generic' - pointer which value is unused by the engine, but that can be set - freely by client applications through this function. - - Do what you want with it, it is here to give you a chance to - link a face object to your own structures and data. - - .................................................................. - - void* TT_Get_Instance_Pointer( TT_Instance instance ) - ^^^^ - - This function returns an instance object's generic pointer set - through TT_Set_Instance_Pointer(). - - .................................................................. - - TT_Done_Instance( TT_Instance instance ); - - Closes a given instance object, destroying its associated data. - Note that this is performed automatically when a face is closed - on all its child instances. However, explicit deallocation can - help in freeing the memory used by the application earlier. - - .................................................................. - - TT_New_Glyph( TT_Face face, - TT_Glyph* glyph ); - - Creates a new glyph container for the glyphs of the font - described by the `face' handle. A pointer to the container is - returned in `glyph'. The face is said to be the glyph's parent. - - NOTE: - - A glyph is destroyed with its parent face object. However, it - is possible to delete it explicitly with TT_Done_Glyph(). - - .................................................................. - - TT_Done_Glyph( TT_Glyph glyph ); - - Discards a glyph container. This is also done automatically for - all glyphs when closing its parent face object. - - .................................................................. - - TT_Load_Glyph( TT_Instance instance, - TT_Glyph glyph, - TT_UShort glyphIndex, - TT_UShort loadFlags ); - - Loads and processes (scales and/or hints) a glyph at a given - `instance' into the `glyph' container. - - Note that `glyph' and `instance' must have the _same_ parent - face object, otherwise an error message will be returned. - - `glyph_index' is the glyph's index as found in the TrueType - font. It is _not_ a character code (see the charmap functions - below). - - `load_flags' is an integer that specifies which operations are - to be performed on the loaded glyph. The following values/bits - are used: - - TTLOAD_SCALE_GLYPH - - Indicates that the glyph must be scaled to the instance's - resolution. The pixel coordinates returned in the glyph - outline structure (see below) are then expressed in - fractional pixels represented in the 26.6 fixed point - floating format (F26Dot6). - - If scaling is disabled, the coordinates returned in the - outline structure are integer font units, also called - `FUnits' by the TrueType specification. - - TTLOAD_HINT_GLYPH - - This flag is only valid when scaling is on. It informs the - loader that the glyph must be hinted (i.e., grid-fitted for - optimal display). Note that hinting will occur only if the - instance's transformations and metrics allow it (for - example, most font programs disable hinting automatically in - case of rotation or stretching). - - When loading a hinted glyph, the metrics computed by the - loader, including the bounding box, will also be - grid-fitted. - - TTLOAD_PEDANTIC - - Starting with FreeType version 1.3, the bytecode interpreter - can ignore even more errors (like out-of-bound array - accesses). Using this flag it is possible to force TrueType - compliant interpretation of font programs. - - TTLOAD_IGNORE_GLOBAL_ADVANCE_WIDTH - - A flag to handle monospaced fonts with an incorrect global - advance width in the `hhea' table. If set, the actual - advance width value of a particular glyph will be used; if - unset, the advance widths for all glyphs are forced to be - equal to the global value. - - - NOTE: - - You can also use the constant TTLOAD_DEFAULT, which is simply - the union of TTLOAD_SCALE_GLYPH and TTLOAD_HINT_GLYPH for most - `typical' loads. - - .................................................................. - - TT_Get_Glyph_Outline( TT_Glyph glyph, - TT_Outline* outline ); - - This call returns the glyph's `outline'. This is a simple - structure which contains pointers to the data used to describe - an outline to the rasterizer. See the definition of - TT_Outline in section I. - - .................................................................. - - TT_Get_Glyph_Metrics( TT_Glyph glyph, - TT_Glyph_Metrics* metrics ); - - Extracts the glyph's metrics and copies them to the `*metrics' - structure. Its format is described in section I. - - If the glyph has been loaded without scaling, the values are - expressed in FUnits (integers relative to the original font grid - called the EM Square). - - If the glyph has been loaded _with_ scaling, which is the - default, the values are expressed in fractional pixels in 26.6 - fixed point float format (F26Dot6; 1 unit = 1/64th of a pixel). - - If the glyph has been loaded with hinting, the metrics are also - grid-fitted, including the bounding box. To get the un-fitted - bbox, call TT_Get_Outline_BBox() on the glyph's outline. - - NOTE: - - BBox fitting occurs according to the following scheme: - - #define FLOOR( x ) ( (x) & -64 ) - #define CEILING( x ) ( ( (x) + 63 ) & -64 ) - - xMin = FLOOR( xMin ); - yMin = FLOOR( yMin ); - xMax = CEILING( xMax ); - yMax = CEILING( yMax ); - - This means that the outline's width and height in pixels can be - computed simply from the fitted bbox, namely - - (xMax-xMin)/64 and (yMax-yMin)/64 - - .................................................................. - - TT_Get_Glyph_Big_Metrics( TT_Glyph glyph, - TT_Big_Glyph_Metrics* metrics ); - - Extracts the glyph's big metrics and copies them to the - `*metrics' structure. Its format is described in section I. - - If the glyph has been loaded without scaling, the values are - expressed in FUnits (integers relative to the original font grid - called the EM Square). - - If the glyph has been loaded _with_ scaling, which is the - default, the values are expressed in fractional pixels in 26.6 - fixed point float format (F26Dot6; 1 unit = 1/64th of a pixel). - - If the glyph has been loaded with hinting, the metrics are also - grid-fitted, including the bounding box. To get the un-fitted - bbox, just call TT_Get_Outline_BBox() on the glyph's outline. - - NOTE 1: - - BBox fitting occurs according to the following scheme: - - #define FLOOR( x ) ( (x) & -64 ) - #define CEILING( x ) ( ( (x) + 63 ) & -64 ) - - xMin = FLOOR( xMin ); - yMin = FLOOR( yMin ); - xMax = CEILING( xMax ); - yMax = CEILING( yMax ); - - This means that the outline's width and height in pixels can be - computed simply from the fitted bounding box, namely - - (xMax-xMin)/64 and (yMax-yMin)/64 - - NOTE 2: - - The vertBearingX value in `metrics' cannot be extracted for - outline glyphs -- it is defined for embedded bitmaps only. - Instead, it is set to (xMin-xMax)/2; this will center the - bounding box on the vertical `baseline'. - - .................................................................. - - TT_Get_Glyph_Bitmap( TT_Glyph glyph, - TT_Raster_Map* bitmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ); - - This call converts the vectorial glyph representation contained - in the object handled by `glyph' into a bitmap. - - The target bitmap is described by the `bitmap' pointer. - Clipping will be done if necessary. You can also specify an - offset to be applied before the scan-line conversion; `xOffset' - and `yOffset' must be expressed in fractional pixels (where - 1 unit = 1/64th pixel). - - NOTE 1: - - Choosing non integer pixel offsets, i.e., values of `xOffset' - and `yOffset' that are not multiples of 64, will ruin the - hinting performed by the interpreter, and result in bad - rendering at small sizes. - - NOTE 2: - - The glyph's point coordinates must be scaled before calling - this function. Never call this function with a glyph that - were loaded with no scaling! - - NOTE 3: - - FreeType always shifts the glyph horizontally so that the left - side bearing is equal to the left side of the bounding box. - - .................................................................. - - TT_Get_Glyph_Pixmap( TT_Glyph glyph, - TT_Raster_Map* pixmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ); - - This call converts the vectorial glyph representation contained - in the object handled by `glyph' into a pixmap (i.e., an - 8-bit/pixel map). The result is an anti-aliased version of the - glyph (`anti-aliasing' is also known as `font-smoothing'). - - The target pixmap is described by the `pixmap' pointer. Note - that its width _must_ be a multiple of 4. For the definition - and description of a pixmap see Section I. - - As with TT_Get_Glyph_Bitmap(), you can specify offsets to be - applied before the rendering (`xOffset' and `yOffset' must be - expressed in fractional pixel coordinates). - - NOTE 1: - - You don't need to supply a temporary bitmap for the - anti-aliaser. The rasterizer uses its own scheme to optimize - memory usage. - - NOTE 2: - - The glyph's point coordinates must be scaled before calling - this function. This means that you should never call it with - a glyph which has been loaded without scaling! - - NOTE 3: - - The pixmap passed to this function should always be EMPTY - (i.e., filled with zero bytes) before the call. If not, - garbage will accumulate! - - NOTE 4: - - FreeType always shifts the glyph horizontally so that the left - side bearing is equal to the left side of the bounding box. - - .................................................................. - - TT_New_Outline( TT_UShort numPoints, - TT_UShort numContours, - TT_Outline* outline ); - - Creates a new outline object. This function creates the arrays - necessary to hold `numPoints' points and `numContours' contours, - and set `outline's pointers to them. - - The new outline owns the arrays, and they will be destroyed with - it through TT_Done_Outline(). - - NOTE 1: - - Outlines created with this function are called `user' - outlines, in contrast with the outlines returned by - TT_Get_Glyph_Outline(), which fields refer to the data - contained within a glyph object (i.e., these outlines do not - own the arrays they refer to). - - NOTE 2: - - User outlines aren't tracked by the engine, which means they - are not destroyed by a TT_Done_FreeType(). You have to - explicitly discard them through TT_Done_Outline() to avoid - memory leaks. - - .................................................................. - - TT_Done_Outline( TT_Outline* outline ); - - Deletes an outline's data. Note that you need not destroy the - outlines returned by TT_Get_Glyph_Outline(), only those created - by TT_New_Outline(). - - .................................................................. - - TT_Copy_Outline( TT_Outline* source, - TT_Outline* target ); - - Copies the content of the `source' outline into the content of - the `target' outline. The two outlines must have been created - with the same dimensions (num_points and num_contours), - otherwise this function will return an error code. - - .................................................................. - - void TT_Transform_Outline( TT_Glyph_Outline* outline, - ^^^^ TT_Matrix* matrix ); - - Applies a simple transformation matrix on a given outline. This - will multiply each point coordinate vector by a 2x2 matrix, - which coefficients are given in the 16.16 fixed float format. - - Rotation can be performed with this function. - - NOTE: - - This function takes an outline, and not a glyph handle, as a - parameter. This `feature' lets you apply transformations on - your own copies of glyphs. - - .................................................................. - - void TT_Translate_Outline( TT_Glyph_Outline* outline, - ^^^^ TT_Pos xOffset, - TT_Pos yOffset ); - - Applies a simple translation on a given outline. - - NOTE: - - This function takes an outline, and not a glyph handle, as a - parameter. This `feature' lets you apply translation to your - own copies of glyphs. - - .................................................................. - - TT_Get_Outline_Bitmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* bitmap ); - - Renders an outline into a bitmap. The latter must be setup by - the user before the call (i.e., it is not created by this - function, instead it must be provided by the user). - - .................................................................. - - TT_Get_Outline_Pixmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* pixmap ); - - Renders an outline into a pixmap. The latter must be setup by - the user before the call (i.e., it is not created by this - function, instead it must be provided by the user). - - NOTE: - - The pixmap passed to this function must always be EMPTY (i.e., - filled with zero bytes) before the call. Otherwise, garbage may - accumulate! - - .................................................................. - - TT_Get_Outline_BBox( TT_Outline* outline, - TT_BBox* bbox ); - - Returns an outline's bounding box in the `bbox' structure. Note - that the returned coordinates are not grid fitted! - - NOTE: - - The current release of FreeType (1.x) does compute the bounding - box for the outline's control points, and not the `exact' box - based on Bezier arcs extrema. Hence, the bbox returned by this - function may be slightly larger than necessary if the glyph - doesn't have control points at its extrema, or if it has been - rotated. - - .................................................................. - - void TT_Transform_Vector( TT_Pos* x, - ^^^^ TT_Pos* y, - TT_Matrix* matrix ); - - Applies a 2x2 matrix to a vector. - - .................................................................. - - int TT_Get_CharMapCount( TT_Face face ); - ^^^ - - Gets the number of character mappings present in the TrueType - file described by the `face' handle. Returns -1 if the handle - is invalid. - - IMPORTANT NOTE: ******** - - This function is deprecated. Get the number of character maps - from the `num_CharMaps' field in the structure returned by - TT_Get_Face_Property() instead. - - .................................................................. - - TT_Get_CharMap_ID( TT_Face face, - TT_UShort charmapIndex, - TT_UShort* platformID, - TT_UShort* encodingID ); - - Returns the platform ID and platform-specific encoding ID for - the charmap numbered `charmapIndex' in the `face' object. The - total number of character mapping tables can be found in the - `num_CharMaps' field in the structure returned by - TT_Get_Face_Property(). - - .................................................................. - - TT_Get_CharMap( TT_Face face, - TT_UShort charmapIndex, - TT_CharMap* charMap ); - - Returns a handle for the character map number `charmapIndex' of - `face'. The handle is placed in `*charMap' and can be used - later for fast lookup with the TT_Char_Index() API function. - - Charmap objects are automatically destroyed when their face - object is destroyed. - - .................................................................. - - TT_UShort TT_Char_Index( TT_CharMap charMap, - ^^^^^^^^^ TT_ULong charCode ); - - Applies a charMap to translate `charCode' into a glyph index - that can be used to load and address a glyph in the TrueType - file. In case of error, the undefined glyph (index 0) is - returned. - - Note: Since FT 1.5, the `charCode' is an unsigned long instead - of an unsigned short. - - The charmap handle can be obtained with TT_Get_CharMap(). - - .................................................................. - - int TT_Get_Name_Count( TT_Face face ); - ^^^ - - Gets the number of name strings found in a face's name table. - This function will return -1 if the face handle is invalid. - - IMPORTANT NOTE: ******** - - This function is deprecated. Get the number of name strings - from the `num_Names' field in the structure returned by - TT_Get_Face_Property() instead. - - .................................................................. - - TT_Get_Name_ID( TT_Face face, - TT_UShort nameIndex, - TT_UShort* platformID, - TT_UShort* encodingID, - TT_UShort* languageID, - TT_UShort* nameID ); - - Returns the ID of a given name string, indexed by the number - `nameIndex' in a given face. The name index ranges from 0 to - `num_names' minus one; this value can be found in the structure - returned by TT_Get_Face_Property(). - - Each string has a `platformID', `encodingID', `languageID' and - `nameID', as defined by the TrueType specification. - - The platformID is typically in the range [0,3]. Some font files - have unusual name table entries; these can be detected from - their platformID which is larger than 3. - - .................................................................. - - TT_Get_Name_String( TT_Face face, - TT_UShort nameIndex, - TT_String** stringPtr, - TT_UShort* length ); - - Returns a name string's address and length. Note that an - invalid name table entry always returns NULL for `stringPtr' and - zero for `length'. - - NOTE 1: - - The string belongs to the face object and should not be - written to or freed by the client application. - - NOTE 2: - - The library does not care about endianess here! If you are - using a little-endian machine and you have to interpret the - string bytes as 16-bit-wide characters (e.g. Unicode encoded), - you must byte-swap the data because 16-bit data is stored as - big-endian in TrueType fonts, and FreeType reads in the whole - name table bytewise. - - .................................................................. - - TT_Get_Font_Data( TT_face face, - TT_Long tag, - TT_Long offset, - void* buffer, - TT_Long* length ); - - Gets font or table data. Similar to the GetFontData() API of - the Windows world. You can use the macro MAKE_TT_TAG() to - generate TrueType table tags from character descriptions, like - - MAKE_TT_TAG( 'e', 'b', 'l', 'c' ) - - Use the value 0 instead for `tag' if you want to access the - whole font file. `offset' specifies the starting offset in the - table (or the offset in the file if tag == 0), `buffer' the - address of target buffer. - - Depending on the value of length, various actions are performed. - If `length' is NULL, the whole table will be loaded. An error - will be returned if `offset' is not 0. If `*length' is zero, - TT_Get_Font_Data() exits immediately, returning only the length - of the given table (in the variable `length'), or of the font - file, depending on the value of `tag'. Finally, if `*length' is - not zero, the next `length' bytes of the table (resp. the font) - are loaded into an array pointed to by `buffer', starting at - offset `offset'. Note that the `buffer' array must be large - enough to hold `length' bytes. - - --------------------------------------------------------------------- --------------------------------------------------------------------- - - - -III. Error Messages -=================== - - Most functions return an error code, typed to TT_Error. A return - value of zero indicates no error. The error values are defined in - the file `freetype.h'. In the following table, the prefix - `TT_Err_' is omitted, e.g. `Ok' -> `TT_Err_Ok'. - - - Error Unprefixed Error - Code Macro Name Description - ------------------------------------------------------------------ - - 0x0000 Ok Successful function call. - Always 0! - - ----------------- high-level API error codes --------------------- - - The following error codes are returned by the high-level API to - indicate an invalid client request. - - 0x0001 Invalid_Face_Handle An invalid face object handle was - passed to an API function. - - 0x0002 Invalid_Instance_Handle An invalid instance object handle - was passed to an API function. - - 0x0003 Invalid_Glyph_Handle An invalid glyph container handle - was passed to an API function. - - 0x0004 Invalid_CharMap_Handle An invalid charmap handle was - passed to an API function. - - 0x0005 Invalid_Result_Address An output parameter (a result) - was given a NULL address in an - API call. - - 0x0006 Invalid_Glyph_Index An invalid glyph index was passed - to an API function. - - 0x0007 Invalid_Argument An invalid argument was passed to - an API function. Usually, this - means a simple out-of-bounds - error. - - 0x0008 Could_Not_Open_File The pathname passed doesn't point - to an existing or accessible - file. - - 0x0009 File_Is_Not_Collection Returned by TT_Open_Collection - while trying to open a file which - isn't a collection. - - 0x000A Table_Missing The requested TrueType table is - missing in the font file. - - 0x000B Invalid_Horiz_Metrics The font's HMTX table is invalid. - Denotes a broken font. - - 0x000C Invalid_CharMap_Format A font's charmap entry has an - invalid format. Some other - entries may be valid though. - - 0x000D Invalid_PPem Invalid PPem values specified, - i.e., you are accessing a scaled - glyph without having called - TT_Set_Instance_CharSize() or - TT_Set_Instance_PixelSizes(). - - 0x0010 Invalid_File_Format The file isn't a TrueType font or - collection. - - 0x0011 Invalid_Vert_Metrics The font's VMTX table is invalid. - Denotes a broken font. - - 0x0020 Invalid_Engine An invalid engine handle was - passed to one of the API - functions. - - 0x0021 Too_Many_Extensions The client application is trying - to initialize too many - extensions. The default max - extensions number is 8 (this - value can be changed at compile - time). - - 0x0022 Extensions_Unsupported This build of the engine doesn't - support extensions. - - 0x0023 Invalid_Extension_Id This error indicates that the - client application is trying to - use an extension that has not - been initialized yet. - - 0x0030 No_Vertical_Data There is no vertical data, but - you are requesting it. Instead, - call TT_Get_Face_Metrics() with - NULL pointers for `topBearings' - and `heights'. - - 0x0080 Max_Profile_Missing The max profile table is missing. - => broken font file - - 0x0081 Header_Table_Missing The font header table is missing. - => broken font file - - 0x0082 Horiz_Header_Missing The horizontal header is missing. - => broken font file - - 0x0083 Locations_Missing The locations table is missing. - => broken font file - - 0x0084 Name_Table_Missing The name table is missing. - => broken font file - - 0x0085 CMap_Table_Missing The character encoding tables are - missing. - => broken font file - - 0x0086 Hmtx_Table_Missing The hmtx table is missing. - => broken font file - - 0x0087 OS2_Table_Missing The OS/2 table is missing. - Some Mac fonts don't have it. - - 0x0088 Post_Table_Missing The PostScript table is missing. - => broken font file - - 0x0089 Glyf_Table_Missing The glyph table is missing. - => broken font file - - ----------------- memory component error codes ------------------- - - 0x0100 Out_Of_Memory An operation couldn't be - performed due to memory - exhaustion. - - ----------------- file component error codes --------------------- - - 0x0200 Invalid_File_Offset Trying to seek to an invalid - portion of the font file. - Denotes a broken file. - - 0x0201 Invalid_File_Read Trying to read an invalid portion - of the font file. Denotes a - broken file. - - 0x0202 Invalid_Frame_Access Trying to frame an invalid - portion of the font file. - Denotes a broken file. - - ----------------- glyph loader error codes ----------------------- - - These errors are produced by the glyph loader. They denote an - invalid glyph record within the font file. - - 0x0300 Too_Many_Points The glyph has too many points to - be valid for its font file. - - 0x0301 Too_Many_Contours The glyph has too many contours - to be valid for its font file. - - 0x0302 Invalid_Composite_Glyph A composite glyph's description - is broken. - - 0x0303 Too_Many_Ins The glyph has too many - instructions to be valid for its - font file. - - ----------------- byte-code interpreter error codes -------------- - - These error codes are produced by the TrueType byte-code - interpreter. They usually indicate a broken font file or a broken - glyph within a font. - - 0x0400 Invalid_Opcode Found an invalid opcode in a - TrueType byte-code stream. - - 0x0401 Too_Few_Arguments An opcode was invoked with too - few arguments on the stack. - - 0x0402 Stack_Overflow The interpreter's stack has been - filled up and operations can't - continue. - - 0x0403 Code_Overflow The byte-code stream runs out of - its valid bounds. - - 0x0404 Bad_Argument A function received an invalid - argument. - - 0x0405 Divide_By_Zero A division by 0 operation was - queried by the interpreter - program. - - 0x0406 Storage_Overflow The program tried to access data - outside of its storage area. - - 0x0407 Cvt_Overflow The program tried to access data - outside of its control value - table. - - 0x0408 Invalid_Reference The program tried to reference an - invalid point, zone, or contour. - - 0x0409 Invalid_Distance The program tried to use an - invalid distance. - - 0x040A Interpolate_Twilight The program tried to interpolate - twilight points. - - 0x040B Debug_Opcode The now invalid `debug' opcode - was found in the byte-code - stream. - - 0x040C ENDF_In_Exec_Stream A misplaced ENDF was encountered - in the byte-code stream. - - 0x040D Out_Of_CodeRanges The program tried to allocate too - much code ranges (this is really - an engine internal error that - should never happen). - - 0x040E Nested_DEFS Nested function definitions - encountered. - - 0x040F Invalid_CodeRange The program tried to access an - invalid code range. - - 0x0410 Invalid_Displacement The program tried to use an - invalid displacement. - - 0x0411 Execution_Too_Long In order to get rid of `poison' - fonts, the interpreter produces - this error if more than one - million opcodes have been - interpreted in a single glyph - program. This detects infinite - loops softly. - - ----------------- internal failure error codes ------------------- - - These error codes are produced if an incoherent library state has - been detected. All of these reflect a severe bug in the engine - (or a severe memory corruption due to massive overwrites by your - application into the library's data)! - - If you do encounter a font that makes one of the test programs - produce such an error, please report it! - - 0x0500 Nested_Frame_Access - 0x0501 Invalid_Cache_List - 0x0502 Could_Not_Find_Context - 0x0503 Unlisted_Object - - ----------------- scan-line converter error codes ---------------- - - These error codes are produced by the raster component. They - indicate that an outline structure was incoherently set up, or - that you are trying to render a horribly complex glyph. - - They should be _extremely_ rare, however. - - 0x0600 Raster_Pool_Overflow Render pool overflow. This should - never happen in this release. - - 0x0601 Raster_Negative_Height A negative height was produced. - - 0x0602 Raster_Invalid_Value The outline data wasn't set - properly. Check that: - points >= endContours[contours] - - 0x0603 Raster_Not_Initialized You did not call - TT_Init_FreeType()! - - ---- end of apiref.txt --- diff --git a/Build/source/libs/freetype/docs/apirefx.txt b/Build/source/libs/freetype/docs/apirefx.txt deleted file mode 100644 index 19bc7d9feb3..00000000000 --- a/Build/source/libs/freetype/docs/apirefx.txt +++ /dev/null @@ -1,1223 +0,0 @@ - The FreeType Engine - - Extension Library Reference - - - ----------------------------------- - - - Table of Contents: - - I. Engine extensions - 1. kerning (ftxkern) - 2. PostScript names (ftxpost) - 3. TrueType Open (ftxopen) - a. The `BASE' table (baseline data) - b. The `GDEF' table (glyph definitions) - c. The `GPOS' table (glyph positions) - d. The `GSUB' table (glyph substitions) - e. The `JSTF' table (justification data) - f. auxiliary functions - 4. embedded bitmaps (ftxsbit) - - II. API extensions - 1. cmap iteration (ftxcmap) - 2. internationalized error messages (ftxerr18) - 3. access to the `gasp' table (ftxgasp) - 4. fast retrieval of glyph widths and heights (ftxwidth) - - III. Error codes - - - -------------------- - - -Please read the file `user.txt' for an introduction into FreeType's -extension mechanism and the difference between engine and API -extensions. - - -I. Engine extensions -==================== - -To use engine extensions you have to compile the library with the -macro TT_CONFIG_OPTION_EXTEND_ENGINE. By default, this macro is set -and all engine extensions are linked to the FreeType library. - - - 1. kerning (ftxkern) - -------------------- - - TT_Init_Kerning_Extension( TT_Engine engine ) - - Initializes the kerning extension for a given engine. This must - be called just after the engine creation, and before any face - object allocation. Example: - - TT_Init_FreeType( &engine ); - TT_Init_Kerning_Extension( engine ); - - .................................................................. - - TT_Get_Kerning_Directory( TT_Face face, - TT_Kerning* directory ) - - Queries the kerning directory found in a face object. If no - kerning table is found in the TrueType file, the error - TT_Err_Table_Is_Missing will be returned. - - You can access the subtables through the pointers of the - directory. However, by default, the directory is only loaded if - a face object is created. You must load the subtables that - interest you with a call to TT_Load_Kerning_Table(). - - The layout of all kerning structures is defined in the file - `lib/extend/ftxkern.h'. Formats 0 and 2 (as defined in the - Microsoft TrueType specification) are exposed by this API. - - NOTE: - - This function must be called after the kerning extension has - been initialized. - - .................................................................. - - TT_Load_Kerning_Table( TT_Face face, - TT_UShort kernIndex ) - - Loads the kerning subtable number `kern_index' into memory. The - subtable can be accessed through the pointers provided by the - kerning directory, obtained from a call to the function - TT_Get_Kerning_Directory(). - - Note that the interpretation of the kerning data is left to the - client application. Read the TrueType specification for more - information on kerning encoding. - - NOTE 1: - - This function must be called after the kerning extension were - initialized. - - NOTE 2: - - An example can be found in the file `test/ftstrtto.c'. - - -==================================================================== - - - 2. PostScript names (ftxpost) - ----------------------------- - - TT_Init_Post_Extension( TT_Engine engine ) - - Initializes the PostScript name extension to load the PostScript - glyph names given in the `post' table. This must be called just - after creation of the engine, and before any face object - allocation. See description of TT_Get_PS_Name() for an example. - - .................................................................. - - TT_Load_PS_Names( TT_Face face, - TT_Post* post ) - - Loads the PostScript glyph names into memory. This must be done - before TT_Get_PS_Name() is called. In case of error, either - TT_Err_Invalid_Post_Table or TT_Err_Invalid_Post_Table_Format is - returned. See description of TT_Get_PS_Name() for an example. - - .................................................................. - - TT_Get_PS_Name( TT_Face face, - TT_UShort index, - TT_String** PSname ) - - Get the PostScript glyph name for a given glyph index. A - pointer to the name is returned in `PSname'. Example: - - ... - TT_Post post; - char* PSname; - - ... - TT_Init_Post_Extension( engine ); - TT_Load_PS_Names( face, &post ); - - ... - TT_Get_PS_Name( face, index, &PSname ); - - - NOTE 1: - - You must not alter the PostScript glyph name string returned - in `PSname'. - - NOTE 2: - - Some standard names sometimes present some variations, as: - - Omega vs. Ohm - Delta vs. increment - macron vs. overscore - mu vs. mu1 - periodcentered vs. middot - - We always return the first listed name, which correspond to - the last version of the TrueType specifications (which did - vary in the past on this respect). You may have to adjust the - source (in lib/extend/ftxpost.c) in order to interface with - some old applications. - - -==================================================================== - - - 3. TrueType Open (ftxopen) - -------------------------- - - Please note that TrueType Open specific error codes have the - prefix `TTO_Err_' instead of `TT_Err_'. - - a. The `BASE' table (baseline data) - - Not yet supported. - - b. The `GDEF' table (glyph definitions) - - TT_Init_GDEF_Extension( TT_Engine engine ) - - Initializes the GDEF extension to load the glyph definition - data given in the `GDEF' table. This must be called just - after creation of the engine, and before any face object - allocation. See the file `ftstrtto.c' for an example. - - ................................................................ - - TT_Load_GDEF_Table( TT_Face face, - TTO_GDEFHeader* gdef ) - - Loads the GDEF table into `gdef' for a given face `face'. - This must be done before any queries about glyph properties - with TT_GSUB_Get_Property(). Returns TT_Err_Table_Missing if - there is no GDEF table in the font. - - ................................................................ - - TT_GDEF_Get_Glyph_Property( TTO_GDEFHeader* gdef, - TT_UShort glyphID, - TT_UShort* property ) - - Use this function to get glyph properties in the variable - `property' for the glyph with index `glyphID' stored in the - `gdef' table. This data is essential for many fonts to - correctly apply contextual substitution (both GSUB and GPOS). - As a special case, zero is assigned to `property' if `gdef' is - NULL or the glyph has no special glyph property assigned to - it. The other return values of `property' are TTO_BASE, - TTO_LIGATURE, TTO_MARK, and TTO_COMPONENT; you can directly - apply the `LookupFlag' mask to check for certain properties: - - TTO_GDEFHeader* gdef; - TTO_Lookup* lo; - TT_UShort glyph_ID; - TT_UShort p; - - - TT_GDEF_Get_Property( gdef, glyph_ID, &p ); - - if ( p & lo->LookupFlag ) - return TTO_Err_Not_Covered; - - Usually, you don't need to take care of glyph properties by - yourself since TT_GSUB_Apply_String() will do this for you by - calling TT_GDEF_Get_Property(). - - Some fonts need GDEF-like data even if no GDEF table is - provided (for example, the Arabic script needs information - which glyphs are base glyphs and which are mark glyphs). In - such cases, you should use TT_GDEF_Build_ClassDefinition() to - build the necessary structures so that TT_GDEF_Get_Property() - returns meaningful values. - - See also TT_Load_GSUB_Table() and TT_Load_GPOS_Table(). - - ................................................................ - - TT_GDEF_Build_ClassDefinition( TTO_GDEFHeader* gdef, - TT_UShort num_glyphs, - TT_UShort glyph_count, - TT_UShort* glyph_array, - TT_UShort* class_array ) - - Fills a `gdef' structure with data to make - TT_GDEF_Get_Property() work in case no GDEF table is - available. `num_glyphs' is the number of glyphs in the font. - - `glyph_count' is the number of glyphs resp. class values (as - specified in the GDEF specification) given in the arrays - `glyph_array' and `class_array', respectively. The glyph - indices in `glyph_array' must be all different and sorted in - ascending order; the function expects that glyph index - `glyph_array[n]' has its class value in `class_array[n]'. - - Note that mark attach classes as defined in OpenType 1.2 are - not supported for constructed GDEF tables. - - See `arabic.c' for an example. - - - c. The `GPOS' table (glyph positionings) - - For glyph positioning, a data object of type TTO_GPOS_Data is - used. The `x_pos' and `y_pos' fields contain offsets to be - added to the glyph's position; `x_advance' and `y_advance' hold - values to be added to the horizonal and vertical advance widths, - respectively. If `new_advance' is TRUE, `x_advance' and - `y_advance' are absolute, i.e., they won't be added to the - original glyph's value but rather replace them. All offset - values are given as fractional pixels. - - To position marks, `back' holds the number of glyphs to go back - for applying `x_pos' and `y_pos' (advance values are always zero - in this case). If the target glyph itself has a non-zero `back' - value, it is necessary to repeat this process -- the offset - values have to be accumulated then. - - As a consequence, it is necessary to track glyph positions. - - struct TTO_GPOS_Data_ - { - TT_Pos x_pos; - TT_Pos y_pos; - TT_Pos x_advance; - TT_Pos y_advance; - TT_UShort back; - TT_Bool new_advance; - }; - - typedef struct TTO_GPOS_Data_ TTO_GPOS_Data; - - Here some pseudo code to demonstrate the needed algorithm: - - TT_GSUB_Apply_String() - TT_GPOS_Apply_String() - collect_glyph_positions() /* don't advance for marks */ - /* take care of kerning */ - /* apply GPOS data */ - - for all glyphs do - { - if `back' == 0 - render_glyph_at_current_position() - else - { - search_base_glyph() - render_glyph_at_base_glyph_position() - } - } - - A real example can be found in ftstrtto.c. Please note that the - code in this test program is not optimized; using a glyph cache - could improve speed considerably. - - Contrary to GSUB handling, GPOS needs data from the glyphs - itself. Some formats of anchor tables (used e.g. to attach mark - glyphs to base glyphs) and device tables refer to contour - points, and cursive connections need advance values and - dimensions of the glyphs if used vertically (vertical cursive - connections have not been implemented yet -- this is the only - omission of GPOS support currently). - - Two hooks are defined to get this data: TTO_GlyphFunction and - TTO_MMFunction. The former defaults to TT_Load_Glyph() and - should be replaced with a similar function which caches data if - necessary, the latter (to access data from Multiple Master - fonts) defaults to an error message. - - GPOS handling must always be done *after* GSUB handling! - - ................................................................ - - TT_Init_GPOS_Extension( TT_Engine engine ) - - Initializes the GPOS extension to load the glyph positioning - data given in the `GPOS' table. This must be called just - after creation of the engine, and before any face object - allocation. See the files `ftstrtto.c' and `ftdump.c' for - detailed examples. - - ................................................................ - - TT_Load_GPOS_Table( TT_Face face, - TTO_GPOSHeader* gpos, - TTO_GDEFHeader* gdef ) - - Loads the GPOS table into `gpos' for a given face `face'. - This must be done before any queries about or selection of - scripts, languages, and features. Returns - TT_Err_Table_Missing if there is no GPOS table in the font. - - `gdef' should contain a pointer to an associated GDEF table, - either a native one loaded with TT_Load_GDEF_Table() or - emulated with TT_GDEF_Build_ClassDefinition(). If `gdef' is - set to NULL, no GDEF data will be used. - - ................................................................ - - TT_GPOS_Select_Script( TTO_GPOSHeader* gpos, - TT_ULong script_tag, - TT_UShort* script_index ) - - This function sets the script index of a given script tag - `script_tag' in the variable `script_index' for the GPOS table - `gpos'. Returns TTO_Err_Not_Covered if the script tag cannot - be found. The available script tags can be queried with the - function TT_GPOS_Query_Scripts(). - - ................................................................ - - TT_GPOS_Select_Language( TTO_GPOSHeader* gpos, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ) - - This function sets the language index of a given language tag - `language_tag' and script index `script_index' in the variable - `language_index' for the GPOS table `gpos'. Returns - TTO_Err_Not_Covered if the language tag cannot be found. The - available language tags can be queried with the function - TT_GPOS_Query_Languages(). - - Additionally, the index of the required feature for this - language system is returned in `req_feature_index'; it must be - later registered for use with TT_GPOS_Add_Feature(). - - ................................................................ - - TT_GPOS_Select_Feature( TTO_GPOSHeader* gpos, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ) - - This function sets the feature index of a feature tag - `feature_tag', script index `script_index', and language index - `language_index' in the variable `feature_index' for the GPOS - table `gpos'. Returns TTO_Err_Not_Covered if the feature tag - cannot be found. The available feature tags can be queried - with the function TT_GPOS_Query_Features(). Setting - language_index to 0xFFFF selects the default language system. - - ................................................................ - - TT_GPOS_Query_Scripts( TTO_GPOSHeader* gpos, - TT_ULong** script_tag_list ) - - Returns the available script tags for a given GPOS table - `gpos' in the array `script_tag_list'. The array can be later - deallocated with free(). - - ................................................................ - - TT_GPOS_Query_Languages( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_ULong** language_tag_list ) - - Returns the available language tags for a given GPOS table - `gpos' and script index `script_index' in the array - `language_tag_list'. The array can be later deallocated with - free(). - - ................................................................ - - TT_GPOS_Query_Features( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ) - - Returns the available feature tags for a given GPOS table - `gpos', script index `script_index', and language index - `language_index' in the array `feature_tag_list'. If language - index is set to 0xFFFF, the values for the default language - system are returned. The array can be later deallocated with - free(). - - ................................................................ - - TT_GPOS_Add_Feature( TTO_GPOSHeader* gpos, - TT_UShort feature_index, - TT_UShort property ) - - To prepare a call to TT_GPOS_Apply_String() which should - process a given feature with index `feature_index' and the - property `property', you must use this function. Its task is - to mark the lookup tables used by the feature for further - processing. - - `property' defines a relationship between the input string - object and the specific feature. The client must handle this - variable as a bit field, i.e., up to 16 user properties can be - defined. If `property' is set to ALL_GLYPHS (0xFFFF, the only - predefined value), or if the input string object has no set - bits in the `properties' field, the feature applies to all - glyphs. If bit `x' is set in `property', the feature applies - only to glyphs which have bit `x' not set in glyph's - `properties' field in the input string object. See - TT_GPOS_Apply_String() for an example. - - Returns TT_Err_Invalid_Argument in case of error. - - ................................................................ - - TT_GPOS_Clear_Features( TTO_GPOSHeader* gpos ) - - Clears the list of used features and properties. No lookup - tables will be processed. - - ................................................................ - - TT_GPOS_Register_Glyph_Function( TTO_GPOSHeader* gpos, - TTO_GlyphFunction gfunc ); - - Installs a function `gfunc' which loads a glyph. Its - parameters are the same as in a call to TT_Load_Glyph() -- if - no glyph loading function will be registered with - TTO_GPOS_Register_Glyph_Function(), TT_Load_Glyph() will be - called indeed. The purpose of this function is to provide a - hook for caching glyph outlines and sbits (using the - instance's generic pointer to hold the data). - - If for some reason no outline data is available (e.g. for an - embedded bitmap glyph), _glyph->outline.n_points should be set - to zero. _glyph can be computed with - - _glyph = HANDLE_Glyph( glyph ) - - `gfunc' is defined as - - typedef TT_Error - (*TTO_GlyphFunction)(TT_Instance instance, - TT_Glyph glyph, - TT_UShort glyphIndex, - TT_UShort loadFlags ); - - ................................................................ - - TT_GPOS_Register_MM_Function( TTO_GPOSHeader* gpos, - TTO_MMFunction mmfunc, - void* data ); - - Installs a function `mmfunc' which accesses the PostScript - interpreter. Multiple Master fonts need this interface to - convert a metric ID (as stored in an OpenType font version 1.2 - or higher) into a metric value. - - `data' points to a user-defined structure which will not be - used by the GPOS extension itself. It is passed directly to - `mmfunc', which is defined as - - typedef TT_Error - (*TTO_MMFunction)(TT_Instance instance, - TT_UShort metric_id, - TT_Pos* metric_value, - void* data ); - - `metric_value' must be returned as a scaled value (but - shouldn't be rounded). - - ................................................................ - - TT_GPOS_Apply_String( TT_Instance instance, - TT_Glyph glyph, - TTO_GPOSHeader* gpos, - TT_Bool load_flags, - TTO_GSUB_String* in, - TTO_GPOS_Data** out, - TT_Bool dvi, - TT_Bool r2l ) - - This is the very function which handles glyph positioning - according to the features set up with TT_GPOS_Add_Feature(), - using both GPOS and GDEF data (if defined). A TTO_GSUB_String - object `in' (see the next section for a complete description) - and a TTO_GPOS_Data object array pointer `out' (as described - above) are taken for input and output; after successful - excecution, the GPOS data can been found in `out'. Note that - the `out' array has in->length elements. - - `instance', `glyph', and `load_flags' are directly forwarded - to the glyph function registered with - TTO_GPOS_Register_Glyph_Function(). Note that glyphs are - always loaded as scaled. - - If `dvi' is TRUE, `glyph' is ignored completely. Use this to - get device independent positioning values. - - The parameter `r2l' should be set to TRUE if you process a - right-to-left script like Arabic. It is used for cursive - connections only to compute correct advance values. - - Example: - - /* We assume that the feature `xxxx' has index 5, and */ - /* feature `yyyy' has index 8, applying only to glyphs */ - /* with the property `FINAL_GLYPHS' set (0x1000 is an */ - /* ad-hoc value just for this example). */ - - /* The order of calls to TT_GPOS_Add_Feature() is not */ - /* significant. */ - - #define FINAL_GLYPHS 0x1000 - - TTO_GPOS_DATA* gd = NULL; - - - TT_GPOS_Clear_Features( &gpos ); - TT_GPOS_Add_Feature( &gpos, 8, FINAL_GLYPHS ); - TT_GPOS_Add_Feature( &gpos, 5, ALL_GLYPHS ); - - TT_GSUB_Apply_String( &gsub, &in, &out ); - TT_GPOS_Apply_String( instance, glyph, &gpos, - TTLOAD_HINT_GLYPH, - &out, &gd, 0, 0 ); - - You must initialize the `gd' pointer to NULL; allocation - necessary for the `gd' array will be handled automatically. - If necessary, you can use free() to deallocate `gd'. - - - d. The `GSUB' table (glyph substitions) - - For glyph substitution, a string object of type TTO_GSUB_String - is used. The field `length' holds the length of the string, - `pos' points to the actual position in the glyph string `string' - (for input strings) resp. the position where the substituted - glyphs should be placed at (for output strings). - - Within the `properties' array (which must always have the same - length as `string' if set), you can define properties for glyphs - -- `string[n]' is associated with `properties[n]'. The idea is - that some features apply to specific glyphs only. As an - example, the `fina' feature for Arabic applies only to glyphs - which appear at the end of a word (strictly speaking, this - feature is used only for glyphs which have a `final' property; - such glyphs can occur in the middle of a word also under certain - circumstances which is dependent on Arabic script rules). The - relationship between properties and features can be set up with - the function TT_GSUB_Add_Feature(). If `properties' is set to - NULL, all selected features apply to all glyphs in the given - string object. If `properties' is non-NULL, the elements of the - array are treated as bit fields. A set flag means that the - corresponding feature (as set with the TT_GSUB_Add_Feature() - function) should not be applied to the particular glyph. As a - consequence, a zero value for these 16 bits means that all - features should be applied, and a value of 0xFFFF implies that - no feature at all should be used for the glyph. - - The field `allocated' is for internal use only and must not be - modified. If its value is larger than zero, you should use - free() to deallocate the memory used by `string' (and - `properties' if set) in case you want to destroy a - TTO_GSUB_String object (memory for `string' and `properties' is - allocated automatically e.g. by TT_GSUB_Apply_String() for - output string objects). - - struct TTO_GSUB_String_ - { - TT_ULong length; - TT_ULong pos; - TT_ULong allocated; - TT_UShort* string; - TT_UShort* properties; - }; - - typedef struct TTO_GSUB_String_ TTO_GSUB_String; - - Note that the `string' field must contain glyph indices, not - character codes. - - For initializing an input string object, you should set the - `length', `string', and `properties' fields (the last one only - if necessary) to appropriate values. `pos' has to be set to the - position where the substitution lookups should start (usually - zero). The `allocated' field will be ignored. - - For initializing an output string object, all fields (except - `length' which will be ignored) must be set to zero. If you - want to reuse the object, set `pos' to the position where the - substituted glyphs should be placed at (usually zero), but don't - touch the `allocated', `string', and `properties' fields. - - ................................................................ - - TT_Init_GSUB_Extension( TT_Engine engine ) - - Initializes the GSUB extension to load the glyph substitution - data given in the `GSUB' table. This must be called just - after creation of the engine, and before any face object - allocation. See the files `ftstrtto.c' and `ftdump.c' for - detailed examples. - - ................................................................ - - TT_Load_GSUB_Table( TT_Face face, - TTO_GSUBHeader* gsub, - TTO_GDEFHeader* gdef ) - - Loads the GSUB table into `gsub' for a given face `face'. - This must be done before any queries about or selection of - scripts, languages, and features. Returns - TT_Err_Table_Missing if there is no GSUB table in the font. - - `gdef' should contain a pointer to an associated GDEF table, - either a native one loaded with TT_Load_GDEF_Table() or - emulated with TT_GDEF_Build_ClassDefinition(). If `gdef' is - set to NULL, no GDEF data will be used. - - ................................................................ - - TT_GSUB_Select_Script( TTO_GSUBHeader* gsub, - TT_ULong script_tag, - TT_UShort* script_index ) - - This function sets the script index of a given script tag - `script_tag' in the variable `script_index' for the GSUB table - `gsub'. Returns TTO_Err_Not_Covered if the script tag cannot - be found. The available script tags can be queried with the - function TT_GSUB_Query_Scripts(). - - ................................................................ - - TT_GSUB_Select_Language( TTO_GSUBHeader* gsub, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ) - - This function sets the language index of a given language tag - `language_tag' and script index `script_index' in the variable - `language_index' for the GSUB table `gsub'. Returns - TTO_Err_Not_Covered if the language tag cannot be found. The - available language tags can be queried with the function - TT_GSUB_Query_Languages(). - - Additionally, the index of the required feature for this - language system is returned in `req_feature_index'; it must be - later registered for use with TT_GSUB_Add_Feature(). - - ................................................................ - - TT_GSUB_Select_Feature( TTO_GSUBHeader* gsub, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ) - - This function sets the feature index of a feature tag - `feature_tag', script index `script_index', and language index - `language_index' in the variable `feature_index' for the GSUB - table `gsub'. Returns TTO_Err_Not_Covered if the feature tag - cannot be found. The available feature tags can be queried - with the function TT_GSUB_Query_Features(). Setting - language_index to 0xFFFF selects the default language system. - - ................................................................ - - TT_GSUB_Query_Scripts( TTO_GSUBHeader* gsub, - TT_ULong** script_tag_list ) - - Returns the available script tags for a given GSUB table - `gsub' in the array `script_tag_list'. The array can be later - deallocated with free(). - - ................................................................ - - TT_GSUB_Query_Languages( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_ULong** language_tag_list ) - - Returns the available language tags for a given GSUB table - `gsub' and script index `script_index' in the array - `language_tag_list'. The array can be later deallocated with - free(). - - ................................................................ - - TT_GSUB_Query_Features( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ) - - Returns the available feature tags for a given GSUB table - `gsub', script index `script_index', and language index - `language_index' in the array `feature_tag_list'. If language - index is set to 0xFFFF, the values for the default language - system are returned. The array can be later deallocated with - free(). - - ................................................................ - - TT_GSUB_Add_Feature( TTO_GSUBHeader* gsub, - TT_UShort feature_index, - TT_UShort property ) - - To prepare a call to TT_GSUB_Apply_String() which should - process a given feature with index `feature_index' and the - property `property', you must use this function. Its task is - to mark the lookup tables used by the feature for further - processing. - - `property' defines a relationship between the input string - object and the specific feature. The client must handle this - variable as a bit field, i.e., up to 16 user properties can be - defined. If `property' is set to ALL_GLYPHS (0xFFFF, the only - predefined value), or if the input string object has no set - bits in the `properties' field, the feature applies to all - glyphs. If bit `x' is set in `property', the feature applies - only to glyphs which have bit `x' not set in glyph's - `properties' field in the input string object. See - TT_GSUB_Apply_String() for an example. - - Returns TT_Err_Invalid_Argument in case of error. - - ................................................................ - - TT_GSUB_Clear_Features( TTO_GSUBHeader* gsub ) - - Clears the list of used features and properties. No lookup - tables will be processed. - - ................................................................ - - TT_GSUB_Register_Alternate_Function( TTO_GSUBHeader* gsub, - TTO_AltFunction altfunc, - void* data ) - - Installs a callback function to handle alternate - substitutions. `data' is a generic pointer to a user-defined - structure which will be completely ignored by the ftxopen - extension. `altfunc' is a function pointer defined as - - typedef TT_UShort - (*TTO_AltFunction)(TT_ULong pos, - TT_UShort glyphID, - TT_UShort num_alternates, - TT_UShort* alternates, - void* data ); - - If TT_GSUB_Apply_String() encounters an alternate lookup while - processing the input string, it will call the function - `altfunc' to find out which alternate glyph it should use. - `pos' gives the position in the string, `glyphID' the glyph ID - of the glyph to be replaced with an alternate glyph, and - `num_alternates' the number of alternate glyphs in the - `alternates' array. A pointer to the user-defined `data' - structure is also available. `altfunc' must return an index - into `alternates'. - - If `altfunc' is NULL or if this function isn't called at all, - TT_GSUB_Apply_String() will always use the first alternate - glyph. - - Please note that theoretically an alternate lookup can happen - during any other lookup! For example, a lookup chain like - - single subst -> alternate subst -> ligature subst - - *is* possible (albeit rather unlikely). Thus be warned that - `pos' does not necessarily reflect the position of a glyph to - be displayed at all, nor does `glyphID' specifies a glyph - which will be in the final output string. - - ................................................................ - - TT_GSUB_Apply_String( TTO_GSUBHeader* gsub, - TTO_GSUB_String* in, - TTO_GSUB_String* out ) - - This is the very function which handles glyph substitution - according to the features set up with TT_GSUB_Add_Feature(), - using both GSUB and GDEF data (if defined). Two - TTO_GSUB_String objects `in' and `out' (as described above) - are taken for input and output; after successful excecution, - the converted glyph string can been found in `out', and - `out.length' gives the actual length of the output string - (counted from the begin of the array). - - Example: - - /* We assume that the feature `xxxx' has index 5, and */ - /* feature `yyyy' has index 8, applying only to glyphs */ - /* with the property `FINAL_GLYPHS' set (0x1000 is an */ - /* ad-hoc value just for this example). */ - - /* The order of calls to TT_GSUB_Add_Feature() is not */ - /* significant. */ - - #define FINAL_GLYPHS 0x1000 - - TT_GSUB_Clear_Features( &gsub ); - TT_GSUB_Add_Feature( &gsub, 8, FINAL_GLYPHS ); - TT_GSUB_Add_Feature( &gsub, 5, ALL_GLYPHS ); - - TT_GSUB_Apply_String( &gsub, &in, &out ); - - You must initialize both `in' and `out' structures; allocation - necessary for the `out' object will be handled automatically. - - In case you don't register a function to handle alternate - substitutions (GSUB lookup 3), always the first alternate - glyph will be used. See TT_GSUB_Register_Alternate_Function() - above for more details. - - - e. The `JSTF' table (justification data) - - Not yet supported. - - - f. auxiliary functions - - TT_GSUB_Add_String( TTO_GSUB_String* in, - TT_UShort num_in, - TTO_GSUB_String* out, - TT_UShort num_out, - TT_UShort* glyph_data, - TT_UShort component, - TT_UShort ligID ) - - This function copies `num_out' elements from `glyph_data' to - `out', advancing the array pointer in the `in' structure by - `num_in' elements, and in `out' by `num_out' elements. If the - string (resp. the properties) array in `out' is empty or too - small, it allocates resp. reallocates the string (and - properties) array. Finally, it sets the `length' field of - `out' equal to `pos' of the `out' structure. - - The properties (if defined) for all replaced glyphs are taken - from the glyph at position `in->pos'. - - If `component' is 0xFFFF, the value `in->component[in->pos]' - will be copied `num_out' times, otherwise `component' itself - will be used to fill `out->component'. - - If `ligID' is 0xFFFF, the value `in->lig_IDs[in->pos]' will be - copied `num_out' times, otherwise `ligID' itself will be used - to fill `out->ligIDs'. - - TT_GSUB_Add_String() is normally used in - TT_GSUB_Apply_String(); you will need it for the special case - to skip some glyphs (i.e., copy glyphs directly from the `in' - to the `out' object), bypassing a possible GSUB substitution. - - Here an example which copies one glyph: - - TT_GSUB_Add_String( in, 1, - out, 1, - &in->string[in->pos], - 0xFFFF, 0xFFFF ); - - -==================================================================== - - - 4. embedded bitmaps (ftxsbit) - ----------------------------- - - TT_Init_SBit_Extension( TT_Engine engine ) - - Initializes the embedded bitmap extension to load the bitmap - glyphs given in the various sbit tables: `EBLC', `bloc', `EBDT', - and `bdat' (`bloc' and `bdat' tables are only in Apple fonts; - the former is equivalent to `EBLC', the latter equivalent to - `EBDT'). This must be called just after creation of the engine, - and before any face object allocation. See description of - TT_Load_Glyph_Bitmap() for an example. - - .................................................................. - - TT_Get_Face_Bitmaps( TT_Face face, - TT_EBLC* eblc_table ) - - Loads the `EBLC' (resp. `bloc') table from a font file into the - `eblc_table' structure. Use this function for testing whether - embedded bitmaps are available or not. - - This function returns TT_Err_Table_Missing if the font contains - no embedded bitmaps. All fields in `eblc_table' will then be - set to 0. - - .................................................................. - - TT_New_SBit_Image( TT_SBit_Image** image ) - - Allocates a new embedded bitmap container, pointed to by - `image'. - - .................................................................. - - void TT_Done_SBit_Image( TT_SBit_Image* image ) - ^^^^ - - Releases the embedded bitmap container `image'. - - .................................................................. - - TT_Get_SBit_Strike( TT_Face face, - TT_Instance instance, - TT_SBit_Strike* strike ) - - Loads a suitable strike (i.e. bitmap sizetable) for the given - instance. Will return TT_Err_Invalid_PPem if there is no strike - for the current x_ppem and y_ppem values. - - .................................................................. - - TT_Load_Glyph_Bitmap( TT_Face face, - TT_Instance instance, - TT_UShort glyph_index, - TT_SBit_Image* bitmap ); - - Loads a glyph bitmap for a given glyph index `glyph_index' (in - face `face' and instance `instance') into `bitmap'. It calls - TT_Get_SBit_Strike() internally for checking the current x_ppem - and y_ppem values. - - This function returns an error if there is no embedded bitmap - for the glyph at the given instance. - - Example (omitting the error handling): - - ... - TT_SBit_Image* bitmap; - - ... - TT_Init_SBit_Extension( engine ); - TT_New_SBit_Image( &bitmap ); - ... - TT_Load_Glyph_Bitmap( face, instance, glyph_index, bitmap ); - - - --------------------------------------------------------------------- --------------------------------------------------------------------- - - - -II. API extensions -================== - -To use API extensions, simply compile the specific extension file -and link it to the library or your program. By default, all -extensions described below are linked to the library. - - - 1. cmap iteration (ftxcmap) - --------------------------- - - TT_Long TT_CharMap_First( TT_CharMap charMap, - ^^^^^^^ TT_UShort* glyph_index ) - - Returns the first valid character code in a given character map - `charMap'. Also returns the corresponding glyph index (in the - parameter `*glyph_index'). In case of failure, -1 is returned, - and `*glyph_index' is undefined. - - .................................................................. - - TT_Long TT_CharMap_Next( TT_CharMap charMap, - ^^^^^^^ TT_ULong last_char, - TT_UShort* glyph_index ) - - Returns the next valid character code in a given character map - `charMap' which follows `last_char'. Also returns the - corresponding glyph index (in the parameter `*glyph_index'). In - case of failure, -1 is returned, and `glyph_index' is undefined. - - .................................................................. - - TT_Long TT_CharMap_Last( TT_CharMap charMap, - ^^^^^^^ TT_UShort* glyph_index ) - - Returns the last valid character code in a given character map - `charMap'. Also returns the corresponding glyph index (in the - parameter `*glyph_index'). In case of failure, -1 is returned, - and `*glyph_index' is undefined. - - -==================================================================== - - - 2. internationalized error messages (ftxerr18) - ---------------------------------------------- - - This extension provides internationalized error strings from the - various error messages. It uses the `gettext' package if - available or returns English/American message strings if not. - Currently, the gettext package is only available on UNIX-like - systems like Linux (and on similarly inspired systems, like DJGPP - or MinGW); this means that for other platforms only English error - strings are returned. - - If the gettext package is found on your system, the configure - script automatically includes it by default. In case you don't - want to use it, or if you encounter some problems compiling this - file, try to disable nls support by configuring FreeType with - `./configure --disable-nls'. - - Please read the gettext info files for more information how to set - up your system for internationalized messages. A short - introduction is also given in the file `i18n.txt'. - - - TT_String* TT_ErrToString18( TT_Error i ) - ^^^^^^^^^^ - - This function returns an error string for a given error code - `i'. The type `TT_String' usually defaults to `char'; see - apiref.txt for more details. - - An example how to use this function (in connection with the - gettext interface) is given in test/ftdump.c or test/fterror.c. - - -==================================================================== - - - 3. access to the `gasp' table (ftxgasp) - --------------------------------------- - - The `gasp' table is currently loaded by the core engine, but the - standard API doesn't give access to it. - - - TT_Get_Face_Gasp_Flags( TT_Face face, - TT_UShort point_size, - TT_Bool* grid_fit, - TT_Bool* smooth_font ) - - This function returns for a given `point_size' the values of the - gasp flags `grid_fit' and `smooth_font'. The returned values - are booleans (where 0 = NO, and 1 = YES). - - Note that this function will return TT_Err_Table_Missing if the - font file doesn't contain any gasp table. - - -==================================================================== - - - 4. fast retrieval of glyph widths and heights (ftxwidth) - -------------------------------------------------------- - - This extension is used to parse the `glyf' table of a TrueType - file in order to extract the bounding box of a given range of - glyphs. - - The bounding box is then used to build font unit widths and - heights that are returned in two parallel arrays. - - This extension is needed by the FreeType/2 OS/2 Font Driver. - - - TT_Get_Face_Widths( TT_Face face, - TT_UShort first_glyph, - TT_UShort last_glyph, - TT_UShort* widths, - TT_UShort* heights ) - - Returns the widths (in array `widths') and heights (in array - `heights') of a glyph range which starts at `first_glyph' and - ends at `last_glyph'. All returned values are returned in font - units. If either `widths' or `heights' is set to a NULL - pointer, no data will be returned for that particular array. - - Note: TT_Get_Face_Widths() does *not* allocate the two arrays! - - - --------------------------------------------------------------------- --------------------------------------------------------------------- - - - -III. Error Messages -=================== - - Most functions return an error code, typed to TT_Error. A return - value of zero indicates no error. The error values are defined in - the various extension header files (e.g. ftxkern.h). In the - following table, the prefix `TT_Err_' is omitted, e.g. `Ok' -> - `TT_Err_Ok'. - - - Error Unprefixed Error - Code Macro Name Description - ------------------------------------------------------------------ - - 0x0A00 Invalid_Kerning_Table_Format - An invalid kerning subtable - format was found in this font. - - 0x0A01 Invalid_Kerning_Table A kerning table contains illegal - glyph indices. - - 0x0B00 Invalid_Post_Table_Format - The post table format specified - in the font is invalid. - - 0x0B01 Invalid_Post_Table The post table contains illegal - entries. - - - Here the TrueType Open error codes. In the following table, the - prefix `TTO_Err_' is omitted. - - - Error Unprefixed Error - Code Macro Name Description - ------------------------------------------------------------------ - 0x1000 Invalid_SubTable_Format The TrueType Open subtable format - specified in the font is invalid. - - 0x1001 Invalid_SubTable A TrueType Open subtable contains - illegal entries. - - 0x1002 Not_Covered The requested feature, glyph, - etc. isn't covered by the actual - function. - - 0x1003 Too_Many_Nested_Contexts - A loop in the contextual lookup - tables (either GSUB or GPOS) has - been detected. - - 0x1004 No_MM_Interpreter The interface to a PostScript - interpreter with Multiple Master - font support is missing. - - 0x1010 Invalid_GSUB_SubTable_Format - The GSUB subtable format - specified in the font is invalid. - - 0x1011 Invalid_GSUB_SubTable The GSUB subtable contains - illegal entries. - - 0x1020 Invalid_GPOS_SubTable_Format - The GPOS subtable format - specified in the font is invalid. - - 0x1021 Invalid_GPOS_SubTable The GPOS subtable contains - illegal entries. - - 0x1030 Invalid_GDEF_SubTable_Format - The GDEF subtable format - specified in the font is invalid. - - 0x1031 Invalid_GDEF_SubTable The GDEF subtable contains - illegal entries. - - ---- end of apirefx.txt --- diff --git a/Build/source/libs/freetype/docs/bitmaps.txt b/Build/source/libs/freetype/docs/bitmaps.txt deleted file mode 100644 index 79ed2ddbea9..00000000000 --- a/Build/source/libs/freetype/docs/bitmaps.txt +++ /dev/null @@ -1,770 +0,0 @@ - - Bitmap and Pixmap generation with FreeType - ------------------------------------------ - - Table of Contents - - - Introduction - - I. The rasterizer component - - II. Bitmap & pixmap descriptors - - III. Rendering an outline - - IV. Anti-aliasing palette and other concerns - - Conclusion - - - -Introduction ------------- - - This document describes the steps that are needed to render a - glyph outline into a bitmap or a pixmap with the FreeType library. - It contains several important details needed to generate bitmaps - correctly in all situations, including if an outline has been - transformed or translated. - - --------------------------------------------------------------------- - - -I. The rasterizer component ---------------------------- - - In FreeType, the component in charge of performing bitmap and - pixmap rendering is called the `rasterizer'. Generation is - performed through a traditional process called `scan-line - conversion', but exhibits certain properties: - - - The rasterizer doesn't allocate bitmaps: - - In fact, it is only able to render an outline into an existing - bitmap or pixmap, which is passed to one of its rendering - functions. This means that the target bitmap/pixmap must be set - up correctly by the caller to achieve desired results. Setting - up bitmap and pixmap descriptors is explained in section II. - - - It is able to render anti-aliased pixmaps directly: - - This is unlike other graphics packages, which render to a - `large' bitmap which is then filtered down. Putting the - anti-aliasing logic within the rasterizer improves performance - and reduces memory usage, as well as lets us use better - algorithms which couldn't work in a `two-phase' process. - - The rasterizer is located in the files `ttraster.h' and - `ttraster.c'. - - The format of outlines isn't important for most developers and - won't be discussed here. However, a few conventions must be - explained regarding the vector outlines: - - - 1. Units - - All point coordinates within an outline are stored in 32-bit - fractional pixel values, using the 26.6 fixed float format - (which uses 26 bits for the integer part, and 6 bits for the - fractional part). The following table gives some examples of - real versus 26.6 coordinates: - - ----------------------------------------- - real real coord 26.6 coord - coord. * 2^6 - ----------------------------------------- - 0 0*64 = 0.0 0 - 2.4 2.4*64 = 153.6 154 - 3 3*64 = 192.0 192 - -1.7 -1.7*64 = -108.8 -109 - - As you can see, conversion is relatively simple -- basically a - multiplication by 64. - - In order to differentiate coordinates expressed in real or 26.6 - systems, we'll use in the following lines brackets (`[' and `]') - for real coordinates, and simple parentheses (`(' and `)') for - fractional coordinates so that - - [1.0,2.5] equals (64,160) - - [0,0] equals (0,0) - - [-2,3] equals (-128,192) - - - 2. Orientation - - The rasterizer uses the traditional convention of an X axis - oriented from left to right, and of a Y axis oriented from - bottom to top. - - ^ Y - | - | - | - -*-----> X - | - - You've probably already used it at school when doing math :-) - - Though the orientation of bitmap lines has the opposite - direction on nearly all graphics systems, the former convention - is the _right_ one when it comes to vector graphics. The reason - is simply that for managing angles and vector cross-products - resp. orientations in complex algorithms, a single convention, - used in math as well as computing alike solves many headaches. - - And due to education, most people expect a 45 degrees angle to - be in the top right quadrant, at coordinate (1,1). - - - 3. Pixels and the grid - - In a vector outline, a point is immaterial and has no size or - width, just like in usual geometry. A `pixel' is an element of - a computer image called a `map' (like a bitmap or a pixmap). - - The FreeType rasterizer follows the convention defined by the - TrueType specification regarding pixel placement: - - - The map can be seen as a `grid' placed in the vector plane. - The grid lines are set on integer real coordinates (i.e., on - multiples of 64 in 26.6 fractional notation). - - Each pixel is one `cell' of the grid, and can be `lit' with - any color. Hence, each pixel has a width and a height of - [1.0] units, (i.e., 64 fixed float units). - - ^ Y - | - | The pixel grid with two - | points (not pixels!) - +-----+-----+-----+-----+-----+ at coordinates [0,0] - | | | | | | and [2,2]. - | | | | | | - | | | | |[2,2]| - +-----+-----+-----+-----@-----+ The pixels are the - | | |11111|22222| | grid's cells, and this - | | |11111|22222| | example show the four - | | |11111|22222| | pixels enclosed within - +-----+-----+-----+-----+-----+ the rectangle delimited - | | |33333|44444| | by these two points. - | | |33333|44444| | - | | |33333|44444| | - --+-----+-----@-----+-----+-----+----> X - | | |[0,0]| | | - | | | | | | Note that the numbering - | | | | | | of pixels isn't - +-----+-----+-----+-----+-----+ meaningful here, it's - | | | | | | only used to distinguish - | | | | | | them. - | | | | | | - +-----+-----+-----+-----+-----+ - | - | - - - The `center' of each pixel is always located on a - `half-integer' coordinate, i.e., at -1.5, -0.5, 0.5, 1.5, etc. - - - When drawing a shape, the rasterizer only `lits' a pixel when - its center is placed _within_ the shape. This is important - because an outline point may not be necessarily be on a grid - line. - - - When a pixel center falls on the shape, the pixel is lit too. - - For example, the following graphics show the `lit' pixels - corresponding to the rectangle enclosed by the points: - - [-0.2, 0] and [2.4, 2.7] - - - ^ Y As one can see, the - | newest pixels `1' - | and `2' are now lit, - | because its centers - +-----+-----+-----+-----+--[2.4,2.7] are located at - | | |11111|22222| @ | coordinates - | . | . |11.11|22.22| . | [0.5,2.5] and - | | |11111|22222| | [1.5,2.5], - +-----+-----+-----+-----+-----+ respectively. - | | |33333|44444| | - | . | . |33.33|44.44| . | Note that pixel - | | |33333|44444| | centers are - +-----+-----+-----+-----+-----+ represented with a - | | |55555|66666| | dot in the graphics. - | . | . |55.55|66.66| . | - | | |55555|66666| | - --+-----+----@+-----+-----+-----+----> X - | | [-0.2,0] | | | - | . | . | . | . | . | - | | | | | | Note also that pixel - +-----+-----+-----+-----+-----+ numbering is still - | | | | | | meaningless there. - | . | . | . | . | . | - | | | | | | - +-----+-----+-----+-----+-----+ - | - | - - - 4. Drop-out control - - Sometimes, a stroke is too thin to even contain a single pixel - center. This results in `lost continuity' in the resulting - bitmap, i.e., some unpleasant `holes' or `breaks' in the - rendered shape, which are called a `drop-out'. - - Because a glyph representation uses curves (Bezier arcs), this - case is not easily controllable during the `hinting' of glyph - outlines by the font driver, which means that the rasterizer - must be able to correct these `artefacts'. - - This processing is called `drop-out control', and can be - performed in several modes, defined by the TrueType - specification, and which details do not belong to this document. - However, the important idea is that, in _some_ cases, a pixel - may be lit even if its center isn't part of the shape. - - This case is relatively rare, but is mentioned because it has - consequences of the rendering of maps. More precisely, in the - way an outline's extent is computed (see below). - - --------------------------------------------------------------------- - - -II. Bitmap and pixmap descriptors ---------------------------------- - - The Freetype rasterizer only supports bitmaps and 8-bit pixmaps. - In order to render an outline, a map descriptor must be sent to - its rendering functions, along with a vectorial outline. - - - 1. Bitmap properties - - This section explains how to set up a bitmap descriptor, and how - vector coordinates in the outline plane relate to pixel - positions within the bitmap buffer. - - A bitmap's `raw data' is made of a simple bit buffer where each - bit corresponds to a monochrome pixel. For the sake of - simplicity, the FreeType rasterizer uses the following - conventions to store bitmaps in a buffer: - - - The value 0 is used for `unlit' pixels, usually the - `background' when rendering text. Hence 1 is used for `lit'. - - - Lines are padded to 8 bits, i.e. bytes. A bitmap row thus - takes an integral number of bytes in its buffer. No further - alignment is required. - - (Some systems compress bitmaps by _not_ padding bit rows to - byte boundaries. It is not possible to render into such a - bitmap buffer with FreeType.) - - - In a bitmap buffer byte, the left-most pixel is represented by - the most significant bit (i.e., 0x80). - - The opposite convention is not supported by the FreeType - rasterizer, though it may possibly be implemented too if this - ever comes useful (ask the developers -- for now, nobody did). - - - Increasing offsets within a row correspond to right-most - positions in the bitmap (i.e., byte 1 contains the - 8 bits/pixels that are located on the right of the - 8 bits/pixels of byte 0). - - - A bitmap can be oriented in two ways: - - o If increasing row addresses within the buffer correspond to - lower vertical lines, the bitmap is said to go `down'. This - is, for example, the case of nearly all video RAMs. - - o If increasing row addresses within the buffer correspond to - higher vertical lines, the bitmap is said to go `up'. This - is the case, for example, for OS/2 bitmaps. - - The `direction' of a bitmap is called `flow' to avoid any - confusion. In both cases, the rasterizer ALWAYS matches the - vector coordinate (0,0) with the lower-left corner of the - *lower-left* pixel in the bitmap. - - The following graphics illustrate these ideas: - - - - Y ^ - | A `down-flow' bitmap. - +--+--+--+--+--+--+--+--+ On the left is each - | | | | | | | | | row's number and its - 0: 0 | | | | | | | | | offset in the bitmap - +--+--+--+--+--+--+--+--+ buffer (where `w' is - | | | | | | | | | the width, in bytes, - 1: w | | | | | | | | | of a single bitmap - +--+--+--+--+--+--+--+--+ row). Note that the - | | | | | | | | | origin is located at - 2: 2*w | | | | | | | | | the lower left, i.e., - +--+--+--+--+--+--+--+--+ near the leftmost bit - | | | | | | | | | of the last bitmap - 3: 3*w | | | | | | | | | row. - -@--+--+--+--+--+--+--+-----> X - |[0,0] - - - - Y ^ - | An `up-flow' bitmap. - +--+--+--+--+--+--+--+--+ On the left is each - | | | | | | | | | row's number and its - 3: 3*w | | | | | | | | | offset in the bitmap - +--+--+--+--+--+--+--+--+ buffer (where `w' is - | | | | | | | | | the width, in bytes, - 2: 2*w | | | | | | | | | of a single bitmap - +--+--+--+--+--+--+--+--+ row). Note that the - | | | | | | | | | origin is located at - 1: w | | | | | | | | | the lower left, i.e., - +--+--+--+--+--+--+--+--+ near the first bit in - | | | | | | | | | the buffer. - 0: 0 | | | | | | | | | The first buffer bit - -@--+--+--+--+--+--+--+-----> X corresponds to the - |[0,0] rectangle [0,0]-[1,1] - in the vector plane. - - - 2. Bitmap descriptors - - Now that you understand all these details, a bitmap can be - described to the rasterizer engine through a map, which - structure must be set up by client application: - - struct TT_Raster_Map_ - { - int rows; /* number of rows */ - int cols; /* number of columns (bytes) per row */ - int width; /* number of pixels per line */ - int flow; /* bitmap orientation */ - - void* bitmap; /* bit/pixmap buffer */ - long size; /* bit/pixmap size in bytes */ - }; - typedef struct TT_Raster_Map_ TT_Raster_Map; - - where the fields stand for: - - rows: - The number of rows within the bitmap buffer. - - cols: - The number of columns, i.e. bytes per row within the - buffer. It corresponds to the `w' value used in the above - graphics. - - width: - The number of pixels (i.e. bits) per row in the buffer. The - rasterizer always clips its rendering to the bit width - specified in this field, even if the `cols' fields - corresponds to a larger width. - - flow: - The bitmap flow. Use the constants TT_Flow_Up and - TT_Flow_Down exclusively for this field. - - bitmap: - A typeless pointer to the bit buffer. - - size: - The total size of the bit buffer in bytes. This is not used - directly by the rasterizer, so applications can use it. - - Note that the `cols' field should always be bigger than the - value of `width' multiplied by 8. The rasterizer clips the - generated bitmap to the `width' first bits in a row. - - Note also that it is of course allowed to create, for example, a - Windows or X11 bitmap through a normal system-specific API call, - using a TT_Raster_Map that describes it to the rasterizer. It - is thus possible to draw directly into such OS specific - structures. - - - IMPORTANT: ***************************************************** - - When rendering a bitmap, the rasterizer always OR-es the shape - on the target bitmap. It is thus possible to draw several - shapes into a single surface which successive calls to the - render functions. - - **************************************************************** - - - 3. Pixmap properties - - The rasterizer only supports 8-bit pixmaps, where one pixel is - represented by a single byte. They must conform to the - following rules: - - - A 5-entries palette is used to generate an outline's pixmap in - the buffer. They correspond to: - - palette[0] -> background - palette[1] -> `light' - palette[2] -> `medium' - palette[3] -> `dark' - palette[4] -> foreground - - where the terms `light', `medium', and `dark' correspond to - intermediate values between the first (background) and last - (foreground) entry. - - The upcoming FreeType 2.0 will feature an additional - anti-aliasing logic with a 17-entries palette. - - - Lines are padded to 32 bits, i.e. 4 bytes. A pixmap row thus - takes a multiple of 4 bytes in its buffer. - - - Increasing offsets within a row correspond to right-most - positions in the bitmap (i.e., byte/pixel 1 is to the right of - byte/pixel 0). - - - A pixmap can be oriented in two ways, following the same rules - as a bitmap regarding its flow. - - - IMPORTANT: ***************************************************** - - In order to improve performance when rendering large outlines - with anti-aliasing, the rasterizer draws pixels in runs of - 4-bytes ONLY when at least one of their `colour' isn't 0 - (background). - - This means that you should ALWAYS CLEAR the pixmap buffer before - calling the rendering function, you may otherwise experience - ugly artefacts, which are possibly left from a previous - rendering! - - In general, it is not possible to do colour compositing with the - FreeType rasterizer (compositing is if you want to superpose a - transparent coloured layer on top of an image). This is mainly - due to the fact that: - - - There are too many pixel formats to support. - - - There is not a single portable way to do it anyway. - - - It really is a graphics processing question, not one that - should be solved by a text rendering engine. - - **************************************************************** - - - 4. Pixmap descriptors - - Pixmaps use the same descriptor structure as bitmaps, with a few - differences in interpretation: - - - The `cols' field is used to indicate the number of _bytes_ in - a pixmap row. It must thus be a multiple of 4! - - - The rasterizer clips the outline to the first `width' - pixels/width within each buffer row. - - As usual, it should be possible to use a system-specific pixmap - and render directly into it, as long as you set up a descriptor - for it. - - -------------------------------------------------------------------------- - - -III. Rendering an outline -------------------------- - - Now that you understand how the rasterizer sees the target bitmaps - and pixmaps it renders to, this section will explain how the - rendering eventually happen. - - - 1. Outline coordinates and extents - - Let's first consider the case where we're rendering text - directly into a huge single bitmap. To do that, we simply - translate each glyph outline before calling the rasterizer. - Here the roadmap: - - - Vectorial coordinates [0,0] are mapped to the lower left - `corner' (in the grid) of the lower left pixel in the bitmap - (whatever its flow is). - - - When the glyph loader returns an outline, the latter is placed - so that the coordinate [0,0] corresponds to the current cursor - position. - - This means that: - - - If we use our own cursor (cx,cy) within the bitmap during text - rendering, we must translate the outline to its position - before rendering it, e.g. with - - TT_Translate_Outline( outline, cx, cy ) - - (and the cursor position must be incremented after rendering - each glyph). - - - Before translation (i.e., when it is returned by the glyph - loader), the glyph outline doesn't necessarily lie on any of - the coordinate axes, nor is it limited to the first quadrant - (i.e., x>0 and y>0 is not true in general). - - Its extent can be computed with the function - TT_Get_Outline_BBox(), which returns the minimum and maximum - values of its X and Y point coordinates (in 26.6 format, of - course). - - - 2. Computing an outline's dimensions in pixels - - In many cases, however, it is much better to render individual - glyph bitmaps, then cache them with appropriate metrics in order - to render text much more quickly at a given point size. - - To be able to render the smallest possible bitmap, the exact - outline's extent dimensions in pixel are required. Again a - roadmap: - - - Get the outline's bounding box in vector coordinates: - - Simply call the TT_Get_Outline_BBox() function which will - return the values of xMin, yMin, xMax, and yMax in vector - (i.e. fractional) coordinates. - - - Grid-fit the bounding box: - - Because of the way pixels are lit in the bitmaps relative to - the position of their `centers' within the shape (see - section I), it is necessary to align the values of xMin, xMax, - yMin, and yMax to the pixel grid in order to compute the width - and height of the resulting bitmap. This can be done with: - - xMin = FLOOR ( xMin ); with FLOOR(x) == (x & -64) - xMax = CEILING( xMax ); CEILING(x) == ((x+63) & -64) - yMin = FLOOR ( yMin ); - yMax = CEILING( yMax ); - - The extents in pixels can then be simply computed as: - - pixel_width = (xMax - xMin) / 64; - pixel_height = (yMax - yMin) / 64; - - Note that because of drop-out control, and because the - bounding box computed currently includes all Bezier control - points from the outline, the bitmap may be slightly larger - than necessary in some cases. - - Some improvements are planned for FreeType 2.0; for now, you - should consider that finding the `exact' bitmap bounding box - requires to scan all `borders' to detect null columns or rows. - However, the values are right in most cases. - - NOTE: It seems that in some *rare* cases, which relate to - weird drop-out control situations, the above dimensions - are not enough to store all bits from the outline (there - are one or more bits `cut' on the edge). - - This being hard to study (it only appears in very poorly - hinted fonts), we leave this problem to FreeType 2.0. - - - Create/setup a bitmap with the computed dimensions. DON'T - FORGET TO CLEAR ITS BUFFER TOO! - - - Translate the outline to stick within the bitmap space. This - is done easily by translating it by (-xMin,-yMin), where you - should ALWAYS USE THE GRID-FITTED VALUES computed above for - xMin and yMin: - - TT_Translate_Outline( outline, -xMin, -yMin ); - - - IMPORTANT: *************************************************** - - For technical reasons, you should never translate a HINTED - outline by a non-integer vector (i.e., a vector which - coordinates aren't multiples of 64)! This would CERTAINLY - completely RUIN the delicate HINTING of the glyph, and will - result probably in pure GARBAGE at small point sizes. - - Of course, if you're not interested in hinting, like when - displaying rotated text, you can ignore this rule and - translate to any position freely. - - ************************************************************** - - - Render the bitmap (or pixmap). - - DON'T FORGET TO STORE THE GRID-FITTED xMin and yMin WITH THE - BITMAP! This will allow you later to place it correctly - relative to your cursor position. - - - Here's some example pseudo code: - - { - ... load the glyph ... - - TT_Outline outline; - TT_BBox bbox; - TT_Raster_Map bitmap; - - - /* get the outline */ - TT_Get_Glyph_Outline( glyph, &outline ); - - /* compute its extent */ - TT_Get_Outline_BBox( &outline, &bbox ); - - /* Grid-fit it */ - bbox.xMin &= -64; - bbox.xMax = ( bbox.xMax + 63 ) & -64; - bbox.yMin &= -64; - bbox.yMax = ( bbox.yMax + 63 ) & -64; - - /* compute pixel dimensions */ - width = (bbox.xMax - bbox.xMin) / 64; - height = (bbox.yMax - bbox.yMin) / 64; - - /* set up bitmap */ - bitmap.rows = height; - bitmap.width = width; - bitmap.cols = (width + 7) / 8; - bitmap.size = bitmap.rows * bitmap.cols; - bitmap.bitmap = malloc( bitmap.size ); - if ( !bitmap.bitmap ) - return error_memory... - - /* clear the bitmap buffer! */ - memset( bitmap.bitmap, 0, bitmap.size ); - - /* translate outline */ - TT_Translate_Outline( &outline, -bbox.xMin, -bbox.yMin ); - - /* render it within the bitmap */ - TT_Get_Outline_Bitmap( engine, &outline, &bitmap ); - - /* We're done; don't forget to save bbox.xMin and */ - /* bbox.yMin to adjust the bitmap position when */ - /* rendering text with it */ - - ... - } - - - 3. The case of transformed/rotated glyphs: - - You may want to apply a transformation other than a translation - to your glyph outlines before rendering them. For example, a - simple slant to synthesize italics, or a slight rotation. - - In all cases, it is possible to render individual glyph bitmaps. - Just make sure to follow the same process AFTER you have - transformed you outline! - - DON'T FORGET THAT YOU NEED TO RE-COMPUTE THE BBOX TO GET THE - CORRECT PIXEL DIMENSIONS AFTER A TRANSFORMATION. - - --------------------------------------------------------------------- - - -IV. Anti-aliasing palette and other concerns - - When rendering pixmaps, using the TT_Get_Outline_Pixmap() or - TT_Get_Glyph_Pixmap() functions, the rasterizer uses a 5-entries - palette of 8-bit deep `colors'. - - By default, this palette is set to ( 0, 1, 2, 3, 4 ), but one can - change it to suit your needs with TT_Set_Raster_Palette(). - - While in bitmap mode, it simply OR-es the pixel values to the - target bitmap that has been passed to TT_Get_Outline_Bitmap(). - - For pixmaps it simply writes directly the palette entries - corresponding to the `color' of the `lit' pixels it has computed. - This means that it is NOT POSSIBLE to render text in a single - pixmap with multiple calls to TT_Get_Outline_Pixmaps() within the - same target! - - The reason is that `gray' pixels of two distinct outlines are not - `added' when they overlap (the operation called 'compositing'), as - it could be expected by applications. - - The following graphic shows this effect when rendering two - overlapping anti-aliased shapes: - - - *** *** - .** .** - ** **. **. ** - .*. .*.. .*..*. - .*. + .*. = ---> ..*. - .*. ** | .*. ** - ** | ** - **. | **. - *** | *** - | - - missing black pixel after second - rendering... - - - There is no simple way to perform a composition within the - rasterizer. This would not be portable; moreover, it would be - extremely slow if it is too general. This operation is thus left - to client applications which can use their own system-specific API - for transparently blitting the glyph pixmaps into a surface to - form text. - - NOTE: - - If your system doesn't support transparent/alpha blits, you can - still have a look at the source file `freetype/test/display.c'. - It uses a large pixmap, with a special palette trick to render all - text quickly, then convert everything to `real' colors for - display. - - --------------------------------------------------------------------- - - -Conclusion ----------- - - We've seen how the FreeType rasterizer sees bitmaps through - descriptors, as well as the mapping which exists between the - vector coordinate space and the pixel position space. - - You should now be able to render outlines into bitmaps and pixmaps - while applying transformations like translation, slanting, or - rotation. Don't forget a few rules, however: - - - Always clear the bitmap/pixmap buffer before rendering (unless - you want to render several glyphs in a single _bitmap_; it won't - work on a pixmap). - - - A pixmap `cols' field, i.e. the size in bytes of each rows, must - be a multiple of 4. - - - Never translate a hinted outline by a non-integer vector if you - want to preserve the hints (i.e., the vector's coordinates must - be multiples of 64). - - - Finally, don't expect the rasterizer to composite transparent - `grays' for you in a single target pixmap through multiple - calls. - - ---- end of bitmaps.txt --- diff --git a/Build/source/libs/freetype/docs/changes.txt b/Build/source/libs/freetype/docs/changes.txt deleted file mode 100644 index e76cf6fce66..00000000000 --- a/Build/source/libs/freetype/docs/changes.txt +++ /dev/null @@ -1,1031 +0,0 @@ -Changes between FreeType version 1.3.1 and version 1.5 -====================================================== -** -** WARNING: Because of the Apple patents problem, the TrueType -** bytecode interpreter is now turned *OFF* by default. Edit -** ft_conf.h if you want to (and can) use grid-fitting. -** - -Note: Version 1.4 has never been released officially. - - -Documentation -------------- - - apiref.txt has been again revised. - - - apirefx.txt has been extended to document the GPOS interface. - - - TODO has been dropped (since we consider there will be no - further development). - - -API functions -------------- - - TT_Char_Index() now uses TT_ULong for character codes. It now - supports cmap tables in format 8 and 12. - - - New error code (TT_Err_Too_Many_FDefs) when a font defines too - many functions. - - -Architectures -------------- - - Support files for BeOS have been contributed by Chris Herborth - . - - - The EXPORT_DEF/EXPORT_FUNC/etc. stuff has been replaced with a - more elaborate scheme (coming from the Freetype 2 experience) - that allows more complex cases of interface to be handled. See - ttconfig.h for details. - - - Cleaning up of the ft_conf.h files to remove obsolete stuff. - - -Extensions ----------- -** -** Full support for the GPOS table has been implemented. As usual, -** the documentation is available in apirefx.txt, and ftstrtto -** demonstrates how to use it. -** - - TT_GSUB_Add_String() has two additional parameters needed for - GPOS support. - - - TT_CharMap_Next() of the ftxcmap extension now uses `TT_ULong' - as the second parameter. - - - A long-lived bug in ftxpost.c (with 2.0 format, when the - additional names were out of order, the names were incorrectly - assigned) has been extermined. Thanks to Jean-Christophe Dubacq - . - - -Test programs -------------- - - ftstrtto now uses `S' instead of `G' to toggle activation of - GSUB. `P' will toggle GPOS activation (this is new). UTF-8 - values greater than U+FFFF are supported. - - - ftdump will dump some information about the GPOS table also. - - - ftstrpnm now supports coloured text. - - -Miscellaneous -------------- -** -** You can now at your option use either the FreeType license -** (usable in commercial products) or the GPL license (usable with -** other free software, but this requires any further development -** to be released to the public). -** - - The library has been updated to use libtool 1.3.4. - - - Fixed a mutex bug in the ttraster module. - - - The FreeType license has been reworded to improve legibility - (thanks to Ruthanna Wilson ). - - - Fixed a property bug in the arabic module. - - - Various small fixes to reduce compiler warnings. - - - Fixed the thread-safe build. The following files didn't compile - properly when TT_CONFIG_OPTION_THREAD_SAFE is defined: - - lib/arch/unix/ttmmap.c - lib/extend/ftxsbit.c - lib/extend/ftxgpos.c - lib/extend/ftxgdef.c - lib/extend/ftxgsub.c - - - More tests to prevent division by zero. - - - has been updated. - - - OS/2 table version 2 is now recognized. - - -Contributed programs --------------------- - - ttf2bdf: - Changed bitmap generation for outline glyphs to Flow_Down. - - - Added support for strikes (bitmaps). - - - Added missing parameter documentation. - - - Minor documentation changes and compatibility with latest - Freetype. - - - ttf2pk: - Added support for multiple SFD files. - - New option `-L' to provide a ligature mapping file (patch from - CHO Jin-Hwan ). - - New option `-w' to emit PostScript encoding vectors for - subfont files to be used with pdfLaTeX (patch from CHO - Jin-Hwan ). - - Add support for a configuration file (ttf2pk.cfg) which can - read more than a single map file, similar to pdfTeX (patch - from CHO Jin-Hwan ). - - Support for character codes greater than 0xFFFF (patch from - Dominique Unruh ). - - ttf2tfm no longer assumes that the x-height is always 400 PS - units. - - -Pascal source code ------------------- -** -** The Pascal source files have been completely removed from the -** FreeType distribution. It is now available as an extra package; -** for more information please visit http://www.freetype.org. -** - - -Changes between FreeType version 1.3 and version 1.3.1 -====================================================== - - Bug fixes. - - - -Changes between FreeType version 1.2 and version 1.3 -==================================================== - - -Documentation -------------- - - Improved installation instructions. - - - Complete revision of almost all documentation files. - -** -** Added the file apirefx.txt to document all extensions to the -** FreeType library. Consequently, errstr.txt has been removed. -** - - Added the file optimize.txt, explaining how to improve FreeType - on a given architecture. - -** -** Documentation about possible patent restrictions added. -** - - Added howto/mac.txt (stating basically that the FreeType team - can't support the Macintosh platform because of lack of - knowledge). - - - Added howto/msdos.txt, documenting compilation for various 16bit - and 32bit compilers. - - -API functions -------------- - - TT_Load_Kerning_Table() now returns TT_Err_Invalid_Argument - instead of TT_Err_Bad_Argument (which is used for an internal - error only) for an invalid argument. The same holds for - TT_Get_Face_Widths() and TT_Get_Glyph_Big_Metrics(). - - - If the glyf table is missing, the new error code - TT_Err_Glyf_Table_Missing is returned instead of - TT_Err_Table_Missing. This affects TT_Get_Face_Widths(), - TT_Load_Glyph(), and TT_Open_Face(). - -** -** New function TT_FreeType_Version() to get the major and minor -** version dynamically. -** - - TT_Load_Glyph() has now two additional flags. TTLOAD_PEDANTIC - will force pedantic handling of the glyph instructions, and - TTLOAD_IGNORE_GLOBAL_ADVANCE_WIDTH is needed for some fonts - which have correct advance width values for the glyphs but an - incorrect global advance width value. - - - TT_Get_Glyph_Big_Metrics() now returns correct vertical bearing - values (both linear and pixel values). - - - New error code TT_Err_Glyf_Table_Missing (0x89) used to indicate - a missing `glyf' table. - - - The following macros have been shortened to stay within the - limit of 32 characters (the longer macro names are still - available if HAVE_LIMITS_ON_IDENTS is not defined). - - TT_UCR_ARABIC_PRESENTATION_FORMS_A -> - TT_UCR_ARABIC_PRESENTATIONS_A - TT_UCR_ARABIC_PRESENTATION_FORMS_B -> - TT_UCR_ARABIC_PRESENTATIONS_B - - TT_UCR_COMBINING_DIACRITICAL_MARKS -> - TT_UCR_COMBINING_DIACRITICS - TT_UCR_COMBINING_DIACRITICAL_MARKS_SYMB -> - TT_UCR_COMBINING_DIACRITICS_SYMB - - - freetype.h: - - TT_Bool is now typedef'ed as `typedef int'. - - New typedefs: TT_Int and TT_UInt. - - Declarations of TT_Matrix_Multiply() and TT_Matrix_Invert() - have been removed since these functions were never - implemented. - - -Architectures -------------- - - Added `ansi' directory to the supported architectures -- any - ANSI C compiler should compile FreeType with these files. - - - Added `debugger' directory to the architectures. Use this to - build a special version of FreeType for bytecode debugging - (tested with OS/2 and Unix). - - - Added more files to the `mac' architecture directory to make - basic support complete. - - - Support for VMS added (to compile the library only). - Contributed by Jouk Jansen . - - - Added `win16' architecture directory for older Windows versions. - A graphics driver (gw_win16.c) for the example programs is - available also. - -** -** Antoine Leca contributed support for many MS-DOS and Windows -** compilers (including library fixes to make it 16bit compliant): -** - Borland C++ for MS-DOS (tested with v. 3.1, 4.02, 5.0), - Microsoft C for MS-DOS, - Turbo C (versions 1.5 and 2.0 -- version 1.0 is too old), - Borland C++ 4.0 and 5.0 for Windows (both 16bit and 32bit - versions), - gcc under Win32 (Cygwin32 or MinGW32), - Microsoft Visual C++ 2.x, 4.x, 5.0, and 6.0 for Windows - - - Support for the gettext package with DJGPP compiler has been - added. - - - Since many older compilers on both MS-DOS and Windows platforms - have problems to build dependency files automatically, scripts - for gcc under Unix have been added to do this. Similarly, a - script to produce a DLL definition file is now included in the - distribution. - - - Moved old win32 support to contrib/win32, replacing all CR/LF - with LF, and using only lowercase file names for consistency. - Additionally, some missing files in the FreeType 1.2 - distribution have been added. Antoine Leca has written a new, - light-weight graphics driver (gw_win32.c) which fits better into - the current scheme. - - - Small additions have been made to the Amiga graphics driver. - - - The use of the ARM macro (intended for this architecture) has - been completely removed due to lack of support. - - - Checks for endianness have been removed completely since - FreeType isn't dependent on it. - - -Global compilation macros -------------------------- - - The TT_HUGE_PTR macro has been added to support fonts with more - than 16000 characters or so with 16bit MS-DOS compilers. - Consequently, the files hugefile.c and hugemem.c have been added - which provide special versions for these compilers. - - - HAVE_LIMITS_ON_IDENTS has been introduced to overcome - restrictions with old compilers which can't digest identifiers - longer than 32 characters. - -** -** Added option TT_CONFIG_OPTION_NO_INTERPRETER to desactivate the -** bytecode interpreter completely. This option is off by default. -** - - Added options TT_CONFIG_OPTION_STATIC_RASTER and - TT_CONFIG_OPTION_STATIC_INTERPRETER to build static versions of - the respective components. Off by default. (It was formerly - called TT_STATIC_RASTER.) - - Better debugging support (see ttconfig.h for details): - DEBUG_LEVEL_TRACE, DEBUG_LEVEL_ERROR, DEBUG_INTERPRETER, - DEBUG_MEMORY, DEBUG_FILE. - - Added TT_MAX_EXTENSIONS to define the maximal number of - extensions (currently set to 8 -- this macro was previously in - ttextend.c). - - -Extensions ----------- -** -** Full support for TrueType Open resp. OpenType GSUB tables has -** been implemented. It uses a GDEF table if available; otherwise, -** a method to construct an artificial GDEF table has been added -** (note that GDEF parts not related to GSUB are loaded but not -** further handled). An example how to use it can be found in the -** new test program ftstrtto. -** - - Rudimentary GPOS support -- currently, you can load the GPOS - subtables but nothing more. - -** -** Documentation for all extensions can be found in the file -** apirefx.txt. -** - - Fixed a bug in TT_Load_PS_Names() which returned a local, thus - invalid pointer. - -** -** Support for embedded bitmaps has been added (thanks to -** YAMANO'UCHI Hidetoshi who has contributed -** a lot of the code). It can handle `bloc', `bdat', `EBLC', and -** `EBDT' tables. [TrueType embedded bitmaps are also called -** `sbits' (for `scaler bitmaps').] -** - -Test programs -------------- -** -** A new test program called ftstrtto has been added to test -** TrueType Open features. Almost all available FreeType -** extensions are used in this program -- it displays a UTF 8 -** encoded string on screen, allowing to toggle kerning, embedded -** bitmaps, GSUB support, and hinting. Additionally, it has a -** special module to handle the Arabic script properly (in -** arabic.c), i.e., it treats initial, medial, final, and isolated -** glyphs correctly. -** - - The new module `blitter.c' provides the blitting function - Blit_Bitmap() for bitmaps of various depth. - - - The debugging program `fdebug' has been rewritten to provide a - better user interface. - - - ftdump has been extended to show information about embedded - bitmaps and GSUB data. It will now also show the PostScript - name of the font. - - - The new test program ftmetric can dump metrics and glyphs -- it - uses the gettext package for i18n support. - - - Another new test program is ftsbit to dump embedded bitmaps - contained in a font. - - - A small bug has been fixed in ftstring to compute the right - bounding box of the string. - - - ftview has been extended to display embedded bitmaps also - (switch `-B'). - - - The maximal point size of glyphs in ftview has been increased to - 5000pt -- this has shown some clipping bugs in the engine which - have been fixed meanwhile. As a demonstration, it also - activates tracing of the raster and gload component if - DEBUG_LEVEL_TRACE (see above) is defined. - - -Miscellaneous -------------- - - The library has been updated to use autoconf 2.13 and libtool - 1.3.3 throughout. - -** -** FreeType will now install its header files in -** /freetype/... since the number of files has grown again. -** - - Added a lot of EXPORT_FUNC/EXPORT_DEF macros to functions for - correct exporting in DLLs. - -** -** FreeType can now successfully load Mac fonts which don't have an -** `OS/2' table. -** - - Fixed a bug in handling composite glyphs where the composite - elements use attached points. - - - Better debugging support for instructions. - - - Various workarounds have been implemented to support slightly - broken fonts (or rather, fonts not following exactly the - TrueType specifications). - - -Contributed programs --------------------- - - ttf2bdf: -** -** Swapped all the columns in the mapping files. -** - - Changed the mapping table loader to index on the second column - instead of the first. - - - Changed the includes to deal with compilation on Windows. - - - Added some new mapping tables. - - - Fixed an incorrect parameter for Traditional C compilers. - - - Added generation of the _XFREE86_GLYPH_RANGES properties. - - - Change all CRLF's, CR's, or LF's in copyright strings to - double spaces. - - - Changed it so gcc 2.8.1 likes the return type of main() again. - - - Changed Makefile.in a bit to make installation more - consistent. - - - Changed the lower limit for the vertical and horizontal - resolutions to be 10dpi instead of 50dpi. - - - ttf2pfb: - - Has now rudimentary support for mapping tables (switch `-m') - and better PostScript name support for ordinary Type 1 fonts - -- nevertheless, it is far from finished, and there are some - plans to merge it with ttf2pt1. - - configure script added. - - Option `-k' added to keep output file in case of error. - - `-v' is now really verbose. - - ttf2pk: -** -** Support for MiKTeX's file searching mechanism added (ttf2pk -** and ttf2tfm are now part of the MiKTeX). -** -** -** Support for rotated glyphs added (only for subfonts; switches -** `-x' and `-y' to activate rotation resp. controlling the y -** offset). If a GSUB table with the `vert' feature is available -** in the font, vertical glyph presentation forms are used. -** - - Added warning message to the configure script in case the - kpathsea library isn't used. - - - Fixed an omission in Bg5.sfd. - -** -** Added UBg5plus.sfd for mapping Unicode to Bg5+ encoding. -** Similar SFD files now available: UBg5.sfd, UGB.sfd, UGBK.sfd, -** UJIS.sfd, UKS.sfd. -** - - Added documentation for dvidrv.btm. - - - Will now compile with kpathsea version 3.3 or newer also. - - - Subfont ligature support added as needed in the HLaTeX package - for Korean (switch `-l'). - -** -** Since ttf2pk support has been added to teTeX version 1.0 and -** newer, no patch are necessary. -** - - Fixed a string initialization bug in buildtfm() (file - tfmaux.c). - - - Added more documentation about file searching and a full - example how to use ttf2tfm. - - - Fixed a small bug in ttf2tfm.c which printed `(null)' instead - of nothing for the ttfonts.map entry if the font name prefix - string was empty. - - - ttf2tfm will now use the first type 0 kerning table only - (instead of the first kerning table only). - - - Both ttf2pk and ttf2tfm will now apply stretching and slanting - directly to the outline. This usually yields smaller bounding - boxes. - - - ttf2tfm will now output a comment string to the VPL file to - illustrate the meaning of the `HEADER' lines. - - - ttfbanner: - - Added Makefile for emx+gcc compiler. - - - Added autoconf support. - - - Fixed a lot of compilation warnings. - - -Pascal source code ------------------- - - The Pascal source code has been seriously updated since 1.2. - Here are the most important changes. - -** -** A. Support for charmaps and the name table -** -** -** The Charmap functions were not correctly implemented before -** 1.3. They are now available in the Pascal API. -** -** -** Similarly, the `name' table was not loaded, and the -** TT_Get_Name function wasn't implemented before 1.3. It is now -** done. -** -** -** The Pascal engine is now feature-complete, except that it -** provides no extensions like the C source code. -** - - B. Improvements in the glyph loader and the interpreter - - - Several changes were made in order to be able to load more - broken fonts, as well as old Apple fonts which happened to use - some very rarely-used aspects of the specification. - - - Note that the Pascal bytecode interpreter, contrary to the C - version, is not able to silently accept broken glyphs yet, or - even use the flag TTLOAD_PEDANTIC. Implementing this in - Pascal would require some serious work (unlike to C, where - this feature was introduced easily with the use of a few - macros to minimize source changes). So TT_Load_Glyph might - return an error with the Pascal engine while the C one accept - the same request successfully. - - - C. Ports to Delphi and Free Pascal - - This release has been compiled on the following compilers: - - - Free Pascal 0.9 (Dos,Linux,Win32,OS/2) - - Virtual Pascal 1.1 and 2.0 (Win32 and OS/2) - - Turbo Pascal 6.0 and Borland Pascal 7.0 (Dos) - - Delphi 1, 2, and 3. It should work with D4 and D5 also. - (Windows) - - Note that most of the test programs will not compile on - anything except MS-DOS or OS/2. The debugger also needs the - Turbo Vision library. The library, however, should compile - fine with all tools cited above. - - - -Changes between FreeType 1.1 and 1.2 -==================================== - -Mostly bug fixes and build fixes. - - - -Changes between FreeType 1.0 and 1.1 -==================================== - -There were various changes since the 1.0 release. Here they are -summarized: - -- Added vertical layout support - - The engine now loads the vertical header and metrics if available - and makes them visible through the new `vertical' field of the - face properties (it is set to NULL if no vertical data was found - in the font file). - - The glyph loader now loads all metrics (horizontal and vertical), - but still returns the horizontal ones only with the API - TT_Get_Glyph_Metrics(). However, TT_Get_Glyph_Bit_Metrics() has - been added to extract them from a glyph container. - - -- Serialization of coordinates arrays in TT_Outline() - - As announced in the previous API reference, the structure of - TT_Outline changed slightly, as well as the naming of its fields. - The points are now stored in a single array of TT_Vector, instead - of two parallel arrays (one for the Xs, the other for the Ys). - - -- New API function TT_Get_Face_Metrics() - - Useful to access unscaled metrics like left side bearings, advance - widths, top side bearings, and advance height, for a given range - of glyphs. - - -- New extension: ftxcmap.c - - Used by some applications to enumerate and parse the charmap - tables in an easier way. - - -- New extension: ftxpost.c - - With this extension you can access the PostScript glyph names - given in the `post' table. - - -- New extension: ftxwidth.c - - This extension is used to parse the `glyf' table to extract the - bounding boxes of a given range of glyphs. This is much faster - than loading individual glyphs. - - -- The FreeType engine is now THREAD-SAFE and REENTRANT - - However, the implementation of ttmutex must be refined for your - system -- the default one is a dummy and doesn't do anything! - Beware! THIS IS STILL IN BETA. - - The thread-safe and reentrant builds now compile and seem to run - well when used with a single thread. Some efforts have been spent - to check the coherency of the lock contentions within the engine, - but we haven't tested multi-threading heavily. - - -- Large internal re-organization - - Too technical to explain shortly, but results in a much better - memory footprint and smaller code, especially when opening - multiple faces. - - -- Fixes/enhancements to the interpreter - - The infamous Monotype.com bug (a new free font released by - Microsoft Typography a few days after the FreeType 1.0 release!) - is fixed, of course, as well as few other little and unpleasant - artifacts... - - The interpreter was also seriously re-organized to allow the use - of a very large `switch' statement, instead of a jump table, which - results in smaller and faster code on some systems (depending of - the compiler too). Users of the library can experiment with the - TT_CONFIG_OPTION_INTERPRETER_SWITCH configuration macro to test - this. - - -- Single object compilation mode - - The core engine can now be compiled into a single object file. - This allows optimizing compilers to do more global optimizations, - and get rid of many of the `intermediate' internal symbols used to - link internal engine components together. - - The engine now takes only 48kByte of stripped Intel object code! - - -- DLL compilation mode - - In order to allow the compilation of the library as a DLL, the - keyword EXPORT has been added as a prefix to all high-level API - functions found in `freetype.h'. Define it to the value you need - before `#include "freetype.h"' when building the DLL (if undefined - it will default to nothing within this header file). - - (Apparently, this is only useful on Win32, maybe on OS/2.) - - -- Renamed configuration macros - - These were renamed to forms of TT_CONFIG_OPTION_XXXXX_YYYYY. - They're located in ttconfig.h and can be defined/undefined - manually by developers who want to tune the compilation of the - engine: - - TT_CONFIG_OPTION_EXTEND_ENGINE - - Allows extensions to be linked with the single object engine. - If you don't need any of them, you may save one or more - kilobytes by undefining it. - - - TT_CONFIG_OPTION_GRAY_SCALING - - Allows the compilation of the gray-scaling (font smoothing) - code in ttraster. If undefined, some APIs won't be available: - - TT_Set_Raster_Palette(), - TT_Get_Glyph_Pixmap(), - TT_Get_Outline_Pixmap() - - - TT_CONFIG_OPTION_INTERPRETER_SWITCH - - Uses a large `switch' statement in the bytecode interpreter - instead of a constant call-table. Depending on your processor - and compiler, this can lead to significant reduction of code - size and/or increase of performance. - - - TT_CONFIG_OPTION_THREAD_SAFE - - When defined, a thread-safe version of the engine is built. A - thread-safe version is a bit bigger, probably not slower, than - a non-threaded build. ATTENTION: You must redefine the file - `lib/ttmutex.c' for your own platform to get it to work - correctly. - - - Some more options may come in the future... - - -- New API functions TT_MulDiv() and TT_MulFix()" - - To help you compute `a*b/c' with 64-bit intermediate precision, or - `a*b/0x10000' with the same one... - - These are not necessarily the fastest functions but they are - clearly portable and overflow-safe. Your runtime/compiler may - provide better replacements, though... - - - -Changes between FreeType Beta and 1.0 -===================================== - -There were a number of changes since the public beta: - - -I. Bug fixes ------------- - - The following bugs have been fixed in this release: - - - - Incorrect advance width and left side bearings - - The glyph loader has been re-designed to match the values found - in the pre-calc tables... - - - - Problems when opening multiple fonts - - Fixed. A stupid bug in the i/o component. - - - - Problems with some Georgian fonts - - Fixed. Discovered some new undocumented opcodes behaviour... - - - - Buglets in the test programs which made them return invalid - error codes - - Fixed. - - - - Memory leaks when trying to open broken some font files - - Fixed. Waiting for more broken fonts to test... - - - - Non-square resolutions don't work or display correctly - - They now work very well! - - - - The scan-line converter, while in font-smoothing mode, doesn't - perform horizontal drop-out control - - This wasn't really bug, but the feature has been correctly - added. - - -The remaining `features' persist, as they're not essential yet: - - - The `rotated' and `stretched' flags do not work (glyph loading - will then return errors). However, it is still possible to - rotate or transform any outline without setting these flags. - - - We always use drop-out mode number 2, as some of the values - returned by some `cvt programs' seem invalid for now... - - -Note also that an `event hook/callback' has been introduced in this -release, but is still under alpha (not even beta; it is commented -out currently). You should not rely on this... - - -II. Code changes ----------------- - - 1. API Changes - - A few API changes were necessary in order to support important - features, or future improvements which will come in later - releases. - - - - TT_Set_Instance_Resolution() was renamed to - TT_Set_Instance_Resolutions(). - - - - TT_Set_Instance_PointSize() has disappeared. Instead, the - following APIs have been defined: - - TT_Set_Instance_CharSize() - TT_Set_Instance_CharSizes() - TT_Set_Instance_PixelSizes() - - - - The TT_Engine class has been introduced. It models one - instance of the library, and is used to allow re-entrance and - shared library code. The functions which now depend on a - TT_Engine parameter are: - - TT_Init_FreeType() - TT_Done_FreeType() - TT_Open_Face() - TT_Open_Collection() - TT_Set_Raster_Palette() - TT_Get_Outline_Bitmap() - TT_Get_Outline_Pixmap() - - Note that there is _no_ sharing of objects between distinct - engines. - - - - Each face and instance object have an inside pointer which use - is reserved to client application. Several functions are - defined to set and read it: - - TT_Set_Face_Pointer() / TT_Get_Face_Pointer() - TT_Set_Instance_Pointer() / TT_Get_Instance_Pointer() - - - - TT_Apply_Outline_Matrix() has been renamed to - TT_Transform_Outline(). - TT_Apply_Outline_Translation() has been renamed to - TT_Translate_Outline() - TT_Apply_Vector_Matrix() has been renamed to - TT_Transform_Vector() - - all for the sake of clarity. - - - 2. Structural changes - - Some structures have evolved. - - - - The instance metrics have now two new fields which are - `x_scale' and `y_scale'. Each one is a scaling factor, - expressed in the 16.16 fixed float format (TT_Fixed), used to - convert one distance expressed in font units into the same - distance in fractional (26.6) pixels. - - - - A new structure TT_BBox has been defined to describe an - outline's bounding box. - - - - The outlines are now full-class citizen. It is possible to - create new outlines, copy, clone, transform, translate and - render them through specific methods of the TT_Outline class - (previously called TT_Glyph_Outline). Read the API reference - for a complete listing. - - - - The glyph metrics have a new structure: they contain a TT_BBox - field, a TT_Outline field, as well as three metrics values, - which are `bearingX', `bearingY', and `advance'. Read the - file `glyphs.txt' for more information about their definitions - and uses. - - - 3. Small but IMPORTANT changes - - - - The `max_Faces' field of a face's properties has disappeared. - It is replaced by `num_Faces' which gives the total number of - fonts embedded in a collection (the previous field gave the - total minus one). - - - - TT_Load_Glyph() now returns correctly placed outlines, and - computes advance widths which match the pre-calc values in the - "hdmx" table in nearly all cases. - - - - TT_Get_Glyph_Metrics() returns grid-fitted metrics for hinted - glyphs (i.e., loaded with the TTLOAD_HINT_GLYPH, or - TTLOAD_DEFAULT, flags). This includes the bounding box. To - get the exact bounding box of a hinted glyph, you should - extract its outline, then call TT_Get_Outline_BBox(). - - - - Some improvements in the glyph loader, which improves - drastically the placement of glyphs (especially composite - ones) which previously caused trouble for some fonts - (e.g. goudy.ttf). - - - - Several minor improvements in the interpreter to improve - rendering and bounds checking... - - - - Up-to-date Pascal source code, with output equivalent to the C - tree... - - ---- END --- diff --git a/Build/source/libs/freetype/docs/convntns.txt b/Build/source/libs/freetype/docs/convntns.txt deleted file mode 100644 index 01177854f3d..00000000000 --- a/Build/source/libs/freetype/docs/convntns.txt +++ /dev/null @@ -1,970 +0,0 @@ - - Conventions and Design in the FreeType library - ---------------------------------------------- - - -Table of Contents - -Introduction - -I. Style and Formatting - - 1. Naming - 2. Declarations & Statements - 3. Blocks - 4. Macros - -II. Design conventions - - 1. Modularity and Components Layout - 2. Configuration and Debugging - -III. Usage conventions - - 1. Error handling - 2. Font File I/O - 3. Memory management (due to change soon) - 4. Support for threaded environments - 5. Object Management - - -Introduction -============ - -This text introduces the many conventions used within the FreeType -library code. Please read it before trying any modifications or -extensions of the source code. - - - -I. Style and Formatting -======================= - -The following coding rules are extremely important to keep the -library's source code homogeneously. Keep in mind the following -points: - - - `Humans read source code, not machines' (Donald Knuth) - - The library source code should be as readable as possible, even - by non-C experts. With `readable', two things are meant: First, - the source code should be pleasant to the eye, with sufficient - whitespace and newlines, to not look like a boring stack of - characters stuck to each other. Second, the source should be - _expressive_ enough about its goals. This convention contains - rules that can help the source focus on its purpose, not on a - particular implementation. - - - `Paper is the _ultimate_ debugger' (David Turner :-) - - There is nothing like sheets of paper (and a large floor) to - help you understand the design of a library you're new to, or to - debug it. The formatting style presented here is targeted at - printing. For example, it is more than highly recommended to - never produce a source line that is wider than 78 columns. More - on this below. - - -1. Naming ---------- - - a. Components - - A unit of the library is called a `component'. Each component - has at least an interface, and often a body. The library comes - in two language flavors, C and Pascal (the latter severely out - of date unfortunately). A component in C is defined by two - files, one `.h' header and one `.c' body, while a Pascal - component is contained in a single `.pas' file. - - All component source file names begin with the `tt' prefix, with - the exception of the `FreeType' component. For example, the - file component is implemented by the files `ttfile.h', - `ttfile.c', and `ttfile.pas'. Only lowercase letters should be - used, following the 8+3 naming convention to allow compilation - under DOS. - - In the C version, a single component can have multiple bodies. - For example, `ttfile.c' provides stream i/o through standard - ANSI libc calls, while `ttfile2.c' implements the same thing - using a Unix memory-mapping API. - - The FreeType component is an interface-only component. - - b. Long and expressive labels - - Never hesitate to use long labels for your types, variables, - etc.! Except maybe for things like very trivial types, the - longest is the best, as it increases the source's - _expressiveness_. Never forget that the role of a label is to - express the `function' of the entity it represents, not its - implementation! - - NOTE: Hungarian notation is NOT expressive, as it sticks the - `type' of a variable to its name. A label like `usFoo' - rarely tells the use of the variable it represents. - - And the state of a variable (global, static, dynamic) - isn't helpful anymore. - - Avoid Hungarian Notation like the *plague*! - - - When forging a name with several nouns - (e.g. `number-of-points'), use an uppercase letter for the first - letter of each word (except the first), like: - - numberOfPoints - - You are also welcomed to introduce underscores `_' in your - labels, especially when sticking large nouns together, as it - `airs' the code greatly. E.g.: - - `numberOfPoints' or `number_Of_Points' - - `IncredibleFunction' or `Incredible_Function' - - And finally, always put a capital letter after an underscore, - except in variable labels that are all lowercase: - - `number_of_points' is OK for a variable (_all_ lowercase label) - - `incredible_function' is NOT for a function! - ^ ^ - - `Microsoft_windows' is a *shame*! - ^ ^ - - `Microsoft_Windows' isn't really better, but at least its a - ^ ^ correct function label within this - convention ;-) - - c. Types - - All types that are defined for use by FreeType client - applications are defined in the FreeType component. All types - defined there have a label beginning with `TT_'. Examples: - - TT_Face, TT_F26Dot6, etc. - - However, the library uses a lot more of internal types that are - defined in the Types, Tables, and Objs components (`tttypes' & - `tttables' files). - - By convention, all internal types, except the simplest ones like - integers, have their name beginning with a capital `T', like in - 'TFoo'. Note that the first letter of `foo' is also - capitalized. The corresponding pointer type uses a capital `P' - instead, i.e. (TFoo*) is simply named 'PFoo'. Examples: - - typedef struct _TTableDir - { - TT_Fixed version; /* should be 0x10000 */ - UShort numTables; /* Tables number */ - - UShort searchRange; /* These parameters are only used */ - UShort entrySelector;/* for a dichotomy search in the */ - UShort rangeShift; /* directory. We ignore them. */ - } TTableDir; - - typedef TTableDir* PTableDir; - - Note that we _always_ define a typedef for structures. The - original struct label starts with `_T'. - - This convention is a famous one from the Pascal world. - - Try to use C or Pascal types to the very least! Rely on - internally defined equivalent types instead. For example, not - all compilers agree on the sign of `char'; the size of `int' is - platform-specific, etc. - - There are equivalents to the most common types in the `Types' - components, like `Short', `UShort', etc. Using the internal - types will guarantee that you won't need to replace every - occurence of `short' or wathever when compiling on a weird - platform or with a weird compiler, and there are many more than - you could think of... - - d. Functions - - The name of a function should always begin with a capital - letter, as lowercase first letters are reserved for variables. - The name of a function should be, again, _expressive_! Never - hesitate to put long function names in your code: It will make - the code much more readable. - - Expressiveness doesn't necessarily imply lengthiness though; for - instance, reading shorts from a file stream is performed using - the following functions defined in the `File' component: - - Get_Byte, Get_Short, Get_UShort, Get_Long, etc. - - Which is somewhat more readable than: - - cget, sget, usget, lget, etc. - - e. Variables - - Variable names should always begin with a lowercase letter. - Lowercase first letters are reserved for variables in this - convention, as it has been already explained above. You're - still welcome to use long and expressive variable names. - - Something like `numP' can express a number of pixels, porks, - pancakes, and much more... Something like `num_points' won't. - - Today, we are still using short variable labels in some parts of - the library. We're working on removing them however... - - As a side note, a field name of a structure counts as a variable - name too. There are exceptions to the first-lowercase-letter - rule, but these are only related to fields within the structure - defined by the TrueType specification (well, at least it - _should_ be that way). - - -2. Declarations & Statements ----------------------------- - - a. Columning - - Try to align declarations and assignments in columns, if it - proves logical. For example (taken from `ttraster.c'): - - struct _TProfile - { - Int flow; /* Profile orientation : Asc/Descending */ - Int height; /* profile's height in scanlines */ - Int start; /* profile's start scanline */ - ULong offset; /* offset of profile's data in render pool */ - PProfile link; /* link to next profile */ - Int index; /* index of profile's entry in trace table */ - Int count_lines; /* count of lines having to be drawn */ - Int start_line; /* lines to be rendered before this profile */ - PTraceRec trace; /* pointer to profile's current trace table */ - }; - - instead of - - struct _TProfile { - Int flow; /* Profile orientation : Asc/Descending */ - Int height; /* profile's height in scanlines */ - Int start; /* profile's start scanline */ - ULong offset; /* offset of profile's data in render pool */ - PProfile link; /* link to next profile */ - Int index; /* index of profile's entry in trace table */ - Int count_lines; /* count of lines having to be drawn */ - Int start_line; /* lines to be rendered before this profile */ - PTraceRec trace; /* pointer to profile's current trace table */ - }; - - This comes from the fact that you're more interested by the - field and its function than by its type. - - Or: - - x = i + 1; - y += j; - min = 100; - - instead of - - x=i+1; - y+=j; - min=100; - - And don't hesitate to separate blocks of declarations with - newlines to `distinguish' logical sections. - - E.g., taken from an old source file, in the declarations of the CMap - loader: - - long n, num_SH; - unsigned short u; - long off; - unsigned short l; - long num_Seg; - unsigned short* glArray; - long table_start; - int limit, i; - - TCMapDir cmap_dir; - TCMapDirEntry entry_; - PCMapTable Plcmt; - PCMap2SubHeader Plcmsub; - PCMap4 Plcm4; - PCMap4Segment segments; - - instead of - - long n, num_SH; - unsigned short u; - long off; - unsigned short l; - long num_Seg; - unsigned short *glArray; - long table_start; - int limit, i; - TCMapDir cmap_dir; - TCMapDirEntry entry_; - PCMapTable Plcmt; - PCMap2SubHeader Plcmsub; - PCMap4 Plcm4; - PCMap4Segment segments; - - b. Aliases and the `with' clause - - The Pascal language comes with a very handy `with' clause that - is often used when dealing with the fields of a same record. - The following Pascal source extract - - with table[incredibly_long_index] do - begin - x := some_x; - y := some_y; - z := wathever_the_hell; - end; - - is usually translated to: - - table[incredibly_long_index].x = some_x; - table[incredibly_long_index].y = some_y; - table[incredibly_long_index].z = wathever_the_hell; - - When a lot of fields are involved, it is usually helpful to - define an `alias' for the record, like in: - - alias = table + incredibly_long_index; - - alias->x = some_x; - alias->y = some_y; - alias->z = wathever_the_hell; - - which gives cleaner source code, and eases the compiler's - optimization work. - - Though the use of aliases is currently not fixed in the current - library source, it is useful to follow one of these rules: - - - Avoid an alias with a stupid, or cryptic name, something like: - - TFooRecord tfr; - .... - [lots of lines snipped] - .... - - tfr = weird_table + weird_index; - - ... - - tfr->num = n; - - It doesn't really help to guess what 'tfr' stands for several - lines after its declaration, even if it's an extreme - contraction of one particular type. - - Something like `cur_record' or `alias_cmap' is better. The - current source also uses a prefix of `Pl' for such aliases - (like Pointer to Local alias), but this use is _not_ - encouraged. If you want to use prefixes, use `loc_', `cur_', - or `al_' at the very least, with a descriptive name following. - - - Or simply use a local variable with a semi-expressive name: - - { - THorizontalHeader hheader; - TVerticalHeader vheader; - - - hheader = instance->fontRes->horizontalHeader; - vheader = instance->fontRes->verticalHeader; - - hheader->foo = bar; - vheader->foo = bar2; - ... - } - - which is much better than - - { - THorizontalHeader Plhhead; - TVerticalHeader Plvhead; - - Plhhead = instance->fontRes->horizontalHeader; - Plvhead = instance->fontRes->verticalHeader; - - Plhhead->foo = bar; - Plvhead->foo = bar2; - ... - } - - -3. Blocks ---------- - - Block separation is done with `{' and `}'. We do not use the K&R - convention which becomes only useful with an extensive use of - tabs. The `{' and its corresponding `}' should always be on the - same column. It makes it easier to separate a block from the rest - of the source, and it helps your _brain_ associates the accolades - easily (ask any Lisp programmer on the topic!). - - Use two spaces for the next indentation level. - - Never use tabs in your code, their widths may vary with editors - and systems. - - Example: - - if (condition_test) { - waow mamma; - I'm doing K&R format; - just like the Linux kernel; - } else { - This test failed poorly; - } - - is _OUT_! - - if ( condition_test ) - { - This code isn't stuck to the condition; - read it on paper, you'll find it more; - pleasant to the eye; - } - else - { - Of course, this is a matter of taste; - That's just the way it is in this convention; - and you should follow it to be homogenous with; - the rest of the FreeType code; - } - - is _IN_! - - -4. Macros ---------- - - Macros should be made of uppercase letters. When a macro label is - forged from several words, it is possible to only uppercasify the - first word, using an underscore to separate the nouns. This is - used in ttload.c, ttgload.c and ttfile.c with macros like - - ACCESS_Frame, GET_UShort, CUR_Stream - - The role of the macros used throughout the engine is explained - later in this document. - - - -II. Design Conventions -====================== - - -1. Modularity and Components Layout ------------------------------------ - - The FreeType engine has been designed with portability in mind. - This implies the ability to compile and run it on a great variety - of systems and weird environments, unlike many packages where the - word strictly means `runs on a bunch of Unix-like systems'. We - have thus decided to stick to the following restrictions: - - - The C version is written in ANSI C. The Pascal version compiles - and run under Turbo Pascal 5.0 and compatible compilers. - - - The library, if compiled with gcc, doesn't produce any warning - with the `-ansi -pedantic' flags. Other compilers with better - checks may produce ANSI warnings that we'd be happy to now - about. - - (NOTE: It can of course be compiled by an `average' C compiler, - and even by a C++ one.) - - - It only requires in its simplest form an ANSI libc to compile, - and no utilities other than a C pre-processor, compiler, and - linker. - - - It is written in a modular fashion. Each module is called a - `component' and is made of two files in the C version (an - interface with suffix `.h' and body with suffix `.c' ) and one - file in the Pascal one. - - - The very low-level components can be easily replaced by - system-specific ones that do not rely on the standard libc. - These components deal mainly with i/o, memory, and mutex - operations. - - - A client application must only include one interface file named - `freetype.h' resp. `freetype.pas' to use the engine. All other - components should never be used or accessed by client - applications, and their name always begin with a `tt' prefix: - - ttmemory, ttobjs, ttinterp, ttapi, etc. - - - All configuration options are gathered in two files. One - contains the processor and OS specific configuration options, - while the other treats options that may be enabled or disabled - by the developer to test specific features (like assertions, - debugging, etc). - - IMPORTANT NOTES: - - These restrictions only apply to the core engine. The package - that comes with it contains several test programs sources that - are much less portable, even if they present a modular model - inspired from the engine's layout. - - The components currently found in the `lib' directory are: - - -------- high-level interface ---------------------------------- - - freetype.h High-level API, to be used by client applications. - - ttapi.c Implementation of the api found in `freetype.h'. - - -------- configuration ----------------------------------------- - - ttconfig.h Engine configuration options. These are commented - and switched by hand by the developer. See - section 2 below for more info. - - ft-conf.h Included by ttconfig.h, this file isn't part of - the `lib' directory, but depends on the target - environment. See section 2 blow for more info. - - -------- definitions ------------------------------------------- - - tttypes.h The engine's internal types definitions. - tttables.h The TrueType tables definitions, per se the Specs. - tttags.h The TrueType table tags definitions. - tterror.[ch] The error and debugging component. - - ttdebug.[ch] Only used by the debugger, should not be linked - into a release build. - - ttcalc.[ch] Math component used to perform some computations - with an intermediate 64-bit precision. - - -------- replaceable components -------------------------------- - - ttmemory.[ch] Memory component. This version uses the ANSI libc - but can be replaced easily by your own version. - - ttfile.[ch] Stream i/o component. This version uses the ANSI - libc but can be replaced easily by your own - version. Compiled only if file memory mapping - isn't available on your system. - - ttfile2.[ch] Unix-specific file memory mapping version of the - file component. It won't compile on other - systems. Usually results in much faster file - access (about 2x on a SCSI P166 system) - - ttmutex.[ch] Generic mutex component. This version is a dummy - and should only be used for a single-thread build. - You _need_ to replace this component's body with - your own implementation to be able to build a - threaded version of the engine. - - -------- data management --------------------------------------- - - ttengine.h The engine instance record definition, root of all - engine data. - - ttlists.[ch] Generic lists manager. - ttcache.[ch] Generic cache manager. - - ttobjs.[ch] The engine's object definitions and - implementations module contains structures, - constructors, destructors and methods for the - following objects: - - face, instance, glyph, execution_context - - ttload.[c] The TrueType tables loader. - - ttgload.[ch] The glyph loader. A component in itself, due to - the task's complexity. - - ttindex.[ch] The character mapping to glyph index conversion - routines. Implements functions defined in - `freetype.h'. - - ttinterp.[ch] The TrueType instructions interpreter. Probably - the nicest source in this engine. Apparently, - many have failed to produce a comparable one due - to the very poorly written specification! It took - David Turner three months of his spare time to get - it working correctly! :-) - - ttraster.[ch] The engine's second best piece. This is the - scan-line converter. Performs gray-level - rendering (also known as font-smoothing) as well - as dropout-control. - - -2. Configuration and Debugging ------------------------------- - - As stated above, configuration depends on two files: - - The environment configuration file `ft-conf.h': - - This file contains the definitions of many configuration options - that are processor and OS-dependent. On Unix systems, this file - is generated automatically by the `configure' script that comes - with the released package. - - On other environments, it is located in one of the architecture - directories found in `arch' (e.g. `arch/os2/ft-conf.h'). - - The path to this file should be passed to the compiler when - compiling _each_ component. (typically with an -I option). - - The engine configuration file `ttconfig.h': - - This file contains many configuration options that the developer - can turn on or off to experiment with some `features' of the - engine that are not part of its `simplest' form. The options - are commented. - - Note that the makefiles are compiler-specific. - - It is possible to enable the dumping of debugging information by - compiling the components with the various debug macros. Please - consult the file `ttconfig.h' for details. - - If you want to port the engine to another environment, you will - need to - - - Write a new `ft-conf.h' file for it. Just copy one of those - available and change the flags accordingly (they're all - commented). - - - Replace the memory, file, and mutex components with yours, - presenting the same interface and behaviour. - - - Eventually add some code in ttapi.c to initialize - system-specific data with the engine. - - - -III. Usage conventions -====================== - - -1. Error Handling ------------------ - - Error handling has been refined to allow reentrant builds of the - library, available only in the C version. We thus have now two - different conventions. - - In Pascal: - - A global error variable is used to report errors when they are - detected. All functions return a boolean that indicates success - or failure of the call. If an error occurs within a given - function, the latter must set the error variable and return - `false' (which means failure). - - It is then possible to make several calls in a single `if' - statement like: - - if not Perform_Action_1( parms_of_1 ) or - not Perform_Action_2( parms_of_2 ) or - not Perform_Action_3( parms_of_3 ) then goto Fail; - - where execution will jump to the `Fail' label whenever an error - occurs in the sequence of actions invoked in the condition. - - In C: - - Global errors are forbidden in re-entrant builds. Each function - thus returns directly an error code. A return value of 0 means - that no error occured, while a non-zero other value indicates a - failure of any kind. - - This convention is more constraining than the one used in the - Pascal source. The above Pascal statement should be translated - into the following C fragment: - - rc = Perform_Action_1( parms_of_1 ); - if ( rc ) - goto Fail; - - rc = Perform_Action_2( parms_of_2 ); - if ( rc ) - goto Fail; - - rc = Perform_Action_3( parms_of_3 ); - if ( rc ) - goto Fail; - - which, while being equivalent, isn't as pleasantly readable. - - One `simple' way to match the original fragment would be to - write: - - if ( (rc = Perform_Action_1( parms_of_1 )) || - (rc = Perform_Action_2( parms_of_2 )) || - (rc = Perform_Action_3( parms_of_3 )) ) - goto Fail; - - which is better but uses assignments within expressions, which - are always delicate to manipulate in C (the risk of writing `==' - exists, and would go unnoticed by a compiler). Moreover, the - assignments are a bit redundant and don't express much things - about the actions performed (they only speak of the error - management issue). - - That is why some macros have been defined for the most - frequently used functions. They relate to low-level routines - that are called very often (mainly i/o, mutex, and memory - handling functions). Each macro produces an implicit assignment - to a variable called `error' and can be used instead as a simple - function call. Example: - - if ( PERFORM_Action_1( parms_of_1 ) || - PERFORM_Action_2( parms_of_2 ) || - PERFORM_Action_3( parms_of_3 ) ) - goto Fail; - - with - - #define PERFORM_Action_1( parms_1 ) \ - ( error = Perform_Action_1( parms_1 ) ) - #define PERFORM_Action_2( parms_1 ) \ - ( error = Perform_Action_2( parms_1 ) ) - #define PERFORM_Action_3( parms_1 ) \ - ( error = Perform_Action_3( parms_1 ) ) - - defined at the beginning of the file. - - There, the developer only needs to define a local `error' - variable and use the macros directly in the code, without caring - about the actual error handling performed. Examples of such a - usage can be found in `ttload.c' and `ttgload.c'. Moreover, the - structure of the source files remain very similar, even though - the error handling is very different. - - This convention is very close to the use of exceptions in - languages like C++, Pascal, Java, etc. where the developer - focuses on the actions to perform, and not on every little error - checking. - - -2. Font File I/O ----------------- - - a. Streams - - The engine uses `streams' to access the font files. A stream is - a structure defined in the `File' component containing - information used to access files through a system-specific i/o - library. - - The current implementation of the File component uses the ANSI - libc i/o functions. However, for the sake of embedding in light - systems and independence of a complete libc, it is possible to - re-implement the component for a specific system or OS, letting - it use system calls. - - A stream is of type `TStream' defined in the `TTObjs' interface. - The type is `(void*)' but actually points to a structure defined - within the File component. - - A stream is created, managed and closed through the interface of - the `File' component. Several implementations of the same - component can co-exist, each taking advantage of specific system - features (the file `ttfile2.c' uses memory-mapped files for - instance) as long as it respects the interface. - - b. Frames - - TrueType is tied to the big-endian format, which implies that - reading shorts or longs from the font file may need conversions - depending on the target processor. To be able to easily detect - read errors and allow simple conversion calls or macros, the - engine is able to access a font file using `frames'. - - A frame is simply a sequence of successive bytes taken from the - input file at the current position. A frame is pre-loaded into - memory by a `TT_Access_Frame()' call of the `File' component. - - It is then possible to read all sizes of data through the - `Get_xxx()' functions, like Get_Byte(), Get_Short(), - Get_UShort(), etc. - - When all important data is read, the frame can be released by a - call to `TT_Forget_Frame()'. - - The benefits of frames are various. Consider these two - approaches at extracting values: - - if ( (error = Read_Short( &var1 )) || - (error = Read_Long ( &var2 )) || - (error = Read_Long ( &var3 )) || - (error = Read_Short( &var4 )) ) - - return FAILURE; - - and - - /* Read the next 16 bytes */ - if ( (error = TT_Access_Frame( 16L )) ) - return error; /* The Frame could not be read */ - - var1 = Get_Short(); /* extract values from the frame */ - var2 = Get_Long(); - var3 = Get_Long(); - var4 = Get_Short(); - - TT_Forget_Frame(); /* release the frame */ - - In the first case, there are four error assignments with four - checks of the file read. This unnecessarily increases the size - of the generated code. Moreover, you must be sure that `var1' - and `var4' are short variables, `var2' and `var3' long ones, if - you want to avoid bugs and/or compiler warnings. - - In the second case, you perform only one check for the read, and - exit immediately on failure. Then the values are extracted from - the frame, as the result of function calls. This means that you - can use automatic type conversion; there is no problem if - e.g. `var1' and `var4' are longs, unlike previously. - - On big-endian machines, the `Get_xxx()' functions could also be - simple macros that merely peek the values directly from the - frame, which speeds up and simplifies the generated code! - - And finally, frames are ideal when you are using memory-mapped - files, as the frame is not really `pre-loaded' and never uses - any `heap' space. - - IMPORTANT: You CANNOT nest several frame accesses. There is - only one frame available at a time for a specific - instance. - - It is also the programmer's responsibility to never - extract more data than was pre-loaded in the frame! - (But you usually know how many values you want to - extract from the file before doing so). - - -3. Memory Management --------------------- - - The library now uses a component which interface is similar to - malloc()/free(). It defines only two functions. - - * Alloc() - - To be used like malloc(), except that it returns an error code, - not an address. Its arguments are the size of the requested - block and the address of the target pointer to the `fresh' - block. An error code is returned in case of failure (and this - will also set the target pointer to NULL), 0 in case of success. - - Alloc() should always respect the following rules: - - - Requesting a block of size 0 should set the target pointer to - NULL and return no error code (i.e., return 0). - - - The returned block is always zeroed. This is an important - assumption of other parts of the library. - - If you wish to replace the memory component with your own, - please respect this behaviour, or your engine won't work - correctly. - - * Free() - - As you may have already guessed, Free() is Alloc()'s - counterpart. It takes as argument the _target pointer's - address_! You should _never_ pass the block's address directly, - i.e. the pointer, to Free(). - - Free should always respect the following rules: - - - Calling it with a NULL argument, or the address of a NULL - pointer is valid, and should return success. - - - The pointer is always set to NULL after the block's - deallocation. This is also an important assumption of many - other parts of the library. - - If you wish to replace the memory component with your own, - please respect this behaviour, or your engine won't work - correctly. - - As the pointers addresses needed as arguments are typed `void**', - the component's interface also provides in the C version some - macros to help use them more easily, these are: - - MEM_Alloc A version of Alloc that casts the argument pointer - to (void**). - - ALLOC Same as MEM_Alloc, but with an assignment to a - variable called `error'. See the section `error - handling' above for more info on this. - - FREE A version of Free() that casts the argument - pointer to (void**). There is currently no error - handling by with this macro. - - MEM_Set An alias for `memset()', which can be easily - changed to anything else if you wish to use a - different memory manager than the functions - provided by the ANSI libc. - - MEM_Copy An alias of `memcpy()' or `bcopy()' used to move - blocks of memory. You may change it to something - different if you wish to use something else that - your standard libc. - - -4. Support for threaded environments ------------------------------------- - - Support for threaded environments have been added to the C - sources, and only to these. It is now theorically possible to - build three distinct versions of the library: - - single-thread build: - - The default build. This one doesn't known about different - threads. Hence, no code is generated to perform coherent data - sharing and locking. - - thread-safe build: - - With this build, several threads can use the library at the - same time. However, some key components can only be used by - one single thread at a time, and use a mutex to synchronize - access to their functions. These are mainly the file, raster - and interpreter components. - - re-entrant build: - - A re-entrant version is able to perform certain actions in - parallel that a thread-safe one cannot. This includes - accessing file(s) in parallel, interpreting different - instruction streams in parallel, or even scan-line converting - distinct glyphs at the same time. - - Note that most of the latest changes in the engine are making the - distinction between the thread-safe and re-entrant builds thinner - than ever. - - There is a `ttmutex' component that presents a generic interface - to mutex operations. It should be re-implemented for each - platform. - - - - ---- end of convntns.txt --- diff --git a/Build/source/libs/freetype/docs/credits b/Build/source/libs/freetype/docs/credits deleted file mode 100644 index 661cde2c1a2..00000000000 --- a/Build/source/libs/freetype/docs/credits +++ /dev/null @@ -1,97 +0,0 @@ - -NOTE: This list is far from being complete. Please send a mail if - you want to be included. - - -David TURNER (david.turner@freetype.org) - - Main engine design and coding. - - -Robert WILHELM (robert.wilhelm@freetype.org) - - Web, FTP and CVS wizard & administrator. C source maintainer. - Incredible bug and spell fixer! - - -Werner LEMBERG (werner.lemberg@freetype.org) - - Internationalization and CJK guru. ttf2pk author. - - -Antoine LECA (Antoine-Freetype@Leca-Marti.org) - - 16-bit support for various compilers and platforms, and current - Pascal maintainer. - - -Mark LEISHER (mleisher@crl.nmsu.edu) - - Internationalization. X11 font server prototype author. ttf2bdf - author. - - -Pavel KANKOVSKY (peak@argo.troja.mff.cuni.cz) - - Old logo, internationalization, on-line demo, humor, and - remarkable bug hunter! - - -Erwin DIETERICH (erwin.dieterich.ed@bayer-ag.de) - - *Real* internationalization :-) Author of the ftxerr18 and gettext - support. - - -Michal NECASEK (mike@mendelu.cz) - - Author and maintainer of the OS/2 font driver based on FreeType. - - -Munagala V. S. RAMANATH, CurveSoft, Inc. (ram@curvesoft.com) - - Contributor of many bug fixes and code improvements. - - -Dave WILLISS (dwilliss@tnt.microimages.com) - - GSUB support. Author of the Mac port. - - -YAMANO-UCHI, Hidetoshi - - Embedded bitmap support. - - - -The following people have also contributed to the development of -FreeType: - - Beebe, Nelson H. F.: Tested FreeType on many platforms. - Benett, Kendall - Cho, Jin-Hwan: Contributed extensions to the ttf2pk package. - Choi, Junho - Chong, Chin Soon - Chroboczek, Juliusz: Author of the xfsft Truetype font server. - Cohen, Marc L. - Davis, Jack - Demaille, Akim - Dubacq, Jean-Christophe - Ellis, Duane - Feinberg, Matthew - Furr, Anthony - Hoo, Dave: 16bit support - Jamme, Thibault - Lewis, Kevin - Long, Jeff - Marukawa, Kazushi - Nijtmans, Jan - Olson, Eric - Paterson-Jones, Roland - Pommnitz, Joerg - Quigley, Ian - Steger, Helmut - Taggart, Scott - - ---- end of credits --- diff --git a/Build/source/libs/freetype/docs/freetype.lsm b/Build/source/libs/freetype/docs/freetype.lsm deleted file mode 100644 index a8190f9d562..00000000000 --- a/Build/source/libs/freetype/docs/freetype.lsm +++ /dev/null @@ -1,17 +0,0 @@ -Begin3 -Title: freetype -Version: 1.5 -Entered-date: 18JAN02 -Description: truetype font rasterizer -Keywords: font truetype rasterizer freetype -Author: david.turner@freetype.org (David Turner) - werner.lemberg@freetype.org (Werner Lemberg) - robert.wilhelm@freetype.org (Robert Wilhelm) -Maintained-by: robert.wilhelm@freetype.org (Robert Wilhelm) - werner.lemberg@freetype.org (Werner Lemberg) - Antoine-Freetype@Leca-Marti.org (Antoine Leca) -Primary-site: ftp.freetype.org /freetype - 1400 KB freetype-1.5.tar.gz -Alternate-site: sunsite.unc.edu /pub/Linux/X11/fonts/ -Copying-policy: BSD-like or GPL -End diff --git a/Build/source/libs/freetype/docs/glyphs.htm b/Build/source/libs/freetype/docs/glyphs.htm deleted file mode 100644 index d6f0b54374a..00000000000 --- a/Build/source/libs/freetype/docs/glyphs.htm +++ /dev/null @@ -1,1257 +0,0 @@ - - -An introduction to glyphs - - - - - - - - -http://www.freetype.org

- -

- Glyph Hell

- - An introduction to glyphs, as used and defined in - the FreeType engine

-

- -

- -Introduction

- -This article discusses in great detail the definition -of glyph metrics, per se the TrueType specification, and the way they -are managed and used by the FreeType engine. This information is -crucial when it comes to rendering text strings, either in a -conventional (i.e. Roman) layout, or with vertical or right-to-left -ones. Some aspects like glyph rotation and transformation are -explained too.

- -Comments and corrections are highly welcome, and can be sent to the -FreeType developers list.

- -


- - -I. An overview of font files

- -In TrueType, a single font file is used to contain -information related to classification, modeling and rendering of text -using a given typeface. This data is located in various independent -`tables', which can be sorted in four simple classes, as described -below:

- -

    - -
  • Face Data

    - - We call face data the amount of information related to a - given typeface, independently of any particular scaling, - transformation, and/or glyph index. This usually means some - typeface-global metrics and attributes, like family and styles, - PANOSE number, typographic ascenders and descenders, as well as - some very TrueType specific items like the font `programs' found - in the fpgm and prep tables, the gasp table, - character mappings, etc.

    - - In FreeType, a face object is used to model a font file's - face data.

    - -

  • Instance Data

    - - We call instance a given pointsize/transformation, at a - given device resolution (e.g. 8pt at 96x96dpi, or 12pt at - 300x600dpi, etc). Some tables found in the font files are used to - produce instance-specific data, like the cvt table, or the - prep program. Though they are often part of the face data, - their processing results in information called instance - data.

    - - In FreeType, it is modeled through an instance object, - which is always created from an existing face object.

    - -

  • Glyph Data

    - - We call glyph data the piece of information related to - specific glyphs. This includes the following things that are - described in more details in the next sections:

    - -

      - -
    • The glyph's vectorial representation, also called its - outline.

      - -

    • Various metrics, like the glyph's bounding box, its - bearings and advance values.

      - -

    • TrueType specifies a specific instruction bytecode, - used to associate each glyph with a small program, - called the glyph code. Its purpose is to grid-fit the - outline to any target instance, in order to produce excellent - output at small pixel sizes. - -

    - - The FreeType engine doesn't map each glyph to a single structure, - as this would waste memory for no good reason. Rather, a glyph - object is a container, created from any active face, - which can be used to load and/or process any font glyph at any - instance (or even no instance at all). Of course, the glyph - properties (outline, metrics, bitmaps, etc.) can be extracted - independently from an object once it has been loaded or - processed.

    - -

  • Text and Layout Data

    - - Finally, there is a last class of data that doesn't really fit in - all others, and that can be called text data. It comprises - information related to the grouping of glyphs together to form - text. Simple examples are the kerning table, which - controls the spacing between adjacent glyphs, as well as some of - the extensions introduced in TrueType Open, - OpenType, and TrueType GX like glyph substitution - (ligatures, vertical representations), baseline management, - justification, etc.

    - - This article focuses on the basic TrueType tables, and hence, will - only talk about kerning, as FreeType doesn't support OpenType nor - GX (yet). [Support for TrueType Open is already partially - available.] - -

- -


- - -II. Glyph Outlines

- -TrueType is a scalable font format; it is thus -possible to render glyphs at any scale, and under any affine -transform, from a single source representation. However, simply -scaling vectorial shapes exhibits at small sizes (where `small' refers -here to anything smaller than at least 150 pixels) a collection -of un-harmonious artifacts, like widths and/or heights -degradations.

- -Because of this, the format also provides a complete programming -language used to design small programs associated to each glyph. Its -role is to align the point positions on the pixel grid after the -scaling. This operation is hence called grid-fitting, or even -hinting.

- -

    - -
  1. Vectorial representation

    - - The source format of outlines is a collection of closed paths - called contours. Each contour delimits an outer or inner - region of the glyph, and can be made of either line segments - and/or second-order beziers (also called conic beziers or - quadratics).

    - - It is described internally as a series of successive points, with - each point having an associated flag indicating whether it is `on' - or `off' the curve. These rules are applied to decompose the - contour:

    - -

      - -
    • Two successive `on' points indicate a line segment joining - them.

      - -

    • One `off' point amidst two `on' points indicates a conic - bezier, the `off' point being the control point, and the `on' - ones the start and end points.

      - -

    • Finally, two successive `off' points forces the rasterizer - to create (only during bitmap rendering) a virtual `on' point - amidst them, at their exact middle. This greatly facilitates - the definition of successive Bezier arcs. - -

    - -

    -                                  *              # on
    -                                                 * off
    -                               __---__
    -  #-__                      _--       -_
    -      --__                _-            -
    -          --__           #               \
    -              --__                        #
    -                  -#
    -                           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.
    -        *
    -
    - - - - Each glyph's original outline points are located on a grid of - indivisible units. The points are stored in the font file as - 16-bit integer grid coordinates, with the grid origin's being at - (0,0); they thus range from -16384 to 16383.

    - - In creating the glyph outlines, a type designer uses an imaginary - square called the EM square. Typically, the EM square - encloses the capital letter `M' and most other letters of a - typical roman alphabet. The square's size, i.e., the number of - grid units on its sides, is very important for two reasons:

    - -

      - -
    • It is the reference used to scale the outlines to a given - instance. For example, a size of 12pt at 300x300dpi - corresponds to 12*300/72 = 50 pixels. This is the - size the EM square would appear on the output device if it was - rendered directly. In other words, scaling from grid units to - pixels uses the formula

      - -

      - pixel_size = point_size * - resolution / 72 -

      - -

      - pixel_coordinate = grid_coordinate * - pixel_size / EM_size -

      - -

    • The greater the EM size is, the larger resolution the - designer can use when digitizing outlines. For example, in - the extreme example of an EM size of 4 units, there are - only 25 point positions available within the EM square - which is clearly not enough. Typical TrueType fonts use an EM - size of 2048 units (note: with Type 1 PostScript - fonts, the EM size is fixed to 1000 grid units. However, - point coordinates can be expressed in floating values). - -

    - - Note that glyphs can freely extend beyond the EM square if the - font designer wants this. The EM is used as a convenience, and is - a valuable convenience from traditional typography.

    - -

    - - Grid units are very often called font units or EM - units. - -

    - -


    - IMPORTANT NOTE:

    - - Under FreeType, scaled pixel positions are all expressed in the - 26.6 fixed float format (made of a 26-bit integer mantissa, and a - 6-bit fractional part). In other words, all coordinates are - multiplied by 64. The grid lines along the integer pixel - positions, are multiples of 64, like (0,0), (64,0), (0,64), - (128,128), etc., while the pixel centers lie at middle coordinates - (32 modulo 64) like (32,32), (96,32), etc. -


    - -

  2. Hinting and Bitmap rendering

    - - As said before, simply scaling outlines to a specific instance - always creates undesirable artifacts, like stems of different - widths or heights in letters like `E' or `H'. Proper glyph - rendering needs that the scaled points are aligned along the pixel - grid (hence the name grid-fitting), and that important - widths and heights are respected throughout the whole font (for - example, it is very often desirable that the letters `I' and `T' - have their central vertical line of the same pixel width).

    - - Type 1 PostScript font files include with each glyph a small - series of distances called hints, which are later used by - the type manager to try grid-fitting the outlines as cleverly as - possible. On one hand, it has the consequence that upgrading your - font engine can enhance the visual aspects of all fonts of your - system; on the other hand, the quality of even the best version of - Adobe's Type Manager isn't always very pleasing at small sizes - (notwithstanding font smoothing).

    - - TrueType takes a radically different approach: Each glyph has an - associated `program', designed in a specific geometrical language, - which is used to align explicitly each outline point to the pixel - grid, preserving important distances and metrics. A stack-based - low-level bytecode is used to store it in the font file, and is - interpreted later when rendering the scaled glyphs.

    - - This means that even very complex glyphs can be rendered perfectly - at very small sizes, as long as the corresponding glyph code is - designed correctly. Moreover, a glyph can loose some of its - details, like serifs, at small sizes to become more readable, - because the bytecode provides interesting features.

    - - However, this also have the sad implication that an ill-designed - glyph code will always render junk, whatever the font engine's - version, and that it's very difficult to produce quality glyph - code. There are about 200 TrueType opcodes, and no known - `high-level language' for it. Most type artists aren't - programmers at all and the only tools able to produce quality code - from vectorial representation have been distributed to only a few - font foundries, while tools available to the public, e.g. - Fontographer, are usually expensive though generating average to - mediocre glyph code.

    - - All this explains why an enormous number of broken or ugly `free' - fonts have appeared on the TrueType scene, and that this format is - now mistakenly thought as `crap' by many people. Funnily, these - are often the same who stare at the `beauty' of the classic `Times - New Roman' and `Arial/Helvetica' at 8 points.

    - - Once a glyph's code has been executed, the scan-line converter - converts the fitted outline into a bitmap (or a pixmap with - font-smoothing). - -

- - -


- -III. Glyph metrics

- -

    - -
  1. Baseline, Pens and Layouts

    - - The baseline is an imaginary line that is used to `guide' glyphs - when rendering text. It can be horizontal (e.g. Roman, Cyrillic, - Arabic, etc.) or vertical (e.g. Chinese, Japanese, etc). - Moreover, to render text, a virtual point, located on the - baseline, called the pen position, is used to locate - glyphs.

    - - Each layout uses a different convention for glyph placement:

    - -

      - -
    • With horizontal layout, glyphs simply `rest' on the - baseline. Text is rendered by incrementing the pen position, - either to the right or to the left.

      - -

      -

      -

      - - The distance between two successive pen positions is - glyph-specific and is called the advance width. Note - that its value is always positive, even for - right-to-left oriented alphabets, like Arabic. This - introduces some differences in the way text is rendered.

      - -


      - IMPORTANT NOTE:

      - - The pen position is always placed on the baseline in - TrueType, unlike the convention used by some graphics - systems, like Windows, to always put the pen above the line, - at the ascender's position. -


      - -

    • With vertical layout, glyphs are centered around the - baseline:

      - -

      - -
      - -

    - -

  2. Typographic metrics and bounding - boxes

    - - A various number of face metrics are defined for all glyphs in - a given font. Three of them have a rather curious status in - the TrueType specification; they only apply to horizontal - layouts:

    - -

      - -
    • The ascent

      - - This is the distance from the baseline to the highest/upper - grid coordinate used to place an outline point. It is a - positive value, due to the grid's orientation with the - y axis upwards.

      - -

    • The descent

      - - The distance from the baseline to the lowest grid coordinate - used to place an outline point. This is a negative value, - due to the grid's orientation.

      - -

    • The linegap

      - - The distance that must be placed between two lines of text. - The baseline-to-baseline distance should be computed as

      - -

      - ascent - descent + linegap -

      - - if you use the typographic values. - -

    - - The problem with these metrics is that they appear three times - in a single font file, each version having a slightly different - meaning:

    - -

      - -
    1. The font's horizontal header provides the ascent, descent - and linegap fields, which are used to express the designer's - intents, rather than the real values that may be computed - from all glyphs in the outline. These are used by the - Macintosh font engine to perform font mapping (i.e. font - substitution).

      - -

    2. The OS/2 table provides the usWinAscent and - usWinDescent fields. These values are computed for - glyphs of the Windows ANSI charset only, which means that - they are wrong for any other glyph. Note that - usWinDescent is always positive (i.e. looks like - `-descent').

      - -

    3. The OS/2 table provides the typoAscender, - typoDescender and typoLinegap values, which - hopefully concern the whole font file. These are the - correct system-independent values! - -

    - - All metrics are expressed in font units. If you want to use any - of the two first versions of these metrics, the TrueType - specification contains some considerations and computing tips - that might help you.

    - - Other, simpler metrics are:

    - -

      - -
    • The glyph's bounding box, also called bbox

      - - This is an imaginary box that encloses any glyph (usually as - tightly as possible). It is represented by four fields, - namely xMin, yMin, xMax, and - yMax, that can be computed for any outline. In - FreeType, their values can be in font units (if measured in - the original outline) or in 26.6 pixel units (if - measured on scaled outlines).

      - - Note that if it wasn't for grid-fitting, you wouldn't need - to know a box's complete values, but only its dimensions to - know how big is a glyph outline/bitmapa. However, correct - rendering of hinted glyphs needs the preservation of - important grid alignment on each glyph translation/placement - on the baseline, which is why FreeType always returns the - complete glyph outline.

      - - Note also that the font's header contains a global font - bounding box in font units which should enclose all glyphs - in a font. This can be used to pre-compute the maximum - dimensions of any glyph at a given instance.

      - -

    • The internal leading

      - - This concept comes directly from the world of traditional - typography. It represents the amount of space within the - `leading' which is reserved for glyph features that lay - outside of the EM square (like accentuation). It usually - can be computed as

      - -

      - internal_leading = ascent - descent - - EM_size -

      - -

    • The external leading

      - - This is another name for the linegap. - -

    - -

  3. Bearings and Advances

    - - Each glyph has also distances called bearings and - advances. Their definition is constant, but their values - depend on the layout, as the same glyph can be used to render - text either horizontally or vertically.

    - -

      -
    1. The left side bearing: a.k.a. bearingX

      - - This is the horizontal distance from the current pen - position to the glyph's left bounding box edge. It is - positive for horizontal layouts, and most generally negative - for vertical one.

      - -

    2. The top side bearing: a.k.a. bearingY

      - - This is the vertical distance from the baseline to the top - of the glyph's bounding box. It is usually positive for - horizontal layouts, and negative for vertical ones

      - -

    3. The advance width: a.k.a. advanceX

      - - This is the horizontal distance the pen position must be - incremented (for left-to-right writing) or decremented (for - right-to-left writing) by after each glyph is rendered when - processing text. It is always positive for horizontal - layouts, and null for vertical ones.

      - -

    4. The advance height: a.k.a. advanceY

      - - This is the vertical distance the pen position must be - decremented by after each glyph is rendered. It is always - null for horizontal layouts, and positive for vertical - layouts.

      - -

    5. The glyph width

      - - The glyph's horizontal extent. More simply, it is - (bbox.xMax - bbox.xMin) for unscaled font coordinates. - For scaled glyphs, its computation requests specific care, - described in the grid-fitting chapter below.

      - -

    6. The glyph height

      - - The glyph's vertical extent. More simply, it is - (bbox.yMax - bbox.yMin) for unscaled font coordinates. - For scaled glyphs, its computation requests specific care, - described in the grid-fitting chapter below.

      - -

    7. The right side bearing

      - - Only used for horizontal layouts to describe the distance - from the bbox's right edge to the advance width. It is in - most cases a non-negative number. The FreeType library - doesn't provide this metric directly, as it isn't really - part of the TrueType specification. It can be computed - simply as

      - -

      - advance_width - left_side_bearing - (xMax-xMin) -
      - -

    - -

    -

    - - -

    - - Finally, if you use `ABC widths' under Windows and OS/2, the - following relations apply: - -

    -  A = left side bearing
    -  B = width
    -  C = right side bearing
    -
    -  A+B+C = advance width
    -
    - -
  4. The effects of grid-fitting

    - - All these metrics are stored in font units in the font file. - They must be scaled and grid-fitted properly to be used at a - specific instance. This implies several things:

    - -

      - -
    • First, a glyph program not only aligns the outline along - the grid pixel, it also processes the left side bearing and - the advance width. Other grid-fitted metrics are usually - available in optional TrueType tables if you need them.

      - -

    • A glyph program may decide to extend or stretch any of - these two metrics if it has a need for it. This means that - you cannot assume that the fitted metrics are simply equal - to the scaled one plus or minus a liberal distance - < 1 pixel (i.e., less than 64 fractional - pixel units). For example, it is often necessary to stretch - the letter `m' horizontally at small pixel sizes to make all - vertical stems visible, while the same glyph can be - perfectly `square' at larger sizes.

      - -

    • Querying the fitted metrics of all glyphs at a given - instance is very slow, as it needs to load and process each - glyph independently. For this reason, some optional - TrueType tables are defined in the specification, containing - pre-computed metrics for specific instances (the most - commonly used, like 8, 9, 10, 11, 12, and 14 points at - 96dpi, for example). These tables aren't always present in - a TrueType font.

      - - If you don't need the exact fitted value, it's much faster - to query the metrics in font units, then scale them to the - instance's dimensions. - -

    - -


    - IMPORTANT NOTE:

    - - Another very important consequence of grid-fitting is the fact - that moving a fitted outline by a non-integer pixel distance - will simply ruin the hinter's work, as alignments won't be - preserved. The translated glyph will then look `ugly' when - converted to a bitmap!

    - - In other words, each time you want to translate a fitted glyph - outline, you must take care of only using integer pixel - distances (the x and y offsets must be multiples - of 64, which equals to 1.0 in the 26.6 fixed float - format). - - If you don't care about grid-fitting (typically when rendering - rotated text), you can use any offset you want and use sub-pixel - glyph placement. -


    - -

- -

- - -IV. Text processing

- -This section demonstrates how to use the concepts previously defined -to render text, whatever the layout you use.

- -

    - -
  1. Writing simple text strings

    - - We will start by generating a simple string with a Roman alphabet. - The layout is thus horizontal, left to right.

    - - For now, we will assume all glyphs are rendered in a single target - bitmap. The case of generating individual glyph bitmaps, then - placing them on demand on a device is presented in a later chapter - of this section.

    - - Rendering the string needs to place each glyph on the baseline; - this process looks like the following:

    - -

      - -
    1. Place the pen to the cursor position. The pen is always - located on the baseline. Its coordinates must be grid-fitted - (i.e. multiples of 64)!

      - -

      -  pen_x = cursor_x;
      -  pen_y = cursor_y;
      -
      - -
    2. Load the glyph outline and its metrics. Using the flag - TTLOAD_DEFAULT will scale and hint the glyph: - -
      -  TT_Load_Glyph( instance,
      -                 glyph,
      -                 glyph_index,
      -                 TTLOAD_DEFAULT );
      -
      -  TT_Get_Glyph_Metrics( glyph, &metrics );
      -  TT_Get_Glyph_Outline( glyph, &outline );
      -
      - -
    3. The loader always places the glyph outline relative to the - imaginary pen position (0,0). You thus simply need to - translate the outline by the vector: - -
      -  ( pen_x, pen_y )
      -
      - - To place it on its correct position, you can use the call - -
      -  TT_Translate_Outline( outline, pen_x, pen_y );
      -
      - -
    4. Render the outline in the target bitmap, the glyph will be - surimposed on it with a binary `or' operation (FreeType never - creates glyph bitmaps by itself, it simply renders glyphs in - the arrays you pass to it. See the API reference for a - complete description of bitmaps and pixmaps). - -
      -  TT_Get_Outline_Bitmap( outline, &target_bitmap );
      -
      - -
      - IMPORTANT NOTE:

      - - If you don't want to access the outline in your code, you can - also use the API function TT_Get_Glyph_Bitmap() which does the - same as the previous lines: - -

      -  TT_Get_Glyph_Outline( glyph, &outline );
      -  TT_Translate_Outline( outline, x_offset, y_offset );
      -  TT_Get_Outline_Bitmap( outline, &target_bitmap );
      -  TT_Translate_Outline( outline, -x_offset, -y_offset );
      -
      - - is equivalent to: - -
      -  TT_Get_Glyph_Bitmap( glyph,
      -                       x_offset,
      -                       y_offset,
      -                       &target_bitmap );
      -
      -

      - -

    5. Now advance the pen to its next position. The advance is - always grid-fitted when the glyph was hinted:

      - -

      -  pen_x += metrics.advance;
      -
      - - The advance being grid-fitted, the pen position remains - aligned on the grid.

      - -

    6. Start over on item 2 until string completion. That's - it! - -

    - -

  2. Writing right-to-left and vertical text

    - - Generating strings for different layouts is very similar. Here - are the most important differences.

    - -

      - -
    • For right-to-left text (like Arabic)

      - - The main difference here is that, as the advance width and - left side bearings are oriented against the flow of text, the - pen position must be decremented by the advance width, - before placing and rendering the glyph. Other than - that, the rest is strictly similar.

      - -

    • For vertical text (like Chinese or Japanese)

      - - In this case, the baseline is vertical, which means that the - pen position must be shifted in the vertical direction. You - need the vertical glyph metrics to do that (using the - TT_Get_Big_Glyph_Metrics() function).

      - - Once you get these, the rest of the process is very similar. - The glyph outline is placed relative to an imaginary origin of - (0,0), and you should translate it to the pen position before - rendering it.

      - - The big difference is that you must decrement pen_y, rather - than increment pen_x (this is for the TrueType convention of y - oriented upwards). - -

      -  pen_y -= metrics.advance;
      -
      - -

    - -

  3. Generating individual glyph bitmaps and using - them to render text

    - - Loading each glyph when rendering text is slow, and it's much - more efficient to render each one in a standalone bitmap to place - it in a cache. Text can then be rendered fast by applying simple - blit operations on the target device.

    - - To be able to render text correctly with the bitmaps, you must - record and associate with them its fitted bearings and advances. - Hence the following process:

    - -

      - -
    1. Generate the bitmaps.

      - -

        - -
      • Load the glyph and get its metrics. - -
        -  TT_Load_Glyph( instance,
        -                 glyph,
        -                 glyph_index,
        -                 TTLOAD_DEFAULT );
        -
        -  TT_Get_Glyph_Metrics( glyph, &metrics );
        -
        - - The bbox is always fitted when calling - TT_Get_Glyph_Metrics() on a hinted glyph. You can then - easily compute the glyph's dimension in pixels as: - -
        -  width  = (bbox.xMax - bbox.xMin) / 64;
        -  height = (bbox.yMax - bbox.yMin) / 64;
        -
        - - NOTE 1:
        - The fitted bounding box always contains all the dropouts - that may be produced by the scan-line converter. This - width and height are thus valid for all kinds of - glyphs).

        - - NOTE 2:
        - If you want to compute the dimensions of a rotated - outline's bitmap, compute its bounding box with - TT_Get_Outline_BBox(), then grid-fit the bbox manually: - -

        -  #define  FLOOR(x)    ((x) & -64)
        -  #define  CEILING(x)  (((x)+63) & -64)
        -
        -  xMin = FLOOR(xMin);
        -  yMin = FLOOR(yMin);
        -  yMin = CEILING(xMax);
        -  yMax = CEILING(yMax);
        -
        - - then compute width and height as above.

        - -

      • Create a bitmap of the given dimension, e.g.: - -
        -  bitmap.width  = width;
        -  bitmap.cols   = (width+7) & -8;
        -  bitmap.rows   = height;
        -  bitmap.flow   = TT_Flow_Up;
        -  bitmap.size   = bitmap.cols * bitmap.rows;
        -  bitmap.buffer = malloc( bitmap.size );
        -
        - -
      • Render the glyph into the bitmap.

        - - Don't forget to shift it by (-xMin, -yMin) to fit it in - the bitmap: - -

        -  /* Note that the offsets must be grid-fitted to */
        -  /* preserve hinting!                            */
        -  TT_Get_Glyph_Bitmap( glyph,
        -                       &bitmap,
        -                       -bbox.xMin,
        -                       -bbox.yMin );
        -
        - -
      - -
    2. Store the bitmap with the following values: - -
      -  bearingX / 64 = left side bearing in pixels
      -  advance / 64  = advance width/height in pixels
      -
      - - When your cache is set up, you can then render text using a - scheme similar to the ones describe in 1. and 2., - with the exception that now pen positions and metrics are - expressed in pixel values. We are done! - -
      -  pen_x = cursor_x;
      -  pen_y = cursor_y;
      -
      -  while ( glyph_to_render )
      -  {
      -    access_cache( glyph_index, metrics, bitmap );
      -
      -    blit_bitmap_to_position
      -     ( pen_x + bearingX,
      -       pen_y (+ bearingY depending on orientation ) );
      -
      -    pen_x += advance;
      -  }
      -
      - -
    - -
  4. Device-independent text rendering

    - - The previously described rendering processes all align glyphs on - the baseline according to metrics fitted for the display's - distance. In some cases, the display isn't the final output, and - placing the glyphs in a device-independent way is more important - than anything.

    - - A typical case is a word processor which displays text as it - should appear on paper when printed. As you've probably noticed, - the glyphs aren't always spaced uniformly on the screen as you - type them, sometimes the space between an `m' and a `t' is too - small, some other it is too large, etc.

    - - These differences are simply due to the fact that the word - processor aligns glyphs in an device-independent way, using - original metrics in font units to do it, then scale them as it - can to display text on screen, usually at a very smaller - resolution than your printer's one.

    - - Device-independence is a crucial part of document portability, - and it is very saddening to see that most professional word - processors don't do it correctly. For example, MS Word uses - the fitted metrics of the printer's resolution, rather than the - originals in font units.

    - - This is great to get sure that your text prints very well on your - printer, but it also implies that someone printing the exact same - document on a device with different output resolutions (e.g. - bubble-jet vs. laser printers) may encounter trouble.

    - - As the differences in advances accumulate on one line, they can - sum to the width of one or more glyphs in extreme cases, which is - enough to `overflow' the automatic justification algorithm. This - may add additional lines of printed text, or even remove some. - Moreover, supplemental lines can produce unexpected page breaks - and `blank' pages. This can be extremely painful when working - with large documents, as this `feature' may require you to - redesign completely your formatting to re-print it.

    - - In conclusion, if you want portable document rendering, never - hesitate to use and apply device-independent terms! For example, - a simple way to produce text would be:

    - -

      - -
    1. Get a scale to convert from your device-independent units - to 26.6 pixels.

      - -

    2. Get another scale to convert from original font units to - device-independent units.

      - -

    3. Perform pen placement and advances in device-independent - units.

      - -

    4. To render each glyph, compute the pen's rounded position, - as well as the rounded glyph left side bearing, both - expressed in 26.6 pixels (don't use the fitted metrics). You - will then be able to place the glyph and/or blit its bitmap. - -

    - -

  5. Kerning glyphs

    - - An interesting effect that most people appreciate is - kerning. It consists of modifying the spacing between two - successive glyphs according to their outlines. For example, the - letters `T' and a `y' can be easily moved closer, as the top of - the `y' fits nicely under the `T's upper right bar.

    - - To perform kerning, the TrueType specification provides a - specific table (its tag being `kern'), with several storage - formats. This section doesn't explain how to access this - information; however, you can have a look at the standard - extension called `ttkern.h' which comes with FreeType.

    - - The kerning distance between two glyphs is a value - expressed in font units which indicates whether their outline can - be moved together or apart when one follows the other. The - distance isn't reflexive, which means that the kerning for the - glyph pair (`T',`y') isn't the same as the one for (`y',`T').

    - - The value is positive when the glyphs must be moved apart, and - negative when they must be moved closer. You can implement - kerning simply by adding its scaled and rounded value to the - advance width when moving the pen position. Here an example for - horizontal kerning: - -

    -  #define ROUND( x )  ( (x + 32) & -64 )
    -
    -  scaled_kerning = kerning * imetrics.x_scale / 0x10000;
    -
    -  pen_x += metrics.advance + ROUND( scaled_kerning );
    -
    - -
  6. Rotated and stretched/slanted text

    - - In order to produce rotated glyphs with FreeType, one must - understand a few things:

    - -

      - -
    • The engine doesn't apply specific transformations to the - glyphs it loads and processes (other than the simpler - resolution-base scaling and grid-fitting). If you want to - rotate glyphs, you will have to load their outline, then apply - the geometric transformations that please you (a number of - APIs are there to help you to do it easily).

      - -

    • Even if the glyph loader hints `straight' glyphs, it is - possible to inform the font and glyph programs that you're - going to later transform the resulting outlines. Two flags - can be passed to the bytecode interpreter:

      - -

        - -
      • The `rotated' flag indicates that you are going to - rotate the glyphs in a non-trivial direction (i.e., on - neither of the two coordinate axis). You are advised not - to set it when writing 90 degrees-rotated text for - example.

        - -

      • The `stretched' flag indicates that you are going to - apply a transformation that will distort distances. While - rotations and symmetries keep distances constant, slanting - and stretching do modify them. - -
      - -

    - - These flags can be interpreted by the glyph code to toggle certain - processings which vary from one font to the other. However, most - of the TrueType fonts that were tested with FreeType, if not all - of them, simply change the dropout-mode when any of these flags is - set, and/or disable hinting when rotation is detected. We advise - you to never set these flags, even when rotating text. For what - it's worth, hinted rotated text is no uglier than un-hinted - one.

    - - You can use the function TT_Set_Instance_Transform_Flags() to set - them. Then, rendering can be done with the following calls: - -

    -  /* set the flags */
    -  TT_Set_Instance_Transforms( instance, 
    -                              rotated,
    -                              stretched );
    -
    -  /* load a given glyph */
    -  TT_Get_Glyph_Outline( instance,
    -                        glyph,
    -                        index,
    -                        TTLOAD_DEFAULT );
    -
    -  /* access its outline */
    -  TT_Get_Glyph_Outline( instance, &outline );
    -
    -  /* in order to transform it */
    -  TT_Transform_Outline( outline, &matrix );
    -  /* and/or */
    -  TT_Translate_Outline( outline,
    -                        x_offset, y_offset );
    -
    -  /* to render it */
    -  TT_Get_Outline_Bitmap( outline, &bitmap );
    -
    - - Here is an example, assuming that the following variables - -
    -  TT_Matrix  matrix;        /* 2x2 matrix */
    -  TT_Pos     x_off, y_off;  /* corrective offsets */
    -
    - - define a transformation that can be correctly applied to a glyph - outline which have been previously placed relative to the - imaginary point position (0,0) with bearings preserved. Rendering - text can now be done as follows:

    - -

      - -
    1. Initialize the pen position; when rotating, it is extremely - well advised to use sub-pixel placement as you don't care - about hinting. - -
      -  pen_x = cursor_x;
      -  pen_y = cursor_y;
      -
      - -
    2. Transform the glyph as needed, then translate it to the - current pen position: - -
      -  TT_Transform_Outline( outline, &matrix );
      -  TT_Translate_Outline( outline,
      -                        pen_x + x_off,
      -                        pen_y + y_off );
      -
      - - (Note that the transformation offsets have been included in - the translation.)

      - -

    3. Render the bitmap, as it has now been placed correctly.

      - -

    4. To change the pen position, transform the vector (0,advance) - with your matrix, and add it: - -
      -  vec_x = metrics.advance;
      -  vec_y = 0;
      -  TT_Transform_Vector( &vec_x, &vec_y, &matrix );
      -  pen_x += vec_x;
      -  pen_y += vec_y;
      -
      - -
    5. Start over at 2. until completion. - -

    - -


    - IMPORTANT NOTE:

    - - Do not grid-fit the pen position before rendering your glyph when - rendering rotated text. If you do, your transformed baseline - won't be preserved on each glyph, and the text will look like it's - `hopping' randomly. This is particularly visible at small - sizes.

    - - Sub-pixel precision placement is very important for clean - rotated text. -


    - -

  7. Font-smoothing, a.k.a. gray-levels - rendering

    - - The FreeType engine's scan-line converter (the component also - called the rasterizer) is able to convert a vectorial glyph - outline into either a normal bitmap, or an 8-bit pixmap (a.k.a. - colored bitmaps on some systems). This last feature is - called gray-level rendering or font-smoothing, - because it uses a user-supplied palette to produce anti-aliased - versions of the glyphs.

    - - Its principle is to render a bitmap which is twice as large than - the target pixmap, then simply filtering it using a 2x2 - summation.

    - -


    - NOTE:

    - - FreeType's scan-line converter doesn't use or need an intermediate - second bitmap. Rather, filtering is performed in a single pass - during the sweep (see the file `raster.txt' for more information - about it). -


    - - You'll notice that, as with Windows 95, FreeType's rasterizer - only grays those parts of the glyph which need it, i.e., diagonals - and curves, while keeping horizontal and vertical stems straight - `black'. This greatly improves the legibility of text, while - avoiding the `blurry' look anti-aliased fonts typically found with - Adobe's Type Manager or Acrobat.

    - - There are thus five available gray-levels, ranging from 0 - to 4, where level 0 and level 4 are the background - and foreground colors, respectively, and where levels 1, - 2, 3 are intermediate. For example, to render black text on - a white background, one can use a palette like:

    - -

      - - palette[0] = white (background)
      - palette[1] = light gray
      - palette[2] = medium gray
      - palette[3] = dark gray
      - palette[4] = black (foreground)
      - -

    - - To set the engine's gray-level palette, simply use the API - function TT_Set_Raster_Palette() after initialization. It expects - an array of 5 chars which will be used to render the - pixmaps.

    - - Note that the rasterizer doesn't create bitmaps or pixmaps. - Rather, it simply renders glyphs in the arrays you pass to it. - The generated glyph bitmaps are simply `or'-ed to the target (with - 0 being the background as a convention); in the case of pixmaps, - pixels are simply written to the buffer, in spans of four aligned - bytes.

    - -


    - NOTE:

    - - The raster isn't able to superpose `transparent' glyphs on the - target pixmap. This means that you should always call the API - functions TT_Get_Glyph_Pixmap() and TT_Get_Outline_Pixmap() with - an empty map, and perform the superposition yourself.

    - - This can be more or less tricky, depending on the palette you are - using and your target graphics resolution. One of the components - found in the test directory, called `display.c', has large - comments on the way it implements it for the test programs. You - are encouraged to read the test program sources to understand how - one can take advantage of font smoothing.

    - - Pixmap surimposition is too system-specific a feature to be part - of the FreeType engine. Moreover, not everybody needs it! -


    - - Finally, the question of sur-imposing anti-aliased colored text on - any texture, since being even more tricky, is left as an exercise - to the reader ;-) If this topic really interests you, the - FreeType mailing list may host some helpful enthusiasts ready to - answer your questions. Who knows :-)

    - -

  8. Other interesting text processes

    - -

      - -
    • Glyph substitution

      - - Substitution is used to replace one glyph by another when some - specific condition is met in the text string. Its most common - examples are ligatures (like replacing the `f' followed by `i' - by the single glyph `fi' if available in the font), as well as - positional selection as performed in the Arabic script (for - those not aware of this, each letter of the Arabic alphabet - can be written differently according to its position on words: - starting, ending, intermediate, or isolated).

      - - The base TrueType format doesn't define any table for glyph - substitution. However, GX, TrueType Open, and OpenType - provide (incompatible) extensions to perform it. Of course, - it isn't supported by the engine, but an extension could be - easily written to access the required tables.

      - - [Support for TrueType Open is already partially available.]

      - -

    • Justification

      - - ... - -

    - -
- -To be continued... - - - diff --git a/Build/source/libs/freetype/docs/glyphs.txt b/Build/source/libs/freetype/docs/glyphs.txt deleted file mode 100644 index 239686aefea..00000000000 --- a/Build/source/libs/freetype/docs/glyphs.txt +++ /dev/null @@ -1,999 +0,0 @@ -http://www.freetype.org - - Glyph Hell - - An introduction to glyphs, as used and defined in the FreeType engine - - ------------------------------------------------------------------------ - -Introduction - -This article discusses in great detail the definition of glyph metrics, per -se the TrueType specification, and the way they are managed and used by the -FreeType engine. This information is crucial when it comes to rendering text -strings, either in a conventional (i.e. Roman) layout, or with vertical or -right-to-left ones. Some aspects like glyph rotation and transformation are -explained too. - -Comments and corrections are highly welcome, and can be sent to the FreeType -developers list. - - ------------------------------------------------------------------------ - -I. An overview of font files - -In TrueType, a single font file is used to contain information related to -classification, modeling and rendering of text using a given typeface. This -data is located in various independent `tables', which can be sorted in four -simple classes, as described below: - - * Face Data - - We call face data the amount of information related to a given - typeface, independently of any particular scaling, transformation, - and/or glyph index. This usually means some typeface-global metrics and - attributes, like family and styles, PANOSE number, typographic - ascenders and descenders, as well as some very TrueType specific items - like the font `programs' found in the fpgm and prep tables, the gasp - table, character mappings, etc. - - In FreeType, a face object is used to model a font file's face data. - - * Instance Data - - We call instance a given pointsize/transformation, at a given device - resolution (e.g. 8pt at 96x96dpi, or 12pt at 300x600dpi, etc). Some - tables found in the font files are used to produce instance-specific - data, like the cvt table, or the prep program. Though they are often - part of the face data, their processing results in information called - instance data. - - In FreeType, it is modeled through an instance object, which is always - created from an existing face object. - - * Glyph Data - - We call glyph data the piece of information related to specific glyphs. - This includes the following things that are described in more details - in the next sections: - - o The glyph's vectorial representation, also called its outline. - - o Various metrics, like the glyph's bounding box, its bearings and - advance values. - - o TrueType specifies a specific instruction bytecode, used to - associate each glyph with a small program, called the glyph code. - Its purpose is to grid-fit the outline to any target instance, in - order to produce excellent output at small pixel sizes. - - The FreeType engine doesn't map each glyph to a single structure, as - this would waste memory for no good reason. Rather, a glyph object is a - container, created from any active face, which can be used to load - and/or process any font glyph at any instance (or even no instance at - all). Of course, the glyph properties (outline, metrics, bitmaps, etc.) - can be extracted independently from an object once it has been loaded - or processed. - - * Text and Layout Data - - Finally, there is a last class of data that doesn't really fit in all - others, and that can be called text data. It comprises information - related to the grouping of glyphs together to form text. Simple - examples are the kerning table, which controls the spacing between - adjacent glyphs, as well as some of the extensions introduced in - TrueType Open, OpenType, and TrueType GX like glyph substitution - (ligatures, vertical representations), baseline management, - justification, etc. - - This article focuses on the basic TrueType tables, and hence, will only - talk about kerning, as FreeType doesn't support OpenType nor GX (yet). - [Support for TrueType Open is already partially available.] - - ------------------------------------------------------------------------ - -II. Glyph Outlines - -TrueType is a scalable font format; it is thus possible to render glyphs at -any scale, and under any affine transform, from a single source -representation. However, simply scaling vectorial shapes exhibits at small -sizes (where `small' refers here to anything smaller than at least -150 pixels) a collection of un-harmonious artifacts, like widths and/or -heights degradations. - -Because of this, the format also provides a complete programming language -used to design small programs associated to each glyph. Its role is to align -the point positions on the pixel grid after the scaling. This operation is -hence called grid-fitting, or even hinting. - - 1. Vectorial representation - - The source format of outlines is a collection of closed paths called - contours. Each contour delimits an outer or inner region of the glyph, - and can be made of either line segments and/or second-order beziers - (also called conic beziers or quadratics). - - It is described internally as a series of successive points, with each - point having an associated flag indicating whether it is `on' or `off' - the curve. These rules are applied to decompose the contour: - - o Two successive `on' points indicate a line segment joining them. - - o One `off' point amidst two `on' points indicates a conic bezier, - the `off' point being the control point, and the `on' ones the - start and end points. - - o Finally, two successive `off' points forces the rasterizer to - create (only during bitmap rendering) a virtual `on' point amidst - them, at their exact middle. This greatly facilitates the - definition of successive Bezier arcs. - - * # on - * off - __---__ - #-__ _-- -_ - --__ _- - - --__ # \ - --__ # - -# - 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. - * - - Each glyph's original outline points are located on a grid of - indivisible units. The points are stored in the font file as - 16-bit integer grid coordinates, with the grid origin's being at (0,0); - they thus range from -16384 to 16383. - - In creating the glyph outlines, a type designer uses an imaginary - square called the EM square. Typically, the EM square encloses the - capital letter `M' and most other letters of a typical roman alphabet. - The square's size, i.e., the number of grid units on its sides, is very - important for two reasons: - - o It is the reference used to scale the outlines to a given - instance. For example, a size of 12pt at 300x300dpi corresponds to - 12*300/72 = 50 pixels. This is the size the EM square would appear - on the output device if it was rendered directly. In other words, - scaling from grid units to pixels uses the formula - - pixel_size = point_size * resolution / 72 - - pixel_coordinate = grid_coordinate * pixel_size / EM_size - - o The greater the EM size is, the larger resolution the designer can - use when digitizing outlines. For example, in the extreme example - of an EM size of 4 units, there are only 25 point positions - available within the EM square which is clearly not enough. - Typical TrueType fonts use an EM size of 2048 units (note: with - Type 1 PostScript fonts, the EM size is fixed to 1000 grid units. - However, point coordinates can be expressed in floating values). - - Note that glyphs can freely extend beyond the EM square if the font - designer wants this. The EM is used as a convenience, and is a valuable - convenience from traditional typography. - - Grid units are very often called font units or EM units. - - ----------------------------------------------------------------------- - IMPORTANT NOTE: - - Under FreeType, scaled pixel positions are all expressed in the 26.6 - fixed float format (made of a 26-bit integer mantissa, and a 6-bit - fractional part). In other words, all coordinates are multiplied by 64. - The grid lines along the integer pixel positions, are multiples of 64, - like (0,0), (64,0), (0,64), (128,128), etc., while the pixel centers - lie at middle coordinates (32 modulo 64) like (32,32), (96,32), etc. - ----------------------------------------------------------------------- - - 2. Hinting and Bitmap rendering - - As said before, simply scaling outlines to a specific instance always - creates undesirable artifacts, like stems of different widths or - heights in letters like `E' or `H'. Proper glyph rendering needs that - the scaled points are aligned along the pixel grid (hence the name - grid-fitting), and that important widths and heights are respected - throughout the whole font (for example, it is very often desirable that - the letters `I' and `T' have their central vertical line of the same - pixel width). - - Type 1 PostScript font files include with each glyph a small series of - distances called hints, which are later used by the type manager to try - grid-fitting the outlines as cleverly as possible. On one hand, it has - the consequence that upgrading your font engine can enhance the visual - aspects of all fonts of your system; on the other hand, the quality of - even the best version of Adobe's Type Manager isn't always very - pleasing at small sizes (notwithstanding font smoothing). - - TrueType takes a radically different approach: Each glyph has an - associated `program', designed in a specific geometrical language, - which is used to align explicitly each outline point to the pixel grid, - preserving important distances and metrics. A stack-based low-level - bytecode is used to store it in the font file, and is interpreted later - when rendering the scaled glyphs. - - This means that even very complex glyphs can be rendered perfectly at - very small sizes, as long as the corresponding glyph code is designed - correctly. Moreover, a glyph can loose some of its details, like - serifs, at small sizes to become more readable, because the bytecode - provides interesting features. - - However, this also have the sad implication that an ill-designed glyph - code will always render junk, whatever the font engine's version, and - that it's very difficult to produce quality glyph code. There are about - 200 TrueType opcodes, and no known `high-level language' for it. Most - type artists aren't programmers at all and the only tools able to - produce quality code from vectorial representation have been - distributed to only a few font foundries, while tools available to the - public, e.g. Fontographer, are usually expensive though generating - average to mediocre glyph code. - - All this explains why an enormous number of broken or ugly `free' fonts - have appeared on the TrueType scene, and that this format is now - mistakenly thought as `crap' by many people. Funnily, these are often - the same who stare at the `beauty' of the classic `Times New Roman' and - `Arial/Helvetica' at 8 points. - - Once a glyph's code has been executed, the scan-line converter converts - the fitted outline into a bitmap (or a pixmap with font-smoothing). - - ------------------------------------------------------------------------ - -III. Glyph metrics - - 1. Baseline, Pens and Layouts - - The baseline is an imaginary line that is used to `guide' glyphs when - rendering text. It can be horizontal (e.g. Roman, Cyrillic, Arabic, - etc.) or vertical (e.g. Chinese, Japanese, etc). Moreover, to render - text, a virtual point, located on the baseline, called the pen - position, is used to locate glyphs. - - Each layout uses a different convention for glyph placement: - - o With horizontal layout, glyphs simply `rest' on the baseline. Text - is rendered by incrementing the pen position, either to the right - or to the left. - - [Image] - - The distance between two successive pen positions is - glyph-specific and is called the advance width. Note that its - value is always positive, even for right-to-left oriented - alphabets, like Arabic. This introduces some differences in the - way text is rendered. - - ------------------------------------------------------------------ - IMPORTANT NOTE: - - The pen position is always placed on the baseline in TrueType, - unlike the convention used by some graphics systems, like Windows, - to always put the pen above the line, at the ascender's position. - ------------------------------------------------------------------ - - o With vertical layout, glyphs are centered around the baseline: - - [Image] - - 2. Typographic metrics and bounding boxes - - A various number of face metrics are defined for all glyphs in a given - font. Three of them have a rather curious status in the TrueType - specification; they only apply to horizontal layouts: - - o The ascent - - This is the distance from the baseline to the highest/upper grid - coordinate used to place an outline point. It is a positive value, - due to the grid's orientation with the y axis upwards. - - o The descent - - The distance from the baseline to the lowest grid coordinate used - to place an outline point. This is a negative value, due to the - grid's orientation. - - o The linegap - - The distance that must be placed between two lines of text. The - baseline-to-baseline distance should be computed as - - ascent - descent + linegap - - if you use the typographic values. - - The problem with these metrics is that they appear three times in a - single font file, each version having a slightly different meaning: - - 1. The font's horizontal header provides the ascent, descent and - linegap fields, which are used to express the designer's intents, - rather than the real values that may be computed from all glyphs - in the outline. These are used by the Macintosh font engine to - perform font mapping (i.e. font substitution). - - 2. The OS/2 table provides the usWinAscent and usWinDescent fields. - These values are computed for glyphs of the Windows ANSI charset - only, which means that they are wrong for any other glyph. Note - that usWinDescent is always positive (i.e. looks like `-descent'). - - 3. The OS/2 table provides the typoAscender, typoDescender and - typoLinegap values, which hopefully concern the whole font file. - These are the correct system-independent values! - - All metrics are expressed in font units. If you want to use any of the - two first versions of these metrics, the TrueType specification - contains some considerations and computing tips that might help you. - - Other, simpler metrics are: - - o The glyph's bounding box, also called bbox - - This is an imaginary box that encloses any glyph (usually as - tightly as possible). It is represented by four fields, namely - xMin, yMin, xMax, and yMax, that can be computed for any outline. - In FreeType, their values can be in font units (if measured in the - original outline) or in 26.6 pixel units (if measured on scaled - outlines). - - Note that if it wasn't for grid-fitting, you wouldn't need to know - a box's complete values, but only its dimensions to know how big - is a glyph outline/bitmapa. However, correct rendering of hinted - glyphs needs the preservation of important grid alignment on each - glyph translation/placement on the baseline, which is why FreeType - always returns the complete glyph outline. - - Note also that the font's header contains a global font bounding - box in font units which should enclose all glyphs in a font. This - can be used to pre-compute the maximum dimensions of any glyph at - a given instance. - - o The internal leading - - This concept comes directly from the world of traditional - typography. It represents the amount of space within the `leading' - which is reserved for glyph features that lay outside of the EM - square (like accentuation). It usually can be computed as - - internal_leading = ascent - descent - EM_size - - o The external leading - - This is another name for the linegap. - - 3. Bearings and Advances - - Each glyph has also distances called bearings and advances. Their - definition is constant, but their values depend on the layout, as the - same glyph can be used to render text either horizontally or - vertically. - - 1. The left side bearing: a.k.a. bearingX - - This is the horizontal distance from the current pen position to - the glyph's left bounding box edge. It is positive for horizontal - layouts, and most generally negative for vertical one. - - 2. The top side bearing: a.k.a. bearingY - - This is the vertical distance from the baseline to the top of the - glyph's bounding box. It is usually positive for horizontal - layouts, and negative for vertical ones - - 3. The advance width: a.k.a. advanceX - - This is the horizontal distance the pen position must be - incremented (for left-to-right writing) or decremented (for - right-to-left writing) by after each glyph is rendered when - processing text. It is always positive for horizontal layouts, and - null for vertical ones. - - 4. The advance height: a.k.a. advanceY - - This is the vertical distance the pen position must be decremented - by after each glyph is rendered. It is always null for horizontal - layouts, and positive for vertical layouts. - - 5. The glyph width - - The glyph's horizontal extent. More simply, it is (bbox.xMax - - bbox.xMin) for unscaled font coordinates. For scaled glyphs, its - computation requests specific care, described in the grid-fitting - chapter below. - - 6. The glyph height - - The glyph's vertical extent. More simply, it is (bbox.yMax - - bbox.yMin) for unscaled font coordinates. For scaled glyphs, its - computation requests specific care, described in the grid-fitting - chapter below. - - 7. The right side bearing - - Only used for horizontal layouts to describe the distance from the - bbox's right edge to the advance width. It is in most cases a - non-negative number. The FreeType library doesn't provide this - metric directly, as it isn't really part of the TrueType - specification. It can be computed simply as - - advance_width - left_side_bearing - (xMax-xMin) - - [Image] - - [Image] - - Finally, if you use `ABC widths' under Windows and OS/2, the following - relations apply: - - A = left side bearing - B = width - C = right side bearing - - A+B+C = advance width - - 4. The effects of grid-fitting - - All these metrics are stored in font units in the font file. They must - be scaled and grid-fitted properly to be used at a specific instance. - This implies several things: - - o First, a glyph program not only aligns the outline along the grid - pixel, it also processes the left side bearing and the advance - width. Other grid-fitted metrics are usually available in optional - TrueType tables if you need them. - - o A glyph program may decide to extend or stretch any of these two - metrics if it has a need for it. This means that you cannot assume - that the fitted metrics are simply equal to the scaled one plus or - minus a liberal distance < 1 pixel (i.e., less than 64 fractional - pixel units). For example, it is often necessary to stretch the - letter `m' horizontally at small pixel sizes to make all vertical - stems visible, while the same glyph can be perfectly `square' at - larger sizes. - - o Querying the fitted metrics of all glyphs at a given instance is - very slow, as it needs to load and process each glyph - independently. For this reason, some optional TrueType tables are - defined in the specification, containing pre-computed metrics for - specific instances (the most commonly used, like 8, 9, 10, 11, 12, - and 14 points at 96dpi, for example). These tables aren't always - present in a TrueType font. - - If you don't need the exact fitted value, it's much faster to - query the metrics in font units, then scale them to the instance's - dimensions. - - ----------------------------------------------------------------------- - IMPORTANT NOTE: - - Another very important consequence of grid-fitting is the fact that - moving a fitted outline by a non-integer pixel distance will simply - ruin the hinter's work, as alignments won't be preserved. The - translated glyph will then look `ugly' when converted to a bitmap! - - In other words, each time you want to translate a fitted glyph outline, - you must take care of only using integer pixel distances (the x and - y offsets must be multiples of 64, which equals to 1.0 in the 26.6 - fixed float format). If you don't care about grid-fitting (typically - when rendering rotated text), you can use any offset you want and use - sub-pixel glyph placement. - ----------------------------------------------------------------------- - - ------------------------------------------------------------------------ - -IV. Text processing - -This section demonstrates how to use the concepts previously defined to -render text, whatever the layout you use. - - 1. Writing simple text strings - - We will start by generating a simple string with a Roman alphabet. The - layout is thus horizontal, left to right. - - For now, we will assume all glyphs are rendered in a single target - bitmap. The case of generating individual glyph bitmaps, then placing - them on demand on a device is presented in a later chapter of this - section. - - Rendering the string needs to place each glyph on the baseline; this - process looks like the following: - - 1. Place the pen to the cursor position. The pen is always located on - the baseline. Its coordinates must be grid-fitted (i.e. multiples - of 64)! - - pen_x = cursor_x; - pen_y = cursor_y; - - 2. Load the glyph outline and its metrics. Using the flag - TTLOAD_DEFAULT will scale and hint the glyph: - - TT_Load_Glyph( instance, - glyph, - glyph_index, - TTLOAD_DEFAULT ); - - TT_Get_Glyph_Metrics( glyph, &metrics ); - TT_Get_Glyph_Outline( glyph, &outline ); - - 3. The loader always places the glyph outline relative to the - imaginary pen position (0,0). You thus simply need to translate - the outline by the vector: - - ( pen_x, pen_y ) - - To place it on its correct position, you can use the call - - TT_Translate_Outline( outline, pen_x, pen_y ); - - 4. Render the outline in the target bitmap, the glyph will be - surimposed on it with a binary `or' operation (FreeType never - creates glyph bitmaps by itself, it simply renders glyphs in the - arrays you pass to it. See the API reference for a complete - description of bitmaps and pixmaps). - - TT_Get_Outline_Bitmap( outline, &target_bitmap ); - - ------------------------------------------------------------------ - IMPORTANT NOTE: - - If you don't want to access the outline in your code, you can also - use the API function TT_Get_Glyph_Bitmap() which does the same as - the previous lines: - - TT_Get_Glyph_Outline( glyph, &outline ); - TT_Translate_Outline( outline, x_offset, y_offset ); - TT_Get_Outline_Bitmap( outline, &target_bitmap ); - TT_Translate_Outline( outline, -x_offset, -y_offset ); - - is equivalent to: - - TT_Get_Glyph_Bitmap( glyph, - x_offset, - y_offset, - &target_bitmap ); - - ------------------------------------------------------------------ - - 5. Now advance the pen to its next position. The advance is always - grid-fitted when the glyph was hinted: - - pen_x += metrics.advance; - - The advance being grid-fitted, the pen position remains aligned on - the grid. - - 6. Start over on item 2 until string completion. That's it! - - 2. Writing right-to-left and vertical text - - Generating strings for different layouts is very similar. Here are the - most important differences. - - o For right-to-left text (like Arabic) - - The main difference here is that, as the advance width and left - side bearings are oriented against the flow of text, the pen - position must be decremented by the advance width, before placing - and rendering the glyph. Other than that, the rest is strictly - similar. - - o For vertical text (like Chinese or Japanese) - - In this case, the baseline is vertical, which means that the pen - position must be shifted in the vertical direction. You need the - vertical glyph metrics to do that (using the - TT_Get_Big_Glyph_Metrics() function). - - Once you get these, the rest of the process is very similar. The - glyph outline is placed relative to an imaginary origin of (0,0), - and you should translate it to the pen position before rendering - it. - - The big difference is that you must decrement pen_y, rather than - increment pen_x (this is for the TrueType convention of y oriented - upwards). - - pen_y -= metrics.advance; - - 3. Generating individual glyph bitmaps and using them to render text - - Loading each glyph when rendering text is slow, and it's much more - efficient to render each one in a standalone bitmap to place it in a - cache. Text can then be rendered fast by applying simple blit - operations on the target device. - - To be able to render text correctly with the bitmaps, you must record - and associate with them its fitted bearings and advances. Hence the - following process: - - 1. Generate the bitmaps. - - + Load the glyph and get its metrics. - - TT_Load_Glyph( instance, - glyph, - glyph_index, - TTLOAD_DEFAULT ); - - TT_Get_Glyph_Metrics( glyph, &metrics ); - - The bbox is always fitted when calling TT_Get_Glyph_Metrics() - on a hinted glyph. You can then easily compute the glyph's - dimension in pixels as: - - width = (bbox.xMax - bbox.xMin) / 64; - height = (bbox.yMax - bbox.yMin) / 64; - - NOTE 1: - The fitted bounding box always contains all the dropouts that - may be produced by the scan-line converter. This width and - height are thus valid for all kinds of glyphs). - - NOTE 2: - If you want to compute the dimensions of a rotated outline's - bitmap, compute its bounding box with TT_Get_Outline_BBox(), - then grid-fit the bbox manually: - - #define FLOOR(x) ((x) & -64) - #define CEILING(x) (((x)+63) & -64) - - xMin = FLOOR(xMin); - yMin = FLOOR(yMin); - yMin = CEILING(xMax); - yMax = CEILING(yMax); - - then compute width and height as above. - - + Create a bitmap of the given dimension, e.g.: - - bitmap.width = width; - bitmap.cols = (width+7) & -8; - bitmap.rows = height; - bitmap.flow = TT_Flow_Up; - bitmap.size = bitmap.cols * bitmap.rows; - bitmap.buffer = malloc( bitmap.size ); - - + Render the glyph into the bitmap. - - Don't forget to shift it by (-xMin, -yMin) to fit it in the - bitmap: - - /* Note that the offsets must be grid-fitted to */ - /* preserve hinting! */ - TT_Get_Glyph_Bitmap( glyph, - &bitmap, - -bbox.xMin, - -bbox.yMin ); - - 2. Store the bitmap with the following values: - - bearingX / 64 = left side bearing in pixels - advance / 64 = advance width/height in pixels - - When your cache is set up, you can then render text using a scheme - similar to the ones describe in 1. and 2., with the exception that - now pen positions and metrics are expressed in pixel values. We - are done! - - pen_x = cursor_x; - pen_y = cursor_y; - - while ( glyph_to_render ) - { - access_cache( glyph_index, metrics, bitmap ); - - blit_bitmap_to_position - ( pen_x + bearingX, - pen_y (+ bearingY depending on orientation ) ); - - pen_x += advance; - } - - 4. Device-independent text rendering - - The previously described rendering processes all align glyphs on the - baseline according to metrics fitted for the display's distance. In - some cases, the display isn't the final output, and placing the glyphs - in a device-independent way is more important than anything. - - A typical case is a word processor which displays text as it should - appear on paper when printed. As you've probably noticed, the glyphs - aren't always spaced uniformly on the screen as you type them, - sometimes the space between an `m' and a `t' is too small, some other - it is too large, etc. - - These differences are simply due to the fact that the word processor - aligns glyphs in an device-independent way, using original metrics in - font units to do it, then scale them as it can to display text on - screen, usually at a very smaller resolution than your printer's one. - - Device-independence is a crucial part of document portability, and it - is very saddening to see that most professional word processors don't - do it correctly. For example, MS Word uses the fitted metrics of the - printer's resolution, rather than the originals in font units. - - This is great to get sure that your text prints very well on your - printer, but it also implies that someone printing the exact same - document on a device with different output resolutions (e.g. bubble-jet - vs. laser printers) may encounter trouble. - - As the differences in advances accumulate on one line, they can sum to - the width of one or more glyphs in extreme cases, which is enough to - `overflow' the automatic justification algorithm. This may add - additional lines of printed text, or even remove some. Moreover, - supplemental lines can produce unexpected page breaks and `blank' - pages. This can be extremely painful when working with large documents, - as this `feature' may require you to redesign completely your - formatting to re-print it. - - In conclusion, if you want portable document rendering, never hesitate - to use and apply device-independent terms! For example, a simple way to - produce text would be: - - 1. Get a scale to convert from your device-independent units to 26.6 - pixels. - - 2. Get another scale to convert from original font units to - device-independent units. - - 3. Perform pen placement and advances in device-independent units. - - 4. To render each glyph, compute the pen's rounded position, as well - as the rounded glyph left side bearing, both expressed in 26.6 - pixels (don't use the fitted metrics). You will then be able to - place the glyph and/or blit its bitmap. - - 5. Kerning glyphs - - An interesting effect that most people appreciate is kerning. It - consists of modifying the spacing between two successive glyphs - according to their outlines. For example, the letters `T' and a `y' can - be easily moved closer, as the top of the `y' fits nicely under the - `T's upper right bar. - - To perform kerning, the TrueType specification provides a specific - table (its tag being `kern'), with several storage formats. This - section doesn't explain how to access this information; however, you - can have a look at the standard extension called `ttkern.h' which comes - with FreeType. - - The kerning distance between two glyphs is a value expressed in font - units which indicates whether their outline can be moved together or - apart when one follows the other. The distance isn't reflexive, which - means that the kerning for the glyph pair (`T',`y') isn't the same as - the one for (`y',`T'). - - The value is positive when the glyphs must be moved apart, and negative - when they must be moved closer. You can implement kerning simply by - adding its scaled and rounded value to the advance width when moving - the pen position. Here an example for horizontal kerning: - - #define ROUND( x ) ( (x + 32) & -64 ) - - scaled_kerning = kerning * imetrics.x_scale / 0x10000; - - pen_x += metrics.advance + ROUND( scaled_kerning ); - - 6. Rotated and stretched/slanted text - - In order to produce rotated glyphs with FreeType, one must understand a - few things: - - o The engine doesn't apply specific transformations to the glyphs it - loads and processes (other than the simpler resolution-base - scaling and grid-fitting). If you want to rotate glyphs, you will - have to load their outline, then apply the geometric - transformations that please you (a number of APIs are there to - help you to do it easily). - - o Even if the glyph loader hints `straight' glyphs, it is possible - to inform the font and glyph programs that you're going to later - transform the resulting outlines. Two flags can be passed to the - bytecode interpreter: - - + The `rotated' flag indicates that you are going to rotate the - glyphs in a non-trivial direction (i.e., on neither of the - two coordinate axis). You are advised not to set it when - writing 90 degrees-rotated text for example. - - + The `stretched' flag indicates that you are going to apply a - transformation that will distort distances. While rotations - and symmetries keep distances constant, slanting and - stretching do modify them. - - These flags can be interpreted by the glyph code to toggle certain - processings which vary from one font to the other. However, most of the - TrueType fonts that were tested with FreeType, if not all of them, - simply change the dropout-mode when any of these flags is set, and/or - disable hinting when rotation is detected. We advise you to never set - these flags, even when rotating text. For what it's worth, hinted - rotated text is no uglier than un-hinted one. - - You can use the function TT_Set_Instance_Transform_Flags() to set them. - Then, rendering can be done with the following calls: - - /* set the flags */ - TT_Set_Instance_Transforms( instance, - rotated, - stretched ); - - /* load a given glyph */ - TT_Get_Glyph_Outline( instance, - glyph, - index, - TTLOAD_DEFAULT ); - - /* access its outline */ - TT_Get_Glyph_Outline( instance, &outline ); - - /* in order to transform it */ - TT_Transform_Outline( outline, &matrix ); - /* and/or */ - TT_Translate_Outline( outline, - x_offset, y_offset ); - - /* to render it */ - TT_Get_Outline_Bitmap( outline, &bitmap ); - - Here is an example, assuming that the following variables - - TT_Matrix matrix; /* 2x2 matrix */ - TT_Pos x_off, y_off; /* corrective offsets */ - - define a transformation that can be correctly applied to a glyph - outline which have been previously placed relative to the imaginary - point position (0,0) with bearings preserved. Rendering text can now be - done as follows: - - 1. Initialize the pen position; when rotating, it is extremely well - advised to use sub-pixel placement as you don't care about - hinting. - - pen_x = cursor_x; - pen_y = cursor_y; - - 2. Transform the glyph as needed, then translate it to the current - pen position: - - TT_Transform_Outline( outline, &matrix ); - TT_Translate_Outline( outline, - pen_x + x_off, - pen_y + y_off ); - - (Note that the transformation offsets have been included in the - translation.) - - 3. Render the bitmap, as it has now been placed correctly. - - 4. To change the pen position, transform the vector (0,advance) with - your matrix, and add it: - - vec_x = metrics.advance; - vec_y = 0; - TT_Transform_Vector( &vec_x, &vec_y, &matrix ); - pen_x += vec_x; - pen_y += vec_y; - - 5. Start over at 2. until completion. - - ----------------------------------------------------------------------- - IMPORTANT NOTE: - - Do not grid-fit the pen position before rendering your glyph when - rendering rotated text. If you do, your transformed baseline won't be - preserved on each glyph, and the text will look like it's `hopping' - randomly. This is particularly visible at small sizes. - - Sub-pixel precision placement is very important for clean rotated text. - ----------------------------------------------------------------------- - - 7. Font-smoothing, a.k.a. gray-levels rendering - - The FreeType engine's scan-line converter (the component also called - the rasterizer) is able to convert a vectorial glyph outline into - either a normal bitmap, or an 8-bit pixmap (a.k.a. colored bitmaps on - some systems). This last feature is called gray-level rendering or - font-smoothing, because it uses a user-supplied palette to produce - anti-aliased versions of the glyphs. - - Its principle is to render a bitmap which is twice as large than the - target pixmap, then simply filtering it using a 2x2 summation. - - ----------------------------------------------------------------------- - NOTE: - - FreeType's scan-line converter doesn't use or need an intermediate - second bitmap. Rather, filtering is performed in a single pass during - the sweep (see the file `raster.txt' for more information about it). - ----------------------------------------------------------------------- - - You'll notice that, as with Windows 95, FreeType's rasterizer only - grays those parts of the glyph which need it, i.e., diagonals and - curves, while keeping horizontal and vertical stems straight `black'. - This greatly improves the legibility of text, while avoiding the - `blurry' look anti-aliased fonts typically found with Adobe's Type - Manager or Acrobat. - - There are thus five available gray-levels, ranging from 0 to 4, where - level 0 and level 4 are the background and foreground colors, - respectively, and where levels 1, 2, 3 are intermediate. For example, - to render black text on a white background, one can use a palette like: - - palette[0] = white (background) - palette[1] = light gray - palette[2] = medium gray - palette[3] = dark gray - palette[4] = black (foreground) - - To set the engine's gray-level palette, simply use the API function - TT_Set_Raster_Palette() after initialization. It expects an array of - 5 chars which will be used to render the pixmaps. - - Note that the rasterizer doesn't create bitmaps or pixmaps. Rather, it - simply renders glyphs in the arrays you pass to it. The generated glyph - bitmaps are simply `or'-ed to the target (with 0 being the background - as a convention); in the case of pixmaps, pixels are simply written to - the buffer, in spans of four aligned bytes. - - ----------------------------------------------------------------------- - NOTE: - - The raster isn't able to superpose `transparent' glyphs on the target - pixmap. This means that you should always call the API functions - TT_Get_Glyph_Pixmap() and TT_Get_Outline_Pixmap() with an empty map, - and perform the superposition yourself. - - This can be more or less tricky, depending on the palette you are using - and your target graphics resolution. One of the components found in the - test directory, called `display.c', has large comments on the way it - implements it for the test programs. You are encouraged to read the - test program sources to understand how one can take advantage of font - smoothing. - - Pixmap surimposition is too system-specific a feature to be part of the - FreeType engine. Moreover, not everybody needs it! - ----------------------------------------------------------------------- - - Finally, the question of sur-imposing anti-aliased colored text on any - texture, since being even more tricky, is left as an exercise to the - reader ;-) If this topic really interests you, the FreeType mailing - list may host some helpful enthusiasts ready to answer your questions. - Who knows :-) - - 8. Other interesting text processes - - o Glyph substitution - - Substitution is used to replace one glyph by another when some - specific condition is met in the text string. Its most common - examples are ligatures (like replacing the `f' followed by `i' by - the single glyph `fi' if available in the font), as well as - positional selection as performed in the Arabic script (for those - not aware of this, each letter of the Arabic alphabet can be - written differently according to its position on words: starting, - ending, intermediate, or isolated). - - The base TrueType format doesn't define any table for glyph - substitution. However, GX, TrueType Open, and OpenType provide - (incompatible) extensions to perform it. Of course, it isn't - supported by the engine, but an extension could be easily written - to access the required tables. - - [Support for TrueType Open is already partially available.] - - o Justification - - ... - -To be continued... diff --git a/Build/source/libs/freetype/docs/i18n.txt b/Build/source/libs/freetype/docs/i18n.txt deleted file mode 100644 index 22f5da9c1fd..00000000000 --- a/Build/source/libs/freetype/docs/i18n.txt +++ /dev/null @@ -1,161 +0,0 @@ - -Using national language support (NLS) in FreeType -================================================= - -21. 1. 1998 -Erwin Dieterich - - -1) Introduction -2) Using gettext (user's view) -3) Using gettext (programmer's view) -4) Using gettext (maintainer's view) -5) How can I switch off NLS? I don't need/want it. - - -Only Unix NLS using gettext() is covered here. If you are able to -help with internationalization (i18n) for different operating -systems, please e-mail me at Erwin.Dieterich.ED@Bayer-AG.de. - - - -1) Introduction - -If a program is to be used by people who are not fluent speakers of -English, the first thing they will ask for is communication in their -native language. If someone tries to implement NLS in a program -using only #ifdefs and other such programming strategies, it's -likely that this someone will get nowhere. - -Gettext() is a possible way to help. Only minimal extra programming -effort is needed; the translations are implemented separately from -the program, and it is not necessary to recompile a program if you -want to switch the messages to a different language. If you wouldd -like to know more about gettext(), I recommend reading the GNU -gettext tools manual, written by Ulrich Drepper, Jim Meyering, and -Francois Pinard. - -Currently supported languages are: - - Czech (cz) translator: Pavel Kankovsky - - Dutch (nl) translator: Gertjan de Back - French (fr) translator: David Turner - German (de) translator: Erwin Dieterich - - Spain (es) translator: Miguel A. Perez Valdenebro - - -Currently supported programs in the `test' directory are: - - ftlint - ftdump - fterror - ftmetric - ftsbit - - -2) Using gettext (user's view) - -Using gettext as an end user is very simple. If FreeType is -correctly installed on your computer, you can simply issue an -`export LANG=' in your Bourne shell or `setenv -LANG=' if you are using csh. That's all. In order to -switch back to English, just use `export LANG=' or `setenv LANG='. - - is a two character code describing your language: -de=German, fr=French etc. Every supported language has its own -.po file in the `po' directory of FreeType. If your -language is not there you should consider contributing a -translation. Just e-mail me. Here is a transcript of what `export -LANG=' does: - - test> ftlint 24 furiosot.ttf - Could not find or open furiosot.ttf. - FreeType error message: OS/2 table missing. - - test> export LANG=de - test> ftlint 24 furiosot.ttf - Datei `furiosot.ttf' konnte nicht gefunden oder geöffnet werden. - FreeType Fehlermeldung: `OS/2'-Tabelle fehlt. - - test> export LANG= - test> ftlint 24 furiosot.ttf - Could not find or open file furioso.ttf. - FreeType error message: OS/2 table missing. - -Doesn't this look good? But what if nothing happens if you set -LANG? Here are some hints: - -First: Is your language really supported? If it is, you need to be -sure that you have gettext() installed (if you are sitting at a -Linux box, chances are very good that you have). If you compiled -FreeType yourself and nothing strange happened, then your version of -FreeType has NLS compiled in, as this is the default, unless you -forgot to install the translation files in the right places (`make -install' in the po/ directory should be enough, but you need root -permissions as these files are installed somewhere in /usr/local) -- -good luck :-) - - -3) Using gettext (programmer's view) - -If you intend to use NLS in your program, you just need to make a -few simple changes. Here I only describe how NLS is enabled in the -programs that come with FreeType in test/. If you would like to add -NLS to other programs using FreeType as well, take a look at -FreeType's installation files; you can probably use these files as a -model. - -Every string that should be translated needs gettext() around it. -So - - Message( "Usage: %s fontname[.ttf|.ttc]\n\n", - execname ); - -becomes - - Message( gettext( "Usage: %s fontname[.ttf|.ttc]\n\n" ), - execname ); - - -Yes, it's that simple. Next you need to initialize gettext. Put -the following in the header section of your file: - - #include "ft_conf.h" - #ifdef HAVE_LIBINTL_H - #include - #endif - - #ifndef HAVE_LIBINTL_H - #define gettext( x ) ( x ) - #endif - -and this at the very beginning of your main program: - - #ifdef HAVE_LIBINTL_H - setlocale(LC_ALL, ""); - bindtextdomain( "freetype", LOCALEDIR ); - textdomain( "freetype" ); - #endif - - -That's all. Just have a look at fterror.c in test/. - - -4) Using gettext (maintainer's view) - -I am too lazy today :-) If something isn't clear, just ask me. - - -5) How can I switch off NLS? I don't need/want it. - -Just say `configure --disable-nls' and recompile FreeType. - - -If you have any questions or comments regarding this short -introduction to NLS & FreeType, feel free to email me at -Erwin.Dieterich.ED@Bayer-AG.de. - - ---- end of i18n.txt --- diff --git a/Build/source/libs/freetype/docs/image/baselin2.gif b/Build/source/libs/freetype/docs/image/baselin2.gif deleted file mode 100644 index b9c28bd6523..00000000000 Binary files a/Build/source/libs/freetype/docs/image/baselin2.gif and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/baseline.gif b/Build/source/libs/freetype/docs/image/baseline.gif deleted file mode 100644 index f966ad21817..00000000000 Binary files a/Build/source/libs/freetype/docs/image/baseline.gif and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/emsquare.gif b/Build/source/libs/freetype/docs/image/emsquare.gif deleted file mode 100644 index 21dcfb34ead..00000000000 Binary files a/Build/source/libs/freetype/docs/image/emsquare.gif and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/freetype.gif b/Build/source/libs/freetype/docs/image/freetype.gif deleted file mode 100644 index 8be6d2153ee..00000000000 Binary files a/Build/source/libs/freetype/docs/image/freetype.gif and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/freetype.png b/Build/source/libs/freetype/docs/image/freetype.png deleted file mode 100644 index d520046feea..00000000000 Binary files a/Build/source/libs/freetype/docs/image/freetype.png and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/grid1.gif b/Build/source/libs/freetype/docs/image/grid1.gif deleted file mode 100644 index db15e23cf1c..00000000000 Binary files a/Build/source/libs/freetype/docs/image/grid1.gif and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/grid2.gif b/Build/source/libs/freetype/docs/image/grid2.gif deleted file mode 100644 index d0d9529603e..00000000000 Binary files a/Build/source/libs/freetype/docs/image/grid2.gif and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/grid3.gif b/Build/source/libs/freetype/docs/image/grid3.gif deleted file mode 100644 index 5b8035dafd2..00000000000 Binary files a/Build/source/libs/freetype/docs/image/grid3.gif and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/metrics.gif b/Build/source/libs/freetype/docs/image/metrics.gif deleted file mode 100644 index b8813b41004..00000000000 Binary files a/Build/source/libs/freetype/docs/image/metrics.gif and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/metrics2.gif b/Build/source/libs/freetype/docs/image/metrics2.gif deleted file mode 100644 index 1366ef237e9..00000000000 Binary files a/Build/source/libs/freetype/docs/image/metrics2.gif and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/small2.gif b/Build/source/libs/freetype/docs/image/small2.gif deleted file mode 100644 index 25f6afe83ab..00000000000 Binary files a/Build/source/libs/freetype/docs/image/small2.gif and /dev/null differ diff --git a/Build/source/libs/freetype/docs/image/tfp-back.png b/Build/source/libs/freetype/docs/image/tfp-back.png deleted file mode 100644 index 53be67191db..00000000000 Binary files a/Build/source/libs/freetype/docs/image/tfp-back.png and /dev/null differ diff --git a/Build/source/libs/freetype/docs/optimize.txt b/Build/source/libs/freetype/docs/optimize.txt deleted file mode 100644 index 2f7af918eca..00000000000 --- a/Build/source/libs/freetype/docs/optimize.txt +++ /dev/null @@ -1,181 +0,0 @@ - - FreeType Optimization HOWTO - - - -Introduction -============ - - This file describes several ways to improve the performance of the - FreeType engine on specific builds. Each `trick' has some - drawbacks, be it on code size or portability. - - The performance improvement cannot be quantified here simply - because id depends significantly on platforms _and_ compilers. - - - -I. Tweaking the configuration file -================================== - - The FreeType configuration file is named `ft_conf.h' and contains - the definition of various macros that are used to configure the - engine at build time. - - Apart from the Unix configuration file, which is generated when - calling the `configure' script from the template called - - freetype/ft_conf.h.in , - - all configuration files are located in - - freetype/lib/arch//ft_conf.h , - - where stands for your platform. This release also - provides an `ansi' build, i.e., the directory `lib/arch/ansi' used - to compile with any ANSI-compliant compiler. - - The configuration macros that relate to performance are described - next. - - - 1. TT_CONFIG_OPTION_INTERPRETER_SWITCH - -------------------------------------- - - If set, this macro builds a bytecode interpreter which uses a - huge `switch' statement to parse the bytecode stream during - glyph hinting. - - If unset, the interpreter uses a big jump table to call each - bytecode's routine. - - This macro is *set* by default. However, it may be worthwile on - some platforms to unset it. - - Note that this macro is ignored until - TT_CONFIG_OPTION_BYTECODE_INTERPRETER is set. - - - 2. TT_CONFIG_OPTION_STATIC_INTERPRETER - -------------------------------------- - - If set, this macro builds a bytecode interpreter which uses a - static variable to store its state. On some processors, this - will produce code which is bigger but slightly faster. - - Note that you should NOT DEFINE this macro when building a - thread-safe version of the engine. - - This macro is *unset* by default. - - - 3. TT_CONFIG_OPTION_STATIC_RASTER - --------------------------------- - - If set, this macro builds a scan-line converter which uses a - static variable to store its state. On some processors, though - depending on the compiler used, this will produce code which is - bigger but moderately faster. - - Note that you should NOT DEFINE this macro when building a - thread-safe version of the engine. - - This macro is *unset* by default. We do not recommend using it - except for extreme cases where a performance `edge' is needed. - - - 4. TT_USE_LONG_LONG - ------------------- - - Define TT_USE_LONG_LONG if you want to enable the use of the - 'long long' 64-bit type provided by gcc and other compilers. - Note that: - - 1. The type wasn't ANSI C in 1989 (but is now OK with the new - C99), and thus will produce many warnings during library - compilation with many compilers, including gcc 2.8.x. - - 2. Though the generated object files are slightly smaller, the - resulting executables are bigger of about 4kB! gcc must be - linking some extra code in there! - - 3. There is really no speed gain in doing so (but it may help - debug the ttcalc component). - - IMPORTANT NOTE: You don't need to define it on 64-bits machines! - - NOTE 2 : This flag used to be _GNUC_LONG64_ - - - -II. Replacing some components with optimized versions -===================================================== - - You can also, in order to improve performance, replace one or more - components from the original source files. Here are our - suggestions. - - - 1. Use memory-mapped files whenever available - --------------------------------------------- - - Loading a glyph from a TrueType file needs many random seeks, - which take a lot of time when using disk-based files. - - Whenever possible, use memory-mappings to improve load - performance dramatically. For an example, see the source file - - freetype/lib/arch/unix/ttmmap.c - - which uses Unix memory-mapped files. - - - 2. Replace the computation routines in `ttcalc.c' - --------------------------------------------------- - - This file contains many computation routines that can easily be - replaced by inline-assembly, tailored for a specific processor - and/or compiler. - - After heavy testing, we have found that these functions, - especially TT_MulDiv(), are the ones that are most extensively - used and called when loading glyphs from a font file. - - We do not provide inline-assembly with this release, as we want - to emphasize the portability of our library. However, when - working on a specific project where the hardware is known to be - fixed (like on an embedded system), great performance gains - could be achieved by replacing these routines. - - (By the way, the square root function is not optimal, but it is - very seldom called. However, its accuracy is _critical_. - Replacing it with a fast but inaccurate algorithm will ruin the - rendering of glyphs at small sizes.) - - - -III. Measuring performance improvements -======================================= - - Once you have chosen some improvements and rebuilt the library, - some quick ways to measure the `new' speed are: - - - Run the test program `ftlint' on a directory containing many - TrueType fonts, and measure the time it takes. On Unix, you can - use the shell command `time' to do it like in - - % time test/ftlint 10 /ttfonts/*.ttf - - This will measure the performance improvement of the TrueType - interpreter. - - - Run the test program `fttimer' on a font containing many complex - glyphs (the latest available versions of Times or Arial should - do it), probaby using anti-aliasing, as in: - - % time test/fttimer -g /ttfonts/arial.ttf - - Compare the results of several of these runs for each build. - - ---- end of OPTIMIZE --- diff --git a/Build/source/libs/freetype/docs/porting.txt b/Build/source/libs/freetype/docs/porting.txt deleted file mode 100644 index f5dd737e8dc..00000000000 --- a/Build/source/libs/freetype/docs/porting.txt +++ /dev/null @@ -1,1078 +0,0 @@ - - - The FreeType Porting Guide - - or - - Everything you need to know to make FreeType - run on the weirdest system - - --------------------------------------------------------------------- - - Table of Contents - - - Introduction - - I. General design and system modules - - II. Memory component API - - 1. The alloction function: TT_Alloc() - 2. The release function: TT_Free() - 3. The ALLOC() and ALLOC_ARRAY() macros - 4. The MEM_xxxx() macros - - III. File component API - - 1. Streams and their functions - 2. Frames and file access - 3. Differences in thread support levels - - IV. Mutex component API - - V. Summary & Advanced concepts - - 1. Porting summary - 2. Exotic filesystems - - VI. Troubleshooting - - Conclusion - - --------------------------------------------------------------------- - -Introduction -============ - -The FreeType engine is portable in many ways: - -- First, it can be compiled by any ANSI C compliant compiler, which - guarantees the widest possible uses. - -- Its default build uses a tiny fraction of the ANSI libc, mainly - for memory management and I/O access, which should be available on - most systems (i.e., malloc(), free(), fopen(), fread(), etc). - -- Its design is modular, and allows an implementer to remove all - dependencies on a particular runtime environment, to adapt the - engine to its specific needs. For example, it is possible to use - memory-mapped files on systems which support them. - -This document explains the engine's design, presenting the `system' -modules that need to be changed by porters of the library, as well -as how to do it. - -Note that this documentation is _very_ detailed, and you may -DIRECTLY JUMP to SECTION V (Summary and advanced concepts) which -gives you a QUICK STEP-BY-STEP GUIDE TO PORTING each component, -without the need to understand all the guts of the TrueType engine. - -Several issues are discussed, including the use of exotic font -storage conventions. - - --------------------------------------------------------------------- - - -I. General design, and system modules -===================================== - - The engine's design is intentionally highly modular. It is made - of several `components', each with its own specific goals. Three - of these play an important role with regards to portability. They - are: - - - the memory component: - - Found in the files `ttmemory.h' and `ttmemory.c'. It defines - several macros and a few functions used by _all_ other modules - to allocate, release, copy, and move memory blocks. - - - the file component: - - Found in the files `ttfile.h' and `ttfile.c'. It defines - several types and abstractions (streams, frames), that are used - by _all_ other modules to access font files. - - - the mutex component: - - This component compiles to a null object if the engine is built - in single-thread mode. Otherwise, for thread-safe and reentrant - builds, the macros and functions it defines are used by the rest - of the engine to protect shared variables. - - NOTE: - - Because the ANSI libc does not provide synchronisation - primitives (synchronisation isn't portable accross platforms), - the default implementation, found in `ttmutex.c', is made of - dummy functions which always return a successful error - condition. - - You _need_ to re-define this component for your system if you - decide to make a thread-safe or reentrant build, even if you - use the ANSI libc. - - - When specializing a component, i.e., rewriting it for your - platform, you should respect a few conventions which are explained - in the following sections. Note also that the system-specific - implementations are usually placed in the - `freetype/lib/arch/' directory. For example: - - freetype/lib/arch/unix/ttmmap.c - - A Unix-only implementation of ttfile which uses the - memory-mapped file API (this greatly improves the engine's - performance, due to the random access pattern typicals of - glyph data retrieval). - - freetype/lib/arch/os2/os2file.c - - This is an implementation of ttfile specific to OS/2, which - directly calls the system functions DosOpen(), DosRead(), etc. - - The FreeType/2 DLL (a free TrueType font driver for OS/2) also - uses its own memory component which calls a special allocation - routine required in its runtime environment, and also provides - additional statistics that can be displayed by an auxiliary - tool while the driver is running in the system. - -We ask you to respect this directory convention. This really needs -a minor Makefile change, and still having the ability to compile the -`default' ttfile and ttmemory will help you debug your specific -ports by easy comparisons. - - --------------------------------------------------------------------- - - -II. Memory component API -======================== - - This section presents the macros and functions defined in - ttmemory.h, and how they should be implemented, if you decide to - rewrite the source file ttmemory.c from scratch. An easier - solution would be to replace the calls to malloc() and free() with - your own functions, though. - - -1. Allocation routine : TT_Alloc() ----------------------------------- - - This function is used to allocate blocks of memory, just like - malloc(), but defines a very different interface. Its prototype - is: - - TT_Error TT_Alloc( long size, void** p ); - - [The FreeType source files use abstract data types like `Long' for - all internal functions and `TT_Long' for externally visible - structures. See tttypes.h and freetype.h, respectively.] - - We can see that: - - - The function returns an error code, and _not_ a pointer. The - reason for this is that your own implementation may perfectly - fail for more than one good reason. For example, it could - detect a corrupted heap, a memory exhaustion or an unusually - large block, and have a different error code for each of these - cases. - - If a memory allocation error occurs in a FreeType function, it - is always taken into account (of course, for safety reasons), - but its code is directly sent to the caller. This means that - your own applications and font servers will be able to interpret - these errors and let you handle them appropriately. - - - Its second argument is the _address_ of a typeless pointer. - This means the need to typecast it before calling this function. - - The macro MEM_Alloc() is defined in ttmemory.h to do it for you, - as well as the `memory extraction' performed by the `&' - operator, so that you can write: - - char* buffer; - - - MEM_Alloc( size, buffer ); - - instead of - - TT_Alloc( size, (void**)&buffer ); - - Note that the engine _never_ uses this macro directly, but - ALLOC() instead (see below) in order to _always_ test the error - code. - - ***************** - *** IMPORTANT *** - ***************** - - - A newly allocated block should _always_ be filled with zeroes! - This is a _very_ strong convention used within all the engine. - It helps greatly to reduce code size, in general. If your - implementation of TT_Alloc() does not respect it, you are pretty - certain to build an unrunnable (at best) or (worse) instable - engine! Beware. - - -2. Release routine: TT_Free() ------------------------------ - - This routine is naturally used to release any block created - through TT_Alloc(). Its prototype is: - - TT_Error TT_Free( void** P ); - - We can see that: - - - It also returns an error code. Note, however, that the error is - ignored in most, if not all, parts of the engine. This is - because freeing memory usually happens when all necessary work - has been finished, or when something already wrong happened. - - - It takes the address of a typeless-pointer, and _not_ the - pointer's value itself. This is used to set the pointer's value - to NULL just after the block was released, which avoids dangling - references in objects. Of course, there is a macro defined to - simplify source writing. One can use FREE() like: - - char* buffer; - - - MEM_Alloc( size, buffer ); - - .... work .... - - FREE( buffer ); - - /* now `buffer' is set to NULL; the following line will */ - /* seg-fault */ - - a = buffer[0]; - - - ***************** - *** IMPORTANT *** - ***************** - - - The function TT_Free() (and thus the macro FREE()) will accept a - NULL pointer successfully! This means more precisely that the - address of a pointer may have the value NULL; in this case it - will return with a successful error code (TT_Err_Ok == 0). - - This convention is also _very_ strong in the engine, and - simplifies both code size and style. One of its primary origin - is the engine's object management which requires the ability to - release an object, be it normal or `partial', with the same - code. - - -3. The ALLOC() and ALLOC_ARRAY() macros ---------------------------------------- - - Two macros are also defined to make the FreeType source code - easier to read and understand. Their role is to perform an - allocation, while saving the error condition in an _implicit_ - local variable called `error', and returning a boolean which is - set to true in case of error. Their definition is - - #define ALLOC( pointer, size ) \ - ( ( error = MEM_Alloc( pointer, size ) ) != TT_Err_Ok ) - - and - - #define ALLOC_ARRAY( pointer, count, type ) \ - ( ( error = MEM_Alloc( pointer, \ - (count) * sizeof ( type ) ) ) \ - != TT_Err_Ok ) - - They are always used in `if' statements, and can be chained - together. Here is some example code: - - char* buffer1 = 0; /* temporary buffer 1 */ - char* buffer2 = 0; /* temporary buffer 2 */ - TT_Error error; - - - ... - - if ( ALLOC_ARRAY( buffer1, n, TT_F26Dot6 ) || - ALLOC_ARRAY( buffer2, n, short ) ) - goto Fail; - - ... work ... - - Fail: - FREE( buffer2 ); - FREE( buffer1 ); - return error; - - - Notes: - - - If an error occurs during the first allocation, execution will - jump immediately to the `Fail' label. - - - The failure code, which releases the buffers, does not need to - differentiate whether the first allocation succeeded or not - (simply because FREE() accepts null pointers with no - problems). - - The equivalent code, without macros, would be: - - char* buffer1; - char* buffer2; - TT_Error error; - - - error = TT_Alloc( n * sizeof ( TT_F26Dot6 ), - (void**)&buffer1 ); - if ( error ) goto Fail_Buffer1; - - error = TT_Alloc( n * sizeof ( short ), - (void**)&buffer2 ); - if ( error ) goto Fail_Buffer2; - - .... work .... - - Fail_Buffer2: - TT_Free( (void**)&buffer2 ); - - Fail_Buffer1: - TT_Free( (void**)&buffer1 ); - - - Which is a lot less clear about its intents, and uses more special - cases. - - -4. The MEM_xxxx() macros ------------------------- - - Finally, three macros are defined to perform some common memory - block operations. Their names are rather explicative: - - - MEM_Copy() - - Used by the engine to copy one block of data in memory to - another one. - - - MEM_Set() - - Used to set all bytes of a block of memory to a given value. - - - MEM_Move() - - Well, guess what ;-) - - - These operations could have been embedded in functions like - TT_Mem_Copy(), TT_Mem_Set(), and TT_Mem_Move(), but a lot of - compilers are able to inline directly calls to such `intrinsic' - functions as memcpy() and memmove(). Hence, macros make sense - here. - - --------------------------------------------------------------------- - - -III. File Component API -======================= - - This section describes the file component's API, and the things - that are needed to port it to a specific system. Note that only a - fraction of the source code in `ttfile.c' needs to be rewritten - during a port. - - -1. Streams and their functions ------------------------------- - - A stream in FreeType (version 1.x) encapsulates both the - location/naming of a file, and its access. This is due to the - fact that they were originally designed to embed a simple ANSI - `FILE*' file pointer. - - This means several things: - - - A stream is created and opened via the TT_Open_Stream() - function. It takes, in the default build, a font pathname of - type `char*' that it uses when calling fopen(). - - - It can be released/closed via the function TT_Close_Stream(). - - - It embeds a `current file position', just like an ordinary file - descriptor. It is thus seekable, through the function - TT_Seek_File(). - - - Raw data can be extracted from a stream through TT_Read_File() - and TT_Read_At_File(). - - However, it has certain properties that differ from a libc `FILE*' - data type: - - - Because each face object has its own stream, and because most - operating systems limit the number of opened system resources in - each process, it is more than helpful to be able to `flush' a - stream. - - A stream is said to be flushed if the system resource it - contains (like a file descriptor) has been closed. However, - this resource is re-opened automatically when needed. - - The function TT_Flush_Stream() is used to flush a stream. If a - stream has been flushed, it is also said to be `asleep'. - - - The engine calls TT_Use_Stream() before each new stream access. - With it, the file component is able to awake (or `activate') - streams that are flushed, if needed. - - - Consequently, the engine calls TT_Done_Stream() when it has - performed all I/O access. These two APIs (TT_Use_Stream() and - TT_Done_Stream()) let the file component track and manage the - engine's access patterns, and allows it to cache opened streams - more cleverly. - - For example, one could implement an LRU list used to track the - `oldest' streams, and only activate the 10 `freshest' ones, thus - limiting the total number of system stream resources used by the - library, independently of the total number of opened faces in - the engine. - - -2. Frames and file access -------------------------- - - In order to resolve endianess and alignment issues, the engine - uses the concept of `frames' to extract data from a TrueType - table. - - - A frame is simply a sequence of successive bytes, taken from a - stream from its current position. A frame can only exist within - a stream. - - - The function TT_Access_Frame() (ideally) reads its data and - places it into an intermediate buffer, which is later used for - parsing. This function also checks that the whole frame fits - into the original file. For example, it will return an error if - detecting `over-reads' in the file (which can happen if the font - file is broken). - - Note that the intermediate buffer disappears in the case of - memory-mapped files. - - - Each frame has an internal cursor, which is set to its buffer's - base by the previous function. Note, however, that it differs - from the stream's current position, which has been advanced once - TT_Acess_Frame() is completed. - - - Data is extracted from the frame through calls to functions of - the form: - - TT_Get_(); - - where can be any of: Byte (unsigned char), Char - (signed char), Short, UShort, Long, or ULong. - - Each function returns the integer below the current frame - cursor, and advances the latter in the buffer. - - - Finally, when the frame access ends, the engine calls the - TT_Forget_Frame() function, which will release the intermediate - buffer and set the cursor to NULL. - - Here is a typical frame read sequence: - - /* first - read the next 12-bytes frame in memory */ - error = TT_Access_Frame( 12 ); - if ( error ) - return error; - - /* now, extract all data */ - object->field1 = TT_Get_Short(); - object->field2 = TT_Get_Long(); - object->field3 = TT_Get_Char(); - object->filed4 = TT_Get_Long(); - object->field5 = TT_Get_Byte(); - - /* done - now release the frame */ - TT_Forget_Frame(); - - /* now perform some checks */ - if ( object->field1 == -1 ) - return Error_1; - - if ( object->field2 > object->field4 ) - return Error_2; - - - ***************** - *** IMPORTANT *** - ***************** - - A few things need to be noticed by porters when they implement - frame loading (i.e. the TT_Access_Frame() function): - - - The functions that need to be ported are TT_Access_Frame() and - TT_Forget_Frame(). The TT_Get_XXXX() functions should be left - as is. - - - A frame has a state, and must _always_ be released through - TT_Forget_Frame() in case of an error. This means that the - engine will _never_ use code like the following: - - error = TT_Access_Frame( 12 ); - if ( error ) - goto Fail; - - object->field1 = TT_Get_Short(); - - /* now check error and return immediately -- */ - /* WITHOUT RELEASING FRAME! ERROR! */ - if ( object->field1 == -1 ) - goto Fail; - - object->field2 = TT_Get_Long(); - object->field3 = TT_Get_Char(); - object->field4 = TT_Get_Long(); - - /* check for error, return immediately -- */ - /* WITHOUT RELEASING FRAME! ERROR! */ - if ( object->field2 > object->field4 ) - goto Fail; - - /* now release frame */ - TT_Forget_Frame(); - - This means more simply that EACH successful call to - TT_Access_Frame() will ALWAYS be followed by a call to - TT_Forget_Frame()! - - - As a consequence of the first rule, and also in order to keep - things simple, NESTING FRAME ACCESSES are not allowed. For - example, the following code will produce an error: - - /* First frame access */ - error = TT_Access_Frame( 8 ); - if ( error ) - goto Fail; - - /* read a file offset */ - offset = TT_Get_Long(); - - /* seek and load another frame */ - error = TT_File_Seek( stream, offset ); - if ( error ) - goto Fail; - - error = TT_Access_Frame( 4 ); - /* The function TT_Access_Frame detects nested calls */ - /* and ALWAYS returns TT_Err_Nested_Frame_Access! */ - if ( error ) - goto Fail; - - data1 = TT_Get_Long(); - - /* release second frame */ - TT_Forget_Frame(); - - /* read next integer from the first frame */ - data2 = TT_Get_Long(); - - /* release first frame */ - TT_Forget_Frame(); - - This simplifies the work that needs to be done wen porting the - TT_Access_Frame() and TT_Forget_Frame() functions. - - -3. Differences in thread support levels ---------------------------------------- - - The FreeType library can be built to three distinct thread-support - levels. This section will present each other, and show how this - translates within the ttfile.c source code. - - a. Levels - - The three levels are - - - single thread - - No synchronization primitive is used to protect the data in - the file component. Hence, there is only one `current' stream - at any one time. Note, however, that in some cases, more than - one stream may be `active' (or `awakened'); e.g., when using - memory-mapped files, each opened face needs a valid mapping - before it can be used/parsed by the engine. - - - thread-safe - - The thread safe mode synchronizes concurrent accesses to the - renderer's component through mutexes. For the file component, - this means a single mutex which is `locked' by a call to - TT_Use_Stream(), and `released' by TT_Done_Stream(). - - As a consequence, there is only one possible `current' stream - when the engine reads files, like in the single thread case. - - - re-entrant - - In this mode, concurrent accesses are possible on many - components, including ttfile. This means that each - TT_Use_Stream() must _really_ create its own system/ANSI - stream for a single file, and that the file component _cannot_ - have any state (only stream objects have!), like a `current - stream' and `current frame'. - - This mode must use mutexes to protect all shared variables and - lists from concurrent changes/reads. The only component which - is still serialized in this mode is the scan-line converter - (a.k.a. ttraster). - - b. Implementation differences - - Because the TrueType engine serves more as a `font format - driver' than a general and high-level text-rendering library, it - has been decided to keep its code as simple and compact as - possible. - - This implies some implementation differences between the three - thread modes, which are briefly explained below: - - - Single-thread and thread-safe mode can have a state, which - means for ttfile.c, a `current stream' and `current frame'. - - - In the reentrant mode, the `state' must be stored in a - thread-local place, which means the stack (or more simply - local function variables). - - What follows is that some `ttfile' functions will not take the - same number of arguments depending on the thread-support mode. - Let us take the example of frame access and parsing: - - In single-thread and thread-safe mode, the current frame is - automatically set by the TT_Access_Frame() function, which only - takes a `size' argument to determine the run of bytes to extract - from the _current_stream_ within ttfile's state. - - Moreover, the TT_Get_XXXX() functions extract data from the - current frame, and need no arguments. A simple frame access - then looks like this: - - /* read the next 12-bytes frame from the _current_stream_ */ - error = TT_Access_Frame( 12 ); - if ( error ) - return error; - - /* now, extract all data from the _current_frame_ */ - object->field1 = TT_Get_Short(); - object->field2 = TT_Get_Long(); - object->field3 = TT_Get_Char(); - object->filed4 = TT_Get_Long(); - object->field5 = TT_Get_Byte(); - - /* done - now release the current frame */ - TT_Forget_Frame(); - - In reentrant mode, things are a bit different. The current - stream and current frame must be passed as parameters, and the - code looks like this (notice the new function parameters!): - - - TT_Frame frame; /* define a local variable to handle */ - /* the current frame */ - - .... /* we suppose we already have a stream variable */ - .... /* named `stream' (how surprising ;-) */ - - /* read the next 12-bytes frame from a given stream */ - error = TT_Access_Frame( stream, 12, &frame ); - if ( error ) - return error; - - /* now, extract all data from the given frame */ - object->field1 = TT_Get_Short( frame ); - object->field2 = TT_Get_Long ( frame ); - object->field3 = TT_Get_Char ( frame ); - object->filed4 = TT_Get_Long ( frame ); - object->field5 = TT_Get_Byte ( frame ); - - /* done - now release the current frame */ - TT_Forget_Frame( frame ); - - - The differences between these two schemes are striking. Though - an `easy' solution would have been to only write the engine in - reentrant-mode, it would have resulted in larger and slightly - slower code, as well as the source a bit more obscure about its - intents and thus harder to maintain. Also, the reentrant - version is only needed in rare cases and environments, and it - was not thought as a good idea to complexify _source_ code in - order to comply with rare uses. - - The problem is solved within the engine by the use of a set of - carefully selected macros, which help generate both versions - from a _single_ source file. - - Moreover, as the macros imitate the non-reentrant syntax (i.e., - the use of the `stream' and `frame' parameters is implicit to - the macros), the source is kept clear and easy to understand, - even if compiled in re-entrant mode. - - The code looks then like the following in the engine: - - /* read the next 12-bytes frame from the current stream */ - /* assignment of the error code in the local `error' */ - /* variable is also implicit to the ACCESS_Frame macro, */ - /* and its result is always a boolean (no ANSI warnings) */ - - if ( ACCESS_Frame( 12 ) ) - goto Fail; - - /* Now, extract all data from the current frame. */ - /* The macros GET_xxxxx use an implicit local `frame' */ - /* variable in reentrant mode. */ - - object->field1 = GET_Short(); - object->field2 = GET_Long(); - object->field3 = GET_Char(); - object->filed4 = GET_Long(); - object->field5 = GET_Byte(); - - /* done - now release the current frame */ - - FORGET_Frame(); - - Another advantage of the above code is its `expressiveness' in - the sense that it really describes what is happening during the - frame load, hiding the boring but necessary details required by - error checking and reentrancy. And if the error checks are - within the macros, we are sure we won't forget them because they - are `too boring to code' (one of the reason why `exceptions' - caught so quickly in C++ and Java). - - c. Consequences on ttfile - - Of course, the macros only hide real differences in - implementation which must be reflected in ttfile.h and ttfile.c. - In order to ease this task, some other macros are used, which - use is reserved for these two files. There are: - - STREAM_ARG - STREAM_ARGS - FRAME_ARG - FRAME_ARGS in ttfile.h - - CUR_Stream - STREAM_VAR - STREAM_VARS - FRAME_VAR - FRAME_VARS in ttfile.c - - All of these macros (with the exception of CUR_Stream) default - to nothing (i.e. a void macro) in single-thread and re-entrant - mode, which only differ from the use of a mutex lock and release - in the functions TT_Use_Stream() and TT_Done_Stream(). - CUR_Stream defaults to the file component's current stream, - found in its internal state (as you can guess, it designates the - `current stream'). - - On the opposite, the macros are used to define additional - function parameters (if a function is called) and arguments (if - calling in a function). For example, the following (fictional) - code: - - /* return the size of a given stream */ - long Stream_Size( STREAM_ARG ) - { - return CUR_Stream.size; - } - - expands to: - - long Stream_Size() - { - return file_component.current_stream.size; - } - - in non-reentrant mode, and to: - - long Stream_Size( TT_Stream stream ) - { - return (*stream).size; - } - - otherwise. - - Thus, we can see the following reentrant expansions: - - STREAM_ARG --> TT_Stream stream - STREAM_ARGS --> TT_Stream stream, (note the comma) - - FRAME_ARG --> TT_Frame frame - FRAME_ARGS --> TT_Frame frame, (note the comma) - - STREAM_VAR --> stream - STREAM_VARS --> stream, - - FRAME_VAR --> frame - FRAME_VARS --> frame, - - They follow these simple rules: - - - An XXXX_ARG is used to define a single optional parameter in - a function _prototype_. The parameter is said to be single - if it is not followed by anything, e.g. - - long Stream_Size( STREAM_ARG ) - - - An XXXX_ARGS is the same, followed by a comma, in order to - place other (non-optional) parameters behind, e.g. - - TT_Error Stream_Seek( STREAM_ARGS long pos ) - - - An XXXX_VAR is used, _only_ within ttfile.c, to _call_ a - function having an XXXX_ARG or XXXX_ARGS in its prototype - resp. declaration. - - long Stream_Left( STREAM_ARG ) - { - return ( Stream_Size( STREAM_VAR ) - - Stream_Pos( STREAM_VAR ) ); - } - - - An XXXX_VARS is the same, but can be followed by non-optional - parameters. - - The macros allow you to write some code independently of the - thread level within ttfile.c. - - ***************** - *** IMPORTANT *** - ***************** - - In general, porters should not be concerned about the use of - these macros. One easy way to port is to take the ANSI code in - ttfile.c and modify only the parts that really access the system - (like fopen(), fread(), fseek(), etc). - - These details are explained here to make you understand how the - code works, in case you are interested in more elaborate ports. - - --------------------------------------------------------------------- - - -IV. Mutex Component API -======================= - - As said before, the default library source code uses the ANSI libc - only, and the source code in ttmutex.c only contains dummy - functions which return a successful error condition in all cases. - - You thus NEED to specialize it in order to successfully use a - thread-safe or reentrant build. Here is explained what is really - important: - - -1. The TMutex type ------------------- - - The engine uses the `TMutex' type defined in ttmutex.h to handle - mutexes. It is only a typedef of a `void*' and should be kept - that way for the fastest porting. - - Your job will most probably be to store a system mutex/semaphore - handle or pointer in it. - - -2. The mutex macros and functions ---------------------------------- - - The interface file ttmutex.h defines several macros that are used - within the engine to protect all shared variables (like lists) - from concurrent accesses. All macros default to `void' (nothing) - in single thread mode, and to calls to the TT_Mutex_XXXX() - functions in multi-threaded modes. - - These functions are: - - o TT_Mutex_Create() - - Takes a TMutex address as an argument. It should place a NULL - pointer in this output variable in case of failure. - - o TT_Mutex_Lock() - - It also takes the address of a TMutex as an argument. Used to - lock the mutex/semaphore, of course. - - o TT_Mutex_Release() - - Guess what ;-) Same interface. - - o TT_Mutex_Delete() - - Destroys a mutex/semaphore. - - -3. Redefining the TMutex type ------------------------------ - - You can also get rid of the TT_Mutex_xxxx() functions if you want - to use your system's synchronization API. This can be done in two - simple steps: - - a. Redefine the TMutex type to suit your system's handle types. - - b. Redefine the MUTEX_xxxx() macros in order to call directly your - API in the case of multi-threaded builds. - - Both methods (specializing the TT_Mutex_xxx() functions or - redefining the macros) are possible. - - --------------------------------------------------------------------------- - - -V. Summary and Advanced Concepts -================================ - -1. Quick step-by-step guide to porting the system components ------------------------------------------------------------- - - a. Port the memory component - - o Look at the `ttmemory.h' file and change the macros - MEM_Copy(), MEM_Move(), and MEM_Set() to reflect your system's - API providing the equivalent functionality. The reason that - macros instead of functions are used there is that many - compilers are able to inline directly these functions within - your code. - - o Look at the `ttmemory.c' file. Replace the single malloc() - call with your own allocation routine, and the single free() - with your own release routine. If your allocator uses more - sophisticated functions, you will probably have to rewrite - more parts of this file. See section I above. - - b. Port the mutex component - - o Look at the file `ttmutex.c' and specialize each routine to - have it use your system's synchronization API. - - o For a more advanced port, you can also directly redefine the - definition of the TMutex type in ttmutex.h, as well as the - macro definitions (like MUTEX_Create(), MUTEX_Lock(), etc.) to - use directly your system's API. The TT_Mutex_xxxx() will not - be necessary then. - - c. Port the file component - - o For a quick port, look at the following functions and replace - the ANSI libc calls (like fopen(), fclose(), fread(), etc.): - - Stream_Activate(), Stream_Deactivate(), TT_Open_Stream(), - TT_Done_Stream(), TT_Seek_File(), TT_Skip_File(), - TT_Read_File(), TT_File_Pos() - - o If you plan to use memory-mapped files, you can have a look at - the Unix file component found in - `freetype/lib/arch/unix/ttmmap.c'. It should give you an - indication of what to do. - - -2. Exotic file systems and font resources ------------------------------------------ - - a. Other file naming conventions - - The high-level library uses the `TT_Text*' type to define the - type of characters used for a font file's pathname. By default, - it equals to the `char*' type, which allow you to open a face - object with the following call: - - error = TT_Open_Face( engine, "c:\fonts\times.ttf", &face ); - - The implementation of TT_Open_Face() passes directly the - pathname pointer to the internal TT_Open_Stream() function, - located in the file component, which really opens the file. - - Some filesystems use different naming conventions, like UTF-16 - code, where each character is coded in 16 bits. In order to - help them to use FreeType, all you need to do is the following: - - - Define the macro HAVE_TT_TEXT. - - - Define the type `TT_Text' to the character type you need, like - 'wchar_t' for Unicode. - - Note that this should apply when compiling the FreeType library, - as well as WHEN INCLUDING THE FILE `freetype.h' IN YOUR - APPLICATIONS. - - If the configuration macro HAVE_TT_TEXT is not defined, the file - `freetype.h' defines TT_Text as `char*'. You can read its - source code to see it more explicitly (look at the very first - lines of the code). - - You can also use TT_Text as a pointer to more specific files, - like a simple memory address when the font is located in ROM, - etc. - - Just synchronize the definition of TT_Text with the - implementation in ttfile.c! - - b. Font Resources - - FreeType 2.0 will feature many architectural changes that will - help make porting easier, especially with regards of the file - component. - - To do this, it will separate the concepts of a `font resource', - i.e. a file seen as a storage, from a `font stream', i.e. a - file seen as a stream of data. Only the resource related code - will be visible to porters, and it will be much easier to port - (for example, nearly all thread-support levels issues will be - treated internally in the rest of the engine, and will be - invisible to the resource component). - - We are sorry for the current design and state, but TT_Stream - started as a simple encapsulation of an ANSI FILE* variable, - before font-specific access patterns made them become what they - now are. - - FreeType 2.0 will be a good reason to re-design I/O access more - clearly, and fortunately with more power and flexibility (like - using easily files of different type, ROM-based, memory-mapped, - disk-based, in a single engine). - - However, all of this does not mean than the current design - does not work. It does, so do not hesitate to use it :-) - - --------------------------------------------------------------------- - - -VI. Troubleshooting -=================== - - To be written. - - --------------------------------------------------------------------- - - -Conclusion -========== - - To be written. - - ---- end of porting.txt --- diff --git a/Build/source/libs/freetype/docs/raster.txt b/Build/source/libs/freetype/docs/raster.txt deleted file mode 100644 index 34d05eb311d..00000000000 --- a/Build/source/libs/freetype/docs/raster.txt +++ /dev/null @@ -1,577 +0,0 @@ -This file is an attempt at explaining the internals of the FreeType -rasterizer. This component is quite general purpose and could -easily be integrated into other programs (but still under the -current license). - --------------------------------------------------------------------- - - The HOWs and WHYs of the FreeType rasterizer - - by David Turner - - - I. Introduction - - II. Rendering Technology - -III. Implementation Details - - IV. Gray-Level Support - - - -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 developed to render the glyphs found in TrueType files, - made up of segments and second-order Beziers. This document is an - explanation of its design and implementation. - - Though these explanations start from the basics, a knowledge of - common rasterization techniques is assumed. - - --------------------------------------------------------------------- - - -II. Rendering Technology -======================== - -1. Requirements ---------------- - - We will assume that all scaling/rotating/hinting/whatever has been - already done. The glyph is thus described, as in the TrueType - specification, by a list of points. Each point has an x and y - coordinate, as well as a flag that indicates whether the point is - _on_ or _off_ the curve. - - More precisely: - - - All point coordinates are in the 26.6 fixed float format as - defined by the specification. The orientation used is: - - ^ y - | reference orientation - | - *----> x - 0 - - This means that 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, i.e., (0.0, 0.0) is the coordinate of the - origin's center (unlike what happens within the TrueType - bytecode interpreter where this point's center lies at (0.5, - 0.5)). - - 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 - Bezier parametric arc, defined by these three points (the `off' - point being the control point, and the `on' ones the start and - end points). - - Finally, 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 Bezier arcs. - - * # 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. - - - The FreeType rasterizer, as intended to render TrueType glyphs, - does not support third order Beziers, usually found in Type 1 - fonts. Type 1 support may lead to further development of the - engine (it is already part of FreeType 2.0). - - The parametric form of a second-order Bezier is: - - P(t) = (1-t)^2*P1 + 2*t*(1-t)*P2 + t^2*P3 - - with t a real number in the range [0..1] - - P1 and P3 are the endpoints, P2 the control point. - - Note that the rasterizer does not use this formula. It exhibits, - however, one very useful property of Bezier 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 defined by the - arc's three control points. - - -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 shape's contours' - x-coordinates 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. - - These 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 will 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. - - Note that 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 also 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 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 16 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 an y-maximum - | \ P3.y as an y-minimum - | \ - | \ P1.y is not an y-extremum (though it is - | \ a x-minimum, which we don't need). - P1 ---___ \ - ---_\ - 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 simply: - - - min scanline = FLOOR ( min y ) - - max scanline = CEILING( max y ) - - A problem arises with Bezier 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 Bezier 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 Bezier arc. - # \ - - Here we have - \ P2.y >= P1.y && - \ P3 P2.y >= P3.y (!) - # - - We need to compute the y-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'll rely on a different technique, which use will become - apparent a bit later. - - Bezier arcs have the special property of being very easily - decomposed into two other sub-arcs, which are themselves Beziers - arcs. Moreover, it is easy to prove that there is at most one - y-extremum on each Bezier arc (for second degree ones). - - For instance, the following arc P1P2P3 can be decomposed into - two sub-arcs Q1Q2Q3 and R1R2R3 that look like: - - P2 - * - # on curve - * off curve - - - Original Bezier 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 bezier 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 y-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. We now have to compute its coordinate - for each scanline. - - In the case of segments, the computation is straightforward, and - uses good old Euclide (also known as Bresenham ;-). However, - for Bezier arcs, things get a little more complicated. - - We assume that all Beziers 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 arcs' intersections 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. Again, this is - --------------------- feasible directly, if we dare - to compute one square root per - * P2 _---# P3 scanline (how great!). - ------------- _-- -- - _- - _/ Rather, 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 the TrueType specification uses the winding fill rule, we - place on each scanline the profiles present 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 is that the two lists necessarily contain the same - number of elements. - - Creating spans is there straightforward: - - 1. We sort each list in increasing x order. - - 2. We pair each value of the left list, with its corresponding - value in the right one. - - - / / | | 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. - - g. Drop-out control - - To be continued. - - ---- end of raster.txt --- diff --git a/Build/source/libs/freetype/docs/readme.txt b/Build/source/libs/freetype/docs/readme.txt deleted file mode 100644 index ff3db7176ed..00000000000 --- a/Build/source/libs/freetype/docs/readme.txt +++ /dev/null @@ -1,106 +0,0 @@ -Welcome to the documentation directory of FreeType. - -Here are short overview where you can find which information. - - - apiref.txt FreeType high-level API reference. All the types, - functions, and error codes of FreeType. - - .................................................................. - - apirefx.txt The API reference of FreeType extensions which come - with the library itself. - - .................................................................. - - bitmaps.txt How to render a glyph outline into a bitmap. - - .................................................................. - - changes.txt Guess what :-) - - .................................................................. - - convntns.txt The FreeType developer's conventions guide. Lists - the design and coding conventions used in the - engine's source code. This file is incomplete but - contains information that should be read by any - person willing to hack the FreeType code. - - .................................................................. - - credits A list of persons who have contributed to FreeType. - - .................................................................. - - glyphs.htm An introduction to glyphs in general, its usage in - glyphs.txt TrueType, and how FreeType handles them. The file - `glyphs.txt' is a simple text dump (done with - Netscape) of glyphs.htm. - - .................................................................. - - i18n.txt A short introduction to the GNU gettext package. - - .................................................................. - - porting.txt The FreeType porting guide. All you need to - configure and adapt very easily FreeType's source - code to tailor it to your own platform. - - Learn how to provide your own memory, i/o, and mutex - components, optimally fitted to your system. See - how you can build a singly-threaded, thread-safe, or - re-entrant version of the engine from the same - source code! - - .................................................................. - - raster.txt The scan-line converter's internals explained. The - document is still incomplete but presents many key - concepts. - - .................................................................. - - threads.txt How to use threads with FreeType. - - .................................................................. - - user.txt FreeType's user guide. A guide to FreeType's - concepts, a step by step example, and a note about - future works and projects. - - .................................................................. - - FAQ The new up-to-date FreeType FAQ. Look here first if - you have problems with the library. - - .................................................................. - - TODO Things which probably will come, which would be nice - to have, problems still here, etc. - - - -These documents were scheduled, but will probably never come... - - develop.txt The FreeType developer's guide. All you need to know - in order to be able to understand and even hack the - engine's core source code. - - extend.txt The FreeType extension writer's how-to. All you need - to be able to provide new extensions to the engine. - - undoc.txt Undocumented TrueType! - - Yes, ladies and gentlemen, the TrueType - specification is fuzzy and misleading enough to - disband some serious commercial developers, but that - wasn't enough for us. Even though it took some time - (aaargh...), we finally discovered through hard work - the real meanings of the specs, fixed some errors - and even found surprising undocumented behaviour or - features! - - ---- end of readme.txt --- diff --git a/Build/source/libs/freetype/docs/threads.txt b/Build/source/libs/freetype/docs/threads.txt deleted file mode 100644 index 6e157fa3e1a..00000000000 --- a/Build/source/libs/freetype/docs/threads.txt +++ /dev/null @@ -1,117 +0,0 @@ -Threads with FreeType -===================== - - -The FreeType engine can now be compiled in thread-safe mode. -Because we want to keep the engine small and fast, the thread -protection is simple. This file gives an overview of what you can -do, and what you should strictly never do. - - -How to enable thread-safe support? - -A. You must have a valid replacement for the file `lib/ttmutex.c' - which calls your system's API to create, lock, and release - mutexes or semaphores. The current implementation is a dummy and - doesn't do anything. - -B. You must re-define the configuration macro - TT_CONFIG_OPTION_THREAD_SAFE located in `ttconfig.h'. Then - recompile. - - -IMPORTANT NOTE: - - If two threads create and use their own TT_Engine structure, they - can freely call the library concurrently on each of them (as well - as all their related objects), even in the non-threaded build. - The following remarks only apply to concurrent requests performed - on a single TT_Engine shared by multiple threads. - - --------------------------------------------------------------------- - -- What you can do: - - With the exceptions listed below (in `What you can't do'), you can - call all API functions concurrently with two different threads. - This includes: - - Creating two or more faces from the same engine (i.e. concurrent - calls to TT_Open_Face()/TT_Open_Collection()). - - Creating two or more instances from the same face object - (i.e. concurrent calls to TT_New_Instance()). - - Creating two or more glyph containers from the same face object - (i.e. concurrent calls to TT_New_Glyph()). - - The same holds for destruction of objects. - - Load two or more glyphs concurrently for the same face or - instance (i.e. concurrent TT_Load_Glyph() calls). - - Render two or more glyphs at the same time, in the same engine - (i.e. calling TT_Get_Glyph_Bitmap()/TT_Get_Glyph_Pixmap() or - TT_Get_Outline_Bitmap()/TT_GetOutline_Pixmap() concurrently). - - NOTE: The scan-line converter can only render one glyph at a - time, for a given TT_Engine. Concurrent calls are - synchronized through a mutex, though. - - If you really, _really_, need to generate bitmaps or - pixmaps concurrently, create an additional engine and use - it with TT_Get_Outline_Bitmap()/TT_Get_Outline_Pixmap() - (you don't need to create any object in it, the outline - can come from any source too). - - This is, however, not recommended (it works perfectly, but - this could change in the future for various technical - reasons). - - ---------------------------------------------------------------------------- - -- What you cannot do: - - - You shouldn't try to delete an object while still using it with - another thread. The engine doesn't protect you from stupidity! - For example, these concurrent calls: - - TT_Close_Face( face ); - TT_Get_Glyph_Bitmap( glyph, &bitmap ); - - will act unexpectedly if the glyph is a child of the face (i.e., - was created with TT_New_Glyph( face, &glyph )) - ^^^^ - same face - - Here are some other examples: - - TT_Get_Glyph_Outline( glyph1, ... ); - TT_Load_Glyph( instance, glyph1, ... ); - - or - - TT_Get_Outline_BBox( outline, &bbox ); - TT_Transform_Outline( outline ); - - etc. - - You get the idea: Only the face and instances are protected -- - glyph containers and outlines should be thread-specific. - - - - You shouldn't initialize extensions in an engine concurrently - (which is what every mere mortal will do anyway :-). - - - -That's about it. Now enjoy the lib ;-) - - -PS: See the `MT-Note' and `MT-Safe' remarks in ttapi.c for more - detailed information on each specific function. - - ---- end of threads.txt --- diff --git a/Build/source/libs/freetype/docs/user.txt b/Build/source/libs/freetype/docs/user.txt deleted file mode 100644 index d24d693b0ae..00000000000 --- a/Build/source/libs/freetype/docs/user.txt +++ /dev/null @@ -1,916 +0,0 @@ - - The FreeType Engine - - Core Library User Guide - - or - - How to use the engine in your applications and font servers - - --------------------------------------------------- - - Introduction - - - I. Basic Concepts - - 1. Concepts - 2. Handles - 3. Conventions of use - 4. Object classes - - II. Extensions - - 1. What is an extension? - 2. Where to find them - 3. Writing your own extension - - Conclusion - --------------------------------------------------------------------- - -Introduction -============ - - This file has been written to present the FreeType core library to - would-be writers of applications and font servers. It first - describes the concepts on which the engine is based, then how to - use it to obtain glyph metrics, outlines and bitmaps. - - The last part discusses the ability to add and use extensions to - the core library to get access to supplemental TrueType tables - which are not currently provided by the core engine. If you would - like to write your own extensions, read also the FreeType - developer's guide. - - -I. Basic Concepts -================= - - - 1. Concepts - ----------- - - FreeType defines several kinds of structures called `objects', - that are used to manage the various abstractions required to - access and display fonts. - - In care of good encapsulation, these objects are not directly - accessible from a client application. Rather, the user receives - a `handle' for each object he or she queries and wants to use. - This handle is a stand-alone reference; it cannot be used like a - pointer to access directly the object's data. - - 2. Properties - ------------- - - It is however possible to obtain and set object properties - through several functions of the API. For example, you can - query a face object's properties with only a handle for it, - using the function TT_Get_Face_Properties(). - - Note that the data will be returned in a user-allocated - structure, but will also contain pointers addressing directly - some data found within the object. - - A client application should never modify the data through these - pointers! In order to set new properties' values, the user must - always call a specific API function to do so, as a certain - number of other related data might not appear in the returned - structure and imply various non-visible coherency and coercion - rules. - - 3. Conventions of use - --------------------- - - o All API functions have their label prefixed by `TT_', as well - as all external (i.e. client-side) types. - - o To allow the use of FreeType's core engine in threaded - environments, nearly all API functions return an error code, - which is always set to 0 in case of success. - - The error codes' type is `TT_Error', and a listing of them is - given in the API references (see `apiref.txt' and - `apirefx.txt'). - - Some functions do not return an error code. Their result is - usually a value that becomes negative in case of error (this - is used for functions where only one kind of error can be - reported, like an invalid glyph index). - - An important note is that the engine should not leak memory - when returning an error, e.g., querying the creation of an - object will allocate several internal tables that will be - freed if a disk error occurs during a load. - - o A handle is acquired through API functions labeled along the - names: - - TT_Open_xxxx(), TT_New_xxxx() - - where `xxxx' is the object's class (Face, Instance, etc). - - Examples: - - TT_Open_Face(), TT_Open_Collection(), - TT_New_Instance(), TT_New_Glyph() - - o A handle is closed through an API labeled - - TT_Close_xxxx() or TT_Done_xxxx() - - where `xxxx' is the object's class (Face, Instance, etc). - - Examples: - - TT_Close_Face(), TT_Done_Instance(), TT_Done_Glyph() - - o Properties are obtained through an API labeled - - TT_Get_xxxx_yyyy() - - where `xxxx' is the object's class, and `yyyy' its property. - - Examples: - - TT_Get_Face_Properties(), TT_Get_Instance_Metrics() - TT_Get_Glyph_Outline(), TT_Get_Glyph_Bitmap() - - o Properties are set through an API labeled - - TT_Set_xxxx_yyyy() - - where `xxxx' is the object's class, and `yyyy' its property. - - Examples: - - TT_Set_Instance_Resolutions(), - TT_Set_Instance_CharSize() - - 4. Object Classes - ----------------- - - The following object classes are defined in this release of the - engine: - - o The Engine objects - - The FreeType library can be built to be completely re-entrant, - even though its default build doesn't support threads (more on - this in the `threads.txt'). - - As a consequence, it is possible to open several instances of - the library, called `engines'. Each engine has its own set of - current objects (faces, instances, etc.), and there is no - sharing between them. - - The idea is that the library could be compiled as a shared - library or DLL, and then be able to provide several distinct - engines to independent client applications. In this case, - each client program must create its own engine with - TT_Init_FreeType() to hold its data. - - Closing an engine will destroy _all_ objects that were - allocated since its opening, releasing all resources, etc., - with the exception of user-allocated outline objects. - - o The Face objects - - A face contains the data that is specific to a single TrueType - font file. It presents information common to all glyphs and - all point sizes like font-specific metrics and properties. - - You can open a face object by simply giving a pathname to the - TrueType file. You can later close (i.e. discard) the face - object. - - You can also open a single face embedded in a TrueType - collection. - - See also: - - TT_Open_Face(), TT_Open_Collection(), TT_Close_Face(), - TT_Get_face_Properties() - - o The Instance objects - - An instance is also called a `pointsize' or a `fontsize' in - some windowing systems. An instance holds the information - used to render glyphs on a specific device at a given point - size; it is always related to an opened face object. - - For instance, if you want to generate glyphs for text from the - same typeface at `sizes' of 10 and 12 points, all you need is - one face object, from which you will create two distinct - instances. - - A device is defined by its horizontal and vertical resolution, - usually specified in dots per inch (dpi). A point size is a - scaling number, given as _absolute_ values in points, where 1 - point = 1/72 inch. - - The `pixel' size, also known as the `ppem' value (for Points - Per EM square) is computed from both the device resolution and - the point size. It determines the size of the resulting glyph - bitmaps on your screen or sheet of paper. - - The default device resolution for any new instance is 96dpi in - both directions, which corresponds to VGA screens. The - default point size is 10pt. The high-level API allows you to - change this whenever you want for any given instance object. - - Note that closing a face object will automatically destroy all - its child instances (even though you can release them yourself - to free memory). - - See also: - - TT_New_Instance(), TT_Done_Instance(), - TT_Get_Instance_Metrics(), TT_Set_Instance_Resolutions(), - TT_Set_Instance_Pointsize() - - o The Glyph objects - - A Glyph object is a _container_ for the data that describes - any glyph of a given font. This means that it typically - holds: - - - Glyph metrics information, like bounding box or advance - width. - - - Outline arrays sized large enough to hold any glyph from the - face. This size is extracted from the face's internal - `maxProfile' table to optimize memory costs. - - - Other important parameters related to the `fine' rendering - of the glyphs. This includes things like the - dropout-control mode used at low sizes. - - - And it doesn't contain a bitmap or a pixmap! - - A glyph object is used to load, hint, and rasterize a single - glyph, as taken from the font file. - - See also: - - TT_New_Glyph(), TT_Done_Glyph(), TT_Get_Glyph_Metrics(), - TT_Get_Glyph_Outline(), TT_Get_Glyph_Bitmap(), - TT_Get_Glyph_Pixmap() - - o The Character Map (CharMap) handle - - Glyphs can be indexed in a TrueType file in any order, - independently of any standard character encoding, like ASCII - or Unicode. For this reason, each file comes with one or more - character mapping tables, used to translate from one specific - encoding's character codes to font glyph indices. - - There are many encoding formats, and each one can be - distinguished by two values: - - - its platform ID - - its platform-specific encoding ID - - Their values are defined in the TrueType specification and - won't be commented there. The FAQ lists the most commonly - used (platform,encoding) pairs. - - It is possible to enumerate the charmaps provided by a - TrueType font and to use any of these to perform translations. - - The charmaps are loaded into memory only on demand to save the - space taken by the maps that are not needed on your system. - They are part of the face object, however. - - This means that even though a charmap can be accessed through - a handle (obtained through the TT_Get_CharMap() function), it - isn't a stand-alone object. For example, you never need to - de-allocate it; this is automatically done by the engine when - its face object expires. - - See also: - - TT_Get_CharMap_Count(), TT_Get_CharMap_ID(), - TT_Get_CharMap(), TT_Char_Index(). - - o The Outline Objects - - An outline is a vector representation of a glyph. It is made - of several control points joined by line segments and Bezier - arcs, themselves gathered in closed paths called `contours'. - The outline have also several flags, or attributes, which are - used by the scan-line converter to select the best rendering - algorithms to convert the glyph's bitmap. - - Unlike other objects in FreeType, outlines aren't managed - through handles, but directly with the structure `TT_Outline', - defined for client applications. Each glyph container - contains an outline sized large enough to hold any glyph from - its parent face. Client applications can access it with - TT_Get_Glyph_Outline(). However, one can also create its own - outlines if needed with TT_New_Outline() and - TT_Clone_Outline(). - - Note that user-created outlines are NOT tracked by the - library. Hence, the client must release them himself with one - or more calls to TT_Done_Outline(). - - A various number of methods/operations are defined for the - outline class to simplify its management. - - - IMPORTANT NOTE: ********************************************** - - The definition of TT_Outline may change in the future. - Developers are thus advised to always use the outline - methods provided by the API rather than reading or setting - data themselves. - - ************************************************************** - - See also: - - TT_New_Outline(), TT_Clone_Outline(), TT_Copy_Outline(), - TT_Done_Outline(), TT_Get_Outline_BBox(), - TT_Get_Outline_Bitmap(), TT_Get_Outline_Pixmap(), - TT_Translate_Outline(), TT_Transform_Outline() - - o Bitmaps and Pixmaps - - One very important aspect of FreeType is that it is unable to - create bitmaps on its own. Rather, it is up to the client - application to do it, and pass a reference, in the form of a - TT_Raster_Map, to the scan-line converter (the component in - charge of generating bitmaps from outlines). - - Hence the importance of the TT_Raster_Map structure, which - layout is: - - struct - { - int rows; /* number of rows */ - int cols; /* number of columns (bytes) per row */ - int width; /* number of pixels per line */ - int flow; /* bitmap orientation */ - - void* bitmap; /* bit/pixmap buffer */ - long size; /* bit/pixmap size in bytes */ - } TT_Raster_Map; - - - The `rows' field contains the total number of rows in the - bitmap. - - - The `width' field gives the number of pixels per row (a bit - or a byte, depending on the map's nature). - - - The `cols' field gives the number of columns, i.e. bytes, - taken by each row in the map buffer. - - IMPORTANT: The `cols' field must be a multiple of 4 for - pixmaps! - - Typically, its value should be `(width+7)/8' for bitmaps, - and `(width+3) & -4' for pixmaps. - - - The `flow' field gives the map's vertical orientation. - - For example, if the first bytes of the bitmap buffer pertain - to its upper row, the flow is said to be going `down', and - the field should take the value `TT_Flow_Down'. If these - bytes pertain to its lowest row, the flow is going `up', and - the value is `TT_Flow_Up'. - - As an example, the PC video modes use a `down' flow, where - the first VRAM byte corresponds to the upper and leftmost - corner of the screen. - - - The `bitmap' field is a typeless pointer to the map's - buffer. - - - The `size' field contains the buffer's size in bytes. It is - usually computed as follows: - - size = rows * cols; - - NOTE: For bitmaps, the leftmost-pixel is related to the - highest (i.e. most significant) bit of its byte. - There is currently no support for the opposite - convention found in some systems. - - (It can be easily added if you really need it, just - ask the development team.) - - -II. Step-by-step Example -======================== - - Here is an example to show, step by step, how a client application - can open a font file, set one or several instances, load any - glyph, then render it to a bitmap. - - 1. Initialize the engine - ------------------------ - - This is the first thing to do. You need to initialize an engine - through a call to TT_Init_FreeType(). This function will set up - a various number of structures needed by the library. - - This allocates about 68kByte, of which 64kByte are dedicated to - the scan-line converter's `render pool', a workspace used for - bitmap generation. Note that even though this space is bounded, - the raster is able to render a glyph to any size or bitmap, even - horribly huge ones. - - NOTE: You can reduce the size of this pool by modifying the - constant RASTER_RENDER_POOL in the file `ttraster.c'. A - smaller pool will result in slower rendering at large - sizes. Take care of never assigning a value smaller than - 4kByte however, as bugs may start to lurk in! - - Example: - - TT_Engine engine; - - - error = TT_Init_FreeType( &engine ); - if ( error ) - { - printf( "could not create engine instance\n"); - ... - } - - 2. Initialize the extensions you need - ------------------------------------- - - FreeType provides several extensions which are optional, - separately compilable components to add some rare features to - the engine and its API. - - You need to explicitly initialize the extensions you want to - use. Each extension must provide an initialization function, - following the naming convention: - - TT_Init_xxx_Extension( engine ); - - where `xxx' is the extension's `kind'. - - Example: - - error = TT_Init_Kerning_Extension( engine ); - if ( error ) - ... - - 3. Open the font file - --------------------- - - There are two ways to open a font face, depending on its file - format: - - - If it is a TrueType file (ttf), you can simply use the API - named TT_Open_Face(), which takes the file's pathname as - argument, as well as the address of the returned face handle. - - Check the returned error code to see if the file could be - opened and accessed successfully. - - TT_Face face; /* face handle */ - - - error = TT_Open_Face( engine, "/fonts/arial.ttf", &face ); - if ( error ) - { - printf( "could not open the file\n" ); - ... - } - - - If the font is embedded in a TrueType collection (ttc), you - can use the API named TT_Open_Collection(), which takes also - the font's index within the collection's directory. - - TT_Face face; /* face handle */ - - - /* Load the collection's second face (index=1) */ - error = TT_Open_Collection( engine, "/fonts/mingli.ttc", - 1, &face ); - if ( error ) - { - printf( "could not open the file\n" ); - ... - } - - - Finally, when you do not know the number of faces embedded in - a TrueType collection, the following technique can be used: - - o Call TT_Open_Face() with the collection file's pathname. - This API recognizes collections automatically and always - return a handle for its first embedded font. - - o Get the face's properties through TT_Get_Face_Properties(). - These contain, among other things, the total number of fonts - embedded in the collection, in its field `num_Faces'. - - TT_Face face; /* face handle */ - TT_Face_Properties props; /* face properties */ - - - /* open the first collection font */ - error = TT_Open_Face( engine, "/fonts/mingli.ttc", - &face ); - if ( error ) - { - printf( "could not open the file\n" ); - ... - } - - /* Get the face properties */ - TT_Get_Face_Properties( face, &props ); - - /* Now print the number of faces */ - printf( "there are %d faces in this collection file\n", - props->num_Faces ); - - 4. Create an instance from the face object - ------------------------------------------ - - You must create an instance (also known as a `pointsize') which - contains information relative to the target output device's - resolutions and a given point size. - - o The instance object is created through TT_New_Instance(): - - TT_Instance instance; - - - error = TT_New_Instance( face, &instance ); - if ( error ) - { - printf( "could not create instance\n" ); - ... - } - - TECHNICAL NOTE: Creating a new instance executes its font - program. This can fail if the font is broken. - Never assume that the error code returned here - is always 0. - - o You must set the instance's properties to suit your needs. - These are simply its device resolutions, set through - TT_Set_Instance_Resolutions(), and its point size, set through - TT_Set_Instance_CharSize(): - - /* Set the target horizontal and vertical resolution to */ - /* 300dpi in each direction (typically for a printer). */ - /* A fresh instance's default resolutions are 96dpi in */ - /* both directions. */ - error = TT_Set_Instance_Resolutions( instance, 300, 300 ); - if ( error ) - { - printf( "could not set resolution\n" ); - ... - } - - /* Now set the point size to 12pt. Default is 10pt. */ - /* Don't forget that the size is expressed in 26.6 fixed */ - /* float format, so multiply by 64. */ - error = TT_Set_Instance_CharSize( instance, 12 * 64 ); - if ( error ) - { - printf( "could not set point size\n" ); - ... - } - - TECHNICAL NOTE: These calls may execute the font's `prep' - program, which can fail if the font is broken. - Never assume that the error code returned is - are always 0. - - o You can also set the instance's transformation flags to tell - the glyph loading function that you are going to perform a - transformation (like rotation or slanting) on the glyph. Note - that the glyph loader doesn't perform the transformation. It - only informs the glyphs' hinting instruction streams about - these flags which may use it to disable or enable various - features (grid-fitting, drop-out control, etc). - - Use e.g. - - TT_Set_Instance_Transforms( FALSE, TRUE ); - - to indicate that you're going to stretch, but not rotate, this - instance's glyphs. Default is, of course, both FALSE. - - 5. Create a glyph container - --------------------------- - - You need a glyph object to serve as a container for the glyphs - you want to load from the face. This is done simply by - - TT_Glyph glyph; /* glyph object handle */ - - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - { - printf( "could not create glyph\n" ); - ... - } - - 6. Find your platform's character mappings - ------------------------------------------ - - Each font file can come with one or more character mapping - tables, used to convert character codes to glyph indices. You - must know the values of the `platformID' and `encodingID' as - defined in the TrueType specification for your platform. For - example, Windows Unicode encoding is (platform:3,encoding:1), - while Apple Unicode is (platform:0,encoding:0). Both formats - differ in internal storage layout and can be used transparently - with the same inputs with FreeType. - - The function TT_Get_CharMap_Count() returns the number of - character mappings present in a face. You can then enumerate - these with the function TT_Get_CharMap_ID(). Once you've found - a mapping usable for your platform, use TT_Get_CharMap() to - return a TT_CharMap handle that will be used later to get glyph - indices. - - 7. Load the glyph - ----------------- - - The glyph loader is easily queried through TT_Load_Glyph(). - This API function takes several arguments: - - o An instance handle to specify at which point size and - resolution the loaded glyph should be scaled and grid-fitted. - - o A glyph container, used to hold the glyph's data in memory. - Note that the instance and the glyph must relate to the _same_ - font file. An error would be produced immediately otherwise. - - o A glyph index, used to reference the glyph within the font - file. This index is not a platform specific character code, - and a character's glyph index may vary from one font to - another. To compute glyph indices from character codes, use - the TT_CharMap handle created in section 6 with - TT_Char_Index(). - - We strongly recommend using the Unicode charmap whenever - possible. - - o A load mode, indicating what kind of operations you need. - There are only two defined for the moment: - - TTLOAD_SCALE_GLYPH: - - If set, this flag indicates that the loaded glyph will be - scaled (according to the instance specified as an - argument) to fractional pixel coordinates (26.6). If not, - the coordinates will remain integer FUnits. Please refer - to the TrueType specification and the FreeType header - files for more details on the 26.6 format and other data - types. - - TTLOAD_HINT_GLYPH: - - This flag is only in effect if the TTLOAD_SCALE_GLYPH flag - is set. It indicates that the glyph must also be `hinted' - resp. `grid-fitted' for better display results. Note that - this also means that the glyph metrics will be - grid-fitted, including the bounding box. - - You can simply `or' the flags. As most applications will - require both flags to be set, the constant TTLOAD_DEFAULT is - defined as: - - #define TTLOAD_DEFAULT (TTLOAD_SCALE_GLYPH | \ - TTLOAD_HINT_GLYPH ) - - Example: - - error = TT_Load_Glyph( instance, glyph, 36, - TTLOAD_DEFAULT ); - if ( error ) - { - printf("could not load the glyph\n"); - ... - } - - 8. Query glyph properties - ------------------------- - - You're then able to query various glyph properties: - - o The glyph metrics can be obtained through - TT_Get_Glyph_Metrics(). The data returned in the metrics - structure is: - - - the glyph's left side bearing (bearingX) - - the glyph's top side bearing (bearingY) - - the glyph's advance width (advance) - - the glyph's bounding box (bbox) - - These values are expressed in 26.6 pixel units when the glyph - was loaded with scaling, or in FUnits if not. To obtain - vertical metrics you should use the function - TT_Get_Glyph_Big_Metrics(). - - o The glyph outline can be queried through - TT_Get_Glyph_Outline(). This can be useful to process the - point coordinates (e.g. applying stretching or rotation) with - functions like TT_Apply_Outline_Matrix() or - TT_Apply_Outline_Translation(). Note that these functions do - not recompute a glyph's metrics after the transformation! - - The outline's structure is described in the reference - `apiref.txt'. - - A bitmap or pixmap for the glyph can be queried with the API - functions TT_Get_Glyph_Bitmap() and TT_Get_Glyph_Pixmap(). - These functions take a glyph handle as an argument, as well as - a bitmap/pixmap description block and two offsets. - - The target map is described through a TT_Raster_Map object, - which structure is defined in the reference (see - `apiref.txt'). The offsets are given in the same units as the - points coordinates and glyph metrics: 26.6 pixel units for a - scaled glyph, and FUnits for an unscaled one. - - IMPORTANT TECHNICAL NOTE: If the glyph has been scaled and - hinted, the offsets _must_ be - multiples of 64 (i.e. integer pixel - offsets). Otherwise, you would ruin - the grid fitting (which usually - results in ugly glyphs). - - Example: - - TT_Glyph_Metrics metrics; - TT_Outline outline; - TT_Raster_Map bitmap; - - - TT_Get_Glyph_Metrics( glyph, &metrics ); - TT_Get_Glyph_Outline( glyph, &outline ); - - /* set up the bitmap */ - ... - TT_Get_Glyph_Bitmap( glyph, &bitmap, 0, 0 ); - - 9. When you are done - -------------------- - - o You can close any font face object with TT_Close_Face(). This - call will automatically discard its child instances, glyphs - and charmaps. - - o You can also close the engine with a single call to - TT_Done_FreeType(). This will release _all_ objects that were - previously allocated (with the exception of user-created - outlines), and close all font files, as well as extensions - that were inited for it. - - -III. Extensions -=============== - - 1. What is an extension? - ------------------------ - - FreeType allows you to access a various number of TrueType - tables, as well as to render individual glyphs. However: - - 1. It doesn't perform some high-level operations, like - generating a string text from many individual glyphs. - - 2. It doesn't perform kerning (which can be needed by operations - mentioned in item 1). - - 3. It doesn't give access to all the defined TrueType tables, - especially the optional ones. - - While item 1 is a feature that will never go into FreeType's - core engine, which goal is to provide easy access to font data - and rendering _individual_ glyphs, point 2 and 3 can be added to - the engine's features through extensions. - - An extension is simply a small piece of code that extends the - engine's abilities and APIs. It is possible to extend the - engine without touching the core's source code, this is - described in chapter 3 below. - - 2. The two kinds of extensions - ------------------------------ - - There are basically two kinds of extensions, which require - different implementations. - - a. API extensions - - An API extension is a set of functions that extend the - FreeType core API to give access to tables that are already - loaded by the engine, but not provided for now. An example of - such data can be: - - - the horizontal metrics table (hmtx) - - the `gasp' table - - This kind of extension is made of: - - o an API extension header file, following the usage convention - introduced here (all labels prefixed with `TT_'), and which - will be included by the clients which want to use the - extension. By convention, such header names begin with - `ftx' (for FreeType eXtension). - - Examples: ftxgasp.h, ftxhmtx.h - - o One or more functions used to give access to the tables that - are already loaded and managed by the engine. They usually - only copy pointers to the target structure given by the - client application since these structures are not accessible - through the 'normal' API. An API extension doesn't need to - be initialized before being used. - - b. Engine extensions - - It can sometimes be useful to load and manage several tables - that are not considered by the core engine. These extensions - need to provide additional functions to fit into FreeType's - internal object management model, and are more sophisticated - than API extensions. - - An example is given in this distribution to provide kerning - support (or more technically spoken, access to the kerning - tables found within the TrueType files). It is made of: - - o An API extension providing new interfaces to the client - applications that need it. See the file `ftxkern.h' - resp. `apirefx.txt'. - - o A specific implementation, providing services to create, - load, and manage kerning tables as additional parts of a - face object. In the case of kerning, the directory of - tables is loaded when the face is opened, and tables - themselves are fetched from the file on demand. This - implies several `hooks' in the core engine. See the files - `ttkern.h' and `ttkern.c'. These are called `engine - extensions'. - - o A specific extension initialization function, namely - TT_Init_Kerning_Extension(), that must be called after an - engine's creation, and before any face object allocation. - This function will `register' the extension within the - engine and make its API workable. - - 3. Writing your own extensions - ------------------------------ - - As it was suggested earlier, writing an engine extension is a - delicate process, as the additional code must follow a certain - number of design rules, presented in the FreeType developer's - guide. Unfortunately, there is currently no extension writer's - guide. - - By writing your own extensions, it will be possible to support - more advanced TrueType formats like TrueType GX or OpenType in a - near future, without having to torture the engine core source at - each iteration. - - If you encounter some difficulties when trying to create your - own extension, please read the core source file carefully, and - in the event that you may need changes that are not fitted to - the current extension mechanism, do not hesitate to contact the - authors at `devel@freetype.org'. - - -Conclusion -========== - - The engine source code has become rather stable since now, and - its quality compares very favorably to Windows and the Macintosh - rasterizers. Its internals will continue to change, though very - slowly, even if the API isn't expected to grow much in a near - future. - - FreeType is really a glyph-oriented TrueType driver. Its - purpose is to open and manage font files in order to load single - glyphs and render them as cleanly as possible. A number of - features, important to developers, like text string rendering, - font mapping and underlining/stroking, to name a few, aren't - provided there even though they'd be highly appreciated. - - We hope you have success and fun using this engine. Much time - has been taken to make it one of the best in its genre. - Remember that it is not intended to be a complete font server or - text rendering library, but a pretty solid base for these kinds - of applications, as well as others. - - We thank you for your time and consideration. - - David Turner, Robert Wilhelm, Werner Lemberg, - and all the FreeType enthusiasts... - - ---- End of user.txt --- diff --git a/Build/source/libs/freetype/freetype.ac b/Build/source/libs/freetype/freetype.ac deleted file mode 100644 index 8d4d63fd386..00000000000 --- a/Build/source/libs/freetype/freetype.ac +++ /dev/null @@ -1,61 +0,0 @@ -if test "$needs_freetype" = no; then - FREETYPECPPFLAGS= - LDFREETYPE= - FREETYPEDEP= -else - EXTRA_FREETYPE_INCLUDE= - EXTRA_FREETYPE_LIBDIR= - - if test "$with_system_freetype" = yes; then - if test "x$with_freetype_libdir" != x; then - EXTRA_FREETYPE_LIBDIR="-L$with_freetype_libdir" - fi - if test "x$with_freetype_include" != x; then - EXTRA_FREETYPE_INCLUDE="-I$with_freetype_include" - fi - fi - - # be sure we have a good value for CPP, since we're about to save it. - AC_PROG_CPP - - OLD_LDFLAGS=$LDFLAGS - OLD_CPP=$CPP - OLD_LIBS=$LIBS - - LDFLAGS="$LDFLAGS $EXTRA_FREETYPE_LIBDIR" - CPP="$CPP $EXTRA_FREETYPE_INCLUDE" - - if test "$with_system_freetype" = yes; then - AC_CHECK_LIB(ttf, TT_Init_FreeType,, - AC_MSG_WARN(Standard FREETYPE library not found. Compiling my own.) - with_system_freetype=no) - fi - - if test "$with_system_freetype" = yes; then - AC_CHECK_HEADERS(freetype.h) - if test "$ac_cv_header_freetype_h" != yes; then - AC_MSG_WARN(freetype.h not found. Using my own freetype sources.) - with_system_freetype=no - fi - fi - - LDFLAGS=$OLD_LDFLAGS - CPP=$OLD_CPP - LIBS=$OLD_LIBS - - if test "$with_system_freetype" != yes; then - FREETYPECPPFLAGS='-I$(FREETYPEDIR)/lib -I$(FREETYPESRCDIR)/lib' - LDFREETYPE='$(FREETYPEDIR)/lib/.libs/libttf.a' - FREETYPEDEP='$(FREETYPEDIR)/lib/.libs/libttf.a' - using_system_freetype=no - else - FREETYPECPPFLAGS="$EXTRA_FREETYPE_INCLUDE" - LDFREETYPE="$EXTRA_FREETYPE_LIBDIR -lttf" - FREETYPEDEP= - using_system_freetype=yes - fi -fi - -AC_SUBST(FREETYPECPPFLAGS) -AC_SUBST(LDFREETYPE) -AC_SUBST(FREETYPEDEP) diff --git a/Build/source/libs/freetype/freetype.spec b/Build/source/libs/freetype/freetype.spec deleted file mode 100644 index 9dc71c8ce07..00000000000 --- a/Build/source/libs/freetype/freetype.spec +++ /dev/null @@ -1,171 +0,0 @@ -Summary: FreeType library -Name: freetype -Version: 1.5 -Release: 1 -Source: ftp://ftp.freetype.org/freetype/freetype1-%{version}-%{release}.tar.gz -URL: http://www.freetype.org/ -Copyright: BSD-Like + GPL -Group: Libraries -BuildRoot: /var/tmp/freetype - -%description -The FreeType engine is a free and portable TrueType font rendering -engine. It has been developed to provide TrueType support to a -great variety of platforms and environments. - -Note that FreeType is a *library*. It is not a font server for your -favorite platform, even though it was designed to be used in many of -them. Note also that it is *not* a complete text-rendering library. -Its purpose is simply to open and manage font files, as well as -load, hint and render individual glyphs efficiently. You can also -see it as a `TrueType driver' for a higher-level library, though -rendering text with it is extremely easy, as demo-ed by the test -programs. - -This package contains the files needed to run programs that use the -FreeType engine. - -%package devel -Summary: FreeType development headers and libraries -Group: Development/Libraries -Requires: %{name} = %{version} - -%description devel -The FreeType engine is a free and portable TrueType font rendering -engine. It has been developed to provide TrueType support to a -great variety of platforms and environments. - -Note that FreeType is a *library*. It is not a font server for your -favorite platform, even though it was designed to be used in many of -them. Note also that it is *not* a complete text-rendering library. -Its purpose is simply to open and manage font files, as well as -load, hint and render individual glyphs efficiently. You can also -see it as a `TrueType driver' for a higher-level library, though -rendering text with it is extremely easy, as demo-ed by the test -programs. - -This package contains all supplementary files you need to develop -your own programs using the FreeType engine. - -%package demo -Summary: FreeType test and demo programs -Group: Applications/Graphics -Requires: %{name} = %{version} - -%description demo -The FreeType engine is a free and portable TrueType font rendering engine. -It has been developed to provide TT support to a great variety of platforms -and environments. - -Note that FreeType is a *library*. It is not a font server for your favorite -platform, even though it was designed to be used in many of them. Note also -that it is *not* a complete text-rendering library. Its purpose is simply to -open and manage font files, as well as load, hint and render individual -glyphs efficiently. You can also see it as a "TrueType driver" for a -higher-level library, though rendering text with it is extremely easy, as -demo-ed by the test programs. - -This package contains several programs bundled with the FreeType engine for -testing and demonstration purposes. - -%changelog -* Tue Jan 08 2002 Werner Lemberg -- Updated to version 1.5. - -* Mon Oct 29 2001 Antoine Leca -- Updated to version 1.4.9 (pre 1.5); NOTE: 1.4 was never released officially. - -* Wed Feb 23 2000 Werner Lemberg -- Updated to version 1.4. - -* Thu Sep 9 1999 Pavel Kankovsky -- Simplified (and fixed) file list. - -* Wed Jun 16 1999 Werner Lemberg -- Updated to version 1.3. - -* Sun Oct 25 1998 Pavel Kankovsky -- libttf.so version number updated again. -- Default localedir based on prefix. -- File list adjustments (howto/). - -* Sun Oct 16 1998 Pavel Kankovsky -- Source filename fixed. -- HOWTO removed. -- libttf.so version number updated. - -* Tue Sep 29 1998 Robert Wilhelm -- Updated to version 1.2. - -* Tue Jul 14 1998 Alexander Zimmermann -- Added missing files. -- Added %defattr tags. - -* Thu Jun 18 1998 Robert Wilhelm -- Added lots of attr(-,root,root). - -* Wed May 27 1998 Pavel Kankovsky -- Changed group attr of freetype and freetype-devel package. -- Fixed misc glitches. - -* Sun May 24 1998 Pavel Kankovsky -- Split the package into three parts (runtime library, development - tools, and demo programs). -- Added missing files (headers, NLS). -- Added ldconfing upon (de)installation. - -* Thu Mar 12 1998 Bruno Lopes F. Cabral -- NLS for Portuguese language is missing, sorry (may be in a near future) - (please note the workaround using --with-locale-dir and gnulocaledir. - NLS Makefile needs a bit more rework but again I'll not patch it here). - -%prep -%setup - -find . -name CVS -type d | xargs rm -rf - -%build -./configure --prefix=/usr --enable-static -make all - -%install -make install prefix=$RPM_BUILD_ROOT/usr - -%clean -rm -rf $RPM_BUILD_ROOT - -%post -/sbin/ldconfig - -%postun -/sbin/ldconfig - -%files -%defattr(644, root, root, 755) -%doc announce license.txt docs/FTL.txt docs/GPL.txt -/usr/lib/libttf.so.* -/usr/share/locale/ - -%files devel -%defattr(644, root, root, 755) -%doc INSTALL README PATENTS announce license.txt readme.1st -%doc docs/ howto/ -/usr/lib/libttf.so -/usr/lib/libttf.la -/usr/lib/libttf.a -/usr/include/freetype/ - -%files demo -%defattr(755, root, root, 755) -%doc announce license.txt -/usr/bin/ftdump -/usr/bin/fterror -/usr/bin/ftlint -/usr/bin/ftmetric -/usr/bin/ftsbit -/usr/bin/ftstring -/usr/bin/ftstrpnm -/usr/bin/ftstrtto -/usr/bin/fttimer -/usr/bin/ftview -/usr/bin/ftzoom diff --git a/Build/source/libs/freetype/ft_conf.h.in b/Build/source/libs/freetype/ft_conf.h.in deleted file mode 100644 index da296c4a6e0..00000000000 --- a/Build/source/libs/freetype/ft_conf.h.in +++ /dev/null @@ -1,220 +0,0 @@ -/******************************************************************* - * - * ft_conf.h.in - * - * Template ft_conf.h for Unix systems - * - * - * Copyright 1996-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. - * - ******************************************************************/ - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -#undef const - -/* Define if you have a working `mmap' system call. */ -#undef HAVE_MMAP - -/* Define if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define if the X Window System is missing or not being used. */ -#undef X_DISPLAY_MISSING - -/* The number of bytes in a int. */ -#undef SIZEOF_INT - -/* The number of bytes in a long. */ -#undef SIZEOF_LONG - -/* Define if you have the getpagesize function. */ -#undef HAVE_GETPAGESIZE - -/* Define if you have the memcpy function. */ -#undef HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#undef HAVE_MEMMOVE - -/* Define if you have the header file. */ -#undef HAVE_FCNTL_H - -/* Define if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the header file. */ -#undef HAVE_LOCALE_H - -/* Define if you have the header file. */ -#undef HAVE_LIBINTL_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -#undef HAVE_TT_TEXT - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ -/* */ -#undef TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ -/* */ -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ diff --git a/Build/source/libs/freetype/howto/mac.txt b/Build/source/libs/freetype/howto/mac.txt deleted file mode 100644 index 6ed97d9f7a3..00000000000 --- a/Build/source/libs/freetype/howto/mac.txt +++ /dev/null @@ -1,19 +0,0 @@ - The FreeType Mac Compilation HowTo - - - Please note that the FreeType team does *not* support the - Macintosh platform due to lack of knowledge. - - However, we provide the basic files to compile the library in - the lib/arch/mac directory (OK, `folders'). Also the project - files for PowerPC with CodeWarrior have been contributed (in - contrib/mac). - - A noteworthy point is that the precompiled standard MacOS - headers should be turned off to compile the library, to avoid - errors caused by conflicting definitions of `Fixed' and `Byte'. - - -Good luck! - ---- end of mac.txt --- diff --git a/Build/source/libs/freetype/howto/msdos.txt b/Build/source/libs/freetype/howto/msdos.txt deleted file mode 100644 index 01a01f93982..00000000000 --- a/Build/source/libs/freetype/howto/msdos.txt +++ /dev/null @@ -1,272 +0,0 @@ - The FreeType MS-DOS Compilation HowTo - -Contents - -Introduction -I. Building the library - 1. Quick Compilation - 2. Manual compilation - 3. Notes -II. Building other parts of the package - 1. Test programs - 2. Other contribs -III. Compiler Issues - 1. Special issues of 16-bit MS-DOS - 2. Borland Turbo C v.2.0x - - - -Introduction -============ - -This file describes the compilation of the FreeType package on a -MS-DOS system. It comes with Makefiles for the following compilers: - - - gcc/emx and gcc/djgpp with GNU make (32 bit) - - - wcc386 with wmake (Watcom -- tried with 10.6) - - - gcc/emx with dmake (32 bit) - - - cl with nmake (16-bit Microsoft C -- tried with 7 and VC++ 1.5x) - - - bcc/tcc with Borland make (16-bit Borland C++ and Turbo C) - -NOTE: - - You are advised to jump to section II.1 if you want to run the - FreeType test/demo programs as quick as possible. - - - -I. Building the library -======================= - - -1. Quick Compilation --------------------- - - The easiest way to compile the library on MS-DOS is to go to the - directory `freetype/lib'. Then type, depending on your compiler: - - gcc/emx, - gcc/djgpp: make -f arch/msdos/Makefile.gcc - gcc/dmake: dmake -r -f arch/msdos/Makefile.dm - - wcc386: wmake -f=arch\msdos\Makefile.wat - - cl: nmake /f arch\msdos\Makefile.MS (for versions 6-7) - cl: nmake /f arch\msdos\Makefile.VC (for Visual C++ 1.x) - - tcc: make -farch/msdos/Makefile.TC - bcc: make -farch/msdos/Makefile.BC - - This should build the `libttf.a' or `libttf.lib' library files. - - You can also use the following targets: - - depend - (for gcc with emx or DJGPP only) Creates a file that - lists the dependancies. Useful for the developper. - - clean - Cleans all intermediate object files created during - compilation. Keeps all library and executables in - place. - - distclean - Cleans everything, leaving the directories as they - were before the compilation. - - debug - Makes a development version of the library. Only - useful for FreeType developers and hackers. - - Note that you can also select to use the `debugging' flags for - your compiler (instead of the `optimizing' ones), by defining - the `DEBUG' symbol, like in - - nmake /f arch\msdos\Makefile.MS DEBUG=1 - make -farch/msdos/Makefile.BC /DDEBUG - etc. - - Doing so will automatically select the debug target instead of - the normal mode. - - For 16-bit compilers, you can also try defining the `BIGFONTS' - symbol, to enable the use of the `huge pointers' needed to - handle some big fonts. More on this at the end of this file. - - -2. Manual compilation ---------------------- - - Here are explained the steps that are required to compile the - FreeType _library_ (and only this one) by hand. - - Unlike previous versions, FreeType 1.1 and above can be compiled - in two modes, called `debug mode' and `single object mode'. - - Debug mode is simply the normal way of compiling C programs, i.e., - each `*.c' file is compiled into an individual `*.obj' object - file, and all of them are linked together into an archive (i.e., - `*.lib' library). - - Single object mode is slightly different: All C files are included - in a single source during compilation, resulting in a single final - object file for the core library. This has the advantage of - letting optimizing compilers do more global work, as well as - getting rid of all external which are used solely for the purpose - of components interfacing. - - In both modes, you need to include the following paths to your - makefile/command line: - - the location of all `tt*.[hc]' files - the location of system-specific files - - For example, if you are compiling from the `freetype/lib' - directory, you can type for debug mode something like - - gcc -c -I. -Iarch/msdos tt*.c - - to compile all required files into object ones. Then assemble - them in a library with `ar', `lib', or `tlib'. - - In single object mode, you only need to compile the file named - `freetype.c' which is located in `freetype/lib/arch/msdos'. From - the same directory as before, one would type - - cl -c -I. -Iarch/msdos arch/msdos/freetype.c - - You can also compile the extensions located in - `freetype/lib/extend' separately from the base engine. You will - need to include the same paths as before, though; be sure to add - the path to the `extend' directory, like in - - bcc -c -I. -Iarch/msdos -Iextend extend/*.c - - -3. Notes --------- - - `char' is always `signed char' in the sources! - - `ttconfig.h' relies heavily on a file called `ft_conf.h' that - contains information related to the target platform, located in - the `freetype/lib/arch/msdos/' directory. Depending on your - compiler, you may need to slightly edit it. - - We use gcc as our reference compiler for warnings. This means - that we use the `-ansi -pedantic -Wall' flags and try to get rid - of warnings in this situation. If you're compiling with another - compiler, you may encounter warnings, not errors. Note that the - Borland compilers seem to produce lots of irrelevant warnings - (like `potential loss of precision'). - - - -II. Building other parts of the package -======================================= - - -1. Test programs ----------------- - - These are located in `freetype/test'. Most of them use a tiny - graphics sub-system which is simply used to display bitmaps and - pixmaps on a variety of platforms. The MS-DOS version is a very - basic one that only works in full-screen using standard VGA mode. - - To compile them, you must be in the `freetype/test' directory and - invoke the makefile in arch/msdos. For example: - - nmake /f arch\msdos\Makefile.VC - - - NOTE 1: - - This will automatically invoke the library makefile for you! - - NOTE 2: - - For now, the graphical test programs only run on the following - platforms: Unix, OS/2, Dos, Amiga, and Windows. - - The library, being pure ANSI-C, can be used on any system to - generate bitmaps and pixmaps. - - -2. Other contribs ------------------ - - You may find some other contributions to the FreeType project in - the `freetype/contrib' directory. Each of these programs should - have its own Makefiles and documentations. Also check their - licenses, as the programs are not necessarily distributed under - the FreeType one. - - Most of these contributions are targeted to Unix. You are invited - to port them to MS-DOS, and then contribute your improvements. - - - -III. Compiler Issues -==================== - - Many comments specific to a given compiler are now stored in its - relevant Makefile's, in the arch/msdos subdirectories. - - -1. Special issues of 16-bit MS-DOS ----------------------------------- - - As usual, 16-bit MS-DOS have some limitations. - - First, and mainly, only the large model is usable. The small and - medium models are not usable, because the library uses more than - 64kByte of data; and the compact model is unusable as well, since - the code of the library itself is slightly less than 64kByte, thus - leaving very small place for the real work. The net effect of - that limitation is that performances are not very impressive, to - say the least (32-bit DOS extenders perform usually three-time - faster). - - Even with the large model, the rasterizer is still limited in - size, particularly with pixmaps (that is, with anti-aliasing gray - levels). - - Another annoying limitation exists with some East Asian fonts that - have 16,383 glyphs or more, since an internal table then - overflows. We tried to overcome this using the so-called `huge - pointers', but then good support for these in the run-time library - is needed. To enable this support, try defining the `BIGFONTS' - symbol with the makefile, like using - - nmake /f arch\msdos\makefile.MS BIGFONTS=1 - make -farch/msdos/makefile.BC /DBIGFONTS - etc. - - The Makefiles for both Microsoft and Borland compilers depend on a - special file, `arch/msdos/depend.dos', which is built by a Unix - script named `makedep'. You may consider editing it if you - heavily modify the source files; or better yet, re-run the script, - using any clone of the Bourne shell and gcc, the GNU compiler, - with - - arch/msdos/makedep - - in both the `lib' and the `test' directories. - - -2. Turbo C v. 2.0x ------------------- - - Unlike the precedent version 1.5 (!), Turbo C v.2.0 is not able to - compile C sources if they use the Unix convention for end-of- - line. So make sure either you use the .zip archive (where files - are stored with CR-LF), or if you use the .tar.gz version, the - program that does the transformation (WinZip can do it if - instructed, look after "CR/LF conversion for TAR"). - - -Good luck! - - ---- end of msdos.txt --- diff --git a/Build/source/libs/freetype/howto/os2.txt b/Build/source/libs/freetype/howto/os2.txt deleted file mode 100644 index 2ce5bab50b7..00000000000 --- a/Build/source/libs/freetype/howto/os2.txt +++ /dev/null @@ -1,200 +0,0 @@ - The FreeType OS/2 Compilation HowTo - -Contents - -Introduction -I. Building the library - 1. Quick Compilation - 2. Manual compilation - 3. Notes -II. Building other parts of the package - 1. Test programs - 2. Other contribs -III. Troubleshooting - - - -Introduction -============ - -This file describes the compilation of the FreeType package on an -OS/2 system. It comes with makefiles for the following compilers: - - - gcc/emx with GNU make - - - icc with nmake (Visual Age C++) - - - wcc386 with wmake (Watcom -- tried with 10.6) - - - gcc/emx with dmake - - -NOTE: - - You're advised to jump to section II.1 if you want to run the - FreeType test/demo programs as quick as possible. - - - -I. Building the library -======================= - - -1. Quick Compilation --------------------- - - The easiest way to compile the library on OS/2 is to go to the - directory `freetype/lib'. Then type, depending on your compiler, - - gcc/emx: make -f arch/os2/makefile.emx - gcc/dmake: dmake -f arch/os2/makefile.dm - - icc: nmake -f arch\os2\makefile.icc - wcc386: wmake -f=arch\os2\makefile.wat - - This should build the `libttf.a' or `libttf.lib' library files. - - You can also use the following targets: - - debug - Makes a development version of the library. Only - useful for FreeType developers and hackers. - - clean - Cleans all intermediate object files created during - compilation. Keeps all library and executables in - place. - - distclean - Cleans everything, leaving the directories as they - were before the compilation. - - -2. Manual compilation ---------------------- - - Here are explained the steps that are required to compile the - FreeType _library_ (and only this one) by hand. - - Unlike previous versions, FreeType 1.1 and above can be compiled - in two modes, called `debug mode' and `single object mode'. - - Debug mode is simply the normal way of compiling C programs, i.e., - each `*.c' file is compiled into an individual `*.obj' object - file, and all of them are linked together into an archive (i.e., - `*.lib' library). - - Single object mode is slightly different: all C files are included - in a single source during compilation, resulting in a single final - object file for the core library. This has the advantage of - letting optimizing compilers do more global work, as well as - getting rid of all external symbols which are used solely for the - purpose of components interfacing. - - In both modes, you need to include the following paths to your - makefile/command line: - - the location of all `tt*.[hc]' files - the location of system-specific files - - For example, if you are compiling from the `freetype/lib' - directory, you can type for debug mode something like - - gcc -c -I. -Iarch/os2 tt*.c arch/os2/os2file.c - - to compile all required files into object ones. Then assemble - them in a library with `ar' or `implib'. - - In single object mode, you only need to compile the file named - `freetype.c' which is located in `freetype/lib/arch/os2'. From - the same directory as before, one would type: - - gcc -c -I. -Iarch/os2 arch/os2/freetype.c - - You can also compile the extensions located in - `freetype/lib/extend' separately from the base engine. You will - need to include the same paths as before, though; be sure to add - the path to the `extend' directory, like in - - gcc -c -I. -Iarch/os2 -Iextend extend/*.c - - - -II. Building other parts of the package -======================================= - - -1. Test programs ----------------- - - The test programs are located in `freetype/test'. Most of them - use a tiny graphics sub-system which is simply used to display - bitmaps and pixmaps in a windows on a variety of platforms. The - OS/2 version comes in two flavors: PM and full-screen. - - To compile them, you must be in the `freetype/test' directory, and - invoke the makefile in arch/os2. For example: - - nmake -f arch\os2\makefile.os2 - - - NOTE 1: - - This will automatically invoke the library makefile for you! - - NOTE 2: - - The test programs come in two flavors, distinguished by the `fs' - suffix appended to their name. For example: - - ftview (PM version) - ftviewfs (Full Screen version) - - The full-screen version is there mainly for debugging purposes. - - NOTE 3: - - For now, the graphical test programs only run on the following - platforms: Unix, OS/2, Dos, Amiga, and Windows. - - The library, being pure ANSI-C, can be used on any system to - generate bitmaps and pixmaps. - - -2. Other contributions ----------------------- - - You may find some other contributions to the FreeType project in - the `freetype/contrib' directory. Each of these programs should - have its own Makefiles and documentations. Also check their - licenses, as the programs not necessarily distributed under the - FreeType one. You are invited to port the non-OS/2 applications - to OS/2. - - For OS/2, you will find the source code for the FreeType/2 font - driver in `freetype/contrib/os2'. Read its documentation - carefully before trying to compile it, as it certainly won't be - easy. - - - -III. Troubleshooting -==================== - - There is only one important point on OS/2: - - `The test program crashes with anti-aliasing on!' - - It has been discovered that some versions of Visual Age C++ - contain a bug which miscompiles the anti-aliasing source in - ttraster.c, hence resulting in a page fault when trying to render - a pixmap in the engine. Apparently, not all levels/versions of - the compiler contain the bug. You'll notice the problem - immediately (page fault :-). - - Please apply the most recent fixpack to your Visual Age C++ copy - in order to get rid of it (newer fixpacks seem to solve the - issue). - - -Good luck! - - ---- end of os2.txt --- diff --git a/Build/source/libs/freetype/howto/unix.txt b/Build/source/libs/freetype/howto/unix.txt deleted file mode 100644 index ba97452dc77..00000000000 --- a/Build/source/libs/freetype/howto/unix.txt +++ /dev/null @@ -1,258 +0,0 @@ - The FreeType Unix Compilation HOWTO - -Contents - -Introduction -I. Building the library - 1. Quick Compilation - 2. Manual compilation - 3. Notes -II. Building other parts of the package - 1. Test programs - 2. Other contribs -III. Successful Build Reports - - - -Introduction -============ - -This file describes the compilation of the FreeType package on a -Unix system. Using the `configure' script it should be rather easy -to build the library. However, detailed instructions on how to -compile the library manually are given later in this document. - - - -I. Building the library -======================= - - -1. Quick Compilation --------------------- - - The easiest way to compile the library on a Unix system is by - using the `configure' script that comes with it. Simply go to the - root directory of the FreeType package, then type - - ./configure - - to run a script that will probe your system and detect various - configuration issues, which are explained later in this document. - - From there, you can simply type - - make - - to invoke compilation of the whole package. You can also use the - following commands: - - make debug - Make a development version of the library. - Only useful for FreeType developers and - hackers. The default build should come with - `-g' (i.e., debug info in the object file) - already. - - make clean - Clean all intermediate object files created - during compilation. Keeps all library and - executables in place. - - make distclean - Clean everything, leaving the directories as - they were before the compilation. You'll need - to run `./configure' again to be able to - re-build it. - - make install - Install the library files libttf.a, libttf.la - or libttf.so to your system library path - (`/usr/local/lib' by default). The path can be - set manually with ./configure. - - make uninstall - Undo a `make install'. - - Note that the Makefile uses nested variables which causes problems - with BSD make. Use GNU make instead. - - -2. Trouble-shooting and simple customization --------------------------------------------- - - The make build seems to fail on some Solaris systems. This is - mainly due to the fact that the test programs (not the font - library itself) try to use certain libraries and/or utilities if - they find them on your system. In some cases, the Sun versions - are incompatible to the GNU ones. If you encounter such problems, - please report them to us so we can try to fix it. - - The configure script and makefiles that it generates can/make use - of the following things: - - - gettext - In order to compile the internationalized error - message string extension, which isn't part of the - core library. You can disable this and get a - clean compile with - - ./configure --disable-nls - - - - libtool - Used to generate shared libraries. You can - disable it by typing - - ./configure --disable-shared - - which will generate and link the FreeType engine - as a static library. - - By default, static compilation is disabled if the - configure script detects that your compiler - and/or operating system supports shared - libraries. You can ask for static libraries with - - ./configure --enable-static - - For more configuration options, type `./configure --help' to see a - summary of what is possible. The option to change the library - installation path for `make install' is, as usual, - `--prefix='. Example: - - ./configure --prefix=${HOME}/local/lib --disable-shared - - to install a static library (libttf.a) in `~/local/lib' (after a - `make install') - - -3. Manual compilation ---------------------- - - Here are explained the steps that are required to compile the - FreeType _library_ (and only this one) by hand. - - a. Generate a configuration file named `ft_conf.h' - - This file contains a certain number of configuration macro - declarations which must fit your system. The configure script - generates it automatically for you, but you can also take the - template file `freetype/ft_conf.h.in' and change it by hand, - then save it as `freetype/ft_conf.h'. - - b. Choose your compilation mode - - Unlike previous versions, FreeType 1.1 and above can be compiled - in two modes, called `debug mode' and `single object mode'. - - Debug mode is simply the normal way of compiling C programs, - i.e., each *.c file is compiled into an individual *.o object - file, and all of them are linked together into an archive (i.e., - a *.a library). - - Single object mode is slightly different: All C files are - included in a single source file during compilation, resulting - in a single final object file for the core library. This has - the advantage of letting optimizing compilers do more global - work, as well as getting rid of all external symbols which are - used solely for the purpose of components interfacing. - - In both modes, you need to include the following paths to your - makefile/command line: - - . the location of the `ft_conf.h' file - . the location of all `tt*.[hc]' files - . the location of system-specific files, i.e., `ttmmap.c' on - Unix. - - For example, if you are compiling from the `freetype/lib' - directory, you can type for debug mode something like - - gcc -c -I.. -I. -Iarch/unix tt*.c arch/unix/ttmmap.c - - to compile all required files. Then assemble them in a library - with `ar' (and run `runlib' if necessary). - - In single object mode, you only need to compile the file named - `freetype.c' which is located in `freetype/lib/arch/unix'. From - the same directory as before, one would type: - - gcc -c -I.. -I. -Iarch/unix arch/unix/freetype.c - - You can also compile the extensions located in - `freetype/lib/extend' separately from the base engine. You'll - need to include the same paths as before, though. - - - -II. Building other parts of the package -======================================= - - -1. Test programs ----------------- - - All test programs are located in `freetype/test'. Most of them - use a tiny graphics sub-system which simply display bitmaps and - pixmaps in a windows on a variety of platforms. Of course, the - Unix version uses X11. - - The default `make' builds all tests programs automatically. Just - go the `freetype/test' and launch the programs when you are there. - Documentation on the test programs can be found in the file - `freetype/README'. - - NOTE: - - For now, the graphical test programs only run on the following - platforms: Unix, OS/2, Dos, Amiga, and Windows. - - The library, being pure ANSI-C, can be used on any system to - generate bitmaps and pixmaps. - - -2. Other contributions ----------------------- - - You may find some other contributions to the FreeType project in - the `freetype/contrib' directory. Each of these programs should - have their own makefiles and documentations. Also check their - licenses, as they are not necessarily distributed under the - FreeType one. - - - -III. Successful Build Reports -============================= - -Nelson H. F. Beebe and others report the -following successfully builds (with gcc 2.8.1) of freetype-1.1 on - - DEC Alpha 2100-5/250: OSF/1 3.2 - HP 9000/735: HP-UX 10.01 - Intel Pentium (200MHz MMX): Linux 2.0.30 - SGI Challenge L: IRIX 5.3 - Sun SPARC 20/512: Solaris 2.6 - Sun SPARC Ultra-2: SunOS 5.5.1 - IBM RS/6000: AIX 4.1 - -Chances are good the the current release will build on the same -machines and platforms. - -There are build problems reported on SunOs 4.x which have the form - - ld: /usr/tmp/cca07291.o: assert pure-text failed: - reference to [offset] at f754 in /usr/tmp/cca07291.o - -This may be a compiler bug in gcc 2.8.1. - -You can work around by just building a static library with - - ./configure --disable-shared --enable-static --disable-nls - -Maybe `make debug' will help here too (untested). - -Other successful builds: - - Sun SPARC Solaris 2.5 with Sun C compiler+linker - -For updated build reports, please consult our web site: - - http://www.freetype.org - - ---- end of unix.txt --- diff --git a/Build/source/libs/freetype/howto/windows.txt b/Build/source/libs/freetype/howto/windows.txt deleted file mode 100644 index f777f816431..00000000000 --- a/Build/source/libs/freetype/howto/windows.txt +++ /dev/null @@ -1,349 +0,0 @@ - The FreeType Windows Compilation HowTo - -Contents - -Introduction -I. Building the library - 1. Quick Compilation - 2. Manual compilation - 3. Building a DLL - 4. Notes -II. Building other parts of the package - 1. Test programs - 2. Other contributions -III. Special issues of 16-bit Windows - - - -Introduction -============ - -This file describes the compilation of the FreeType package on a -Windows system. It comes with Makefiles for the following -compilers: - - - gcc/CygWin32 and gcc/MinGW32 with GNU make (32 bit) - - - cl with nmake (16-bit and 32-bit Microsoft C and Visual C++) - - - bcc with make (16-bit and 32-bit Borland C++ and also Borland - C++ builder) - -Throughout this file, we use `winXX' if it applies indifferently to -both 16-bit and 32-bit versions. You should replace it with win16 -resp. win32, as applicable. - -NOTE: - - You are advised to jump to section II.1 if you want to run the - FreeType test/demo programs as quick as possible. - - - -I. Building the library -======================= - - -1. Quick Compilation --------------------- - - The easiest way to compile the library on Windows is to go to the - directory `freetype/lib'. Then type, depending on your compiler: - - gcc: make -f arch/win32/Makefile.gcc - - cl: nmake /f arch\win16\Makefile.MS (for C/C++ 7) - cl: nmake /f arch\win16\Makefile.VC (for VC++ 16bit) - cl: nmake /f arch\win32\Makefile.CL (for VC++ 32bit) - - bcc: make -farch/win16/Makefile.BC - bcc32: make -farch/win32/Makefile.BC - - This should build the `libttf.a' or `libttf.lib' library files. - Of course, this assumes that your compiler is regularly installed. - - You can also use the following targets: - - depend - (for gcc only) Creates a file that lists the - dependancies. Useful for the developper. - - clean - Cleans all intermediate object files created during - compilation. Keeps all library and executables in - place. - - distclean - Cleans everything, leaving the directories as they - were before the compilation. - - debug - Makes a development version of the library. Only - useful for FreeType developers and hackers. - - Note that you can also select to use the `debugging' flags for - your compiler (instead of the `optimizing' ones), by defining - the `DEBUG' symbol, like in - - nmake /f arch\win32\Makefile.CL DEBUG=1 - make -farch/winXX/Makefile.BC /DDEBUG - etc. - - Doing so will automatically select the debug target instead of - the normal mode. - - For 16-bit compilers, you can also try to define the `BIGFONTS' - symbol, enabling the use of the `huge pointers' needed to handle - some big fonts. More on this at the end of this file. - - Another way to compile the library is to use the IDE provided with - the following compilers: Borland C++ 4.x/5.0, Visual C++ 4.0, and - Visual Studio. The project/workspace files can be found in the - `freetype/lib/arch/win32' directory: - - freetype.ide for Borland C++ 4.0, 4.5, and 5.0 - - freetype.dsp project and workspace files for - freetype.dsw Visual Studio - ft_dll.dsp (a.k.a. Visual C++ 5, 6, and 7) - - freetype.mdp project and makefile files for - freetype.mak Visual C++ 4.0 - - They generate a static library, which contain the core engine as a - single object file, as well as all standard extensions. - - Notes: - - - You may need to update the include paths in the Borland C++ - workspace settings. The current one looks in the directory - "C:\Program Files\Borland\BC 5.0\Include" for include files. - - - Take care that some compilers may overwrite these files when - generating the library (e.g. Borland C++ creates its own - `freetype.dsw' file, which isn't a Visual C++ project during - compilation). - - This is only important if you try to compile the lib with - several compilers. - - We gladly accept project files for other compilers. - - -2. Manual compilation ---------------------- - - Here are explained the steps that are required to compile the - FreeType _library_ (and only this one) by hand. - - Unlike previous versions, FreeType 1.1 and above can be compiled - in two modes, called `debug mode' and `single object mode'. - - Debug mode is simply the normal way of compiling C programs, i.e., - each `*.c' file is compiled into an individual `*.obj' object - file, and all of them are linked together into an archive (i.e., - `*.lib' library). - - Single object mode is slightly different: All C files are included - in a single source during compilation, resulting in a single final - object file for the core library. This has the advantage of - letting optimizing compilers do more global work, as well as - getting rid of all external which are used solely for the purpose - of components interfacing. - - In both modes, you need to include the following paths to your - makefile/command line: - - the location of all `tt*.[hc]' files - the location of system-specific files - - For example, if you are compiling from the `freetype/lib' - directory, you can type for debug mode something like - - gcc -c -I. -Iarch/win32 tt*.c - - to compile all required files into object ones. Then assemble - them in a library with `ar', `lib', or `tlib'. - - In single object mode, you only need to compile the file named - `freetype.c' which is located in `freetype/lib/arch/winXX'. From - the same directory as before, one would type - - gcc -c -I. -Iarch/win32 arch/win32/freetype.c - - You can also compile the extensions located in - `freetype/lib/extend' separately from the base engine. You will - need to include the same paths as before, though; be sure to add - the path to the `extend' directory, like in - - gcc -c -I. -Iarch/win32 -Iextend extend/*.c - - -3. Building a DLL ------------------ - - The easiest way to build the library as a DLL is also to use the - Makefiles we provide! Go to the directory `freetype/lib', then - type, depending on your compiler: - - gcc: (not yet supported) - - cl: nmake /f arch\win16\Makefile.VC DLL=1 dll (16bit) - cl: nmake /f arch\win32\Makefile.CL DLL=1 dll (32bit) - - bcc: make -farch/win16/Makefile.BC -DDLL dll - bcc32: make -farch/win32/Makefile.BC -DDLL dll - - This should build `ft15_XX.dll' (`15' for versions 1.5.*, `XX' is - either 16 or 32), and the `libttf.lib' library file. - - You can also use the following target: - - install - Install the DLL `ft15_XX.dll' to your system directory - (`C:\WINDOWS' by default). You can override the - directory by specifying the name of the directory: - - make -farch/winXX/Makefile.BC /DINSTALL_DIR=C:\TESTDLL install - nmake /f arch\win32\Makefile.CL INSTALL_DIR=D:\WINNT install - - Note that you can also select to use the `debugging' flags for - your compiler (instead of the `optimizing' ones), by defining - the `DEBUG' symbol, like in - - nmake /f arch\win16\Makefile.VC DEBUG=1 DLL=1 dll - make -farch/winXX/Makefile.BC /DDEBUG /DDLL dll - etc. - - Another way to build to DLL with Visual C++ is to use a special - Makefile that does exactly that, without relying on any settings. - - With VC++ 6.0, just type while in the `freetype/lib/arch/win32' - directory: - - nmake /f makefile.vc - - on the command line. - - For other versions, modify the $(TOOLS32) variable to point to the - directory where the build tools are. No need to set any - environment variables. - - -4. Notes --------- - - `char' is always `signed char' in the sources! - - `ttconfig.h' relies heavily on a file called `ft_conf.h' that - contains information related to the target platform, located in - the `freetype/lib/arch/winXX/' directory. Depending on your - compiler, you may need to slightly edit it. - - We use gcc as our reference compiler for warnings. This means - that we use the `-ansi -pedantic -Wall' flags and try to get rid - of warnings in this situation. If you are compiling with another - compiler, you may encounter warnings, not errors. Note that the - Borland compilers seem to produce lots of irrelevant warnings - (like `potential loss of precision'). - - - -II. Building other parts of the package -======================================= - - -1. Test programs ----------------- - - All test programs are located in `freetype/test'. Most of them - use a tiny graphics sub-system which is simply used to display - bitmaps and pixmaps on a variety of platforms. The Windows - version is a very basic one that only displays a small graphic - windows in addition to the console where the flow of messages - still goes. - - To compile them, you must be in the `freetype/test' directory and - invoke the makefile in arch/winXX. For example: - - nmake -f arch\os2\Makefile.VC - - NOTE 1: - - This will automatically invoke the library makefile for you! - - NOTE 2: - - For now, the graphical test programs only run on the following - platforms: Unix, OS/2, Dos, Amiga, and Windows. - - The library, being pure ANSI-C, can be used on any system to - generate bitmaps and pixmaps. - - -2. Other contributions ----------------------- - - You may find some other contributions to the FreeType project in - the `freetype/contrib' directory. Each of these programs should - have its own Makefiles and documentations. Also check their - licenses, as the programs are not necessarily distributed under - the FreeType one. - - Most of these contributions are targeted to Unix. You are invited - to port them to Windows, and then contribute your improvements. - - - -III. Special issues of 16-bit Windows -===================================== - - As usual, 16-bit Windows have some limitations. - - First, and mainly, only the large model is usable. The small and - medium models are not usable, because the library uses more than - 64kByte of data; and the compact model is unusable as well, since - the code of the library itself is slightly less than 64kByte, thus - leaving very small place for the real work. The net effect of - that limitation is that performances are not very impressive, to - say the least (32-bit DOS extenders perform usually three-time - faster). - - Even with the large model, the rasterizer is still limited in - size, particularly with pixmaps (that is, with anti-aliasing gray - levels). - - The test programs rely on a tiny graphical driver that mimics the - ones available on other platforms. It has some peculiarities. - First, as the test programs need a `console', the programs should - linked with some emulation of that concept. We used successfully - Borland EasyWin and Microsoft QuickWin for this purpose. Then, - the graphics window that displays the bitmaps incur the usual - 64kByte limit: The size of the window is quite tiny, particularly - when displaying `gray-level' bitmaps (the size is then 320x200, - but contrary to full-screen MS-DOS the pixels are not magnified). - Ultimately, no efforts have been done to accomodate the colors of - the screen: As a result, displaying gray bitmaps in 256-color mode - uses only 4 levels of gray (instead of 5 rendered by the library). - - Another annoying limitation exists with some East Asian fonts that - have 16,383 glyphs or more, since an internal table then - overflows. We tried to overcome this using so-called `huge - pointers', but then good support for these in the run-time library - is needed. To enable huge pointers, try defining the `BIGFONTS' - symbol with the makefile, like - - nmake /f arch\win16\makefile.VC BIGFONTS=1 - make -farch/win16/makefile.BC /DBIGFONTS - etc. - - The makefiles for both Microsoft and Borland compilers depend on a - special file, arch/winXX/depend.win, which is built by a Unix - script named `makedep'. You may consider editing it if you - heavily modify the source files; or better yet, re-run the script, - using any clone of the Bourne shell, sed, and gcc, the GNU - compiler, with - - arch/winXX/makedep - - in both the `lib' and the `test' directories. - - -Good luck! - ---- end of windows.txt --- diff --git a/Build/source/libs/freetype/install-sh b/Build/source/libs/freetype/install-sh deleted file mode 100755 index a5897de6ea7..00000000000 --- a/Build/source/libs/freetype/install-sh +++ /dev/null @@ -1,519 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2006-12-25.00 - -# 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. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -no_target_directory= - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) dst_arg=$2 - shift;; - - -T) no_target_directory=true;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - done -fi - -if test $# -eq 0; 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 - -if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $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 "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dst_arg - # 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 - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - -*) prefix='./';; - *) prefix='';; - esac - - eval "$initialize_posix_glob" - - oIFS=$IFS - IFS=/ - $posix_glob set -f - set fnord $dstdir - shift - $posix_glob set +f - IFS=$oIFS - - prefixes= - - for d - do - test -z "$d" && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # 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 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$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 $cpprog $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 $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # 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. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# 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/Build/source/libs/freetype/lib/.cvsignore b/Build/source/libs/freetype/lib/.cvsignore deleted file mode 100644 index e61a727f46f..00000000000 --- a/Build/source/libs/freetype/lib/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -.libs -*.lo -libttf.la diff --git a/Build/source/libs/freetype/lib/.cvsignore.delete b/Build/source/libs/freetype/lib/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Build/source/libs/freetype/lib/arch/amigaos/Makefile.gcc b/Build/source/libs/freetype/lib/arch/amigaos/Makefile.gcc deleted file mode 100644 index d91dde3d291..00000000000 --- a/Build/source/libs/freetype/lib/arch/amigaos/Makefile.gcc +++ /dev/null @@ -1,77 +0,0 @@ -# This file builds the library for Amiga using ADE environment. -# -# You will need GNU make. -# -# Use this file while in the lib directory with the following statement: -# -# make -f arch/amigaos/Makefile.gcc -# -# -# 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. - -ARCH = arch/amigaos -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -AR = ar -RM = rm - -CC = gcc - -CFLAGS = -Wall -pedantic -ansi -O2 -g -noixemul -I$(ARCH) -I. -Iextend - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxgdef.c \ - extend/ftxopen.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttextend.c ttfile.c ttgload.c ttinterp.c ttload.c \ - ttmemory.c ttmutex.c ttobjs.c ttraster.c -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M libttf.a - - -$(OBJ_S): $(SRC_S) $(SRC_M) - - -libttf.a: $($(LIB_FILES)) - $(AR) src $@ $^ - -clean: - $(RM) $($(LIB_FILES)) - -distclean: clean - $(RM) dep.end libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/lib/arch/amigaos/freetype.c b/Build/source/libs/freetype/lib/arch/amigaos/freetype.c deleted file mode 100644 index 723c8f463ce..00000000000 --- a/Build/source/libs/freetype/lib/arch/amigaos/freetype.c +++ /dev/null @@ -1,25 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single object library component for AmigaOS */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttfile.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttmemory.c" -#include "ttmutex.c" -#include "ttobjs.c" -#include "ttraster.c" - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/amigaos/ft_conf.h b/Build/source/libs/freetype/lib/arch/amigaos/ft_conf.h deleted file mode 100644 index fef44662e75..00000000000 --- a/Build/source/libs/freetype/lib/arch/amigaos/ft_conf.h +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for AmigaOS using ADE environment - * - * - * Copyright 1996-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. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ - -/* #undef const */ - -/* Define if you have the header file. */ -#define HAVE_STDLIB_H - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the header file. */ -#define HAVE_UNISTD_H - -/* Define if you have the header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the header file. */ -/* Only meaningful if you have . */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/amigaos/smakefile b/Build/source/libs/freetype/lib/arch/amigaos/smakefile deleted file mode 100644 index 533c75195b4..00000000000 --- a/Build/source/libs/freetype/lib/arch/amigaos/smakefile +++ /dev/null @@ -1,126 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for amiga using SAS/C and smake -# -# Use this file while in the 'lib/arch/amigaos' directory with -# the following statements: -# -# smake assign -# smake -# -# the 'assign' step creates an assignment to simplify referencing -# the core library module, as smake has quite a few limitations in -# dealing with multi-directory projects. -# -# -# 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. - -OBJB = ttapi.o ttcache.o ttcalc.o ttcmap.o ttdebug.o \ - ttextend.o ttfile.o ttgload.o ttinterp.o ttload.o \ - ttmemory.o ttmutex.o ttobjs.o ttraster.o - -OBJS = freetype.o - -OBJX = ftxgasp.o ftxkern.o ftxpost.o ftxcmap.o ftxwidth.o \ - ftxsbit.o ftxgsub.o ftxgpos.o ftxgdef.o ftxopen.o - -CORE = FT:lib/ -COREXT = $(CORE)extend/ - -OPTIMIZER = optimize optcomp=5 optdep=4 optinlocal optrdep=4 - -SCFLAGS = idlen=40 idir=$(CORE)arch/amigaos idir=$(CORE) idir=$(COREXT) - -LIB=ttf.lib - -all: ttf.lib - -assign: - assign FT: /// - -ttf.lib: $(OBJS) $(OBJX) - oml $@ r $(OBJS) $(OBJX) - -ttfdbg.lib: $(OBJB) $(OBJX) - oml $@ r $(OBJB) $(OBJX) - -clean: - -delete \#?.o - -delete //\#?.o - -distclean: clean - -delete \#?.lib - - -# -# freetype library core single object -# -freetype.o: $(CORE)arch/amigaos/freetype.c - sc $(SCFLAGS) code=far $(OPTIMIZER) objname=$@ $< - -# -# freetype library core as separate objects -# -ttapi.o: $(CORE)ttapi.c - sc $(SCFLAGS) objname=$@ $< -ttcache.o: $(CORE)ttcache.c - sc $(SCFLAGS) objname=$@ $< -ttcalc.o: $(CORE)ttcalc.c - sc $(SCFLAGS) objname=$@ $< -ttcmap.o: $(CORE)ttcmap.c - sc $(SCFLAGS) objname=$@ $< -ttdebug.o: $(CORE)ttdebug.c - sc $(SCFLAGS) objname=$@ $< -ttextend.o: $(CORE)ttextend.c - sc $(SCFLAGS) objname=$@ $< -ttfile.o: $(CORE)ttfile.c - sc $(SCFLAGS) objname=$@ $< -ttgload.o: $(CORE)ttgload.c - sc $(SCFLAGS) objname=$@ $< -ttinterp.o: $(CORE)ttinterp.c - sc $(SCFLAGS) objname=$@ $< -ttload.o: $(CORE)ttload.c - sc $(SCFLAGS) objname=$@ $< -ttmemory.o: $(CORE)ttmemory.c - sc $(SCFLAGS) objname=$@ $< -ttmutex.o: $(CORE)ttmutex.c - sc $(SCFLAGS) objname=$@ $< -ttobjs.o: $(CORE)ttobjs.c - sc $(SCFLAGS) objname=$@ $< -ttraster.o: $(CORE)ttraster.c - sc $(SCFLAGS) objname=$@ $< - -# -# library extentions -# -ftxgasp.o: $(COREXT)ftxgasp.c - sc $(SCFLAGS) objname=$@ $< -ftxkern.o: $(COREXT)ftxkern.c - sc $(SCFLAGS) objname=$@ $< -ftxpost.o: $(COREXT)ftxpost.c - sc $(SCFLAGS) objname=$@ $< -ftxcmap.o: $(COREXT)ftxcmap.c - sc $(SCFLAGS) objname=$@ $< -ftxwidth.o: $(COREXT)ftxwidth.c - sc $(SCFLAGS) objname=$@ $< -ftxerr18.o: $(COREXT)ftxerr18.c - sc $(SCFLAGS) objname=$@ $< -ftxsbit.o: $(COREXT)ftxsbit.c - sc $(SCFLAGS) objname=$@ $< -ftxgsub.o: $(COREXT)ftxgsub.c - sc $(SCFLAGS) objname=$@ $< -ftxgpos.o: $(COREXT)ftxgpos.c - sc $(SCFLAGS) objname=$@ $< -ftxgdef.o: $(COREXT)ftxgdef.c - sc $(SCFLAGS) objname=$@ $< -ftxopen.o: $(COREXT)ftxopen.c - sc $(SCFLAGS) objname=$@ $< - -# end of smakefile diff --git a/Build/source/libs/freetype/lib/arch/ansi/freetype.c b/Build/source/libs/freetype/lib/arch/ansi/freetype.c deleted file mode 100644 index 820687a1533..00000000000 --- a/Build/source/libs/freetype/lib/arch/ansi/freetype.c +++ /dev/null @@ -1,32 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single file library component for the ANSI target */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "ttfile.c" -#include "ttmemory.c" -#include "ttmutex.c" - -/* the extensions are compiled separately, but we need to */ -/* include the file ttextend.c if we want to support them */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/ansi/ft_conf.h b/Build/source/libs/freetype/lib/arch/ansi/ft_conf.h deleted file mode 100644 index 011ee118f17..00000000000 --- a/Build/source/libs/freetype/lib/arch/ansi/ft_conf.h +++ /dev/null @@ -1,245 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for the `bare ANSI' build - * - * - * Copyright 1996-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. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Some systems (read: M$-DOS/Windows command.com) can't pipe stderr */ -/* into a file; so we redirect any message into stdout. */ -#define HAVE_PRINT_FUNCTION 1 - -#define Print( format, ap ) vfprintf( stdout, (format), (ap) ) - - -/* The number of bytes in a int. We use the ANSI header file limits.h */ -/* for determining it since there is no easy way to guess. */ -/* */ -#include -#if UINT_MAX == 0xFFFF -#define SIZEOF_INT 2 -#elif UINT_MAX == 0xFFFFFFFF -#define SIZEOF_INT 4 -#else -#error "Unsupported number of bytes in `int' type!" -#endif - -/* We now try to guess the size of longs in the same way */ -/* */ -#if ULONG_MAX == 0xFFFFFFFF -#define SIZEOF_LONG 4 -#elif ULONG_MAX == 0xFFFFFFFFFFFFFFFF -#define SIZEOF_LONG 8 -#else -#error "Unsupported number of bytes in `long' type!" -#endif - -/* Define if you have the header file. */ -#undef HAVE_LIBINTL_H - -/* Define if you have the header file. */ -/* Only meaningful if you have . */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#define TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available. */ -/* INT64 must then be defined to this type. */ -#define LONG64 -#define INT64 long - -#elif defined( __STDC_VERSION__ ) && ( __STDC_VERSION__ >= 199901L ) - -/* `long long' was officially introduced in the C99 standard. */ -/* Purists will note that the defined() test above is unnecessary */ -/* (according to the standard, undefined macros in #if expressions */ -/* default to 1), but we don't rely on this, and since it is easy */ -/* to avoid problems... */ -/* If your compiler complains a lot about possible ANSI violations */ -/* because of this setting, report this as a bug to the compiler */ -/* vendor. */ -#define LONG64 -#define INT64 long long - -#else - -/* GCC provides the non-ANSI89 'long long' 64-bit type. You can */ -/* activate it by defining the TT_USE_LONG_LONG macro. Note that */ -/* this will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/beos/Makefile b/Build/source/libs/freetype/lib/arch/beos/Makefile deleted file mode 100644 index d0403a56fef..00000000000 --- a/Build/source/libs/freetype/lib/arch/beos/Makefile +++ /dev/null @@ -1,102 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for BeOS with gcc. -# -# You will need GNU make. -# -# Use this file while in the lib directory with the following statement: -# -# make -f arch/beos/Makefile.gcc -# -# If you have the GNU gettext package installed, you can also try -# -# make -f arch/beos/Makefile.gcc HAVE_GETTEXT -# -# -# 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. - -ARCH = arch/beos -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -ifndef GETTEXT -GETTEXT=NO_GETTEXT -endif - -ifdef DEBUG -CFLAGS = -Wall -O2 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -D$(GETTEXT) -else -CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend -D$(GETTEXT) -endif - - -TTFILE = ./ttfile.c -TTMEMORY = ./ttmemory.c -TTMUTEX = $(ARCH)/ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxgdef.c \ - extend/ftxopen.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M DEBUG=1 libttf.a - -HAVE_GETTEXT: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S GETTEXT=HAVE_GETTEXT \ - libttf.a - -$(OBJ_S): $(SRC_S) $(SRC_M) - -libttf.a: $($(LIB_FILES)) - -del $@ - ar src $@ $^ - -clean: - -del *.o - -del extend\*.o - -del $(ARCH)\*.o - -del response - -distclean: clean - -del dep.end - -del libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/lib/arch/beos/freetype.c b/Build/source/libs/freetype/lib/arch/beos/freetype.c deleted file mode 100644 index a08c39b44b3..00000000000 --- a/Build/source/libs/freetype/lib/arch/beos/freetype.c +++ /dev/null @@ -1,32 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single file library component for the ANSI target */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "ttfile.c" -#include "ttmemory.c" -#include "arch/beos/ttmutex.c" - -/* the extensions are compiled separately, but we need to */ -/* include the file ttextend.c if we want to support them */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/beos/ft_conf.h b/Build/source/libs/freetype/lib/arch/beos/ft_conf.h deleted file mode 100644 index 758126de897..00000000000 --- a/Build/source/libs/freetype/lib/arch/beos/ft_conf.h +++ /dev/null @@ -1,214 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for BeOS - * - * - * Copyright 1996-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. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -#ifndef BEOS -#define BEOS -#endif - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the header file. */ -#define HAVE_STDLIB_H - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the header file. */ -#define HAVE_UNISTD_H - -/* Define if you have the header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the header file. */ -/* Only meaningful if you have . */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#define TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#define TT_USE_LONG_LONG - -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ diff --git a/Build/source/libs/freetype/lib/arch/beos/ttmutex.c b/Build/source/libs/freetype/lib/arch/beos/ttmutex.c deleted file mode 100644 index 2df23d34161..00000000000 --- a/Build/source/libs/freetype/lib/arch/beos/ttmutex.c +++ /dev/null @@ -1,150 +0,0 @@ -/******************************************************************* - * - * ttmutex.c 1.0 - * - * Mutual exclusion object, BeOS implementation - * - * Copyright 1999-2001 by - * Catharon Productions, Inc. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 "ttmutex.h" - -#include -#include -#include - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_mutex - - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE - -/* New and improved BeOS mutex in the form of a "benaphore". */ - -typedef struct -{ - sem_id _sem; - int32 _atom; -} beos_mutex_t; - -/* Counter so the semaphores have unique names; access this with */ -/* atomic_*() functions only! */ - -static int32 _mutex_counter = 0; - -/* Allocate and initialize the mutex. */ - -FT_INTERNAL_FUNC( void ) -TT_Mutex_Create( TMutex* mutex ) -{ - beos_mutex_t* m = NULL; - - - m = (beos_mutex_t *)malloc( sizeof( beos_mutex_t ) ); - if ( m ) - { - char mutex_name[B_OS_NAME_LENGTH]; - int32 prev = atomic_add( &_mutex_counter, 1 ); - - - sprintf( mutex_name, "FreeType mutex (%d)", (int)prev ); - - m->_atom = 0; - m->_sem = create_sem( 0, mutex_name ); - - if ( m->_sem < B_NO_ERROR ) - { - /* Can't get a semaphore, so we're screwed. */ - free( m ); - m = NULL; - } - } - - /* Send back the new mutex. */ - *mutex = (TMutex)m; -} - - -/* Delete a mutex. */ - -FT_INTERNAL_FUNC( void ) -TT_Mutex_Delete( TMutex* mutex ) -{ - if ( mutex ) - { - beos_mutex_t* m = (beos_mutex_t *)*mutex; - - - if ( m->_sem >= B_NO_ERROR ) - { - status_t retval = delete_sem( m->_sem ); - - - /* Make the compiler shut up... */ - retval = retval; - } - - free( m ); - } -} - - -/* Attempt to lock a mutex; blocks until we can lock it or the semaphore */ -/* is destroyed. */ - -FT_INTERNAL_FUNC( void ) -TT_Mutex_Lock( TMutex* mutex ) -{ - int32 prev = 0; - beos_mutex_t* m = (beos_mutex_t *)*mutex; - - - if ( !mutex ) - return; - - prev = atomic_add( &(m->_atom), 1 ); - if ( prev > 0 ) - { - status_t retval = acquire_sem( m->_sem ); - - - /* Make the compiler shut up... */ - retval = retval; - } -} - - -/* Release a mutex. */ - -FT_INTERNAL_FUNC( void ) -TT_Mutex_Release( TMutex* mutex ) -{ - int32 prev = 0; - beos_mutex_t* m = (beos_mutex_t *)*mutex; - - - if ( !mutex ) - return; - - prev = atomic_add( &(m->_atom), -1 ); - if ( prev > 1 ) { - status_t retval = release_sem( m->_sem ); - - /* Make the compiler shut up... */ - retval = retval; - } -} - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/debugger/Makefile b/Build/source/libs/freetype/lib/arch/debugger/Makefile deleted file mode 100644 index 9d361a78176..00000000000 --- a/Build/source/libs/freetype/lib/arch/debugger/Makefile +++ /dev/null @@ -1,107 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc under OS/2 or under -# Unix with extra debugging capabilities. -# -# You will need GNU make. -# -# Use this file while in the lib directory with the following statements: -# -# make -f arch/debugger/Makefile depend -# make -f arch/debugger/Makefile -# -# -# Copyright 1996-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. - -ARCH = arch/debugger -FT_MAKEFILE = $(ARCH)/Makefile - -CC = gcc - -#CFLAGS = -W -Wall -O0 -g -ansi -pedantic -I$(ARCH) -I. -Iextend - -CFLAGS = -Wall -O0 -g -ansi -I$(ARCH) -I. -Iextend - -#CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend - -# Detect OS/2 to add the flag -DOS2 when compiling ttinterp.c -# -ifdef OS2_SHELL -OS := OS2 -RM := del -else -OS := UNIX # Unix build otherwise -RM := rm -f -endif - -TTFILE = ./ttfile.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxopen.c \ - extend/ftxgdef.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - -# We place the library file in the ARCH directory, so that it doesn't -# interfere with the normal build. -# -LIBTTF_A = $(ARCH)/libttf.a - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< -D$(OS) - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S $(LIBTTF_A) - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M $(LIBTTF_A) - -$(OBJ_S): $(SRC_S) $(SRC_M) - -$(LIBTTF_A): $($(LIB_FILES)) - -$(RM) $@ - ar src $@ $^ - -clean: -ifdef OS2_SHELL - -$(RM) $(subst /,\,$(LIBTTF_A)) - -$(RM) $(subst /,\,$(OBJS_S)) -else - -$(RM) $(LIBTTF_A) - -$(RM) $(OBJS_S) -endif - -distclean: clean - -$(RM) dep.end - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) $(CFLAGS) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile diff --git a/Build/source/libs/freetype/lib/arch/debugger/freetype.c b/Build/source/libs/freetype/lib/arch/debugger/freetype.c deleted file mode 100644 index b431cdfadc5..00000000000 --- a/Build/source/libs/freetype/lib/arch/debugger/freetype.c +++ /dev/null @@ -1,32 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single file library component for the debugging target */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "ttfile.c" -#include "ttmemory.c" -#include "ttmutex.c" - -/* the extensions are compiled separately, but we need to */ -/* include the file ttextend.c if we want to support them */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/debugger/ft_conf.h b/Build/source/libs/freetype/lib/arch/debugger/ft_conf.h deleted file mode 100644 index 6673dd960e4..00000000000 --- a/Build/source/libs/freetype/lib/arch/debugger/ft_conf.h +++ /dev/null @@ -1,249 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for a debugging build - * - * - * Copyright 1996-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. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* command.com can't pipe stderr into a file; so any message will */ -/* be redirected into stdout (which is manageable). */ -#define HAVE_PRINT_FUNCTION 1 - -#define Print( format, ap ) vfprintf( stdout, (format), (ap) ) - - -/* The number of bytes in a int. We use the ANSI header file limits.h */ -/* for determining it since there is no easy way to guess. */ -/* */ -#include -#if UINT_MAX == 0xFFFF -#define SIZEOF_INT 2 -#elif UINT_MAX == 0xFFFFFFFF -#define SIZEOF_INT 4 -#else -#error "Unsupported number of bytes in `int' type!" -#endif - -/* We now try to guess the size of longs in the same way */ -/* */ -#if ULONG_MAX == 0xFFFFFFFF -#define SIZEOF_LONG 4 -#elif ULONG_MAX == 0xFFFFFFFFFFFFFFFF -#define SIZEOF_LONG 8 -#else -#error "Unsupported number of bytes in `long' type!" -#endif - - -/* Define if you have the header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the header file. */ -/* Only meaningful if you have . */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ -/* */ -/* The debugger is useless (and can't be compiled) without the bytecode */ -/* interpreter. But we require TT_CONFIG_OPTION_BYTECODE_INTERPRETER to */ -/* be passed explicitly to avoid disputes with the lawyers. */ - -/* #undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ -/* */ -/* For debugging, we use a jump table; this allows some interesting */ -/* things during development. */ - -#undef TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a `static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine. */ -/* */ -/* We use a static interpreter in the debugger; this helps in setting */ -/* data breakpoints to fixed memory addresses. */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - -/* an extra for the debugger */ -#define DEBUG_INTERPRETER - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode. */ -/* Set to DEBUG_LEVEL_TRACE for the debugger. */ -#define DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -/* Note that contrary to the `ansi' target, there is no test against C99 */ -/* here, because we really want to control whether we use 64-bit type or */ -/* not. So you have to use TT_USE_LONG_LONG to use it on a 32-bit machine. */ -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/mac/README b/Build/source/libs/freetype/lib/arch/mac/README deleted file mode 100644 index 80334869bdd..00000000000 --- a/Build/source/libs/freetype/lib/arch/mac/README +++ /dev/null @@ -1,47 +0,0 @@ - -This is the readme of the freetype.hqx archive in the contrib/mac -subdirectory. Please note that the FreeType team does *not* support the -Macintosh platform due to lack of knowledge. All questions regarding the -code should be sent to both David Williss and the freetype-devel list. - - ----------------------------------------------------------------------------- - - -These are CodeWarrior projects for building the FreeType library on a Macintosh -I've only provided PPC projects here, but building for 68K shouldn't be hard. -There are two directories here (OK, "folders"). One contains a project for -building freetype.ppc.lib and the other is for freetype.ppc.dll. (I havn't -actually tested the DLL yet.) - -The Macintosh stores TrueType fonts in a "Fonts" folder under the "System" -folder. There is a standard MacOS API for finding this folder, so I use it. -However, the fonts aren't normal flat files. They have all the data in -resources in the resource fork. Each font is an 'sfnt' resource, and each -file can have more than one 'sfnt' resource. - -To get at them, I made a copy of ttmmap.c from the Unix implementation and -modified it to load/release the resource and lock/unlock the handle as needed. -This only required a change to the open and close functions. After that, it -works just as if it was using Unix memory mapping. - -One thing however. Because of the bizarre scheme for storing the fonts, I -made up a way of specifying the font filename. - - fonts:/fontfile/fontname - -Where fonts:/ is a literal string that means "the fonts folder", fontfile is -the name of the actual file and fontname is the name of the 'sfnt' resource. -Currently, this is the only thing it understands. It might be nice if some -day (2.0 maybe?) ttfile.c and ttmmap.c wern't mutialy exclusive and it could -decide which method to use based on the filename or something. - -Another thing that I had to change to make this work. It seems that Macintosh -TrueType fonts have no OS/2 table, so ttload.c needs to be modified to make -that nonfatal, at least on a Macintosh. - ---- - -David Williss -MicroImages, Inc. -dwilliss@microimages.com diff --git a/Build/source/libs/freetype/lib/arch/mac/freetype.c b/Build/source/libs/freetype/lib/arch/mac/freetype.c deleted file mode 100644 index 66af7f1f7aa..00000000000 --- a/Build/source/libs/freetype/lib/arch/mac/freetype.c +++ /dev/null @@ -1,44 +0,0 @@ -/* This file is *not* part of the FreeType project, because the team */ -/* lacks the necessary expertise to support it. */ - -/* freetype.c for MacOS */ -/* single object library component for MacOS */ - -/* Written by Dave Willis on 1998-07-30. */ -/* Modified by Antoine Leca for the 1.3 release, but untested. */ - -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* Note, you should define the FT_EXPORT_xxx macros here if you want */ -/* special builds. See 'ttconfig.h' for details. */ - - -/* first include common core components */ - -#define MAC_MAIN_OBJECT -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "ttmmap.c" /* Was "ttfile.c" */ -#include "ttmemory.c" -#include "ttmutex.c" - -/* finally, add some extensions */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/mac/ft_conf.h b/Build/source/libs/freetype/lib/arch/mac/ft_conf.h deleted file mode 100644 index 1507fd882cf..00000000000 --- a/Build/source/libs/freetype/lib/arch/mac/ft_conf.h +++ /dev/null @@ -1,198 +0,0 @@ -/* This file is *not* part of the FreeType project, because the team */ -/* lacks the necessary expertise to support it. */ - -/* ft_conf.h for MacOS */ - -/* Written by Dave Willis on 1998-07-30. */ -/* Modified by Antoine Leca for the 1.3 release, but untested. */ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the 'const' keyword does not work. */ -/* #undef const */ - -/* Define if you have the header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the header file. */ -#undef HAVE_UNISTD_H - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/mac/ttmmap.c b/Build/source/libs/freetype/lib/arch/mac/ttmmap.c deleted file mode 100644 index 8f5ee998636..00000000000 --- a/Build/source/libs/freetype/lib/arch/mac/ttmmap.c +++ /dev/null @@ -1,1072 +0,0 @@ -/******************************************************************* - * - * ttmmap.c 2.0 - * - * Memory-Mapped file component ( replaces ttfile.c ). - * - * Copyright 1996-2001 by David Williss, - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - * Changes between 2.0 and 1.3 : - * - * - adopted new design/separation introduced in ttfile.c 2.0 - * - ******************************************************************/ - -#include "ttconfig.h" - -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - - -#ifdef HAVE_FCNTL_H -#include -#endif - -#include -#include - - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttmemory.h" -#include "ttfile.h" /* our prototypes */ - - /* This definition is mandatory for each file component! */ - FT_EXPORT_VAR( const TFileFrame ) - TT_Null_FileFrame = { NULL, 0, 0 }; - - /* It has proven useful to do some bounds checks during */ - /* development phase. Define DEBUG_FILE when compiling */ - /* this component to enable them. */ - -#ifdef DEBUG_FILE -#define CHECK_FRAME( frame, n ) \ - do { \ - if ( frame.cursor+n > frame.address + frame.size ) \ - Panic( "Frame boundary error!\n" ); \ - } while ( 0 ) -#else -#define CHECK_FRAME( frame, n ) \ - do { \ - } while( 0 ) -#endif - - struct _TFileMap - { - String* base; /* base address of mapped file */ - Int refcount; /* reference count for handle region */ - Long size; /* stream size in file */ - Long offset; /* offset in file */ - Handle handle; /* Macintosh style handle to lock/unlock */ - short resid; /* Id of resource file to close when done */ - }; - - typedef struct _TFileMap TFileMap; - -#define MAP_Address( map ) (Byte*)( (map)->base + (map)->offset ) - - /* The stream record structure */ - typedef struct _TStream_Rec - { - TFileMap* map; /* mapped file description */ - Long pos ; /* cursor in mapped file */ - } TStream_Rec; - - typedef TStream_Rec* PStream_Rec; - -#define STREAM2REC( x ) ( (TStream_Rec*)HANDLE_Val( x ) ) - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /**** ****/ - /**** N O N R E E N T R A N T I M P L E M E N T A T I O N ****/ - /**** ****/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - - /* The TFile_Component structure holds all the data that was */ - /* previously declared static or global in this component. */ - /* */ - /* It is accessible through the 'engine.file_component' */ - /* variable in re-entrant builds, or directly through the */ - /* static 'files' variable in other builds. */ - - struct _TFile_Component - { - TMutex lock; /* used by the thread-safe build only */ - PStream_Rec stream; /* current stream */ - TFileFrame frame; /* current frame */ - }; - - typedef struct _TFile_Component TFile_Component; - -/* The macro CUR_Stream denotes the current input stream */ -/* Note that for the re-entrant version, the 'stream' name has been */ -/* chosen according to the macro STREAM_ARGS. */ - -/* The macro CUR_Frame denotes the current file frame */ -/* Note that for the re-entrant version, the 'frame' name has been */ -/* chosen according to the macro FRAME_ARGS. */ - -/* The macro STREAM_VAR is used when calling public functions */ -/* that need an 'optional' stream argument. */ - -#define CUR_Stream files.stream /* thread-safe macros */ -#define CUR_Frame files.frame - -#define STREAM_VARS /* void */ -#define STREAM_VAR /* void */ - - /* the 'files' variable is only defined in non-reentrant builds */ - - static TFile_Component files; - - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - MUTEX_Create( files.lock ); - files.stream = NULL; - ZERO_Frame( files.frame ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - MUTEX_Destroy( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream org_stream, - TT_Stream* stream ) - { - MUTEX_Lock( files.lock ); - *stream = org_stream; - files.stream = STREAM2REC( org_stream ); /* set current stream */ - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream - * - * Output : Error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - HANDLE_Set( *stream, NULL ); - MUTEX_Release( files.lock ); - - return TT_Err_Ok; - } - -#else /* TT_CONFIG_OPTION_THREAD_SAFE */ - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /******** ********/ - /******** R E E N T R A N T I M P L E M E N T A T I O N ********/ - /******** ********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -#define CUR_Stream STREAM2REC( stream ) /* re-entrant macros */ -#define CUR_Frame (*frame) - -#define STREAM_VARS stream, -#define STREAM_VAR stream - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - engine.file_component = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code. The output stream is set to NULL in - * case of Failure. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream input_stream, - TT_Stream* copy ) - { - TT_Error error; - PStream_Rec stream_rec; - PStream_Rec copy_rec; - - - stream_rec = STREAM2REC( input_stream ); - - if ( ALLOC( copy_rec, sizeof ( TStream_Rec ) ) ) - goto Fail; - - HANDLE_Set( *copy, copy_rec ); - - copy_rec->map->refcount++; - copy_rec->pos = 0; - - return TT_Err_Ok; - - Fail: - HANDLE_Set( *copy, NULL ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream - * - * Output : error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - return TT_Close_Stream( stream ); - } - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /*********** ***********/ - /*********** C O M M O N I M P L E M E N T A T I O N ***********/ - /*********** ***********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/******************************************************************* - * - * Function : AllocateMap - * - * Description : Allocates a new map from the table. - * - * Output : Pointer to new stream rec. NULL in case of failure. - * - ******************************************************************/ - - static TFileMap* - Allocate_Map( void ) - { - TFileMap* result; - - - if ( MEM_Alloc( result, sizeof ( TFileMap ) ) ) - return NULL; - - result->refcount = 1; - return result; - } - - -/******************************************************************* - * - * Function : ReleaseMap - * - * Description : Releases a used map to the table if reference i - * counter reaches zero. - * - * Input : map - * - * Output : None. - * - * Note : Called by TT_Close_File() - * - ******************************************************************/ - - static void - Release_Map ( TFileMap* map ) - { - map->refcount--; - if ( map->refcount <= 0 ) - { - /* MacOS System calls */ - HUnlock(map->handle); - ReleaseResource(map->handle); - CloseResFile(map->resid); - - FREE( map ); - } - } - - -/* Whadda ya mean "strdup undefined"? Fine, I'll define my own! */ - static char * - mystrdup( const char *str ) - { - char *ret; - - if ( TT_Alloc(strlen(str) + 1, (void**)&ret) != 0 ) return(NULL); - strcpy(ret, str); - return(ret); - } - - -/******************************************************************* - * - * Function : TT_Open_Stream - * - * Description : Opens the font file and saves the total file size. - * - * Input : error address of stream's error variable - * (re-entrant build only). - * filepathname pathname of the file to open - * stream address of target TT_Stream structure - * - * Output : SUCCESS on success, FAILURE on error. - * The target stream is set to -1 in case of failure. - * - ******************************************************************/ -/* -** This is not a totally generic implementation. It currently assumes the filename -** starts with "fonts:" and uses slashes instead of colons like Mac code normally -** would. Given a filename of the form "fonts:/filename/resname", Load the resource -** and lock the handle -** -** The "fonts:" at the beginning is just a convention I came up with to -** indicate the Fonts folder inside the current System folder (find via FindFolder()) -*/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Open_Stream( const String* filepathname, - TT_Stream* stream ) - { - TT_Error error; - Int file; - PStream_Rec stream_rec; - TFileMap* map; - - int size, err = 0; - short vRefNum, res = -1; - Str255 FontName; - char *cp, *p, *fname, *sep; - Str63 myName; - long dirID; - - - if ( ALLOC( *stream, sizeof ( TStream_Rec ) ) ) - return error; - - map = Allocate_Map(); - if ( !map ) - { - error = TT_Err_Out_Of_Memory; - goto Memory_Fail; - } - - stream_rec = STREAM2REC( *stream ); - - /* Find the dirID of the Fonts folder in the current System folder */ - if (FindFolder(kOnSystemDisk, kFontsFolderType, kDontCreateFolder, &vRefNum, &dirID)) - goto File_Fail; - - /* Break the name apart */ - fname = mystrdup(filepathname); /* Make a copy so we can muck with it */ - sep = ":/"; /* Things that can seperate file path componants */ - - strtok(fname, sep); /* Skip over "fonts:" */ - - if ((p = strtok(NULL, sep)) == NULL) /* Get filename */ - goto File_Fail; - strcpy(myName + 1, p); /* Make this a Pascal string (Yuck!) */ - myName[0] = strlen(p); - - if ((p = strtok(NULL, sep)) == NULL) /* Get res name */ - goto File_Fail; - strcpy(FontName+1, p); /* Make this a Pascal string (Yuck!) */ - FontName[0] = strlen(p); - - FREE( fname ); - - if ((cp = strchr(FontName, '.')) != NULL) /* Strip off ".ttf" , if any */ - *cp = 0; - - /* Read the font into a buffer */ - if ((map->resid = HOpenResFile(vRefNum, dirID, myName, fsRdPerm)) == -1) - goto File_Fail; - - if ((map->handle = Get1NamedResource('sfnt', FontName)) == NULL) - goto Map_Fail; - - HLock(map->handle); - map->base = *map->handle; - map->offset = 0; - map->size = GetResourceSizeOnDisk(map->handle); - - if ( map->base == NULL ) - goto Lock_Fail; - - stream_rec->map = map; - stream_rec->pos = 0; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - CUR_Stream = stream_rec; -#endif - - return TT_Err_Ok; - - Lock_Fail: - ReleaseResource(map->handle); - - Map_Fail: - CloseResFile(map->resid); - - File_Fail: - error = TT_Err_Could_Not_Open_File; - FREE( map ); - - Memory_Fail: - FREE( *stream ); - FREE( fname ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Close_Stream - * - * Description : Closes a stream. - * - * Input : stream - * - * Output : SUCCESS (always) - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Close_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - Release_Map( rec->map ); - FREE( rec ); - - HANDLE_Set( *stream, NULL ); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Flush_Stream - * - * Description : Flushes a stream, i.e., closes its file handle. - * - * Input : stream address of target TT_Stream structure - * - * Output : Error code - * - * NOTE : Never flush the current opened stream. This means that - * you should _never_ call this function between a - * TT_Use_Stream() and a TT_Done_Stream()! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Flush_Stream( TT_Stream* stream ) - { - /* XXX - DUMMY IMPLEMENTATION */ - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Stream_Size - * - * Description : Returns the length of a given stream, even if it - * is flushed. - * - * Input : stream the stream - * - * Output : Length of stream in bytes. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Stream_Size( TT_Stream stream ) - { - PStream_Rec rec = STREAM2REC( stream ); - - - if ( rec ) - return rec->map->size; - else - return 0; /* invalid stream - return 0 */ - } - - -/******************************************************************* - * - * Function : TT_Seek_File - * - * Description : Seeks the file cursor to a different position. - * - * Input : position new position in file - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Seek_File( STREAM_ARGS Long position ) - { - if ( position > CUR_Stream->map->size ) - return TT_Err_Invalid_File_Offset; - - CUR_Stream->pos = position; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Skip_File - * - * Description : Skips forward the file cursor. - * - * Input : distance number of bytes to skip - * - * Output : see TT_Seek_File - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Skip_File( STREAM_ARGS Long distance ) - { - return TT_Seek_File( STREAM_VARS CUR_Stream->pos + distance ); - } - - -/******************************************************************* - * - * Function : TT_Read_File - * - * Description : Reads a chunk of the file and copies it to memory. - * - * Input : buffer target buffer - * count length in bytes to read - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_File( STREAM_ARGS void* buffer, Long count ) - { - if ( CUR_Stream->pos + count > CUR_Stream->map->size ) - return TT_Err_Invalid_File_Read; - - MEM_Copy( buffer, - MAP_Address( CUR_Stream->map ) + CUR_Stream->pos, count ); - CUR_Stream->pos += count; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Read_At_File - * - * Description : Reads file at a specified position. - * - * Input : position position to seek to before read - * buffer target buffer - * count number of bytes to read - * - * Output : SUCCESS on success. FAILURE if error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_At_File( STREAM_ARGS Long position, - void* buffer, - Long count ) - { - TT_Error error; - - - if ( (error = TT_Seek_File( STREAM_VARS position )) || - (error = TT_Read_File( STREAM_VARS buffer, count )) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_File_Pos - * - * Description : Returns current file seek pointer. - * - * Input : none - * - * Output : current file position - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_File_Pos( STREAM_ARG ) - { - return CUR_Stream->pos; - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : Error code - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that aSize is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( CUR_Stream->pos + size > CUR_Stream->map->size ) - return TT_Err_Invalid_Frame_Access; - - CUR_Frame.size = size; - CUR_Frame.address = MAP_Address( CUR_Stream->map ) + CUR_Stream->pos; - CUR_Frame.cursor = CUR_Frame.address; - - CUR_Stream->pos += size; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : Error code - * - * Notes: The function truncates 'size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that aSize is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. The 'overflow' is set to zero. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - Long readBytes; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - readBytes = CUR_Stream->map->size - CUR_Stream->pos; - if ( size > readBytes ) - { - /* There is overflow, we allocate a new block then */ - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - - CUR_Frame.size = size; - - /* copy the valid part */ - MEM_Copy( CUR_Frame.address, - MAP_Address( CUR_Stream->map ) + CUR_Stream->pos, - readBytes ); - } - else - { - CUR_Frame.size = size; - CUR_Frame.address = MAP_Address( CUR_Stream->map ) + CUR_Stream->pos; - } - - CUR_Frame.cursor = CUR_Frame.address; - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - /* If we were using a duplicate in case of overflow, free it now */ - if ( CUR_Frame.address < (Byte*)CUR_Stream->map->base || - CUR_Frame.address >= (Byte*)CUR_Stream->map->base + - CUR_Stream->map->size ) - FREE( CUR_Frame.address ); - - ZERO_Frame( files.frame ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : GET_Byte - * - * Description : Extracts a byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted Byte - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( Byte ) - TT_Get_Byte( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Byte)(*CUR_Frame.cursor++); - } - -#endif - - -/******************************************************************* - * - * Function : GET_Char - * - * Description : Extracts a signed byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted char - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Char ) - TT_Get_Char( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Char)(*CUR_Frame.cursor++); - } - - -/******************************************************************* - * - * Function : GET_Short - * - * Description : Extracts a short from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted short - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Short ) - TT_Get_Short( FRAME_ARG ) - { - Short getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((Short)CUR_Frame.cursor[0] << 8) | - (Short)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } - - -/******************************************************************* - * - * Function : GET_UShort - * - * Description : Extracts an unsigned short from the frame. - * - * Input : None or current frame - * - * Output : Extracted ushort - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( UShort ) - TT_Get_UShort( FRAME_ARG ) - { - UShort getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((UShort)CUR_Frame.cursor[0] << 8) | - (UShort)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } - -#endif - - -/******************************************************************* - * - * Function : GET_Long - * - * Description : Extracts a long from the frame. - * - * Input : None or current frame - * - * Output : Extracted long - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Get_Long( FRAME_ARG ) - { - Long getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ((Long)CUR_Frame.cursor[0] << 24) | - ((Long)CUR_Frame.cursor[1] << 16) | - ((Long)CUR_Frame.cursor[2] << 8 ) | - (Long)CUR_Frame.cursor[3]; - - CUR_Frame.cursor += 4; - - return getlong; - } - - -/******************************************************************* - * - * Function : GET_ULong - * - * Description : Extracts an unsigned long from the frame. - * - * Input : None - * - * Output : Extracted ulong - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( ULong ) - TT_Get_ULong( FRAME_ARG ) - { - ULong getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ( ((ULong)CUR_Frame.cursor[0] << 24) | - ((ULong)CUR_Frame.cursor[1] << 16) | - ((ULong)CUR_Frame.cursor[2] << 8 ) | - (ULong)CUR_Frame.cursor[3] ); - - CUR_Frame.cursor += 4; - - return getlong; - } - -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/msdos/Makefile.BC b/Build/source/libs/freetype/lib/arch/msdos/Makefile.BC deleted file mode 100644 index 4ef5f224c1f..00000000000 --- a/Build/source/libs/freetype/lib/arch/msdos/Makefile.BC +++ /dev/null @@ -1,171 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Borland C++ for MS-DOS, large model. -# Due to size constraints, it does not try to pack all modules into one -# (`single-object mode'). -# -# You will need Borland MAKE. -# Tested with Borland C++ v.3.1, 4.02, 4.51, 5.02. -# See below for a note for Borland C++ 2.0, 3.0 or Turbo C++ 3.0. -# -# Use this file while in the lib directory with the following statement: -# -# make -farch/msdos/Makefile.BC -# -# -# A debug version can be obtained with -# -# make -DDEBUG -farch/msdos/Makefile.BC -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# make -DBIGFONTS -farch/msdos/Makefile.BC -# -# -# 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. -# -# -# Various notes about specific versions... -# -# NOTE: Borland C++ v. 2.0, 3.0, or Turbo C++ 3.0 -# -# There is something that will fail as it stands: the -i40 option -# passed to CFLAGS was not recognized until v.3.1, so the compiler -# will complain. So you should remove the -i40 option below. -# -# Also, __huge was not introduced before v.3.1, so if you want the -# BIGFONTS option, you should use _huge instead (and perhaps remove -# -A in CFLAGS). -# -# NOTE 2: Turbo C++ 3.0 -# -# You should write `CC=tcc' below, as it should be obvious. -# Alternatively, you can `set CC=tcc', then invoke make with -e. -# -# NOTE 3: Borland C++ 2.0 -# -# Not really very tested; expect problems with make (overflows). -# Alternatively, use Makefile.TC, replacing there tcc with bcc. - - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.BC - -!if ! $d(CC) -CC = bcc -!endif - -LIB = tlib /c /e - -# Credits go to Dave Hoo for pointing out that modern -# Borland compilers (from BC++ 3.1 on) can increase the limit on -# the length of identifiers. - -!if ! $d(DEBUG) -CFLAGS = -ml -A -O2 -3 -i40 -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -I$(ARCH);.;extend -!else -CFLAGS = -v -N -ml -A -i40 -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -I$(ARCH);.;extend -!endif - - -!if $d(BIGFONTS) -CFLAGS = $(CFLAGS) -DTT_HUGE_PTR=__huge - -TTFILE = $(ARCH)\.\hugefile.c -TTMEMORY = $(ARCH)\.\hugemem.c -!else -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -!endif -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces before the \ at end of line, -# otherwise the substitution for TLIB command line will fail. -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c \ - extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c \ - extend\ftxsbit.c extend\ftxgsub.c extend\ftxgpos.c \ - extend\ftxopen.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c ttdebug.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\.\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Borland's make does not handle $($(LIB_FILES)), and using -# -DLIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing TLIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# It is commented out below. See Makefile.TC for an application. -.c.obj: - $(CC) -c -o$* @&&| - $(CFLAGS) $< -| -# $(LIB) libttf +-$*.obj - - -!if !$d(DEBUG) -# Skipped if DEBUG build -# (but it changes nothing, since we always build in multiple parts). -all: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_M: = + ) -| - -!endif - - -debug: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_M: = + ) -| - -$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(**: = + ) -| - -!if $d(BIGFONTS) -$(TTMEMORY:.c=.obj): $(TTMEMORY) - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| -!endif - - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del libttf.bak - -del response - -distclean: clean - -del libttf.lib - -!include "$(ARCH)\depend.dos" - -# end of Makefile diff --git a/Build/source/libs/freetype/lib/arch/msdos/Makefile.MS b/Build/source/libs/freetype/lib/arch/msdos/Makefile.MS deleted file mode 100644 index 2e3a9e43cea..00000000000 --- a/Build/source/libs/freetype/lib/arch/msdos/Makefile.MS +++ /dev/null @@ -1,127 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Microsoft C for MS-DOS, large model. -# It also works for Visual C++ 1.x 16-bits compiler, but you should -# instead use the Makefile customized for it, Makefile.VC. -# Due to size constraints, it does not try to pack all modules into one. -# -# Tested with Microsoft C v.6.0ax, C/C++ v.7.0, Visual C++ v.1.5. -# Microsoft C v.5.1 chokes on some (definitively) ANSI constructs, -# like switch() with an expression of type long. Upgrade your compiler! -# -# You will need NMAKE. -# -# Use this file while in the lib directory with the following statement: -# -# nmake /f arch\msdos\Makefile.MS -# -# -# A debug version can be obtained with -# -# nmake DEBUG=1 /f arch\msdos\Makefile.MS -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# nmake BIGFONTS=1 /f arch\msdos\Makefile.MS -# -# -# Copyright 1996-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. - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.MS - -CC = cl /nologo -LIB = lib - -!ifndef DEBUG -CFLAGS = /Ox /AL /W0 /G2 /I$(ARCH) /I. /Iextend -!else -CFLAGS = /Zi /AL /W0 /G2 /I$(ARCH) /I. /Iextend -!endif - - -!ifndef BIGFONTS -CFLAGS = $(CFLAGS) /Za - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -!else -CFLAGS = $(CFLAGS) /DTT_HUGE_PTR=huge /Ze - -TTFILE = $(ARCH)\hugefile.c -TTMEMORY = $(ARCH)\hugemem.c -!endif - -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -OBJS_X = extend\ftxgasp.obj extend\ftxkern.obj extend\ftxpost.obj \ - extend\ftxcmap.obj extend\ftxwidth.obj extend\ftxerr18.obj \ - extend\ftxsbit.obj extend\ftxopen.obj extend\ftxgsub.obj \ - extend\ftxgpos.obj extend\ftxgdef.obj -# the line below does not work with these old versions of nmake... -# OBJS_X = $(SRC_X:.c=.obj) - -OBJS_M = ttapi.obj ttcache.obj ttcalc.obj ttcmap.obj ttdebug.obj \ - ttgload.obj ttinterp.obj ttload.obj ttobjs.obj \ - ttraster.obj ttextend.obj $(PORT) $(OBJS_X) -# OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -# Not used here because the compiler runs out of memory... -OBJ_S = $(ARCH)\freetype.obj -#SRC_S = $(ARCH)\freetype.c -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Microsoft's NMAKE does not handle $($(LIB_FILES)), and using -# LIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we include -# each .obj in the library as soon as it is compiled. Better schemes are -# used in the other Makefile's, please give them a look. -.c.obj: - $(CC) /c /Fo$@ $(CFLAGS) $*.c - $(LIB) libttf -+$*.obj; - - -!ifndef DEBUG -# Skipped if DEBUG build -# (but it changes nothing, since we always build in multiple parts). -all: $(OBJS_M) -# -del libttf.lib -# $(LIB) libttf.lib @<&| - -CC = gcc - -CFLAGS = -Wall -O2 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -# CFLAGS = -Wall -ansi -O2 -s -I$(ARCH) -I. -Iextend - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxopen.c \ - extend/ftxgdef.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttfile.c ttgload.c ttinterp.c ttload.c \ - ttmemory.c ttmutex.c ttobjs.c ttraster.c ttextend.c -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M libttf.a - - -$(OBJ_S): $(SRC_S) $(SRC_M) - $(CC) $(CFLAGS) -c -o $@ $(SRC_S) - -libttf.a: $($(LIB_FILES)) - +-del $@ - ar src $@ @$(mktmp $(<:t"\n")\n) - -clean: --[ - del *.o - del extend\*.o - del $(ARCH)\*.o -] - -distclean: clean --[ - del dep.end - del libttf.a -] - -# depend: $(SRC_S) $(SRC_M) $(SRC_X) -# $(CC) -E -M @$(mktmp $(<:t"\n")\n) > dep.end - -# ifeq (dep.end,$(wildcard dep.end)) -# include dep.end -# endif - -# end of Makefile.dm diff --git a/Build/source/libs/freetype/lib/arch/msdos/Makefile.gcc b/Build/source/libs/freetype/lib/arch/msdos/Makefile.gcc deleted file mode 100644 index 7425f2adabc..00000000000 --- a/Build/source/libs/freetype/lib/arch/msdos/Makefile.gcc +++ /dev/null @@ -1,108 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for emx-gcc or djgpp under MSDOS. -# -# You will need GNU make, and sed if you want to make depend -# -# Use this file while in the lib directory with the following statements: -# -# make -f arch/msdos/Makefile.gcc depend -# make -f arch/msdos/Makefile.gcc -# -# If you have the GNU gettext package installed with DJGPP, you can also try -# -# make -f arch/msdos/Makefile.gcc HAVE_GETTEXT -# -# You should also modify the path below to reflect where the *.mo -# files are on your system, and install there the one for freetype. -# -# -# Copyright 1996-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. - -ARCH = arch/msdos -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -ifndef GETTEXT -GETTEXT=NO_GETTEXT -endif - -ifdef DEBUG -CFLAGS = -Wall -O2 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -D$(GETTEXT) -else -CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend -D$(GETTEXT) -endif - - -TTFILE = ./ttfile.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxgdef.c \ - extend/ftxopen.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M DEBUG=1 libttf.a - -HAVE_GETTEXT: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S GETTEXT=HAVE_GETTEXT \ - libttf.a - -$(OBJ_S): $(SRC_S) $(SRC_M) - -libttf.a: $($(LIB_FILES)) - -del $@ - ar src $@ $^ - -clean: - -del *.o - -del extend\*.o - -del arch\msdos\*.o - -del response - -distclean: clean - -del dep.end - -del libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ | \ - sed -e "s!^freetype.!$(ARCH)/freetype.!" | \ - sed -e "s!^ftx!extend/ftx!" > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/lib/arch/msdos/Makefile.wat b/Build/source/libs/freetype/lib/arch/msdos/Makefile.wat deleted file mode 100644 index 12647edc579..00000000000 --- a/Build/source/libs/freetype/lib/arch/msdos/Makefile.wat +++ /dev/null @@ -1,105 +0,0 @@ -# This file is part of the FreeType project -# -# This builds the Watcom library with Watcom's wcc386 under DOS -# -# You'll need Watcom's wmake -# -# -# Invoke by "wmake -f arch\msdos\Makefile.wat" while in the "lib" directory -# -# This will build "freetype\lib\libttf.lib" -# -# -# 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 compiler did compile early versions of the FreeType package. -# While we tried our best to maintain the makefiles, the development team -# does not have currently access to a copy of this compiler, and we did not -# receive notices of successfull builts since many years. So be prepared -# to some problems; and if it works for you, or if you can upgrade the -# package in any way, please notify us! - - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.wat -FT_MAKE = wmake -h - - -.EXTENSIONS: -.EXTENSIONS: .lib .obj .c .h -.obj:.;.\extend;.\$(ARCH) -.c:.;.\extend;.\$(ARCH) -.h:.;.\extend;.\$(ARCH) - -CC = wcc386 - -CCFLAGS = /otexanl+ /s /w4 /zq /d3 -I$(ARCH) -I. -Iextend - - -# FIXME: should use something like OBJ = $(SRC:.c=.obj) - -SRC_X = ftxgasp.c ftxkern.c ftxpost.c & - ftxcmap.c ftxwidth.c ftxsbit.c ftxerr18.c & - ftxgsub.c ftxgpos.c ftxopen.c ftxgdef.c -OBJS_X = ftxgasp.obj ftxkern.obj ftxpost.obj & - ftxcmap.obj ftxwidth.obj ftxsbit.obj ftxerr18.obj & - ftxgsub.obj ftxgpos.obj ftxopen.obj ftxgdef.obj - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c & - ttfile.c ttgload.c ttinterp.c & - ttload.c ttmemory.c ttmutex.c ttobjs.c ttraster.c & - ttextend.c -OBJS_M = ttapi.obj ttcache.obj ttcalc.obj ttcmap.obj ttdebug.obj & - ttfile.obj ttgload.obj ttinterp.obj & - ttload.obj ttmemory.obj ttmutex.obj ttobjs.obj ttraster.obj & - ttextend.obj $(OBJS_X) - -SRC_S = freetype.c -OBJ_S = freetype.obj -OBJS_S = $(OBJ_S) $(OBJ_X) - - -.c.obj: - $(CC) $(CCFLAGS) $[* /fo=$[*.obj - -libname = libttf -libfile = $(libname).lib -cmdfile = $(libname).lst - - -all: .symbolic - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S $(libfile) - -debug: .symbolic - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M $(libfile) - - -$(libfile): $($(LIB_FILES)) - wlib -q -n $(libfile) @$(cmdfile) - -# is this correct? Know nothing about wmake and the Watcom compiler... -$(OBJ_S): $(SRC_S) $(SRC_M) - $(CC) $(CCFLAGS) $(SRC_S) /fo=$(OBJ_S) - -$(cmdfile): $($(LIB_FILES)) - @for %i in ($($(LIB_FILES))) do @%append $(cmdfile) +-%i - -clean: .symbolic - @-erase $(OBJ_S) - @-erase $(OBJS_M) - @-erase $(cmdfile) - -distclean: .symbolic clean - @-erase $(libfile) - -new: .symbolic - @-wtouch *.c - -# end of Makefile.wat diff --git a/Build/source/libs/freetype/lib/arch/msdos/depend.dos b/Build/source/libs/freetype/lib/arch/msdos/depend.dos deleted file mode 100644 index 50f2c49fb76..00000000000 --- a/Build/source/libs/freetype/lib/arch/msdos/depend.dos +++ /dev/null @@ -1,111 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various MS-DOS compilers -# has been generated automatically with the script `makedep' on -# 2002-11-18. - -ttapi.obj: ttapi.c ttconfig.h arch\msdos\ft_conf.h freetype.h fterrid.h \ - ftnameid.h ttengine.h tttypes.h ttmutex.h ttcalc.h ttmemory.h \ - ttcache.h ttfile.h ttdebug.h ttobjs.h tttables.h ttcmap.h ttload.h \ - ttgload.h ttraster.h ttextend.h -ttcache.obj: ttcache.c ttengine.h tttypes.h ttconfig.h \ - arch\msdos\ft_conf.h freetype.h fterrid.h ftnameid.h ttmutex.h \ - ttmemory.h ttcache.h ttobjs.h tttables.h ttcmap.h ttdebug.h -ttcalc.obj: ttcalc.c ttcalc.h ttconfig.h arch\msdos\ft_conf.h freetype.h \ - fterrid.h ftnameid.h ttdebug.h tttypes.h tttables.h -ttcmap.obj: ttcmap.c ttobjs.h ttconfig.h arch\msdos\ft_conf.h ttengine.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmutex.h ttcache.h \ - tttables.h ttcmap.h ttdebug.h ttfile.h ttmemory.h ttload.h -ttdebug.obj: ttdebug.c ttdebug.h ttconfig.h arch\msdos\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h tttables.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h ttcmap.h -ttextend.obj: ttextend.c ttextend.h ttconfig.h arch\msdos\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttmemory.h -ttfile.obj: ttfile.c ttconfig.h arch\msdos\ft_conf.h freetype.h \ - fterrid.h ftnameid.h tttypes.h ttdebug.h ttengine.h ttmutex.h \ - ttmemory.h ttfile.h -ttgload.obj: ttgload.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttdebug.h ttcalc.h ttfile.h \ - ttengine.h ttmutex.h tttables.h ttobjs.h ttcache.h ttcmap.h ttgload.h \ - ttmemory.h tttags.h ttload.h -ttinterp.obj: ttinterp.c freetype.h fterrid.h ftnameid.h tttypes.h \ - ttconfig.h arch\msdos\ft_conf.h ttdebug.h ttcalc.h ttmemory.h \ - ttinterp.h ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h \ - ttcmap.h -ttload.obj: ttload.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttdebug.h ttcalc.h ttfile.h \ - ttengine.h ttmutex.h tttables.h ttobjs.h ttcache.h ttcmap.h \ - ttmemory.h tttags.h ttload.h -ttmemory.obj: ttmemory.c ttdebug.h ttconfig.h arch\msdos\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmemory.h ttengine.h \ - ttmutex.h -ttmutex.obj: ttmutex.c ttmutex.h ttconfig.h arch\msdos\ft_conf.h -ttobjs.obj: ttobjs.c ttobjs.h ttconfig.h arch\msdos\ft_conf.h ttengine.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmutex.h ttcache.h \ - tttables.h ttcmap.h ttfile.h ttdebug.h ttcalc.h ttmemory.h ttload.h \ - ttinterp.h ttextend.h -ttraster.obj: ttraster.c ttraster.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttengine.h tttypes.h ttmutex.h \ - ttdebug.h ttcalc.h ttmemory.h -extend\ftxcmap.obj: extend\ftxcmap.c extend\ftxcmap.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\msdos\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h -extend\ftxerr18.obj: extend\ftxerr18.c extend\ftxerr18.h freetype.h fterrid.h \ - ftnameid.h extend\ftxkern.h extend\ftxpost.h extend\ftxopen.h \ - extend\ftxgdef.h extend\ftxgsub.h extend\ftxgpos.h ttconfig.h \ - arch\msdos\ft_conf.h -extend\ftxgasp.obj: extend\ftxgasp.c extend\ftxgasp.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\msdos\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h -extend\ftxgdef.obj: extend\ftxgdef.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxgpos.obj: extend\ftxgpos.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxgsub.obj: extend\ftxgsub.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxkern.obj: extend\ftxkern.c extend\ftxkern.h freetype.h fterrid.h \ - ftnameid.h ttextend.h ttconfig.h arch\msdos\ft_conf.h tttypes.h \ - ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttdebug.h \ - ttload.h ttmemory.h ttfile.h tttags.h -extend\ftxopen.obj: extend\ftxopen.c tttypes.h ttconfig.h arch\msdos\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxpost.obj: extend\ftxpost.c extend\ftxpost.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\msdos\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttload.h ttfile.h \ - ttdebug.h tttags.h ttmemory.h ttextend.h -extend\ftxsbit.obj: extend\ftxsbit.c extend\ftxsbit.h freetype.h fterrid.h \ - ftnameid.h ttobjs.h ttconfig.h arch\msdos\ft_conf.h ttengine.h \ - tttypes.h ttmutex.h ttcache.h tttables.h ttcmap.h ttfile.h ttdebug.h \ - ttload.h ttmemory.h tttags.h ttextend.h -extend\ftxwidth.obj: extend\ftxwidth.c extend\ftxwidth.h freetype.h fterrid.h \ - ftnameid.h ttdebug.h ttconfig.h arch\msdos\ft_conf.h tttypes.h \ - ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttfile.h \ - tttags.h ttload.h -arch\msdos\freetype.obj: arch\msdos\freetype.c ttapi.c ttconfig.h \ - arch\msdos\ft_conf.h freetype.h fterrid.h ftnameid.h ttengine.h \ - tttypes.h ttmutex.h ttcalc.h ttmemory.h ttcache.h ttfile.h ttdebug.h \ - ttobjs.h tttables.h ttcmap.h ttload.h ttgload.h ttraster.h ttextend.h \ - ttcache.c ttcalc.c ttcmap.c ttdebug.c ttgload.c tttags.h ttinterp.c \ - ttinterp.h ttload.c ttobjs.c ttraster.c arch\msdos\hugefile.c \ - ttfile.c arch\msdos\hugemem.c ttmutex.c ttextend.c -arch\msdos\hugefile.obj: arch\msdos\hugefile.c ttconfig.h arch\msdos\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttfile.c ttdebug.h \ - ttengine.h ttmutex.h ttmemory.h ttfile.h -arch\msdos\hugemem.obj: arch\msdos\hugemem.c ttdebug.h ttconfig.h \ - arch\msdos\ft_conf.h tttypes.h freetype.h fterrid.h ftnameid.h \ - ttmemory.h ttengine.h ttmutex.h diff --git a/Build/source/libs/freetype/lib/arch/msdos/freetype.c b/Build/source/libs/freetype/lib/arch/msdos/freetype.c deleted file mode 100644 index 943d5f24776..00000000000 --- a/Build/source/libs/freetype/lib/arch/msdos/freetype.c +++ /dev/null @@ -1,39 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single object library component for MSDOS. */ -/* Note that low-optimizing 16-bit compilers (such as Borland ones) can't */ -/* successfully compile this file, because it exceeds 64K of code size. */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#ifdef TT_HUGE_PTR -#include "arch/msdos/hugefile.c" -#include "arch/msdos/hugemem.c" -#else -#include "ttfile.c" -#include "ttmemory.c" -#endif -#include "ttmutex.c" - -/* finally, add some extensions */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/msdos/ft_conf.h b/Build/source/libs/freetype/lib/arch/msdos/ft_conf.h deleted file mode 100644 index 25f16823c3c..00000000000 --- a/Build/source/libs/freetype/lib/arch/msdos/ft_conf.h +++ /dev/null @@ -1,251 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for MSDOS - * - * - * Copyright 1996-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. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the header file. */ -#if defined( __EMX__ ) || defined( __DJGPP__ ) || defined( __GO32__ ) \ - || defined( __DJGPP ) /*v.1*/ -/* some compilers are known to have ; */ -/* add yours if needed, and report to us the update. */ -#define HAVE_UNISTD_H -#else -/* most MS-DOS compilers lack */ -#undef HAVE_UNISTD_H -#endif - -/* Define if you have the header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the header file. */ -/* Only meaningful if you have . */ -/* #undef HAVE_LOCALE_H */ - -/* DJGPP v.2 may feature the GNU gettext package, with some subtleties. */ -/* The macro HAVE_LIBINTL has to be set in the makefile. */ -#ifdef HAVE_GETTEXT /* backward compatibility */ -#define HAVE_LIBINTL -#endif - -#ifdef HAVE_LIBINTL -#define HAVE_LOCALE_H -#define HAVE_LIBINTL_H -#ifndef LOCALEDIR -#define LOCALEDIR "/usr/djgpp/share/locale" -#endif -/* Due to a name conflict, gettext is renamed gettext__ in DJGPP */ -#define gettext( str ) gettext__( str ) -#endif - -/* command.com can't pipe stderr into a file; any message would be */ -/* written into the graphics screen. */ -#define HAVE_PRINT_FUNCTION 1 - -#define Print( format, ap ) vfprintf( stdout, (format), (ap) ) - -/* The number of bytes in a int. We use the ANSI header file limits.h */ -/* for determining it since there is no easy way to guess. */ -#include -#if UINT_MAX == 0xFFFF -#define SIZEOF_INT 2 -#elif UINT_MAX == 0xFFFFFFFF -#define SIZEOF_INT 4 -#else -#error "Unsupported number of bytes in `int' type!" -#endif - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/msdos/hugefile.c b/Build/source/libs/freetype/lib/arch/msdos/hugefile.c deleted file mode 100644 index 695daa69def..00000000000 --- a/Build/source/libs/freetype/lib/arch/msdos/hugefile.c +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************* - * - * hugefile.c - * - * File I/O Component (body) for dealing with "huge" objects under - * MS-DOS. Relies on the "default" version, with a small hook. - * - * Written by Antoine Leca based on ideas from Dave Hoo. - * Copyright 1999-2001 by Dave Hoo, Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 file #includes the normal version, to avoid discrepancies - * between versions. It uses only ANSI-mandated "tricks", so - * any ANSI-compliant compiler should be able to compile this file. - * - ******************************************************************/ - -#include "ttconfig.h" -#include "tttypes.h" - -/* Here we include , to have the proper definition of fread */ -#include - -/* Then, we divert the use of fread to our version */ -#undef fread -#define fread(ptr, size, n, stream) huge_fread(ptr, size, n, stream) - - FT_INTERNAL_FUNC( Long ) - huge_fread ( void *ptr, size_t size, Long n, FILE *stream ); - -/* Now, we include the "normal" version of ttfile.c */ -/* The ANSI/ISO standard mandates that the include of */ -/* there have no bad effects. */ -#include "ttfile.c" - -/* Then, we define our implementation of fread that makes use of */ -/* "huge"-allocated memory. */ - -/******************************************************************* - * - * Function : huge_fread - * - * Description : replacement version of fread that handles - * "huge"-allocated memory. - * - * Input : See the reference for the runtime library function fread - * - * Output : See the reference for the runtime library function fread - * - * Notes : - * - ******************************************************************/ - - FT_INTERNAL_DEF( Long ) - huge_fread ( void * ptr, - size_t size, - Long n, - FILE * stream ) - { - char TT_HUGE_PTR * p = (char TT_HUGE_PTR *) ptr; - ULong left = (ULong)n * size; - size_t toRead; - - while ( left ) - { - toRead = (left > 0x8000) ? 0x8000 : left; - if ( (fread)( p, 1, toRead, stream ) != toRead) - return -1; - else - { - left -= (ULong) toRead; - p += toRead; - } - } - return n * size; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/msdos/hugemem.c b/Build/source/libs/freetype/lib/arch/msdos/hugemem.c deleted file mode 100644 index 739160d521c..00000000000 --- a/Build/source/libs/freetype/lib/arch/msdos/hugemem.c +++ /dev/null @@ -1,496 +0,0 @@ -/******************************************************************* - * - * hugemem.c - * - * Memory management component (body) - * for dealing with "huge" objects with 16-bit MS-DOS. - * - * Written by Dave Hoo and Antoine Leca. - * Copyright 1999-2001 by Dave Hoo, Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 - -#include "ttdebug.h" -#include "ttmemory.h" -#include "ttengine.h" - -#ifndef TT_HUGE_PTR -#error "This component needs TT_HUGE_PTR to be #defined." -#endif - -/* ---- Microsoft C compilers support ------------------------------------ */ - -#if defined( M_I86 ) || defined( _M_I86 ) - -#include -#define huge_alloc( size ) _halloc ( size, 1 ) -#define huge_free( block ) _hfree ( block ) - -#endif /* Microsoft compilers */ - -/* ---- Borland C compiler support --------------------------------------- */ - -#ifdef __TURBOC__ - -#include -#define huge_alloc( size ) farmalloc ( size ) -#define huge_free( block ) farfree ( block ) - -#endif - -#if !defined( huge_alloc ) || !defined( huge_free ) -#error "Your compiler is not (yet) supported. Check the source file!" -#endif - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE -#error "This component needs static allocation and is not re-entrant." -#endif - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_memory - - -#ifdef DEBUG_MEMORY - -#include - -#define MAX_TRACKED_BLOCKS 1024 - - struct TMemRec_ - { - void* base; - Long size; - }; - - typedef struct TMemRec_ TMemRec; - - static TMemRec pointers[MAX_TRACKED_BLOCKS + 1]; - - static Int num_alloc; - static Int num_free; - static Int num_realloc; /* counts only `real' reallocations - (i.e., an existing buffer will be resized - to a value larger than zero */ - - static Int fail_alloc; - static Int fail_realloc; - static Int fail_free; - -#else - - /* We need a tracing stack of the calls to big chunks of memory, */ - /* in order to call the matching version of free(). */ - -#define MAX_TRACKED_BIGCHUNKS 16 - - struct TMemRec_ - { - void* base; - Long size; - }; - - typedef struct TMemRec_ TMemRec; - - static TMemRec pointers[MAX_TRACKED_BIGCHUNKS + 1]; - -#endif /* DEBUG_MEMORY */ - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - Long TTMemory_Allocated; - Long TTMemory_MaxAllocated; -#endif - - -/******************************************************************* - * - * Function : TT_Alloc - * - * Description : Allocates memory from the heap buffer. - * - * Input : Size size of the memory to be allocated - * P pointer to a buffer pointer - * - * Output : Error code. - * - * NOTE : The newly allocated block should _always_ be zeroed - * on return. Many parts of the engine rely on this to - * work properly. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Alloc( ULong Size, void** P ) - { - Int i; - - - if ( !P ) - return TT_Err_Invalid_Argument; - /* Also see below for another case of "invalid argument". */ - - if ( Size > 0 ) - { - if ( Size > ( UINT_MAX & ~0xFu ) ) - *P = (void*)huge_alloc( Size ); - else - *P = (void*)malloc( Size ); - if ( !*P ) - return TT_Err_Out_Of_Memory; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated += Size; - TTMemory_MaxAllocated += Size; -#endif - -#ifdef DEBUG_MEMORY - - num_alloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_alloc++; - else - { - pointers[i].base = *P; - pointers[i].size = Size; - } - -#else - - if ( Size > ( UINT_MAX & ~0xFu ) ) - { - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BIGCHUNKS ) - /* We fail badly here. Increase MAX_TRACKED_BIGCHUNKS if needed. */ - return TT_Err_Invalid_Argument; - else - { - pointers[i].base = *P; - pointers[i].size = Size; - } - } - -#endif /* DEBUG_MEMORY */ - - if ( Size > ( UINT_MAX & ~0xFu ) ) - { - char TT_HUGE_PTR * p = (char TT_HUGE_PTR *) *P; - ULong left = (ULong)Size; - size_t toClear; - - while ( left ) - { - toClear = (left > 0xFF00) ? 0xFF00 : left; - MEM_Set( p, 0, toClear ); - left -= (ULong) toClear; - p += toClear; - } - } - else - MEM_Set( *P, 0, Size ); - } - else - *P = NULL; - - return TT_Err_Ok; - } - - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - - -/******************************************************************* - * - * Function : TT_Realloc - * - * Description : Reallocates memory from the heap buffer. - * - * Input : Size new size of the memory to be allocated; - * if zero, TT_Free() will be called - * P pointer to a buffer pointer; if *P == NULL, - * TT_Alloc() will be called - * - * Output : Error code. - * - * NOTES : It's not necessary to zero the memory in case the - * reallocated buffer is larger than before -- the - * application has to take care of this. - * - * If the memory request fails, TT_Free() will be - * called on *P, and TT_Err_Out_Of_Memory returned. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Realloc( ULong Size, void** P ) - { - void* Q; - -#ifdef DEBUG_MEMORY - Int i; -#endif - - - if ( !P ) - return TT_Err_Invalid_Argument; - - if ( !*P ) - return TT_Alloc( Size, P ); - - if ( Size == 0 ) - return TT_Free( P ); - - if ( Size > ( UINT_MAX & ~0xFu ) ) - Q = NULL; /* Do not even try to deal with big chunks of memory. */ - else - Q = (void*)realloc( *P, Size ); - if ( !Q ) - { - TT_Free( *P ); - return TT_Err_Out_Of_Memory; - } - -#ifdef DEBUG_MEMORY - - num_realloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_realloc++; - else - { -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated += Size - pointers[i].size; - if ( Size > pointers[i].size ) - TTMemory_MaxAllocated += Size - pointers[i].size; -#endif - - pointers[i].base = Q; - pointers[i].size = Size; - } -#endif /* DEBUG_MEMORY */ - - *P = Q; - - return TT_Err_Ok; - } - - -#endif /* TT_CONFIG_OPTION_EXTEND_ENGINE */ - - -/******************************************************************* - * - * Function : TT_Free - * - * Description : Releases a previously allocated block of memory. - * - * Input : P pointer to memory block - * - * Output : Always SUCCESS. - * - * Note : The pointer must _always_ be set to NULL by this function. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Free( void** P ) - { - Int i; - Long Size = 0; - - - if ( !P || !*P ) - return TT_Err_Ok; - -#ifdef DEBUG_MEMORY - - num_free++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_free++; - else - { -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated -= pointers[i].size; -#endif - - Size = pointers[i].size; - pointers[i].base = NULL; - pointers[i].size = 0; - } - -#else - - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != *P ) - i++; - - /* If we did not found the pointer, then this is a "small" chunk. */ - - if ( i < MAX_TRACKED_BIGCHUNKS ) - { - Size = pointers[i].size; - pointers[i].base = NULL; - pointers[i].base = NULL; - } - -#endif /* DEBUG_MEMORY */ - - if ( Size > ( UINT_MAX & ~0xFu ) ) - huge_free( *P ); - else - free( *P ); - - *P = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Init - * - * Description : Initializes the memory. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Init( void ) - { -#ifdef DEBUG_MEMORY - Int i; - - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - pointers[i].base = NULL; - pointers[i].size = 0; - } - - num_alloc = 0; - num_realloc = 0; - num_free = 0; - - fail_alloc = 0; - fail_realloc = 0; - fail_free = 0; -#else - Int i; - - for ( i = 0; i < MAX_TRACKED_BIGCHUNKS; i++ ) - { - pointers[i].base = NULL; - pointers[i].size = 0; - } -#endif - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated = 0; - TTMemory_MaxAllocated = 0; -#endif - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Done - * - * Description : Finalizes memory usage. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Done( void ) - { -#ifdef DEBUG_MEMORY - Int i, num_leaked, tot_leaked; - - - num_leaked = 0; - tot_leaked = 0; - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - num_leaked ++; - tot_leaked += pointers[i].size; - } - } - - fprintf( stderr, - "%d memory allocations, of which %d failed\n", - num_alloc, - fail_alloc ); - - fprintf( stderr, - "%d memory reallocations, of which %d failed\n", - num_realloc, - fail_realloc ); - - fprintf( stderr, - "%d memory frees, of which %d failed\n", - num_free, - fail_free ); - - if ( num_leaked > 0 ) - { - fprintf( stderr, - "There are %d leaked memory blocks, totalizing %d bytes\n", - num_leaked, tot_leaked ); - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - fprintf( stderr, - "index: %4d (base: $%08lx, size: %08ld)\n", - i, - (long)pointers[i].base, - pointers[i].size ); - } - } - } - else - fprintf( stderr, "No memory leaks !\n" ); - -#endif /* DEBUG_MEMORY */ - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/msdos/makedep b/Build/source/libs/freetype/lib/arch/msdos/makedep deleted file mode 100755 index 43207cc46b4..00000000000 --- a/Build/source/libs/freetype/lib/arch/msdos/makedep +++ /dev/null @@ -1,39 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for older compilers -# on the MS-DOS platform. -# -# Copyright 1996-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. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various MS-DOS compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.dos - -(cd ../.. - gcc -MM -Iarch/msdos -I. *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.dos - -(cd ../.. - gcc -MM -Iarch/msdos -I. -Iextend extend/*.c | \ - sed -e "s/^\(.*\)\.o:/extend\\\\\1.obj:/" -e "s:/:\\\\:g") >> depend.dos - -(cd ../.. - gcc -MM -Iarch/msdos -I. -Iextend \ - -DTT_HUGE_PTR -Dhuge_alloc -Dhuge_free arch/msdos/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\msdos\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.dos - -# eof diff --git a/Build/source/libs/freetype/lib/arch/os2/Makefile.dm b/Build/source/libs/freetype/lib/arch/os2/Makefile.dm deleted file mode 100644 index 67a00249af4..00000000000 --- a/Build/source/libs/freetype/lib/arch/os2/Makefile.dm +++ /dev/null @@ -1,94 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc under OS/2 -# -# You will need dmake. -# -# Use this file while in the lib directory with the following statement: -# -# dmake -r -f arch/os2/Makefile.dm -# -# -# 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. - -ARCH = arch/os2 -FT_MAKEFILE = $(ARCH)/Makefile.dm -FT_MAKE = dmake -r - -.IMPORT: COMSPEC -SHELL := $(COMSPEC) -SHELLFLAGS := /c -GROUPSHELL := $(SHELL) -GROUPFLAGS := $(SHELLFLAGS) -GROUPSUFFIX := .cmd -SHELLMETAS := *"?<>&| - -CC = gcc - -CFLAGS = -Wall -O2 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -# CFLAGS = -Wall -ansi -O2 -s -I$(ARCH) -I. -Iextend - -TTFILE = $(ARCH)/os2file.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxopen.c \ - extend/ftxgdef.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M libttf.a - - -$(OBJ_S): $(SRC_S) $(SRC_M) - $(CC) $(CFLAGS) -c -o $@ $(SRC_S) - - -libttf.a: $($(LIB_FILES)) - +-del $@ - ar src $@ @$(mktmp $(<:t"\n")\n) - -clean: - -+del $(subst,/,\ $($(LIB_FILES))) - -distclean: clean - -+del dep.end libttf.a - -# depend: $(SRC_S) $(SRC_M) $(SRC_X) -# $(CC) -E -M @$(mktmp $(<:t"\n")\n) > dep.end - -# ifeq (dep.end,$(wildcard dep.end)) -# include dep.end -# endif - -# end of Makefile.dm diff --git a/Build/source/libs/freetype/lib/arch/os2/Makefile.emx b/Build/source/libs/freetype/lib/arch/os2/Makefile.emx deleted file mode 100644 index be5b8143444..00000000000 --- a/Build/source/libs/freetype/lib/arch/os2/Makefile.emx +++ /dev/null @@ -1,102 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc under OS/2. -# -# You will need GNU make. -# -# Use this file while in the lib directory with the following statements: -# -# make -f arch/os2/Makefile.emx depend -# make -f arch/os2/Makefile.emx -# -# -# Copyright 1996-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. - -ARCH = arch/os2 -FT_MAKEFILE = $(ARCH)/Makefile.emx - -CC = gcc - -#CFLAGS = -W -Wall -O0 -g -ansi -pedantic -I$(ARCH) -I. -Iextend - -CFLAGS = -Wall -O3 -fno-inline -fomit-frame-pointer \ - -g -ansi -pedantic -I$(ARCH) -I. -Iextend - -#CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend - -TTFILE = $(ARCH)/os2file.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxopen.c \ - extend/ftxgdef.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - -SRCD_S = $(ARCH)/freetypd.c -OBJD_S = $(SRCD_S:.c=.o) -OBJDS_S = $(OBJD_S) $(OBJS_X) - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M libttf.a - -debugger: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJDS_S libttfd.a - -$(OBJ_S): $(SRC_S) $(SRC_M) -$(OBJD_S): $(SRCD_S) $(SRC_M) - -libttf.a: $($(LIB_FILES)) - -del $@ - ar src $@ $^ - -libttfd.a: $(OBJDS) - -libttfd.a: $(OBJDS) - -del $@ - ar src $@ $^ - -clean: - -del $(subst /,\,$(OBJS_S)) - -del $(subst /,\,$(OBJS_M)) - -distclean: clean - -del dep.end - -del libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.emx diff --git a/Build/source/libs/freetype/lib/arch/os2/Makefile.icc b/Build/source/libs/freetype/lib/arch/os2/Makefile.icc deleted file mode 100644 index 2c387af3ef9..00000000000 --- a/Build/source/libs/freetype/lib/arch/os2/Makefile.icc +++ /dev/null @@ -1,82 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for IBM VisualAge C++ under OS/2. -# -# You will need nmake. -# -# Use this file while in the lib directory with the following statement: -# -# nmake -f arch\os2\Makefile.icc -# -# -# 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. - -ARCH = arch\os2 -FT_MAKEFILE = $(ARCH)\Makefile.icc -FT_MAKE = $(MAKE) -nologo - -CC = icc -CFLAGS = -O+ -Ti- -Tm- -Sa -W3 -Wpro- -Wcnd- -Q+ -Iarch\os2 -I. -Iextend - -# NOTE: Optimizations are discarded, as it seems that Visual Age -# is buggy when producing ttraster.obj. The resulting code -# crashes under some circumstances (performing vertical dropout -# control when rendering smoothed outlines)! - -TTFILE = $(ARCH)\os2file.c -TTMEMORY = .\ttmemory.c -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c \ - extend\ftxcmap.c extend\ftxwidth.c extend\ftxsbit.c \ - extend\ftxgsub.c extend\ftxgpos.c extend\ftxopen.c \ - extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c ttraster.c \ - ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -all: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJS_S)" libttf.lib - -debug: - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJS_M)" libttf.lib - - -$(OBJ_S): $(SRC_S) $(SRC_M) - $(CC) -C $(CFLAGS) /Fo$@ $*.c - -$(OBJS_X): - $(CC) -C $(CFLAGS) /Fo$@ $*.c - -$(ARCH)\os2file.obj: - $(CC) -C $(CFLAGS) /Fo$@ $*.c - -libttf.lib: $(LIB_FILES) - !ilib /nologo /noignorecase /nobackup $@ +$?,, - -clean: - -del *.obj - -del extend\*.obj - -del arch\os2\*.obj - -distclean: clean - -del libttf.lib - -# end of Makefile.icc diff --git a/Build/source/libs/freetype/lib/arch/os2/Makefile.wat b/Build/source/libs/freetype/lib/arch/os2/Makefile.wat deleted file mode 100644 index 6e4e911fe0e..00000000000 --- a/Build/source/libs/freetype/lib/arch/os2/Makefile.wat +++ /dev/null @@ -1,98 +0,0 @@ -# This file is part of the FreeType project. -# -# This builds the Watcom library with Watcom's wcc386 under OS/2. -# -# You'll need Watcom's wmake. -# -# -# Invoke by "wmake -f arch\os2\Makefile.wat" when in the "lib" directory -# -# This will build "freetype\lib\libttf.lib" -# -# -# 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. - -ARCH = arch\os2 -FT_MAKEFILE = $(ARCH)\Makefile.wat -FT_MAKE = wmake -h - - -.EXTENSIONS: -.EXTENSIONS: .lib .obj .c .h -.obj:.;.\extend;.\$(ARCH) -.c:.;.\extend;.\$(ARCH) -.h:.;.\extend;.\$(ARCH) - -CC = wcc386 - -CCFLAGS = /otexanl+ /s /w5 /zq -Iarch\os2 -I. -Iextend - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -TTMUTEX = .\ttmutex.c - -TTFILE_OBJ = ttfile.obj -TTMEMORY_OBJ = ttmemory.obj -TTMUTEX_OBJ = ttmutex.obj - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) -PORT_OBJS = $(TTFILE_OBJ) $(TTMEMORY_OBJ) $(TTMUTEX_OBJ) - -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c & - extend\ftxcmap.c extend\ftxwidth.c extend\ftxsbit.c & - extend\ftxgsub.c extend\ftxgpos.c extend\ftxopen.c & - extend\ftxgdef.c - -OBJS_X = extend\ftxgasp.obj extend\ftxkern.obj extend\ftxpost.obj & - extend\ftxcmap.obj extend\ftxwidth.obj extend\ftxsbit.obj & - extend\ftxgsub.obj extend\ftxgpos.obj extend\ftxopen.obj & - extend\ftxgdef.obj - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c & - ttgload.c ttinterp.c ttload.c ttobjs.c & - ttraster.c ttextend.c $(PORT) - -OBJS_M = ttapi.obj ttcache.obj ttcalc.obj ttcmap.obj & - ttgload.obj ttinterp.obj ttload.obj ttobjs.obj & - ttraster.obj ttextend.obj $(PORT_OBJS) $(OBJS_X) - -SRC_S = freetype.c -OBJ_S = freetype.obj -OBJS_S = $(OBJ_S) $(OBJS_X) - - -.c.obj: - $(CC) $(CCFLAGS) $[* /fo=$[*.obj - -all: .symbolic - $(FT_MAKE) -f $(FT_MAKEFILE) libttf.lib - -debug: .symbolic - $(FT_MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJS_M)" libttf.lib - - -libttf.lib: $(OBJS_M) - wlib -q -n libttf.lib $(OBJS_M) - -# is this correct? Know nothing about wmake and the Watcom compiler... -$(OBJ_S): $(SRC_S) $(SRC_M) - $(CC) $(CCFLAGS) $(SRC_S) /fo=$(OBJ_S) - -clean: .symbolic - @-erase $(OBJS_M) - @-erase *.err - -distclean: .symbolic clean - @-erase libttf.lib - -new: .symbolic - @-wtouch *.c - -# end of Makefile.wat diff --git a/Build/source/libs/freetype/lib/arch/os2/freetype.c b/Build/source/libs/freetype/lib/arch/os2/freetype.c deleted file mode 100644 index 7a115cff672..00000000000 --- a/Build/source/libs/freetype/lib/arch/os2/freetype.c +++ /dev/null @@ -1,32 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single file library component for OS/2 */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "os2file.c" -#include "ttmemory.c" -#include "ttmutex.c" - -/* the extensions are compiled separately, but we need to */ -/* include the file ttextend.c if we want to support them */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/os2/ft_conf.h b/Build/source/libs/freetype/lib/arch/os2/ft_conf.h deleted file mode 100644 index fe3c04ba7a7..00000000000 --- a/Build/source/libs/freetype/lib/arch/os2/ft_conf.h +++ /dev/null @@ -1,229 +0,0 @@ -/******************************************************************* - * - * ft_conf.h (OS/2 version) - * - * High-level interface specification. - * - * Copyright 1996-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 contain the definition of several - * configuration-specific macros. - * - ******************************************************************/ - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - - -/**********************************************************************/ -/* */ -/* We begin by a series of macros that are automatically set by the */ -/* 'configure' script on Unix. They must be set manually on OS/2, */ -/* so here they are : */ -/* */ -/**********************************************************************/ - -#define OS2 - -/* Define to empty if the keyword "const" does not work. */ -/* #undef const */ - -/* The number of bytes in a int. */ -/* OS/2 1.x needs editing here, by the way. ;-) */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the header file. */ -/* Only meaningful if you have . */ -/* #undef HAVE_LOCALE_H */ - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/os2/os2file.c b/Build/source/libs/freetype/lib/arch/os2/os2file.c deleted file mode 100644 index aebb7c1deea..00000000000 --- a/Build/source/libs/freetype/lib/arch/os2/os2file.c +++ /dev/null @@ -1,1236 +0,0 @@ -/******************************************************************* - * - * os2file.c (OS2 version) 2.1 - * - * File I/O Component (body). - * - * Copyright 1996-2001 by Michal Necasek, - * David Turner, Robert Wilhelm, and Werner Lemberg - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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: - * - * This implementation relies on the OS/2 file API. It was provided - * by the PM FreeType DLL author, Michal Necasek. - * - ******************************************************************/ - -#include "ttconfig.h" - -#include /* !Mike! */ - -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttmemory.h" -#include "ttfile.h" /* our prototypes */ - - -/* For now, we don't define additional error messages in the core library */ -/* to report open-on demand errors. Define these errors as standard ones. */ - -#define TT_Err_Could_Not_ReOpen_File TT_Err_Could_Not_Open_File -#define TT_Err_Could_Not_ReSeek_File TT_Err_Could_Not_Open_File - - - /* This definition is mandatory for each file component! */ - FT_EXPORT_FUNC( const TFileFrame ) TT_Null_FileFrame = { NULL, 0, 0 }; - - -/* It has proven useful to do some bounds checks during development phase. */ -/* They should probably be undefined for speed reasons in a later release. */ - -#if 0 -#define CHECK_FRAME( frame, n ) \ - do { \ - if ( frame.cursor + n > frame.address + frame.size ) \ - Panic( "Frame boundary error!\n" ); \ - } while ( 0 ) -#else -#define CHECK_FRAME( frame, n ) \ - do { \ - } while ( 0 ) -#endif - - - /* Because a stream can be flushed, i.e., its file handle can be */ - /* closed to save system resources, we must keep the stream's file */ - /* pathname to be able to re-open it on demand when it is flushed. */ - - struct _TStream_Rec - { - Bool opened; /* is the stream handle opened ? */ - String* name; /* the file's pathname */ - Long position; /* current pos. within the file */ - - HFILE file; /* file handle !Mike! */ - Long base; /* stream base in file */ - Long size; /* stream size in file */ - }; - - typedef struct _TStream_Rec TStream_Rec; - typedef TStream_Rec* PStream_Rec; - - - /* We support embedded TrueType files by allowing them to be */ - /* inside any file, at any location, hence the 'base' argument. */ - /* Note, however, that the current implementation does not allow you */ - /* to specify a 'base' index when opening a file. */ - /* (will come later) */ - /* I still don't know if this will turn out useful... - DavidT */ - -#define STREAM2REC( x ) ( (TStream_Rec*)HANDLE_Val( x ) ) - - static TT_Error Stream_Activate ( PStream_Rec stream ); - static TT_Error Stream_Deactivate( PStream_Rec stream ); - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /**** ****/ - /**** N O N R E E N T R A N T I M P L E M E N T A T I O N ****/ - /**** ****/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - - /* In non-reentrant builds, we allocate a single block where we'll */ - /* place all the frames smaller than FRAME_CACHE_SIZE, rather than */ - /* allocating a new block on each access. Bigger frames will be */ - /* malloced normally in the heap. */ - /* */ - /* See TT_Access_Frame() and TT_Forget_Frame() for details. */ - -#define FRAME_CACHE_SIZE 2048 - - /* The TFile_Component structure holds all the data that was */ - /* previously declared static or global in this component. */ - /* */ - /* It is accessible through the 'engine.file_component' */ - /* variable in re-entrant builds, or directly through the */ - /* static 'files' variable in other builds. */ - - struct _TFile_Component - { - TMutex lock; /* used by the thread-safe build only */ - Byte* frame_cache; /* frame cache */ - PStream_Rec stream; /* current stream */ - TFileFrame frame; /* current frame */ - }; - - typedef struct _TFile_Component TFile_Component; - - static TFile_Component files; - -#define CUR_Stream files.stream -#define CUR_Frame files.frame - -#define STREAM_VARS /* void */ -#define STREAM_VAR /* void */ - -/* The macro CUR_Stream denotes the current input stream. */ -/* Note that for the re-entrant version, the 'stream' name has been */ -/* chosen according to the macro STREAM_ARGS. */ - -/* The macro CUR_Frame denotes the current file frame. */ -/* Note that for the re-entrant version, the 'frame' name has been */ -/* chosen according to the macro FRAME_ARGS. */ - -/* The macro STREAM_VAR is used when calling public functions */ -/* that need an 'optional' stream argument. */ - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - TT_Error error; - - MUTEX_Create( files.lock ); - files.stream = NULL; - ZERO_Frame( files.frame ); - - if ( ALLOC( files.frame_cache, FRAME_CACHE_SIZE ) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - FREE( files.frame_cache ); - MUTEX_Destroy( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream org_stream, - TT_Stream* stream ) - { - MUTEX_Lock( files.lock ); /* lock file mutex */ - - *stream = org_stream; /* copy the stream */ - files.stream = STREAM2REC( org_stream ); /* set current stream */ - - Stream_Activate( files.stream ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream target stream - * - * Output : Error code. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - HANDLE_Set( *stream, NULL ); - MUTEX_Release( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( size <= FRAME_CACHE_SIZE ) - { - /* use the cache */ - CUR_Frame.address = files.frame_cache; - CUR_Frame.size = FRAME_CACHE_SIZE; - } - else - { - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - } - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - if ( size > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - CUR_Frame.address = NULL; - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * `size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function truncates `size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - Long readBytes, requested; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( size <= FRAME_CACHE_SIZE ) - { - /* use the cache */ - CUR_Frame.address = files.frame_cache; - CUR_Frame.size = FRAME_CACHE_SIZE; - } - else - { - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - } - - requested = size; - readBytes = CUR_Stream->size - TT_File_Pos( STREAM_VAR ); - if ( size > readBytes ) - size = readBytes; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - if ( requested > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - CUR_Frame.address = NULL; - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - if ( CUR_Frame.size > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - - ZERO_Frame( CUR_Frame ); - - return TT_Err_Ok; - } - - -#else /* TT_CONFIG_OPTION_THREAD_SAFE */ - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /******** ********/ - /******** R E E N T R A N T I M P L E M E N T A T I O N ********/ - /******** ********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/* a simple macro to access the file component's data */ -#define files ( *((TFile_Component*)engine.file_component) ) - -#define CUR_Stream STREAM2REC( stream ) /* re-entrant macros */ -#define CUR_Frame (*frame) - -#define STREAM_VARS stream, -#define STREAM_VAR stream - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Duplicates a stream for a new usage. - * - * Input : input_stream source stream to duplicate - * copy address of target duplicate stream - * - * Output : error code. - * The target stream is set to NULL in case of failure. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream input_stream, - TT_Stream* copy ) - { - PStream_Rec rec = STREAM2REC( input_stream ); - - return TT_Open_Stream( rec->name, copy ); - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream target stream - * - * Output : - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - return TT_Close_Stream( stream ); - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS int size ) - { - TT_Error error; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - FREE( CUR_Frame.address ); - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * `size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function truncates `size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS int size ) - { - TT_Error error; - Long readBytes; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - - readBytes = CUR_Stream->size - TT_File_Pos( STREAM_VAR ); - if ( size > readBytes ) - size = readBytes; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - FREE( CUR_Frame.address ); - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - FREE( CUR_Frame.address ); - ZERO_Frame( CUR_Frame ); - - return TT_Err_Ok; - } - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /*********** ***********/ - /*********** C O M M O N I M P L E M E N T A T I O N ***********/ - /*********** ***********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/******************************************************************* - * - * Function : Stream_Activate - * - * Description : activates a stream, this will either: - * - open a new file handle if the stream is closed - * - move the stream to the head of the linked list - * - * Input : stream the stream to activate - * - * Output : error condition. - * - * Note : this function is also called with fresh new streams - * created by TT_Open_Stream(). They have their 'size' - * field set to -1. - * - ******************************************************************/ - - static TT_Error Stream_Activate( PStream_Rec stream ) - { - ULONG ulAction; /* !Mike! */ - - if ( !stream->opened ) - { -#if 0 - if ( !(stream->file = fopen( stream->name, "rb" )) ) /* !Mike! */ -#endif - -/* XXX : Strange. GCC/EMX wants an (Byte*) for the file name? */ -#ifdef __EMX__ - - if ( DosOpen( (Byte*)stream->name, &(stream->file), - &ulAction, 0, - 0, OPEN_ACTION_OPEN_IF_EXISTS, - OPEN_SHARE_DENYNONE | OPEN_ACCESS_READONLY, NULL ) ) - return TT_Err_Could_Not_ReOpen_File; - -#else - - if ( DosOpen( stream->name, &(stream->file), - &ulAction, 0, - 0, OPEN_ACTION_OPEN_IF_EXISTS, - OPEN_SHARE_DENYNONE | OPEN_ACCESS_READONLY, NULL ) ) - return TT_Err_Could_Not_ReOpen_File; - -#endif /* __EMX__ */ - - stream->opened = TRUE; - - /* A newly created stream has a size field of -1 */ - if ( stream->size < 0 ) - { -#if 0 - fseek( stream->file, 0, SEEK_END ); /* !Mike! */ - stream->size = ftell( stream->file ); -#endif - - DosSetFilePtr( stream->file, 0, FILE_END, (ULONG *)&(stream->size) ); -#if 0 - fseek( stream->file, 0, SEEK_SET ); -#endif - - DosSetFilePtr( stream->file, 0, FILE_BEGIN, &ulAction ); - } - - /* Reset cursor in file */ - if ( stream->position ) - { -#if 0 /* !Mike! */ - if ( fseek( stream->file, stream->position, SEEK_SET ) != 0 ) -#endif - - if ( DosSetFilePtr( stream->file, stream->position, - FILE_BEGIN, &ulAction ) ) - { - /* error during seek */ -#if 0 - fclose( stream->file ); /* !Mike! */ -#endif - - DosClose( stream->file ); - stream->opened = FALSE; - return TT_Err_Could_Not_ReSeek_File; - } - } - } - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Stream_DeActivate - * - * Description : deactivates a stream, this will: - * - close its file handle if it was opened - * - remove it from the opened list if necessary - * - * Input : stream the stream to deactivate - * - * Output : Error condition - * - * Note : the function is called whenever a stream is deleted - * (_not_ when a stream handle's is closed due to an - * activation). However, the stream record isn't - * destroyed by it... - * - ******************************************************************/ - - static TT_Error Stream_Deactivate( PStream_Rec stream ) - { - if ( stream->opened ) - { - /* Save its current position within the file */ -#if 0 - stream->position = ftell( stream->file ); /* !Mike! */ -#endif - - DosSetFilePtr( stream->file, 0, FILE_CURRENT, - (ULONG *)&(stream->position) ); -#if 0 - fclose( stream->file ); /* !Mike! */ -#endif - - DosClose( stream->file ); - stream->file = 0; - stream->opened = FALSE; - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Stream_Size - * - * Description : Returns the length of a given stream, even if it - * is flushed. - * - * Input : stream the stream - * - * Output : length of stream in bytes. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Stream_Size( TT_Stream stream ) - { - PStream_Rec rec = STREAM2REC( stream ); - - - if ( rec ) - return rec->size; - else - return 0; /* invalid stream - return 0 */ - } - - -/******************************************************************* - * - * Function : TT_Open_Stream - * - * Description : Opens the font file and saves the total file size. - * - * Input : error address of stream's error variable - * (re-entrant build only) - * filepathname pathname of the file to open - * stream address of target TT_Stream structure - * - * Output : SUCCESS on sucess, FAILURE on error. - * The target stream is set to -1 in case of failure. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Open_Stream( const String* filepathname, - TT_Stream* stream ) - { - int len; - TT_Error error; - PStream_Rec stream_rec; - - - if ( ALLOC( *stream, sizeof ( TStream_Rec ) ) ) - return error; - - stream_rec = STREAM2REC( *stream ); - - stream_rec->file = NULLHANDLE; /* !Mike! */ - stream_rec->size = -1; - stream_rec->base = 0; - stream_rec->opened = FALSE; - stream_rec->position = 0; - - len = strlen( filepathname ) + 1; - if ( ALLOC( stream_rec->name, len ) ) - goto Fail; - - strncpy( (String*)stream_rec->name, filepathname, len ); - - error = Stream_Activate( stream_rec ); - if ( error ) - goto Fail_Activate; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - CUR_Stream = stream_rec; -#endif - - return TT_Err_Ok; - - Fail_Activate: - FREE( stream_rec->name ); - Fail: - FREE( stream_rec ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Close_Stream - * - * Description : Closes a stream. - * - * Input : stream address of target TT_Stream structure - * - * Output : SUCCESS (always). - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Close_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - Stream_Deactivate( rec ); - FREE( rec->name ); - FREE( rec ); - - HANDLE_Set( *stream, NULL ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Flush_Stream - * - * Description : Flushes a stream, i.e., closes its file handle. - * - * Input : stream address of target TT_Stream structure - * - * Output : Error code - * - * NOTE : Never flush the current opened stream. This means that - * you should _never_ call this function between a - * TT_Use_Stream() and a TT_Done_Stream()! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Flush_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - if ( rec ) - { - Stream_Deactivate( rec ); - return TT_Err_Ok; - } - else - return TT_Err_Invalid_Argument; - } - - -/******************************************************************* - * - * Function : TT_Seek_File - * - * Description : Seeks the file cursor to a different position. - * - * Input : position new position in file - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Seek_File( STREAM_ARGS long position ) - { - ULONG ibActual; /* !Mike! */ - - - position += CUR_Stream->base; - -#if 0 - if ( fseek( CUR_Stream->file, position, SEEK_SET ) ) /* !Mike! */ -#endif - - if ( DosSetFilePtr( CUR_Stream->file, position, FILE_BEGIN , &ibActual ) ) - return TT_Err_Invalid_File_Offset; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Skip_File - * - * Description : Skips forward the file cursor. - * - * Input : distance number of bytes to skip - * - * Output : see TT_Seek_File() - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Skip_File( STREAM_ARGS long distance ) - { - ULONG ibActual; /* !Mike! */ - - -#if 0 - return TT_Seek_File( STREAM_VARS ftell( CUR_Stream->file ) - - CUR_Stream->base + distance ); /* !Mike! */ -#endif - - DosSetFilePtr( CUR_Stream->file, 0, FILE_CURRENT, &ibActual ); - return TT_Seek_File( STREAM_VARS ibActual - CUR_Stream->base + distance ); - } - - -/******************************************************************* - * - * Function : TT_Read_File - * - * Description : Reads a chunk of the file and copies it to memory. - * - * Input : buffer target buffer - * count length in bytes to read - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_File( STREAM_ARGS void* buffer, long count ) - { - ULONG cbActual; /* !Mike! */ - -#if 0 /* !Mike! */ - if ( fread( buffer, 1, count, CUR_Stream->file ) != (unsigned long)count ) -#endif - - DosRead( CUR_Stream->file, buffer, count, &cbActual ); - if ( cbActual != (unsigned long)count ) - return TT_Err_Invalid_File_Read; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Read_At_File - * - * Description : Reads file at a specified position. - * - * Input : position position to seek to before read - * buffer target buffer - * count number of bytes to read - * - * Output : SUCCESS on success. FAILURE if error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_At_File( STREAM_ARGS long position, - void* buffer, - long count ) - { - TT_Error error; - - - if ( ( error = TT_Seek_File( STREAM_VARS position ) ) || - ( error = TT_Read_File( STREAM_VARS buffer, count ) ) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_File_Pos - * - * Description : Returns current file seek pointer. - * - * Input : none - * - * Output : current file position - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_File_Pos( STREAM_ARG ) - { - ULONG ibActual; /* !Mike! */ - - -#if 0 - return ftell( CUR_Stream->file ) - CUR_Stream->base; /* !Mike! */ -#endif - - DosSetFilePtr( CUR_Stream->file, 0, FILE_CURRENT, &ibActual ); - return ibActual - CUR_Stream->base; - } - - -/******************************************************************* - * - * Function : GET_Byte - * - * Description : Extracts a byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted Byte. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( Byte ) - TT_Get_Byte( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Byte)(*CUR_Frame.cursor++); - } -#endif - -/******************************************************************* - * - * Function : GET_Char - * - * Description : Extracts a signed byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted char. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Char ) - TT_Get_Char( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Char)(*CUR_Frame.cursor++); - } - - -/******************************************************************* - * - * Function : GET_Short - * - * Description : Extracts a short from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted short. - * - ******************************************************************/ - - FT_EXPORT_FUNC( short ) - TT_Get_Short( FRAME_ARG ) - { - short getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((short)CUR_Frame.cursor[0] << 8) | - (short)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } - - -/******************************************************************* - * - * Function : GET_UShort - * - * Description : Extracts an unsigned short from the frame. - * - * Input : None or current frame - * - * Output : Extracted ushort. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( unsigned ) - short TT_Get_UShort( FRAME_ARG ) - { - unsigned short getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((unsigned short)CUR_Frame.cursor[0] << 8) | - (unsigned short)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } -#endif - -/******************************************************************* - * - * Function : GET_Long - * - * Description : Extracts a long from the frame. - * - * Input : None or current frame - * - * Output : Extracted long. - * - ******************************************************************/ - - FT_EXPORT_FUNC( long ) - TT_Get_Long( FRAME_ARG ) - { - long getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ((long)CUR_Frame.cursor[0] << 24) | - ((long)CUR_Frame.cursor[1] << 16) | - ((long)CUR_Frame.cursor[2] << 8 ) | - (long)CUR_Frame.cursor[3]; - - CUR_Frame.cursor += 4; - - return getlong; - } - - -/******************************************************************* - * - * Function : GET_ULong - * - * Description : Extracts an unsigned long from the frame. - * - * Input : None - * - * Output : Extracted ulong. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( unsigned ) - long TT_Get_ULong( FRAME_ARG ) - { - unsigned long getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ( ((unsigned long)CUR_Frame.cursor[0] << 24) | - ((unsigned long)CUR_Frame.cursor[1] << 16) | - ((unsigned long)CUR_Frame.cursor[2] << 8 ) | - (unsigned long)CUR_Frame.cursor[3] ); - - CUR_Frame.cursor += 4; - - return getlong; - } -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/unix/.cvsignore b/Build/source/libs/freetype/lib/arch/unix/.cvsignore deleted file mode 100644 index f3c7a7c5da6..00000000000 --- a/Build/source/libs/freetype/lib/arch/unix/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/Build/source/libs/freetype/lib/arch/unix/.cvsignore.delete b/Build/source/libs/freetype/lib/arch/unix/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Build/source/libs/freetype/lib/arch/unix/Makefile.in b/Build/source/libs/freetype/lib/arch/unix/Makefile.in deleted file mode 100644 index 0875a7a8fda..00000000000 --- a/Build/source/libs/freetype/lib/arch/unix/Makefile.in +++ /dev/null @@ -1,256 +0,0 @@ -# This file is part of the FreeType project. -# -# lib/arch/unix/Makefile.in -# -# -# 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. - -ARCH = arch/unix -FT_MAKEFILE = $(ARCH)/Makefile - -RM = @RM@ -RMF = @RM@ -f -RMDIR = @RMDIR@ -LN_S = @LN_S@ - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -VPATH = @srcdir@/../.. -srcdir = @srcdir@/../.. - -top_builddir=.. - -CC = @CC@ -CPP = @CPP@ - -LIBTOOL = $(top_builddir)/libtool -MKINSTALLDIRS = $(srcdir)/../mkinstalldirs - -version_info = @version_info@ - -include $(top_builddir)/MakeSub - -############### PORTABILITY COMPONENTS ######################## - -# location of memory component -MEMSRC = ttmemory.c - -# location of file component -FILESRC = @TT_FILE_COMPONENT@ - -# location of mutex component -MUTEXSRC = ttmutex.c - -# location of default extensions -FTEXTDIR = $(srcdir)/extend - - -# default extensions sources -EXTSRC = $(FTEXTDIR)/ftxkern.c \ - $(FTEXTDIR)/ftxgasp.c \ - $(FTEXTDIR)/ftxpost.c \ - $(FTEXTDIR)/ftxcmap.c \ - $(FTEXTDIR)/ftxsbit.c \ - $(FTEXTDIR)/ftxwidth.c \ - $(FTEXTDIR)/ftxerr18.c \ - $(FTEXTDIR)/ftxgsub.c \ - $(FTEXTDIR)/ftxgpos.c \ - $(FTEXTDIR)/ftxgdef.c \ - $(FTEXTDIR)/ftxopen.c - -EXTOBJ = ftxkern.lo \ - ftxgasp.lo \ - ftxpost.lo \ - ftxcmap.lo \ - ftxsbit.lo \ - ftxwidth.lo \ - ftxerr18.lo \ - ftxgsub.lo \ - ftxgpos.lo \ - ftxgdef.lo \ - ftxopen.lo - -# all engine sources -SRC_M = $(srcdir)/ttapi.c \ - $(srcdir)/ttcache.c \ - $(srcdir)/ttcalc.c \ - $(srcdir)/ttcmap.c \ - $(srcdir)/ttdebug.c \ - $(srcdir)/ttextend.c \ - $(srcdir)/ttgload.c \ - $(srcdir)/ttinterp.c \ - $(srcdir)/ttload.c \ - $(srcdir)/ttobjs.c \ - $(srcdir)/ttraster.c \ - $(srcdir)/$(FILESRC) \ - $(srcdir)/$(MEMSRC) \ - $(srcdir)/$(MUTEXSRC) -SRC_S = $(srcdir)/$(ARCH)/freetype.c - -# all header files -HEADERS = $(srcdir)/freetype.h \ - $(srcdir)/fterrid.h \ - $(srcdir)/ftnameid.h \ - $(FTEXTDIR)/ftxkern.h \ - $(FTEXTDIR)/ftxgasp.h \ - $(FTEXTDIR)/ftxcmap.h \ - $(FTEXTDIR)/ftxsbit.h \ - $(FTEXTDIR)/ftxpost.h \ - $(FTEXTDIR)/ftxwidth.h \ - $(FTEXTDIR)/ftxerr18.h \ - $(FTEXTDIR)/ftxgsub.h \ - $(FTEXTDIR)/ftxgpos.h \ - $(FTEXTDIR)/ftxgdef.h \ - $(FTEXTDIR)/ftxopen.h - -# all engine objects -OBJ_M = ttapi.lo \ - ttcache.lo \ - ttcalc.lo \ - ttcmap.lo \ - ttdebug.lo \ - ttextend.lo \ - ttgload.lo \ - ttinterp.lo \ - ttload.lo \ - ttobjs.lo \ - ttraster.lo \ - file.lo \ - memory.lo \ - mutex.lo \ - $(EXTOBJ) -OBJ_S = freetype.lo $(EXTOBJ) - - -# include paths -INCLUDES = -I. -I$(top_builddir) -I$(srcdir) -I$(FTEXTDIR) - -# C flags -CFLAGS = @CFLAGS@ @XX_CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -FT_CFLAGS = $(CFLAGS) $(INCLUDES) - -# linker flags -FT_LIBS = @LIBS@ - -# i18n stuff -LOCALEDIR = @LOCALEDIR@ - - -all: do_link - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJ_S)" libttf.la - -debug: do_link - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES="$(OBJ_M)" libttf.la - - -do_link: - -$(RMF) memory.c file.c mutex.c - $(LN_S) $(srcdir)/$(MEMSRC) memory.c - $(LN_S) $(srcdir)/$(FILESRC) file.c - $(LN_S) $(srcdir)/$(MUTEXSRC) mutex.c - - -.SUFFIXES: .lo -.c.lo: - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $< - -ftxkern.lo: $(FTEXTDIR)/ftxkern.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxkern.c - -ftxgasp.lo: $(FTEXTDIR)/ftxgasp.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxgasp.c - -ftxpost.lo: $(FTEXTDIR)/ftxpost.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxpost.c - -ftxcmap.lo: $(FTEXTDIR)/ftxcmap.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxcmap.c - -ftxsbit.lo: $(FTEXTDIR)/ftxsbit.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxsbit.c - -ftxwidth.lo: $(FTEXTDIR)/ftxwidth.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxwidth.c - -ftxerr18.lo: $(FTEXTDIR)/ftxerr18.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) \ - -DLOCALEDIR='"$(LOCALEDIR)"' \ - $(FTEXTDIR)/ftxerr18.c - -ftxgsub.lo: $(FTEXTDIR)/ftxgsub.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxgsub.c - -ftxgpos.lo: $(FTEXTDIR)/ftxgpos.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxgpos.c - -ftxgdef.lo: $(FTEXTDIR)/ftxgdef.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxgdef.c - -ftxopen.lo: $(FTEXTDIR)/ftxopen.c - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) $(FTEXTDIR)/ftxopen.c - -freetype.lo: $(SRC_S) $(SRC_M) - $(LIBTOOL) --mode=compile $(CC) -c $(FT_CFLAGS) \ - -DLOCALEDIR='"$(LOCALEDIR)"' \ - -DTT_MAKE_OPTION_SINGLE_OBJECT \ - $(SRC_S) - -libttf.la: $(LIB_FILES) - $(LIBTOOL) --mode=link $(CC) -o libttf.la $(LIB_FILES) \ - -rpath $(libdir) \ - -version-info $(version_info) $(FT_LIBS) - -install: libttf.la - $(MKINSTALLDIRS) $(libdir) $(includedir)/freetype - $(LIBTOOL) --mode=install $(INSTALL) libttf.la $(libdir) - -for P in $(HEADERS) ; do \ - $(INSTALL_DATA) $$P $(includedir)/freetype ; \ - done - -uninstall: - -$(LIBTOOL) --mode=uninstall $(RM) $(libdir)/libttf.la - -$(RMF) $(includedir)/freetype/* - -$(RMDIR) $(includedir)/freetype - -clean: - -$(RMF) $(OBJ_S) $(OBJ_M) *.o - -distclean: clean - -$(RMF) file.c memory.c mutex.c - -$(RMF) libttf.la - -$(RMF) *.orig *~ core *.core - -$(RMF) $(ARCH)/Makefile - -$(RMF) .libs/* - -$(RMDIR) .libs - -depend: do_link - (echo '/^#.* PUT NO STUFF BELOW/,$$d' ; echo w ; echo q) | \ - ed - $(ARCH)/Makefile - echo '# Dependencies generated by make depend: PUT NO STUFF BELOW' \ - >> $(ARCH)/Makefile - for file in $(SRC_S) $(SRC_M) $(EXTSRC) ; do \ - $(CPP) $(CPPFLAGS) $(INCLUDES) $$file | \ - sed -n -e 's|^# [1-9][0-9]* "\([^/].*\.h\)".*|\1|p' \ - -e 's|^# [1-9][0-9]* "\($(srcdir)/.*\.h\)".*|\1|p' | \ - sed -e 's|/\./|.|g' -e "s/^/`basename $$file .c`.lo: /" ; \ - done | \ - sort -u | \ - awk '{ if (LINE == 1) \ - { line = last = $$1 } \ - else if ($$1 != last) \ - { print line ; line = last = $$1 } \ - line = line " " $$2 } \ - END { print line }' >> $(ARCH)/Makefile - -.PHONY: all debug do_link install uninstall clean distclean depend - -# Dependencies generated by make depend: PUT NO STUFF BELOW diff --git a/Build/source/libs/freetype/lib/arch/unix/freetype.c b/Build/source/libs/freetype/lib/arch/unix/freetype.c deleted file mode 100644 index 9a4860dbd2c..00000000000 --- a/Build/source/libs/freetype/lib/arch/unix/freetype.c +++ /dev/null @@ -1,27 +0,0 @@ -/* This file is part of the FreeType project */ - -/* Single object library component for Unix */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* The Makefile creates proper links to following three files */ - -#include "file.c" -#include "memory.c" -#include "mutex.c" - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/unix/ttmmap.c b/Build/source/libs/freetype/lib/arch/unix/ttmmap.c deleted file mode 100644 index 38896bd310d..00000000000 --- a/Build/source/libs/freetype/lib/arch/unix/ttmmap.c +++ /dev/null @@ -1,1028 +0,0 @@ -/******************************************************************* - * - * ttmmap.c 2.0 - * - * Memory-Mapped file component ( replaces ttfile.c ). - * - * 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. - * - * Changes between 2.0 and 1.3 : - * - * - adopted new design/separation introduced in ttfile.c 2.0 - * - ******************************************************************/ - -#include "ttconfig.h" - -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#include -#ifndef MAP_FILE -#define MAP_FILE 0x00 -#endif - -/* - * The prototype for munmap() is not provided on SunOS. This needs to - * have a check added later to see if the GNU C library is being used. - * If so, then this prototype is not needed. - */ -#if defined(__sun__) && !defined(SVR4) && !defined(__SVR4) - extern int munmap( caddr_t addr, int len ); -#endif - -#include -#ifdef HAVE_FCNTL_H -#include -#endif - - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttmemory.h" -#include "ttfile.h" /* our prototypes */ - - /* This definition is mandatory for each file component! */ - FT_EXPORT_FUNC( const TFileFrame ) - TT_Null_FileFrame = { NULL, 0, 0 }; - - /* It has proven useful to do some bounds checks during */ - /* development phase. Define DEBUG_FILE when compiling */ - /* this component to enable them. */ - -#ifdef DEBUG_FILE -#define CHECK_FRAME( frame, n ) \ - do { \ - if ( frame.cursor + n > frame.address + frame.size ) \ - Panic( "Frame boundary error!\n" ); \ - } while ( 0 ) -#else -#define CHECK_FRAME( frame, n ) \ - do { \ - } while( 0 ) -#endif - - struct _TFileMap - { - String* base; /* base address of mapped file */ - Int refcount; /* reference count for mmaped region */ - Long size; /* stream size in file */ - Long offset; /* offset in file */ - }; - - typedef struct _TFileMap TFileMap; - -#define MAP_Address( map ) (Byte*)( (map)->base + (map)->offset ) - - /* The stream record structure */ - typedef struct _TStream_Rec - { - TFileMap* map; /* mapped file description */ - Long pos ; /* cursor in mapped file */ - } TStream_Rec; - - typedef TStream_Rec* PStream_Rec; - -#define STREAM2REC( x ) ( (TStream_Rec*)HANDLE_Val( x ) ) - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /**** ****/ - /**** N O N R E E N T R A N T I M P L E M E N T A T I O N ****/ - /**** ****/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - - /* The TFile_Component structure holds all the data that was */ - /* previously declared static or global in this component. */ - /* */ - /* It is accessible through the 'engine.file_component' */ - /* variable in re-entrant builds, or directly through the */ - /* static 'files' variable in other builds. */ - - struct _TFile_Component - { - TMutex lock; /* used by the thread-safe build only */ - PStream_Rec stream; /* current stream */ - TFileFrame frame; /* current frame */ - }; - - typedef struct _TFile_Component TFile_Component; - -/* The macro CUR_Stream denotes the current input stream */ -/* Note that for the re-entrant version, the 'stream' name has been */ -/* chosen according to the macro STREAM_ARGS. */ - -/* The macro CUR_Frame denotes the current file frame */ -/* Note that for the re-entrant version, the 'frame' name has been */ -/* chosen according to the macro FRAME_ARGS. */ - -/* The macro STREAM_VAR is used when calling public functions */ -/* that need an 'optional' stream argument. */ - -#define CUR_Stream files.stream /* thread-safe macros */ -#define CUR_Frame files.frame - -#define STREAM_VARS /* void */ -#define STREAM_VAR /* void */ - - /* the 'files' variable is only defined in non-reentrant builds */ - - static TFile_Component files; - - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - MUTEX_Create( files.lock ); - files.stream = NULL; - ZERO_Frame( files.frame ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - MUTEX_Destroy( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream org_stream, - TT_Stream* stream ) - { - MUTEX_Lock( files.lock ); - *stream = org_stream; - files.stream = STREAM2REC( org_stream ); /* set current stream */ - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream - * - * Output : Error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - HANDLE_Set( *stream, NULL ); - MUTEX_Release( files.lock ); - - return TT_Err_Ok; - } - -#else /* TT_CONFIG_OPTION_THREAD_SAFE */ - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /******** ********/ - /******** R E E N T R A N T I M P L E M E N T A T I O N ********/ - /******** ********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -#define CUR_Stream STREAM2REC( stream ) /* re-entrant macros */ -#define CUR_Frame (*frame) - -#define STREAM_VARS stream, -#define STREAM_VAR stream - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - engine->file_component = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code. The output stream is set to NULL in - * case of Failure. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream input_stream, - TT_Stream* copy ) - { - TT_Error error; - PStream_Rec stream_rec; - PStream_Rec copy_rec; - - - stream_rec = STREAM2REC( input_stream ); - - if ( ALLOC( copy_rec, sizeof ( TStream_Rec ) ) ) - goto Fail; - - HANDLE_Set( *copy, copy_rec ); - - copy_rec->map = stream_rec->map; - copy_rec->map->refcount++; - copy_rec->pos = 0; - - return TT_Err_Ok; - - Fail: - HANDLE_Set( *copy, NULL ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream - * - * Output : error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - return TT_Close_Stream( stream ); - } - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /*********** ***********/ - /*********** C O M M O N I M P L E M E N T A T I O N ***********/ - /*********** ***********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/******************************************************************* - * - * Function : AllocateMap - * - * Description : Allocates a new map from the table. - * - * Output : Pointer to new stream rec. NULL in case of failure. - * - ******************************************************************/ - - static TFileMap* - Allocate_Map( void ) - { - TFileMap* result; - - - if ( MEM_Alloc( result, sizeof ( TFileMap ) ) ) - return NULL; - - result->refcount = 1; - return result; - } - - -/******************************************************************* - * - * Function : ReleaseMap - * - * Description : Releases a used map to the table if reference i - * counter reaches zero. - * - * Input : map - * - * Output : None. - * - * Note : Called by TT_Close_File() - * - ******************************************************************/ - - static void - Release_Map ( TFileMap* map ) - { - map->refcount--; - if ( map->refcount <= 0 ) - { - munmap ( (void*)map->base, map->size ); - FREE( map ); - } - } - - -/******************************************************************* - * - * Function : TT_Open_Stream - * - * Description : Opens the font file and saves the total file size. - * - * Input : error address of stream's error variable - * (re-entrant build only). - * filepathname pathname of the file to open - * stream address of target TT_Stream structure - * - * Output : SUCCESS on success, FAILURE on error. - * The target stream is set to -1 in case of failure. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Open_Stream( const String* filepathname, - TT_Stream* stream ) - { - TT_Error error; - Int file; - PStream_Rec stream_rec; - TFileMap* map; - struct stat stat_buf; - - - if ( ALLOC( *stream, sizeof ( TStream_Rec ) ) ) - return error; - - map = Allocate_Map(); - if ( !map ) - { - error = TT_Err_Out_Of_Memory; - goto Memory_Fail; - } - - stream_rec = STREAM2REC( *stream ); - - file = open( (String*)filepathname, O_RDONLY ); - if ( file < 0 ) - goto File_Fail; - - if ( fstat( file, &stat_buf ) < 0 ) - goto Map_Fail; - - map->offset = 0; - map->size = stat_buf.st_size + map->offset; - map->base = mmap( NULL, - map->size, - PROT_READ, - MAP_FILE | MAP_PRIVATE, - file, - 0 ); - - if ( (long)map->base == -1 ) - goto Map_Fail; - - close( file ); - - stream_rec->map = map; - stream_rec->pos = 0; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - CUR_Stream = stream_rec; -#endif - - return TT_Err_Ok; - - Map_Fail: - close( file ); - - File_Fail: - error = TT_Err_Could_Not_Open_File; - FREE( map ); - - Memory_Fail: - FREE( *stream ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Close_Stream - * - * Description : Closes a stream. - * - * Input : stream - * - * Output : SUCCESS (always) - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Close_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - Release_Map( rec->map ); - FREE( rec ); - - HANDLE_Set( *stream, NULL ); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Flush_Stream - * - * Description : Flushes a stream, i.e., closes its file handle. - * - * Input : stream address of target TT_Stream structure - * - * Output : Error code - * - * NOTE : Never flush the current opened stream. This means that - * you should _never_ call this function between a - * TT_Use_Stream() and a TT_Done_Stream()! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Flush_Stream( TT_Stream* stream ) - { - /* XXX - DUMMY IMPLEMENTATION */ - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Stream_Size - * - * Description : Returns the length of a given stream, even if it - * is flushed. - * - * Input : stream the stream - * - * Output : Length of stream in bytes. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Stream_Size( TT_Stream stream ) - { - PStream_Rec rec = STREAM2REC( stream ); - - - if ( rec ) - return rec->map->size; - else - return 0; /* invalid stream - return 0 */ - } - - -/******************************************************************* - * - * Function : TT_Seek_File - * - * Description : Seeks the file cursor to a different position. - * - * Input : position new position in file - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Seek_File( STREAM_ARGS Long position ) - { - if ( position > CUR_Stream->map->size ) - return TT_Err_Invalid_File_Offset; - - CUR_Stream->pos = position; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Skip_File - * - * Description : Skips forward the file cursor. - * - * Input : distance number of bytes to skip - * - * Output : see TT_Seek_File - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Skip_File( STREAM_ARGS Long distance ) - { - return TT_Seek_File( STREAM_VARS CUR_Stream->pos + distance ); - } - - -/******************************************************************* - * - * Function : TT_Read_File - * - * Description : Reads a chunk of the file and copies it to memory. - * - * Input : buffer target buffer - * count length in bytes to read - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_File( STREAM_ARGS void* buffer, Long count ) - { - if ( CUR_Stream->pos + count > CUR_Stream->map->size ) - return TT_Err_Invalid_File_Read; - - MEM_Copy( buffer, - MAP_Address( CUR_Stream->map ) + CUR_Stream->pos, count ); - CUR_Stream->pos += count; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Read_At_File - * - * Description : Reads file at a specified position. - * - * Input : position position to seek to before read - * buffer target buffer - * count number of bytes to read - * - * Output : SUCCESS on success. FAILURE if error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_At_File( STREAM_ARGS Long position, - void* buffer, - Long count ) - { - TT_Error error; - - - if ( (error = TT_Seek_File( STREAM_VARS position )) || - (error = TT_Read_File( STREAM_VARS buffer, count )) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_File_Pos - * - * Description : Returns current file seek pointer. - * - * Input : none - * - * Output : current file position - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_File_Pos( STREAM_ARG ) - { - return CUR_Stream->pos; - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : Error code - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that aSize is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( CUR_Stream->pos + size > CUR_Stream->map->size ) - return TT_Err_Invalid_Frame_Access; - - CUR_Frame.size = size; - CUR_Frame.address = MAP_Address( CUR_Stream->map ) + CUR_Stream->pos; - CUR_Frame.cursor = CUR_Frame.address; - - CUR_Stream->pos += size; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx() - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : Error code - * - * Notes: The function truncates 'size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that aSize is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. The 'overflow' is set to zero. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - Long readBytes; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - readBytes = CUR_Stream->map->size - CUR_Stream->pos; - if ( size > readBytes ) - { - /* There is overflow, we allocate a new block then */ - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - - CUR_Frame.size = size; - - /* copy the valid part */ - MEM_Copy( CUR_Frame.address, - MAP_Address( CUR_Stream->map ) + CUR_Stream->pos, - readBytes ); - } - else - { - CUR_Frame.size = size; - CUR_Frame.address = MAP_Address( CUR_Stream->map ) + CUR_Stream->pos; - } - - CUR_Frame.cursor = CUR_Frame.address; - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( STREAM_ARGS FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - /* If we were using a duplicate in case of overflow, free it now */ - if ( CUR_Frame.address < (Byte*)CUR_Stream->map->base || - CUR_Frame.address >= (Byte*)CUR_Stream->map->base + - CUR_Stream->map->size ) - FREE( CUR_Frame.address ); - - ZERO_Frame( CUR_Frame ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : GET_Byte - * - * Description : Extracts a byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted Byte - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( Byte ) - TT_Get_Byte( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Byte)(*CUR_Frame.cursor++); - } - -#endif - - -/******************************************************************* - * - * Function : GET_Char - * - * Description : Extracts a signed byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted char - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Char ) - TT_Get_Char( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Char)(*CUR_Frame.cursor++); - } - - -/******************************************************************* - * - * Function : GET_Short - * - * Description : Extracts a short from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted short - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Short ) - TT_Get_Short( FRAME_ARG ) - { - Short getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((Short)CUR_Frame.cursor[0] << 8) | - (Short)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } - - -/******************************************************************* - * - * Function : GET_UShort - * - * Description : Extracts an unsigned short from the frame. - * - * Input : None or current frame - * - * Output : Extracted ushort - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( UShort ) - TT_Get_UShort( FRAME_ARG ) - { - UShort getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = ((UShort)CUR_Frame.cursor[0] << 8) | - (UShort)CUR_Frame.cursor[1]; - - CUR_Frame.cursor += 2; - - return getshort; - } - -#endif - - -/******************************************************************* - * - * Function : GET_Long - * - * Description : Extracts a long from the frame. - * - * Input : None or current frame - * - * Output : Extracted long - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Get_Long( FRAME_ARG ) - { - Long getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ((Long)CUR_Frame.cursor[0] << 24) | - ((Long)CUR_Frame.cursor[1] << 16) | - ((Long)CUR_Frame.cursor[2] << 8 ) | - (Long)CUR_Frame.cursor[3]; - - CUR_Frame.cursor += 4; - - return getlong; - } - - -/******************************************************************* - * - * Function : GET_ULong - * - * Description : Extracts an unsigned long from the frame. - * - * Input : None - * - * Output : Extracted ulong - * - * NOTES : We consider that the programmer is intelligent enough - * not to try to get a byte that is out of the frame. Hence, - * we provide no bounds check here. (A misbehaving client - * could easily page fault using this call.) - * - ******************************************************************/ - -#if 0 - - FT_EXPORT_FUNC( ULong ) - TT_Get_ULong( FRAME_ARG ) - { - ULong getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ( ((ULong)CUR_Frame.cursor[0] << 24) | - ((ULong)CUR_Frame.cursor[1] << 16) | - ((ULong)CUR_Frame.cursor[2] << 8 ) | - (ULong)CUR_Frame.cursor[3] ); - - CUR_Frame.cursor += 4; - - return getlong; - } - -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/vms/README b/Build/source/libs/freetype/lib/arch/vms/README deleted file mode 100644 index db7f684f73f..00000000000 --- a/Build/source/libs/freetype/lib/arch/vms/README +++ /dev/null @@ -1,20 +0,0 @@ -This directory contains two files for compiling the FreeType library under -VMS: - - ft_conf.h the configuration file for the FreeType library - descrip.mms a makefile to be used with either MMS or MMK - -The files are such designed that after unpacking of freetype-1.5 one can -give the command - - MMS/DESCR=[.LIB.ARCH.VMS] - -to build the libraries. (Of course, for MMK use `MMK' on the command line -instead of `MMS'.) The makefile contains a `clean' target, but no `install' -target since I'm note sure where to install the library and the include -files. - -I did NOT do the test programs but I tested it with my own programs. - - - Jouk Jansen diff --git a/Build/source/libs/freetype/lib/arch/vms/descrip.mms b/Build/source/libs/freetype/lib/arch/vms/descrip.mms deleted file mode 100644 index 14dac2b8907..00000000000 --- a/Build/source/libs/freetype/lib/arch/vms/descrip.mms +++ /dev/null @@ -1,163 +0,0 @@ -# DESCRIP.MMS: Make file for VMS using MMS or MMK -# -# -# 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. -# Created by Jouk Jansen (joukj@hrem.stm.tudelft.nl) - -ARCH = arch.unix - -CC = cc - -############### PORTABILITY COMPONENTS ######################## - -# location of memory component -MEMSRC = ttmemory.c - -# location of file component -FILESRC = ttfile.c - -# location of mutex component -MUTEXSRC = ttmutex.c - -# location of default extensions -FTEXTDIR = [.lib.extend] - -# default extensions sources -EXTSRC = $(FTEXTDIR)ftxkern.c \ - $(FTEXTDIR)ftxgasp.c \ - $(FTEXTDIR)ftxpost.c \ - $(FTEXTDIR)ftxcmap.c \ - $(FTEXTDIR)ftxsbit.c \ - $(FTEXTDIR)ftxwidth.c \ - $(FTEXTDIR)ftxerr18.c \ - $(FTEXTDIR)ftxgsub.c \ - $(FTEXTDIR)ftxgpos.c \ - $(FTEXTDIR)ftxopen.c \ - $(FTEXTDIR)ftxgdef.c - -EXTOBJ = [.lib]ftxkern.obj, \ - [.lib]ftxgasp.obj, \ - [.lib]ftxpost.obj, \ - [.lib]ftxcmap.obj, \ - [.lib]ftxsbit.obj, \ - [.lib]ftxwidth.obj, \ - [.lib]ftxerr18.obj, \ - [.lib]ftxgsub.obj, \ - [.lib]ftxgpos.obj, \ - [.lib]ftxopen.obj, \ - [.lib]ftxgdef.obj - -# all engine sources -SRC_M = [.lib]ttapi.c \ - [.lib]ttcache.c \ - [.lib]ttcalc.c \ - [.lib]ttcmap.c \ - [.lib]ttdebug.c \ - [.lib]ttextend.c \ - [.lib]ttgload.c \ - [.lib]ttinterp.c \ - [.lib]ttload.c \ - [.lib]ttobjs.c \ - [.lib]ttraster.c \ - [.lib]$(FILESRC) \ - [.lib]$(MEMSRC) \ - [.lib]$(MUTEXSRC) -SRC_S = [.lib.$(ARCH)]freetype.c - -# all header files with path -HEADERS = [.lib]freetype.h \ - [.lib]fterrid.h \ - [.lib]ftnameid.h \ - $(FTEXTDIR)ftxkern.h \ - $(FTEXTDIR)ftxgasp.h \ - $(FTEXTDIR)ftxcmap.h \ - $(FTEXTDIR)ftxsbit.h \ - $(FTEXTDIR)ftxpost.h \ - $(FTEXTDIR)ftxwidth.h \ - $(FTEXTDIR)ftxerr18.h \ - $(FTEXTDIR)ftxgsub.h \ - $(FTEXTDIR)ftxgpos.h \ - $(FTEXTDIR)ftxgdef.h \ - $(FTEXTDIR)ftxopen.h - -# all engine objects -OBJ_M = [.lib]ttapi.obj, \ - [.lib]ttcache.obj, \ - [.lib]ttcalc.obj, \ - [.lib]ttcmap.obj, \ - [.lib]ttdebug.obj, \ - [.lib]ttextend.obj, \ - [.lib]ttgload.obj, \ - [.lib]ttinterp.obj, \ - [.lib]ttload.obj, \ - [.lib]ttobjs.obj, \ - [.lib]ttraster.obj, \ - [.lib]file.obj, \ - [.lib]memory.obj, \ - [.lib]mutex.obj, \ - $(EXTOBJ) -OBJ_S = [.lib]freetype.obj - - -# include paths -INCLUDES = /include=([.lib],[],$(FTEXTDIR)) - -# C flags -CFLAGS = $(INCLUDES)/obj=[.lib] - -all : do_link [.lib]libttf.olb - library/compress [.lib]libttf.olb - -do_link : - if f$search( "[.lib]memory.c" ) .nes. "" then set file/remove [.lib]memory.c; - if f$search( "[.lib]file.c" ) .nes. "" then set file/remove [.lib]file.c; - if f$search( "[.lib]mutex.c" ) .nes. "" then set file/remove [.lib]mutex.c; - if f$search( "[.lib]ft_conf.h" ) .nes. "" then set file/remove [.lib]ft_conf.h; - set file/enter=[.lib]memory.c [.lib]$(MEMSRC) - set file/enter=[.lib]file.c [.lib]$(FILESRC) - set file/enter=[.lib]mutex.c [.lib]$(MUTEXSRC) - set file/enter=[.lib]ft_conf.h [.lib.arch.vms]ft_conf.h - -[.lib]ftxkern.obj : $(FTEXTDIR)ftxkern.c - -[.lib]ftxgasp.obj : $(FTEXTDIR)ftxgasp.c - -[.lib]ftxpost.obj : $(FTEXTDIR)ftxpost.c - -[.lib]ftxcmap.obj : $(FTEXTDIR)ftxcmap.c - -[.lib]ftxsbit.obj : $(FTEXTDIR)ftxsbit.c - -[.lib]ftxwidth.obj : $(FTEXTDIR)ftxwidth.c - -[.lib]ftxerr18.obj : $(FTEXTDIR)ftxerr18.c - -[.lib]ftxgsub.obj : $(FTEXTDIR)ftxgsub.c - -[.lib]ftxgpos.obj : $(FTEXTDIR)ftxgpos.c - -[.lib]ftxgdef.obj : $(FTEXTDIR)ftxgdef.c - -[.lib]ftxopen.obj : $(FTEXTDIR)ftxopen.c - -[.lib]freetype.obj : $(SRC_S) $(SRC_M) - - -[.lib]libttf.olb : $(OBJ_M) - library/create [.lib]libttf.olb $(OBJ_M) - - -clean : - delete [.lib]*.obj;* - delete [.lib]*.olb;* - if f$search( "[.lib]memory.c" ) .nes. "" then set file/remove [.lib]memory.c; - if f$search( "[.lib]file.c" ) .nes. "" then set file/remove [.lib]file.c; - if f$search( "[.lib]mutex.c" ) .nes. "" then set file/remove [.lib]mutex.c; - if f$search( "[.lib]ft_conf.h" ) .nes. "" then set file/remove [.lib]ft_conf.h; diff --git a/Build/source/libs/freetype/lib/arch/vms/ft_conf.h b/Build/source/libs/freetype/lib/arch/vms/ft_conf.h deleted file mode 100644 index bd4e1255046..00000000000 --- a/Build/source/libs/freetype/lib/arch/vms/ft_conf.h +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for VMS using MMS or MMK - * - * - * Copyright 1996-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. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY 1 - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE 1 - -/* Define if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define if you have the header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the header file. */ -/* Only meaningful if you have . */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - -#endif /* FT_CONF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/win16/Makefile.BC b/Build/source/libs/freetype/lib/arch/win16/Makefile.BC deleted file mode 100644 index 96633031f8b..00000000000 --- a/Build/source/libs/freetype/lib/arch/win16/Makefile.BC +++ /dev/null @@ -1,190 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Borland C++ for 16-bit Windows, large model. -# Due to size constraints, it does not try to pack all modules into one. -# -# You will need Borland MAKE. -# Tested with Borland C++ v.4.0 and 5.0. -# -# Use this file while in the lib directory with the following statement: -# -# make -farch/win16/Makefile.BC -# -# -# A DLL version of the library can be built with -# -# make -DDLL -farch/win16/Makefile.BC dll -# -# Debug versions can be obtained with -# -# make -DDEBUG -farch\win16\Makefile.BC -# -# Special versions enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# -# -# 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 -DBIGFONTS -farch/win16/Makefile.BC - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.BC -FT_DLL = ft15_16.dll - -CC = bcc -LIB = tlib /c /e -IMPLIB = implib -c -o - -SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig - -# Credits go to Dave Hoo for pointing out that modern -# Borland compilers (from BC++ 3.1 on) can increase the limit on -# the length of identifiers. -!if ! $d(DEBUG) -CFLAGS = -O2 -3 -ml -A -i40 -I$(ARCH);.;extend $(SPURIOUS_WARNINGS) -DLLFLAGS = -ml -WD -lC -!else -CFLAGS = -v -N -ml -A -i40 -I$(ARCH);.;extend $(SPURIOUS_WARNINGS) -DLLFLAGS = -v -ml -WD -lC -!endif - -CFLAGS = $(CFLAGS) -W - -FT_DEF = $(FT_DLL:.dll=.def) -!if $d(DLL) -CFLAGS = $(CFLAGS) -WD -!endif - - -!if $d(BIGFONTS) -CFLAGS = $(CFLAGS) -DTT_HUGE_PTR=__huge - -TTFILE = $(ARCH)\hugefile.c -TTMEMORY = $(ARCH)\hugemem.c -!else -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -!endif -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces before the \ at end of line, -# otherwise the substitution for TLIB command line will fail. -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c\ - extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c\ - extend\ftxsbit.c extend\ftxgsub.c extend\ftxgpos.c\ - extend\ftxopen.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c\ - ttgload.c ttinterp.c ttload.c ttobjs.c\ - ttraster.c ttextend.c ttdebug.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Borland make does not handle $($(LIB_FILES)), and using -# -DLIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing TLIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# See ../msdos/Makefile.TC for an application. -.c.obj: - @$(CC) -c -o$* @&&| - $(CFLAGS) $< -| - - -!if ! $d(DEBUG) -# Skipped if DEBUG build -# (but it changes nothing, since we always build in multiple parts). -all: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_M: = + ) -| -!endif - -debug: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_M: = + ) -| - -$(FT_DEF): $(ARCH)\ttf.def - -copy $(ARCH)\ttf.def $(FT_DEF) - -dll $(FT_DLL): $(OBJS_M) $(FT_DEF) -!if $d(DLL) - $(CC) -e$(FT_DLL) @&&| - $(DLLFLAGS) $(OBJS_M) -| - $(IMPLIB) libttf $(FT_DEF) -!else -# Re-invoke with flag set. Unfortunately, this discards the other flags. - make -DDLL -f$(ARCH)/Makefile.BC dll -!endif - -install: $(FT_DLL) -!if $d(INSTALL_DIR) - copy $(FT_DLL) $(INSTALL_DIR) -!else - copy $(FT_DLL) C:\WINDOWS -!endif - - -$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - -del libttf.lib - echo -+$(**: =-+)> response - $(LIB) libttf.lib @&&| -+ $(**: = + ) -| - -!if $d(BIGFONTS) -$(TTMEMORY:.c=.obj): $(TTMEMORY) - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| - -$(TTFILE:.c=.obj): $(TTFILE) - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| -!endif - - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del libttf.bak - -del response - -del *.def - -distclean: clean - -del libttf.lib - -del *.dll - -del $(FT_DEF) - -del C:\WINDOWS\$(FT_DLL) -!if $d(INSTALL_DIR) - -del $(INSTALL_DIR)\$(FT_DLL) -!endif - -!include "$(ARCH)\depend.win" - -# end of Makefile diff --git a/Build/source/libs/freetype/lib/arch/win16/Makefile.MS b/Build/source/libs/freetype/lib/arch/win16/Makefile.MS deleted file mode 100644 index 9f8f03f66f1..00000000000 --- a/Build/source/libs/freetype/lib/arch/win16/Makefile.MS +++ /dev/null @@ -1,116 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Microsoft C for Windows, large model. -# It also works for Visual C++ 1.x 16-bit compilers, but you should -# instead use the Makefile customized for it, Makefile.VC. -# Due to size constraints, it does not try to pack all modules into one. -# -# You will need NMAKE. -# -# Use this file while in the lib directory with the following statement: -# -# nmake /f arch\win16\Makefile.MS -# -# -# A debug version can be obtained with -# -# -# -# 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. -# nmake DEBUG=1 /f arch\win16\Makefile.MS - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.MS - -CC = cl /nologo -LIB = lib /noignorecase /nologo - -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G2 -I$(ARCH) -I. -Iextend -!else -CFLAGS = /Zi /AL /Za /W2 /G2 -I$(ARCH) -I. -Iextend -!endif - -# Use /Gw instead with Microsoft C version 6 -CFLAGS = $(CFLAGS) /GA - - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces between the file names or at end of line, otherwise -# the substitution for LIB command line will fail. Thank you. -# -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c\ -extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c extend\ftxsbit.c\ -extend\ftxopen.c extend\ftxgsub.c extend\ftxgpos.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c\ -ttgload.c ttinterp.c ttload.c ttobjs.c ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Microsoft's NMAKE does not handle $($(LIB_FILES)), and using -# LIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing LIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# See ..\msdos\Makefile.TC for an application. -.c.obj: - $(CC) /c /Fo$@ @<< - $(CFLAGS) $*.c -<< - - -!ifndef DEBUG -# Skipped if DEBUG build -# (but it changes nothing, since we always build in multiple parts). -all: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @< header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define if you have the header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Define if you have the header file. */ -/* Only meaningful if you have . */ -/* #undef HAVE_LOCALE_H */ - -/* command.com can't pipe stderr into a file; any message would be */ -/* written into the graphics screen. */ -#define HAVE_PRINT_FUNCTION 1 - -#define Print( format, ap ) vfprintf( stdout, (format), (ap) ) - -/* The number of bytes in a int. */ -#define SIZEOF_INT 2 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#undef LONG64 -#undef INT64 - -/**********************************************************************/ -/* */ -/* The following macros does the dusty work of selecting the proper */ -/* of qualifiers in order to build a DLL, exporting only the needed */ -/* functions, using the (in)famous FAR PASCAL EXPORT... */ -/* */ -/* Refer to ttconfig.h for explanations of the machinery. */ - -#if defined( _WINDLL ) || defined( __DLL__ ) || defined( FT_DLL ) - -#if defined( _M_I86 ) || ( defined( __TURBOC__ ) && __TURBOC__ > 0x400 ) -#define FAR __far -#define PASCAL __pascal -#define EXPORT __export -#else -#define FAR _far -#define PASCAL _pascal -#define EXPORT _export -#endif - -#define FT_INTERNAL_FUNC( type ) type -#define FT_INTERNAL_DEF( type ) extern type - -#define FT_EXPORT_DEF( type ) extern type FAR PASCAL EXPORT -#define FT_EXPORT_FUNC( type ) type FAR PASCAL EXPORT - -/* This is for variables. */ -#define FT_EXPORT_DECL( type ) extern type PASCAL -#define FT_EXPORT_VAR( type ) type PASCAL - -#endif /* DLL stuff */ - -#endif /* FT_CONF_H */ - -/* End of ft_conf.h */ diff --git a/Build/source/libs/freetype/lib/arch/win16/hugefile.c b/Build/source/libs/freetype/lib/arch/win16/hugefile.c deleted file mode 100644 index 7ffcd28d033..00000000000 --- a/Build/source/libs/freetype/lib/arch/win16/hugefile.c +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************* - * - * hugefile.c - * - * File I/O Component (body) for dealing with "huge" objects - * under 16-bit Windows. Relies on the "default" version, with - * a small hook. Requires Windows 3.1+. - * - * Written by Antoine Leca based on ideas from Dave Hoo. - * Copyright 1999-2000 Dave Hoo, Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 file #includes the normal version, to avoid discrepancies - * between versions. It uses only ANSI-mandated "tricks", so - * any ANSI-compliant compiler should be able to compile this file. - * - ******************************************************************/ - -#include "ttconfig.h" -#include "tttypes.h" - -#include - - /* Here we include , to have the proper definition of fread */ -#include - - /* Some compilers define fileno(), some define _fileno()... */ -#ifndef _fileno -#define _fileno(stream) fileno(stream) -#endif - - /* Then, we divert the use of fread to the Windows version */ -#undef fread -#define fread(ptr, size, n, stream) \ - _hread( _fileno(stream), (char TT_HUGE_PTR *) ptr, (ULong)n * size ) - - - /* Now, we include the "normal" version of `ttfile.c' */ - /* The ANSI/ISO standard mandates that the include of */ - /* there have no bad effects. */ -#include "ttfile.c" - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/win16/hugemem.c b/Build/source/libs/freetype/lib/arch/win16/hugemem.c deleted file mode 100644 index cac6bd7412a..00000000000 --- a/Build/source/libs/freetype/lib/arch/win16/hugemem.c +++ /dev/null @@ -1,539 +0,0 @@ -/******************************************************************* - * - * hugemem.c - * - * Memory management component (body) - * for dealing with "huge" objects with 16-bit Windows. - * - * Written by Antoine Leca based on ideas from Dave Hoo. - * Copyright 1999-2000 Dave Hoo, Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 -#include - -#include "ttdebug.h" -#include "ttmemory.h" -#include "ttengine.h" - -#ifndef TT_HUGE_PTR -#error "This component needs TT_HUGE_PTR to be #defined." -#endif - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE -#error "This component needs static allocation and is not re-entrant." -#endif - - /* If the memory reclaimed is abobve this limit, alloc directly from */ - /* global heap. Else, alloc using malloc (using suballocation). */ -#ifndef MEMORY_MIN_GLOBAL -#define MEMORY_MIN_GLOBAL 4096 -#endif - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_memory - - -#ifdef DEBUG_MEMORY - -#include - -#define MAX_TRACKED_BLOCKS 1024 - - struct TMemRec_ - { - void* base; - Long size; - }; - - typedef struct TMemRec_ TMemRec; - - static TMemRec pointers[MAX_TRACKED_BLOCKS + 1]; - - static Int num_alloc; - static Int num_free; - static Int num_realloc; /* counts only `real' reallocations - (i.e., an existing buffer will be resized - to a value larger than zero */ - - static Int fail_alloc; - static Int fail_realloc; - static Int fail_free; - -#else - - /* We need a tracing stack of the calls to big chunks of memory, */ - /* in order to call the matching version of free(). */ - -#define MAX_TRACKED_BIGCHUNKS 64 - - struct TMemRec_ - { - void* base; - }; - - typedef struct TMemRec_ TMemRec; - - static TMemRec pointers[MAX_TRACKED_BIGCHUNKS + 1]; - -#endif /* DEBUG_MEMORY */ - - -#ifndef TT_CONFIG_REENTRANT - Long TTMemory_Allocated; - Long TTMemory_MaxAllocated; -#endif - - -/******************************************************************* - * - * Function : TT_Alloc - * - * Description : Allocates memory from the heap buffer. - * - * Input : Size size of the memory to be allocated - * P pointer to a buffer pointer - * - * Output : Error code. - * - * NOTE : The newly allocated block should _always_ be zeroed - * on return. Many parts of the engine rely on this to - * work properly. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Alloc( ULong Size, void** P ) - { - Int i; - - - if ( !P ) - return TT_Err_Invalid_Argument; - /* Also see below for another case of "invalid argument". */ - - if ( Size > 0 ) - { - if ( Size >= MEMORY_MIN_GLOBAL ) - { - HANDLE hMem; - - hMem = GlobalAlloc( GMEM_ZEROINIT, Size ); - if ( !hMem ) - return TT_Err_Out_Of_Memory; - - *P = (void*)GlobalLock( hMem ); - } - else - *P = (void*)malloc( Size ); - - if ( !*P ) - return TT_Err_Out_Of_Memory; - -#ifndef TT_CONFIG_REENTRANT - TTMemory_MaxAllocated += Size; - TTMemory_Allocated += Size; -#endif - -#ifdef DEBUG_MEMORY - - num_alloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_alloc++; - else - { - pointers[i].base = *P; - pointers[i].size = Size; - } - -#else - - if ( Size >= MEMORY_MIN_GLOBAL ) - { - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BIGCHUNKS ) - /* We fail badly here. Increase MAX_TRACKED_BIGCHUNKS if needed. */ - return TT_Err_Invalid_Argument; - else - pointers[i].base = *P; - } - -#endif /* DEBUG_MEMORY */ - - /* The nice thing about GlobalAlloc is that it zeroes the memory. */ - - if ( Size < MEMORY_MIN_GLOBAL ) - MEM_Set( *P, 0, Size ); - - } - else - *P = NULL; - - return TT_Err_Ok; - } - - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - - -/******************************************************************* - * - * Function : TT_Realloc - * - * Description : Reallocates memory from the heap buffer. - * - * Input : Size new size of the memory to be allocated; - * if zero, TT_Free() will be called - * P pointer to a buffer pointer; if *P == NULL, - * TT_Alloc() will be called - * - * Output : Error code. - * - * NOTES : It's not necessary to zero the memory in case the - * reallocated buffer is larger than before -- the - * application has to take care of this. - * - * If the memory request fails, TT_Free() will be - * called on *P, and TT_Err_Out_Of_Memory returned. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Realloc( ULong Size, void** P ) - { - ULong oldSize; - void* Q; - Int i; - - - if ( !P ) - return TT_Err_Invalid_Argument; - - if ( !*P ) - return TT_Alloc( Size, P ); - - if ( Size == 0 ) - return TT_Free( P ); - -#ifdef DEBUG_MEMORY - - num_realloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_realloc++; - else - oldSize = pointers[i].size; - -#else - - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != *P ) - i++; - - /* If we did not found the pointer, then this is a "small" chunk. */ - - if ( i < MAX_TRACKED_BIGCHUNKS ) - { - /* Signal we found a big one. Real size does not matter. */ - oldSize = MEMORY_MIN_GLOBAL; - } - -#endif /* DEBUG_MEMORY */ - - if ( oldSize >= MEMORY_MIN_GLOBAL ) - { - /* Deal with a big chunk. */ - HANDLE hMem, hNewMem; - - hMem = GlobalHandle ( (ULong)*P >> 16 ) & 0xFFFF; - if ( !hMem ) /* Bad call... */ - return TT_Err_Invalid_Argument; - - GlobalUnlock( hMem ); - hNewMem = GlobalReAlloc( hMem, Size, 0 ); - if ( hNewMem ) - *P = (void*)GlobalLock( hNewMem ); - } - if ( Size >= MEMORY_MIN_GLOBAL ) - { - /* A small chunk crosses the limit... */ - - if( TT_Alloc( Size, &Q ) != TT_Err_Ok ) - Q = NULL; /* Failed to create the new block. */ - else - MEM_Copy( Q, *P, oldSize ); - - /* We need to register the new entry. */ -#ifndef DEBUG_MEMORY - - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BIGCHUNKS ) - /* We fail badly here. Increase MAX_TRACKED_BIGCHUNKS if needed. */ - return TT_Err_Invalid_Argument; -#endif /* DEBUG_MEMORY */ - } - else - Q = (void*)realloc( *P, Size ); - - if ( !Q ) - { - TT_Free( *P ); - return TT_Err_Out_Of_Memory; - } - -#ifdef DEBUG_MEMORY - - if ( i < MAX_TRACKED_BLOCKS ) - { -#ifndef TT_CONFIG_REENTRANT - TTMemory_Allocated += Size - pointers[i].size; - if ( Size > pointers[i].size ) - TTMemory_MaxAllocated += Size - pointers[i].size; -#endif - - pointers[i].base = Q; - pointers[i].size = Size; - } -#else - if ( i < MAX_TRACKED_BIGCHUNKS ) - { - pointers[i].base = Q; - } -#endif /* DEBUG_MEMORY */ - - *P = Q; - - return TT_Err_Ok; - } - - -#endif /* TT_CONFIG_OPTION_EXTEND_ENGINE */ - - -/******************************************************************* - * - * Function : TT_Free - * - * Description : Releases a previously allocated block of memory. - * - * Input : P pointer to memory block - * - * Output : Always SUCCESS. - * - * Note : The pointer must _always_ be set to NULL by this function. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Free( void** P ) - { - Int i; - Long Size = 0; - - - if ( !P || !*P ) - return TT_Err_Ok; - -#ifdef DEBUG_MEMORY - - num_free++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_free++; - else - { -#ifndef TT_CONFIG_REENTRANT - TTMemory_Allocated -= pointers[i].size; -#endif - - Size = pointers[i].size; - pointers[i].base = NULL; - pointers[i].size = 0; - } - -#else - - i = 0; - while ( i < MAX_TRACKED_BIGCHUNKS && pointers[i].base != *P ) - i++; - - /* If we did not found the pointer, then this is a "small" chunk. */ - - if ( i < MAX_TRACKED_BIGCHUNKS ) - { - pointers[i].base = NULL; - /* Signal we found a big one. Real size does not matter. */ - Size = MEMORY_MIN_GLOBAL; - } - -#endif /* DEBUG_MEMORY */ - - if ( Size >= MEMORY_MIN_GLOBAL ) - { - HANDLE hMem; - - hMem = GlobalHandle ( (ULong)*P >> 16 ) & 0xFFFF; - if ( !hMem ) /* Bad call... */ - return TT_Err_Invalid_Argument; - - GlobalUnlock( hMem ); - GlobalFree ( hMem ); - } - else - free( *P ); - - *P = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Init - * - * Description : Initializes the memory. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Init( void ) - { -#ifdef DEBUG_MEMORY - Int i; - - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - pointers[i].base = NULL; - pointers[i].size = 0; - } - - num_alloc = 0; - num_realloc = 0; - num_free = 0; - - fail_alloc = 0; - fail_realloc = 0; - fail_free = 0; -#else - Int i; - - for ( i = 0; i < MAX_TRACKED_BIGCHUNKS; i++ ) - { - pointers[i].base = NULL; - } -#endif - - -#ifndef TT_CONFIG_REENTRANT - TTMemory_Allocated = 0; - TTMemory_MaxAllocated = 0; -#endif - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Done - * - * Description : Finalizes memory usage. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Done( void ) - { -#ifdef DEBUG_MEMORY - Int i, num_leaked, tot_leaked; - - - num_leaked = 0; - tot_leaked = 0; - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - num_leaked ++; - tot_leaked += pointers[i].size; - } - } - - fprintf( stderr, - "%d memory allocations, of which %d failed\n", - num_alloc, - fail_alloc ); - - fprintf( stderr, - "%d memory reallocations, of which %d failed\n", - num_realloc, - fail_realloc ); - - fprintf( stderr, - "%d memory frees, of which %d failed\n", - num_free, - fail_free ); - - if ( num_leaked > 0 ) - { - fprintf( stderr, - "There are %d leaked memory blocks, totalizing %d bytes\n", - num_leaked, tot_leaked ); - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - fprintf( stderr, - "index: %4d (base: $%08lx, size: %08ld)\n", - i, - (long)pointers[i].base, - pointers[i].size ); - } - } - } - else - fprintf( stderr, "No memory leaks !\n" ); - -#endif /* DEBUG_MEMORY */ - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/win16/makedef b/Build/source/libs/freetype/lib/arch/win16/makedef deleted file mode 100755 index 1c82cfd7400..00000000000 --- a/Build/source/libs/freetype/lib/arch/win16/makedef +++ /dev/null @@ -1,28 +0,0 @@ -# makedef -# -# This shell script creates a .DEF file necessary for building as DLL -# on the Windows 16-bit platform. - -echo "\ -; This file is part of the FreeType project. -; Automatically generated, but you can customize to fit your needs. -; However, changes will be erased if not made in \`makedef'... -; -; This definition file to be used to built the library as DLL -; has been generated automatically with the script \`makedef' on -; `date +%Y-%m-%d`. - -LIBRARY ft15_16 -DESCRIPTION 'FreeType 1.5 16-bit DLL © 1996-2002 Turner, Wilhelm, Lemberg' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE SINGLE -EXPORTS -" > ttf.def - -(cd ../.. - sed -n -e "/^ *FT_EXPORT_DE/!d ; n ; s/(.*$//" \ - -e "s/;$//" -e "s/ const / /" -e "s/ *TT_[a-zA-Z_\*]* //" \ - -e "s/ *//g" -e "s/^\(.*\)/ _\1/" -e "p" *.h extend/*.h) >> ttf.def - -# eof diff --git a/Build/source/libs/freetype/lib/arch/win16/makedep b/Build/source/libs/freetype/lib/arch/win16/makedep deleted file mode 100755 index 7a0476eda9d..00000000000 --- a/Build/source/libs/freetype/lib/arch/win16/makedep +++ /dev/null @@ -1,48 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for older compilers -# on the Windows 16-bit platform. -# -# If you run this script under non-Windows operating systems, expect -# warnings that `windows.h' can't be found. -# -# Copyright 1996-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. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.win - -(cd ../.. - gcc -MM -Iarch/win16 -I. \ - *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.win - -(cd ../.. - gcc -MM -Iarch/win16 -I. -Iextend \ - extend/*.c | \ - sed -e "s/^\(.*\)\.o:/extend\\\\\1.obj:/" -e "s:/:\\\\:g") >> depend.win - -echo "!ifndef __MAKE__" >> depend.win - -(cd ../.. - gcc -MM -Iarch/win16 -I. -Iextend \ - -DTT_HUGE_PTR -Dhuge_alloc -Dhuge_free arch/win16/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\win16\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.win - -echo "!endif" >> depend.win - -# eof diff --git a/Build/source/libs/freetype/lib/arch/win16/ttf.def b/Build/source/libs/freetype/lib/arch/win16/ttf.def deleted file mode 100644 index 3e0fd6617ac..00000000000 --- a/Build/source/libs/freetype/lib/arch/win16/ttf.def +++ /dev/null @@ -1,134 +0,0 @@ -; This file is part of the FreeType project. -; Automatically generated, but you can customize to fit your needs. -; However, changes will be erased if not made in `makedef'... -; -; This definition file to be used to built the library as DLL -; has been generated automatically with the script `makedef' on -; 2002-11-18. - -LIBRARY ft15_16 -DESCRIPTION 'FreeType 1.5 16-bit DLL © 1996-2002 Turner, Wilhelm, Lemberg' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE SINGLE -EXPORTS - - _TT_FreeType_Version - _TT_Init_FreeType - _TT_Done_FreeType - _TT_Set_Raster_Gray_Palette - _TT_Open_Face - _TT_Open_Collection - _TT_Get_Face_Properties - _TT_Set_Face_Pointer - _TT_Get_Face_Pointer - _TT_Flush_Face - _TT_Get_Face_Metrics - _TT_Close_Face - _TT_Get_Font_Data - _TT_New_Instance - _TT_Set_Instance_Resolutions - _TT_Set_Instance_CharSize - _TT_Set_Instance_CharSizes - _TT_Set_Instance_PixelSizes - _TT_Set_Instance_Transform_Flags - _TT_Get_Instance_Metrics - _TT_Set_Instance_Pointer - _TT_Get_Instance_Pointer - _TT_Done_Instance - _TT_New_Glyph - _TT_Done_Glyph - _TT_Load_Glyph - _TT_Get_Glyph_Outline - _TT_Get_Glyph_Metrics - _TT_Get_Glyph_Big_Metrics - _TT_Get_Glyph_Bitmap - _TT_Get_Glyph_Pixmap - _TT_New_Outline - _TT_Done_Outline - _TT_Copy_Outline - _TT_Get_Outline_Bitmap - _TT_Get_Outline_Pixmap - _TT_Get_Outline_BBox - _TT_Transform_Outline - _TT_Translate_Outline - _TT_Transform_Vector - _TT_MulDiv - _TT_MulFix - _TT_Get_CharMap_Count - _TT_Get_CharMap_ID - _TT_Get_CharMap - _TT_Char_Index - _TT_Get_Name_Count - _TT_Get_Name_ID - _TT_Get_Name_String - _TT_Register_Extension - _TT_Extension_Get - _TT_Use_Stream - _TT_Done_Stream - _TT_Flush_Stream - _TT_Read_File - _TT_Seek_File - _TT_Skip_File - _TT_Read_At_File - _TT_File_Pos - _TT_Stream_Size - _TT_Null_FileFrame - _TT_Access_Frame - _TT_Check_And_Access_Frame - _TT_Forget_Frame - _TT_Get_Char - _TT_Get_Short - _TT_Get_Long - _TT_LookUp_Table - _TT_Alloc - _TT_Realloc - _TT_Free - _TT_CharMap_First - _TT_CharMap_Next - _TT_CharMap_Last - _TT_ErrToString18 - _TT_Get_Face_Gasp_Flags - _TT_Init_GDEF_Extension - _TT_Load_GDEF_Table - _TT_GDEF_Get_Glyph_Property - _TT_GDEF_Build_ClassDefinition - _TT_Init_GPOS_Extension - _TT_Load_GPOS_Table - _TT_GPOS_Select_Script - _TT_GPOS_Select_Language - _TT_GPOS_Select_Feature - _TT_GPOS_Query_Scripts - _TT_GPOS_Query_Languages - _TT_GPOS_Query_Features - _TT_GPOS_Add_Feature - _TT_GPOS_Clear_Features - _TT_GPOS_Register_Glyph_Function - _TT_GPOS_Register_MM_Function - _TT_GPOS_Apply_String - _TT_Init_GSUB_Extension - _TT_Load_GSUB_Table - _TT_GSUB_Select_Script - _TT_GSUB_Select_Language - _TT_GSUB_Select_Feature - _TT_GSUB_Query_Scripts - _TT_GSUB_Query_Languages - _TT_GSUB_Query_Features - _TT_GSUB_Add_Feature - _TT_GSUB_Clear_Features - _TT_GSUB_Register_Alternate_Function - _TT_GSUB_Apply_String - _TT_GSUB_Add_String - _TT_Init_Kerning_Extension - _TT_Get_Kerning_Directory - _TT_Load_Kerning_Table - _TT_Init_Post_Extension - _TT_Load_PS_Names - _TT_Get_PS_Name - _TT_Init_SBit_Extension - _TT_Get_Face_Bitmaps - _TT_New_SBit_Image - _TT_Done_SBit_Image - _TT_Get_SBit_Strike - _TT_Load_Glyph_Bitmap - _TT_Get_Face_Widths diff --git a/Build/source/libs/freetype/lib/arch/win32/.cvsignore.delete b/Build/source/libs/freetype/lib/arch/win32/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Build/source/libs/freetype/lib/arch/win32/Makefile.BC b/Build/source/libs/freetype/lib/arch/win32/Makefile.BC deleted file mode 100644 index a5ee5808a2d..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/Makefile.BC +++ /dev/null @@ -1,171 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Borland C++ for Win32. -# -# You will need Borland MAKE. -# Tested with Borland C++ v.5.0 and Borland C++ builder 4.0. -# Does not work with Borland C++ 4.0, since it needs __declspec. -# -# Use this file while in the lib directory with the following statement: -# -# make -farch/win32/Makefile.BC -# -# -# A DLL version of the library can be built with -# -# make -DDLL -farch/win32/Makefile.BC dll -# -# A debug version can be obtained with -# -# make -DDEBUG -farch/win32/Makefile.BC -# -# -# 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. - -ARCH = arch\win32 -FT_MAKEFILE = $(ARCH)\Makefile.BC -FT_DLL = ft15_32.dll - -CC = bcc32 -LIB = tlib /c /e -IMPLIB = implib -c - -SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig - -!if ! $d(DEBUG) -CFLAGS = -O2 -A -i40 -I$(ARCH);.;extend $(SPURIOUS_WARNINGS) -DLLFLAGS = -WD -!else -CFLAGS = -v -A -i40 -I$(ARCH);.;extend $(SPURIOUS_WARNINGS) -DLLFLAGS = -v -WD -!endif - -FT_DEF = $(FT_DLL:.dll=.def) -!if $d(DLL) -CFLAGS = $(CFLAGS) \ - -DEXPORT_DEF=__declspec(dllexport) -DEXPORT_FUNC=__declspec(dllexport) -!endif - - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces before the \ at end of line, -# otherwise the substitution for TLIB command line will fail. -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c\ - extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c\ - extend\ftxsbit.c extend\ftxgsub.c extend\ftxgpos.c\ - extend\ftxopen.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c\ - ttgload.c ttinterp.c ttload.c ttobjs.c\ - ttraster.c ttextend.c ttdebug.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Borland make does not handle $($(LIB_FILES)), and using -# -DLIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing TLIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# See ../msdos/Makefile.TC for an application. -.c.obj: - $(CC) -c -o$* @&&| - $(CFLAGS) $< -| - - -!if ! $d(DEBUG) -# Skipped if DEBUG build -all: $(OBJS_S) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_S: = + ) -| - -dll $(FT_DLL): $(OBJS_S) $(FT_DEF) -!if $d(DLL) - $(CC) @&&| - $(DLLFLAGS) -e$(FT_DLL) $(OBJS_S) -| - $(IMPLIB) libttf $(FT_DLL) -!else - $(MAKE) -DDLL -f$(FT_MAKEFILE) dll # Re-invoke with flag set. -!endif -!endif - -debug: $(OBJS_M) - -del libttf.lib - $(LIB) libttf.lib @&&| -+ $(OBJS_M: = + ) -| - -!ifdef DEBUG -dll $(FT_DLL): $(OBJS_M) $(FT_DEF) -!if $d(DLL) - $(CC) @&&| - $(DLLFLAGS) -e$(FT_DLL) $(OBJS_M) -| - $(IMPLIB) libttf $(FT_DLL) -!else - $(MAKE) -DDEBUG -DDLL -f$(FT_MAKEFILE) dll -!endif -!endif - -install: $(FT_DLL) -!ifdef INSTALL_DIR - copy $(FT_DLL) $(INSTALL_DIR) -!else - copy $(FT_DLL) C:\WINDOWS -!endif - -$(OBJ_S): $(SRC_S) $(SRC_M) - -# Not used here because it excesses the capacity of COMMAND.COM... -libttf.lib: $(LIB_FILES) - -del libttf.lib - echo -+$(**: =-+)> response - $(LIB) libttf.lib @&&| -+ $(**: = + ) -| - -$(FT_DEF): $(ARCH)\ttf.def - -copy $(ARCH)\ttf.def $(FT_DEF) - -clean: - -del *.obj - -del extend\*.obj - -del $(ARCH)\*.obj - -del libttf.bak - -del response - -del *.def - -del *.tds - -distclean: clean - -del libttf.lib - -del *.dll - -del $(FT_DEF) - -del C:\WINDOWS\$(FT_DLL) -!if $d(INSTALL_DIR) - -del $(INSTALL_DIR)\$(FT_DLL) -!endif - -!include "$(ARCH)\depend.win" - -# end of Makefile diff --git a/Build/source/libs/freetype/lib/arch/win32/Makefile.CL b/Build/source/libs/freetype/lib/arch/win32/Makefile.CL deleted file mode 100644 index 2e8308d2349..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/Makefile.CL +++ /dev/null @@ -1,175 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for Microsoft Visual C++ for 32-bit Windows. -# -# You will need NMAKE. -# -# Use this file while in the lib directory with the following statement: -# -# nmake /f arch\win32\Makefile.CL -# -# -# A DLL version of the library can be built with -# -# nmake DLL=1 /f arch\win32\Makefile.CL dll -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\win32\Makefile.CL -# -# -# 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. - -ARCH = arch\win32 -FT_MAKEFILE = $(ARCH)\Makefile.CL -FT_DLL = ft15_32.dll - -CC = cl /nologo -LIB = lib /nologo -LINK = link /nologo - -CFLAGS = /Za /W2 -I$(ARCH) -I. -Iextend - -!ifndef DEBUG -CFLAGS = $(CFLAGS) /Ox -DLLFLAGS = /RELEASE -!else -CFLAGS = $(CFLAGS) /Zi /Ge -DLLFLAGS = /DEBUG -!endif - -!ifdef DLL -CFLAGS = $(CFLAGS) /GD \ - /DEXPORT_DEF=__declspec(dllexport) /DEXPORT_FUNC=__declspec(dllexport) -!else -CFLAGS = $(CFLAGS) /GA -!endif - - -TTFILE = .\ttfile.c -TTMEMORY = .\ttmemory.c -TTMUTEX = .\ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -# Do not insert spaces between the file names or at end of line, otherwise -# the substitution for LIB command line will fail. Thank you. -# -SRC_X = extend\ftxgasp.c extend\ftxkern.c extend\ftxpost.c\ -extend\ftxcmap.c extend\ftxwidth.c extend\ftxerr18.c extend\ftxsbit.c\ -extend\ftxopen.c extend\ftxgsub.c extend\ftxgpos.c extend\ftxgdef.c -OBJS_X = $(SRC_X:.c=.obj) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c\ -ttgload.c ttinterp.c ttload.c ttobjs.c ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.obj) $(OBJS_X) - -SRC_S = $(ARCH)\freetype.c -OBJ_S = $(SRC_S:.c=.obj) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -# Since Microsoft's NMAKE does not handle $($(LIB_FILES)), and using -# LIB_FILES="$(OBJS_S)" will excess the capacity of COMMAND.COM, we cheat -# by constructing LIB's response file directly in the `all' target. -# -# Another solution, useful during debugging of part of the library, -# would be to include each .obj in the library as soon as it is compiled. -# See ..\msdos\Makefile.TC for an application. -.c.obj: - @$(CC) /c /Fo$@ @<< - $(CFLAGS) $*.c -<< - - -!ifndef DEBUG -# Skipped if DEBUG build -all: $(OBJS_S) - -del libttf.lib - $(LIB) /OUT:libttf.lib @< dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.Min diff --git a/Build/source/libs/freetype/lib/arch/win32/Makefile.VC b/Build/source/libs/freetype/lib/arch/win32/Makefile.VC deleted file mode 100644 index 5211686ff67..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/Makefile.VC +++ /dev/null @@ -1,205 +0,0 @@ -# Visual C++ 2.x, 4.x, 5.0 and 6.0 makefile for freetype -# adapted from suns example makefile (related to the TCL script language) - -# Does not depend on the presence of any environment variables in -# order to compile freetype; all needed information is derived from -# location of the compiler directories. - -# -# Project directories -# -# ROOT = top of source tree -# -# TMPDIR = location where .obj files should be stored during build -# -# TOOLS32 = location of VC++ 32-bit development tools. Note that the -# VC++ 2.0 header files are broken, so you need to use the -# ones that come with the developer network CD's, or later -# versions of VC++. -# -# -# -# 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. - -ROOT = ..\.. -TMPDIR = . -#TOOLS32 = c:\msdev # VC++ 2.x,4.x -#TOOLS32 = c:\Program Files\devstudio\vc # VC++ 5.x -TOOLS32 = c:\Program Files\Microsoft Visual Studio\Vc98 # VC++ 6.x -INSTALLDIR = c:\WINNT\SYSTEM32 - -# Set this to the appropriate value of /MACHINE: for your platform -MACHINE = IX86 - -# Comment the following line to compile with symbols -NODEBUG=1 - - -###################################################################### -# Do not modify below this line -###################################################################### - -TTF = ft15_32 -TTFLIB = $(TTF).lib -TTFDLL = $(TTF).dll - -TTFOBJS = \ - $(TMPDIR)\ttapi.obj \ - $(TMPDIR)\ttcache.obj \ - $(TMPDIR)\ttcalc.obj \ - $(TMPDIR)\ttcmap.obj \ - $(TMPDIR)\ttdebug.obj \ - $(TMPDIR)\ttfile.obj \ - $(TMPDIR)\ttgload.obj \ - $(TMPDIR)\ttinterp.obj \ - $(TMPDIR)\ttload.obj \ - $(TMPDIR)\ttmemory.obj \ - $(TMPDIR)\ttmutex.obj \ - $(TMPDIR)\ttobjs.obj \ - $(TMPDIR)\ttraster.obj \ - $(TMPDIR)\ttextend.obj \ - $(TMPDIR)\ftxcmap.obj \ - $(TMPDIR)\ftxgasp.obj \ - $(TMPDIR)\ftxkern.obj \ - $(TMPDIR)\ftxpost.obj \ - $(TMPDIR)\ftxwidth.obj \ - $(TMPDIR)\ftxerr18.obj - - -PATH=$(TOOLS32)\bin;$(PATH) - -cc32 = "$(TOOLS32)\bin\cl.exe" -link32 = "$(TOOLS32)\bin\link.exe" -include32 = "-I$(TOOLS32)\include" -I$(ROOT)\arch\win32 -CP = copy -RM = del - -TTF_INCLUDES = -I$(ROOT) -TTF_DEFINES = -nologo -D__WIN32__ -D__WIN32DLL__ - -TTF_CFLAGS = $(cdebug) $(cflags) $(cvarsdll) $(include32) \ - $(TTF_INCLUDES) $(TTF_DEFINES) -CON_CFLAGS = $(cdebug) $(cflags) $(cvars) $(include32) -DCONSOLE -DOS_CFLAGS = $(cdebug) $(cflags) $(include16) -AL - -###################################################################### -# Link flags -###################################################################### - -!IFDEF NODEBUG -ldebug = /RELEASE -!ELSE -ldebug = -debug:full -debugtype:cv -!ENDIF - -# declarations common to all linker options -lcommon = /NODEFAULTLIB /RELEASE /NOLOGO - -# declarations for use on Intel i386, i486, and Pentium systems -!IF "$(MACHINE)" == "IX86" -DLLENTRY = @12 -lflags = $(lcommon) /MACHINE:$(MACHINE) -!ELSE -lflags = $(lcommon) /MACHINE:$(MACHINE) -!ENDIF - -conlflags = $(lflags) -subsystem:console -entry:mainCRTStartup -guilflags = $(lflags) -subsystem:windows -entry:WinMainCRTStartup -dlllflags = $(lflags) -entry:_DllMainCRTStartup$(DLLENTRY) -dll - -!IF "$(MACHINE)" == "PPC" -libc = libc.lib -libcdll = crtdll.lib -!ELSE -libc = libc.lib oldnames.lib -libcdll = msvcrt.lib oldnames.lib -!ENDIF - -baselibs = kernel32.lib $(optlibs) advapi32.lib -winlibs = $(baselibs) user32.lib gdi32.lib comdlg32.lib winspool.lib - -guilibs = $(libc) $(winlibs) -conlibs = $(libc) $(baselibs) -guilibsdll = $(libcdll) $(winlibs) -conlibsdll = $(libcdll) $(baselibs) - -###################################################################### -# Compile flags -###################################################################### - -!IFDEF NODEBUG -cdebug = -O2 -Gs -GD -!ELSE -cdebug = -Z7 -Od -WX -!ENDIF - -# declarations common to all compiler options -ccommon = -c -W3 -nologo -YX -Dtry=__try -Dexcept=__except - -# NEED BYTEORDER INFORMATION HERE !! -!IF "$(MACHINE)" == "IX86" -cflags = $(ccommon) -D_X86_=1 -!ELSE -!IF "$(MACHINE)" == "MIPS" -cflags = $(ccommon) -D_MIPS_=1 -!ELSE -!IF "$(MACHINE)" == "PPC" -cflags = $(ccommon) -D_PPC_=1 -!ELSE -!IF "$(MACHINE)" == "ALPHA" -cflags = $(ccommon) -D_ALPHA_=1 -!ENDIF -!ENDIF -!ENDIF -!ENDIF - -cvars = -DWIN32 -D_WIN32 -cvarsmt = $(cvars) -D_MT -cvarsdll = $(cvarsmt) -D_DLL - -###################################################################### -# Project specific targets -###################################################################### - -release: $(TTFDLL) -all: $(TTFDLL) - -install: $(TTFDLL) - -@md $(INSTALLDIR) - -@$(CP) $(TTFDLL) $(INSTALLDIR) - - - -$(TTFDLL): $(TTFOBJS) ttf.def - $(link32) $(ldebug) $(dlllflags) \ - $(guilibsdll) -out:$(TTFDLL) -def:ttf.def $(TTFOBJS) - -#ttf.def: $(TTFOBJS) -# ..\..\tcl8.0.4\win\release\dumpexts -o $@ ttf.dll $(TTFOBJS) - - -# -# Implicit rules -# - -{$(ROOT)\extend}.c{$(TMPDIR)}.obj: - $(cc32) $(TTF_CFLAGS) -Fo$(TMPDIR)\ $< - -{$(ROOT)}.c{$(TMPDIR)}.obj: - $(cc32) $(TTF_CFLAGS) -Fo$(TMPDIR)\ $< - - -clean: - -@del *.exp - -@del *.lib - -@del *.dll - -@del $(TMPDIR)\*.obj - -@del *.pch - -@del *.pdb diff --git a/Build/source/libs/freetype/lib/arch/win32/Makefile.gcc b/Build/source/libs/freetype/lib/arch/win32/Makefile.gcc deleted file mode 100644 index 8cbf0737f45..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/Makefile.gcc +++ /dev/null @@ -1,107 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library for gcc under Win32. -# This Makefile will fail with MinGW32 ports of gcc and make under -# bare-bones Windows 9X, because of the limitations of command.com. -# Use Makefile.min instead. -# -# You will need GNU make. -# -# Use this file while in the lib directory with the following statements: -# -# make -f arch/win32/Makefile.gcc depend -# make -f arch/win32/Makefile.gcc -# -# -# If you have the GNU gettext package installed, you can also try -# -# make -f arch/win32/Makefile.gcc HAVE_GETTEXT -# -# -# Copyright 1996-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. - -ARCH = arch/win32 -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -ifndef GETTEXT -GETTEXT=NO_GETTEXT -endif - -ifndef DEBUG -CFLAGS = -Wall -O0 -g -ansi -pedantic -I$(ARCH) -I. -Iextend -D$(GETTEXT) -else -CFLAGS = -Wall -ansi -pedantic -O2 -s -I$(ARCH) -I. -Iextend -D$(GETTEXT) -endif - - -TTFILE = ./ttfile.c -TTMEMORY = ./ttmemory.c -TTMUTEX = ./ttmutex.c - -PORT = $(TTFILE) $(TTMEMORY) $(TTMUTEX) - -SRC_X = extend/ftxgasp.c extend/ftxkern.c extend/ftxpost.c \ - extend/ftxcmap.c extend/ftxwidth.c extend/ftxsbit.c \ - extend/ftxgsub.c extend/ftxgpos.c extend/ftxgdef.c \ - extend/ftxopen.c extend/ftxerr18.c -OBJS_X = $(SRC_X:.c=.o) - -SRC_M = ttapi.c ttcache.c ttcalc.c ttcmap.c ttdebug.c \ - ttgload.c ttinterp.c ttload.c ttobjs.c \ - ttraster.c ttextend.c $(PORT) -OBJS_M = $(SRC_M:.c=.o) $(OBJS_X) - -SRC_S = $(ARCH)/freetype.c -OBJ_S = $(SRC_S:.c=.o) -OBJS_S = $(OBJ_S) $(OBJS_X) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -.PHONY: all debug clean distclean depend - - -all: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S libttf.a - -debug: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_M DEBUG=1 libttf.a - -HAVE_GETTEXT: - $(MAKE) -f $(FT_MAKEFILE) LIB_FILES=OBJS_S GETTEXT=HAVE_GETTEXT \ - libttf.a - -$(OBJ_S): $(SRC_S) $(SRC_M) - -libttf.a: $($(LIB_FILES)) - -del $@ - ar src $@ $^ - -clean: - -del *.o - -del extend\*.o - -del $(subst /,\,$(ARCH)/*.o) - -del response - -distclean: clean - -del dep.end - -del libttf.a - -depend: $(SRC_S) $(SRC_M) $(SRC_X) - $(CC) -E -MM -I$(ARCH) -I. -Iextend $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/lib/arch/win32/depend.win b/Build/source/libs/freetype/lib/arch/win32/depend.win deleted file mode 100644 index 439b28fb6a9..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/depend.win +++ /dev/null @@ -1,107 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various Win32 compilers -# has been generated automatically with the script `makedep' on -# 2002-11-18. - -ttapi.obj: ttapi.c ttconfig.h arch\win32\ft_conf.h freetype.h fterrid.h \ - ftnameid.h ttengine.h tttypes.h ttmutex.h ttcalc.h ttmemory.h \ - ttcache.h ttfile.h ttdebug.h ttobjs.h tttables.h ttcmap.h ttload.h \ - ttgload.h ttraster.h ttextend.h -ttcache.obj: ttcache.c ttengine.h tttypes.h ttconfig.h \ - arch\win32\ft_conf.h freetype.h fterrid.h ftnameid.h ttmutex.h \ - ttmemory.h ttcache.h ttobjs.h tttables.h ttcmap.h ttdebug.h -ttcalc.obj: ttcalc.c ttcalc.h ttconfig.h arch\win32\ft_conf.h freetype.h \ - fterrid.h ftnameid.h ttdebug.h tttypes.h tttables.h -ttcmap.obj: ttcmap.c ttobjs.h ttconfig.h arch\win32\ft_conf.h ttengine.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmutex.h ttcache.h \ - tttables.h ttcmap.h ttdebug.h ttfile.h ttmemory.h ttload.h -ttdebug.obj: ttdebug.c ttdebug.h ttconfig.h arch\win32\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h tttables.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h ttcmap.h -ttextend.obj: ttextend.c ttextend.h ttconfig.h arch\win32\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttmemory.h -ttfile.obj: ttfile.c ttconfig.h arch\win32\ft_conf.h freetype.h \ - fterrid.h ftnameid.h tttypes.h ttdebug.h ttengine.h ttmutex.h \ - ttmemory.h ttfile.h -ttgload.obj: ttgload.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttdebug.h ttcalc.h ttfile.h \ - ttengine.h ttmutex.h tttables.h ttobjs.h ttcache.h ttcmap.h ttgload.h \ - ttmemory.h tttags.h ttload.h -ttinterp.obj: ttinterp.c freetype.h fterrid.h ftnameid.h tttypes.h \ - ttconfig.h arch\win32\ft_conf.h ttdebug.h ttcalc.h ttmemory.h \ - ttinterp.h ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h \ - ttcmap.h -ttload.obj: ttload.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttdebug.h ttcalc.h ttfile.h \ - ttengine.h ttmutex.h tttables.h ttobjs.h ttcache.h ttcmap.h \ - ttmemory.h tttags.h ttload.h -ttmemory.obj: ttmemory.c ttdebug.h ttconfig.h arch\win32\ft_conf.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmemory.h ttengine.h \ - ttmutex.h -ttmutex.obj: ttmutex.c ttmutex.h ttconfig.h arch\win32\ft_conf.h -ttobjs.obj: ttobjs.c ttobjs.h ttconfig.h arch\win32\ft_conf.h ttengine.h \ - tttypes.h freetype.h fterrid.h ftnameid.h ttmutex.h ttcache.h \ - tttables.h ttcmap.h ttfile.h ttdebug.h ttcalc.h ttmemory.h ttload.h \ - ttinterp.h ttextend.h -ttraster.obj: ttraster.c ttraster.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttengine.h tttypes.h ttmutex.h \ - ttdebug.h ttcalc.h ttmemory.h -extend\ftxcmap.obj: extend\ftxcmap.c extend\ftxcmap.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\win32\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h -extend\ftxerr18.obj: extend\ftxerr18.c extend\ftxerr18.h freetype.h fterrid.h \ - ftnameid.h extend\ftxkern.h extend\ftxpost.h extend\ftxopen.h \ - extend\ftxgdef.h extend\ftxgsub.h extend\ftxgpos.h ttconfig.h \ - arch\win32\ft_conf.h -extend\ftxgasp.obj: extend\ftxgasp.c extend\ftxgasp.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\win32\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h -extend\ftxgdef.obj: extend\ftxgdef.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxgpos.obj: extend\ftxgpos.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxgsub.obj: extend\ftxgsub.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h tttags.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxkern.obj: extend\ftxkern.c extend\ftxkern.h freetype.h fterrid.h \ - ftnameid.h ttextend.h ttconfig.h arch\win32\ft_conf.h tttypes.h \ - ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttdebug.h \ - ttload.h ttmemory.h ttfile.h tttags.h -extend\ftxopen.obj: extend\ftxopen.c tttypes.h ttconfig.h arch\win32\ft_conf.h \ - freetype.h fterrid.h ftnameid.h ttload.h ttobjs.h ttengine.h \ - ttmutex.h ttcache.h tttables.h ttcmap.h ttextend.h ttmemory.h \ - ttfile.h ttdebug.h extend\ftxopen.h extend\ftxgdef.h extend\ftxgsub.h \ - extend\ftxgpos.h extend\ftxopenf.h -extend\ftxpost.obj: extend\ftxpost.c extend\ftxpost.h freetype.h fterrid.h \ - ftnameid.h tttypes.h ttconfig.h arch\win32\ft_conf.h ttobjs.h \ - ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttload.h ttfile.h \ - ttdebug.h tttags.h ttmemory.h ttextend.h -extend\ftxsbit.obj: extend\ftxsbit.c extend\ftxsbit.h freetype.h fterrid.h \ - ftnameid.h ttobjs.h ttconfig.h arch\win32\ft_conf.h ttengine.h \ - tttypes.h ttmutex.h ttcache.h tttables.h ttcmap.h ttfile.h ttdebug.h \ - ttload.h ttmemory.h tttags.h ttextend.h -extend\ftxwidth.obj: extend\ftxwidth.c extend\ftxwidth.h freetype.h fterrid.h \ - ftnameid.h ttdebug.h ttconfig.h arch\win32\ft_conf.h tttypes.h \ - ttobjs.h ttengine.h ttmutex.h ttcache.h tttables.h ttcmap.h ttfile.h \ - tttags.h ttload.h -!ifndef __MAKE__ -arch\win32\freetype.obj: arch\win32\freetype.c ttapi.c ttconfig.h \ - arch\win32\ft_conf.h freetype.h fterrid.h ftnameid.h ttengine.h \ - tttypes.h ttmutex.h ttcalc.h ttmemory.h ttcache.h ttfile.h ttdebug.h \ - ttobjs.h tttables.h ttcmap.h ttload.h ttgload.h ttraster.h ttextend.h \ - ttcache.c ttcalc.c ttcmap.c ttdebug.c ttgload.c tttags.h ttinterp.c \ - ttinterp.h ttload.c ttobjs.c ttraster.c ttfile.c ttmemory.c ttmutex.c \ - ttextend.c -!endif diff --git a/Build/source/libs/freetype/lib/arch/win32/freetype.c b/Build/source/libs/freetype/lib/arch/win32/freetype.c deleted file mode 100644 index ba976dea220..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/freetype.c +++ /dev/null @@ -1,44 +0,0 @@ -/* This file is part of the FreeType project */ - -/* single object library component for Win32 */ -#define TT_MAKE_OPTION_SINGLE_OBJECT - -/* Note, you should define the FT_EXPORT_xxx macros here if you */ -/* want to build a Win32 DLL. If undefined, the macros default to */ -/* "extern"/"" (nothing), which is suitable for static libraries. */ -/* See `ttconfig.h' for details. */ - -/* The macro FT_EXPORT_DEF is placed before each high-level API */ -/* function declaration, and FT_EXPORT_FUNC before each */ -/* definition (body). Similarly, FT_EXPORT_DECL is placed before */ -/* each variable declaration, and FT_EXPORT_VAR before its */ -/* definition. You can then use it to take any compiler-specific */ -/* pragma for DLL-exported symbols */ - -/* first include common core components */ - -#include "ttapi.c" -#include "ttcache.c" -#include "ttcalc.c" -#include "ttcmap.c" -#include "ttdebug.c" -#include "ttgload.c" -#include "ttinterp.c" -#include "ttload.c" -#include "ttobjs.c" -#include "ttraster.c" - -/* then system-specific (or ANSI) components */ - -#include "ttfile.c" -#include "ttmemory.c" -#include "ttmutex.c" - -/* finally, add some extensions */ - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.c" -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/win32/freetype.dsp b/Build/source/libs/freetype/lib/arch/win32/freetype.dsp deleted file mode 100644 index cd1d64a0f36..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/freetype.dsp +++ /dev/null @@ -1,138 +0,0 @@ -# Microsoft Developer Studio Project File - Name="freetype" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** -# -# -# Copyright 1996-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. - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=freetype - Win32 Debug -!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" -!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 - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe - -!IF "$(CFG)" == "freetype - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "." -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "." -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MT /Za /W3 /GX /O1 /I "." /I "../.." /I "../../extend" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c -# SUBTRACT CPP /YX -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"./libttf.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 "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /Za /W3 /GX /Zi /Od /I "." /I "../.." /I "../../extend" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FD /c -# SUBTRACT CPP /YX -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"Debug/libttf.lib" - -!ENDIF - -# Begin Target - -# Name "freetype - Win32 Release" -# Name "freetype - Win32 Debug" -# Begin Source File - -SOURCE=.\freetype.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxcmap.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxerr18.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxgasp.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxkern.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxpost.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxsbit.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxwidth.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxopen.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxgdef.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxgsub.c -# End Source File -# Begin Source File - -SOURCE=..\..\extend\ftxgpos.c -# End Source File -# End Target -# End Project diff --git a/Build/source/libs/freetype/lib/arch/win32/freetype.dsw b/Build/source/libs/freetype/lib/arch/win32/freetype.dsw deleted file mode 100644 index f52de6a19fc..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/freetype.dsw +++ /dev/null @@ -1,54 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! -# -# -# Copyright 1996-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. - -############################################################################### - -Project: "Freetype"=".\freetype.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Project: "FT_DLL"=".\ft_dll.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ - Begin Project Dependency - Project_Dep_Name Freetype - End Project Dependency -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/Build/source/libs/freetype/lib/arch/win32/freetype.ide b/Build/source/libs/freetype/lib/arch/win32/freetype.ide deleted file mode 100644 index f5c4043e572..00000000000 Binary files a/Build/source/libs/freetype/lib/arch/win32/freetype.ide and /dev/null differ diff --git a/Build/source/libs/freetype/lib/arch/win32/freetype.mak b/Build/source/libs/freetype/lib/arch/win32/freetype.mak deleted file mode 100644 index e76d1d075da..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/freetype.mak +++ /dev/null @@ -1,363 +0,0 @@ -# Microsoft Developer Studio Generated NMAKE File, Format Version 4.00 -# ** DO NOT EDIT ** -# -# -# 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. - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -!IF "$(CFG)" == "" -CFG=freetype - Win32 Debug -!MESSAGE No configuration specified. Defaulting to freetype - Win32 Debug. -!ENDIF - -!IF "$(CFG)" != "freetype - Win32 Release" && "$(CFG)" !=\ - "freetype - Win32 Debug" -!MESSAGE Invalid configuration "$(CFG)" specified. -!MESSAGE You can specify a configuration when running NMAKE on this makefile -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "freetype.mak" CFG="freetype - Win32 Debug" -!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 -!ERROR An invalid configuration is specified. -!ENDIF - -!IF "$(OS)" == "Windows_NT" -NULL= -!ELSE -NULL=nul -!ENDIF -################################################################################ -# Begin Project -# PROP Target_Last_Scanned "freetype - Win32 Debug" -CPP=cl.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 "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -OUTDIR=.\Release -INTDIR=.\Release - -ALL : "$(OUTDIR)\freetype.lib" - -CLEAN : - -@erase ".\Release\freetype.lib" - -@erase ".\Release\Ftxkern.obj" - -@erase ".\Release\ftxpost.obj" - -@erase ".\Release\ftxerr18.obj" - -@erase ".\Release\Ftxcmap.obj" - -@erase ".\Release\Freetype.obj" - -@erase ".\Release\Ftxgasp.obj" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /GX /O2 /I "." /I "..\.." /I "..\..\extend" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -CPP_PROJ=/nologo /ML /W3 /GX /O2 /I "." /I "..\.." /I "..\..\extend" /D "WIN32"\ - /D "NDEBUG" /D "_WINDOWS" /Fp"$(INTDIR)/freetype.pch" /YX /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Release/ -CPP_SBRS= -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/freetype.bsc" -BSC32_SBRS= -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo -LIB32_FLAGS=/nologo /out:"$(OUTDIR)/freetype.lib" -LIB32_OBJS= \ - "$(INTDIR)/Ftxkern.obj" \ - "$(INTDIR)/ftxpost.obj" \ - "$(INTDIR)/ftxerr18.obj" \ - "$(INTDIR)/Ftxcmap.obj" \ - "$(INTDIR)/Freetype.obj" \ - "$(INTDIR)/Ftxgasp.obj" - -"$(OUTDIR)\freetype.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!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 "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -OUTDIR=.\Debug -INTDIR=.\Debug - -ALL : "$(OUTDIR)\freetype.lib" - -CLEAN : - -@erase ".\Debug\freetype.lib" - -@erase ".\Debug\Freetype.obj" - -@erase ".\Debug\Ftxkern.obj" - -@erase ".\Debug\ftxpost.obj" - -@erase ".\Debug\Ftxcmap.obj" - -@erase ".\Debug\Ftxgasp.obj" - -@erase ".\Debug\ftxerr18.obj" - -"$(OUTDIR)" : - if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" - -# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /GX /Z7 /Od /I "." /I "..\.." /I "..\..\extend" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -CPP_PROJ=/nologo /MLd /W3 /GX /Z7 /Od /I "." /I "..\.." /I "..\..\extend" /D\ - "WIN32" /D "_DEBUG" /D "_WINDOWS" /Fp"$(INTDIR)/freetype.pch" /YX\ - /Fo"$(INTDIR)/" /c -CPP_OBJS=.\Debug/ -CPP_SBRS= -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -BSC32_FLAGS=/nologo /o"$(OUTDIR)/freetype.bsc" -BSC32_SBRS= -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo -LIB32_FLAGS=/nologo /out:"$(OUTDIR)/freetype.lib" -LIB32_OBJS= \ - "$(INTDIR)/Freetype.obj" \ - "$(INTDIR)/Ftxkern.obj" \ - "$(INTDIR)/ftxpost.obj" \ - "$(INTDIR)/Ftxcmap.obj" \ - "$(INTDIR)/Ftxgasp.obj" \ - "$(INTDIR)/ftxerr18.obj" - -"$(OUTDIR)\freetype.lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS) - $(LIB32) @<< - $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS) -<< - -!ENDIF - -.c{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_OBJS)}.obj: - $(CPP) $(CPP_PROJ) $< - -.c{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cpp{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -.cxx{$(CPP_SBRS)}.sbr: - $(CPP) $(CPP_PROJ) $< - -################################################################################ -# Begin Target - -# Name "freetype - Win32 Release" -# Name "freetype - Win32 Debug" - -!IF "$(CFG)" == "freetype - Win32 Release" - -!ELSEIF "$(CFG)" == "freetype - Win32 Debug" - -!ENDIF - -################################################################################ -# Begin Source File - -SOURCE=\Freetype\Lib\Extend\ftxpost.c -DEP_CPP_FTXPO=\ - ".\..\..\Extend\ftxpost.h"\ - ".\..\..\tttypes.h"\ - ".\..\..\ttobjs.h"\ - ".\..\..\tttables.h"\ - ".\..\..\ttload.h"\ - ".\..\..\ttfile.h"\ - ".\..\..\tttags.h"\ - ".\..\..\ttmemory.h"\ - ".\..\..\ttextend.h"\ - ".\..\..\freetype.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - "..\..\ttengine.h"\ - "..\..\ttmutex.h"\ - "..\..\ttcache.h"\ - "..\..\ttcmap.h"\ - ".\..\..\ttdebug.h"\ - - -"$(INTDIR)\ftxpost.obj" : $(SOURCE) $(DEP_CPP_FTXPO) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=\Freetype\Lib\Extend\ftxerr18.c -DEP_CPP_FTXER=\ - ".\..\..\Extend\ftxerr18.h"\ - ".\..\..\Extend\ftxkern.h"\ - ".\..\..\Extend\ftxpost.h"\ - ".\..\..\freetype.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - - -"$(INTDIR)\ftxerr18.obj" : $(SOURCE) $(DEP_CPP_FTXER) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=\Freetype\Lib\Extend\Ftxgasp.c -DEP_CPP_FTXGA=\ - ".\..\..\Extend\ftxgasp.h"\ - ".\..\..\tttypes.h"\ - ".\..\..\ttobjs.h"\ - ".\..\..\tttables.h"\ - ".\..\..\freetype.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - "..\..\ttengine.h"\ - "..\..\ttmutex.h"\ - "..\..\ttcache.h"\ - "..\..\ttcmap.h"\ - - -"$(INTDIR)\Ftxgasp.obj" : $(SOURCE) $(DEP_CPP_FTXGA) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=\Freetype\Lib\Extend\Ftxkern.c -DEP_CPP_FTXKE=\ - ".\..\..\Extend\ftxkern.h"\ - ".\..\..\ttextend.h"\ - ".\..\..\tttypes.h"\ - ".\..\..\ttdebug.h"\ - ".\..\..\ttmemory.h"\ - ".\..\..\ttfile.h"\ - ".\..\..\ttobjs.h"\ - ".\..\..\ttload.h"\ - ".\..\..\tttags.h"\ - ".\..\..\freetype.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - "..\..\ttengine.h"\ - "..\..\ttmutex.h"\ - "..\..\ttcache.h"\ - ".\..\..\tttables.h"\ - "..\..\ttcmap.h"\ - - -"$(INTDIR)\Ftxkern.obj" : $(SOURCE) $(DEP_CPP_FTXKE) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=\Freetype\Lib\Extend\Ftxcmap.c -DEP_CPP_FTXCM=\ - ".\..\..\Extend\ftxcmap.h"\ - ".\..\..\tttypes.h"\ - ".\..\..\ttobjs.h"\ - ".\..\..\tttables.h"\ - ".\..\..\freetype.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - "..\..\ttengine.h"\ - "..\..\ttmutex.h"\ - "..\..\ttcache.h"\ - "..\..\ttcmap.h"\ - - -"$(INTDIR)\Ftxcmap.obj" : $(SOURCE) $(DEP_CPP_FTXCM) "$(INTDIR)" - $(CPP) $(CPP_PROJ) $(SOURCE) - - -# End Source File -################################################################################ -# Begin Source File - -SOURCE=.\Freetype.c -DEP_CPP_FREET=\ - ".\..\..\ttapi.c"\ - ".\..\..\ttcache.c"\ - ".\..\..\ttcalc.c"\ - ".\..\..\ttcmap.c"\ - ".\..\..\ttgload.c"\ - ".\..\..\ttinterp.c"\ - ".\..\..\ttload.c"\ - ".\..\..\ttobjs.c"\ - ".\..\..\ttraster.c"\ - ".\..\..\ttfile.c"\ - ".\..\..\ttmemory.c"\ - ".\..\..\ttmutex.c"\ - ".\..\..\ttextend.c"\ - ".\..\..\freetype.h"\ - "..\..\ttengine.h"\ - "..\..\ttcalc.h"\ - ".\..\..\ttmemory.h"\ - "..\..\ttcache.h"\ - ".\..\..\ttfile.h"\ - ".\..\..\ttobjs.h"\ - ".\..\..\ttload.h"\ - "..\..\ttgload.h"\ - "..\..\ttraster.h"\ - ".\..\..\ttextend.h"\ - "..\..\ttconfig.h"\ - ".\ft_conf.h"\ - "..\..\ttmutex.h"\ - ".\..\..\tttypes.h"\ - ".\..\..\ttdebug.h"\ - ".\..\..\tttables.h"\ - "..\..\ttcmap.h"\ - ".\..\..\tttags.h"\ - "..\..\ttinterp.h"\ - {$(INCLUDE)}"\unistd.h"\ - - -"$(INTDIR)\Freetype.obj" : $(SOURCE) $(DEP_CPP_FREET) "$(INTDIR)" - - -# End Source File -# End Target -# End Project -################################################################################ diff --git a/Build/source/libs/freetype/lib/arch/win32/freetype.mdp b/Build/source/libs/freetype/lib/arch/win32/freetype.mdp deleted file mode 100644 index 9082b5a70a9..00000000000 Binary files a/Build/source/libs/freetype/lib/arch/win32/freetype.mdp and /dev/null differ diff --git a/Build/source/libs/freetype/lib/arch/win32/ft_conf.h b/Build/source/libs/freetype/lib/arch/win32/ft_conf.h deleted file mode 100644 index ba066d8a553..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/ft_conf.h +++ /dev/null @@ -1,243 +0,0 @@ -/******************************************************************* - * - * ft_conf.h for Win32 - * - * - * Copyright 1996-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. - * - ******************************************************************/ - - -/* we need the following because there are some typedefs in this file */ - -#ifndef FT_CONF_H -#define FT_CONF_H - -#ifndef WIN32 -#define WIN32 -#endif - -/* Define to empty if the 'const' keyword does not work. */ -/* #undef const */ - -/* Define if you have the header file. */ -#define HAVE_STDLIB_H - -/* Define if you have the memcpy function. */ -#define HAVE_MEMCPY - -/* Define if you have the memmove function. */ -#define HAVE_MEMMOVE - -/* Define if you have the header file. */ -#undef HAVE_UNISTD_H - -/* The number of bytes in a int. */ -#define SIZEOF_INT 4 - -/* The number of bytes in a long. */ -#define SIZEOF_LONG 4 - -/* Define if you have the header file. */ -/* #undef HAVE_LIBINTL_H */ - -/* Command-line selection. */ -#ifdef HAVE_LIBINTL -#define HAVE_LIBINTL_H -#ifndef LOCALEDIR -#define LOCALEDIR "C:/Program Files/gettext/share/locale" -#endif -#endif -/* Backward compatibility. */ -#ifdef HAVE_GETTEXT -#define HAVE_LIBINTL_H -#endif - -/* Define if you have the header file. */ -/* Only meaningful if you have . */ -#define HAVE_LOCALE_H - -/**********************************************************************/ -/* */ -/* The following configuration macros can be tweaked manually by */ -/* a developer to turn on or off certain features or options in the */ -/* TrueType engine. This may be useful to tune it for specific */ -/* purposes.. */ -/* */ -/**********************************************************************/ - - -/*************************************************************************/ -/* Define this if the underlying operating system uses a different */ -/* character width than 8bit for file names. You must then also supply */ -/* a typedef declaration for defining 'TT_Text'. Default is off. */ - -/* #define HAVE_TT_TEXT */ - - -/*************************************************************************/ -/* Define this if you want to generate code to support engine extensions */ -/* Default is on, but if you're satisfied by the basic services provided */ -/* by the engine and need no extensions, undefine this configuration */ -/* macro to save a few more bytes. */ - -#define TT_CONFIG_OPTION_EXTEND_ENGINE - - -/*************************************************************************/ -/* Define this if you want to generate code to support gray-scaling, */ -/* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */ -/* disable it if you don't need it. */ - -#define TT_CONFIG_OPTION_GRAY_SCALING - - -/*************************************************************************/ -/* Define this 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. */ - -#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to use a big 'switch' statement within the */ -/* bytecode interpreter. Because some non-optimizing compilers are not */ -/* able to produce jump tables from such statements, undefining this */ -/* configuration macro will generate the appropriate C jump table in */ -/* ttinterp.c. If you use an optimizing compiler, you should leave it */ -/* defined for better performance and code compactness.. */ - -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the TrueType */ -/* bytecode interpreter. This will produce much bigger code, which */ -/* _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to build a 'static' version of the scan-line */ -/* converter (the component which in charge of converting outlines into */ -/* bitmaps). This will produce a bigger object file for "ttraster.c", */ -/* which _may_ be faster on some architectures.. */ -/* */ -/* Do NOT DEFINE THIS is you build a thread-safe version of the engine */ - -#undef TT_CONFIG_OPTION_STATIC_RASTER - - -/*************************************************************************/ -/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */ -/* version of the library. */ - -#undef TT_CONFIG_OPTION_THREAD_SAFE - - -/**********************************************************************/ -/* */ -/* The following macros are used to define the debug level, as well */ -/* as individual tracing levels for each component. There are */ -/* currently three modes of operation : */ -/* */ -/* - trace mode (define DEBUG_LEVEL_TRACE) */ -/* */ -/* The engine prints all error messages, as well as tracing */ -/* ones, filtered by each component's level */ -/* */ -/* - debug mode (define DEBUG_LEVEL_ERROR) */ -/* */ -/* Disable tracing, but keeps error output and assertion */ -/* checks. */ -/* */ -/* - release mode (don't define anything) */ -/* */ -/* Don't include error-checking or tracing code in the */ -/* engine's code. Ideal for releases. */ -/* */ -/* NOTE : */ -/* */ -/* Each component's tracing level is defined in its own source. */ -/* */ -/**********************************************************************/ - -/* Define if you want to use the tracing debug mode */ -#undef DEBUG_LEVEL_TRACE - -/* Define if you want to use the error debug mode - ignored if */ -/* DEBUG_LEVEL_TRACE is defined */ -#undef DEBUG_LEVEL_ERROR - - -/**************************************************************************/ -/* Definition of various integer sizes. These types are used by ttcalc */ -/* and ttinterp (for the 64-bit integers) only.. */ - -#if SIZEOF_INT == 4 - - typedef signed int TT_Int32; - typedef unsigned int TT_Word32; - -#elif SIZEOF_LONG == 4 - - typedef signed long TT_Int32; - typedef unsigned long TT_Word32; - -#else -#error "no 32bit type found" -#endif - -#if SIZEOF_LONG == 8 - -/* LONG64 must be defined when a 64-bit type is available */ -/* INT64 must then be defined to this type.. */ -#define LONG64 -#define INT64 long - -#else - -/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */ -/* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */ -/* will produce many -ansi warnings during library compilation. */ -#ifdef TT_USE_LONG_LONG - -#define LONG64 -#define INT64 long long - -#endif /* TT_USE_LONG_LONG */ -#endif - - -#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */ - - /* We disable some warnings in order to compile cleanly with the maximum */ - /* level of warnings. But do not worry: all these warnings have been */ - /* checked, and resulted harmless. */ -#pragma warning( disable : 4244 ) -#pragma warning( disable : 4761 ) - -#define FT_EXPORT_DEF( type ) extern FREETYPEDLL type -#define FT_EXPORT_FUNC( type ) type -#define FT_EXPORT_DECL( type ) FT_EXPORT_DEF( type ) -#define FT_EXPORT_VAR( type ) FT_EXPORT_DECL( type ) - -#endif /* _MSC_VER */ - -#endif /* FT_CONF_H */ - -/* END */ diff --git a/Build/source/libs/freetype/lib/arch/win32/ft_dll.dsp b/Build/source/libs/freetype/lib/arch/win32/ft_dll.dsp deleted file mode 100644 index 607f22bed9a..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/ft_dll.dsp +++ /dev/null @@ -1,106 +0,0 @@ -# Microsoft Developer Studio Project File - Name="ft_dll" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** DO NOT EDIT ** -# -# -# Copyright 1996-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. - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=ft_dll - Win32 Debug -!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 "ft_dll.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 "ft_dll.mak" CFG="ft_dll - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "ft_dll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "ft_dll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "ft_dll - 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 "." -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MT /W3 /GX /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "NDEBUG" /o NUL /win32 -# SUBTRACT MTL /mktyplib203 -# ADD BASE RSC /l 0x0 /d "NDEBUG" -# ADD RSC /l 0x0 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 kernel32.lib advapi32.lib /nologo /subsystem:windows /dll /machine:I386 /out:"./ft15_32.dll" - -!ELSEIF "$(CFG)" == "ft_dll - 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 "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32 -# ADD MTL /nologo /D "_DEBUG" /o NUL /win32 -# SUBTRACT MTL /mktyplib203 -# ADD BASE RSC /l 0x0 /d "_DEBUG" -# ADD RSC /l 0x0 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib advapi32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /out:"Debug/ft15_32.dll" /pdbtype:sept - -!ENDIF - -# Begin Target - -# Name "ft_dll - Win32 Release" -# Name "ft_dll - Win32 Debug" -# Begin Source File - -SOURCE=.\ttf.def -# End Source File -# End Target -# End Project diff --git a/Build/source/libs/freetype/lib/arch/win32/makedef b/Build/source/libs/freetype/lib/arch/win32/makedef deleted file mode 100755 index 222495d42d6..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/makedef +++ /dev/null @@ -1,28 +0,0 @@ -# makedef -# -# This shell script creates a .DEF file necessary for building as DLL -# on the Windows 32-bit platform. - -echo "\ -; This file is part of the FreeType project. -; Automatically generated, but you can customize to fit your needs. -; However, changes will be erased if not made in \`makedef'... -; -; This definition file to be used to built the library as DLL -; has been generated automatically with the script \`makedef' on -; `date +%Y-%m-%d`. - -LIBRARY ft15_32 -DESCRIPTION 'FreeType 1.5 32-bit DLL © 1996-2002 Turner, Wilhelm, Lemberg' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -EXPORTS -" > ttf.def - -(cd ../.. - sed -n -e "/^ *FT_EXPORT_DE/!d ; n ; s/(.*$//" \ - -e "s/;$//" -e "s/ const / /" -e "s/ *TT_[a-zA-Z_\*]* //" \ - -e "s/ *//g" -e "s/^/ /" -e "p" *.h extend/*.h) >> ttf.def - -# eof diff --git a/Build/source/libs/freetype/lib/arch/win32/makedep b/Build/source/libs/freetype/lib/arch/win32/makedep deleted file mode 100755 index 81f0de2c1b3..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/makedep +++ /dev/null @@ -1,45 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for some compilers -# on the Win32 platform. -# -# If you run this script under non-Windows operating systems, expect -# warnings that `windows.h' can't be found. -# -# Copyright 1996-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. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various Win32 compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.win - -(cd ../.. - gcc -MM -Iarch/win32 -I. *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.win - -(cd ../.. - gcc -MM -Iarch/win32 -I. -Iextend extend/*.c | \ - sed -e "s/^\(.*\)\.o:/extend\\\\\1.obj:/" -e "s:/:\\\\:g") >> depend.win - -echo "!ifndef __MAKE__" >> depend.win - -(cd ../.. - gcc -MM -Iarch/win32 -I. -Iextend arch/win32/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\win32\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.win - -echo "!endif" >> depend.win - -# eof diff --git a/Build/source/libs/freetype/lib/arch/win32/ttf.def b/Build/source/libs/freetype/lib/arch/win32/ttf.def deleted file mode 100644 index d93a2e400e6..00000000000 --- a/Build/source/libs/freetype/lib/arch/win32/ttf.def +++ /dev/null @@ -1,134 +0,0 @@ -; This file is part of the FreeType project. -; Automatically generated, but you can customize to fit your needs. -; However, changes will be erased if not made in `makedef'... -; -; This definition file to be used to built the library as DLL -; has been generated automatically with the script `makedef' on -; 2002-11-18. - -LIBRARY ft15_32 -DESCRIPTION 'FreeType 1.5 32-bit DLL © 1996-2002 Turner, Wilhelm, Lemberg' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -EXPORTS - - TT_FreeType_Version - TT_Init_FreeType - TT_Done_FreeType - TT_Set_Raster_Gray_Palette - TT_Open_Face - TT_Open_Collection - TT_Get_Face_Properties - TT_Set_Face_Pointer - TT_Get_Face_Pointer - TT_Flush_Face - TT_Get_Face_Metrics - TT_Close_Face - TT_Get_Font_Data - TT_New_Instance - TT_Set_Instance_Resolutions - TT_Set_Instance_CharSize - TT_Set_Instance_CharSizes - TT_Set_Instance_PixelSizes - TT_Set_Instance_Transform_Flags - TT_Get_Instance_Metrics - TT_Set_Instance_Pointer - TT_Get_Instance_Pointer - TT_Done_Instance - TT_New_Glyph - TT_Done_Glyph - TT_Load_Glyph - TT_Get_Glyph_Outline - TT_Get_Glyph_Metrics - TT_Get_Glyph_Big_Metrics - TT_Get_Glyph_Bitmap - TT_Get_Glyph_Pixmap - TT_New_Outline - TT_Done_Outline - TT_Copy_Outline - TT_Get_Outline_Bitmap - TT_Get_Outline_Pixmap - TT_Get_Outline_BBox - TT_Transform_Outline - TT_Translate_Outline - TT_Transform_Vector - TT_MulDiv - TT_MulFix - TT_Get_CharMap_Count - TT_Get_CharMap_ID - TT_Get_CharMap - TT_Char_Index - TT_Get_Name_Count - TT_Get_Name_ID - TT_Get_Name_String - TT_Register_Extension - TT_Extension_Get - TT_Use_Stream - TT_Done_Stream - TT_Flush_Stream - TT_Read_File - TT_Seek_File - TT_Skip_File - TT_Read_At_File - TT_File_Pos - TT_Stream_Size - TT_Null_FileFrame - TT_Access_Frame - TT_Check_And_Access_Frame - TT_Forget_Frame - TT_Get_Char - TT_Get_Short - TT_Get_Long - TT_LookUp_Table - TT_Alloc - TT_Realloc - TT_Free - TT_CharMap_First - TT_CharMap_Next - TT_CharMap_Last - TT_ErrToString18 - TT_Get_Face_Gasp_Flags - TT_Init_GDEF_Extension - TT_Load_GDEF_Table - TT_GDEF_Get_Glyph_Property - TT_GDEF_Build_ClassDefinition - TT_Init_GPOS_Extension - TT_Load_GPOS_Table - TT_GPOS_Select_Script - TT_GPOS_Select_Language - TT_GPOS_Select_Feature - TT_GPOS_Query_Scripts - TT_GPOS_Query_Languages - TT_GPOS_Query_Features - TT_GPOS_Add_Feature - TT_GPOS_Clear_Features - TT_GPOS_Register_Glyph_Function - TT_GPOS_Register_MM_Function - TT_GPOS_Apply_String - TT_Init_GSUB_Extension - TT_Load_GSUB_Table - TT_GSUB_Select_Script - TT_GSUB_Select_Language - TT_GSUB_Select_Feature - TT_GSUB_Query_Scripts - TT_GSUB_Query_Languages - TT_GSUB_Query_Features - TT_GSUB_Add_Feature - TT_GSUB_Clear_Features - TT_GSUB_Register_Alternate_Function - TT_GSUB_Apply_String - TT_GSUB_Add_String - TT_Init_Kerning_Extension - TT_Get_Kerning_Directory - TT_Load_Kerning_Table - TT_Init_Post_Extension - TT_Load_PS_Names - TT_Get_PS_Name - TT_Init_SBit_Extension - TT_Get_Face_Bitmaps - TT_New_SBit_Image - TT_Done_SBit_Image - TT_Get_SBit_Strike - TT_Load_Glyph_Bitmap - TT_Get_Face_Widths diff --git a/Build/source/libs/freetype/lib/extend/ftxcmap.c b/Build/source/libs/freetype/lib/extend/ftxcmap.c deleted file mode 100644 index 5d860456ca0..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxcmap.c +++ /dev/null @@ -1,404 +0,0 @@ -/******************************************************************* - * - * ftxcmap.c - * - * API extension for iterating over Cmaps - * - * Copyright 1996-2002 by Juliusz Chroboczek, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 "ftxcmap.h" - -#include "tttypes.h" -#include "ttobjs.h" -#include "tttables.h" - -static Long charmap_first4 ( PCMap4, UShort* ); -static Long charmap_next4 ( PCMap4, UShort, UShort* ); -static Long charmap_last4 ( PCMap4, UShort* ); -static UShort charmap_find_id4( PCMap4, UShort, TCMap4Segment*, UShort ); - - -/******************************************************************* - * - * Function : TT_CharMap_First - * - * Description : Returns the first valid character code in a - * given character map. Also returns the corresponding - * glyph index. - * - * Input : charMap handle to the target character map - * id address where the glyph index will be - * be returned in case of success - * - * Output : First valid character code. -1 in case of failure. - * - ******************************************************************/ - -FT_EXPORT_FUNC( TT_Long ) -TT_CharMap_First( TT_CharMap charMap, - TT_UShort* id ) -{ - PCMapTable cmap; - UShort i, c; - - - if ( ( cmap = HANDLE_CharMap( charMap ) ) == 0 ) - return -1; - - switch ( cmap->format ) - { - case 0: - if ( id ) - *id = cmap->c.cmap0.glyphIdArray[0]; - return 0; - - case 4: - return charmap_first4( &cmap->c.cmap4, id ); - - case 6: - if ( cmap->c.cmap6.entryCount < 1 ) - return -1; - - if ( id ) - *id = cmap->c.cmap6.glyphIdArray[0]; - return cmap->c.cmap6.firstCode; - - case 8: - case 12: - if ( id ) - *id = (TT_UShort)cmap->c.cmap8_12.groups[0].startGlyphID; - return (TT_Long)cmap->c.cmap8_12.groups[0].startCharCode; - - default: - /* Now loop from 0 to 65535. We can't use a simple "for' on */ - /* 16-bits systems, hence the "strange" loop here.. */ - i = 0; - do - { - c = TT_Char_Index( charMap, i ); - if ( c > 0 ) - { - if ( id ) - *id = c; - return i; - } - i++; - } while ( i != 0 ); /* because i is UShort! */ - - return -1; - } -} - - -static Long charmap_first4( PCMap4 cmap4, - UShort* id ) -{ - UShort firstCode; - - - if ( cmap4->segCountX2 / 2 < 1 ) - return -1; - - firstCode = cmap4->segments[0].startCount; - - if ( id ) - *id = charmap_find_id4( cmap4, firstCode, &(cmap4->segments[0]), 0 ); - - return firstCode; -} - - -/******************************************************************* - * - * Function : TT_CharMap_Next - * - * Description : Returns the next valid character code in a given - * charMap. - * - * Input : charMap handle to the target char. map - * index starting character code - * id address where the glyph index of the next - * character will be returned - * - * Output : Next valid character code after 'index'. -1 in case - * of failure. - * - ******************************************************************/ - -FT_EXPORT_FUNC( TT_Long ) -TT_CharMap_Next( TT_CharMap charMap, - TT_ULong index, - TT_UShort* id ) -{ - PCMapTable cmap; - UShort i, c; - - - cmap = HANDLE_CharMap( charMap ); - if ( !cmap ) - return -1; - - switch ( cmap->format ) - { - case 0: - if ( index < 255 ) - { - if ( id ) - *id = cmap->c.cmap0.glyphIdArray[index + 1]; - return index + 1; - } - else - return -1; - - case 4: - return charmap_next4( &cmap->c.cmap4, index, id ); - - case 6: - { - UInt firstCode = cmap->c.cmap6.firstCode; - - - if ( index + 1 < firstCode + cmap->c.cmap6.entryCount ) - { - if ( id ) - *id = cmap->c.cmap6.glyphIdArray[index + 1 - firstCode]; - return index + 1; - } - else - return -1; - } - - case 8: - case 12: - { - PCMapGroup group, limit; - - - limit = cmap->c.cmap8_12.groups + cmap->c.cmap8_12.nGroups; - group = cmap->c.cmap8_12.last_group; - - if ( (ULong)( index - group->startCharCode ) < - (ULong)( group->endCharCode - group->startCharCode ) ) - goto Found; - - for ( group = cmap->c.cmap8_12.groups; group < limit; group++ ) - { - if ( index > group->endCharCode ) - continue; - - if ( index >= group->startCharCode ) - goto Found; - } - - return -1; - - Found: - if ( index < group->endCharCode ) - { - cmap->c.cmap8_12.last_group = group; - *id = (UShort)( group->startGlyphID + - ( index - group->startCharCode ) + 1 ); - return index + 1; - } - - group++; - - if ( group == limit ) - return -1; - - cmap->c.cmap8_12.last_group = group; - *id = (UShort)group->startGlyphID; - return group->startCharCode; - } - - default: - /* Now loop from 0 to 65535. We can't use a simple "for" on */ - /* 16-bits systems, hence the "strange" loop here.. */ - i = 0; - do - { - c = TT_Char_Index( charMap, i ); - if ( c > 0 ) - { - if ( id ) - *id = c; - return i; - } - i++; - } while ( i != 0 ); /* because i is UShort! */ - - return -1; - } -} - - -static Long charmap_next4( PCMap4 cmap4, - UShort charCode, - UShort* id) -{ - UShort segCount, nextCode; - UShort i; - TCMap4Segment seg4; - - - if ( charCode == 0xFFFF ) - return -1; /* get it out of the way now */ - - segCount = cmap4->segCountX2 / 2; - - for ( i = 0; i < segCount; i++ ) - if ( charCode < cmap4->segments[i].endCount ) - break; - - /* Safety check - even though the last endCount should be 0xFFFF */ - if ( i >= segCount ) - return -1; - - seg4 = cmap4->segments[i]; - - if ( charCode < seg4.startCount ) - nextCode = seg4.startCount; - else - nextCode = charCode + 1; - - if ( id ) - *id = charmap_find_id4( cmap4, nextCode, &seg4, i ); - - return nextCode; -} - - -static UShort -charmap_find_id4( PCMap4 cmap4, - UShort charCode, - TCMap4Segment* seg4, - UShort i ) -{ - UShort index1; - - - if ( seg4->idRangeOffset == 0 ) - return (charCode + seg4->idDelta) & 0xFFFF; - else - { - index1 = seg4->idRangeOffset / 2 + charCode-seg4->startCount - - ( cmap4->segCountX2 / 2 - i ); - - if ( index1 >= cmap4->numGlyphId || cmap4->glyphIdArray[index1] == 0 ) - return 0; - else - return (cmap4->glyphIdArray[index1] + seg4->idDelta) & 0xFFFF; - } -} - - -/******************************************************************* - * - * Function : TT_CharMap_Last - * - * Description : Returns the last valid character code in a - * given character map. Also returns the corresponding - * glyph index. - * - * Input : charMap handle to the target character map - * id address where the glyph index will be - * be returned in case of success - * - * Output : Last valid character code. -1 in case of failure. - * - ******************************************************************/ - -FT_EXPORT_FUNC( TT_Long ) -TT_CharMap_Last( TT_CharMap charMap, - TT_UShort* id ) -{ - PCMapTable cmap; - UShort i, c; - - - if ( ( cmap = HANDLE_CharMap( charMap ) ) == 0 ) - return -1; - - switch ( cmap->format ) - { - case 0: - if ( id ) - *id = cmap->c.cmap0.glyphIdArray[255]; - return 255; - - case 4: - return charmap_last4( &cmap->c.cmap4, id ); - - case 6: - if ( cmap->c.cmap6.entryCount < 1 ) - return -1; - - if ( id ) - *id = cmap->c.cmap6.glyphIdArray[cmap->c.cmap6.entryCount - 1]; - return cmap->c.cmap6.firstCode + cmap->c.cmap6.entryCount - 1; - - case 8: - case 12: - { - PCMapGroup group; - - - group = cmap->c.cmap8_12.groups + cmap->c.cmap8_12.nGroups - 1; - - if ( id ) - *id = (UShort)( group->startGlyphID + - ( group->endCharCode - group->startCharCode ) ); - return group->endCharCode; - } - - default: - i = 65535; - do - { - c = TT_Char_Index( charMap, i ); - if ( c > 0 ) - { - if ( id ) - *id = c; - return i; - } - i--; - } while ( i != 0 ); - - return -1; - } -} - - -static Long charmap_last4( PCMap4 cmap4, - UShort* id ) -{ - UShort lastCode; - - - if ( cmap4->segCountX2 / 2 < 1 ) - return -1; - - lastCode = cmap4->segments[cmap4->segCountX2 / 2 - 1].endCount; - - if ( id ) - *id = charmap_find_id4( cmap4, - lastCode, - &(cmap4->segments[cmap4->segCountX2 / 2 - 1]), - 0 ); - - return lastCode; -} - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxcmap.h b/Build/source/libs/freetype/lib/extend/ftxcmap.h deleted file mode 100644 index d8ce5e0ed95..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxcmap.h +++ /dev/null @@ -1,60 +0,0 @@ -/******************************************************************* - * - * ftxcmap.h 1.0 - * - * API extension for iterating over Cmaps - * - * Copyright 1996-2001 by Juliusz Chroboczek, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 FTXCMAP_H -#define FTXCMAP_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /* Find the first entry of a Cmap. Its glyph index is returned */ - /* in the "id" field, while the function returns the first valid */ - /* character code in the Cmap. It returns -1 in case of failure. */ - - FT_EXPORT_DEF( TT_Long ) - TT_CharMap_First( TT_CharMap charMap, - TT_UShort* id ); - - - /* Find the next entry of Cmap. Same return conventions. */ - - FT_EXPORT_DEF( TT_Long ) - TT_CharMap_Next( TT_CharMap charMap, - TT_ULong startId, - TT_UShort* id ); - - /* Find the last entry of a Cmap. Its glyph index is returned */ - /* in the "id" field, while the function returns the last valid */ - /* character code in the Cmap. It returns -1 in case of failure. */ - - FT_EXPORT_DEF( TT_Long ) - TT_CharMap_Last( TT_CharMap charMap, - TT_UShort* id ); - - -#ifdef __cplusplus -} -#endif - -#endif /* FTXCMAP_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxerr18.c b/Build/source/libs/freetype/lib/extend/ftxerr18.c deleted file mode 100644 index 8f874857559..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxerr18.c +++ /dev/null @@ -1,281 +0,0 @@ -/****************************************************************************/ -/* */ -/* Erwin Dieterich, 15. 10. 1997 */ -/* - 15. 08. 1999 */ -/* */ -/* TT_ErrToString: translate error codes to character strings */ -/* */ -/* This extension provides internationalized error strings from the */ -/* various error messages. It uses the "gettext" package if available */ -/* or returns English/American message strings if not. */ -/* */ -/* If you do not want to use it, or if you encounter some problems */ -/* compiling this file, try to disable nls support when invoking */ -/* */ -/* ./configure --disable-nls (on Unix). */ -/* */ -/* */ -/****************************************************************************/ - -#include "ftxerr18.h" -#include "ftxkern.h" -#include "ftxpost.h" -#include "ftxopen.h" - -#include "ttconfig.h" /* will pull up "ft_conf.h" */ - -#ifdef HAVE_LIBINTL_H - -#include - -#ifdef HAVE_LOCALE_H -#include -#endif - -#undef _ -#define _( String ) dgettext( "freetype", String ) - -#if 0 -char documentation[] = _( - "Welcome to the translation of the Freetype v.1 library!\n" - "\n" - "This message is not really part of the library (it is bracketed by\n" - " #if 0 / #endif), but is really intended to be the first one in the .po\n" - "file, and the first one that a new translator should see, to give hints.\n" - "\n" - "First, while this .po might seems big, the real interesting part of it\n" - "is only the messages in this file, lib/extend/ftxerr18.c. The other\n" - "messages are part of the demonstration programs, and are more intended\n" - "to help grasping how to use i18n with the Freetype library. So the real\n" - "work is the about 65 first ones. Unfortunately they are the harder ones!\n" - "\n" - "A difficulty is that there are some specialized vocabulary, about\n" - "``faces'', ``glyph'' and similar things. These are typographical things,\n" - "and this should be researched before attempting to translate the whole\n" - "thing. A quick look across the TrueType documentation might help to\n" - "understand many things, too.\n" - "\n" - "Best wiches for your translation!\n" - "Antoine Leca - 2002-11-08" ); -#endif /* 0 */ - -#else /* ! HAVE_LIBINTL_H */ - -#define _( String ) ( String ) - -#endif /* HAVE_LIBINTL_H */ - - -FT_EXPORT_FUNC( TT_String* ) -TT_ErrToString18( TT_Error error ) -{ - - switch ( error ) - { - /* ----- high-level API error codes ----- */ - case TT_Err_Ok: - return _( "Successful function call, no error." ); - - case TT_Err_Invalid_Face_Handle: - return _( "Invalid face handle." ); - case TT_Err_Invalid_Instance_Handle: - return _( "Invalid instance handle." ); - case TT_Err_Invalid_Glyph_Handle: - return _( "Invalid glyph handle." ); - case TT_Err_Invalid_CharMap_Handle: - return _( "Invalid charmap handle." ); - case TT_Err_Invalid_Result_Address: - return _( "Invalid result address." ); - case TT_Err_Invalid_Glyph_Index: - return _( "Invalid glyph index." ); - case TT_Err_Invalid_Argument: - return _( "Invalid argument." ); - case TT_Err_Could_Not_Open_File: - return _( "Could not open file." ); - case TT_Err_File_Is_Not_Collection: - return _( "File is not a TrueType collection." ); - case TT_Err_Table_Missing: - return _( "Mandatory table missing." ); - case TT_Err_Invalid_Horiz_Metrics: - return _( "Invalid horizontal metrics (hmtx table broken)." ); - case TT_Err_Invalid_CharMap_Format: - return _( "Invalid charmap format." ); - case TT_Err_Invalid_PPem: - return _( "Invalid ppem value." ); - case TT_Err_Invalid_Vert_Metrics: - return _( "Invalid vertical metrics (vmtx table broken)." ); - - case TT_Err_Invalid_File_Format: - return _( "Invalid file format." ); - - case TT_Err_Invalid_Engine: - return _( "Invalid engine." ); - case TT_Err_Too_Many_Extensions: - return _( "Too many extensions." ); - case TT_Err_Extensions_Unsupported: - return _( "Extensions unsupported." ); - case TT_Err_Invalid_Extension_Id: - return _( "Invalid extension id." ); - - case TT_Err_No_Vertical_Data: - return _( "No vertical data in font." ); - - case TT_Err_Max_Profile_Missing: - return _( "Maximum Profile (maxp) table missing." ); - case TT_Err_Header_Table_Missing: - return _( "Font Header (head) table missing." ); - case TT_Err_Horiz_Header_Missing: - return _( "Horizontal Header (hhea) table missing." ); - case TT_Err_Locations_Missing: - return _( "Index to Location (loca) table missing." ); - case TT_Err_Name_Table_Missing: - return _( "Naming (name) table missing." ); - case TT_Err_CMap_Table_Missing: - return _( "Character to Glyph Index Mapping (cmap) tables missing." ); - case TT_Err_Hmtx_Table_Missing: - return _( "Horizontal Metrics (hmtx) table missing." ); - case TT_Err_OS2_Table_Missing: - return _( "OS/2 table missing." ); - case TT_Err_Post_Table_Missing: - return _( "PostScript (post) table missing." ); - case TT_Err_Glyf_Table_Missing: - return _( "Glyph (glyf) table missing." ); - - - /* ----- memory component error codes ----- */ - case TT_Err_Out_Of_Memory: - return _( "Out of memory." ); - - - /* ----- file component error codes ----- */ - case TT_Err_Invalid_File_Offset: - return _( "Invalid file offset." ); - case TT_Err_Invalid_File_Read: - return _( "Invalid file read." ); - case TT_Err_Invalid_Frame_Access: - return _( "Invalid frame access." ); - - - /* ----- glyph loader error codes ----- */ - case TT_Err_Too_Many_Points: - return _( "Too many points." ); - case TT_Err_Too_Many_Contours: - return _( "Too many contours." ); - case TT_Err_Invalid_Composite: - return _( "Invalid composite glyph." ); - case TT_Err_Too_Many_Ins: - return _( "Too many instructions." ); - case TT_Err_Too_Many_FDefs: - return _( "Too many function definitions (FDEF)." ); - - - /* ----- byte-code interpreter error codes ----- */ - case TT_Err_Invalid_Opcode: - return _( "Invalid opcode." ); - case TT_Err_Too_Few_Arguments: - return _( "Too few arguments." ); - case TT_Err_Stack_Overflow: - return _( "Stack overflow." ); - case TT_Err_Code_Overflow: - return _( "Code overflow." ); - case TT_Err_Bad_Argument: - return _( "Bad argument." ); - case TT_Err_Divide_By_Zero: - return _( "Divide by zero." ); - case TT_Err_Storage_Overflow: - return _( "Storage overflow." ); - case TT_Err_Cvt_Overflow: - return _( "Control Value (cvt) table overflow." ); - case TT_Err_Invalid_Reference: - return _( "Invalid reference." ); - case TT_Err_Invalid_Distance: - return _( "Invalid distance." ); - case TT_Err_Interpolate_Twilight: - return _( "Interpolate twilight points." ); - case TT_Err_Debug_OpCode: - return _( "`DEBUG' opcode found." ); - case TT_Err_ENDF_In_Exec_Stream: - return _( "`ENDF' in byte-code stream." ); - case TT_Err_Out_Of_CodeRanges: - return _( "Out of code ranges." ); - case TT_Err_Nested_DEFS: - return _( "Nested function definitions." ); - case TT_Err_Invalid_CodeRange: - return _( "Invalid code range." ); - case TT_Err_Invalid_Displacement: - return _( "Invalid displacement." ); - case TT_Err_Execution_Too_Long: - return _( "Endless loop encountered while executing instructions." ); - - - /* ----- internal failure error codes ----- */ - case TT_Err_Nested_Frame_Access: - return _( "Nested frame access." ); - case TT_Err_Invalid_Cache_List: - return _( "Invalid cache list." ); - case TT_Err_Could_Not_Find_Context: - return _( "Could not find context." ); - case TT_Err_Unlisted_Object: - return _( "Unlisted object." ); - - - /* ----- scan-line converter error codes ----- */ - case TT_Err_Raster_Pool_Overflow: - return _( "Raster pool overflow." ); - case TT_Err_Raster_Negative_Height: - return _( "Raster: negative height encountered." ); - case TT_Err_Raster_Invalid_Value: - return _( "Raster: invalid value." ); - case TT_Err_Raster_Not_Initialized: - return _( "Raster not initialized." ); - - - /* ----- engine extensions error codes ----- */ - case TT_Err_Invalid_Kerning_Table_Format: - return _( "Invalid kerning (kern) table format." ); - case TT_Err_Invalid_Kerning_Table: - return _( "Invalid kerning (kern) table." ); - - case TT_Err_Invalid_Post_Table_Format: - return _( "Invalid PostScript (post) table format." ); - case TT_Err_Invalid_Post_Table: - return _( "Invalid PostScript (post) table." ); - - - /* ----- TrueType Open extension error codes ----- */ - case TTO_Err_Invalid_SubTable_Format: - return _( "Invalid TrueType Open subtable format." ); - case TTO_Err_Invalid_SubTable: - return _( "Invalid TrueType Open subtable." ); - case TTO_Err_Not_Covered: - return _( "Glyph(s) not covered by lookup." ); - case TTO_Err_Too_Many_Nested_Contexts: - return _( "Too many nested context substitutions." ); - case TTO_Err_No_MM_Interpreter: - return _( "No MM (Adobe MultipleMaster) interpreter available." ); - - case TTO_Err_Invalid_GSUB_SubTable_Format: - return _( "Invalid glyph substitution (GSUB) table format." ); - case TTO_Err_Invalid_GSUB_SubTable: - return _( "Invalid glyph substitution (GSUB) table." ); - - case TTO_Err_Invalid_GPOS_SubTable_Format: - return _( "Invalid glyph positioning (GPOS) table format." ); - case TTO_Err_Invalid_GPOS_SubTable: - return _( "Invalid glyph positioning (GPOS) table." ); - - case TTO_Err_Invalid_GDEF_SubTable_Format: - return _( "Invalid glyph definition (GDEF) table format." ); - case TTO_Err_Invalid_GDEF_SubTable: - return _( "Invalid glyph definition (GDEF) table." ); - - - default: - ; - } - - return _( "Invalid Error Number." ); -} - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxerr18.h b/Build/source/libs/freetype/lib/extend/ftxerr18.h deleted file mode 100644 index 34e3d5e7636..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxerr18.h +++ /dev/null @@ -1,38 +0,0 @@ -/****************************************************************************/ -/* */ -/* Erwin Dieterich, 15. 10. 1997 */ -/* - 15. 08. 1999 */ -/* */ -/* TT_ErrToString: translate error codes to character strings */ -/* */ -/* This extension provides internationalized error strings from the */ -/* various error messages. It uses the "gettext" package where available */ -/* or returns english/american message strings if not. */ -/* */ -/* If you do not want to use it, or if you encounter some problems */ -/* compiling this file, try to disable nls support by configuring */ -/* FreeType with ./configure --disable-nls */ -/* */ -/* */ -/****************************************************************************/ - -#ifndef FTXERR18_H -#define FTXERR18_H - -#include "freetype.h" - -#ifdef __cplusplus - extern "C" { -#endif - - FT_EXPORT_DEF( TT_String* ) - TT_ErrToString18( TT_Error i ); - -#ifdef __cplusplus - } -#endif - -#endif /* FTXERR18_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxgasp.c b/Build/source/libs/freetype/lib/extend/ftxgasp.c deleted file mode 100644 index 5d4b7acd67f..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxgasp.c +++ /dev/null @@ -1,69 +0,0 @@ -/******************************************************************* - * - * ftxgasp.c 1.0 - * - * Gasp table support API extension 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. - * - * - * The gasp table is currently loaded by the core engine, but the - * standard API doesn't give access to it. This file is used to - * demonstrate the use of a simple API extension. - * - ******************************************************************/ - -#include "ftxgasp.h" - -#include "tttypes.h" -#include "ttobjs.h" -#include "tttables.h" - - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Face_Gasp_Flags( TT_Face face, - TT_UShort point_size, - TT_Bool* grid_fit, - TT_Bool* smooth_font ) - { - PFace faze = HANDLE_Face( face ); - UShort i, flag; - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( faze->gasp.numRanges == 0 || !faze->gasp.gaspRanges ) - return TT_Err_Table_Missing; - - for ( i = 0; i < faze->gasp.numRanges; i++ ) - { - if ( point_size <= faze->gasp.gaspRanges[i].maxPPEM ) - { - flag = faze->gasp.gaspRanges[i].gaspFlag; - - *grid_fit = ( (flag & GASP_GRIDFIT) != 0 ); - *smooth_font = ( (flag & GASP_DOGRAY ) != 0 ); - - return TT_Err_Ok; - } - } - - /* for very large fonts we enable font smoothing and discard */ - /* grid fitting */ - - *grid_fit = 0; - *smooth_font = 1; - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxgasp.h b/Build/source/libs/freetype/lib/extend/ftxgasp.h deleted file mode 100644 index 36b92521fbc..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxgasp.h +++ /dev/null @@ -1,53 +0,0 @@ -/******************************************************************* - * - * ftxgasp.h 1.0 - * - * Gasp table support API extension - * - * 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. - * - * - * The gasp table is currently loaded by the core engine, but the - * standard API doesn't give access to it. This file is used to - * demonstrate the use of a simple API extension. - * - ******************************************************************/ - -#ifndef FTXGASP_H -#define FTXGASP_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - - /* This function returns for a given 'point_size' the values of the */ - /* gasp flags 'grid_fit' and 'smooth_font'. The returned values */ - /* are booleans (where 0 = NO, and 1 = YES). */ - - /* Note that this function will return TT_Err_Table_Missing if */ - /* the font file doesn't contain any gasp table. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Face_Gasp_Flags( TT_Face face, - TT_UShort point_size, - TT_Bool* grid_fit, - TT_Bool* smooth_font ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXGASP_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxgdef.c b/Build/source/libs/freetype/lib/extend/ftxgdef.c deleted file mode 100644 index 1dcff28a5fb..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxgdef.c +++ /dev/null @@ -1,1126 +0,0 @@ -/******************************************************************* - * - * ftxgdef.c - * - * TrueType Open GDEF table support. - * - * 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. - * - ******************************************************************/ - -#include "tttypes.h" -#include "tttags.h" -#include "ttload.h" -#include "ttextend.h" -#include "ttmemory.h" -#include "ttfile.h" - -#include "ftxopen.h" -#include "ftxopenf.h" - - - static TT_Error Load_AttachList( TTO_AttachList* al, - PFace input ); - static TT_Error Load_LigCaretList( TTO_LigCaretList* lcl, - PFace input ); - - static void Free_AttachList( TTO_AttachList* al ); - static void Free_LigCaretList( TTO_LigCaretList* lcl ); - - static void Free_NewGlyphClasses( TTO_GDEFHeader* gdef ); - - - - /********************** - * Extension Functions - **********************/ - - - static TT_Error GDEF_Create( void* ext, - PFace face ) - { - DEFINE_LOAD_LOCALS( face->stream ); - - TTO_GDEFHeader* gdef = (TTO_GDEFHeader*)ext; - Long table; - - - /* by convention */ - - if ( !gdef ) - return TT_Err_Ok; - - /* a null offset indicates that there is no GDEF table */ - - gdef->offset = 0; - - /* we store the start offset and the size of the subtable */ - - table = TT_LookUp_Table( face, TTAG_GDEF ); - if ( table < 0 ) - return TT_Err_Ok; /* The table is optional */ - - if ( FILE_Seek( face->dirTables[table].Offset ) || - ACCESS_Frame( 4L ) ) - return error; - - gdef->offset = FILE_Pos() - 4L; /* undo ACCESS_Frame() */ - gdef->Version = GET_ULong(); - - FORGET_Frame(); - - gdef->loaded = FALSE; - - return TT_Err_Ok; - } - - - static TT_Error GDEF_Destroy( void* ext, - PFace face ) - { - TTO_GDEFHeader* gdef = (TTO_GDEFHeader*)ext; - - - /* by convention */ - - if ( !gdef ) - return TT_Err_Ok; - - if ( gdef->loaded ) - { - Free_LigCaretList( &gdef->LigCaretList ); - Free_AttachList( &gdef->AttachList ); - Free_ClassDefinition( &gdef->GlyphClassDef ); - Free_ClassDefinition( &gdef->MarkAttachClassDef ); - - Free_NewGlyphClasses( gdef ); - } - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_GDEF_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - return TT_Register_Extension( _engine, - GDEF_ID, - sizeof ( TTO_GDEFHeader ), - GDEF_Create, - GDEF_Destroy ); - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_GDEF_Table( TT_Face face, - TTO_GDEFHeader* retptr ) - { - ULong cur_offset, new_offset, base_offset; - - TTO_GDEFHeader* gdef; - - PFace faze = HANDLE_Face( face ); - DEFINE_ALL_LOCALS; - - - if ( !retptr ) - return TT_Err_Invalid_Argument; - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - error = TT_Extension_Get( faze, GDEF_ID, (void**)&gdef ); - if ( error ) - return error; - - if ( gdef->offset == 0 ) - return TT_Err_Table_Missing; /* no GDEF table; nothing to do */ - - /* now access stream */ - - if ( USE_Stream( faze->stream, stream ) ) - return error; - - base_offset = gdef->offset; - - /* skip version */ - - if ( FILE_Seek( base_offset + 4L ) || - ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - /* all GDEF subtables are optional */ - - if ( new_offset ) - { - new_offset += base_offset; - - /* only classes 1-4 are allowed here */ - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ClassDefinition( &gdef->GlyphClassDef, 5, - faze ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - } - else - gdef->GlyphClassDef.loaded = FALSE; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_AttachList( &gdef->AttachList, - faze ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - gdef->AttachList.loaded = FALSE; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LigCaretList( &gdef->LigCaretList, - faze ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - else - gdef->LigCaretList.loaded = FALSE; - - /* OpenType 1.2 has introduced the `MarkAttachClassDef' field. We - first have to scan the LookupFlag values to find out whether we - must load it or not. Here we only store the current file offset. */ - - gdef->MarkAttachClassDef_offset = FILE_Pos(); - gdef->MarkAttachClassDef.loaded = FALSE; - - gdef->LastGlyph = 0; - gdef->NewGlyphClasses = NULL; - gdef->loaded = TRUE; - - *retptr = *gdef; - DONE_Stream( stream ); - - return TT_Err_Ok; - - Fail2: - Free_AttachList( &gdef->AttachList ); - - Fail1: - Free_ClassDefinition( &gdef->GlyphClassDef ); - - /* release stream */ - - DONE_Stream( stream ); - - return error; - } - - - - /******************************* - * AttachList related functions - *******************************/ - - - /* AttachPoint */ - - static TT_Error Load_AttachPoint( TTO_AttachPoint* ap, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* pi; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ap->PointCount = GET_UShort(); - - FORGET_Frame(); - - ap->PointIndex = NULL; - - if ( count ) - { - if ( ALLOC_ARRAY( ap->PointIndex, count, UShort ) ) - return error; - - pi = ap->PointIndex; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( pi ); - return error; - } - - for ( n = 0; n < count; n++ ) - pi[n] = GET_UShort(); - - FORGET_Frame(); - } - - return TT_Err_Ok; - } - - - static void Free_AttachPoint( TTO_AttachPoint* ap ) - { - FREE( ap->PointIndex ); - } - - - /* AttachList */ - - static TT_Error Load_AttachList( TTO_AttachList* al, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_AttachPoint* ap; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &al->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = al->GlyphCount = GET_UShort(); - - FORGET_Frame(); - - al->AttachPoint = NULL; - - if ( ALLOC_ARRAY( al->AttachPoint, count, TTO_AttachPoint ) ) - goto Fail2; - - ap = al->AttachPoint; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_AttachPoint( &ap[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - al->loaded = TRUE; - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_AttachPoint( &ap[n] ); - - FREE( ap ); - - Fail2: - Free_Coverage( &al->Coverage ); - return error; - } - - - static void Free_AttachList( TTO_AttachList* al ) - { - UShort n, count; - - TTO_AttachPoint* ap; - - - if ( !al->loaded ) - return; - - if ( al->AttachPoint ) - { - count = al->GlyphCount; - ap = al->AttachPoint; - - for ( n = 0; n < count; n++ ) - Free_AttachPoint( &ap[n] ); - - FREE( ap ); - } - - Free_Coverage( &al->Coverage ); - } - - - - /********************************* - * LigCaretList related functions - *********************************/ - - - /* CaretValueFormat1 */ - /* CaretValueFormat2 */ - /* CaretValueFormat3 */ - /* CaretValueFormat4 */ - - static TT_Error Load_CaretValue( TTO_CaretValue* cv, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - cv->CaretValueFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( cv->CaretValueFormat ) - { - case 1: - if ( ACCESS_Frame( 2L ) ) - return error; - - cv->cvf.cvf1.Coordinate = GET_Short(); - - FORGET_Frame(); - - break; - - case 2: - if ( ACCESS_Frame( 2L ) ) - return error; - - cv->cvf.cvf2.CaretValuePoint = GET_UShort(); - - FORGET_Frame(); - - break; - - case 3: - if ( ACCESS_Frame( 4L ) ) - return error; - - cv->cvf.cvf3.Coordinate = GET_Short(); - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &cv->cvf.cvf3.Device, - input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - break; - - case 4: - if ( ACCESS_Frame( 2L ) ) - return error; - - cv->cvf.cvf4.IdCaretValue = GET_UShort(); - - FORGET_Frame(); - break; - - default: - return TTO_Err_Invalid_GDEF_SubTable_Format; - } - - return TT_Err_Ok; - } - - - static void Free_CaretValue( TTO_CaretValue* cv ) - { - if ( cv->CaretValueFormat == 3 ) - Free_Device( &cv->cvf.cvf3.Device ); - } - - - /* LigGlyph */ - - static TT_Error Load_LigGlyph( TTO_LigGlyph* lg, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_CaretValue* cv; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = lg->CaretCount = GET_UShort(); - - FORGET_Frame(); - - lg->CaretValue = NULL; - - if ( ALLOC_ARRAY( lg->CaretValue, count, TTO_CaretValue ) ) - return error; - - cv = lg->CaretValue; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_CaretValue( &cv[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_CaretValue( &cv[n] ); - - FREE( cv ); - return error; - } - - - static void Free_LigGlyph( TTO_LigGlyph* lg ) - { - UShort n, count; - - TTO_CaretValue* cv; - - - if ( lg->CaretValue ) - { - count = lg->CaretCount; - cv = lg->CaretValue; - - for ( n = 0; n < count; n++ ) - Free_CaretValue( &cv[n] ); - - FREE( cv ); - } - } - - - /* LigCaretList */ - - static TT_Error Load_LigCaretList( TTO_LigCaretList* lcl, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_LigGlyph* lg; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &lcl->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = lcl->LigGlyphCount = GET_UShort(); - - FORGET_Frame(); - - lcl->LigGlyph = NULL; - - if ( ALLOC_ARRAY( lcl->LigGlyph, count, TTO_LigGlyph ) ) - goto Fail2; - - lg = lcl->LigGlyph; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LigGlyph( &lg[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - lcl->loaded = TRUE; - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_LigGlyph( &lg[n] ); - - FREE( lg ); - - Fail2: - Free_Coverage( &lcl->Coverage ); - return error; - } - - - static void Free_LigCaretList( TTO_LigCaretList* lcl ) - { - UShort n, count; - - TTO_LigGlyph* lg; - - - if ( !lcl->loaded ) - return; - - if ( lcl->LigGlyph ) - { - count = lcl->LigGlyphCount; - lg = lcl->LigGlyph; - - for ( n = 0; n < count; n++ ) - Free_LigGlyph( &lg[n] ); - - FREE( lg ); - } - - Free_Coverage( &lcl->Coverage ); - } - - - - /*********** - * GDEF API - ***********/ - - - static UShort Get_New_Class( TTO_GDEFHeader* gdef, - UShort glyphID, - UShort index ) - { - UShort glyph_index, array_index; - UShort byte, bits; - - TTO_ClassRangeRecord* gcrr; - UShort** ngc; - - - if ( glyphID >= gdef->LastGlyph ) - return 0; - - gcrr = gdef->GlyphClassDef.cd.cd2.ClassRangeRecord; - ngc = gdef->NewGlyphClasses; - - if ( glyphID < gcrr[index].Start ) - { - array_index = 0; - if ( index == 0 ) - glyph_index = glyphID; - else - glyph_index = glyphID - gcrr[index - 1].End - 1; - } - else - { - array_index = index + 1; - glyph_index = glyphID - gcrr[index].End - 1; - } - - byte = ngc[array_index][glyph_index / 4 + 1]; - bits = byte >> ( 16 - ( glyph_index % 4 + 1 ) * 4 ); - - return bits & 0x000F; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GDEF_Get_Glyph_Property( TTO_GDEFHeader* gdef, - TT_UShort glyphID, - TT_UShort* property ) - { - UShort class, index; - - TT_Error error; - - - if ( !gdef || !property ) - return TT_Err_Invalid_Argument; - - /* first, we check for mark attach classes */ - - if ( gdef->MarkAttachClassDef.loaded ) - { - error = Get_Class( &gdef->MarkAttachClassDef, glyphID, &class, &index ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - if ( !error ) - { - *property = class << 8; - return TT_Err_Ok; - } - } - - error = Get_Class( &gdef->GlyphClassDef, glyphID, &class, &index ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - - /* if we have a constructed class table, check whether additional - values have been assigned */ - - if ( error == TTO_Err_Not_Covered && gdef->NewGlyphClasses ) - class = Get_New_Class( gdef, glyphID, index ); - - switch ( class ) - { - case UNCLASSIFIED_GLYPH: - *property = 0; - break; - - case SIMPLE_GLYPH: - *property = TTO_BASE_GLYPH; - break; - - case LIGATURE_GLYPH: - *property = TTO_LIGATURE; - break; - - case MARK_GLYPH: - *property = TTO_MARK; - break; - - case COMPONENT_GLYPH: - *property = TTO_COMPONENT; - break; - } - - return TT_Err_Ok; - } - - - static TT_Error Make_ClassRange( TTO_ClassDefinition* cd, - UShort start, - UShort end, - UShort class ) - { - TT_Error error; - UShort index; - - TTO_ClassDefFormat2* cdf2; - TTO_ClassRangeRecord* crr; - - - cdf2 = &cd->cd.cd2; - - cdf2->ClassRangeCount++; - - if ( REALLOC_ARRAY( cdf2->ClassRangeRecord, cdf2->ClassRangeCount, - TTO_ClassRangeRecord ) ) - return error; - - crr = cdf2->ClassRangeRecord; - index = cdf2->ClassRangeCount - 1; - - crr[index].Start = start; - crr[index].End = end; - crr[index].Class = class; - - cd->Defined[class] = TRUE; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GDEF_Build_ClassDefinition( TTO_GDEFHeader* gdef, - TT_UShort num_glyphs, - TT_UShort glyph_count, - TT_UShort* glyph_array, - TT_UShort* class_array ) - { - UShort start, curr_glyph, curr_class; - UShort n, count; - TT_Error error; - - TTO_ClassDefinition* gcd; - TTO_ClassRangeRecord* gcrr; - UShort** ngc; - - - if ( !gdef || !glyph_array || !class_array ) - return TT_Err_Invalid_Argument; - - gcd = &gdef->GlyphClassDef; - - /* We build a format 2 table */ - - gcd->ClassFormat = 2; - - /* A GlyphClassDef table contains at most 5 different class values */ - - if ( ALLOC_ARRAY( gcd->Defined, 5, Bool ) ) - return error; - - gcd->cd.cd2.ClassRangeCount = 0; - gcd->cd.cd2.ClassRangeRecord = NULL; - - start = glyph_array[0]; - curr_class = class_array[0]; - curr_glyph = start; - - if ( curr_class >= 5 ) - { - error = TT_Err_Invalid_Argument; - goto Fail4; - } - - glyph_count--; - - for ( n = 0; n <= glyph_count; n++ ) - { - if ( curr_glyph == glyph_array[n] && curr_class == class_array[n] ) - { - if ( n == glyph_count ) - { - if ( ( error = Make_ClassRange( gcd, start, - curr_glyph, - curr_class ) ) != TT_Err_Ok ) - goto Fail3; - } - else - { - if ( curr_glyph == 0xFFFF ) - { - error = TT_Err_Invalid_Argument; - goto Fail3; - } - else - curr_glyph++; - } - } - else - { - if ( ( error = Make_ClassRange( gcd, start, - curr_glyph - 1, - curr_class ) ) != TT_Err_Ok ) - goto Fail3; - - if ( curr_glyph > glyph_array[n] ) - { - error = TT_Err_Invalid_Argument; - goto Fail3; - } - - start = glyph_array[n]; - curr_class = class_array[n]; - curr_glyph = start; - - if ( curr_class >= 5 ) - { - error = TT_Err_Invalid_Argument; - goto Fail3; - } - - if ( n == glyph_count ) - { - if ( ( error = Make_ClassRange( gcd, start, - curr_glyph, - curr_class ) ) != TT_Err_Ok ) - goto Fail3; - } - else - { - if ( curr_glyph == 0xFFFF ) - { - error = TT_Err_Invalid_Argument; - goto Fail3; - } - else - curr_glyph++; - } - } - } - - /* now prepare the arrays for class values assigned during the lookup - process */ - - if ( ALLOC_ARRAY( gdef->NewGlyphClasses, - gcd->cd.cd2.ClassRangeCount + 1, UShort* ) ) - goto Fail2; - - count = gcd->cd.cd2.ClassRangeCount; - gcrr = gcd->cd.cd2.ClassRangeRecord; - ngc = gdef->NewGlyphClasses; - - /* We allocate arrays for all glyphs not covered by the class range - records. Each element holds four class values. */ - - if ( gcrr[0].Start ) - { - if ( ALLOC_ARRAY( ngc[0], gcrr[0].Start / 4 + 1, UShort ) ) - goto Fail1; - } - - for ( n = 1; n < count; n++ ) - { - if ( gcrr[n].Start - gcrr[n - 1].End > 1 ) - if ( ALLOC_ARRAY( ngc[n], - ( gcrr[n].Start - gcrr[n - 1].End - 1 ) / 4 + 1, - UShort ) ) - goto Fail1; - } - - if ( gcrr[count - 1].End != num_glyphs - 1 ) - { - if ( ALLOC_ARRAY( ngc[count], - ( num_glyphs - gcrr[count - 1].End - 1 ) / 4 + 1, - UShort ) ) - goto Fail1; - } - - gdef->LastGlyph = num_glyphs - 1; - - gdef->MarkAttachClassDef_offset = 0L; - gdef->MarkAttachClassDef.loaded = FALSE; - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - FREE( ngc[n] ); - - Fail2: - FREE( gdef->NewGlyphClasses ); - - Fail3: - FREE( gcd->cd.cd2.ClassRangeRecord ); - - Fail4: - FREE( gcd->Defined ); - return error; - } - - - static void Free_NewGlyphClasses( TTO_GDEFHeader* gdef ) - { - UShort** ngc; - UShort n, count; - - - if ( gdef->NewGlyphClasses ) - { - count = gdef->GlyphClassDef.cd.cd2.ClassRangeCount + 1; - ngc = gdef->NewGlyphClasses; - - for ( n = 0; n < count; n++ ) - FREE( ngc[n] ); - - FREE( ngc ); - } - } - - - TT_Error Add_Glyph_Property( TTO_GDEFHeader* gdef, - UShort glyphID, - UShort property ) - { - TT_Error error; - UShort class, new_class, index; - UShort byte, bits, mask; - UShort array_index, glyph_index; - - TTO_ClassRangeRecord* gcrr; - UShort** ngc; - - - error = Get_Class( &gdef->GlyphClassDef, glyphID, &class, &index ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - - /* we don't accept glyphs covered in `GlyphClassDef' */ - - if ( !error ) - return TTO_Err_Not_Covered; - - switch ( property ) - { - case 0: - new_class = UNCLASSIFIED_GLYPH; - break; - - case TTO_BASE_GLYPH: - new_class = SIMPLE_GLYPH; - break; - - case TTO_LIGATURE: - new_class = LIGATURE_GLYPH; - break; - - case TTO_MARK: - new_class = MARK_GLYPH; - break; - - case TTO_COMPONENT: - new_class = COMPONENT_GLYPH; - break; - - default: - return TT_Err_Invalid_Argument; - } - - gcrr = gdef->GlyphClassDef.cd.cd2.ClassRangeRecord; - ngc = gdef->NewGlyphClasses; - - if ( glyphID < gcrr[index].Start ) - { - array_index = 0; - if ( index == 0 ) - glyph_index = glyphID; - else - glyph_index = glyphID - gcrr[index - 1].End - 1; - } - else - { - array_index = index + 1; - glyph_index = glyphID - gcrr[index].End - 1; - } - - byte = ngc[array_index][glyph_index / 4 + 1]; - bits = byte >> ( 16 - ( glyph_index % 4 + 1 ) * 4 ); - class = bits & 0x000F; - - /* we don't overwrite existing entries */ - - if ( !class ) - { - bits = new_class << ( 16 - ( glyph_index % 4 + 1 ) * 4 ); - mask = ~( 0x000F << ( 16 - ( glyph_index % 4 + 1 ) * 4 ) ); - - ngc[array_index][glyph_index / 4 + 1] &= mask; - ngc[array_index][glyph_index / 4 + 1] |= bits; - } - - return TT_Err_Ok; - } - - - TT_Error Check_Property( TTO_GDEFHeader* gdef, - UShort index, - UShort flags, - UShort* property ) - { - TT_Error error; - - - if ( gdef ) - { - error = TT_GDEF_Get_Glyph_Property( gdef, index, property ); - if ( error ) - return error; - - if ( flags & IGNORE_SPECIAL_MARKS ) - { - /* This is OpenType 1.2 */ - - if ( (flags & 0xFF00) != *property ) - return TTO_Err_Not_Covered; - } - else { - if ( flags & *property ) - return TTO_Err_Not_Covered; - } - } - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxgdef.h b/Build/source/libs/freetype/lib/extend/ftxgdef.h deleted file mode 100644 index 927d0a1bdbe..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxgdef.h +++ /dev/null @@ -1,218 +0,0 @@ -/******************************************************************* - * - * ftxgdef.h - * - * TrueType Open GDEF table support - * - * 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 FTXOPEN_H -#error "Don't include this file! Use ftxopen.h instead." -#endif - -#ifndef FTXGDEF_H -#define FTXGDEF_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define TTO_Err_Invalid_GDEF_SubTable_Format 0x1030 -#define TTO_Err_Invalid_GDEF_SubTable 0x1031 - -#define GDEF_ID Build_Extension_ID( 'G', 'D', 'E', 'F' ) - - -/* GDEF glyph classes */ - -#define UNCLASSIFIED_GLYPH 0 -#define SIMPLE_GLYPH 1 -#define LIGATURE_GLYPH 2 -#define MARK_GLYPH 3 -#define COMPONENT_GLYPH 4 - -/* GDEF glyph properties, corresponding to class values 1-4. Note that - TTO_COMPONENT has no corresponding flag in the LookupFlag field. */ - -#define TTO_BASE_GLYPH 0x0002 -#define TTO_LIGATURE 0x0004 -#define TTO_MARK 0x0008 -#define TTO_COMPONENT 0x0010 - - - /* Attachment related structures */ - - struct TTO_AttachPoint_ - { - TT_UShort PointCount; /* size of the PointIndex array */ - TT_UShort* PointIndex; /* array of contour points */ - }; - - typedef struct TTO_AttachPoint_ TTO_AttachPoint; - - - struct TTO_AttachList_ - { - TT_Bool loaded; - - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort GlyphCount; /* number of glyphs with - attachments */ - TTO_AttachPoint* AttachPoint; /* array of AttachPoint tables */ - }; - - typedef struct TTO_AttachList_ TTO_AttachList; - - - /* Ligature Caret related structures */ - - struct TTO_CaretValueFormat1_ - { - TT_Short Coordinate; /* x or y value (in design units) */ - }; - - typedef struct TTO_CaretValueFormat1_ TTO_CaretValueFormat1; - - - struct TTO_CaretValueFormat2_ - { - TT_UShort CaretValuePoint; /* contour point index on glyph */ - }; - - typedef struct TTO_CaretValueFormat2_ TTO_CaretValueFormat2; - - - struct TTO_CaretValueFormat3_ - { - TT_Short Coordinate; /* x or y value (in design units) */ - TTO_Device Device; /* Device table for x or y value */ - }; - - typedef struct TTO_CaretValueFormat3_ TTO_CaretValueFormat3; - - - struct TTO_CaretValueFormat4_ - { - TT_UShort IdCaretValue; /* metric ID */ - }; - - typedef struct TTO_CaretValueFormat4_ TTO_CaretValueFormat4; - - - struct TTO_CaretValue_ - { - TT_UShort CaretValueFormat; /* 1, 2, 3, or 4 */ - - union - { - TTO_CaretValueFormat1 cvf1; - TTO_CaretValueFormat2 cvf2; - TTO_CaretValueFormat3 cvf3; - TTO_CaretValueFormat4 cvf4; - } cvf; - }; - - typedef struct TTO_CaretValue_ TTO_CaretValue; - - - struct TTO_LigGlyph_ - { - TT_Bool loaded; - - TT_UShort CaretCount; /* number of caret values */ - TTO_CaretValue* CaretValue; /* array of caret values */ - }; - - typedef struct TTO_LigGlyph_ TTO_LigGlyph; - - - struct TTO_LigCaretList_ - { - TT_Bool loaded; - - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort LigGlyphCount; /* number of ligature glyphs */ - TTO_LigGlyph* LigGlyph; /* array of LigGlyph tables */ - }; - - typedef struct TTO_LigCaretList_ TTO_LigCaretList; - - - /* The `NewGlyphClasses' field is not defined in the TTO specification. - We use it for fonts with a constructed `GlyphClassDef' structure - (i.e., which don't have a GDEF table) to collect glyph classes - assigned during the lookup process. The number of arrays in this - pointer array is GlyphClassDef->cd.cd2.ClassRangeCount+1; the nth - array then contains the glyph class values of the glyphs not covered - by the ClassRangeRecords structures with index n-1 and n. We store - glyph class values for four glyphs in a single array element. - - `LastGlyph' is identical to the number of glyphs minus one in the - font; we need it only if `NewGlyphClasses' is not NULL (to have an - upper bound for the last array). - - Note that we first store the file offset to the `MarkAttachClassDef' - field (which has been introduced in OpenType 1.2) -- since the - `Version' field value hasn't been increased to indicate that we have - one more field for some obscure reason, we must parse the GSUB table - to find out whether class values refer to this table. Only then we - can finally load the MarkAttachClassDef structure if necessary. */ - - struct TTO_GDEFHeader_ - { - TT_Bool loaded; - TT_ULong offset; - - TT_Fixed Version; - - TTO_ClassDefinition GlyphClassDef; - TTO_AttachList AttachList; - TTO_LigCaretList LigCaretList; - TT_ULong MarkAttachClassDef_offset; - TTO_ClassDefinition MarkAttachClassDef; /* new in OT 1.2 */ - - TT_UShort LastGlyph; - TT_UShort** NewGlyphClasses; - }; - - typedef struct TTO_GDEFHeader_ TTO_GDEFHeader; - - - /* finally, the GDEF API */ - - FT_EXPORT_DEF( TT_Error ) - TT_Init_GDEF_Extension( TT_Engine engine ); - - FT_EXPORT_DEF( TT_Error ) - TT_Load_GDEF_Table( TT_Face face, - TTO_GDEFHeader* gdef ); - - FT_EXPORT_DEF( TT_Error ) - TT_GDEF_Get_Glyph_Property( TTO_GDEFHeader* gdef, - TT_UShort glyphID, - TT_UShort* property ); - FT_EXPORT_DEF( TT_Error ) - TT_GDEF_Build_ClassDefinition( TTO_GDEFHeader* gdef, - TT_UShort num_glyphs, - TT_UShort glyph_count, - TT_UShort* glyph_array, - TT_UShort* class_array ); - - -#ifdef __cplusplus -} -#endif - -#endif /* FTXGDEF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxgpos.c b/Build/source/libs/freetype/lib/extend/ftxgpos.c deleted file mode 100644 index 534fda0f4ae..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxgpos.c +++ /dev/null @@ -1,6224 +0,0 @@ -/******************************************************************* - * - * ftxgpos.c - * - * TrueType Open GPOS table support. - * - * 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. - * - ******************************************************************/ - -/* XXX There is *a lot* of duplicated code (cf. formats 7 and 8), but - I don't care currently. I believe that it would be possible to - save about 50% of TTO code by carefully designing the structures, - sharing as much as possible with extensive use of macros. This - is something for a volunteer :-) */ - -#include "tttypes.h" -#include "tttags.h" -#include "ttload.h" -#include "ttextend.h" -#include "ttmemory.h" -#include "ttfile.h" - -#include "ftxopen.h" -#include "ftxopenf.h" - - - struct GPOS_Instance_ - { - TTO_GPOSHeader* gpos; - TT_Instance instance; - TT_Glyph glyph; - UShort load_flags; /* how the glyph should be loaded */ - TT_Bool r2l; - - UShort first; /* the first glyph in a chain of - cursive connections */ - UShort last; /* the last valid glyph -- used - with cursive positioning */ - TT_Pos anchor_x; /* the coordinates of the anchor point */ - TT_Pos anchor_y; /* of the last valid glyph */ - }; - - typedef struct GPOS_Instance_ GPOS_Instance; - - - static TT_Error Do_Glyph_Lookup( GPOS_Instance* gpi, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort context_length, - int nesting_level ); - - - - /********************** - * Extension Functions - **********************/ - - /* the client application must replace this with something more - meaningful if multiple master fonts are to be supported. */ - - static TT_Error default_mmfunc( TT_Instance instance, - TT_UShort metric_id, - TT_Pos* metric_value, - void* data ) - { - return TTO_Err_No_MM_Interpreter; - } - - - static TT_Error GPOS_Create( void* ext, - PFace face ) - { - DEFINE_LOAD_LOCALS( face->stream ); - - TTO_GPOSHeader* gpos = (TTO_GPOSHeader*)ext; - Long table; - - - /* by convention */ - - if ( !gpos ) - return TT_Err_Ok; - - /* a null offset indicates that there is no GPOS table */ - - gpos->offset = 0; - - /* we store the start offset and the size of the subtable */ - - table = TT_LookUp_Table( face, TTAG_GPOS ); - if ( table < 0 ) - return TT_Err_Ok; /* The table is optional */ - - if ( FILE_Seek( face->dirTables[table].Offset ) || - ACCESS_Frame( 4L ) ) - return error; - - gpos->offset = FILE_Pos() - 4L; /* undo ACCESS_Frame() */ - gpos->Version = GET_ULong(); - - FORGET_Frame(); - - /* a default mmfunc() handler which just returns an error */ - - gpos->mmfunc = default_mmfunc; - - /* the default glyph function is TT_Load_Glyph() */ - - gpos->gfunc = TT_Load_Glyph; - - gpos->loaded = FALSE; - - return TT_Err_Ok; - } - - - static TT_Error GPOS_Destroy( void* ext, - PFace face ) - { - TTO_GPOSHeader* gpos = (TTO_GPOSHeader*)ext; - - - /* by convention */ - - if ( !gpos ) - return TT_Err_Ok; - - if ( gpos->loaded ) - { - Free_LookupList( &gpos->LookupList, GPOS ); - Free_FeatureList( &gpos->FeatureList ); - Free_ScriptList( &gpos->ScriptList ); - } - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_GPOS_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - return TT_Register_Extension( _engine, - GPOS_ID, - sizeof ( TTO_GPOSHeader ), - GPOS_Create, - GPOS_Destroy ); - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_GPOS_Table( TT_Face face, - TTO_GPOSHeader* retptr, - TTO_GDEFHeader* gdef ) - { - ULong cur_offset, new_offset, base_offset; - - UShort i, num_lookups; - TTO_GPOSHeader* gpos; - TTO_GDEFHeader* gdef_reg; - TTO_Lookup* lo; - - PFace faze = HANDLE_Face( face ); - DEFINE_ALL_LOCALS; - - - if ( !retptr ) - return TT_Err_Invalid_Argument; - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - error = TT_Extension_Get( faze, GPOS_ID, (void**)&gpos ); - if ( error ) - return error; - - if ( gpos->offset == 0 ) - return TT_Err_Table_Missing; /* no GPOS table; nothing to do */ - - /* now access stream */ - - if ( USE_Stream( faze->stream, stream ) ) - return error; - - base_offset = gpos->offset; - - /* skip version */ - - if ( FILE_Seek( base_offset + 4L ) || - ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ScriptList( &gpos->ScriptList, - faze ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_FeatureList( &gpos->FeatureList, - faze ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LookupList( &gpos->LookupList, - faze, GPOS ) ) != TT_Err_Ok ) - goto Fail2; - - gpos->gdef = gdef; /* can be NULL */ - - /* We now check the LookupFlags for values larger than 0xFF to find - out whether we need to load the `MarkAttachClassDef' field of the - GDEF table -- this hack is necessary for OpenType 1.2 tables since - the version field of the GDEF table hasn't been incremented. - - For constructed GDEF tables, we only load it if - `MarkAttachClassDef_offset' is not zero (nevertheless, a build of - a constructed mark attach table is not supported currently). */ - - if ( gdef && - gdef->MarkAttachClassDef_offset && !gdef->MarkAttachClassDef.loaded ) - { - lo = gpos->LookupList.Lookup; - num_lookups = gpos->LookupList.LookupCount; - - for ( i = 0; i < num_lookups; i++ ) - { - if ( lo[i].LookupFlag & IGNORE_SPECIAL_MARKS ) - { - if ( FILE_Seek( gdef->MarkAttachClassDef_offset ) || - ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( !new_offset ) - return TTO_Err_Invalid_GDEF_SubTable; - - new_offset += gdef->offset; - - if ( FILE_Seek( new_offset ) || - ( error = Load_ClassDefinition( &gdef->MarkAttachClassDef, - 256, faze ) ) != TT_Err_Ok ) - goto Fail1; - - /* copy the class definition pointer into the extension structure */ - - error = TT_Extension_Get( faze, GDEF_ID, (void**)&gdef_reg ); - if ( error ) - return error; - - *gdef_reg = *gdef; - - break; - } - } - } - - gpos->loaded = TRUE; - *retptr = *gpos; - DONE_Stream( stream ); - - return TT_Err_Ok; - - Fail1: - Free_LookupList( &gpos->LookupList, GPOS ); - - Fail2: - Free_FeatureList( &gpos->FeatureList ); - - Fail3: - Free_ScriptList( &gpos->ScriptList ); - - /* release stream */ - - DONE_Stream( stream ); - - return error; - } - - - - /***************************** - * SubTable related functions - *****************************/ - - /* shared tables */ - - /* ValueRecord */ - - /* There is a subtle difference in the specs between a `table' and a - `record' -- offsets for device tables in ValueRecords are taken from - the parent table and not the parent record. */ - - static TT_Error Load_ValueRecord( TTO_ValueRecord* vr, - UShort format, - ULong base_offset, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset; - - - if ( format & HAVE_X_PLACEMENT ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - vr->XPlacement = GET_Short(); - - FORGET_Frame(); - } - else - vr->XPlacement = 0; - - if ( format & HAVE_Y_PLACEMENT ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - vr->YPlacement = GET_Short(); - - FORGET_Frame(); - } - else - vr->YPlacement = 0; - - if ( format & HAVE_X_ADVANCE ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - vr->XAdvance = GET_Short(); - - FORGET_Frame(); - } - else - vr->XAdvance = 0; - - if ( format & HAVE_Y_ADVANCE ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - vr->YAdvance = GET_Short(); - - FORGET_Frame(); - } - else - vr->YAdvance = 0; - - if ( format & HAVE_X_PLACEMENT_DEVICE ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &vr->XPlacementDevice, - input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - } - else - goto empty1; - } - else - { - empty1: - vr->XPlacementDevice.StartSize = 0; - vr->XPlacementDevice.EndSize = 0; - vr->XPlacementDevice.DeltaValue = NULL; - } - - if ( format & HAVE_Y_PLACEMENT_DEVICE ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &vr->YPlacementDevice, - input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - } - else - goto empty2; - } - else - { - empty2: - vr->YPlacementDevice.StartSize = 0; - vr->YPlacementDevice.EndSize = 0; - vr->YPlacementDevice.DeltaValue = NULL; - } - - if ( format & HAVE_X_ADVANCE_DEVICE ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &vr->XAdvanceDevice, - input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - else - goto empty3; - } - else - { - empty3: - vr->XAdvanceDevice.StartSize = 0; - vr->XAdvanceDevice.EndSize = 0; - vr->XAdvanceDevice.DeltaValue = NULL; - } - - if ( format & HAVE_Y_ADVANCE_DEVICE ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &vr->YAdvanceDevice, - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - goto empty4; - } - else - { - empty4: - vr->YAdvanceDevice.StartSize = 0; - vr->YAdvanceDevice.EndSize = 0; - vr->YAdvanceDevice.DeltaValue = NULL; - } - - if ( format & HAVE_X_ID_PLACEMENT ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - vr->XIdPlacement = GET_UShort(); - - FORGET_Frame(); - } - else - vr->XIdPlacement = 0; - - if ( format & HAVE_Y_ID_PLACEMENT ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - vr->YIdPlacement = GET_UShort(); - - FORGET_Frame(); - } - else - vr->YIdPlacement = 0; - - if ( format & HAVE_X_ID_ADVANCE ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - vr->XIdAdvance = GET_UShort(); - - FORGET_Frame(); - } - else - vr->XIdAdvance = 0; - - if ( format & HAVE_Y_ID_ADVANCE ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - vr->YIdAdvance = GET_UShort(); - - FORGET_Frame(); - } - else - vr->YIdAdvance = 0; - - return TT_Err_Ok; - - Fail1: - Free_Device( &vr->YAdvanceDevice ); - - Fail2: - Free_Device( &vr->XAdvanceDevice ); - - Fail3: - Free_Device( &vr->YPlacementDevice ); - return error; - } - - - static void Free_ValueRecord( TTO_ValueRecord* vr, - UShort format ) - { - if ( format & HAVE_Y_ADVANCE_DEVICE ) - Free_Device( &vr->YAdvanceDevice ); - if ( format & HAVE_X_ADVANCE_DEVICE ) - Free_Device( &vr->XAdvanceDevice ); - if ( format & HAVE_Y_PLACEMENT_DEVICE ) - Free_Device( &vr->YPlacementDevice ); - if ( format & HAVE_X_PLACEMENT_DEVICE ) - Free_Device( &vr->XPlacementDevice ); - } - - - static TT_Error Get_ValueRecord( GPOS_Instance* gpi, - TTO_ValueRecord* vr, - UShort format, - TTO_GPOS_Data* gd ) - { - TT_Pos value; - Short pixel_value; - TT_Error error = TT_Err_Ok; - TTO_GPOSHeader* gpos = gpi->gpos; - PInstance ins; - - UShort x_ppem, y_ppem; - Fixed x_scale, y_scale; - - - if ( !format ) - return TT_Err_Ok; - - ins = HANDLE_Instance( gpi->instance ); - - x_ppem = ins->metrics.x_ppem; - y_ppem = ins->metrics.y_ppem; - x_scale = TT_MulDiv( 0x10000, - ins->metrics.x_scale1, - ins->metrics.x_scale2 ); - y_scale = TT_MulDiv( 0x10000, - ins->metrics.y_scale1, - ins->metrics.y_scale2 ); - - /* design units -> fractional pixel */ - - if ( format & HAVE_X_PLACEMENT ) - gd->x_pos += x_scale * vr->XPlacement / 0x10000; - if ( format & HAVE_Y_PLACEMENT ) - gd->y_pos += y_scale * vr->YPlacement / 0x10000; - if ( format & HAVE_X_ADVANCE ) - gd->x_advance += x_scale * vr->XAdvance / 0x10000; - if ( format & HAVE_Y_ADVANCE ) - gd->y_advance += y_scale * vr->YAdvance / 0x10000; - - /* we use the device tables only if gpi->glyph.z is not NULL */ - - if ( gpi->glyph.z ) - { - /* pixel -> fractional pixel */ - - if ( format & HAVE_X_PLACEMENT_DEVICE ) - { - Get_Device( &vr->XPlacementDevice, x_ppem, &pixel_value ); - gd->x_pos += pixel_value << 6; - } - if ( format & HAVE_Y_PLACEMENT_DEVICE ) - { - Get_Device( &vr->YPlacementDevice, y_ppem, &pixel_value ); - gd->y_pos += pixel_value << 6; - } - if ( format & HAVE_X_ADVANCE_DEVICE ) - { - Get_Device( &vr->XAdvanceDevice, x_ppem, &pixel_value ); - gd->x_advance += pixel_value << 6; - } - if ( format & HAVE_Y_ADVANCE_DEVICE ) - { - Get_Device( &vr->YAdvanceDevice, y_ppem, &pixel_value ); - gd->y_advance += pixel_value << 6; - } - } - - /* values returned from mmfunc() are already in fractional pixels */ - - if ( format & HAVE_X_ID_PLACEMENT ) - { - error = (gpos->mmfunc)( gpi->instance, vr->XIdPlacement, - &value, gpos->data ); - if ( error ) - return error; - gd->x_pos += value; - } - if ( format & HAVE_Y_ID_PLACEMENT ) - { - error = (gpos->mmfunc)( gpi->instance, vr->YIdPlacement, - &value, gpos->data ); - if ( error ) - return error; - gd->y_pos += value; - } - if ( format & HAVE_X_ID_ADVANCE ) - { - error = (gpos->mmfunc)( gpi->instance, vr->XIdAdvance, - &value, gpos->data ); - if ( error ) - return error; - gd->x_advance += value; - } - if ( format & HAVE_Y_ID_ADVANCE ) - { - error = (gpos->mmfunc)( gpi->instance, vr->YIdAdvance, - &value, gpos->data ); - if ( error ) - return error; - gd->y_advance += value; - } - - return error; - } - - - /* AnchorFormat1 */ - /* AnchorFormat2 */ - /* AnchorFormat3 */ - /* AnchorFormat4 */ - - static TT_Error Load_Anchor( TTO_Anchor* an, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - an->PosFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( an->PosFormat ) - { - case 1: - if ( ACCESS_Frame( 4L ) ) - return error; - - an->af.af1.XCoordinate = GET_Short(); - an->af.af1.YCoordinate = GET_Short(); - - FORGET_Frame(); - break; - - case 2: - if ( ACCESS_Frame( 6L ) ) - return error; - - an->af.af2.XCoordinate = GET_Short(); - an->af.af2.YCoordinate = GET_Short(); - an->af.af2.AnchorPoint = GET_UShort(); - - FORGET_Frame(); - break; - - case 3: - if ( ACCESS_Frame( 6L ) ) - return error; - - an->af.af3.XCoordinate = GET_Short(); - an->af.af3.YCoordinate = GET_Short(); - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &an->af.af3.XDeviceTable, - input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - } - else - { - an->af.af3.XDeviceTable.StartSize = 0; - an->af.af3.XDeviceTable.EndSize = 0; - an->af.af3.XDeviceTable.DeltaValue = 0; - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Device( &an->af.af3.YDeviceTable, - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - else - { - an->af.af3.YDeviceTable.StartSize = 0; - an->af.af3.YDeviceTable.EndSize = 0; - an->af.af3.YDeviceTable.DeltaValue = 0; - } - break; - - case 4: - if ( ACCESS_Frame( 4L ) ) - return error; - - an->af.af4.XIdAnchor = GET_UShort(); - an->af.af4.YIdAnchor = GET_UShort(); - - FORGET_Frame(); - break; - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; - - Fail: - Free_Device( &an->af.af3.XDeviceTable ); - return error; - } - - - static void Free_Anchor( TTO_Anchor* an ) - { - if ( an->PosFormat == 3 ) - { - Free_Device( &an->af.af3.YDeviceTable ); - Free_Device( &an->af.af3.XDeviceTable ); - } - } - - - static TT_Error Get_Anchor( GPOS_Instance* gpi, - TTO_Anchor* an, - TT_UShort glyph_index, - TT_Pos* x_value, - TT_Pos* y_value ) - { - TT_Error error = TT_Err_Ok; - - PInstance ins; - PGlyph glyph; - TTO_GPOSHeader* gpos = gpi->gpos; - UShort ap; - - Short pixel_value; - UShort load_flags; - - UShort x_ppem, y_ppem; - Fixed x_scale, y_scale; - - - ins = HANDLE_Instance( gpi->instance ); - - x_ppem = ins->metrics.x_ppem; - y_ppem = ins->metrics.y_ppem; - x_scale = TT_MulDiv( 0x10000, - ins->metrics.x_scale1, - ins->metrics.x_scale2 ); - y_scale = TT_MulDiv( 0x10000, - ins->metrics.y_scale1, - ins->metrics.y_scale2 ); - - switch ( an->PosFormat ) - { - case 0: - /* The special case of an empty AnchorTable */ - - return TTO_Err_Not_Covered; - - case 1: - *x_value = x_scale * an->af.af1.XCoordinate / 0x10000; - *y_value = y_scale * an->af.af1.YCoordinate / 0x10000; - break; - - case 2: - /* glyphs must be scaled */ - - load_flags = gpi->load_flags | TTLOAD_SCALE_GLYPH; - - /* we use the glyph contour point only if gpi->glyph.z is not NULL */ - - if ( gpi->glyph.z ) - { - error = (gpos->gfunc)( gpi->instance, gpi->glyph, - glyph_index, load_flags ); - if ( error ) - return error; - - glyph = HANDLE_Glyph( gpi->glyph ); - ap = an->af.af2.AnchorPoint; - - /* if outline.n_points is set to zero by gfunc(), we use the - design coordinate value pair. This can happen e.g. for - sbit glyphs */ - - if ( !glyph->outline.n_points ) - goto no_contour_point; - - if ( ap >= glyph->outline.n_points ) - return TTO_Err_Invalid_GPOS_SubTable; - - *x_value = glyph->outline.points[ap].x; - *y_value = glyph->outline.points[ap].y; - } - else - { - no_contour_point: - *x_value = x_scale * an->af.af3.XCoordinate / 0x10000; - *y_value = y_scale * an->af.af3.YCoordinate / 0x10000; - } - break; - - case 3: - /* we use the device tables only if gpi->glyph.z is not NULL */ - - if ( gpi->glyph.z ) - { - Get_Device( &an->af.af3.XDeviceTable, x_ppem, &pixel_value ); - *x_value = pixel_value << 6; - Get_Device( &an->af.af3.YDeviceTable, y_ppem, &pixel_value ); - *y_value = pixel_value << 6; - } - else - *x_value = *y_value = 0; - - *x_value += x_scale * an->af.af3.XCoordinate / 0x10000; - *y_value += y_scale * an->af.af3.YCoordinate / 0x10000; - break; - - case 4: - error = (gpos->mmfunc)( gpi->instance, an->af.af4.XIdAnchor, - x_value, gpos->data ); - if ( error ) - return error; - - error = (gpos->mmfunc)( gpi->instance, an->af.af4.YIdAnchor, - y_value, gpos->data ); - if ( error ) - return error; - break; - } - - return error; - } - - - /* MarkArray */ - - static TT_Error Load_MarkArray ( TTO_MarkArray* ma, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_MarkRecord* mr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ma->MarkCount = GET_UShort(); - - FORGET_Frame(); - - ma->MarkRecord = NULL; - - if ( ALLOC_ARRAY( ma->MarkRecord, count, TTO_MarkRecord ) ) - return error; - - mr = ma->MarkRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 4L ) ) - goto Fail; - - mr[n].Class = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &mr[n].MarkAnchor, input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_Anchor( &mr[n].MarkAnchor ); - - FREE( mr ); - return error; - } - - - static void Free_MarkArray( TTO_MarkArray* ma ) - { - UShort n, count; - - TTO_MarkRecord* mr; - - - if ( ma->MarkRecord ) - { - count = ma->MarkCount; - mr = ma->MarkRecord; - - for ( n = 0; n < count; n++ ) - Free_Anchor( &mr[n].MarkAnchor ); - - FREE( mr ); - } - } - - - /* LookupType 1 */ - - /* SinglePosFormat1 */ - /* SinglePosFormat2 */ - - TT_Error Load_SinglePos( TTO_SinglePos* sp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count, format; - ULong cur_offset, new_offset, base_offset; - - TTO_ValueRecord* vr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 6L ) ) - return error; - - sp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - format = sp->ValueFormat = GET_UShort(); - - FORGET_Frame(); - - if ( !format ) - return TTO_Err_Invalid_GPOS_SubTable; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &sp->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - switch ( sp->PosFormat ) - { - case 1: - error = Load_ValueRecord( &sp->spf.spf1.Value, format, - base_offset, input ); - if ( error ) - goto Fail2; - break; - - case 2: - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = sp->spf.spf2.ValueCount = GET_UShort(); - - FORGET_Frame(); - - sp->spf.spf2.Value = NULL; - - if ( ALLOC_ARRAY( sp->spf.spf2.Value, count, TTO_ValueRecord ) ) - goto Fail2; - - vr = sp->spf.spf2.Value; - - for ( n = 0; n < count; n++ ) - { - error = Load_ValueRecord( &vr[n], format, base_offset, input ); - if ( error ) - goto Fail1; - } - break; - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_ValueRecord( &vr[n], format ); - - FREE( vr ); - - Fail2: - Free_Coverage( &sp->Coverage ); - return error; - } - - - void Free_SinglePos( TTO_SinglePos* sp ) - { - UShort n, count, format; - - TTO_ValueRecord* v; - - - format = sp->ValueFormat; - - switch ( sp->PosFormat ) - { - case 1: - Free_ValueRecord( &sp->spf.spf1.Value, format ); - break; - - case 2: - if ( sp->spf.spf2.Value ) - { - count = sp->spf.spf2.ValueCount; - v = sp->spf.spf2.Value; - - for ( n = 0; n < count; n++ ) - Free_ValueRecord( &v[n], format ); - - FREE( v ); - } - break; - } - - Free_Coverage( &sp->Coverage ); - } - - - static TT_Error Lookup_SinglePos( GPOS_Instance* gpi, - TTO_SinglePos* sp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - UShort index, property; - TT_Error error; - TTO_GPOSHeader* gpos = gpi->gpos; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gpos->gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &sp->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - switch ( sp->PosFormat ) - { - case 1: - error = Get_ValueRecord( gpi, &sp->spf.spf1.Value, - sp->ValueFormat, &out[in->pos] ); - if ( error ) - return error; - break; - - case 2: - if ( index >= sp->spf.spf2.ValueCount ) - return TTO_Err_Invalid_GPOS_SubTable; - error = Get_ValueRecord( gpi, &sp->spf.spf2.Value[index], - sp->ValueFormat, &out[in->pos] ); - if ( error ) - return error; - break; - - default: - return TTO_Err_Invalid_GPOS_SubTable; - } - - (in->pos)++; - - return TT_Err_Ok; - } - - - /* LookupType 2 */ - - /* PairSet */ - - static TT_Error Load_PairSet ( TTO_PairSet* ps, - UShort format1, - UShort format2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong base_offset; - - TTO_PairValueRecord* pvr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ps->PairValueCount = GET_UShort(); - - FORGET_Frame(); - - ps->PairValueRecord = NULL; - - if ( ALLOC_ARRAY( ps->PairValueRecord, count, TTO_PairValueRecord ) ) - return error; - - pvr = ps->PairValueRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - pvr[n].SecondGlyph = GET_UShort(); - - FORGET_Frame(); - - if ( format1 ) - { - error = Load_ValueRecord( &pvr[n].Value1, format1, - base_offset, input ); - if ( error ) - goto Fail; - } - if ( format2 ) - { - error = Load_ValueRecord( &pvr[n].Value2, format2, - base_offset, input ); - if ( error ) - goto Fail; - } - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - { - if ( format1 ) - Free_ValueRecord( &pvr[n].Value1, format1 ); - if ( format2 ) - Free_ValueRecord( &pvr[n].Value2, format2 ); - } - - FREE( pvr ); - return error; - } - - - static void Free_PairSet( TTO_PairSet* ps, - UShort format1, - UShort format2 ) - { - UShort n, count; - - TTO_PairValueRecord* pvr; - - - if ( ps->PairValueRecord ) - { - count = ps->PairValueCount; - pvr = ps->PairValueRecord; - - for ( n = 0; n < count; n++ ) - { - if ( format1 ) - Free_ValueRecord( &pvr[n].Value1, format1 ); - if ( format2 ) - Free_ValueRecord( &pvr[n].Value2, format2 ); - } - - FREE( pvr ); - } - } - - - /* PairPosFormat1 */ - - static TT_Error Load_PairPos1( TTO_PairPosFormat1* ppf1, - UShort format1, - UShort format2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_PairSet* ps; - - - base_offset = FILE_Pos() - 8L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ppf1->PairSetCount = GET_UShort(); - - FORGET_Frame(); - - ppf1->PairSet = NULL; - - if ( ALLOC_ARRAY( ppf1->PairSet, count, TTO_PairSet ) ) - goto Fail; - - ps = ppf1->PairSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_PairSet( &ps[n], format1, - format2, input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_PairSet( &ps[n], format1, format2 ); - - FREE( ps ); - return error; - } - - - static void Free_PairPos1( TTO_PairPosFormat1* ppf1, - UShort format1, - UShort format2 ) - { - UShort n, count; - - TTO_PairSet* ps; - - - if ( ppf1->PairSet ) - { - count = ppf1->PairSetCount; - ps = ppf1->PairSet; - - for ( n = 0; n < count; n++ ) - Free_PairSet( &ps[n], format1, format2 ); - - FREE( ps ); - } - } - - - /* PairPosFormat2 */ - - static TT_Error Load_PairPos2( TTO_PairPosFormat2* ppf2, - UShort format1, - UShort format2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort m, n, count1, count2; - ULong cur_offset, new_offset1, new_offset2, base_offset; - - TTO_Class1Record* c1r; - TTO_Class2Record* c2r; - - - base_offset = FILE_Pos() - 8L; - - if ( ACCESS_Frame( 8L ) ) - return error; - - new_offset1 = GET_UShort() + base_offset; - new_offset2 = GET_UShort() + base_offset; - - /* `Class1Count' and `Class2Count' are the upper limits for class - values, thus we read it now to make additional safety checks. */ - - count1 = ppf2->Class1Count = GET_UShort(); - count2 = ppf2->Class2Count = GET_UShort(); - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset1 ) || - ( error = Load_ClassDefinition( &ppf2->ClassDef1, count1, - input ) ) != TT_Err_Ok ) - return error; - if ( FILE_Seek( new_offset2 ) || - ( error = Load_ClassDefinition( &ppf2->ClassDef2, count2, - input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - - ppf2->Class1Record = NULL; - - if ( ALLOC_ARRAY( ppf2->Class1Record, count1, TTO_Class1Record ) ) - goto Fail1; - - c1r = ppf2->Class1Record; - - for ( m = 0; m < count1; m++ ) - { - c1r[m].Class2Record = NULL; - - if ( ALLOC_ARRAY( c1r[m].Class2Record, count2, TTO_Class2Record ) ) - goto Fail1; - - c2r = c1r[m].Class2Record; - - for ( n = 0; n < count2; n++ ) - { - if ( format1 ) - { - error = Load_ValueRecord( &c2r[n].Value1, format1, - base_offset, input ); - if ( error ) - goto Fail1; - } - if ( format2 ) - { - error = Load_ValueRecord( &c2r[n].Value2, format2, - base_offset, input ); - if ( error ) - goto Fail1; - } - } - } - - return TT_Err_Ok; - - Fail1: - for ( m = 0; m < count1; m++ ) - { - c2r = c1r[m].Class2Record; - - for ( n = 0; n < count2; n++ ) - { - if ( format1 ) - Free_ValueRecord( &c2r[n].Value1, format1 ); - if ( format2 ) - Free_ValueRecord( &c2r[n].Value2, format2 ); - } - - FREE( c2r ); - } - - FREE( c1r ); - - Free_ClassDefinition( &ppf2->ClassDef2 ); - - Fail2: - Free_ClassDefinition( &ppf2->ClassDef1 ); - return error; - } - - - static void Free_PairPos2( TTO_PairPosFormat2* ppf2, - UShort format1, - UShort format2 ) - { - UShort m, n, count1, count2; - - TTO_Class1Record* c1r; - TTO_Class2Record* c2r; - - - if ( ppf2->Class1Record ) - { - c1r = ppf2->Class1Record; - count1 = ppf2->Class1Count; - count2 = ppf2->Class2Count; - - for ( m = 0; m < count1; m++ ) - { - c2r = c1r[m].Class2Record; - - for ( n = 0; n < count2; n++ ) - { - if ( format1 ) - Free_ValueRecord( &c2r[n].Value1, format1 ); - if ( format2 ) - Free_ValueRecord( &c2r[n].Value2, format2 ); - } - - FREE( c2r ); - } - - FREE( c1r ); - - Free_ClassDefinition( &ppf2->ClassDef2 ); - Free_ClassDefinition( &ppf2->ClassDef1 ); - } - } - - - TT_Error Load_PairPos( TTO_PairPos* pp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort format1, format2; - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 8L ) ) - return error; - - pp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - format1 = pp->ValueFormat1 = GET_UShort(); - format2 = pp->ValueFormat2 = GET_UShort(); - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &pp->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - switch ( pp->PosFormat ) - { - case 1: - error = Load_PairPos1( &pp->ppf.ppf1, format1, format2, input ); - if ( error ) - goto Fail; - break; - - case 2: - error = Load_PairPos2( &pp->ppf.ppf2, format1, format2, input ); - if ( error ) - goto Fail; - break; - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; - - Fail: - Free_Coverage( &pp->Coverage ); - return error; - } - - - void Free_PairPos( TTO_PairPos* pp ) - { - UShort format1, format2; - - - format1 = pp->ValueFormat1; - format2 = pp->ValueFormat2; - - switch ( pp->PosFormat ) - { - case 1: - Free_PairPos1( &pp->ppf.ppf1, format1, format2 ); - break; - - case 2: - Free_PairPos2( &pp->ppf.ppf2, format1, format2 ); - break; - } - - Free_Coverage( &pp->Coverage ); - } - - - static TT_Error Lookup_PairPos1( GPOS_Instance* gpi, - TTO_PairPosFormat1* ppf1, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort first_pos, - UShort index, - UShort format1, - UShort format2 ) - { - TT_Error error; - UShort numpvr, glyph2; - - TTO_PairValueRecord* pvr; - - - if ( index >= ppf1->PairSetCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - pvr = ppf1->PairSet[index].PairValueRecord; - if ( !pvr ) - return TTO_Err_Invalid_GPOS_SubTable; - - glyph2 = in->string[in->pos]; - - for ( numpvr = ppf1->PairSet[index].PairValueCount; - numpvr; - numpvr--, pvr++ ) - { - if ( glyph2 == pvr->SecondGlyph ) - { - error = Get_ValueRecord( gpi, &pvr->Value1, format1, - &out[first_pos] ); - if ( error ) - return error; - return Get_ValueRecord( gpi, &pvr->Value2, format2, - &out[in->pos] ); - } - } - - return TTO_Err_Not_Covered; - } - - - static TT_Error Lookup_PairPos2( GPOS_Instance* gpi, - TTO_PairPosFormat2* ppf2, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort first_pos, - UShort format1, - UShort format2 ) - { - TT_Error error; - UShort cl1, cl2; - - TTO_Class1Record* c1r; - TTO_Class2Record* c2r; - - - error = Get_Class( &ppf2->ClassDef1, in->string[first_pos], - &cl1, NULL ); - if ( error ) - return error; - error = Get_Class( &ppf2->ClassDef2, in->string[in->pos], - &cl2, NULL ); - if ( error ) - return error; - - c1r = &ppf2->Class1Record[cl1]; - if ( !c1r ) - return TTO_Err_Invalid_GPOS_SubTable; - c2r = &c1r->Class2Record[cl2]; - - error = Get_ValueRecord( gpi, &c2r->Value1, format1, &out[first_pos] ); - if ( error ) - return error; - return Get_ValueRecord( gpi, &c2r->Value2, format2, &out[in->pos] ); - } - - - static TT_Error Lookup_PairPos( GPOS_Instance* gpi, - TTO_PairPos* pp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - TT_Error error; - UShort index, property, first_pos; - TTO_GPOSHeader* gpos = gpi->gpos; - - - if ( in->pos >= in->length - 1 ) - return TTO_Err_Not_Covered; /* Not enough glyphs in input */ - - if ( context_length != 0xFFFF && context_length < 2 ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gpos->gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &pp->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - /* second glyph */ - - first_pos = in->pos; - (in->pos)++; - - while ( CHECK_Property( gpos->gdef, in->string[in->pos], - flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos < in->length ) - (in->pos)++; - else - break; - } - - switch ( pp->PosFormat ) - { - case 1: - error = Lookup_PairPos1( gpi, &pp->ppf.ppf1, in, out, - first_pos, index, - pp->ValueFormat1, pp->ValueFormat2 ); - break; - - case 2: - error = Lookup_PairPos2( gpi, &pp->ppf.ppf2, in, out, first_pos, - pp->ValueFormat1, pp->ValueFormat2 ); - break; - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - /* adjusting the `next' glyph */ - - if ( pp->ValueFormat2 ) - (in->pos)++; - - return error; - } - - - /* LookupType 3 */ - - /* CursivePosFormat1 */ - - TT_Error Load_CursivePos( TTO_CursivePos* cp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_EntryExitRecord* eer; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - cp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &cp->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = cp->EntryExitCount = GET_UShort(); - - FORGET_Frame(); - - cp->EntryExitRecord = NULL; - - if ( ALLOC_ARRAY( cp->EntryExitRecord, count, TTO_EntryExitRecord ) ) - goto Fail2; - - eer = cp->EntryExitRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &eer[n].EntryAnchor, - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - eer[n].EntryAnchor.PosFormat = 0; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &eer[n].ExitAnchor, - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - eer[n].ExitAnchor.PosFormat = 0; - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - { - Free_Anchor( &eer[n].EntryAnchor ); - Free_Anchor( &eer[n].ExitAnchor ); - } - - FREE( eer ); - - Fail2: - Free_Coverage( &cp->Coverage ); - return error; - } - - - void Free_CursivePos( TTO_CursivePos* cp ) - { - UShort n, count; - - TTO_EntryExitRecord* eer; - - - if ( cp->EntryExitRecord ) - { - count = cp->EntryExitCount; - eer = cp->EntryExitRecord; - - for ( n = 0; n < count; n++ ) - { - Free_Anchor( &eer[n].EntryAnchor ); - Free_Anchor( &eer[n].ExitAnchor ); - } - - FREE( eer ); - } - - Free_Coverage( &cp->Coverage ); - } - - - static TT_Error Lookup_CursivePos( GPOS_Instance* gpi, - TTO_CursivePos* cp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - UShort index, property; - TT_Error error; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_EntryExitRecord* eer; - TT_Pos entry_x, entry_y; - TT_Pos exit_x, exit_y; - - - if ( context_length != 0xFFFF && context_length < 1 ) - { - gpi->last = 0xFFFF; - return TTO_Err_Not_Covered; - } - - /* Glyphs not having the right GDEF properties will be ignored, i.e., - gpi->last won't be reset (contrary to user defined properties). */ - - if ( CHECK_Property( gpos->gdef, in->string[in->pos], flags, &property ) ) - return error; - - /* We don't handle mark glyphs here. According to Andrei, this isn't - possible, but who knows... */ - - if ( property == MARK_GLYPH ) - { - gpi->last = 0xFFFF; - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &cp->Coverage, in->string[in->pos], &index ); - if ( error ) - { - gpi->last = 0xFFFF; - return error; - } - - if ( index >= cp->EntryExitCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - eer = &cp->EntryExitRecord[index]; - - /* Now comes the messiest part of the whole OpenType - specification. At first glance, cursive connections seem easy - to understand, but there are pitfalls! The reason is that - the specs don't mention how to compute the advance values - resp. glyph offsets. I was told it would be an omission, to - be fixed in the next OpenType version... Again many thanks to - Andrei Burago for clarifications. - - Consider the following example: - - | xadv1 | - +---------+ - | | - +-----+--+ 1 | - | | .| | - | 0+--+------+ - | 2 | - | | - 0+--------+ - | xadv2 | - - glyph1: advance width = 12 - anchor point = (3,1) - - glyph2: advance width = 11 - anchor point = (9,4) - - LSB is 1 for both glyphs (so the boxes drawn above are glyph - bboxes). Writing direction is R2L; `0' denotes the glyph's - coordinate origin. - - Now the surprising part: The advance width of the *left* glyph - (resp. of the *bottom* glyph) will be modified, no matter - whether the writing direction is L2R or R2L (resp. T2B or - B2T)! This assymetry is caused by the fact that the glyph's - coordinate origin is always the lower left corner for all - writing directions. - - Continuing the above example, we can compute the new - (horizontal) advance width of glyph2 as - - 9 - 3 = 6 , - - and the new vertical offset of glyph2 as - - 1 - 4 = -3 . - - - Vertical writing direction is far more complicated: - - a) Assuming that we recompute the advance height of the lower glyph: - - -- - +---------+ - -- | | - +-----+--+ 1 | yadv1 - | | .| | - yadv2 | 0+--+------+ -- BSB1 -- - | 2 | -- -- y_offset - | | - BSB2 -- 0+--------+ -- - -- -- - - glyph1: advance height = 6 - anchor point = (3,1) - - glyph2: advance height = 7 - anchor point = (9,4) - - TSB is 1 for both glyphs; writing direction is T2B. - - - BSB1 = yadv1 - (TSB1 + ymax1) - BSB2 = yadv2 - (TSB2 + ymax2) - y_offset = y2 - y1 - - vertical advance width of glyph2 - = y_offset + BSB2 - BSB1 - = (y2 - y1) + (yadv2 - (TSB2 + ymax2)) - (yadv1 - (TSB1 + ymax1)) - = y2 - y1 + yadv2 - TSB2 - ymax2 - (yadv1 - TSB1 - ymax1) - = y2 - y1 + yadv2 - TSB2 - ymax2 - yadv1 + TSB1 + ymax1 - - - b) Assuming that we recompute the advance height of the upper glyph: - - -- -- - +---------+ -- TSB1 - -- -- | | - TSB2 -- +-----+--+ 1 | yadv1 ymax1 - | | .| | - yadv2 | 0+--+------+ -- -- - ymax2 | 2 | -- y_offset - | | - -- 0+--------+ -- - -- - - glyph1: advance height = 6 - anchor point = (3,1) - - glyph2: advance height = 7 - anchor point = (9,4) - - TSB is 1 for both glyphs; writing direction is T2B. - - y_offset = y2 - y1 - - vertical advance width of glyph2 - = TSB1 + ymax1 + y_offset - (TSB2 + ymax2) - = TSB1 + ymax1 + y2 - y1 - TSB2 - ymax2 - - - Comparing a) with b) shows that b) is easier to compute. I'll wait - for a reply from Andrei to see what should really be implemented... - - Since horizontal advance widths or vertical advance heights - can be used alone but not together, no ambiguity occurs. */ - - if ( gpi->last == 0xFFFF ) - goto end; - - /* Get_Anchor() returns TTO_Err_Not_Covered if there is no anchor - table. */ - - error = Get_Anchor( gpi, &eer->EntryAnchor, in->string[in->pos], - &entry_x, &entry_y ); - if ( error == TTO_Err_Not_Covered ) - goto end; - if ( error ) - return error; - - if ( gpi->r2l ) - { - out[in->pos].x_advance = entry_x - gpi->anchor_x; - out[in->pos].new_advance = TRUE; - } - else - { - out[gpi->last].x_advance = gpi->anchor_x - entry_x; - out[gpi->last].new_advance = TRUE; - } - - out[in->pos].y_pos = gpi->anchor_y - entry_y + out[gpi->last].y_pos; - - end: - error = Get_Anchor( gpi, &eer->ExitAnchor, in->string[in->pos], - &exit_x, &exit_y ); - if ( error == TTO_Err_Not_Covered ) - gpi->last = 0xFFFF; - else - { - if ( gpi->first == 0xFFFF ) - gpi->first = in->pos; - gpi->last = in->pos; - gpi->anchor_x = exit_x; - gpi->anchor_y = exit_y; - } - if ( error ) - return error; - - (in->pos)++; - - return TT_Err_Ok; - } - - - /* LookupType 4 */ - - /* BaseArray */ - - static TT_Error Load_BaseArray( TTO_BaseArray* ba, - UShort num_classes, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort m, n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_BaseRecord* br; - TTO_Anchor* ban; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ba->BaseCount = GET_UShort(); - - FORGET_Frame(); - - ba->BaseRecord = NULL; - - if ( ALLOC_ARRAY( ba->BaseRecord, count, TTO_BaseRecord ) ) - return error; - - br = ba->BaseRecord; - - for ( m = 0; m < count; m++ ) - { - br[m].BaseAnchor = NULL; - - if ( ALLOC_ARRAY( br[m].BaseAnchor, num_classes, TTO_Anchor ) ) - goto Fail; - - ban = br[m].BaseAnchor; - - for ( n = 0; n < num_classes; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &ban[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - } - - return TT_Err_Ok; - - Fail: - for ( m = 0; m < count; m++ ) - { - ban = br[m].BaseAnchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &ban[n] ); - - FREE( ban ); - } - - FREE( br ); - return error; - } - - - static void Free_BaseArray( TTO_BaseArray* ba, - UShort num_classes ) - { - UShort m, n, count; - - TTO_BaseRecord* br; - TTO_Anchor* ban; - - - if ( ba->BaseRecord ) - { - count = ba->BaseCount; - br = ba->BaseRecord; - - for ( m = 0; m < count; m++ ) - { - ban = br[m].BaseAnchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &ban[n] ); - - FREE( ban ); - } - - FREE( br ); - } - } - - - /* MarkBasePosFormat1 */ - - TT_Error Load_MarkBasePos( TTO_MarkBasePos* mbp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - mbp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mbp->MarkCoverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mbp->BaseCoverage, input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 4L ) ) - goto Fail2; - - mbp->ClassCount = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_MarkArray( &mbp->MarkArray, input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_BaseArray( &mbp->BaseArray, mbp->ClassCount, - input ) ) != TT_Err_Ok ) - goto Fail1; - - return TT_Err_Ok; - - Fail1: - Free_MarkArray( &mbp->MarkArray ); - - Fail2: - Free_Coverage( &mbp->BaseCoverage ); - - Fail3: - Free_Coverage( &mbp->MarkCoverage ); - return error; - } - - - void Free_MarkBasePos( TTO_MarkBasePos* mbp ) - { - Free_BaseArray( &mbp->BaseArray, mbp->ClassCount ); - Free_MarkArray( &mbp->MarkArray ); - Free_Coverage( &mbp->BaseCoverage ); - Free_Coverage( &mbp->MarkCoverage ); - } - - - static TT_Error Lookup_MarkBasePos( GPOS_Instance* gpi, - TTO_MarkBasePos* mbp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - TT_UInt i, j; - UShort mark_index, base_index, property, class; - TT_Pos x_mark_value, y_mark_value, x_base_value, y_base_value; - TT_Error error; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_MarkArray* ma; - TTO_BaseArray* ba; - TTO_BaseRecord* br; - TTO_Anchor* mark_anchor; - TTO_Anchor* base_anchor; - - TTO_GPOS_Data* o; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( flags & IGNORE_BASE_GLYPHS ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gpos->gdef, in->string[in->pos], - flags, &property ) ) - return error; - - error = Coverage_Index( &mbp->MarkCoverage, in->string[in->pos], - &mark_index ); - if ( error ) - return error; - - /* now we search backwards for a non-mark glyph */ - - i = 1; - j = in->pos - 1; - - while ( i <= in->pos ) - { - error = TT_GDEF_Get_Glyph_Property( gpos->gdef, in->string[j], - &property ); - if ( error ) - return error; - - if ( !( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) ) - break; - - i++; - j--; - } - - /* The following assertion is too strong -- at least for mangal.ttf. */ -#if 0 - if ( property != TTO_BASE_GLYPH ) - return TTO_Err_Not_Covered; -#endif - - if ( i > in->pos ) - return TTO_Err_Not_Covered; - - error = Coverage_Index( &mbp->BaseCoverage, in->string[j], - &base_index ); - if ( error ) - return error; - - ma = &mbp->MarkArray; - - if ( mark_index >= ma->MarkCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - class = ma->MarkRecord[mark_index].Class; - mark_anchor = &ma->MarkRecord[mark_index].MarkAnchor; - - if ( class >= mbp->ClassCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - ba = &mbp->BaseArray; - - if ( base_index >= ba->BaseCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - br = &ba->BaseRecord[base_index]; - base_anchor = &br->BaseAnchor[class]; - - error = Get_Anchor( gpi, mark_anchor, in->string[in->pos], - &x_mark_value, &y_mark_value ); - if ( error ) - return error; - error = Get_Anchor( gpi, base_anchor, in->string[j], - &x_base_value, &y_base_value ); - if ( error ) - return error; - - /* anchor points are not cumulative */ - - o = &out[in->pos]; - - o->x_pos = x_base_value - x_mark_value; - o->y_pos = y_base_value - y_mark_value; - o->x_advance = 0; - o->y_advance = 0; - o->back = i; - - (in->pos)++; - - return TT_Err_Ok; - } - - - /* LookupType 5 */ - - /* LigatureAttach */ - - static TT_Error Load_LigatureAttach( TTO_LigatureAttach* lat, - UShort num_classes, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort m, n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ComponentRecord* cr; - TTO_Anchor* lan; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = lat->ComponentCount = GET_UShort(); - - FORGET_Frame(); - - lat->ComponentRecord = NULL; - - if ( ALLOC_ARRAY( lat->ComponentRecord, count, TTO_ComponentRecord ) ) - return error; - - cr = lat->ComponentRecord; - - for ( m = 0; m < count; m++ ) - { - cr[m].LigatureAnchor = NULL; - - if ( ALLOC_ARRAY( cr[m].LigatureAnchor, num_classes, TTO_Anchor ) ) - goto Fail; - - lan = cr[m].LigatureAnchor; - - for ( n = 0; n < num_classes; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( new_offset ) - { - new_offset += base_offset; - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &lan[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - else - lan[n].PosFormat = 0; - } - } - - return TT_Err_Ok; - - Fail: - for ( m = 0; m < count; m++ ) - { - lan = cr[m].LigatureAnchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &lan[n] ); - - FREE( lan ); - } - - FREE( cr ); - return error; - } - - - static void Free_LigatureAttach( TTO_LigatureAttach* lat, - UShort num_classes ) - { - UShort m, n, count; - - TTO_ComponentRecord* cr; - TTO_Anchor* lan; - - - if ( lat->ComponentRecord ) - { - count = lat->ComponentCount; - cr = lat->ComponentRecord; - - for ( m = 0; m < count; m++ ) - { - lan = cr[m].LigatureAnchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &lan[n] ); - - FREE( lan ); - } - - FREE( cr ); - } - } - - - /* LigatureArray */ - - static TT_Error Load_LigatureArray( TTO_LigatureArray* la, - UShort num_classes, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_LigatureAttach* lat; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = la->LigatureCount = GET_UShort(); - - FORGET_Frame(); - - la->LigatureAttach = NULL; - - if ( ALLOC_ARRAY( la->LigatureAttach, count, TTO_LigatureAttach ) ) - return error; - - lat = la->LigatureAttach; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LigatureAttach( &lat[n], num_classes, - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_LigatureAttach( &lat[n], num_classes ); - - FREE( lat ); - return error; - } - - - static void Free_LigatureArray( TTO_LigatureArray* la, - UShort num_classes ) - { - UShort n, count; - - TTO_LigatureAttach* lat; - - - if ( la->LigatureAttach ) - { - count = la->LigatureCount; - lat = la->LigatureAttach; - - for ( n = 0; n < count; n++ ) - Free_LigatureAttach( &lat[n], num_classes ); - - FREE( lat ); - } - } - - - /* MarkLigPosFormat1 */ - - TT_Error Load_MarkLigPos( TTO_MarkLigPos* mlp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - mlp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mlp->MarkCoverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mlp->LigatureCoverage, - input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 4L ) ) - goto Fail2; - - mlp->ClassCount = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_MarkArray( &mlp->MarkArray, input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LigatureArray( &mlp->LigatureArray, mlp->ClassCount, - input ) ) != TT_Err_Ok ) - goto Fail1; - - return TT_Err_Ok; - - Fail1: - Free_MarkArray( &mlp->MarkArray ); - - Fail2: - Free_Coverage( &mlp->LigatureCoverage ); - - Fail3: - Free_Coverage( &mlp->MarkCoverage ); - return error; - } - - - void Free_MarkLigPos( TTO_MarkLigPos* mlp ) - { - Free_LigatureArray( &mlp->LigatureArray, mlp->ClassCount ); - Free_MarkArray( &mlp->MarkArray ); - Free_Coverage( &mlp->LigatureCoverage ); - Free_Coverage( &mlp->MarkCoverage ); - } - - - static TT_Error Lookup_MarkLigPos( GPOS_Instance* gpi, - TTO_MarkLigPos* mlp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - TT_UInt i, j; - UShort mark_index, lig_index, property, class; - UShort mark_glyph; - TT_Pos x_mark_value, y_mark_value, x_lig_value, y_lig_value; - TT_Error error; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_MarkArray* ma; - TTO_LigatureArray* la; - TTO_LigatureAttach* lat; - TTO_ComponentRecord* cr; - UShort comp_index; - TTO_Anchor* mark_anchor; - TTO_Anchor* lig_anchor; - - TTO_GPOS_Data* o; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( flags & IGNORE_LIGATURES ) - return TTO_Err_Not_Covered; - - mark_glyph = in->string[in->pos]; - - if ( CHECK_Property( gpos->gdef, mark_glyph, flags, &property ) ) - return error; - - error = Coverage_Index( &mlp->MarkCoverage, mark_glyph, &mark_index ); - if ( error ) - return error; - - /* now we search backwards for a non-mark glyph */ - - i = 1; - j = in->pos - 1; - - while ( i <= in->pos ) - { - error = TT_GDEF_Get_Glyph_Property( gpos->gdef, in->string[j], - &property ); - if ( error ) - return error; - - if ( !( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) ) - break; - - i++; - j--; - } - - /* Similar to Lookup_MarkBasePos(), I suspect that this assertion is - too strong, thus it is commented out. */ -#if 0 - if ( property != TTO_LIGATURE ) - return TTO_Err_Not_Covered; -#endif - - if ( i > in->pos ) - return TTO_Err_Not_Covered; - - error = Coverage_Index( &mlp->LigatureCoverage, in->string[j], - &lig_index ); - if ( error ) - return error; - - ma = &mlp->MarkArray; - - if ( mark_index >= ma->MarkCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - class = ma->MarkRecord[mark_index].Class; - mark_anchor = &ma->MarkRecord[mark_index].MarkAnchor; - - if ( class >= mlp->ClassCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - la = &mlp->LigatureArray; - - if ( lig_index >= la->LigatureCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - lat = &la->LigatureAttach[lig_index]; - - /* We must now check whether the ligature ID of the current mark glyph - is identical to the ligature ID of the found ligature. If yes, we - can directly use the component index. If not, we attach the mark - glyph to the last component of the ligature. */ - - if ( in->ligIDs && in->components && - in->ligIDs[j] == in->ligIDs[in->pos] ) - { - comp_index = in->components[in->pos]; - if ( comp_index >= lat->ComponentCount ) - return TTO_Err_Not_Covered; - } - else - comp_index = lat->ComponentCount - 1; - - cr = &lat->ComponentRecord[comp_index]; - lig_anchor = &cr->LigatureAnchor[class]; - - error = Get_Anchor( gpi, mark_anchor, in->string[in->pos], - &x_mark_value, &y_mark_value ); - if ( error ) - return error; - error = Get_Anchor( gpi, lig_anchor, in->string[j], - &x_lig_value, &y_lig_value ); - if ( error ) - return error; - - /* anchor points are not cumulative */ - - o = &out[in->pos]; - - o->x_pos = x_lig_value - x_mark_value; - o->y_pos = y_lig_value - y_mark_value; - o->x_advance = 0; - o->y_advance = 0; - o->back = i; - - (in->pos)++; - - return TT_Err_Ok; - } - - - /* LookupType 6 */ - - /* Mark2Array */ - - static TT_Error Load_Mark2Array( TTO_Mark2Array* m2a, - UShort num_classes, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort m, n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Mark2Record* m2r; - TTO_Anchor* m2an; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = m2a->Mark2Count = GET_UShort(); - - FORGET_Frame(); - - m2a->Mark2Record = NULL; - - if ( ALLOC_ARRAY( m2a->Mark2Record, count, TTO_Mark2Record ) ) - return error; - - m2r = m2a->Mark2Record; - - for ( m = 0; m < count; m++ ) - { - m2r[m].Mark2Anchor = NULL; - - if ( ALLOC_ARRAY( m2r[m].Mark2Anchor, num_classes, TTO_Anchor ) ) - goto Fail; - - m2an = m2r[m].Mark2Anchor; - - for ( n = 0; n < num_classes; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Anchor( &m2an[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - } - - return TT_Err_Ok; - - Fail: - for ( m = 0; m < count; m++ ) - { - m2an = m2r[m].Mark2Anchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &m2an[n] ); - - FREE( m2an ); - } - - FREE( m2r ); - return error; - } - - - static void Free_Mark2Array( TTO_Mark2Array* m2a, - UShort num_classes ) - { - UShort m, n, count; - - TTO_Mark2Record* m2r; - TTO_Anchor* m2an; - - - if ( m2a->Mark2Record ) - { - count = m2a->Mark2Count; - m2r = m2a->Mark2Record; - - for ( m = 0; m < count; m++ ) - { - m2an = m2r[m].Mark2Anchor; - - for ( n = 0; n < num_classes; n++ ) - Free_Anchor( &m2an[n] ); - - FREE( m2an ); - } - - FREE( m2r ); - } - } - - - /* MarkMarkPosFormat1 */ - - TT_Error Load_MarkMarkPos( TTO_MarkMarkPos* mmp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - ULong cur_offset, new_offset, base_offset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - mmp->PosFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mmp->Mark1Coverage, - input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &mmp->Mark2Coverage, - input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 4L ) ) - goto Fail2; - - mmp->ClassCount = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_MarkArray( &mmp->Mark1Array, input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Mark2Array( &mmp->Mark2Array, mmp->ClassCount, - input ) ) != TT_Err_Ok ) - goto Fail1; - - return TT_Err_Ok; - - Fail1: - Free_MarkArray( &mmp->Mark1Array ); - - Fail2: - Free_Coverage( &mmp->Mark2Coverage ); - - Fail3: - Free_Coverage( &mmp->Mark1Coverage ); - return error; - } - - - void Free_MarkMarkPos( TTO_MarkMarkPos* mmp ) - { - Free_Mark2Array( &mmp->Mark2Array, mmp->ClassCount ); - Free_MarkArray( &mmp->Mark1Array ); - Free_Coverage( &mmp->Mark2Coverage ); - Free_Coverage( &mmp->Mark1Coverage ); - } - - - static TT_Error Lookup_MarkMarkPos( GPOS_Instance* gpi, - TTO_MarkMarkPos* mmp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length ) - { - UShort j, mark1_index, mark2_index, property, class; - TT_Pos x_mark1_value, y_mark1_value, - x_mark2_value, y_mark2_value; - TT_Error error; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_MarkArray* ma1; - TTO_Mark2Array* ma2; - TTO_Mark2Record* m2r; - TTO_Anchor* mark1_anchor; - TTO_Anchor* mark2_anchor; - - TTO_GPOS_Data* o; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( flags & IGNORE_MARKS ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gpos->gdef, in->string[in->pos], - flags, &property ) ) - return error; - - error = Coverage_Index( &mmp->Mark1Coverage, in->string[in->pos], - &mark1_index ); - if ( error ) - return error; - - /* now we check the preceding glyph whether it is a suitable - mark glyph */ - - if ( in->pos == 0 ) - return TTO_Err_Not_Covered; - - j = in->pos - 1; - error = TT_GDEF_Get_Glyph_Property( gpos->gdef, in->string[j], - &property ); - if ( error ) - return error; - - if ( flags & IGNORE_SPECIAL_MARKS ) - { - if ( property != (flags & 0xFF00) ) - return TTO_Err_Not_Covered; - } - else - { - if ( property != TTO_MARK ) - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &mmp->Mark2Coverage, in->string[j], - &mark2_index ); - if ( error ) - return error; - - ma1 = &mmp->Mark1Array; - - if ( mark1_index >= ma1->MarkCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - class = ma1->MarkRecord[mark1_index].Class; - mark1_anchor = &ma1->MarkRecord[mark1_index].MarkAnchor; - - if ( class >= mmp->ClassCount ) - return TTO_Err_Invalid_GPOS_SubTable; - - ma2 = &mmp->Mark2Array; - - if ( mark2_index >= ma2->Mark2Count ) - return TTO_Err_Invalid_GPOS_SubTable; - - m2r = &ma2->Mark2Record[mark2_index]; - mark2_anchor = &m2r->Mark2Anchor[class]; - - error = Get_Anchor( gpi, mark1_anchor, in->string[in->pos], - &x_mark1_value, &y_mark1_value ); - if ( error ) - return error; - error = Get_Anchor( gpi, mark2_anchor, in->string[j], - &x_mark2_value, &y_mark2_value ); - if ( error ) - return error; - - /* anchor points are not cumulative */ - - o = &out[in->pos]; - - o->x_pos = x_mark2_value - x_mark1_value; - o->y_pos = y_mark2_value - y_mark1_value; - o->x_advance = 0; - o->y_advance = 0; - o->back = 1; - - (in->pos)++; - - return TT_Err_Ok; - } - - - /* Do the actual positioning for a context positioning (either format - 7 or 8). This is only called after we've determined that the input - matches the subrule. */ - - static TT_Error Do_ContextPos( GPOS_Instance* gpi, - UShort GlyphCount, - UShort PosCount, - TTO_PosLookupRecord* pos, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - int nesting_level ) - { - TT_Error error; - UShort i, old_pos; - - - i = 0; - - while ( i < GlyphCount ) - { - if ( PosCount && i == pos->SequenceIndex ) - { - old_pos = in->pos; - - /* Do a positioning */ - - error = Do_Glyph_Lookup( gpi, pos->LookupListIndex, in, out, - GlyphCount, nesting_level ); - - if ( error ) - return error; - - pos++; - PosCount--; - i += in->pos - old_pos; - } - else - { - i++; - (in->pos)++; - } - } - - return TT_Err_Ok; - } - - - /* LookupType 7 */ - - /* PosRule */ - - static TT_Error Load_PosRule( TTO_PosRule* pr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* i; - - TTO_PosLookupRecord* plr; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - pr->GlyphCount = GET_UShort(); - pr->PosCount = GET_UShort(); - - FORGET_Frame(); - - pr->Input = NULL; - - count = pr->GlyphCount - 1; /* only GlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( pr->Input, count, UShort ) ) - return error; - - i = pr->Input; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - i[n] = GET_UShort(); - - FORGET_Frame(); - - pr->PosLookupRecord = NULL; - - count = pr->PosCount; - - if ( ALLOC_ARRAY( pr->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = pr->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - FREE( i ); - return error; - } - - - static void Free_PosRule( TTO_PosRule* pr ) - { - FREE( pr->PosLookupRecord ); - FREE( pr->Input ); - } - - - /* PosRuleSet */ - - static TT_Error Load_PosRuleSet( TTO_PosRuleSet* prs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_PosRule* pr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = prs->PosRuleCount = GET_UShort(); - - FORGET_Frame(); - - prs->PosRule = NULL; - - if ( ALLOC_ARRAY( prs->PosRule, count, TTO_PosRule ) ) - return error; - - pr = prs->PosRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_PosRule( &pr[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_PosRule( &pr[n] ); - - FREE( pr ); - return error; - } - - - static void Free_PosRuleSet( TTO_PosRuleSet* prs ) - { - UShort n, count; - - TTO_PosRule* pr; - - - if ( prs->PosRule ) - { - count = prs->PosRuleCount; - pr = prs->PosRule; - - for ( n = 0; n < count; n++ ) - Free_PosRule( &pr[n] ); - - FREE( pr ); - } - } - - - /* ContextPosFormat1 */ - - static TT_Error Load_ContextPos1( TTO_ContextPosFormat1* cpf1, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_PosRuleSet* prs; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &cpf1->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = cpf1->PosRuleSetCount = GET_UShort(); - - FORGET_Frame(); - - cpf1->PosRuleSet = NULL; - - if ( ALLOC_ARRAY( cpf1->PosRuleSet, count, TTO_PosRuleSet ) ) - goto Fail2; - - prs = cpf1->PosRuleSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_PosRuleSet( &prs[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_PosRuleSet( &prs[n] ); - - FREE( prs ); - - Fail2: - Free_Coverage( &cpf1->Coverage ); - return error; - } - - - static void Free_Context1( TTO_ContextPosFormat1* cpf1 ) - { - UShort n, count; - - TTO_PosRuleSet* prs; - - - if ( cpf1->PosRuleSet ) - { - count = cpf1->PosRuleSetCount; - prs = cpf1->PosRuleSet; - - for ( n = 0; n < count; n++ ) - Free_PosRuleSet( &prs[n] ); - - FREE( prs ); - } - - Free_Coverage( &cpf1->Coverage ); - } - - - /* PosClassRule */ - - static TT_Error Load_PosClassRule( TTO_ContextPosFormat2* cpf2, - TTO_PosClassRule* pcr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* c; - TTO_PosLookupRecord* plr; - Bool* d; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - pcr->GlyphCount = GET_UShort(); - pcr->PosCount = GET_UShort(); - - FORGET_Frame(); - - if ( pcr->GlyphCount > cpf2->MaxContextLength ) - cpf2->MaxContextLength = pcr->GlyphCount; - - pcr->Class = NULL; - - count = pcr->GlyphCount - 1; /* only GlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( pcr->Class, count, UShort ) ) - return error; - - c = pcr->Class; - d = cpf2->ClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - { - c[n] = GET_UShort(); - - /* We check whether the specific class is used at all. If not, - class 0 is used instead. */ - - if ( !d[c[n]] ) - c[n] = 0; - } - - FORGET_Frame(); - - pcr->PosLookupRecord = NULL; - - count = pcr->PosCount; - - if ( ALLOC_ARRAY( pcr->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = pcr->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - FREE( c ); - return error; - } - - - static void Free_PosClassRule( TTO_PosClassRule* pcr ) - { - FREE( pcr->PosLookupRecord ); - FREE( pcr->Class ); - } - - - /* PosClassSet */ - - static TT_Error Load_PosClassSet( TTO_ContextPosFormat2* cpf2, - TTO_PosClassSet* pcs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_PosClassRule* pcr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = pcs->PosClassRuleCount = GET_UShort(); - - FORGET_Frame(); - - pcs->PosClassRule = NULL; - - if ( ALLOC_ARRAY( pcs->PosClassRule, count, TTO_PosClassRule ) ) - return error; - - pcr = pcs->PosClassRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_PosClassRule( cpf2, &pcr[n], - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_PosClassRule( &pcr[n] ); - - FREE( pcr ); - return error; - } - - - static void Free_PosClassSet( TTO_PosClassSet* pcs ) - { - UShort n, count; - - TTO_PosClassRule* pcr; - - - if ( pcs->PosClassRule ) - { - count = pcs->PosClassRuleCount; - pcr = pcs->PosClassRule; - - for ( n = 0; n < count; n++ ) - Free_PosClassRule( &pcr[n] ); - - FREE( pcr ); - } - } - - - /* ContextPosFormat2 */ - - static TT_Error Load_ContextPos2( TTO_ContextPosFormat2* cpf2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_PosClassSet* pcs; - - - base_offset = FILE_Pos() - 2; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &cpf2->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 4L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - /* `PosClassSetCount' is the upper limit for class values, thus we - read it now to make an additional safety check. */ - - count = cpf2->PosClassSetCount = GET_UShort(); - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ClassDefinition( &cpf2->ClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - cpf2->PosClassSet = NULL; - cpf2->MaxContextLength = 0; - - if ( ALLOC_ARRAY( cpf2->PosClassSet, count, TTO_PosClassSet ) ) - goto Fail2; - - pcs = cpf2->PosClassSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - if ( new_offset != base_offset ) /* not a NULL offset */ - { - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_PosClassSet( cpf2, &pcs[n], - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - { - /* we create a PosClassSet table with no entries */ - - cpf2->PosClassSet[n].PosClassRuleCount = 0; - cpf2->PosClassSet[n].PosClassRule = NULL; - } - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_PosClassSet( &pcs[n] ); - - FREE( pcs ); - - Fail2: - Free_ClassDefinition( &cpf2->ClassDef ); - - Fail3: - Free_Coverage( &cpf2->Coverage ); - return error; - } - - - static void Free_Context2( TTO_ContextPosFormat2* cpf2 ) - { - UShort n, count; - - TTO_PosClassSet* pcs; - - - if ( cpf2->PosClassSet ) - { - count = cpf2->PosClassSetCount; - pcs = cpf2->PosClassSet; - - for ( n = 0; n < count; n++ ) - Free_PosClassSet( &pcs[n] ); - - FREE( pcs ); - } - - Free_ClassDefinition( &cpf2->ClassDef ); - Free_Coverage( &cpf2->Coverage ); - } - - - /* ContextPosFormat3 */ - - static TT_Error Load_ContextPos3( TTO_ContextPosFormat3* cpf3, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Coverage* c; - TTO_PosLookupRecord* plr; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 4L ) ) - return error; - - cpf3->GlyphCount = GET_UShort(); - cpf3->PosCount = GET_UShort(); - - FORGET_Frame(); - - cpf3->Coverage = NULL; - - count = cpf3->GlyphCount; - - if ( ALLOC_ARRAY( cpf3->Coverage, count, TTO_Coverage ) ) - return error; - - c = cpf3->Coverage; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &c[n], input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - - cpf3->PosLookupRecord = NULL; - - count = cpf3->PosCount; - - if ( ALLOC_ARRAY( cpf3->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = cpf3->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - return error; - } - - - static void Free_Context3( TTO_ContextPosFormat3* cpf3 ) - { - UShort n, count; - - TTO_Coverage* c; - - - FREE( cpf3->PosLookupRecord ); - - if ( cpf3->Coverage ) - { - count = cpf3->GlyphCount; - c = cpf3->Coverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - } - - - /* ContextPos */ - - TT_Error Load_ContextPos( TTO_ContextPos* cp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ACCESS_Frame( 2L ) ) - return error; - - cp->PosFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( cp->PosFormat ) - { - case 1: - return Load_ContextPos1( &cp->cpf.cpf1, input ); - - case 2: - return Load_ContextPos2( &cp->cpf.cpf2, input ); - - case 3: - return Load_ContextPos3( &cp->cpf.cpf3, input ); - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - void Free_ContextPos( TTO_ContextPos* cp ) - { - switch ( cp->PosFormat ) - { - case 1: - Free_Context1( &cp->cpf.cpf1 ); - break; - - case 2: - Free_Context2( &cp->cpf.cpf2 ); - break; - - case 3: - Free_Context3( &cp->cpf.cpf3 ); - break; - } - } - - - static TT_Error Lookup_ContextPos1( GPOS_Instance* gpi, - TTO_ContextPosFormat1* cpf1, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - UShort index, property; - UShort i, j, k, numpr; - TT_Error error; - UShort* s_in; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_PosRule* pr; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &cpf1->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - pr = cpf1->PosRuleSet[index].PosRule; - numpr = cpf1->PosRuleSet[index].PosRuleCount; - - for ( k = 0; k < numpr; k++ ) - { - if ( context_length != 0xFFFF && context_length < pr[k].GlyphCount ) - continue; - - if ( in->pos + pr[k].GlyphCount > in->length ) - continue; /* context is too long */ - - s_in = &in->string[in->pos]; - - for ( i = 1, j = 1; i < pr[k].GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != pr[k].Input[i - 1] ) - break; - } - - if ( i == pr[k].GlyphCount ) - return Do_ContextPos( gpi, pr[k].GlyphCount, - pr[k].PosCount, pr[k].PosLookupRecord, - in, out, - nesting_level ); - } - - return TTO_Err_Not_Covered; - } - - - static TT_Error Lookup_ContextPos2( GPOS_Instance* gpi, - TTO_ContextPosFormat2* cpf2, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - UShort index, property; - TT_Error error; - UShort i, j, k, known_classes; - - UShort* classes; - UShort* s_in; - UShort* cl; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_PosClassSet* pcs; - TTO_PosClassRule* pr; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( ALLOC_ARRAY( classes, cpf2->MaxContextLength, UShort ) ) - return error; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - /* Note: The coverage table in format 2 doesn't give an index into - anything. It just lets us know whether or not we need to - do any lookup at all. */ - - error = Coverage_Index( &cpf2->Coverage, in->string[in->pos], &index ); - if ( error ) - goto End; - - error = Get_Class( &cpf2->ClassDef, in->string[in->pos], - &classes[0], NULL ); - if ( error ) - goto End; - known_classes = 0; - - pcs = &cpf2->PosClassSet[classes[0]]; - if ( !pcs ) - { - error = TTO_Err_Invalid_GPOS_SubTable; - goto End; - } - - for ( k = 0; k < pcs->PosClassRuleCount; k++ ) - { - pr = &pcs->PosClassRule[k]; - - if ( context_length != 0xFFFF && context_length < pr->GlyphCount ) - continue; - - if ( in->pos + pr->GlyphCount > in->length ) - continue; /* context is too long */ - - s_in = &in->string[in->pos]; - cl = pr->Class; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < pr->GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - break; - } - - if ( i > known_classes ) - { - /* Keeps us from having to do this for each rule */ - - error = Get_Class( &cpf2->ClassDef, s_in[j], &classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - known_classes = i; - } - - if ( cl[i - 1] != classes[i] ) - break; - } - - if ( i == pr->GlyphCount ) - { - error = Do_ContextPos( gpi, pr->GlyphCount, - pr->PosCount, pr->PosLookupRecord, - in, out, - nesting_level ); - goto End; - } - } - - error = TTO_Err_Not_Covered; - - End: - FREE( classes ); - return error; - } - - - static TT_Error Lookup_ContextPos3( GPOS_Instance* gpi, - TTO_ContextPosFormat3* cpf3, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - TT_Error error; - UShort index, i, j, property; - UShort* s_in; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_Coverage* c; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - if ( context_length != 0xFFFF && context_length < cpf3->GlyphCount ) - return TTO_Err_Not_Covered; - - if ( in->pos + cpf3->GlyphCount > in->length ) - return TTO_Err_Not_Covered; /* context is too long */ - - s_in = &in->string[in->pos]; - c = cpf3->Coverage; - - for ( i = 1, j = 1; i < cpf3->GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &c[i], s_in[j], &index ); - if ( error ) - return error; - } - - return Do_ContextPos( gpi, cpf3->GlyphCount, - cpf3->PosCount, cpf3->PosLookupRecord, - in, out, - nesting_level ); - } - - - static TT_Error Lookup_ContextPos( GPOS_Instance* gpi, - TTO_ContextPos* cp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - switch ( cp->PosFormat ) - { - case 1: - return Lookup_ContextPos1( gpi, &cp->cpf.cpf1, in, out, - flags, context_length, nesting_level ); - - case 2: - return Lookup_ContextPos2( gpi, &cp->cpf.cpf2, in, out, - flags, context_length, nesting_level ); - - case 3: - return Lookup_ContextPos3( gpi, &cp->cpf.cpf3, in, out, - flags, context_length, nesting_level ); - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - /* LookupType 8 */ - - /* ChainPosRule */ - - static TT_Error Load_ChainPosRule( TTO_ChainPosRule* cpr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* b; - UShort* i; - UShort* l; - - TTO_PosLookupRecord* plr; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - cpr->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - cpr->Backtrack = NULL; - - count = cpr->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( cpr->Backtrack, count, UShort ) ) - return error; - - b = cpr->Backtrack; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail4; - - for ( n = 0; n < count; n++ ) - b[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - cpr->InputGlyphCount = GET_UShort(); - - FORGET_Frame(); - - cpr->Input = NULL; - - count = cpr->InputGlyphCount - 1; /* only InputGlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( cpr->Input, count, UShort ) ) - goto Fail4; - - i = cpr->Input; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail3; - - for ( n = 0; n < count; n++ ) - i[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - cpr->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - cpr->Lookahead = NULL; - - count = cpr->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( cpr->Lookahead, count, UShort ) ) - goto Fail3; - - l = cpr->Lookahead; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - l[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - cpr->PosCount = GET_UShort(); - - FORGET_Frame(); - - cpr->PosLookupRecord = NULL; - - count = cpr->PosCount; - - if ( ALLOC_ARRAY( cpr->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = cpr->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - FREE( l ); - - Fail3: - FREE( i ); - - Fail4: - FREE( b ); - return error; - } - - - static void Free_ChainPosRule( TTO_ChainPosRule* cpr ) - { - FREE( cpr->PosLookupRecord ); - FREE( cpr->Lookahead ); - FREE( cpr->Input ); - FREE( cpr->Backtrack ); - } - - - /* ChainPosRuleSet */ - - static TT_Error Load_ChainPosRuleSet( TTO_ChainPosRuleSet* cprs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainPosRule* cpr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cprs->ChainPosRuleCount = GET_UShort(); - - FORGET_Frame(); - - cprs->ChainPosRule = NULL; - - if ( ALLOC_ARRAY( cprs->ChainPosRule, count, TTO_ChainPosRule ) ) - return error; - - cpr = cprs->ChainPosRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainPosRule( &cpr[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_ChainPosRule( &cpr[n] ); - - FREE( cpr ); - return error; - } - - - static void Free_ChainPosRuleSet( TTO_ChainPosRuleSet* cprs ) - { - UShort n, count; - - TTO_ChainPosRule* cpr; - - - if ( cprs->ChainPosRule ) - { - count = cprs->ChainPosRuleCount; - cpr = cprs->ChainPosRule; - - for ( n = 0; n < count; n++ ) - Free_ChainPosRule( &cpr[n] ); - - FREE( cpr ); - } - } - - - /* ChainContextPosFormat1 */ - - static TT_Error Load_ChainContextPos1( TTO_ChainContextPosFormat1* ccpf1, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainPosRuleSet* cprs; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ccpf1->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = ccpf1->ChainPosRuleSetCount = GET_UShort(); - - FORGET_Frame(); - - ccpf1->ChainPosRuleSet = NULL; - - if ( ALLOC_ARRAY( ccpf1->ChainPosRuleSet, count, TTO_ChainPosRuleSet ) ) - goto Fail2; - - cprs = ccpf1->ChainPosRuleSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainPosRuleSet( &cprs[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_ChainPosRuleSet( &cprs[n] ); - - FREE( cprs ); - - Fail2: - Free_Coverage( &ccpf1->Coverage ); - return error; - } - - - static void Free_ChainContext1( TTO_ChainContextPosFormat1* ccpf1 ) - { - UShort n, count; - - TTO_ChainPosRuleSet* cprs; - - - if ( ccpf1->ChainPosRuleSet ) - { - count = ccpf1->ChainPosRuleSetCount; - cprs = ccpf1->ChainPosRuleSet; - - for ( n = 0; n < count; n++ ) - Free_ChainPosRuleSet( &cprs[n] ); - - FREE( cprs ); - } - - Free_Coverage( &ccpf1->Coverage ); - } - - - /* ChainPosClassRule */ - - static TT_Error Load_ChainPosClassRule( - TTO_ChainContextPosFormat2* ccpf2, - TTO_ChainPosClassRule* cpcr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* b; - UShort* i; - UShort* l; - TTO_PosLookupRecord* plr; - Bool* d; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - cpcr->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - if ( cpcr->BacktrackGlyphCount > ccpf2->MaxBacktrackLength ) - ccpf2->MaxBacktrackLength = cpcr->BacktrackGlyphCount; - - cpcr->Backtrack = NULL; - - count = cpcr->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( cpcr->Backtrack, count, UShort ) ) - return error; - - b = cpcr->Backtrack; - d = ccpf2->BacktrackClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail4; - - for ( n = 0; n < count; n++ ) - { - b[n] = GET_UShort(); - - /* We check whether the specific class is used at all. If not, - class 0 is used instead. */ - - if ( !d[b[n]] ) - b[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - cpcr->InputGlyphCount = GET_UShort(); - - if ( cpcr->InputGlyphCount > ccpf2->MaxInputLength ) - ccpf2->MaxInputLength = cpcr->InputGlyphCount; - - FORGET_Frame(); - - cpcr->Input = NULL; - - count = cpcr->InputGlyphCount - 1; /* only InputGlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( cpcr->Input, count, UShort ) ) - goto Fail4; - - i = cpcr->Input; - d = ccpf2->InputClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail3; - - for ( n = 0; n < count; n++ ) - { - i[n] = GET_UShort(); - - if ( !d[i[n]] ) - i[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - cpcr->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - if ( cpcr->LookaheadGlyphCount > ccpf2->MaxLookaheadLength ) - ccpf2->MaxLookaheadLength = cpcr->LookaheadGlyphCount; - - cpcr->Lookahead = NULL; - - count = cpcr->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( cpcr->Lookahead, count, UShort ) ) - goto Fail3; - - l = cpcr->Lookahead; - d = ccpf2->LookaheadClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - { - l[n] = GET_UShort(); - - if ( !d[l[n]] ) - l[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - cpcr->PosCount = GET_UShort(); - - FORGET_Frame(); - - cpcr->PosLookupRecord = NULL; - - count = cpcr->PosCount; - - if ( ALLOC_ARRAY( cpcr->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = cpcr->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - FREE( l ); - - Fail3: - FREE( i ); - - Fail4: - FREE( b ); - return error; - } - - - static void Free_ChainPosClassRule( TTO_ChainPosClassRule* cpcr ) - { - FREE( cpcr->PosLookupRecord ); - FREE( cpcr->Lookahead ); - FREE( cpcr->Input ); - FREE( cpcr->Backtrack ); - } - - - /* PosClassSet */ - - static TT_Error Load_ChainPosClassSet( - TTO_ChainContextPosFormat2* ccpf2, - TTO_ChainPosClassSet* cpcs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainPosClassRule* cpcr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cpcs->ChainPosClassRuleCount = GET_UShort(); - - FORGET_Frame(); - - cpcs->ChainPosClassRule = NULL; - - if ( ALLOC_ARRAY( cpcs->ChainPosClassRule, count, - TTO_ChainPosClassRule ) ) - return error; - - cpcr = cpcs->ChainPosClassRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainPosClassRule( ccpf2, &cpcr[n], - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_ChainPosClassRule( &cpcr[n] ); - - FREE( cpcr ); - return error; - } - - - static void Free_ChainPosClassSet( TTO_ChainPosClassSet* cpcs ) - { - UShort n, count; - - TTO_ChainPosClassRule* cpcr; - - - if ( cpcs->ChainPosClassRule ) - { - count = cpcs->ChainPosClassRuleCount; - cpcr = cpcs->ChainPosClassRule; - - for ( n = 0; n < count; n++ ) - Free_ChainPosClassRule( &cpcr[n] ); - - FREE( cpcr ); - } - } - - - /* ChainContextPosFormat2 */ - - static TT_Error Load_ChainContextPos2( TTO_ChainContextPosFormat2* ccpf2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - ULong backtrack_offset, input_offset, lookahead_offset; - - TTO_ChainPosClassSet* cpcs; - - - base_offset = FILE_Pos() - 2; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ccpf2->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 8L ) ) - goto Fail5; - - backtrack_offset = GET_UShort() + base_offset; - input_offset = GET_UShort() + base_offset; - lookahead_offset = GET_UShort() + base_offset; - - /* `ChainPosClassSetCount' is the upper limit for input class values, - thus we read it now to make an additional safety check. */ - - count = ccpf2->ChainPosClassSetCount = GET_UShort(); - - FORGET_Frame(); - - /* backtrack and lookahead data can be optional */ - - cur_offset = FILE_Pos(); - if ( backtrack_offset != base_offset ) - { - if ( FILE_Seek( backtrack_offset ) || - ( error = Load_ClassDefinition( &ccpf2->BacktrackClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail5; - } - if ( FILE_Seek( input_offset ) || - ( error = Load_ClassDefinition( &ccpf2->InputClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail4; - if ( lookahead_offset != base_offset ) - { - if ( FILE_Seek( lookahead_offset ) || - ( error = Load_ClassDefinition( &ccpf2->LookaheadClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail3; - } - (void)FILE_Seek( cur_offset ); - - ccpf2->ChainPosClassSet = NULL; - ccpf2->MaxBacktrackLength = 0; - ccpf2->MaxInputLength = 0; - ccpf2->MaxLookaheadLength = 0; - - if ( ALLOC_ARRAY( ccpf2->ChainPosClassSet, count, TTO_ChainPosClassSet ) ) - goto Fail2; - - cpcs = ccpf2->ChainPosClassSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - if ( new_offset != base_offset ) /* not a NULL offset */ - { - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainPosClassSet( ccpf2, &cpcs[n], - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - { - /* we create a ChainPosClassSet table with no entries */ - - ccpf2->ChainPosClassSet[n].ChainPosClassRuleCount = 0; - ccpf2->ChainPosClassSet[n].ChainPosClassRule = NULL; - } - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_ChainPosClassSet( &cpcs[n] ); - - FREE( cpcs ); - - Fail2: - Free_ClassDefinition( &ccpf2->LookaheadClassDef ); - - Fail3: - Free_ClassDefinition( &ccpf2->InputClassDef ); - - Fail4: - Free_ClassDefinition( &ccpf2->BacktrackClassDef ); - - Fail5: - Free_Coverage( &ccpf2->Coverage ); - return error; - } - - - static void Free_ChainContext2( TTO_ChainContextPosFormat2* ccpf2 ) - { - UShort n, count; - - TTO_ChainPosClassSet* cpcs; - - - if ( ccpf2->ChainPosClassSet ) - { - count = ccpf2->ChainPosClassSetCount; - cpcs = ccpf2->ChainPosClassSet; - - for ( n = 0; n < count; n++ ) - Free_ChainPosClassSet( &cpcs[n] ); - - FREE( cpcs ); - } - - Free_ClassDefinition( &ccpf2->LookaheadClassDef ); - Free_ClassDefinition( &ccpf2->InputClassDef ); - Free_ClassDefinition( &ccpf2->BacktrackClassDef ); - - Free_Coverage( &ccpf2->Coverage ); - } - - - /* ChainContextPosFormat3 */ - - static TT_Error Load_ChainContextPos3( TTO_ChainContextPosFormat3* ccpf3, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort backtrack_count, input_count, lookahead_count; - ULong cur_offset, new_offset, base_offset; - - TTO_Coverage* b; - TTO_Coverage* i; - TTO_Coverage* l; - TTO_PosLookupRecord* plr; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - ccpf3->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccpf3->BacktrackCoverage = NULL; - - backtrack_count = ccpf3->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( ccpf3->BacktrackCoverage, backtrack_count, - TTO_Coverage ) ) - return error; - - b = ccpf3->BacktrackCoverage; - - for ( n = 0; n < backtrack_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &b[n], input ) ) != TT_Err_Ok ) - goto Fail4; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - ccpf3->InputGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccpf3->InputCoverage = NULL; - - input_count = ccpf3->InputGlyphCount; - - if ( ALLOC_ARRAY( ccpf3->InputCoverage, input_count, TTO_Coverage ) ) - goto Fail4; - - i = ccpf3->InputCoverage; - - for ( n = 0; n < input_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &i[n], input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - ccpf3->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccpf3->LookaheadCoverage = NULL; - - lookahead_count = ccpf3->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( ccpf3->LookaheadCoverage, lookahead_count, - TTO_Coverage ) ) - goto Fail3; - - l = ccpf3->LookaheadCoverage; - - for ( n = 0; n < lookahead_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &l[n], input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - ccpf3->PosCount = GET_UShort(); - - FORGET_Frame(); - - ccpf3->PosLookupRecord = NULL; - - count = ccpf3->PosCount; - - if ( ALLOC_ARRAY( ccpf3->PosLookupRecord, count, TTO_PosLookupRecord ) ) - goto Fail2; - - plr = ccpf3->PosLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - plr[n].SequenceIndex = GET_UShort(); - plr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( plr ); - - Fail2: - for ( n = 0; n < lookahead_count; n++ ) - Free_Coverage( &l[n] ); - - FREE( l ); - - Fail3: - for ( n = 0; n < input_count; n++ ) - Free_Coverage( &i[n] ); - - FREE( i ); - - Fail4: - for ( n = 0; n < backtrack_count; n++ ) - Free_Coverage( &b[n] ); - - FREE( b ); - return error; - } - - - static void Free_ChainContext3( TTO_ChainContextPosFormat3* ccpf3 ) - { - UShort n, count; - - TTO_Coverage* c; - - - FREE( ccpf3->PosLookupRecord ); - - if ( ccpf3->LookaheadCoverage ) - { - count = ccpf3->LookaheadGlyphCount; - c = ccpf3->LookaheadCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - - if ( ccpf3->InputCoverage ) - { - count = ccpf3->InputGlyphCount; - c = ccpf3->InputCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - - if ( ccpf3->BacktrackCoverage ) - { - count = ccpf3->BacktrackGlyphCount; - c = ccpf3->BacktrackCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - } - - - /* ChainContextPos */ - - TT_Error Load_ChainContextPos( TTO_ChainContextPos* ccp, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ACCESS_Frame( 2L ) ) - return error; - - ccp->PosFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( ccp->PosFormat ) - { - case 1: - return Load_ChainContextPos1( &ccp->ccpf.ccpf1, input ); - - case 2: - return Load_ChainContextPos2( &ccp->ccpf.ccpf2, input ); - - case 3: - return Load_ChainContextPos3( &ccp->ccpf.ccpf3, input ); - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - void Free_ChainContextPos( TTO_ChainContextPos* ccp ) - { - switch ( ccp->PosFormat ) - { - case 1: - Free_ChainContext1( &ccp->ccpf.ccpf1 ); - break; - - case 2: - Free_ChainContext2( &ccp->ccpf.ccpf2 ); - break; - - case 3: - Free_ChainContext3( &ccp->ccpf.ccpf3 ); - break; - } - } - - - static TT_Error Lookup_ChainContextPos1( - GPOS_Instance* gpi, - TTO_ChainContextPosFormat1* ccpf1, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - TT_UInt flags, - TT_UInt context_length, - int nesting_level ) - { - UShort index, property; - TT_UInt i, j, k, num_cpr, curr_pos; - TT_UInt bgc, igc, lgc; - TT_Error error; - UShort* s_in; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_ChainPosRule* cpr; - TTO_ChainPosRule curr_cpr; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &ccpf1->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - cpr = ccpf1->ChainPosRuleSet[index].ChainPosRule; - num_cpr = ccpf1->ChainPosRuleSet[index].ChainPosRuleCount; - - for ( k = 0; k < num_cpr; k++ ) - { - curr_cpr = cpr[k]; - bgc = curr_cpr.BacktrackGlyphCount; - igc = curr_cpr.InputGlyphCount; - lgc = curr_cpr.LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - continue; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - continue; - - if ( bgc ) - { - /* Since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - break; - } - - /* In OpenType 1.3, it is undefined whether the offsets of - backtrack glyphs is in logical order or not. Version 1.4 - will clarify this: - - Logical order - a b c d e f g h i j - i - Input offsets - 0 1 - Backtrack offsets - 3 2 1 0 - Lookahead offsets - 0 1 2 3 */ - - if ( s_in[j] != curr_cpr.Backtrack[i] ) - break; - } - - if ( i != bgc ) - continue; - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != curr_cpr.Input[i - 1] ) - break; - } - - if ( i != igc ) - continue; - - /* we are starting to check for lookahead glyphs right after the - last context glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != curr_cpr.Lookahead[i] ) - break; - } - - if ( i == lgc ) - return Do_ContextPos( gpi, igc, - curr_cpr.PosCount, - curr_cpr.PosLookupRecord, - in, out, - nesting_level ); - } - - return TTO_Err_Not_Covered; - } - - - static TT_Error Lookup_ChainContextPos2( - GPOS_Instance* gpi, - TTO_ChainContextPosFormat2* ccpf2, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - TT_UInt flags, - TT_UInt context_length, - int nesting_level ) - { - UShort index, property; - TT_Error error; - TT_UInt i, j, k, curr_pos; - TT_UInt bgc, igc, lgc; - UShort known_backtrack_classes, - known_input_classes, - known_lookahead_classes; - - UShort* backtrack_classes; - UShort* input_classes; - UShort* lookahead_classes; - - UShort* s_in; - - UShort* bc; - UShort* ic; - UShort* lc; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_ChainPosClassSet* cpcs; - TTO_ChainPosClassRule cpcr; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - /* Note: The coverage table in format 2 doesn't give an index into - anything. It just lets us know whether or not we need to - do any lookup at all. */ - - error = Coverage_Index( &ccpf2->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - if ( ALLOC_ARRAY( backtrack_classes, ccpf2->MaxBacktrackLength, UShort ) ) - return error; - known_backtrack_classes = 0; - - if ( ALLOC_ARRAY( input_classes, ccpf2->MaxInputLength, UShort ) ) - goto End3; - known_input_classes = 1; - - if ( ALLOC_ARRAY( lookahead_classes, ccpf2->MaxLookaheadLength, UShort ) ) - goto End2; - known_lookahead_classes = 0; - - error = Get_Class( &ccpf2->InputClassDef, in->string[in->pos], - &input_classes[0], NULL ); - if ( error ) - goto End1; - - cpcs = &ccpf2->ChainPosClassSet[input_classes[0]]; - if ( !cpcs ) - { - error = TTO_Err_Invalid_GPOS_SubTable; - goto End1; - } - - for ( k = 0; k < (TT_UInt)cpcs->ChainPosClassRuleCount; k++ ) - { - cpcr = cpcs->ChainPosClassRule[k]; - bgc = cpcr.BacktrackGlyphCount; - igc = cpcr.InputGlyphCount; - lgc = cpcr.LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - continue; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - continue; - - if ( bgc ) - { - /* Since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array. - Note that `known_backtrack_classes' starts at index 0. */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - bc = cpcr.Backtrack; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - break; - } - - if ( i >= (TT_UInt)known_backtrack_classes ) - { - /* Keeps us from having to do this for each rule */ - - error = Get_Class( &ccpf2->BacktrackClassDef, s_in[j], - &backtrack_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_backtrack_classes = i; - } - - if ( bc[i] != backtrack_classes[i] ) - break; - } - - if ( i != bgc ) - continue; - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - ic = cpcr.Input; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( i >= (TT_UInt)known_input_classes ) - { - error = Get_Class( &ccpf2->InputClassDef, s_in[j], - &input_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_input_classes = i; - } - - if ( ic[i - 1] != input_classes[i] ) - break; - } - - if ( i != igc ) - continue; - - /* we are starting to check for lookahead glyphs right after the - last context glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - lc = cpcr.Lookahead; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( i >= (TT_UInt)known_lookahead_classes ) - { - error = Get_Class( &ccpf2->LookaheadClassDef, s_in[j], - &lookahead_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_lookahead_classes = i; - } - - if ( lc[i] != lookahead_classes[i] ) - break; - } - - if ( i == lgc ) - { - error = Do_ContextPos( gpi, igc, - cpcr.PosCount, - cpcr.PosLookupRecord, - in, out, - nesting_level ); - goto End1; - } - } - - error = TTO_Err_Not_Covered; - - End1: - FREE( lookahead_classes ); - - End2: - FREE( input_classes ); - - End3: - FREE( backtrack_classes ); - return error; - } - - - static TT_Error Lookup_ChainContextPos3( - GPOS_Instance* gpi, - TTO_ChainContextPosFormat3* ccpf3, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - TT_UInt flags, - TT_UInt context_length, - int nesting_level ) - { - UShort index, property; - TT_UInt i, j, curr_pos, bgc, igc, lgc; - TT_Error error; - UShort* s_in; - TTO_GPOSHeader* gpos = gpi->gpos; - - TTO_Coverage* bc; - TTO_Coverage* ic; - TTO_Coverage* lc; - TTO_GDEFHeader* gdef; - - - gdef = gpos->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - bgc = ccpf3->BacktrackGlyphCount; - igc = ccpf3->InputGlyphCount; - lgc = ccpf3->LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - return TTO_Err_Not_Covered; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - return TTO_Err_Not_Covered; - - if ( bgc ) - { - /* Since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - bc = ccpf3->BacktrackCoverage; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &bc[i], s_in[j], &index ); - if ( error ) - return error; - } - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - ic = ccpf3->InputCoverage; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &ic[i], s_in[j], &index ); - if ( error ) - return error; - } - - /* we are starting to check for lookahead glyphs right after the - last context glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - lc = ccpf3->LookaheadCoverage; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &lc[i], s_in[j], &index ); - if ( error ) - return error; - } - - return Do_ContextPos( gpi, igc, - ccpf3->PosCount, - ccpf3->PosLookupRecord, - in, out, - nesting_level ); - } - - - static TT_Error Lookup_ChainContextPos( - GPOS_Instance* gpi, - TTO_ChainContextPos* ccp, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - switch ( ccp->PosFormat ) - { - case 1: - return Lookup_ChainContextPos1( gpi, &ccp->ccpf.ccpf1, in, out, - flags, context_length, - nesting_level ); - - case 2: - return Lookup_ChainContextPos2( gpi, &ccp->ccpf.ccpf2, in, out, - flags, context_length, - nesting_level ); - - case 3: - return Lookup_ChainContextPos3( gpi, &ccp->ccpf.ccpf3, in, out, - flags, context_length, - nesting_level ); - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - - /*********** - * GPOS API - ***********/ - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Select_Script( TTO_GPOSHeader* gpos, - TT_ULong script_tag, - TT_UShort* script_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - - - if ( !gpos || !script_index ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - for ( n = 0; n < sl->ScriptCount; n++ ) - if ( script_tag == sr[n].ScriptTag ) - { - *script_index = n; - - return TT_Err_Ok; - } - - return TTO_Err_Not_Covered; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Select_Language( TTO_GPOSHeader* gpos, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - - - if ( !gpos || !language_index || !req_feature_index ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - for ( n = 0; n < s->LangSysCount; n++ ) - if ( language_tag == lsr[n].LangSysTag ) - { - *language_index = n; - *req_feature_index = lsr[n].LangSys.ReqFeatureIndex; - - return TT_Err_Ok; - } - - return TTO_Err_Not_Covered; - } - - - /* selecting 0xFFFF for language_index asks for the values of the - default language (DefaultLangSys) */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Select_Feature( TTO_GPOSHeader* gpos, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - TTO_LangSys* ls; - UShort* fi; - - TTO_FeatureList* fl; - TTO_FeatureRecord* fr; - - - if ( !gpos || !feature_index ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - fl = &gpos->FeatureList; - fr = fl->FeatureRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( language_index == 0xFFFF ) - ls = &s->DefaultLangSys; - else - { - if ( language_index >= s->LangSysCount ) - return TT_Err_Invalid_Argument; - - ls = &lsr[language_index].LangSys; - } - - fi = ls->FeatureIndex; - - for ( n = 0; n < ls->FeatureCount; n++ ) - { - if ( fi[n] >= fl->FeatureCount ) - return TTO_Err_Invalid_GPOS_SubTable_Format; - - if ( feature_tag == fr[fi[n]].FeatureTag ) - { - *feature_index = fi[n]; - - return TT_Err_Ok; - } - } - - return TTO_Err_Not_Covered; - } - - - /* The next three functions return a null-terminated list */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Query_Scripts( TTO_GPOSHeader* gpos, - TT_ULong** script_tag_list ) - { - UShort n; - TT_Error error; - ULong* stl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - - - if ( !gpos || !script_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - if ( ALLOC_ARRAY( stl, sl->ScriptCount + 1, ULong ) ) - return error; - - for ( n = 0; n < sl->ScriptCount; n++ ) - stl[n] = sr[n].ScriptTag; - stl[n] = 0; - - *script_tag_list = stl; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Query_Languages( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_ULong** language_tag_list ) - { - UShort n; - TT_Error error; - ULong* ltl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - - - if ( !gpos || !language_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( ALLOC_ARRAY( ltl, s->LangSysCount + 1, ULong ) ) - return error; - - for ( n = 0; n < s->LangSysCount; n++ ) - ltl[n] = lsr[n].LangSysTag; - ltl[n] = 0; - - *language_tag_list = ltl; - - return TT_Err_Ok; - } - - - /* selecting 0xFFFF for language_index asks for the values of the - default language (DefaultLangSys) */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Query_Features( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ) - { - UShort n; - TT_Error error; - ULong* ftl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - TTO_LangSys* ls; - UShort* fi; - - TTO_FeatureList* fl; - TTO_FeatureRecord* fr; - - - if ( !gpos || !feature_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gpos->ScriptList; - sr = sl->ScriptRecord; - - fl = &gpos->FeatureList; - fr = fl->FeatureRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( language_index == 0xFFFF ) - ls = &s->DefaultLangSys; - else - { - if ( language_index >= s->LangSysCount ) - return TT_Err_Invalid_Argument; - - ls = &lsr[language_index].LangSys; - } - - fi = ls->FeatureIndex; - - if ( ALLOC_ARRAY( ftl, ls->FeatureCount + 1, ULong ) ) - return error; - - for ( n = 0; n < ls->FeatureCount; n++ ) - { - if ( fi[n] >= fl->FeatureCount ) - { - FREE( ftl ); - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - ftl[n] = fr[fi[n]].FeatureTag; - } - ftl[n] = 0; - - *feature_tag_list = ftl; - - return TT_Err_Ok; - } - - - /* Do an individual subtable lookup. Returns TT_Err_Ok if positioning - has been done, or TTO_Err_Not_Covered if not. */ - - static TT_Error Do_Glyph_Lookup( GPOS_Instance* gpi, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GPOS_Data* out, - UShort context_length, - int nesting_level ) - { - TT_Error error = TT_Err_Ok; - UShort i, flags; - TTO_GPOSHeader* gpos = gpi->gpos; - TTO_Lookup* lo; - - - nesting_level++; - - if ( nesting_level > TTO_MAX_NESTING_LEVEL ) - return TTO_Err_Too_Many_Nested_Contexts; - - lo = &gpos->LookupList.Lookup[lookup_index]; - flags = lo->LookupFlag; - - for ( i = 0; i < lo->SubTableCount; i++ ) - { - switch ( lo->LookupType ) - { - case GPOS_LOOKUP_SINGLE: - error = Lookup_SinglePos( gpi, - &lo->SubTable[i].st.gpos.single, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_PAIR: - error = Lookup_PairPos( gpi, - &lo->SubTable[i].st.gpos.pair, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_CURSIVE: - error = Lookup_CursivePos( gpi, - &lo->SubTable[i].st.gpos.cursive, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_MARKBASE: - error = Lookup_MarkBasePos( gpi, - &lo->SubTable[i].st.gpos.markbase, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_MARKLIG: - error = Lookup_MarkLigPos( gpi, - &lo->SubTable[i].st.gpos.marklig, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_MARKMARK: - error = Lookup_MarkMarkPos( gpi, - &lo->SubTable[i].st.gpos.markmark, - in, out, - flags, context_length ); - break; - - case GPOS_LOOKUP_CONTEXT: - error = Lookup_ContextPos( gpi, - &lo->SubTable[i].st.gpos.context, - in, out, - flags, context_length, - nesting_level ); - break; - - case GPOS_LOOKUP_CHAIN: - error = Lookup_ChainContextPos( gpi, - &lo->SubTable[i].st.gpos.chain, - in, out, - flags, context_length, - nesting_level ); - break; - } - - /* Check whether we have a successful positioning or an error other - than TTO_Err_Not_Covered */ - - if ( error != TTO_Err_Not_Covered ) - return error; - } - - return TTO_Err_Not_Covered; - } - - - /* apply one lookup to the input string object */ - - static TT_Error Do_String_Lookup( GPOS_Instance* gpi, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GPOS_Data* out ) - { - TT_Error error = TTO_Err_Not_Covered; - TTO_GPOSHeader* gpos = gpi->gpos; - - UShort* properties = gpos->LookupList.Properties; - UShort* p_in = in->properties; - - int nesting_level = 0; - TT_UInt i; - TT_Pos offset; - - - gpi->first = 0xFFFF; - gpi->last = 0xFFFF; /* no last valid glyph for cursive pos. */ - - in->pos = 0; - - while ( in->pos < in->length ) - { - if ( ~p_in[in->pos] & properties[lookup_index] ) - { - /* 0xFFFF indicates that we don't have a context length yet. */ - - /* Note that the connection between mark and base glyphs hold - exactly one (string) lookup. For example, it would be possible - that in the first lookup, mark glyph X is attached to base - glyph A, and in the next lookup it is attached to base glyph B. - It is up to the font designer to provide meaningful lookups and - lookup order. */ - - error = Do_Glyph_Lookup( gpi, lookup_index, in, out, - 0xFFFF, nesting_level ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - else - { - /* Contrary to properties defined in GDEF, user-defined properties - will always stop a possible cursive positioning. */ - gpi->last = 0xFFFF; - - error = TTO_Err_Not_Covered; - } - - /* test whether we have to adjust the offsets for cursive connections */ - - if ( gpi->first != 0xFFFF && gpi->last == 0xFFFF && - gpos->LookupList.Lookup[lookup_index].LookupFlag & RIGHT_TO_LEFT ) - { - offset = out[in->pos].y_pos; - - /* no horizontal offsets (for vertical writing direction) - supported yet */ - - for ( i = gpi->first; i <= (TT_UInt)in->pos; i++ ) - out[i].y_pos -= offset; - - gpi->first = 0xFFFF; - } - - if ( error == TTO_Err_Not_Covered ) - (in->pos)++; - } - - return error; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Add_Feature( TTO_GPOSHeader* gpos, - TT_UShort feature_index, - TT_UShort property ) - { - UShort i; - - TTO_Feature feature; - UShort* properties; - UShort* index; - - - if ( !gpos || - feature_index >= gpos->FeatureList.FeatureCount ) - return TT_Err_Invalid_Argument; - - properties = gpos->LookupList.Properties; - - feature = gpos->FeatureList.FeatureRecord[feature_index].Feature; - index = feature.LookupListIndex; - - for ( i = 0; i < feature.LookupListCount; i++ ) - properties[index[i]] |= property; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Clear_Features( TTO_GPOSHeader* gpos ) - { - UShort i; - - UShort* properties; - - - if ( !gpos ) - return TT_Err_Invalid_Argument; - - properties = gpos->LookupList.Properties; - - for ( i = 0; i < gpos->LookupList.LookupCount; i++ ) - properties[i] = 0; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Register_Glyph_Function( TTO_GPOSHeader* gpos, - TTO_GlyphFunction gfunc ) - { - if ( !gpos ) - return TT_Err_Invalid_Argument; - - gpos->gfunc = gfunc; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Register_MM_Function( TTO_GPOSHeader* gpos, - TTO_MMFunction mmfunc, - void* data ) - { - if ( !gpos ) - return TT_Err_Invalid_Argument; - - gpos->mmfunc = mmfunc; - gpos->data = data; - - return TT_Err_Ok; - } - - - /* If `dvi' is TRUE, glyph contour points for anchor points and device - tables are ignored -- you will get device independent values. */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GPOS_Apply_String( TT_Instance instance, - TT_Glyph glyph, - TTO_GPOSHeader* gpos, - TT_UShort load_flags, - TTO_GSUB_String* in, - TTO_GPOS_Data** out, - TT_Bool dvi, - TT_Bool r2l ) - { - TT_Error error = TTO_Err_Not_Covered; - GPOS_Instance gpi; - - UShort j; - - UShort* properties; - - - if ( !instance.z || !gpos || - !in || in->length == 0 || in->pos >= in->length ) - return TT_Err_Invalid_Argument; - - properties = gpos->LookupList.Properties; - - gpi.instance = instance; - if ( dvi ) - gpi.glyph.z = NULL; - else - gpi.glyph = glyph; - gpi.gpos = gpos; - gpi.load_flags = load_flags; - gpi.r2l = r2l; - - if ( *out ) - FREE( *out ); - if ( ALLOC_ARRAY( *out, in->length, TTO_GPOS_Data ) ) - return error; - - for ( j = 0; j < gpos->LookupList.LookupCount; j++ ) - if ( !properties || properties[j] ) - { - error = Do_String_Lookup( &gpi, j, in, *out ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxgpos.h b/Build/source/libs/freetype/lib/extend/ftxgpos.h deleted file mode 100644 index 1ba80b13b8a..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxgpos.h +++ /dev/null @@ -1,865 +0,0 @@ -/******************************************************************* - * - * ftxgpos.h - * - * TrueType Open GPOS table support - * - * 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 FTXOPEN_H -#error "Don't include this file! Use ftxopen.h instead." -#endif - -#ifndef FTXGPOS_H -#define FTXGPOS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define TTO_Err_Invalid_GPOS_SubTable_Format 0x1020 -#define TTO_Err_Invalid_GPOS_SubTable 0x1021 - -#define GPOS_ID Build_Extension_ID( 'G', 'P', 'O', 'S' ) - - -/* Lookup types for glyph positioning */ - -#define GPOS_LOOKUP_SINGLE 1 -#define GPOS_LOOKUP_PAIR 2 -#define GPOS_LOOKUP_CURSIVE 3 -#define GPOS_LOOKUP_MARKBASE 4 -#define GPOS_LOOKUP_MARKLIG 5 -#define GPOS_LOOKUP_MARKMARK 6 -#define GPOS_LOOKUP_CONTEXT 7 -#define GPOS_LOOKUP_CHAIN 8 -#define GPOS_LOOKUP_EXTENSION 9 - - - /* A pointer to a function which loads a glyph. Its parameters are - the same as in a call to TT_Load_Glyph() -- if no glyph loading - function will be registered with TTO_GPOS_Register_Glyph_Function(), - TT_Load_Glyph() will be called indeed. The purpose of this function - pointer is to provide a hook for caching glyph outlines and sbits - (using the instance's generic pointer to hold the data). - - If for some reason no outline data is available (e.g. for an - embedded bitmap glyph), _glyph->outline.n_points should be set to - zero. _glyph can be computed with - - _glyph = HANDLE_Glyph( glyph ) */ - - typedef TT_Error (*TTO_GlyphFunction)(TT_Instance instance, - TT_Glyph glyph, - TT_UShort glyphIndex, - TT_UShort loadFlags ); - - - /* A pointer to a function which accesses the PostScript interpreter. - Multiple Master fonts need this interface to convert a metric ID - (as stored in an OpenType font version 1.2 or higher) `metric_id' - into a metric value (returned in `metric_value'). - - `data' points to the user-defined structure specified during a - call to TT_GPOS_Register_MM_Function(). - - `metric_value' must be returned as a scaled value (but shouldn't - be rounded). */ - - typedef TT_Error (*TTO_MMFunction)(TT_Instance instance, - TT_UShort metric_id, - TT_Pos* metric_value, - void* data ); - - - struct TTO_GPOSHeader_ - { - TT_Bool loaded; - TT_ULong offset; - - TT_Fixed Version; - - TTO_ScriptList ScriptList; - TTO_FeatureList FeatureList; - TTO_LookupList LookupList; - - TTO_GDEFHeader* gdef; - - /* the next field is used for a callback function to get the - glyph outline. */ - - TTO_GlyphFunction gfunc; - - /* this is OpenType 1.2 -- Multiple Master fonts need this - callback function to get various metric values from the - PostScript interpreter. */ - - TTO_MMFunction mmfunc; - void* data; - }; - - typedef struct TTO_GPOSHeader_ TTO_GPOSHeader; - - - /* shared tables */ - - struct TTO_ValueRecord_ - { - TT_Short XPlacement; /* horizontal adjustment for - placement */ - TT_Short YPlacement; /* vertical adjustment for - placement */ - TT_Short XAdvance; /* horizontal adjustment for - advance */ - TT_Short YAdvance; /* vertical adjustment for - advance */ - TTO_Device XPlacementDevice; /* device table for horizontal - placement */ - TTO_Device YPlacementDevice; /* device table for vertical - placement */ - TTO_Device XAdvanceDevice; /* device table for horizontal - advance */ - TTO_Device YAdvanceDevice; /* device table for vertical - advance */ - TT_UShort XIdPlacement; /* horizontal placement metric ID */ - TT_UShort YIdPlacement; /* vertical placement metric ID */ - TT_UShort XIdAdvance; /* horizontal advance metric ID */ - TT_UShort YIdAdvance; /* vertical advance metric ID */ - }; - - typedef struct TTO_ValueRecord_ TTO_ValueRecord; - - -/* Mask values to scan the value format of the ValueRecord structure. - We always expand compressed ValueRecords of the font. */ - -#define HAVE_X_PLACEMENT 0x0001 -#define HAVE_Y_PLACEMENT 0x0002 -#define HAVE_X_ADVANCE 0x0004 -#define HAVE_Y_ADVANCE 0x0008 -#define HAVE_X_PLACEMENT_DEVICE 0x0010 -#define HAVE_Y_PLACEMENT_DEVICE 0x0020 -#define HAVE_X_ADVANCE_DEVICE 0x0040 -#define HAVE_Y_ADVANCE_DEVICE 0x0080 -#define HAVE_X_ID_PLACEMENT 0x0100 -#define HAVE_Y_ID_PLACEMENT 0x0200 -#define HAVE_X_ID_ADVANCE 0x0400 -#define HAVE_Y_ID_ADVANCE 0x0800 - - - struct TTO_AnchorFormat1_ - { - TT_Short XCoordinate; /* horizontal value */ - TT_Short YCoordinate; /* vertical value */ - }; - - typedef struct TTO_AnchorFormat1_ TTO_AnchorFormat1; - - - struct TTO_AnchorFormat2_ - { - TT_Short XCoordinate; /* horizontal value */ - TT_Short YCoordinate; /* vertical value */ - TT_UShort AnchorPoint; /* index to glyph contour point */ - }; - - typedef struct TTO_AnchorFormat2_ TTO_AnchorFormat2; - - - struct TTO_AnchorFormat3_ - { - TT_Short XCoordinate; /* horizontal value */ - TT_Short YCoordinate; /* vertical value */ - TTO_Device XDeviceTable; /* device table for X coordinate */ - TTO_Device YDeviceTable; /* device table for Y coordinate */ - }; - - typedef struct TTO_AnchorFormat3_ TTO_AnchorFormat3; - - - struct TTO_AnchorFormat4_ - { - TT_UShort XIdAnchor; /* horizontal metric ID */ - TT_UShort YIdAnchor; /* vertical metric ID */ - }; - - typedef struct TTO_AnchorFormat4_ TTO_AnchorFormat4; - - - struct TTO_Anchor_ - { - TT_UShort PosFormat; /* 1, 2, 3, or 4 -- 0 indicates - that there is no Anchor table */ - - union - { - TTO_AnchorFormat1 af1; - TTO_AnchorFormat2 af2; - TTO_AnchorFormat3 af3; - TTO_AnchorFormat4 af4; - } af; - }; - - typedef struct TTO_Anchor_ TTO_Anchor; - - - struct TTO_MarkRecord_ - { - TT_UShort Class; /* mark class */ - TTO_Anchor MarkAnchor; /* anchor table */ - }; - - typedef struct TTO_MarkRecord_ TTO_MarkRecord; - - - struct TTO_MarkArray_ - { - TT_UShort MarkCount; /* number of MarkRecord tables */ - TTO_MarkRecord* MarkRecord; /* array of MarkRecord tables */ - }; - - typedef struct TTO_MarkArray_ TTO_MarkArray; - - - /* LookupType 1 */ - - struct TTO_SinglePosFormat1_ - { - TTO_ValueRecord Value; /* ValueRecord for all covered - glyphs */ - }; - - typedef struct TTO_SinglePosFormat1_ TTO_SinglePosFormat1; - - - struct TTO_SinglePosFormat2_ - { - TT_UShort ValueCount; /* number of ValueRecord tables */ - TTO_ValueRecord* Value; /* array of ValueRecord tables */ - }; - - typedef struct TTO_SinglePosFormat2_ TTO_SinglePosFormat2; - - - struct TTO_SinglePos_ - { - TT_UShort PosFormat; /* 1 or 2 */ - TTO_Coverage Coverage; /* Coverage table */ - - TT_UShort ValueFormat; /* format of ValueRecord table */ - - union - { - TTO_SinglePosFormat1 spf1; - TTO_SinglePosFormat2 spf2; - } spf; - }; - - typedef struct TTO_SinglePos_ TTO_SinglePos; - - - /* LookupType 2 */ - - struct TTO_PairValueRecord_ - { - TT_UShort SecondGlyph; /* glyph ID for second glyph */ - TTO_ValueRecord Value1; /* pos. data for first glyph */ - TTO_ValueRecord Value2; /* pos. data for second glyph */ - }; - - typedef struct TTO_PairValueRecord_ TTO_PairValueRecord; - - - struct TTO_PairSet_ - { - TT_UShort PairValueCount; - /* number of PairValueRecord tables */ - TTO_PairValueRecord* PairValueRecord; - /* array of PairValueRecord tables */ - }; - - typedef struct TTO_PairSet_ TTO_PairSet; - - - struct TTO_PairPosFormat1_ - { - TT_UShort PairSetCount; /* number of PairSet tables */ - TTO_PairSet* PairSet; /* array of PairSet tables */ - }; - - typedef struct TTO_PairPosFormat1_ TTO_PairPosFormat1; - - - struct TTO_Class2Record_ - { - TTO_ValueRecord Value1; /* pos. data for first glyph */ - TTO_ValueRecord Value2; /* pos. data for second glyph */ - }; - - typedef struct TTO_Class2Record_ TTO_Class2Record; - - - struct TTO_Class1Record_ - { - TTO_Class2Record* Class2Record; /* array of Class2Record tables */ - }; - - typedef struct TTO_Class1Record_ TTO_Class1Record; - - - struct TTO_PairPosFormat2_ - { - TTO_ClassDefinition ClassDef1; /* class def. for first glyph */ - TTO_ClassDefinition ClassDef2; /* class def. for second glyph */ - TT_UShort Class1Count; /* number of classes in ClassDef1 - table */ - TT_UShort Class2Count; /* number of classes in ClassDef2 - table */ - TTO_Class1Record* Class1Record; /* array of Class1Record tables */ - }; - - typedef struct TTO_PairPosFormat2_ TTO_PairPosFormat2; - - - struct TTO_PairPos_ - { - TT_UShort PosFormat; /* 1 or 2 */ - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort ValueFormat1; /* format of ValueRecord table - for first glyph */ - TT_UShort ValueFormat2; /* format of ValueRecord table - for second glyph */ - - union - { - TTO_PairPosFormat1 ppf1; - TTO_PairPosFormat2 ppf2; - } ppf; - }; - - typedef struct TTO_PairPos_ TTO_PairPos; - - - /* LookupType 3 */ - - struct TTO_EntryExitRecord_ - { - TTO_Anchor EntryAnchor; /* entry Anchor table */ - TTO_Anchor ExitAnchor; /* exit Anchor table */ - }; - - - typedef struct TTO_EntryExitRecord_ TTO_EntryExitRecord; - - struct TTO_CursivePos_ - { - TT_UShort PosFormat; /* always 1 */ - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort EntryExitCount; - /* number of EntryExitRecord tables */ - TTO_EntryExitRecord* EntryExitRecord; - /* array of EntryExitRecord tables */ - }; - - typedef struct TTO_CursivePos_ TTO_CursivePos; - - - /* LookupType 4 */ - - struct TTO_BaseRecord_ - { - TTO_Anchor* BaseAnchor; /* array of base glyph anchor - tables */ - }; - - typedef struct TTO_BaseRecord_ TTO_BaseRecord; - - - struct TTO_BaseArray_ - { - TT_UShort BaseCount; /* number of BaseRecord tables */ - TTO_BaseRecord* BaseRecord; /* array of BaseRecord tables */ - }; - - typedef struct TTO_BaseArray_ TTO_BaseArray; - - - struct TTO_MarkBasePos_ - { - TT_UShort PosFormat; /* always 1 */ - TTO_Coverage MarkCoverage; /* mark glyph coverage table */ - TTO_Coverage BaseCoverage; /* base glyph coverage table */ - TT_UShort ClassCount; /* number of mark classes */ - TTO_MarkArray MarkArray; /* mark array table */ - TTO_BaseArray BaseArray; /* base array table */ - }; - - typedef struct TTO_MarkBasePos_ TTO_MarkBasePos; - - - /* LookupType 5 */ - - struct TTO_ComponentRecord_ - { - TTO_Anchor* LigatureAnchor; /* array of ligature glyph anchor - tables */ - }; - - typedef struct TTO_ComponentRecord_ TTO_ComponentRecord; - - - struct TTO_LigatureAttach_ - { - TT_UShort ComponentCount; - /* number of ComponentRecord tables */ - TTO_ComponentRecord* ComponentRecord; - /* array of ComponentRecord tables */ - }; - - typedef struct TTO_LigatureAttach_ TTO_LigatureAttach; - - - struct TTO_LigatureArray_ - { - TT_UShort LigatureCount; /* number of LigatureAttach tables */ - TTO_LigatureAttach* LigatureAttach; - /* array of LigatureAttach tables */ - }; - - typedef struct TTO_LigatureArray_ TTO_LigatureArray; - - - struct TTO_MarkLigPos_ - { - TT_UShort PosFormat; /* always 1 */ - TTO_Coverage MarkCoverage; /* mark glyph coverage table */ - TTO_Coverage LigatureCoverage; - /* ligature glyph coverage table */ - TT_UShort ClassCount; /* number of mark classes */ - TTO_MarkArray MarkArray; /* mark array table */ - TTO_LigatureArray LigatureArray; /* ligature array table */ - }; - - typedef struct TTO_MarkLigPos_ TTO_MarkLigPos; - - - /* LookupType 6 */ - - struct TTO_Mark2Record_ - { - TTO_Anchor* Mark2Anchor; /* array of mark glyph anchor - tables */ - }; - - typedef struct TTO_Mark2Record_ TTO_Mark2Record; - - - struct TTO_Mark2Array_ - { - TT_UShort Mark2Count; /* number of Mark2Record tables */ - TTO_Mark2Record* Mark2Record; /* array of Mark2Record tables */ - }; - - typedef struct TTO_Mark2Array_ TTO_Mark2Array; - - - struct TTO_MarkMarkPos_ - { - TT_UShort PosFormat; /* always 1 */ - TTO_Coverage Mark1Coverage; /* first mark glyph coverage table */ - TTO_Coverage Mark2Coverage; /* second mark glyph coverave table */ - TT_UShort ClassCount; /* number of combining mark classes */ - TTO_MarkArray Mark1Array; /* MarkArray table for first mark */ - TTO_Mark2Array Mark2Array; /* MarkArray table for second mark */ - }; - - typedef struct TTO_MarkMarkPos_ TTO_MarkMarkPos; - - - /* needed by both lookup type 7 and 8 */ - - struct TTO_PosLookupRecord_ - { - TT_UShort SequenceIndex; /* index into current - glyph sequence */ - TT_UShort LookupListIndex; /* Lookup to apply to that pos. */ - }; - - typedef struct TTO_PosLookupRecord_ TTO_PosLookupRecord; - - - /* LookupType 7 */ - - struct TTO_PosRule_ - { - TT_UShort GlyphCount; /* total number of input glyphs */ - TT_UShort PosCount; /* number of PosLookupRecord tables */ - TT_UShort* Input; /* array of input glyph IDs */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of PosLookupRecord tables */ - }; - - typedef struct TTO_PosRule_ TTO_PosRule; - - - struct TTO_PosRuleSet_ - { - TT_UShort PosRuleCount; /* number of PosRule tables */ - TTO_PosRule* PosRule; /* array of PosRule tables */ - }; - - typedef struct TTO_PosRuleSet_ TTO_PosRuleSet; - - - struct TTO_ContextPosFormat1_ - { - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort PosRuleSetCount; /* number of PosRuleSet tables */ - TTO_PosRuleSet* PosRuleSet; /* array of PosRuleSet tables */ - }; - - typedef struct TTO_ContextPosFormat1_ TTO_ContextPosFormat1; - - - struct TTO_PosClassRule_ - { - TT_UShort GlyphCount; /* total number of context classes */ - TT_UShort PosCount; /* number of PosLookupRecord tables */ - TT_UShort* Class; /* array of classes */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of PosLookupRecord tables */ - }; - - typedef struct TTO_PosClassRule_ TTO_PosClassRule; - - - struct TTO_PosClassSet_ - { - TT_UShort PosClassRuleCount; - /* number of PosClassRule tables */ - TTO_PosClassRule* PosClassRule; /* array of PosClassRule tables */ - }; - - typedef struct TTO_PosClassSet_ TTO_PosClassSet; - - - /* The `MaxContextLength' field is not defined in the TTO specification - but simplifies the implementation of this format. It holds the - maximal context length used in the context rules. */ - - struct TTO_ContextPosFormat2_ - { - TT_UShort MaxContextLength; - /* maximal context length */ - TTO_Coverage Coverage; /* Coverage table */ - TTO_ClassDefinition ClassDef; /* ClassDef table */ - TT_UShort PosClassSetCount; - /* number of PosClassSet tables */ - TTO_PosClassSet* PosClassSet; /* array of PosClassSet tables */ - }; - - typedef struct TTO_ContextPosFormat2_ TTO_ContextPosFormat2; - - - struct TTO_ContextPosFormat3_ - { - TT_UShort GlyphCount; /* number of input glyphs */ - TT_UShort PosCount; /* number of PosLookupRecord tables */ - TTO_Coverage* Coverage; /* array of Coverage tables */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of PosLookupRecord tables */ - }; - - typedef struct TTO_ContextPosFormat3_ TTO_ContextPosFormat3; - - - struct TTO_ContextPos_ - { - TT_UShort PosFormat; /* 1, 2, or 3 */ - - union - { - TTO_ContextPosFormat1 cpf1; - TTO_ContextPosFormat2 cpf2; - TTO_ContextPosFormat3 cpf3; - } cpf; - }; - - typedef struct TTO_ContextPos_ TTO_ContextPos; - - - /* LookupType 8 */ - - struct TTO_ChainPosRule_ - { - TT_UShort BacktrackGlyphCount; - /* total number of backtrack glyphs */ - TT_UShort* Backtrack; /* array of backtrack glyph IDs */ - TT_UShort InputGlyphCount; - /* total number of input glyphs */ - TT_UShort* Input; /* array of input glyph IDs */ - TT_UShort LookaheadGlyphCount; - /* total number of lookahead glyphs */ - TT_UShort* Lookahead; /* array of lookahead glyph IDs */ - TT_UShort PosCount; /* number of PosLookupRecords */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of PosLookupRecords */ - }; - - typedef struct TTO_ChainPosRule_ TTO_ChainPosRule; - - - struct TTO_ChainPosRuleSet_ - { - TT_UShort ChainPosRuleCount; - /* number of ChainPosRule tables */ - TTO_ChainPosRule* ChainPosRule; /* array of ChainPosRule tables */ - }; - - typedef struct TTO_ChainPosRuleSet_ TTO_ChainPosRuleSet; - - - struct TTO_ChainContextPosFormat1_ - { - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort ChainPosRuleSetCount; - /* number of ChainPosRuleSet tables */ - TTO_ChainPosRuleSet* ChainPosRuleSet; - /* array of ChainPosRuleSet tables */ - }; - - typedef struct TTO_ChainContextPosFormat1_ TTO_ChainContextPosFormat1; - - - struct TTO_ChainPosClassRule_ - { - TT_UShort BacktrackGlyphCount; - /* total number of backtrack - classes */ - TT_UShort* Backtrack; /* array of backtrack classes */ - TT_UShort InputGlyphCount; - /* total number of context classes */ - TT_UShort* Input; /* array of context classes */ - TT_UShort LookaheadGlyphCount; - /* total number of lookahead - classes */ - TT_UShort* Lookahead; /* array of lookahead classes */ - TT_UShort PosCount; /* number of PosLookupRecords */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of substitution lookups */ - }; - - typedef struct TTO_ChainPosClassRule_ TTO_ChainPosClassRule; - - - struct TTO_ChainPosClassSet_ - { - TT_UShort ChainPosClassRuleCount; - /* number of ChainPosClassRule - tables */ - TTO_ChainPosClassRule* ChainPosClassRule; - /* array of ChainPosClassRule - tables */ - }; - - typedef struct TTO_ChainPosClassSet_ TTO_ChainPosClassSet; - - - /* The `MaxXXXLength' fields are not defined in the TTO specification - but simplifies the implementation of this format. It holds the - maximal context length used in the specific context rules. */ - - struct TTO_ChainContextPosFormat2_ - { - TTO_Coverage Coverage; /* Coverage table */ - - TT_UShort MaxBacktrackLength; - /* maximal backtrack length */ - TTO_ClassDefinition BacktrackClassDef; - /* BacktrackClassDef table */ - TT_UShort MaxInputLength; - /* maximal input length */ - TTO_ClassDefinition InputClassDef; - /* InputClassDef table */ - TT_UShort MaxLookaheadLength; - /* maximal lookahead length */ - TTO_ClassDefinition LookaheadClassDef; - /* LookaheadClassDef table */ - - TT_UShort ChainPosClassSetCount; - /* number of ChainPosClassSet - tables */ - TTO_ChainPosClassSet* ChainPosClassSet; - /* array of ChainPosClassSet - tables */ - }; - - typedef struct TTO_ChainContextPosFormat2_ TTO_ChainContextPosFormat2; - - - struct TTO_ChainContextPosFormat3_ - { - TT_UShort BacktrackGlyphCount; - /* number of backtrack glyphs */ - TTO_Coverage* BacktrackCoverage; - /* array of backtrack Coverage - tables */ - TT_UShort InputGlyphCount; - /* number of input glyphs */ - TTO_Coverage* InputCoverage; - /* array of input coverage - tables */ - TT_UShort LookaheadGlyphCount; - /* number of lookahead glyphs */ - TTO_Coverage* LookaheadCoverage; - /* array of lookahead coverage - tables */ - TT_UShort PosCount; /* number of PosLookupRecords */ - TTO_PosLookupRecord* PosLookupRecord; - /* array of substitution lookups */ - }; - - typedef struct TTO_ChainContextPosFormat3_ TTO_ChainContextPosFormat3; - - - struct TTO_ChainContextPos_ - { - TT_UShort PosFormat; /* 1, 2, or 3 */ - - union - { - TTO_ChainContextPosFormat1 ccpf1; - TTO_ChainContextPosFormat2 ccpf2; - TTO_ChainContextPosFormat3 ccpf3; - } ccpf; - }; - - typedef struct TTO_ChainContextPos_ TTO_ChainContextPos; - - - union TTO_GPOS_SubTable_ - { - TTO_SinglePos single; - TTO_PairPos pair; - TTO_CursivePos cursive; - TTO_MarkBasePos markbase; - TTO_MarkLigPos marklig; - TTO_MarkMarkPos markmark; - TTO_ContextPos context; - TTO_ChainContextPos chain; - }; - - typedef union TTO_GPOS_SubTable_ TTO_GPOS_SubTable; - - - /* This `string object' is much simpler compared to TTO_GSUB_String. - A call to TTO_GPOS_Apply_String() will allocate it. */ - - struct TTO_GPOS_Data_ - { - TT_Pos x_pos; - TT_Pos y_pos; - TT_Pos x_advance; - TT_Pos y_advance; - TT_UShort back; /* number of glyphs to go back - for drawing current glyph */ - TT_Bool new_advance; /* if set, the advance width values are - absolute, i.e., they won't be - added to the original glyph's value - but rather replace them. */ - }; - - typedef struct TTO_GPOS_Data_ TTO_GPOS_Data; - - - /* finally, the GPOS API */ - - FT_EXPORT_DEF( TT_Error ) - TT_Init_GPOS_Extension( TT_Engine engine ); - - FT_EXPORT_DEF( TT_Error ) - TT_Load_GPOS_Table( TT_Face face, - TTO_GPOSHeader* gpos, - TTO_GDEFHeader* gdef ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Select_Script( TTO_GPOSHeader* gpos, - TT_ULong script_tag, - TT_UShort* script_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Select_Language( TTO_GPOSHeader* gpos, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Select_Feature( TTO_GPOSHeader* gpos, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Query_Scripts( TTO_GPOSHeader* gpos, - TT_ULong** script_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Query_Languages( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_ULong** language_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Query_Features( TTO_GPOSHeader* gpos, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Add_Feature( TTO_GPOSHeader* gpos, - TT_UShort feature_index, - TT_UShort property ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Clear_Features( TTO_GPOSHeader* gpos ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Register_Glyph_Function( TTO_GPOSHeader* gpos, - TTO_GlyphFunction gfunc ); - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Register_MM_Function( TTO_GPOSHeader* gpos, - TTO_MMFunction mmfunc, - void* data ); - - /* If `dvi' is TRUE, glyph contour points for anchor points and device - tables are ignored -- you will get device independent values. */ - - FT_EXPORT_DEF( TT_Error ) - TT_GPOS_Apply_String( TT_Instance instance, - TT_Glyph glyph, - TTO_GPOSHeader* gpos, - TT_UShort load_flags, - TTO_GSUB_String* in, - TTO_GPOS_Data** out, - TT_Bool dvi, - TT_Bool r2l ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXGPOS_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxgsub.c b/Build/source/libs/freetype/lib/extend/ftxgsub.c deleted file mode 100644 index 5fce59e59ca..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxgsub.c +++ /dev/null @@ -1,4425 +0,0 @@ -/******************************************************************* - * - * ftxgsub.c - * - * TrueType Open GSUB table support. - * - * 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. - * - ******************************************************************/ - -/* XXX There is *a lot* of duplicated code (cf. formats 5 and 6), but - I don't care currently. I believe that it would be possible to - save about 50% of TTO code by carefully designing the structures, - sharing as much as possible with extensive use of macros. This - is something for a volunteer :-) */ - -#include "tttypes.h" -#include "tttags.h" -#include "ttload.h" -#include "ttextend.h" -#include "ttmemory.h" -#include "ttfile.h" - -#include "ftxopen.h" -#include "ftxopenf.h" - - -#define ADD_String( in, num_in, out, num_out, glyph_data, component, ligID ) \ - ( ( error = TT_GSUB_Add_String( (in), (num_in), \ - (out), (num_out), \ - (glyph_data), (component), (ligID) \ - ) ) != TT_Err_Ok ) - - - static TT_Error Do_Glyph_Lookup( TTO_GSUBHeader* gsub, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort context_length, - int nesting_level ); - - - - /********************** - * Auxiliary functions - **********************/ - - - /* The following function copies `num_out' elements from `glyph_data' - to `out', advancing the array pointer in the `in' structure by - `num_in' elements, and in `out' by `num_out' elements. If the - string (resp. the properties) array in `out' is empty or too - small, it allocates resp. reallocates the string (and properties) - array. Finally, it sets the `length' field of `out' equal to - `pos' of the `out' structure. - - If `component' is 0xFFFF, the value `in->component[in->pos]' - will be copied `num_out' times, otherwise `component' itself will - be used to fill `out->component'. - - If `ligID' is 0xFFFF, the value `in->lig_IDs[in->pos]' will be - copied `num_out' times, otherwise `ligID' itself will be used to - fill `out->ligIDs'. - - The properties (if defined) for all replaced glyphs are taken - from the glyph at position `in->pos'. */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Add_String( TTO_GSUB_String* in, - UShort num_in, - TTO_GSUB_String* out, - UShort num_out, - UShort* glyph_data, - UShort component, - UShort ligID ) - { - TT_Error error; - TT_UInt i; - UShort p_in; - UShort* p_out; - - - /* sanity check */ - - if ( !in || !out || - in->length == 0 || in->pos >= in->length || - in->length < in->pos + num_in ) - return TT_Err_Invalid_Argument; - - if ( out->pos + num_out >= out->allocated ) - { - ULong size = out->pos + num_out + 256L; - - - /* The following works because all fields in `out' must be - initialized to zero (including the `string' field) for the - first use. */ - - if ( REALLOC_ARRAY( out->string, size, UShort ) ) - return error; - if ( REALLOC_ARRAY( out->components, size, UShort ) ) - return error; - if ( REALLOC_ARRAY( out->ligIDs, size, UShort ) ) - return error; - if ( in->properties ) - if ( REALLOC_ARRAY( out->properties, size, UShort ) ) - return error; - - out->allocated = size; - } - - if ( num_out ) - { - MEM_Copy( &out->string[out->pos], glyph_data, - num_out * sizeof ( UShort ) ); - - if ( component == 0xFFFF ) - component = in->components[in->pos]; - - p_out = out->components; - - for ( i = out->pos; i < out->pos + num_out; i++ ) - p_out[i] = component; - - p_out = out->ligIDs; - - if ( ligID == 0xFFFF ) - ligID = in->ligIDs[in->pos]; - - for ( i = out->pos; i < out->pos + num_out; i++ ) - p_out[i] = ligID; - - if ( in->properties ) - { - p_in = in->properties[in->pos]; - p_out = out->properties; - - for ( i = out->pos; i < out->pos + num_out; i++ ) - p_out[i] = p_in; - } - } - - in->pos += num_in; - out->pos += num_out; - - out->length = out->pos; - - return TT_Err_Ok; - } - - - - /********************** - * Extension Functions - **********************/ - - - static TT_Error - GSUB_Create( void* ext, - PFace face ) - { - DEFINE_LOAD_LOCALS( face->stream ); - - TTO_GSUBHeader* gsub = (TTO_GSUBHeader*)ext; - Long table; - - - /* by convention */ - - if ( !gsub ) - return TT_Err_Ok; - - /* a null offset indicates that there is no GSUB table */ - - gsub->offset = 0; - - /* we store the start offset and the size of the subtable */ - - table = TT_LookUp_Table( face, TTAG_GSUB ); - if ( table < 0 ) - return TT_Err_Ok; /* The table is optional */ - - if ( FILE_Seek( face->dirTables[table].Offset ) || - ACCESS_Frame( 4L ) ) - return error; - - gsub->offset = FILE_Pos() - 4L; /* undo ACCESS_Frame() */ - gsub->Version = GET_ULong(); - - FORGET_Frame(); - - gsub->loaded = FALSE; - - return TT_Err_Ok; - } - - - static TT_Error - GSUB_Destroy( void* ext, - PFace face ) - { - TTO_GSUBHeader* gsub = (TTO_GSUBHeader*)ext; - - - /* by convention */ - - if ( !gsub ) - return TT_Err_Ok; - - if ( gsub->loaded ) - { - Free_LookupList( &gsub->LookupList, GSUB ); - Free_FeatureList( &gsub->FeatureList ); - Free_ScriptList( &gsub->ScriptList ); - } - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_GSUB_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - return TT_Register_Extension( _engine, - GSUB_ID, - sizeof ( TTO_GSUBHeader ), - GSUB_Create, - GSUB_Destroy ); - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_GSUB_Table( TT_Face face, - TTO_GSUBHeader* retptr, - TTO_GDEFHeader* gdef ) - { - ULong cur_offset, new_offset, base_offset; - - UShort i, num_lookups; - TTO_GSUBHeader* gsub; - TTO_GDEFHeader* gdef_reg; - TTO_Lookup* lo; - - PFace faze = HANDLE_Face( face ); - DEFINE_ALL_LOCALS; - - - if ( !retptr ) - return TT_Err_Invalid_Argument; - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - error = TT_Extension_Get( faze, GSUB_ID, (void**)&gsub ); - if ( error ) - return error; - - if ( gsub->offset == 0 ) - return TT_Err_Table_Missing; /* no GSUB table; nothing to do */ - - /* now access stream */ - - if ( USE_Stream( faze->stream, stream ) ) - return error; - - base_offset = gsub->offset; - - /* skip version */ - - if ( FILE_Seek( base_offset + 4L ) || - ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ScriptList( &gsub->ScriptList, - faze ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_FeatureList( &gsub->FeatureList, - faze ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LookupList( &gsub->LookupList, - faze, GSUB ) ) != TT_Err_Ok ) - goto Fail2; - - gsub->gdef = gdef; /* can be NULL */ - - /* We now check the LookupFlags for values larger than 0xFF to find - out whether we need to load the `MarkAttachClassDef' field of the - GDEF table -- this hack is necessary for OpenType 1.2 tables since - the version field of the GDEF table hasn't been incremented. - - For constructed GDEF tables, we only load it if - `MarkAttachClassDef_offset' is not zero (nevertheless, a build of - a constructed mark attach table is not supported currently). */ - - if ( gdef && - gdef->MarkAttachClassDef_offset && !gdef->MarkAttachClassDef.loaded ) - { - lo = gsub->LookupList.Lookup; - num_lookups = gsub->LookupList.LookupCount; - - for ( i = 0; i < num_lookups; i++ ) - { - if ( lo[i].LookupFlag & IGNORE_SPECIAL_MARKS ) - { - if ( FILE_Seek( gdef->MarkAttachClassDef_offset ) || - ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort(); - - FORGET_Frame(); - - if ( !new_offset ) - return TTO_Err_Invalid_GDEF_SubTable; - - new_offset += gdef->offset; - - if ( FILE_Seek( new_offset ) || - ( error = Load_ClassDefinition( &gdef->MarkAttachClassDef, - 256, faze ) ) != TT_Err_Ok ) - goto Fail1; - - /* copy the class definition pointer into the extension structure */ - - error = TT_Extension_Get( faze, GDEF_ID, (void**)&gdef_reg ); - if ( error ) - return error; - - *gdef_reg = *gdef; - - break; - } - } - } - - gsub->loaded = TRUE; - *retptr = *gsub; - DONE_Stream( stream ); - - return TT_Err_Ok; - - Fail1: - Free_LookupList( &gsub->LookupList, GSUB ); - - Fail2: - Free_FeatureList( &gsub->FeatureList ); - - Fail3: - Free_ScriptList( &gsub->ScriptList ); - - /* release stream */ - - DONE_Stream( stream ); - - return error; - } - - - - /***************************** - * SubTable related functions - *****************************/ - - - /* LookupType 1 */ - - /* SingleSubstFormat1 */ - /* SingleSubstFormat2 */ - - TT_Error Load_SingleSubst( TTO_SingleSubst* ss, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - UShort* s; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - ss->SubstFormat = GET_UShort(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ss->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - switch ( ss->SubstFormat ) - { - case 1: - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - ss->ssf.ssf1.DeltaGlyphID = GET_UShort(); - - FORGET_Frame(); - - break; - - case 2: - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = ss->ssf.ssf2.GlyphCount = GET_UShort(); - - FORGET_Frame(); - - ss->ssf.ssf2.Substitute = NULL; - - if ( ALLOC_ARRAY( ss->ssf.ssf2.Substitute, count, UShort ) ) - goto Fail2; - - s = ss->ssf.ssf2.Substitute; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - s[n] = GET_UShort(); - - FORGET_Frame(); - - break; - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - - return TT_Err_Ok; - - Fail1: - FREE( s ); - - Fail2: - Free_Coverage( &ss->Coverage ); - return error; - } - - - void Free_SingleSubst( TTO_SingleSubst* ss ) - { - switch ( ss->SubstFormat ) - { - case 1: - break; - - case 2: - FREE( ss->ssf.ssf2.Substitute ); - break; - } - - Free_Coverage( &ss->Coverage ); - } - - - static TT_Error Lookup_SingleSubst( TTO_SingleSubst* ss, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - TTO_GDEFHeader* gdef ) - { - UShort index, value[1], property; - TT_Error error; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &ss->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - switch ( ss->SubstFormat ) - { - case 1: - value[0] = ( in->string[in->pos] + ss->ssf.ssf1.DeltaGlyphID ) & 0xFFFF; - if ( ADD_String( in, 1, out, 1, value, 0xFFFF, 0xFFFF ) ) - return error; - break; - - case 2: - if ( index >= ss->ssf.ssf2.GlyphCount ) - return TTO_Err_Invalid_GSUB_SubTable; - value[0] = ss->ssf.ssf2.Substitute[index]; - if ( ADD_String( in, 1, out, 1, value, 0xFFFF, 0xFFFF ) ) - return error; - break; - - default: - return TTO_Err_Invalid_GSUB_SubTable; - } - - if ( gdef && gdef->NewGlyphClasses ) - { - /* we inherit the old glyph class to the substituted glyph */ - - error = Add_Glyph_Property( gdef, value[0], property ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - - return TT_Err_Ok; - } - - - /* LookupType 2 */ - - /* Sequence */ - - static TT_Error Load_Sequence( TTO_Sequence* s, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* sub; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = s->GlyphCount = GET_UShort(); - - FORGET_Frame(); - - s->Substitute = NULL; - - if ( count ) - { - if ( ALLOC_ARRAY( s->Substitute, count, UShort ) ) - return error; - - sub = s->Substitute; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( sub ); - return error; - } - - for ( n = 0; n < count; n++ ) - sub[n] = GET_UShort(); - - FORGET_Frame(); - } - - return TT_Err_Ok; - } - - - static void Free_Sequence( TTO_Sequence* s ) - { - FREE( s->Substitute ); - } - - - /* MultipleSubstFormat1 */ - - TT_Error Load_MultipleSubst( TTO_MultipleSubst* ms, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Sequence* s; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - ms->SubstFormat = GET_UShort(); /* should be 1 */ - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ms->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = ms->SequenceCount = GET_UShort(); - - FORGET_Frame(); - - ms->Sequence = NULL; - - if ( ALLOC_ARRAY( ms->Sequence, count, TTO_Sequence ) ) - goto Fail2; - - s = ms->Sequence; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Sequence( &s[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_Sequence( &s[n] ); - - FREE( s ); - - Fail2: - Free_Coverage( &ms->Coverage ); - return error; - } - - - void Free_MultipleSubst( TTO_MultipleSubst* ms ) - { - UShort n, count; - - TTO_Sequence* s; - - - if ( ms->Sequence ) - { - count = ms->SequenceCount; - s = ms->Sequence; - - for ( n = 0; n < count; n++ ) - Free_Sequence( &s[n] ); - - FREE( s ); - } - - Free_Coverage( &ms->Coverage ); - } - - - static TT_Error Lookup_MultipleSubst( TTO_MultipleSubst* ms, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - TTO_GDEFHeader* gdef ) - { - TT_Error error; - UShort index, property, n, count; - UShort* s; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &ms->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - if ( index >= ms->SequenceCount ) - return TTO_Err_Invalid_GSUB_SubTable; - - count = ms->Sequence[index].GlyphCount; - s = ms->Sequence[index].Substitute; - - if ( ADD_String( in, 1, out, count, s, 0xFFFF, 0xFFFF ) ) - return error; - - if ( gdef && gdef->NewGlyphClasses ) - { - /* this is a guess only ... */ - - if ( property == TTO_LIGATURE ) - property = TTO_BASE_GLYPH; - - for ( n = 0; n < count; n++ ) - { - error = Add_Glyph_Property( gdef, s[n], property ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - } - - return TT_Err_Ok; - } - - - /* LookupType 3 */ - - /* AlternateSet */ - - static TT_Error Load_AlternateSet( TTO_AlternateSet* as, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* a; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = as->GlyphCount = GET_UShort(); - - FORGET_Frame(); - - as->Alternate = NULL; - - if ( ALLOC_ARRAY( as->Alternate, count, UShort ) ) - return error; - - a = as->Alternate; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( a ); - return error; - } - - for ( n = 0; n < count; n++ ) - a[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - static void Free_AlternateSet( TTO_AlternateSet* as ) - { - FREE( as->Alternate ); - } - - - /* AlternateSubstFormat1 */ - - TT_Error Load_AlternateSubst( TTO_AlternateSubst* as, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_AlternateSet* aset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - as->SubstFormat = GET_UShort(); /* should be 1 */ - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &as->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = as->AlternateSetCount = GET_UShort(); - - FORGET_Frame(); - - as->AlternateSet = NULL; - - if ( ALLOC_ARRAY( as->AlternateSet, count, TTO_AlternateSet ) ) - goto Fail2; - - aset = as->AlternateSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_AlternateSet( &aset[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_AlternateSet( &aset[n] ); - - FREE( aset ); - - Fail2: - Free_Coverage( &as->Coverage ); - return error; - } - - - void Free_AlternateSubst( TTO_AlternateSubst* as ) - { - UShort n, count; - - TTO_AlternateSet* aset; - - - if ( as->AlternateSet ) - { - count = as->AlternateSetCount; - aset = as->AlternateSet; - - for ( n = 0; n < count; n++ ) - Free_AlternateSet( &aset[n] ); - - FREE( aset ); - } - - Free_Coverage( &as->Coverage ); - } - - - static TT_Error Lookup_AlternateSubst( TTO_GSUBHeader* gsub, - TTO_AlternateSubst* as, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - TTO_GDEFHeader* gdef ) - { - TT_Error error; - UShort index, alt_index, property; - - TTO_AlternateSet aset; - - - if ( context_length != 0xFFFF && context_length < 1 ) - return TTO_Err_Not_Covered; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &as->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - aset = as->AlternateSet[index]; - - /* we use a user-defined callback function to get the alternate index */ - - if ( gsub->altfunc ) - alt_index = (gsub->altfunc)( out->pos, in->string[in->pos], - aset.GlyphCount, aset.Alternate, - gsub->data ); - else - alt_index = 0; - - if ( ADD_String( in, 1, out, 1, &aset.Alternate[alt_index], - 0xFFFF, 0xFFFF ) ) - return error; - - if ( gdef && gdef->NewGlyphClasses ) - { - /* we inherit the old glyph class to the substituted glyph */ - - error = Add_Glyph_Property( gdef, aset.Alternate[alt_index], - property ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - - return TT_Err_Ok; - } - - - /* LookupType 4 */ - - /* Ligature */ - - static TT_Error Load_Ligature( TTO_Ligature* l, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* c; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - l->LigGlyph = GET_UShort(); - l->ComponentCount = GET_UShort(); - - FORGET_Frame(); - - l->Component = NULL; - - count = l->ComponentCount - 1; /* only ComponentCount - 1 elements */ - - if ( ALLOC_ARRAY( l->Component, count, UShort ) ) - return error; - - c = l->Component; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( c ); - return error; - } - - for ( n = 0; n < count; n++ ) - c[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - static void Free_Ligature( TTO_Ligature* l ) - { - FREE( l->Component ); - } - - - /* LigatureSet */ - - static TT_Error Load_LigatureSet( TTO_LigatureSet* ls, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Ligature* l; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ls->LigatureCount = GET_UShort(); - - FORGET_Frame(); - - ls->Ligature = NULL; - - if ( ALLOC_ARRAY( ls->Ligature, count, TTO_Ligature ) ) - return error; - - l = ls->Ligature; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Ligature( &l[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_Ligature( &l[n] ); - - FREE( l ); - return error; - } - - - static void Free_LigatureSet( TTO_LigatureSet* ls ) - { - UShort n, count; - - TTO_Ligature* l; - - - if ( ls->Ligature ) - { - count = ls->LigatureCount; - l = ls->Ligature; - - for ( n = 0; n < count; n++ ) - Free_Ligature( &l[n] ); - - FREE( l ); - } - } - - - /* LigatureSubstFormat1 */ - - TT_Error Load_LigatureSubst( TTO_LigatureSubst* ls, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_LigatureSet* lset; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 4L ) ) - return error; - - ls->SubstFormat = GET_UShort(); /* should be 1 */ - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ls->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = ls->LigatureSetCount = GET_UShort(); - - FORGET_Frame(); - - ls->LigatureSet = NULL; - - if ( ALLOC_ARRAY( ls->LigatureSet, count, TTO_LigatureSet ) ) - goto Fail2; - - lset = ls->LigatureSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LigatureSet( &lset[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_LigatureSet( &lset[n] ); - - FREE( lset ); - - Fail2: - Free_Coverage( &ls->Coverage ); - return error; - } - - - void Free_LigatureSubst( TTO_LigatureSubst* ls ) - { - UShort n, count; - - TTO_LigatureSet* lset; - - - if ( ls->LigatureSet ) - { - count = ls->LigatureSetCount; - lset = ls->LigatureSet; - - for ( n = 0; n < count; n++ ) - Free_LigatureSet( &lset[n] ); - - FREE( lset ); - } - - Free_Coverage( &ls->Coverage ); - } - - - static TT_Error Lookup_LigatureSubst( TTO_LigatureSubst* ls, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - TTO_GDEFHeader* gdef ) - { - UShort index, property; - TT_Error error; - UShort numlig, i, j, is_mark, first_is_mark = FALSE; - UShort first_ligID, first_comp; - UShort *s_in, *lig_in, *comp_in; - UShort* c; - - TTO_Ligature* lig; - - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - if ( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) - first_is_mark = TRUE; - - error = Coverage_Index( &ls->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - if ( index >= ls->LigatureSetCount ) - return TTO_Err_Invalid_GSUB_SubTable; - - lig = ls->LigatureSet[index].Ligature; - - for ( numlig = ls->LigatureSet[index].LigatureCount; - numlig; - numlig--, lig++ ) - { - if ( in->pos + lig->ComponentCount > in->length ) - continue; /* Not enough glyphs in input */ - - s_in = &in->string[in->pos]; - lig_in = &in->ligIDs[in->pos]; - comp_in = &in->components[in->pos]; - first_ligID = *lig_in; - first_comp = *comp_in; - c = lig->Component; - - is_mark = first_is_mark; - - if ( context_length != 0xFFFF && context_length < lig->ComponentCount ) - break; - - for ( i = 1, j = 1; i < lig->ComponentCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - break; - } - - /* don't apply a ligature lookup to glyphs with different - ligature IDs. Example: - - ' - ^' ' ^ - f ^ l ' -> fl ^ ' -> fl but not fl ^ -> fl */ - - if ( first_ligID != lig_in[j] ) - break; - - /* don't apply a ligature lookup to glyphs with different - component values. Example: - - ' - ^' ' ^ - f ^ f ' l -> ffl ^ ' -> ffl but not ffl ^ -> ffl */ - - if ( first_comp != comp_in[j] ) - break; - - if ( !( property == TTO_MARK || property & IGNORE_SPECIAL_MARKS ) ) - is_mark = FALSE; - - if ( s_in[j] != c[i - 1] ) - break; - } - - if ( i == lig->ComponentCount ) - { - if ( gdef && gdef->NewGlyphClasses ) - { - /* this is just a guess ... */ - - error = Add_Glyph_Property( gdef, lig->LigGlyph, - is_mark ? TTO_MARK : TTO_LIGATURE ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - - if ( i == j ) - { - /* We don't use a new ligature ID if there are no skipped - glyphs and the ligature already has an ID. */ - - if ( in->ligIDs[in->pos] ) - { - if ( ADD_String( in, i, out, 1, &lig->LigGlyph, - 0xFFFF, 0xFFFF ) ) - return error; - } - else - { - if ( ADD_String( in, i, out, 1, &lig->LigGlyph, - 0xFFFF, in->max_ligID ) ) - return error; - - (in->max_ligID)++; - } - } - else - { - if ( ADD_String( in, 1, out, 1, &lig->LigGlyph, - 0xFFFF, in->max_ligID ) ) - return error; - - /* Now we must do a second loop to copy the skipped glyphs to - `out' and assign component values to it. We start with the - glyph after the first component. Glyphs between component - i and i+1 belong to component i. Together with the ligID - value it is later possible to check whether a specific - component value really belongs to a given ligature. */ - - for ( i = 0; i < lig->ComponentCount - 1; i++ ) - { - while ( CHECK_Property( gdef, in->string[in->pos], - flags, &property ) ) - if ( ADD_String( in, 1, out, 1, &in->string[in->pos], - i, in->max_ligID ) ) - return error; - - (in->pos)++; - } - - (in->max_ligID)++; - } - - return TT_Err_Ok; - } - } - - return TTO_Err_Not_Covered; - } - - - /* Do the actual substitution for a context substitution (either format - 5 or 6). This is only called after we've determined that the input - matches the subrule. */ - - static TT_Error Do_ContextSubst( TTO_GSUBHeader* gsub, - UShort GlyphCount, - UShort SubstCount, - TTO_SubstLookupRecord* subst, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - int nesting_level ) - { - TT_Error error; - UShort i, old_pos; - - - i = 0; - - while ( i < GlyphCount ) - { - if ( SubstCount && i == subst->SequenceIndex ) - { - old_pos = in->pos; - - /* Do a substitution */ - - error = Do_Glyph_Lookup( gsub, subst->LookupListIndex, in, out, - GlyphCount, nesting_level ); - - subst++; - SubstCount--; - i += in->pos - old_pos; - - if ( error == TTO_Err_Not_Covered ) - { - /* XXX "can't happen" -- but don't count on it */ - - if ( ADD_String( in, 1, out, 1, &in->string[in->pos], - 0xFFFF, 0xFFFF ) ) - return error; - i++; - } - else if ( error ) - return error; - } - else - { - /* No substitution for this index */ - - if ( ADD_String( in, 1, out, 1, &in->string[in->pos], - 0xFFFF, 0xFFFF ) ) - return error; - i++; - } - } - - return TT_Err_Ok; - } - - - /* LookupType 5 */ - - /* SubRule */ - - static TT_Error Load_SubRule( TTO_SubRule* sr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* i; - - TTO_SubstLookupRecord* slr; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - sr->GlyphCount = GET_UShort(); - sr->SubstCount = GET_UShort(); - - FORGET_Frame(); - - sr->Input = NULL; - - count = sr->GlyphCount - 1; /* only GlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( sr->Input, count, UShort ) ) - return error; - - i = sr->Input; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - i[n] = GET_UShort(); - - FORGET_Frame(); - - sr->SubstLookupRecord = NULL; - - count = sr->SubstCount; - - if ( ALLOC_ARRAY( sr->SubstLookupRecord, count, TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = sr->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - FREE( i ); - return error; - } - - - static void Free_SubRule( TTO_SubRule* sr ) - { - FREE( sr->SubstLookupRecord ); - FREE( sr->Input ); - } - - - /* SubRuleSet */ - - static TT_Error Load_SubRuleSet( TTO_SubRuleSet* srs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_SubRule* sr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = srs->SubRuleCount = GET_UShort(); - - FORGET_Frame(); - - srs->SubRule = NULL; - - if ( ALLOC_ARRAY( srs->SubRule, count, TTO_SubRule ) ) - return error; - - sr = srs->SubRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_SubRule( &sr[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_SubRule( &sr[n] ); - - FREE( sr ); - return error; - } - - - static void Free_SubRuleSet( TTO_SubRuleSet* srs ) - { - UShort n, count; - - TTO_SubRule* sr; - - - if ( srs->SubRule ) - { - count = srs->SubRuleCount; - sr = srs->SubRule; - - for ( n = 0; n < count; n++ ) - Free_SubRule( &sr[n] ); - - FREE( sr ); - } - } - - - /* ContextSubstFormat1 */ - - static TT_Error Load_ContextSubst1( TTO_ContextSubstFormat1* csf1, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_SubRuleSet* srs; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &csf1->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = csf1->SubRuleSetCount = GET_UShort(); - - FORGET_Frame(); - - csf1->SubRuleSet = NULL; - - if ( ALLOC_ARRAY( csf1->SubRuleSet, count, TTO_SubRuleSet ) ) - goto Fail2; - - srs = csf1->SubRuleSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_SubRuleSet( &srs[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_SubRuleSet( &srs[n] ); - - FREE( srs ); - - Fail2: - Free_Coverage( &csf1->Coverage ); - return error; - } - - - static void Free_Context1( TTO_ContextSubstFormat1* csf1 ) - { - UShort n, count; - - TTO_SubRuleSet* srs; - - - if ( csf1->SubRuleSet ) - { - count = csf1->SubRuleSetCount; - srs = csf1->SubRuleSet; - - for ( n = 0; n < count; n++ ) - Free_SubRuleSet( &srs[n] ); - - FREE( srs ); - } - - Free_Coverage( &csf1->Coverage ); - } - - - /* SubClassRule */ - - static TT_Error Load_SubClassRule( TTO_ContextSubstFormat2* csf2, - TTO_SubClassRule* scr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* c; - TTO_SubstLookupRecord* slr; - Bool* d; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - scr->GlyphCount = GET_UShort(); - scr->SubstCount = GET_UShort(); - - if ( scr->GlyphCount > csf2->MaxContextLength ) - csf2->MaxContextLength = scr->GlyphCount; - - FORGET_Frame(); - - scr->Class = NULL; - - count = scr->GlyphCount - 1; /* only GlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( scr->Class, count, UShort ) ) - return error; - - c = scr->Class; - d = csf2->ClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - { - c[n] = GET_UShort(); - - /* We check whether the specific class is used at all. If not, - class 0 is used instead. */ - - if ( !d[c[n]] ) - c[n] = 0; - } - - FORGET_Frame(); - - scr->SubstLookupRecord = NULL; - - count = scr->SubstCount; - - if ( ALLOC_ARRAY( scr->SubstLookupRecord, count, TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = scr->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - FREE( c ); - return error; - } - - - static void Free_SubClassRule( TTO_SubClassRule* scr ) - { - FREE( scr->SubstLookupRecord ); - FREE( scr->Class ); - } - - - /* SubClassSet */ - - static TT_Error Load_SubClassSet( TTO_ContextSubstFormat2* csf2, - TTO_SubClassSet* scs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_SubClassRule* scr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = scs->SubClassRuleCount = GET_UShort(); - - FORGET_Frame(); - - scs->SubClassRule = NULL; - - if ( ALLOC_ARRAY( scs->SubClassRule, count, TTO_SubClassRule ) ) - return error; - - scr = scs->SubClassRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_SubClassRule( csf2, &scr[n], - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_SubClassRule( &scr[n] ); - - FREE( scr ); - return error; - } - - - static void Free_SubClassSet( TTO_SubClassSet* scs ) - { - UShort n, count; - - TTO_SubClassRule* scr; - - - if ( scs->SubClassRule ) - { - count = scs->SubClassRuleCount; - scr = scs->SubClassRule; - - for ( n = 0; n < count; n++ ) - Free_SubClassRule( &scr[n] ); - - FREE( scr ); - } - } - - - /* ContextSubstFormat2 */ - - static TT_Error Load_ContextSubst2( TTO_ContextSubstFormat2* csf2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_SubClassSet* scs; - - - base_offset = FILE_Pos() - 2; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &csf2->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 4L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - /* `SubClassSetCount' is the upper limit for class values, thus we - read it now to make an additional safety check. */ - - count = csf2->SubClassSetCount = GET_UShort(); - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ClassDefinition( &csf2->ClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - - csf2->SubClassSet = NULL; - csf2->MaxContextLength = 0; - - if ( ALLOC_ARRAY( csf2->SubClassSet, count, TTO_SubClassSet ) ) - goto Fail2; - - scs = csf2->SubClassSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - if ( new_offset != base_offset ) /* not a NULL offset */ - { - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_SubClassSet( csf2, &scs[n], - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - { - /* we create a SubClassSet table with no entries */ - - csf2->SubClassSet[n].SubClassRuleCount = 0; - csf2->SubClassSet[n].SubClassRule = NULL; - } - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_SubClassSet( &scs[n] ); - - FREE( scs ); - - Fail2: - Free_ClassDefinition( &csf2->ClassDef ); - - Fail3: - Free_Coverage( &csf2->Coverage ); - return error; - } - - - static void Free_Context2( TTO_ContextSubstFormat2* csf2 ) - { - UShort n, count; - - TTO_SubClassSet* scs; - - - if ( csf2->SubClassSet ) - { - count = csf2->SubClassSetCount; - scs = csf2->SubClassSet; - - for ( n = 0; n < count; n++ ) - Free_SubClassSet( &scs[n] ); - - FREE( scs ); - } - - Free_ClassDefinition( &csf2->ClassDef ); - Free_Coverage( &csf2->Coverage ); - } - - - /* ContextSubstFormat3 */ - - static TT_Error Load_ContextSubst3( TTO_ContextSubstFormat3* csf3, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Coverage* c; - TTO_SubstLookupRecord* slr; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 4L ) ) - return error; - - csf3->GlyphCount = GET_UShort(); - csf3->SubstCount = GET_UShort(); - - FORGET_Frame(); - - csf3->Coverage = NULL; - - count = csf3->GlyphCount; - - if ( ALLOC_ARRAY( csf3->Coverage, count, TTO_Coverage ) ) - return error; - - c = csf3->Coverage; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &c[n], input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - - csf3->SubstLookupRecord = NULL; - - count = csf3->SubstCount; - - if ( ALLOC_ARRAY( csf3->SubstLookupRecord, count, - TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = csf3->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - return error; - } - - - static void Free_Context3( TTO_ContextSubstFormat3* csf3 ) - { - UShort n, count; - - TTO_Coverage* c; - - - FREE( csf3->SubstLookupRecord ); - - if ( csf3->Coverage ) - { - count = csf3->GlyphCount; - c = csf3->Coverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - } - - - /* ContextSubst */ - - TT_Error Load_ContextSubst( TTO_ContextSubst* cs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ACCESS_Frame( 2L ) ) - return error; - - cs->SubstFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( cs->SubstFormat ) - { - case 1: - return Load_ContextSubst1( &cs->csf.csf1, input ); - - case 2: - return Load_ContextSubst2( &cs->csf.csf2, input ); - - case 3: - return Load_ContextSubst3( &cs->csf.csf3, input ); - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - void Free_ContextSubst( TTO_ContextSubst* cs ) - { - switch ( cs->SubstFormat ) - { - case 1: - Free_Context1( &cs->csf.csf1 ); - break; - - case 2: - Free_Context2( &cs->csf.csf2 ); - break; - - case 3: - Free_Context3( &cs->csf.csf3 ); - break; - } - } - - - static TT_Error Lookup_ContextSubst1( - TTO_GSUBHeader* gsub, - TTO_ContextSubstFormat1* csf1, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - UShort index, property; - UShort i, j, k, numsr; - TT_Error error; - UShort* s_in; - - TTO_SubRule* sr; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &csf1->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - sr = csf1->SubRuleSet[index].SubRule; - numsr = csf1->SubRuleSet[index].SubRuleCount; - - for ( k = 0; k < numsr; k++ ) - { - if ( context_length != 0xFFFF && context_length < sr[k].GlyphCount ) - continue; - - if ( in->pos + sr[k].GlyphCount > in->length ) - continue; /* context is too long */ - - s_in = &in->string[in->pos]; - - for ( i = 1, j = 1; i < sr[k].GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != sr[k].Input[i - 1] ) - break; - } - - if ( i == sr[k].GlyphCount ) - return Do_ContextSubst( gsub, sr[k].GlyphCount, - sr[k].SubstCount, sr[k].SubstLookupRecord, - in, out, - nesting_level ); - } - - return TTO_Err_Not_Covered; - } - - - static TT_Error Lookup_ContextSubst2( - TTO_GSUBHeader* gsub, - TTO_ContextSubstFormat2* csf2, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - UShort index, property; - TT_Error error; - UShort i, j, k, known_classes; - - UShort* classes; - UShort* s_in; - UShort* cl; - - TTO_SubClassSet* scs; - TTO_SubClassRule* sr; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( ALLOC_ARRAY( classes, csf2->MaxContextLength, UShort ) ) - return error; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - /* Note: The coverage table in format 2 doesn't give an index into - anything. It just lets us know whether or not we need to - do any lookup at all. */ - - error = Coverage_Index( &csf2->Coverage, in->string[in->pos], &index ); - if ( error ) - goto End; - - error = Get_Class( &csf2->ClassDef, in->string[in->pos], - &classes[0], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End; - known_classes = 0; - - scs = &csf2->SubClassSet[classes[0]]; - if ( !scs ) - { - error = TTO_Err_Invalid_GSUB_SubTable; - goto End; - } - - for ( k = 0; k < scs->SubClassRuleCount; k++ ) - { - sr = &scs->SubClassRule[k]; - - if ( context_length != 0xFFFF && context_length < sr->GlyphCount ) - continue; - - if ( in->pos + sr->GlyphCount > in->length ) - continue; /* context is too long */ - - s_in = &in->string[in->pos]; - cl = sr->Class; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < sr->GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - break; - } - - if ( i > known_classes ) - { - /* Keeps us from having to do this for each rule */ - - error = Get_Class( &csf2->ClassDef, s_in[j], &classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - known_classes = i; - } - - if ( cl[i - 1] != classes[i] ) - break; - } - - if ( i == sr->GlyphCount ) - { - error = Do_ContextSubst( gsub, sr->GlyphCount, - sr->SubstCount, sr->SubstLookupRecord, - in, out, - nesting_level ); - goto End; - } - } - - error = TTO_Err_Not_Covered; - - End: - FREE( classes ); - return error; - } - - - static TT_Error Lookup_ContextSubst3( - TTO_GSUBHeader* gsub, - TTO_ContextSubstFormat3* csf3, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - TT_Error error; - UShort index, i, j, property; - UShort* s_in; - - TTO_Coverage* c; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - if ( context_length != 0xFFFF && context_length < csf3->GlyphCount ) - return TTO_Err_Not_Covered; - - if ( in->pos + csf3->GlyphCount > in->length ) - return TTO_Err_Not_Covered; /* context is too long */ - - s_in = &in->string[in->pos]; - c = csf3->Coverage; - - for ( i = 1, j = 1; i < csf3->GlyphCount; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( in->pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &c[i], s_in[j], &index ); - if ( error ) - return error; - } - - return Do_ContextSubst( gsub, csf3->GlyphCount, - csf3->SubstCount, csf3->SubstLookupRecord, - in, out, - nesting_level ); - } - - - static TT_Error Lookup_ContextSubst( TTO_GSUBHeader* gsub, - TTO_ContextSubst* cs, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - switch ( cs->SubstFormat ) - { - case 1: - return Lookup_ContextSubst1( gsub, &cs->csf.csf1, in, out, - flags, context_length, nesting_level ); - - case 2: - return Lookup_ContextSubst2( gsub, &cs->csf.csf2, in, out, - flags, context_length, nesting_level ); - - case 3: - return Lookup_ContextSubst3( gsub, &cs->csf.csf3, in, out, - flags, context_length, nesting_level ); - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - /* LookupType 6 */ - - /* ChainSubRule */ - - static TT_Error Load_ChainSubRule( TTO_ChainSubRule* csr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort* b; - UShort* i; - UShort* l; - - TTO_SubstLookupRecord* slr; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - csr->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - csr->Backtrack = NULL; - - count = csr->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( csr->Backtrack, count, UShort ) ) - return error; - - b = csr->Backtrack; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail4; - - for ( n = 0; n < count; n++ ) - b[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - csr->InputGlyphCount = GET_UShort(); - - FORGET_Frame(); - - csr->Input = NULL; - - count = csr->InputGlyphCount - 1; /* only InputGlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( csr->Input, count, UShort ) ) - goto Fail4; - - i = csr->Input; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail3; - - for ( n = 0; n < count; n++ ) - i[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - csr->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - csr->Lookahead = NULL; - - count = csr->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( csr->Lookahead, count, UShort ) ) - goto Fail3; - - l = csr->Lookahead; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - l[n] = GET_UShort(); - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - csr->SubstCount = GET_UShort(); - - FORGET_Frame(); - - csr->SubstLookupRecord = NULL; - - count = csr->SubstCount; - - if ( ALLOC_ARRAY( csr->SubstLookupRecord, count, TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = csr->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - FREE( l ); - - Fail3: - FREE( i ); - - Fail4: - FREE( b ); - return error; - } - - - static void Free_ChainSubRule( TTO_ChainSubRule* csr ) - { - FREE( csr->SubstLookupRecord ); - FREE( csr->Lookahead ); - FREE( csr->Input ); - FREE( csr->Backtrack ); - } - - - /* ChainSubRuleSet */ - - static TT_Error Load_ChainSubRuleSet( TTO_ChainSubRuleSet* csrs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainSubRule* csr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = csrs->ChainSubRuleCount = GET_UShort(); - - FORGET_Frame(); - - csrs->ChainSubRule = NULL; - - if ( ALLOC_ARRAY( csrs->ChainSubRule, count, TTO_ChainSubRule ) ) - return error; - - csr = csrs->ChainSubRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainSubRule( &csr[n], input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_ChainSubRule( &csr[n] ); - - FREE( csr ); - return error; - } - - - static void Free_ChainSubRuleSet( TTO_ChainSubRuleSet* csrs ) - { - UShort n, count; - - TTO_ChainSubRule* csr; - - - if ( csrs->ChainSubRule ) - { - count = csrs->ChainSubRuleCount; - csr = csrs->ChainSubRule; - - for ( n = 0; n < count; n++ ) - Free_ChainSubRule( &csr[n] ); - - FREE( csr ); - } - } - - - /* ChainContextSubstFormat1 */ - - static TT_Error Load_ChainContextSubst1( - TTO_ChainContextSubstFormat1* ccsf1, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainSubRuleSet* csrs; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ccsf1->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = ccsf1->ChainSubRuleSetCount = GET_UShort(); - - FORGET_Frame(); - - ccsf1->ChainSubRuleSet = NULL; - - if ( ALLOC_ARRAY( ccsf1->ChainSubRuleSet, count, TTO_ChainSubRuleSet ) ) - goto Fail2; - - csrs = ccsf1->ChainSubRuleSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainSubRuleSet( &csrs[n], input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_ChainSubRuleSet( &csrs[n] ); - - FREE( csrs ); - - Fail2: - Free_Coverage( &ccsf1->Coverage ); - return error; - } - - - static void Free_ChainContext1( TTO_ChainContextSubstFormat1* ccsf1 ) - { - UShort n, count; - - TTO_ChainSubRuleSet* csrs; - - - if ( ccsf1->ChainSubRuleSet ) - { - count = ccsf1->ChainSubRuleSetCount; - csrs = ccsf1->ChainSubRuleSet; - - for ( n = 0; n < count; n++ ) - Free_ChainSubRuleSet( &csrs[n] ); - - FREE( csrs ); - } - - Free_Coverage( &ccsf1->Coverage ); - } - - - /* ChainSubClassRule */ - - static TT_Error Load_ChainSubClassRule( - TTO_ChainContextSubstFormat2* ccsf2, - TTO_ChainSubClassRule* cscr, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* b; - UShort* i; - UShort* l; - TTO_SubstLookupRecord* slr; - Bool* d; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - cscr->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - if ( cscr->BacktrackGlyphCount > ccsf2->MaxBacktrackLength ) - ccsf2->MaxBacktrackLength = cscr->BacktrackGlyphCount; - - cscr->Backtrack = NULL; - - count = cscr->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( cscr->Backtrack, count, UShort ) ) - return error; - - b = cscr->Backtrack; - d = ccsf2->BacktrackClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail4; - - for ( n = 0; n < count; n++ ) - { - b[n] = GET_UShort(); - - /* We check whether the specific class is used at all. If not, - class 0 is used instead. */ - - if ( !d[b[n]] ) - b[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - cscr->InputGlyphCount = GET_UShort(); - - FORGET_Frame(); - - if ( cscr->InputGlyphCount > ccsf2->MaxInputLength ) - ccsf2->MaxInputLength = cscr->InputGlyphCount; - - cscr->Input = NULL; - - count = cscr->InputGlyphCount - 1; /* only InputGlyphCount - 1 elements */ - - if ( ALLOC_ARRAY( cscr->Input, count, UShort ) ) - goto Fail4; - - i = cscr->Input; - d = ccsf2->InputClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail3; - - for ( n = 0; n < count; n++ ) - { - i[n] = GET_UShort(); - - if ( !d[i[n]] ) - i[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - cscr->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - if ( cscr->LookaheadGlyphCount > ccsf2->MaxLookaheadLength ) - ccsf2->MaxLookaheadLength = cscr->LookaheadGlyphCount; - - cscr->Lookahead = NULL; - - count = cscr->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( cscr->Lookahead, count, UShort ) ) - goto Fail3; - - l = cscr->Lookahead; - d = ccsf2->LookaheadClassDef.Defined; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail2; - - for ( n = 0; n < count; n++ ) - { - l[n] = GET_UShort(); - - if ( !d[l[n]] ) - l[n] = 0; - } - - FORGET_Frame(); - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - cscr->SubstCount = GET_UShort(); - - FORGET_Frame(); - - cscr->SubstLookupRecord = NULL; - - count = cscr->SubstCount; - - if ( ALLOC_ARRAY( cscr->SubstLookupRecord, count, - TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = cscr->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - FREE( l ); - - Fail3: - FREE( i ); - - Fail4: - FREE( b ); - return error; - } - - - static void Free_ChainSubClassRule( TTO_ChainSubClassRule* cscr ) - { - FREE( cscr->SubstLookupRecord ); - FREE( cscr->Lookahead ); - FREE( cscr->Input ); - FREE( cscr->Backtrack ); - } - - - /* SubClassSet */ - - static TT_Error Load_ChainSubClassSet( - TTO_ChainContextSubstFormat2* ccsf2, - TTO_ChainSubClassSet* cscs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ChainSubClassRule* cscr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cscs->ChainSubClassRuleCount = GET_UShort(); - - FORGET_Frame(); - - cscs->ChainSubClassRule = NULL; - - if ( ALLOC_ARRAY( cscs->ChainSubClassRule, count, - TTO_ChainSubClassRule ) ) - return error; - - cscr = cscs->ChainSubClassRule; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainSubClassRule( ccsf2, &cscr[n], - input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_ChainSubClassRule( &cscr[n] ); - - FREE( cscr ); - return error; - } - - - static void Free_ChainSubClassSet( TTO_ChainSubClassSet* cscs ) - { - UShort n, count; - - TTO_ChainSubClassRule* cscr; - - - if ( cscs->ChainSubClassRule ) - { - count = cscs->ChainSubClassRuleCount; - cscr = cscs->ChainSubClassRule; - - for ( n = 0; n < count; n++ ) - Free_ChainSubClassRule( &cscr[n] ); - - FREE( cscr ); - } - } - - - /* ChainContextSubstFormat2 */ - - static TT_Error Load_ChainContextSubst2( - TTO_ChainContextSubstFormat2* ccsf2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - ULong backtrack_offset, input_offset, lookahead_offset; - - TTO_ChainSubClassSet* cscs; - - - base_offset = FILE_Pos() - 2; - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &ccsf2->Coverage, input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - - if ( ACCESS_Frame( 8L ) ) - goto Fail5; - - backtrack_offset = GET_UShort() + base_offset; - input_offset = GET_UShort() + base_offset; - lookahead_offset = GET_UShort() + base_offset; - - /* `ChainSubClassSetCount' is the upper limit for input class values, - thus we read it now to make an additional safety check. */ - - count = ccsf2->ChainSubClassSetCount = GET_UShort(); - - FORGET_Frame(); - - /* backtrack and lookahead data can be optional */ - - cur_offset = FILE_Pos(); - if ( backtrack_offset != base_offset ) { - if ( FILE_Seek( backtrack_offset ) || - ( error = Load_ClassDefinition( &ccsf2->BacktrackClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail5; - } - if ( FILE_Seek( input_offset ) || - ( error = Load_ClassDefinition( &ccsf2->InputClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail4; - if ( lookahead_offset != base_offset ) { - if ( FILE_Seek( lookahead_offset ) || - ( error = Load_ClassDefinition( &ccsf2->LookaheadClassDef, count, - input ) ) != TT_Err_Ok ) - goto Fail3; - } - (void)FILE_Seek( cur_offset ); - - ccsf2->ChainSubClassSet = NULL; - ccsf2->MaxBacktrackLength = 0; - ccsf2->MaxInputLength = 0; - ccsf2->MaxLookaheadLength = 0; - - if ( ALLOC_ARRAY( ccsf2->ChainSubClassSet, count, TTO_ChainSubClassSet ) ) - goto Fail2; - - cscs = ccsf2->ChainSubClassSet; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - if ( new_offset != base_offset ) /* not a NULL offset */ - { - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_ChainSubClassSet( ccsf2, &cscs[n], - input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - else - { - /* we create a ChainSubClassSet table with no entries */ - - ccsf2->ChainSubClassSet[n].ChainSubClassRuleCount = 0; - ccsf2->ChainSubClassSet[n].ChainSubClassRule = NULL; - } - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_ChainSubClassSet( &cscs[n] ); - - FREE( cscs ); - - Fail2: - Free_ClassDefinition( &ccsf2->LookaheadClassDef ); - - Fail3: - Free_ClassDefinition( &ccsf2->InputClassDef ); - - Fail4: - Free_ClassDefinition( &ccsf2->BacktrackClassDef ); - - Fail5: - Free_Coverage( &ccsf2->Coverage ); - return error; - } - - - static void Free_ChainContext2( TTO_ChainContextSubstFormat2* ccsf2 ) - { - UShort n, count; - - TTO_ChainSubClassSet* cscs; - - - if ( ccsf2->ChainSubClassSet ) - { - count = ccsf2->ChainSubClassSetCount; - cscs = ccsf2->ChainSubClassSet; - - for ( n = 0; n < count; n++ ) - Free_ChainSubClassSet( &cscs[n] ); - - FREE( cscs ); - } - - Free_ClassDefinition( &ccsf2->LookaheadClassDef ); - Free_ClassDefinition( &ccsf2->InputClassDef ); - Free_ClassDefinition( &ccsf2->BacktrackClassDef ); - - Free_Coverage( &ccsf2->Coverage ); - } - - - /* ChainContextSubstFormat3 */ - - static TT_Error Load_ChainContextSubst3( - TTO_ChainContextSubstFormat3* ccsf3, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - UShort backtrack_count, input_count, lookahead_count; - ULong cur_offset, new_offset, base_offset; - - TTO_Coverage* b; - TTO_Coverage* i; - TTO_Coverage* l; - TTO_SubstLookupRecord* slr; - - - base_offset = FILE_Pos() - 2L; - - if ( ACCESS_Frame( 2L ) ) - return error; - - ccsf3->BacktrackGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccsf3->BacktrackCoverage = NULL; - - backtrack_count = ccsf3->BacktrackGlyphCount; - - if ( ALLOC_ARRAY( ccsf3->BacktrackCoverage, backtrack_count, - TTO_Coverage ) ) - return error; - - b = ccsf3->BacktrackCoverage; - - for ( n = 0; n < backtrack_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &b[n], input ) ) != TT_Err_Ok ) - goto Fail4; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail4; - - ccsf3->InputGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccsf3->InputCoverage = NULL; - - input_count = ccsf3->InputGlyphCount; - - if ( ALLOC_ARRAY( ccsf3->InputCoverage, input_count, TTO_Coverage ) ) - goto Fail4; - - i = ccsf3->InputCoverage; - - for ( n = 0; n < input_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &i[n], input ) ) != TT_Err_Ok ) - goto Fail3; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail3; - - ccsf3->LookaheadGlyphCount = GET_UShort(); - - FORGET_Frame(); - - ccsf3->LookaheadCoverage = NULL; - - lookahead_count = ccsf3->LookaheadGlyphCount; - - if ( ALLOC_ARRAY( ccsf3->LookaheadCoverage, lookahead_count, - TTO_Coverage ) ) - goto Fail3; - - l = ccsf3->LookaheadCoverage; - - for ( n = 0; n < lookahead_count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Coverage( &l[n], input ) ) != TT_Err_Ok ) - goto Fail2; - (void)FILE_Seek( cur_offset ); - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - ccsf3->SubstCount = GET_UShort(); - - FORGET_Frame(); - - ccsf3->SubstLookupRecord = NULL; - - count = ccsf3->SubstCount; - - if ( ALLOC_ARRAY( ccsf3->SubstLookupRecord, count, - TTO_SubstLookupRecord ) ) - goto Fail2; - - slr = ccsf3->SubstLookupRecord; - - if ( ACCESS_Frame( count * 4L ) ) - goto Fail1; - - for ( n = 0; n < count; n++ ) - { - slr[n].SequenceIndex = GET_UShort(); - slr[n].LookupListIndex = GET_UShort(); - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail1: - FREE( slr ); - - Fail2: - for ( n = 0; n < lookahead_count; n++ ) - Free_Coverage( &l[n] ); - - FREE( l ); - - Fail3: - for ( n = 0; n < input_count; n++ ) - Free_Coverage( &i[n] ); - - FREE( i ); - - Fail4: - for ( n = 0; n < backtrack_count; n++ ) - Free_Coverage( &b[n] ); - - FREE( b ); - return error; - } - - - static void Free_ChainContext3( TTO_ChainContextSubstFormat3* ccsf3 ) - { - UShort n, count; - - TTO_Coverage* c; - - - FREE( ccsf3->SubstLookupRecord ); - - if ( ccsf3->LookaheadCoverage ) - { - count = ccsf3->LookaheadGlyphCount; - c = ccsf3->LookaheadCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - - if ( ccsf3->InputCoverage ) - { - count = ccsf3->InputGlyphCount; - c = ccsf3->InputCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - - if ( ccsf3->BacktrackCoverage ) - { - count = ccsf3->BacktrackGlyphCount; - c = ccsf3->BacktrackCoverage; - - for ( n = 0; n < count; n++ ) - Free_Coverage( &c[n] ); - - FREE( c ); - } - } - - - /* ChainContextSubst */ - - TT_Error Load_ChainContextSubst( TTO_ChainContextSubst* ccs, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ACCESS_Frame( 2L ) ) - return error; - - ccs->SubstFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( ccs->SubstFormat ) - { - case 1: - return Load_ChainContextSubst1( &ccs->ccsf.ccsf1, input ); - - case 2: - return Load_ChainContextSubst2( &ccs->ccsf.ccsf2, input ); - - case 3: - return Load_ChainContextSubst3( &ccs->ccsf.ccsf3, input ); - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - void Free_ChainContextSubst( TTO_ChainContextSubst* ccs ) - { - switch ( ccs->SubstFormat ) - { - case 1: - Free_ChainContext1( &ccs->ccsf.ccsf1 ); - break; - - case 2: - Free_ChainContext2( &ccs->ccsf.ccsf2 ); - break; - - case 3: - Free_ChainContext3( &ccs->ccsf.ccsf3 ); - break; - } - } - - - static TT_Error Lookup_ChainContextSubst1( - TTO_GSUBHeader* gsub, - TTO_ChainContextSubstFormat1* ccsf1, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - TT_UInt flags, - TT_UInt context_length, - int nesting_level ) - { - UShort index, property; - TT_UInt i, j, k, num_csr, curr_pos; - TT_UInt bgc, igc, lgc; - TT_Error error; - UShort* s_in; - - TTO_ChainSubRule* csr; - TTO_ChainSubRule curr_csr; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - error = Coverage_Index( &ccsf1->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - csr = ccsf1->ChainSubRuleSet[index].ChainSubRule; - num_csr = ccsf1->ChainSubRuleSet[index].ChainSubRuleCount; - - for ( k = 0; k < num_csr; k++ ) - { - curr_csr = csr[k]; - bgc = curr_csr.BacktrackGlyphCount; - igc = curr_csr.InputGlyphCount; - lgc = curr_csr.LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - continue; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - continue; - - if ( bgc ) - { - /* since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - break; - } - - /* In OpenType 1.3, it is undefined whether the offsets of - backtrack glyphs is in logical order or not. Version 1.4 - will clarify this: - - Logical order - a b c d e f g h i j - i - Input offsets - 0 1 - Backtrack offsets - 3 2 1 0 - Lookahead offsets - 0 1 2 3 */ - - if ( s_in[j] != curr_csr.Backtrack[i] ) - break; - } - - if ( i != bgc ) - continue; - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != curr_csr.Input[i - 1] ) - break; - } - - if ( i != igc ) - continue; - - /* we are starting to check for lookahead glyphs right after the - last context glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( s_in[j] != curr_csr.Lookahead[i] ) - break; - } - - if ( i == lgc ) - return Do_ContextSubst( gsub, igc, - curr_csr.SubstCount, - curr_csr.SubstLookupRecord, - in, out, - nesting_level ); - } - - return TTO_Err_Not_Covered; - } - - - static TT_Error Lookup_ChainContextSubst2( - TTO_GSUBHeader* gsub, - TTO_ChainContextSubstFormat2* ccsf2, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UInt flags, - UInt context_length, - int nesting_level ) - { - UShort index, property; - TT_Error error; - UInt i, j, k, curr_pos; - UInt bgc, igc, lgc; - UShort known_backtrack_classes, - known_input_classes, - known_lookahead_classes; - - UShort* backtrack_classes; - UShort* input_classes; - UShort* lookahead_classes; - - UShort* s_in; - - UShort* bc; - UShort* ic; - UShort* lc; - - TTO_ChainSubClassSet* cscs; - TTO_ChainSubClassRule ccsr; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - /* Note: The coverage table in format 2 doesn't give an index into - anything. It just lets us know whether or not we need to - do any lookup at all. */ - - error = Coverage_Index( &ccsf2->Coverage, in->string[in->pos], &index ); - if ( error ) - return error; - - if ( ALLOC_ARRAY( backtrack_classes, ccsf2->MaxBacktrackLength, UShort ) ) - return error; - known_backtrack_classes = 0; - - if ( ALLOC_ARRAY( input_classes, ccsf2->MaxInputLength, UShort ) ) - goto End3; - known_input_classes = 1; - - if ( ALLOC_ARRAY( lookahead_classes, ccsf2->MaxLookaheadLength, UShort ) ) - goto End2; - known_lookahead_classes = 0; - - error = Get_Class( &ccsf2->InputClassDef, in->string[in->pos], - &input_classes[0], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - - cscs = &ccsf2->ChainSubClassSet[input_classes[0]]; - if ( !cscs ) - { - error = TTO_Err_Invalid_GSUB_SubTable; - goto End1; - } - - for ( k = 0; k < (UInt)cscs->ChainSubClassRuleCount; k++ ) - { - ccsr = cscs->ChainSubClassRule[k]; - bgc = ccsr.BacktrackGlyphCount; - igc = ccsr.InputGlyphCount; - lgc = ccsr.LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - continue; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - continue; - - if ( bgc ) - { - /* Since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array. - Note that `known_backtrack_classes' starts at index 0. */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - bc = ccsr.Backtrack; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - break; - } - - if ( i >= (UInt)known_backtrack_classes ) - { - /* Keeps us from having to do this for each rule */ - - error = Get_Class( &ccsf2->BacktrackClassDef, s_in[j], - &backtrack_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_backtrack_classes = i; - } - - if ( bc[i] != backtrack_classes[i] ) - break; - } - - if ( i != bgc ) - continue; - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - ic = ccsr.Input; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( i >= (UInt)known_input_classes ) - { - error = Get_Class( &ccsf2->InputClassDef, s_in[j], - &input_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_input_classes = i; - } - - if ( ic[i - 1] != input_classes[i] ) - break; - } - - if ( i != igc ) - continue; - - /* we are starting to check for lookahead glyphs right after the - last context glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - lc = ccsr.Lookahead; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - break; - } - - if ( i >= (UInt)known_lookahead_classes ) - { - error = Get_Class( &ccsf2->LookaheadClassDef, s_in[j], - &lookahead_classes[i], NULL ); - if ( error && error != TTO_Err_Not_Covered ) - goto End1; - known_lookahead_classes = i; - } - - if ( lc[i] != lookahead_classes[i] ) - break; - } - - if ( i == lgc ) - { - error = Do_ContextSubst( gsub, igc, - ccsr.SubstCount, - ccsr.SubstLookupRecord, - in, out, - nesting_level ); - goto End1; - } - } - - error = TTO_Err_Not_Covered; - - End1: - FREE( lookahead_classes ); - - End2: - FREE( input_classes ); - - End3: - FREE( backtrack_classes ); - return error; - } - - - static TT_Error Lookup_ChainContextSubst3( - TTO_GSUBHeader* gsub, - TTO_ChainContextSubstFormat3* ccsf3, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UInt flags, - UInt context_length, - int nesting_level ) - { - UShort index, property; - UInt i, j, curr_pos, bgc, igc, lgc; - TT_Error error; - UShort* s_in; - - TTO_Coverage* bc; - TTO_Coverage* ic; - TTO_Coverage* lc; - TTO_GDEFHeader* gdef; - - - gdef = gsub->gdef; - - if ( CHECK_Property( gdef, in->string[in->pos], flags, &property ) ) - return error; - - bgc = ccsf3->BacktrackGlyphCount; - igc = ccsf3->InputGlyphCount; - lgc = ccsf3->LookaheadGlyphCount; - - if ( context_length != 0xFFFF && context_length < igc ) - return TTO_Err_Not_Covered; - - /* check whether context is too long; it is a first guess only */ - - if ( bgc > in->pos || in->pos + igc + lgc > in->length ) - return TTO_Err_Not_Covered; - - if ( bgc ) - { - /* Since we don't know in advance the number of glyphs to inspect, - we search backwards for matches in the backtrack glyph array */ - - curr_pos = 0; - s_in = &in->string[curr_pos]; - bc = ccsf3->BacktrackCoverage; - - for ( i = 0, j = in->pos - 1; i < bgc; i++, j-- ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( j > curr_pos ) - j--; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &bc[i], s_in[j], &index ); - if ( error ) - return error; - } - } - - curr_pos = in->pos; - s_in = &in->string[curr_pos]; - ic = ccsf3->InputCoverage; - - /* Start at 1 because [0] is implied */ - - for ( i = 1, j = 1; i < igc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &ic[i], s_in[j], &index ); - if ( error ) - return error; - } - - /* we are starting for lookahead glyphs right after the last context - glyph */ - - curr_pos = j; - s_in = &in->string[curr_pos]; - lc = ccsf3->LookaheadCoverage; - - for ( i = 0, j = 0; i < lgc; i++, j++ ) - { - while ( CHECK_Property( gdef, s_in[j], flags, &property ) ) - { - if ( error && error != TTO_Err_Not_Covered ) - return error; - - if ( curr_pos + j < in->length ) - j++; - else - return TTO_Err_Not_Covered; - } - - error = Coverage_Index( &lc[i], s_in[j], &index ); - if ( error ) - return error; - } - - return Do_ContextSubst( gsub, igc, - ccsf3->SubstCount, - ccsf3->SubstLookupRecord, - in, out, - nesting_level ); - } - - - static TT_Error Lookup_ChainContextSubst( - TTO_GSUBHeader* gsub, - TTO_ChainContextSubst* ccs, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort flags, - UShort context_length, - int nesting_level ) - { - switch ( ccs->SubstFormat ) - { - case 1: - return Lookup_ChainContextSubst1( gsub, &ccs->ccsf.ccsf1, in, out, - flags, context_length, - nesting_level ); - - case 2: - return Lookup_ChainContextSubst2( gsub, &ccs->ccsf.ccsf2, in, out, - flags, context_length, - nesting_level ); - - case 3: - return Lookup_ChainContextSubst3( gsub, &ccs->ccsf.ccsf3, in, out, - flags, context_length, - nesting_level ); - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - - /*********** - * GSUB API - ***********/ - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Select_Script( TTO_GSUBHeader* gsub, - TT_ULong script_tag, - TT_UShort* script_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - - - if ( !gsub || !script_index ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - for ( n = 0; n < sl->ScriptCount; n++ ) - if ( script_tag == sr[n].ScriptTag ) - { - *script_index = n; - - return TT_Err_Ok; - } - - return TTO_Err_Not_Covered; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Select_Language( TTO_GSUBHeader* gsub, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - - - if ( !gsub || !language_index || !req_feature_index ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - for ( n = 0; n < s->LangSysCount; n++ ) - if ( language_tag == lsr[n].LangSysTag ) - { - *language_index = n; - *req_feature_index = lsr[n].LangSys.ReqFeatureIndex; - - return TT_Err_Ok; - } - - return TTO_Err_Not_Covered; - } - - - /* selecting 0xFFFF for language_index asks for the values of the - default language (DefaultLangSys) */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Select_Feature( TTO_GSUBHeader* gsub, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ) - { - UShort n; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - TTO_LangSys* ls; - UShort* fi; - - TTO_FeatureList* fl; - TTO_FeatureRecord* fr; - - - if ( !gsub || !feature_index ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - fl = &gsub->FeatureList; - fr = fl->FeatureRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( language_index == 0xFFFF ) - ls = &s->DefaultLangSys; - else - { - if ( language_index >= s->LangSysCount ) - return TT_Err_Invalid_Argument; - - ls = &lsr[language_index].LangSys; - } - - fi = ls->FeatureIndex; - - for ( n = 0; n < ls->FeatureCount; n++ ) - { - if ( fi[n] >= fl->FeatureCount ) - return TTO_Err_Invalid_GSUB_SubTable_Format; - - if ( feature_tag == fr[fi[n]].FeatureTag ) - { - *feature_index = fi[n]; - - return TT_Err_Ok; - } - } - - return TTO_Err_Not_Covered; - } - - - /* The next three functions return a null-terminated list */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Query_Scripts( TTO_GSUBHeader* gsub, - TT_ULong** script_tag_list ) - { - UShort n; - TT_Error error; - ULong* stl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - - - if ( !gsub || !script_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - if ( ALLOC_ARRAY( stl, sl->ScriptCount + 1, ULong ) ) - return error; - - for ( n = 0; n < sl->ScriptCount; n++ ) - stl[n] = sr[n].ScriptTag; - stl[n] = 0; - - *script_tag_list = stl; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Query_Languages( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_ULong** language_tag_list ) - { - UShort n; - TT_Error error; - ULong* ltl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - - - if ( !gsub || !language_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( ALLOC_ARRAY( ltl, s->LangSysCount + 1, ULong ) ) - return error; - - for ( n = 0; n < s->LangSysCount; n++ ) - ltl[n] = lsr[n].LangSysTag; - ltl[n] = 0; - - *language_tag_list = ltl; - - return TT_Err_Ok; - } - - - /* selecting 0xFFFF for language_index asks for the values of the - default language (DefaultLangSys) */ - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Query_Features( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ) - { - UShort n; - TT_Error error; - ULong* ftl; - - TTO_ScriptList* sl; - TTO_ScriptRecord* sr; - TTO_Script* s; - TTO_LangSysRecord* lsr; - TTO_LangSys* ls; - UShort* fi; - - TTO_FeatureList* fl; - TTO_FeatureRecord* fr; - - - if ( !gsub || !feature_tag_list ) - return TT_Err_Invalid_Argument; - - sl = &gsub->ScriptList; - sr = sl->ScriptRecord; - - fl = &gsub->FeatureList; - fr = fl->FeatureRecord; - - if ( script_index >= sl->ScriptCount ) - return TT_Err_Invalid_Argument; - - s = &sr[script_index].Script; - lsr = s->LangSysRecord; - - if ( language_index == 0xFFFF ) - ls = &s->DefaultLangSys; - else - { - if ( language_index >= s->LangSysCount ) - return TT_Err_Invalid_Argument; - - ls = &lsr[language_index].LangSys; - } - - fi = ls->FeatureIndex; - - if ( ALLOC_ARRAY( ftl, ls->FeatureCount + 1, ULong ) ) - return error; - - for ( n = 0; n < ls->FeatureCount; n++ ) - { - if ( fi[n] >= fl->FeatureCount ) - { - FREE( ftl ); - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - ftl[n] = fr[fi[n]].FeatureTag; - } - ftl[n] = 0; - - *feature_tag_list = ftl; - - return TT_Err_Ok; - } - - - /* Do an individual subtable lookup. Returns TT_Err_Ok if substitution - has been done, or TTO_Err_Not_Covered if not. */ - - static TT_Error Do_Glyph_Lookup( TTO_GSUBHeader* gsub, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GSUB_String* out, - UShort context_length, - int nesting_level ) - { - TT_Error error = TT_Err_Ok; - UShort i, flags; - TTO_Lookup* lo; - - - nesting_level++; - - if ( nesting_level > TTO_MAX_NESTING_LEVEL ) - return TTO_Err_Too_Many_Nested_Contexts; - - lo = &gsub->LookupList.Lookup[lookup_index]; - flags = lo->LookupFlag; - - for ( i = 0; i < lo->SubTableCount; i++ ) - { - switch ( lo->LookupType ) - { - case GSUB_LOOKUP_SINGLE: - error = Lookup_SingleSubst( &lo->SubTable[i].st.gsub.single, - in, out, - flags, context_length, gsub->gdef ); - break; - - case GSUB_LOOKUP_MULTIPLE: - error = Lookup_MultipleSubst( &lo->SubTable[i].st.gsub.multiple, - in, out, - flags, context_length, gsub->gdef ); - break; - - case GSUB_LOOKUP_ALTERNATE: - error = Lookup_AlternateSubst( gsub, - &lo->SubTable[i].st.gsub.alternate, - in, out, - flags, context_length, gsub->gdef ); - break; - - case GSUB_LOOKUP_LIGATURE: - error = Lookup_LigatureSubst( &lo->SubTable[i].st.gsub.ligature, - in, out, - flags, context_length, gsub->gdef ); - break; - - case GSUB_LOOKUP_CONTEXT: - error = Lookup_ContextSubst( gsub, &lo->SubTable[i].st.gsub.context, - in, out, - flags, context_length, nesting_level ); - break; - - case GSUB_LOOKUP_CHAIN: - error = Lookup_ChainContextSubst( gsub, - &lo->SubTable[i].st.gsub.chain, - in, out, - flags, context_length, - nesting_level ); - break; - } - - /* Check whether we have a successful substitution or an error other - than TTO_Err_Not_Covered */ - - if ( error != TTO_Err_Not_Covered ) - return error; - } - - return TTO_Err_Not_Covered; - } - - - /* apply one lookup to the input string object */ - - static TT_Error Do_String_Lookup( TTO_GSUBHeader* gsub, - UShort lookup_index, - TTO_GSUB_String* in, - TTO_GSUB_String* out ) - { - TT_Error error = TTO_Err_Not_Covered; - - UShort* properties = gsub->LookupList.Properties; - UShort* p_in = in->properties; - UShort* s_in = in->string; - - int nesting_level = 0; - - - while ( in->pos < in->length ) - { - if ( ~p_in[in->pos] & properties[lookup_index] ) - { - /* 0xFFFF indicates that we don't have a context length yet */ - error = Do_Glyph_Lookup( gsub, lookup_index, in, out, - 0xFFFF, nesting_level ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - else - error = TTO_Err_Not_Covered; - - if ( error == TTO_Err_Not_Covered ) - if ( ADD_String( in, 1, out, 1, &s_in[in->pos], 0xFFFF, 0xFFFF ) ) - return error; - } - - return error; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Add_Feature( TTO_GSUBHeader* gsub, - TT_UShort feature_index, - TT_UShort property ) - { - UShort i; - - TTO_Feature feature; - UShort* properties; - UShort* index; - - - if ( !gsub || - feature_index >= gsub->FeatureList.FeatureCount ) - return TT_Err_Invalid_Argument; - - properties = gsub->LookupList.Properties; - - feature = gsub->FeatureList.FeatureRecord[feature_index].Feature; - index = feature.LookupListIndex; - - for ( i = 0; i < feature.LookupListCount; i++ ) - properties[index[i]] |= property; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Clear_Features( TTO_GSUBHeader* gsub ) - { - UShort i; - - UShort* properties; - - - if ( !gsub ) - return TT_Err_Invalid_Argument; - - properties = gsub->LookupList.Properties; - - for ( i = 0; i < gsub->LookupList.LookupCount; i++ ) - properties[i] = 0; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Register_Alternate_Function( TTO_GSUBHeader* gsub, - TTO_AltFunction altfunc, - void* data ) - { - if ( !gsub ) - return TT_Err_Invalid_Argument; - - gsub->altfunc = altfunc; - gsub->data = data; - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_GSUB_Apply_String( TTO_GSUBHeader* gsub, - TTO_GSUB_String* in, - TTO_GSUB_String* out ) - { - TT_Error error = TTO_Err_Not_Covered; - UShort j; - - TTO_GSUB_String tmp1; - TTO_GSUB_String* ptmp1; - TTO_GSUB_String tmp2; - TTO_GSUB_String* ptmp2; - TTO_GSUB_String* t; - - UShort* properties; - - - if ( !gsub || - !in || !out || in->length == 0 || in->pos >= in->length ) - return TT_Err_Invalid_Argument; - - properties = gsub->LookupList.Properties; - - tmp1.length = in->length; - tmp1.allocated = in->length; - tmp1.pos = in->pos; - tmp1.max_ligID = 1; - - if ( ALLOC_ARRAY( tmp1.string, tmp1.length, UShort ) ) - return error; - MEM_Copy( tmp1.string, in->string, in->length * sizeof ( UShort ) ); - - /* make sure that we always have a `properties', `components', and - `ligIDs' array in the string object */ - - if ( ALLOC_ARRAY( tmp1.components, tmp1.length, UShort ) ) - return error; - if ( ALLOC_ARRAY( tmp1.ligIDs, tmp1.length, UShort ) ) - return error; - if ( ALLOC_ARRAY( tmp1.properties, tmp1.length, UShort ) ) - return error; - if ( in->properties ) - MEM_Copy( tmp1.properties, in->properties, - in->length * sizeof( UShort ) ); - - tmp2.allocated = 0; - tmp2.pos = 0; - tmp2.string = NULL; - tmp2.properties = NULL; - tmp2.components = NULL; - tmp2.ligIDs = NULL; - - ptmp1 = &tmp1; - ptmp2 = &tmp2; - - for ( j = 0; j < gsub->LookupList.LookupCount; j++ ) - if ( properties[j] ) - { - error = Do_String_Lookup( gsub, j, ptmp1, ptmp2 ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - - /* flipping `in' and `out', preparing the next loop */ - - ptmp1->pos = in->pos; - ptmp2->length = ptmp2->pos; - ptmp2->pos = in->pos; - ptmp2->max_ligID = ptmp1->max_ligID; - - t = ptmp2; - ptmp2 = ptmp1; - ptmp1 = t; - } - - out->length = ptmp1->length; - out->pos = 0; - out->allocated = ptmp1->allocated; - out->string = ptmp1->string; - out->components = ptmp1->components; - out->ligIDs = ptmp1->ligIDs; - - if ( in->properties ) - out->properties = ptmp1->properties; - else - { - FREE( ptmp1->properties ); - out->properties = NULL; - } - - FREE( ptmp2->string ); - FREE( ptmp2->properties ); - FREE( ptmp2->components ); - FREE( ptmp2->ligIDs ); - - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxgsub.h b/Build/source/libs/freetype/lib/extend/ftxgsub.h deleted file mode 100644 index 91614ae527b..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxgsub.h +++ /dev/null @@ -1,600 +0,0 @@ -/******************************************************************* - * - * ftxgsub.h - * - * TrueType Open GSUB table support - * - * 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 FTXOPEN_H -#error "Don't include this file! Use ftxopen.h instead." -#endif - -#ifndef FTXGSUB_H -#define FTXGSUB_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define TTO_Err_Invalid_GSUB_SubTable_Format 0x1010 -#define TTO_Err_Invalid_GSUB_SubTable 0x1011 - -#define GSUB_ID Build_Extension_ID( 'G', 'S', 'U', 'B' ) - - -/* Lookup types for glyph substitution */ - -#define GSUB_LOOKUP_SINGLE 1 -#define GSUB_LOOKUP_MULTIPLE 2 -#define GSUB_LOOKUP_ALTERNATE 3 -#define GSUB_LOOKUP_LIGATURE 4 -#define GSUB_LOOKUP_CONTEXT 5 -#define GSUB_LOOKUP_CHAIN 6 -#define GSUB_LOOKUP_EXTENSION 7 - - -/* Use this if a feature applies to all glyphs */ - -#define ALL_GLYPHS 0xFFFF - - - /* A pointer to a function which selects the alternate glyph. `pos' is - the position of the glyph with index `glyphID', `num_alternates' - gives the number of alternates in the `alternates' array. `data' - points to the user-defined structure specified during a call to - TT_GSUB_Register_Alternate_Function(). The function must return an - index into the `alternates' array. */ - - typedef TT_UShort (*TTO_AltFunction)(TT_ULong pos, - TT_UShort glyphID, - TT_UShort num_alternates, - TT_UShort* alternates, - void* data ); - - - struct TTO_GSUBHeader_ - { - TT_Bool loaded; - TT_ULong offset; - - TT_Fixed Version; - - TTO_ScriptList ScriptList; - TTO_FeatureList FeatureList; - TTO_LookupList LookupList; - - TTO_GDEFHeader* gdef; - - /* the next two fields are used for an alternate substitution callback - function to select the proper alternate glyph. */ - - TTO_AltFunction altfunc; - void* data; - }; - - typedef struct TTO_GSUBHeader_ TTO_GSUBHeader; - - - /* LookupType 1 */ - - struct TTO_SingleSubstFormat1_ - { - TT_Short DeltaGlyphID; /* constant added to get - substitution glyph index */ - }; - - typedef struct TTO_SingleSubstFormat1_ TTO_SingleSubstFormat1; - - - struct TTO_SingleSubstFormat2_ - { - TT_UShort GlyphCount; /* number of glyph IDs in - Substitute array */ - TT_UShort* Substitute; /* array of substitute glyph IDs */ - }; - - typedef struct TTO_SingleSubstFormat2_ TTO_SingleSubstFormat2; - - - struct TTO_SingleSubst_ - { - TT_UShort SubstFormat; /* 1 or 2 */ - TTO_Coverage Coverage; /* Coverage table */ - - union - { - TTO_SingleSubstFormat1 ssf1; - TTO_SingleSubstFormat2 ssf2; - } ssf; - }; - - typedef struct TTO_SingleSubst_ TTO_SingleSubst; - - - /* LookupType 2 */ - - struct TTO_Sequence_ - { - TT_UShort GlyphCount; /* number of glyph IDs in the - Substitute array */ - TT_UShort* Substitute; /* string of glyph IDs to - substitute */ - }; - - typedef struct TTO_Sequence_ TTO_Sequence; - - - struct TTO_MultipleSubst_ - { - TT_UShort SubstFormat; /* always 1 */ - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort SequenceCount; /* number of Sequence tables */ - TTO_Sequence* Sequence; /* array of Sequence tables */ - }; - - typedef struct TTO_MultipleSubst_ TTO_MultipleSubst; - - - /* LookupType 3 */ - - struct TTO_AlternateSet_ - { - TT_UShort GlyphCount; /* number of glyph IDs in the - Alternate array */ - TT_UShort* Alternate; /* array of alternate glyph IDs */ - }; - - typedef struct TTO_AlternateSet_ TTO_AlternateSet; - - - struct TTO_AlternateSubst_ - { - TT_UShort SubstFormat; /* always 1 */ - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort AlternateSetCount; - /* number of AlternateSet tables */ - TTO_AlternateSet* AlternateSet; /* array of AlternateSet tables */ - }; - - typedef struct TTO_AlternateSubst_ TTO_AlternateSubst; - - - /* LookupType 4 */ - - struct TTO_Ligature_ - { - TT_UShort LigGlyph; /* glyphID of ligature - to substitute */ - TT_UShort ComponentCount; /* number of components in ligature */ - TT_UShort* Component; /* array of component glyph IDs */ - }; - - typedef struct TTO_Ligature_ TTO_Ligature; - - - struct TTO_LigatureSet_ - { - TT_UShort LigatureCount; /* number of Ligature tables */ - TTO_Ligature* Ligature; /* array of Ligature tables */ - }; - - typedef struct TTO_LigatureSet_ TTO_LigatureSet; - - - struct TTO_LigatureSubst_ - { - TT_UShort SubstFormat; /* always 1 */ - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort LigatureSetCount; /* number of LigatureSet tables */ - TTO_LigatureSet* LigatureSet; /* array of LigatureSet tables */ - }; - - typedef struct TTO_LigatureSubst_ TTO_LigatureSubst; - - - /* needed by both lookup type 5 and 6 */ - - struct TTO_SubstLookupRecord_ - { - TT_UShort SequenceIndex; /* index into current - glyph sequence */ - TT_UShort LookupListIndex; /* Lookup to apply to that pos. */ - }; - - typedef struct TTO_SubstLookupRecord_ TTO_SubstLookupRecord; - - - /* LookupType 5 */ - - struct TTO_SubRule_ - { - TT_UShort GlyphCount; /* total number of input glyphs */ - TT_UShort SubstCount; /* number of SubstLookupRecord - tables */ - TT_UShort* Input; /* array of input glyph IDs */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of SubstLookupRecord - tables */ - }; - - typedef struct TTO_SubRule_ TTO_SubRule; - - - struct TTO_SubRuleSet_ - { - TT_UShort SubRuleCount; /* number of SubRule tables */ - TTO_SubRule* SubRule; /* array of SubRule tables */ - }; - - typedef struct TTO_SubRuleSet_ TTO_SubRuleSet; - - - struct TTO_ContextSubstFormat1_ - { - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort SubRuleSetCount; /* number of SubRuleSet tables */ - TTO_SubRuleSet* SubRuleSet; /* array of SubRuleSet tables */ - }; - - typedef struct TTO_ContextSubstFormat1_ TTO_ContextSubstFormat1; - - - struct TTO_SubClassRule_ - { - TT_UShort GlyphCount; /* total number of context classes */ - TT_UShort SubstCount; /* number of SubstLookupRecord - tables */ - TT_UShort* Class; /* array of classes */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of SubstLookupRecord - tables */ - }; - - typedef struct TTO_SubClassRule_ TTO_SubClassRule; - - - struct TTO_SubClassSet_ - { - TT_UShort SubClassRuleCount; - /* number of SubClassRule tables */ - TTO_SubClassRule* SubClassRule; /* array of SubClassRule tables */ - }; - - typedef struct TTO_SubClassSet_ TTO_SubClassSet; - - - /* The `MaxContextLength' field is not defined in the TTO specification - but simplifies the implementation of this format. It holds the - maximal context length used in the context rules. */ - - struct TTO_ContextSubstFormat2_ - { - TT_UShort MaxContextLength; - /* maximal context length */ - TTO_Coverage Coverage; /* Coverage table */ - TTO_ClassDefinition ClassDef; /* ClassDef table */ - TT_UShort SubClassSetCount; - /* number of SubClassSet tables */ - TTO_SubClassSet* SubClassSet; /* array of SubClassSet tables */ - }; - - typedef struct TTO_ContextSubstFormat2_ TTO_ContextSubstFormat2; - - - struct TTO_ContextSubstFormat3_ - { - TT_UShort GlyphCount; /* number of input glyphs */ - TT_UShort SubstCount; /* number of SubstLookupRecords */ - TTO_Coverage* Coverage; /* array of Coverage tables */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of substitution lookups */ - }; - - typedef struct TTO_ContextSubstFormat3_ TTO_ContextSubstFormat3; - - - struct TTO_ContextSubst_ - { - TT_UShort SubstFormat; /* 1, 2, or 3 */ - - union - { - TTO_ContextSubstFormat1 csf1; - TTO_ContextSubstFormat2 csf2; - TTO_ContextSubstFormat3 csf3; - } csf; - }; - - typedef struct TTO_ContextSubst_ TTO_ContextSubst; - - - /* LookupType 6 */ - - struct TTO_ChainSubRule_ - { - TT_UShort BacktrackGlyphCount; - /* total number of backtrack glyphs */ - TT_UShort* Backtrack; /* array of backtrack glyph IDs */ - TT_UShort InputGlyphCount; - /* total number of input glyphs */ - TT_UShort* Input; /* array of input glyph IDs */ - TT_UShort LookaheadGlyphCount; - /* total number of lookahead glyphs */ - TT_UShort* Lookahead; /* array of lookahead glyph IDs */ - TT_UShort SubstCount; /* number of SubstLookupRecords */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of SubstLookupRecords */ - }; - - typedef struct TTO_ChainSubRule_ TTO_ChainSubRule; - - - struct TTO_ChainSubRuleSet_ - { - TT_UShort ChainSubRuleCount; - /* number of ChainSubRule tables */ - TTO_ChainSubRule* ChainSubRule; /* array of ChainSubRule tables */ - }; - - typedef struct TTO_ChainSubRuleSet_ TTO_ChainSubRuleSet; - - - struct TTO_ChainContextSubstFormat1_ - { - TTO_Coverage Coverage; /* Coverage table */ - TT_UShort ChainSubRuleSetCount; - /* number of ChainSubRuleSet tables */ - TTO_ChainSubRuleSet* ChainSubRuleSet; - /* array of ChainSubRuleSet tables */ - }; - - typedef struct TTO_ChainContextSubstFormat1_ TTO_ChainContextSubstFormat1; - - - struct TTO_ChainSubClassRule_ - { - TT_UShort BacktrackGlyphCount; - /* total number of backtrack - classes */ - TT_UShort* Backtrack; /* array of backtrack classes */ - TT_UShort InputGlyphCount; - /* total number of context classes */ - TT_UShort* Input; /* array of context classes */ - TT_UShort LookaheadGlyphCount; - /* total number of lookahead - classes */ - TT_UShort* Lookahead; /* array of lookahead classes */ - TT_UShort SubstCount; /* number of SubstLookupRecords */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of substitution lookups */ - }; - - typedef struct TTO_ChainSubClassRule_ TTO_ChainSubClassRule; - - - struct TTO_ChainSubClassSet_ - { - TT_UShort ChainSubClassRuleCount; - /* number of ChainSubClassRule - tables */ - TTO_ChainSubClassRule* ChainSubClassRule; - /* array of ChainSubClassRule - tables */ - }; - - typedef struct TTO_ChainSubClassSet_ TTO_ChainSubClassSet; - - - /* The `MaxXXXLength' fields are not defined in the TTO specification - but simplifies the implementation of this format. It holds the - maximal context length used in the specific context rules. */ - - struct TTO_ChainContextSubstFormat2_ - { - TTO_Coverage Coverage; /* Coverage table */ - - TT_UShort MaxBacktrackLength; - /* maximal backtrack length */ - TTO_ClassDefinition BacktrackClassDef; - /* BacktrackClassDef table */ - TT_UShort MaxInputLength; - /* maximal input length */ - TTO_ClassDefinition InputClassDef; - /* InputClassDef table */ - TT_UShort MaxLookaheadLength; - /* maximal lookahead length */ - TTO_ClassDefinition LookaheadClassDef; - /* LookaheadClassDef table */ - - TT_UShort ChainSubClassSetCount; - /* number of ChainSubClassSet - tables */ - TTO_ChainSubClassSet* ChainSubClassSet; - /* array of ChainSubClassSet - tables */ - }; - - typedef struct TTO_ChainContextSubstFormat2_ TTO_ChainContextSubstFormat2; - - - struct TTO_ChainContextSubstFormat3_ - { - TT_UShort BacktrackGlyphCount; - /* number of backtrack glyphs */ - TTO_Coverage* BacktrackCoverage; - /* array of backtrack Coverage - tables */ - TT_UShort InputGlyphCount; - /* number of input glyphs */ - TTO_Coverage* InputCoverage; - /* array of input coverage - tables */ - TT_UShort LookaheadGlyphCount; - /* number of lookahead glyphs */ - TTO_Coverage* LookaheadCoverage; - /* array of lookahead coverage - tables */ - TT_UShort SubstCount; /* number of SubstLookupRecords */ - TTO_SubstLookupRecord* SubstLookupRecord; - /* array of substitution lookups */ - }; - - typedef struct TTO_ChainContextSubstFormat3_ TTO_ChainContextSubstFormat3; - - - struct TTO_ChainContextSubst_ - { - TT_UShort SubstFormat; /* 1, 2, or 3 */ - - union - { - TTO_ChainContextSubstFormat1 ccsf1; - TTO_ChainContextSubstFormat2 ccsf2; - TTO_ChainContextSubstFormat3 ccsf3; - } ccsf; - }; - - typedef struct TTO_ChainContextSubst_ TTO_ChainContextSubst; - - - union TTO_GSUB_SubTable_ - { - TTO_SingleSubst single; - TTO_MultipleSubst multiple; - TTO_AlternateSubst alternate; - TTO_LigatureSubst ligature; - TTO_ContextSubst context; - TTO_ChainContextSubst chain; - }; - - typedef union TTO_GSUB_SubTable_ TTO_GSUB_SubTable; - - - /* A simple string object. It can both `send' and `receive' data. - In case of sending, `length' and `pos' will be used. In case of - receiving, `pos' points to the first free slot, and `allocated' - specifies the amount of allocated memory (and the `length' field - will be ignored). The routine TT_Add_String() will increase the - amount of memory if necessary. After end of receive, `length' - should be set to the value of `pos', and `pos' will be set to zero. - - `properties' (which is treated as a bit field) gives the glyph's - properties: If a certain bit is set for a glyph, the feature which - has the same bit set in its property value is applied. - - `components' is an internal array which tracks components of - ligatures. We need this for MarkToLigature Attachment Positioning - Subtables (in GPOS) together with `ligIDs' (which is used to mark - ligatures and the skipped glyphs during a ligature lookup). - `max_ligID' is increased after a successful ligature lookup. - - NEVER modify any elements of the structure! You should rather copy - its contents if necessary. - - TT_Add_String() will also handle allocation; you should use - free() in case you want to destroy the arrays in the object. */ - - struct TTO_GSUB_String_ - { - TT_ULong length; - TT_ULong pos; - TT_ULong allocated; - TT_UShort* string; - TT_UShort* properties; - TT_UShort* components; - TT_UShort max_ligID; - TT_UShort* ligIDs; - }; - - typedef struct TTO_GSUB_String_ TTO_GSUB_String; - - - /* finally, the GSUB API */ - - FT_EXPORT_DEF( TT_Error ) - TT_Init_GSUB_Extension( TT_Engine engine ); - - FT_EXPORT_DEF( TT_Error ) - TT_Load_GSUB_Table( TT_Face face, - TTO_GSUBHeader* gsub, - TTO_GDEFHeader* gdef ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Select_Script( TTO_GSUBHeader* gsub, - TT_ULong script_tag, - TT_UShort* script_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Select_Language( TTO_GSUBHeader* gsub, - TT_ULong language_tag, - TT_UShort script_index, - TT_UShort* language_index, - TT_UShort* req_feature_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Select_Feature( TTO_GSUBHeader* gsub, - TT_ULong feature_tag, - TT_UShort script_index, - TT_UShort language_index, - TT_UShort* feature_index ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Query_Scripts( TTO_GSUBHeader* gsub, - TT_ULong** script_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Query_Languages( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_ULong** language_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Query_Features( TTO_GSUBHeader* gsub, - TT_UShort script_index, - TT_UShort language_index, - TT_ULong** feature_tag_list ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Add_Feature( TTO_GSUBHeader* gsub, - TT_UShort feature_index, - TT_UShort property ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Clear_Features( TTO_GSUBHeader* gsub ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Register_Alternate_Function( TTO_GSUBHeader* gsub, - TTO_AltFunction altfunc, - void* data ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Apply_String( TTO_GSUBHeader* gsub, - TTO_GSUB_String* in, - TTO_GSUB_String* out ); - - FT_EXPORT_DEF( TT_Error ) - TT_GSUB_Add_String( TTO_GSUB_String* in, - TT_UShort num_in, - TTO_GSUB_String* out, - TT_UShort num_out, - TT_UShort* glyph_data, - TT_UShort component, - TT_UShort ligID ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXGSUB_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxkern.c b/Build/source/libs/freetype/lib/extend/ftxkern.c deleted file mode 100644 index 40649d93e81..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxkern.c +++ /dev/null @@ -1,645 +0,0 @@ -/******************************************************************* - * - * ftxkern.c 1.0 - * - * Kerning support extension. - * - * Copyright 1996-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 kerning support is currently part of the engine extensions. - * - ******************************************************************/ - -#include "ftxkern.h" - -#include "ttextend.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttload.h" -#include "ttmemory.h" -#include "ttfile.h" -#include "ttobjs.h" -#include "tttags.h" - - -/* Required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_any - -#define KERNING_ID Build_Extension_ID( 'k', 'e', 'r', 'n' ) - -#undef KERN_INDEX -#define KERN_INDEX(g1,g2) (((TT_ULong)g1 << 16) | g2) - - /* compare two kerning pairs, for sorting */ - static int compare_kern_pairs( const void* a, const void* b ) - { - TT_Kern_0_Pair* pair1 = (TT_Kern_0_Pair*)a; - TT_Kern_0_Pair* pair2 = (TT_Kern_0_Pair*)b; - - TT_ULong index1 = KERN_INDEX( pair1->left, pair1->right ); - TT_ULong index2 = KERN_INDEX( pair2->left, pair2->right ); - - return ( index1 < index2 ? -1 : - ( index1 > index2 ? 1 : 0 )); - } - - - /* a simple shell sort algorithm to avoid calling qsort */ - /* (since this creates problems on 16-bit machines) */ - static void - sort_kern_pairs( TT_Kern_0_Pair* pairs, - int count ) - { - TT_Kern_0_Pair *i, *j, *limit = pairs + count; - TT_Kern_0_Pair temp; - int gap; - - - /* compute initial gap */ - for ( gap = 0; ++gap < count; gap *= 3 ) - ; - - while ( gap /= 3 ) - { - for ( i = pairs + gap; i < limit; i++ ) - { - for ( j = i - gap; ; j -= gap ) - { - TT_Kern_0_Pair* k = j + gap; - - - if ( compare_kern_pairs( j, k ) < 0 ) - break; - - temp = *j; - *j = *k; - *k = temp; - - if ( j < pairs + gap ) - break; - } - } - } - } - - - - /* check whether the kern table is sorted */ - static int - is_sorted( TT_Kern_0_Pair* table, TT_ULong num_pairs ) - { - TT_ULong i; - - for ( i=1; istream ); - - UShort num_pairs, n; - - - if ( ACCESS_Frame( 8L ) ) - return error; - - num_pairs = GET_UShort(); - kern0->nPairs = 0; - kern0->searchRange = GET_UShort(); - kern0->entrySelector = GET_UShort(); - kern0->rangeShift = GET_UShort(); - - /* we only set kern0->nPairs if the subtable has been loaded */ - - FORGET_Frame(); - - if ( ALLOC_ARRAY( kern0->pairs, num_pairs, TT_Kern_0_Pair ) ) - return error; - - if ( ACCESS_Frame( num_pairs * 6L ) ) - goto Fail; - - for ( n = 0; n < num_pairs; n++ ) - { - kern0->pairs[n].left = GET_UShort(); - kern0->pairs[n].right = GET_UShort(); - kern0->pairs[n].value = GET_UShort(); - - if ( kern0->pairs[n].left >= input->numGlyphs || - kern0->pairs[n].right >= input->numGlyphs ) - { - FORGET_Frame(); - error = TT_Err_Invalid_Kerning_Table; - goto Fail; - } - } - - FORGET_Frame(); - - /* we're ok, set the pairs count */ - kern0->nPairs = num_pairs; - - /* the spec says that the kerning pairs must be sorted, - but some brain damaged font producers don't do that correctly.. (JvR 3/4/2000) */ - if ( !is_sorted( kern0->pairs, num_pairs ) ) - sort_kern_pairs( kern0->pairs, num_pairs ); - - return TT_Err_Ok; - - Fail: - FREE( kern0->pairs ); - return error; - } - - -/******************************************************************* - * - * Function : SubTable_Load_2 - * - * Description : Loads a format 2 kerning subtable data. - * - * Input : kern2 pointer to the kerning subtable - * length subtable length. This is required as - * the subheader doesn't give any indication - * of the size of the `array' table. - * - * Output : error code - * - * Notes : - Assumes that the stream is already `used' - * - * - the file cursor must be set by the caller - * - * - in case of error, the function _must_ destroy - * the data it allocates! - * - ******************************************************************/ - - static TT_Error - Subtable_Load_2( TT_Kern_2* kern2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - Long table_base; - - UShort left_offset, right_offset, array_offset; - ULong array_size; - UShort left_max, right_max, n; - - - /* record the table offset */ - table_base = FILE_Pos(); - - if ( ACCESS_Frame( 8L ) ) - return error; - - kern2->rowWidth = GET_UShort(); - left_offset = GET_UShort(); - right_offset = GET_UShort(); - array_offset = GET_UShort(); - - FORGET_Frame(); - - /* first load left and right glyph classes */ - - if ( FILE_Seek( table_base + left_offset ) || - ACCESS_Frame( 4L ) ) - return error; - - kern2->leftClass.firstGlyph = GET_UShort(); - kern2->leftClass.nGlyphs = GET_UShort(); - - FORGET_Frame(); - - if ( ALLOC_ARRAY( kern2->leftClass.classes, - kern2->leftClass.nGlyphs, - UShort ) ) - return error; - - /* load left offsets */ - - if ( ACCESS_Frame( kern2->leftClass.nGlyphs * 2L ) ) - goto Fail_Left; - - for ( n = 0; n < kern2->leftClass.nGlyphs; n++ ) - kern2->leftClass.classes[n] = GET_UShort(); - - FORGET_Frame(); - - /* right class */ - - if ( FILE_Seek( table_base + right_offset ) || - ACCESS_Frame( 4L ) ) - goto Fail_Left; - - kern2->rightClass.firstGlyph = GET_UShort(); - kern2->rightClass.nGlyphs = GET_UShort(); - - FORGET_Frame(); - - if ( ALLOC_ARRAY( kern2->rightClass.classes, - kern2->rightClass.nGlyphs, - UShort ) ) - goto Fail_Left; - - /* load right offsets */ - - if ( ACCESS_Frame( kern2->rightClass.nGlyphs * 2L ) ) - goto Fail_Right; - - for ( n = 0; n < kern2->rightClass.nGlyphs; n++ ) - kern2->rightClass.classes[n] = GET_UShort(); - - FORGET_Frame(); - - /* Now load the kerning array. We don't have its size, we */ - /* must compute it from what we know. */ - - /* We thus compute the maximum left and right offsets and */ - /* add them to get the array size. */ - - left_max = right_max = 0; - - for ( n = 0; n < kern2->leftClass.nGlyphs; n++ ) - left_max = MAX( left_max, kern2->leftClass.classes[n] ); - - for ( n = 0; n < kern2->rightClass.nGlyphs; n++ ) - right_max = MAX( right_max, kern2->leftClass.classes[n] ); - - array_size = left_max + right_max + 2; - - if ( ALLOC( kern2->array, array_size ) ) - goto Fail_Right; - - if ( ACCESS_Frame( array_size ) ) - goto Fail_Array; - - for ( n = 0; (UInt)n < array_size/2; n++ ) - kern2->array[n] = GET_Short(); - - FORGET_Frame(); - - /* we're good now */ - - return TT_Err_Ok; - - Fail_Array: - FREE( kern2->array ); - - Fail_Right: - FREE( kern2->rightClass.classes ); - kern2->rightClass.nGlyphs = 0; - - Fail_Left: - FREE( kern2->leftClass.classes ); - kern2->leftClass.nGlyphs = 0; - - return error; - } - - -/******************************************************************* - * - * Function : Kerning_Create - * - * Description : Creates the kerning directory if a face is - * loaded. The tables however are loaded on - * demand to save space. - * - * Input : face pointer to the parent face object - * kern pointer to the extension's kerning field - * - * Output : error code - * - * Notes : as in all constructors, the memory allocated isn't - * released in case of failure. Rather, the task is left - * to the destructor (which is called if an error - * occurs during the loading of a face). - * - ******************************************************************/ - - static TT_Error - Kerning_Create( void* ext, - PFace face ) - { - DEFINE_LOAD_LOCALS( face->stream ); - - TT_Kerning* kern = (TT_Kerning*)ext; - UShort num_tables; - Long table; - - TT_Kern_Subtable* sub; - - - /* by convention */ - if ( !kern ) - return TT_Err_Ok; - - /* Now load the kerning directory. We're called from the face */ - /* constructor. We thus need not use the stream. */ - - kern->version = 0; - kern->nTables = 0; - kern->tables = NULL; - - table = TT_LookUp_Table( face, TTAG_kern ); - if ( table < 0 ) - return TT_Err_Ok; /* The table is optional */ - - if ( FILE_Seek( face->dirTables[table].Offset ) || - ACCESS_Frame( 4L ) ) - return error; - - kern->version = GET_UShort(); - num_tables = GET_UShort(); - - FORGET_Frame(); - - /* we don't set kern->nTables until we have allocated the array */ - - if ( ALLOC_ARRAY( kern->tables, num_tables, TT_Kern_Subtable ) ) - return error; - - kern->nTables = num_tables; - - /* now load the directory entries, but do _not_ load the tables ! */ - - sub = kern->tables; - - for ( table = 0; table < num_tables; table++ ) - { - if ( ACCESS_Frame( 6L ) ) - return error; - - sub->loaded = FALSE; /* redundant, but good to see */ - sub->version = GET_UShort(); - sub->length = GET_UShort() - 6; /* substract header length */ - sub->format = GET_Byte(); - sub->coverage = GET_Byte(); - - FORGET_Frame(); - - sub->offset = FILE_Pos(); - - /* now skip to the next table */ - - if ( FILE_Skip( sub->length ) ) - return error; - - sub++; - } - - /* that's fine, leave now */ - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Kerning_Destroy - * - * Description : Destroys all kerning information. - * - * Input : kern pointer to the extension's kerning field - * - * Output : error code - * - * Notes : This function is a destructor; it must be able - * to destroy partially built tables. - * - ******************************************************************/ - - static TT_Error - Kerning_Destroy( void* ext, - PFace face ) - { - TT_Kerning* kern = (TT_Kerning*)ext; - TT_Kern_Subtable* sub; - UShort n; - - - /* by convention */ - if ( !kern ) - return TT_Err_Ok; - - if ( kern->nTables == 0 ) - return TT_Err_Ok; /* no tables to release */ - - /* scan the table directory and release loaded entries */ - - sub = kern->tables; - for ( n = 0; n < kern->nTables; n++ ) - { - if ( sub->loaded ) - { - switch ( sub->format ) - { - case 0: - FREE( sub->t.kern0.pairs ); - sub->t.kern0.nPairs = 0; - sub->t.kern0.searchRange = 0; - sub->t.kern0.entrySelector = 0; - sub->t.kern0.rangeShift = 0; - break; - - case 2: - FREE( sub->t.kern2.leftClass.classes ); - sub->t.kern2.leftClass.firstGlyph = 0; - sub->t.kern2.leftClass.nGlyphs = 0; - - FREE( sub->t.kern2.rightClass.classes ); - sub->t.kern2.rightClass.firstGlyph = 0; - sub->t.kern2.rightClass.nGlyphs = 0; - - FREE( sub->t.kern2.array ); - sub->t.kern2.rowWidth = 0; - break; - - default: - ; /* invalid subtable format - do nothing */ - } - - sub->loaded = FALSE; - sub->version = 0; - sub->offset = 0; - sub->length = 0; - sub->coverage = 0; - sub->format = 0; - } - sub++; - } - - FREE( kern->tables ); - kern->nTables = 0; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Kerning_Directory - * - * Description : Returns a given face's kerning directory. - * - * Input : face handle to the face object - * directory pointer to client's target directory - * - * Output : error code - * - * Notes : The kerning table directory is loaded with the face - * through the extension constructor. However, the kerning - * tables themselves are only loaded on demand, as they - * may represent a lot of data, unneeded by most uses of - * the engine. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Kerning_Directory( TT_Face face, - TT_Kerning* directory ) - { - PFace faze = HANDLE_Face( face ); - TT_Error error; - TT_Kerning* kerning; - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - /* copy directory header */ - error = TT_Extension_Get( faze, KERNING_ID, (void**)&kerning ); - if ( !error ) - *directory = *kerning; - - return error; - } - - -/******************************************************************* - * - * Function : TT_Load_Kerning_Table - * - * Description : Loads a kerning table intro memory. - * - * Input : face face handle - * kern_index index in the face's kerning directory - * - * Output : error code - * - * Notes : - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_Kerning_Table( TT_Face face, - TT_UShort kern_index ) - { - TT_Error error; - TT_Stream stream; - - TT_Kerning* kern; - TT_Kern_Subtable* sub; - - - PFace faze = HANDLE_Face( face ); - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - error = TT_Extension_Get( faze, KERNING_ID, (void**)&kern ); - if ( error ) - return error; - - if ( kern->nTables == 0 ) - return TT_Err_Table_Missing; - - if ( kern_index >= kern->nTables ) - return TT_Err_Invalid_Argument; - - sub = kern->tables + kern_index; - - if ( sub->format != 0 && sub->format != 2 ) - return TT_Err_Invalid_Kerning_Table_Format; - - /* now access stream */ - if ( USE_Stream( faze->stream, stream ) ) - return error; - - if ( FILE_Seek( sub->offset ) ) - goto Fail; - - if ( sub->format == 0 ) - error = Subtable_Load_0( &sub->t.kern0, faze ); - else if ( sub->format == 2 ) - error = Subtable_Load_2( &sub->t.kern2, faze ); - - if ( !error ) - sub->loaded = TRUE; - - Fail: - /* release stream */ - DONE_Stream( stream ); - - return error; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_Kerning_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - TT_Error error; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - error = TT_Register_Extension( _engine, - KERNING_ID, - sizeof ( TT_Kerning ), - Kerning_Create, - Kerning_Destroy ); - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxkern.h b/Build/source/libs/freetype/lib/extend/ftxkern.h deleted file mode 100644 index 4f981ec8737..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxkern.h +++ /dev/null @@ -1,181 +0,0 @@ -/******************************************************************* - * - * ftxkern.h 1.0 - * - * High-Level API Kerning extension - * - * 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. - * - * - * The kerning support is currently part of the engine extensions. - * - * This file should _not_ depend on engine internal types. - * - ******************************************************************/ - -#ifndef FTXKERN_H -#define FTXKERN_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /* The kerning support in FreeType is minimal. This means that */ - /* we do not try to interpret the kerning data in any way to */ - /* `cook' it for a user application. This API lets you access */ - /* directly the kerning tables found in the TrueType file; it's */ - /* up to the client application to apply its own processing on */ - /* these. */ - - /* The reason for this is that we generally do not encourage */ - /* feature-bloat of the core engine. Moreover, not all */ - /* libraries or font servers really need kerning data, or all */ - /* formats of this data. */ - - /************** kerning error codes *****************************/ - - /* we choose the class 0x0A for our errors, this should not */ - /* match with any error code class used in any other extension */ - -#define TT_Err_Invalid_Kerning_Table_Format 0x0A00 -#define TT_Err_Invalid_Kerning_Table 0x0A01 - - - /********** structures definitions ******************************/ - - /* Remember that all types and function are accessible by client */ - /* applications in this section, and thus should have the `TT_' */ - /* prefix. */ - - /* format 0 kerning pair */ - - struct TT_Kern_0_Pair_ - { - TT_UShort left; /* index of left glyph in pair */ - TT_UShort right; /* index of right glyph in pair */ - TT_FWord value; /* kerning value */ - }; - - typedef struct TT_Kern_0_Pair_ TT_Kern_0_Pair; - - - /* format 0 kerning subtable */ - - struct TT_Kern_0_ - { - TT_UShort nPairs; /* number of kerning pairs */ - - TT_UShort searchRange; /* these values are defined by the TT spec */ - TT_UShort entrySelector; /* for table searchs. */ - TT_UShort rangeShift; - - TT_Kern_0_Pair* pairs; /* a table of nPairs `pairs' */ - }; - - typedef struct TT_Kern_0_ TT_Kern_0; - - - /* format 2 kerning glyph class */ - - struct TT_Kern_2_Class_ - { - TT_UShort firstGlyph; /* first glyph in range */ - TT_UShort nGlyphs; /* number of glyphs in range */ - TT_UShort* classes; /* a table giving for each ranged glyph */ - /* its class offset in the subtable pairs */ - /* two-dimensional array */ - }; - - typedef struct TT_Kern_2_Class_ TT_Kern_2_Class; - - - /* format 2 kerning subtable */ - - struct TT_Kern_2_ - { - TT_UShort rowWidth; /* length of one row in bytes */ - TT_Kern_2_Class leftClass; /* left class table */ - TT_Kern_2_Class rightClass; /* right class table */ - TT_FWord* array; /* 2-dimensional kerning values array */ - }; - - typedef struct TT_Kern_2_ TT_Kern_2; - - - /* kerning subtable */ - - struct TT_Kern_Subtable_ - { - TT_Bool loaded; /* boolean; indicates whether the table is */ - /* loaded */ - TT_UShort version; /* table version number */ - TT_Long offset; /* file offset of table */ - TT_UShort length; /* length of table, _excluding_ header */ - TT_Byte coverage; /* lower 8 bit of the coverage table entry */ - TT_Byte format; /* the subtable format, as found in the */ - /* higher 8 bits of the coverage table entry */ - union - { - TT_Kern_0 kern0; - TT_Kern_2 kern2; - } t; - }; - - typedef struct TT_Kern_Subtable_ TT_Kern_Subtable; - - - struct TT_Kerning_ - { - TT_UShort version; /* kern table version number. starts at 0 */ - TT_UShort nTables; /* number of tables */ - - TT_Kern_Subtable* tables; /* the kerning sub-tables */ - }; - - typedef struct TT_Kerning_ TT_Kerning; - - - - /***************** high-level API extension **************************/ - - /* Initialize Kerning extension, must be called after */ - /* TT_Init_FreeType(). There is no need for a finalizer */ - FT_EXPORT_DEF( TT_Error ) - TT_Init_Kerning_Extension( TT_Engine engine ); - - /* Note on the implemented mechanism: */ - - /* The kerning table directory is loaded with the face through the */ - /* extension constructor. However, the tables will only be loaded */ - /* on demand, as they may represent a lot of data, unnecessary to */ - /* most applications. */ - - /* Queries a pointer to the kerning directory for the face object */ - FT_EXPORT_DEF( TT_Error ) - TT_Get_Kerning_Directory( TT_Face face, - TT_Kerning* directory ); - - /* Load the kerning table number `kern_index' in the kerning */ - /* directory. The table will stay in memory until the `face' */ - /* face is destroyed. */ - FT_EXPORT_DEF( TT_Error ) - TT_Load_Kerning_Table( TT_Face face, - TT_UShort kern_index ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXKERN_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxopen.c b/Build/source/libs/freetype/lib/extend/ftxopen.c deleted file mode 100644 index 26b9501ff43..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxopen.c +++ /dev/null @@ -1,1458 +0,0 @@ -/******************************************************************* - * - * ftxopen.c - * - * TrueType Open common table support. - * - * 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. - * - ******************************************************************/ - -#include "tttypes.h" -#include "ttload.h" -#include "ttextend.h" -#include "ttmemory.h" -#include "ttfile.h" - -#include "ftxopen.h" -#include "ftxopenf.h" - - - /*************************** - * Script related functions - ***************************/ - - - /* LangSys */ - - static TT_Error Load_LangSys( TTO_LangSys* ls, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* fi; - - - if ( ACCESS_Frame( 6L ) ) - return error; - - ls->LookupOrderOffset = GET_UShort(); /* should be 0 */ - ls->ReqFeatureIndex = GET_UShort(); - count = ls->FeatureCount = GET_UShort(); - - FORGET_Frame(); - - ls->FeatureIndex = NULL; - - if ( ALLOC_ARRAY( ls->FeatureIndex, count, UShort ) ) - return error; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( ls->FeatureIndex ); - return error; - } - - fi = ls->FeatureIndex; - - for ( n = 0; n < count; n++ ) - fi[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - static void Free_LangSys( TTO_LangSys* ls ) - { - FREE( ls->FeatureIndex ); - } - - - /* Script */ - - static TT_Error Load_Script( TTO_Script* s, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_LangSysRecord* lsr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - if ( new_offset != base_offset ) /* not a NULL offset */ - { - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LangSys( &s->DefaultLangSys, - input ) ) != TT_Err_Ok ) - return error; - (void)FILE_Seek( cur_offset ); - } - else - { - /* we create a DefaultLangSys table with no entries */ - - s->DefaultLangSys.LookupOrderOffset = 0; - s->DefaultLangSys.ReqFeatureIndex = 0xFFFF; - s->DefaultLangSys.FeatureCount = 0; - s->DefaultLangSys.FeatureIndex = NULL; - } - - if ( ACCESS_Frame( 2L ) ) - goto Fail2; - - count = s->LangSysCount = GET_UShort(); - - /* safety check; otherwise the official handling of TrueType Open - fonts won't work */ - - if ( s->LangSysCount == 0 && s->DefaultLangSys.FeatureCount == 0 ) - { - error = TTO_Err_Invalid_SubTable; - goto Fail2; - } - - FORGET_Frame(); - - s->LangSysRecord = NULL; - - if ( ALLOC_ARRAY( s->LangSysRecord, count, TTO_LangSysRecord ) ) - goto Fail2; - - lsr = s->LangSysRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 6L ) ) - goto Fail1; - - lsr[n].LangSysTag = GET_ULong(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_LangSys( &lsr[n].LangSys, input ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - for ( n = 0; n < count; n++ ) - Free_LangSys( &lsr[n].LangSys ); - - FREE( s->LangSysRecord ); - - Fail2: - Free_LangSys( &s->DefaultLangSys ); - return error; - } - - - static void Free_Script( TTO_Script* s ) - { - UShort n, count; - - TTO_LangSysRecord* lsr; - - - Free_LangSys( &s->DefaultLangSys ); - - if ( s->LangSysRecord ) - { - count = s->LangSysCount; - lsr = s->LangSysRecord; - - for ( n = 0; n < count; n++ ) - Free_LangSys( &lsr[n].LangSys ); - - FREE( lsr ); - } - } - - - /* ScriptList */ - - TT_Error Load_ScriptList( TTO_ScriptList* sl, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_ScriptRecord* sr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = sl->ScriptCount = GET_UShort(); - - FORGET_Frame(); - - sl->ScriptRecord = NULL; - - if ( ALLOC_ARRAY( sl->ScriptRecord, count, TTO_ScriptRecord ) ) - return error; - - sr = sl->ScriptRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 6L ) ) - goto Fail; - - sr[n].ScriptTag = GET_ULong(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Script( &sr[n].Script, input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_Script( &sr[n].Script ); - - FREE( sl->ScriptRecord ); - return error; - } - - - void Free_ScriptList( TTO_ScriptList* sl ) - { - UShort n, count; - - TTO_ScriptRecord* sr; - - - if ( sl->ScriptRecord ) - { - count = sl->ScriptCount; - sr = sl->ScriptRecord; - - for ( n = 0; n < count; n++ ) - Free_Script( &sr[n].Script ); - - FREE( sr ); - } - } - - - - /********************************* - * Feature List related functions - *********************************/ - - - /* Feature */ - - static TT_Error Load_Feature( TTO_Feature* f, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* lli; - - - if ( ACCESS_Frame( 4L ) ) - return error; - - f->FeatureParams = GET_UShort(); /* should be 0 */ - count = f->LookupListCount = GET_UShort(); - - FORGET_Frame(); - - f->LookupListIndex = NULL; - - if ( ALLOC_ARRAY( f->LookupListIndex, count, UShort ) ) - return error; - - lli = f->LookupListIndex; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( f->LookupListIndex ); - return error; - } - - for ( n = 0; n < count; n++ ) - lli[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - static void Free_Feature( TTO_Feature* f ) - { - FREE( f->LookupListIndex ); - } - - - /* FeatureList */ - - TT_Error Load_FeatureList( TTO_FeatureList* fl, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_FeatureRecord* fr; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = fl->FeatureCount = GET_UShort(); - - FORGET_Frame(); - - fl->FeatureRecord = NULL; - - if ( ALLOC_ARRAY( fl->FeatureRecord, count, TTO_FeatureRecord ) ) - return error; - - fr = fl->FeatureRecord; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 6L ) ) - goto Fail; - - fr[n].FeatureTag = GET_ULong(); - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Feature( &fr[n].Feature, input ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_Feature( &fr[n].Feature ); - - FREE( fl->FeatureRecord ); - return error; - } - - - void Free_FeatureList( TTO_FeatureList* fl ) - { - UShort n, count; - - TTO_FeatureRecord* fr; - - - if ( fl->FeatureRecord ) - { - count = fl->FeatureCount; - fr = fl->FeatureRecord; - - for ( n = 0; n < count; n++ ) - Free_Feature( &fr[n].Feature ); - - FREE( fr ); - } - } - - - - /******************************** - * Lookup List related functions - ********************************/ - - /* the subroutines of the following two functions are defined in - ftxgsub.c and ftxgpos.c respectively */ - - - /* SubTable */ - - static TT_Error Load_SubTable( TTO_SubTable* st, - PFace input, - TTO_Type table_type, - UShort lookup_type ) - { - if ( table_type == GSUB ) - switch ( lookup_type ) - { - case GSUB_LOOKUP_SINGLE: - return Load_SingleSubst( &st->st.gsub.single, input ); - - case GSUB_LOOKUP_MULTIPLE: - return Load_MultipleSubst( &st->st.gsub.multiple, input ); - - case GSUB_LOOKUP_ALTERNATE: - return Load_AlternateSubst( &st->st.gsub.alternate, input ); - - case GSUB_LOOKUP_LIGATURE: - return Load_LigatureSubst( &st->st.gsub.ligature, input ); - - case GSUB_LOOKUP_CONTEXT: - return Load_ContextSubst( &st->st.gsub.context, input ); - - case GSUB_LOOKUP_CHAIN: - return Load_ChainContextSubst( &st->st.gsub.chain, input ); - - default: - return TTO_Err_Invalid_GSUB_SubTable_Format; - } - else - switch ( lookup_type ) - { - case GPOS_LOOKUP_SINGLE: - return Load_SinglePos( &st->st.gpos.single, input ); - - case GPOS_LOOKUP_PAIR: - return Load_PairPos( &st->st.gpos.pair, input ); - - case GPOS_LOOKUP_CURSIVE: - return Load_CursivePos( &st->st.gpos.cursive, input ); - - case GPOS_LOOKUP_MARKBASE: - return Load_MarkBasePos( &st->st.gpos.markbase, input ); - - case GPOS_LOOKUP_MARKLIG: - return Load_MarkLigPos( &st->st.gpos.marklig, input ); - - case GPOS_LOOKUP_MARKMARK: - return Load_MarkMarkPos( &st->st.gpos.markmark, input ); - - case GPOS_LOOKUP_CONTEXT: - return Load_ContextPos( &st->st.gpos.context, input ); - - case GPOS_LOOKUP_CHAIN: - return Load_ChainContextPos( &st->st.gpos.chain, input ); - - default: - return TTO_Err_Invalid_GPOS_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - static void Free_SubTable( TTO_SubTable* st, - TTO_Type table_type, - UShort lookup_type ) - { - if ( table_type == GSUB ) - switch ( lookup_type ) - { - case GSUB_LOOKUP_SINGLE: - Free_SingleSubst( &st->st.gsub.single ); - break; - - case GSUB_LOOKUP_MULTIPLE: - Free_MultipleSubst( &st->st.gsub.multiple ); - break; - - case GSUB_LOOKUP_ALTERNATE: - Free_AlternateSubst( &st->st.gsub.alternate ); - break; - - case GSUB_LOOKUP_LIGATURE: - Free_LigatureSubst( &st->st.gsub.ligature ); - break; - - case GSUB_LOOKUP_CONTEXT: - Free_ContextSubst( &st->st.gsub.context ); - break; - - case GSUB_LOOKUP_CHAIN: - Free_ChainContextSubst( &st->st.gsub.chain ); - break; - } - else - switch ( lookup_type ) - { - case GPOS_LOOKUP_SINGLE: - Free_SinglePos( &st->st.gpos.single ); - break; - - case GPOS_LOOKUP_PAIR: - Free_PairPos( &st->st.gpos.pair ); - break; - - case GPOS_LOOKUP_CURSIVE: - Free_CursivePos( &st->st.gpos.cursive ); - break; - - case GPOS_LOOKUP_MARKBASE: - Free_MarkBasePos( &st->st.gpos.markbase ); - break; - - case GPOS_LOOKUP_MARKLIG: - Free_MarkLigPos( &st->st.gpos.marklig ); - break; - - case GPOS_LOOKUP_MARKMARK: - Free_MarkMarkPos( &st->st.gpos.markmark ); - break; - - case GPOS_LOOKUP_CONTEXT: - Free_ContextPos( &st->st.gpos.context ); - break; - - case GPOS_LOOKUP_CHAIN: - Free_ChainContextPos ( &st->st.gpos.chain ); - break; - } - } - - - /* Lookup */ - - static TT_Error Load_Lookup( TTO_Lookup* l, - PFace input, - TTO_Type type ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_SubTable* st; - - Bool is_extension = FALSE; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 6L ) ) - return error; - - l->LookupType = GET_UShort(); - l->LookupFlag = GET_UShort(); - count = l->SubTableCount = GET_UShort(); - - FORGET_Frame(); - - l->SubTable = NULL; - - if ( ALLOC_ARRAY( l->SubTable, count, TTO_SubTable ) ) - return error; - - st = l->SubTable; - - if ( ( type == GSUB && l->LookupType == GSUB_LOOKUP_EXTENSION ) || - ( type == GPOS && l->LookupType == GPOS_LOOKUP_EXTENSION ) ) - is_extension = TRUE; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - - if ( is_extension ) - { - if ( FILE_Seek( new_offset ) || ACCESS_Frame( 8L ) ) - goto Fail; - - (void)GET_UShort(); /* format should be 1 */ - l->LookupType = GET_UShort(); - new_offset = GET_ULong() + base_offset; - - FORGET_Frame(); - } - - if ( FILE_Seek( new_offset ) || - ( error = Load_SubTable( &st[n], input, - type, l->LookupType ) ) != TT_Err_Ok ) - goto Fail; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < count; n++ ) - Free_SubTable( &st[n], type, l->LookupType ); - - FREE( l->SubTable ); - return error; - } - - - static void Free_Lookup( TTO_Lookup* l, - TTO_Type type ) - { - UShort n, count; - - TTO_SubTable* st; - - - if ( l->SubTable ) - { - count = l->SubTableCount; - st = l->SubTable; - - for ( n = 0; n < count; n++ ) - Free_SubTable( &st[n], type, l->LookupType ); - - FREE( st ); - } - } - - - /* LookupList */ - - TT_Error Load_LookupList( TTO_LookupList* ll, - PFace input, - TTO_Type type ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - ULong cur_offset, new_offset, base_offset; - - TTO_Lookup* l; - - - base_offset = FILE_Pos(); - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = ll->LookupCount = GET_UShort(); - - FORGET_Frame(); - - ll->Lookup = NULL; - - if ( ALLOC_ARRAY( ll->Lookup, count, TTO_Lookup ) ) - return error; - if ( ALLOC_ARRAY( ll->Properties, count, UShort ) ) - goto Fail2; - - l = ll->Lookup; - - for ( n = 0; n < count; n++ ) - { - if ( ACCESS_Frame( 2L ) ) - goto Fail1; - - new_offset = GET_UShort() + base_offset; - - FORGET_Frame(); - - cur_offset = FILE_Pos(); - if ( FILE_Seek( new_offset ) || - ( error = Load_Lookup( &l[n], input, type ) ) != TT_Err_Ok ) - goto Fail1; - (void)FILE_Seek( cur_offset ); - } - - return TT_Err_Ok; - - Fail1: - FREE( ll->Properties ); - - for ( n = 0; n < count; n++ ) - Free_Lookup( &l[n], type ); - - Fail2: - FREE( ll->Lookup ); - return error; - } - - - void Free_LookupList( TTO_LookupList* ll, - TTO_Type type ) - { - UShort n, count; - - TTO_Lookup* l; - - - FREE( ll->Properties ); - - if ( ll->Lookup ) - { - count = ll->LookupCount; - l = ll->Lookup; - - for ( n = 0; n < count; n++ ) - Free_Lookup( &l[n], type ); - - FREE( l ); - } - } - - - - /***************************** - * Coverage related functions - *****************************/ - - - /* CoverageFormat1 */ - - static TT_Error Load_Coverage1( TTO_CoverageFormat1* cf1, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* ga; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cf1->GlyphCount = GET_UShort(); - - FORGET_Frame(); - - cf1->GlyphArray = NULL; - - if ( ALLOC_ARRAY( cf1->GlyphArray, count, UShort ) ) - return error; - - ga = cf1->GlyphArray; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( cf1->GlyphArray ); - return error; - } - - for ( n = 0; n < count; n++ ) - ga[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - static void Free_Coverage1( TTO_CoverageFormat1* cf1 ) - { - FREE( cf1->GlyphArray ); - } - - - /* CoverageFormat2 */ - - static TT_Error Load_Coverage2( TTO_CoverageFormat2* cf2, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - TTO_RangeRecord* rr; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cf2->RangeCount = GET_UShort(); - - FORGET_Frame(); - - cf2->RangeRecord = NULL; - - if ( ALLOC_ARRAY( cf2->RangeRecord, count, TTO_RangeRecord ) ) - return error; - - rr = cf2->RangeRecord; - - if ( ACCESS_Frame( count * 6L ) ) - goto Fail; - - for ( n = 0; n < count; n++ ) - { - rr[n].Start = GET_UShort(); - rr[n].End = GET_UShort(); - rr[n].StartCoverageIndex = GET_UShort(); - - /* sanity check; we are limited to 16bit integers */ - if ( rr[n].Start > rr[n].End || - ( rr[n].End - rr[n].Start + (long)rr[n].StartCoverageIndex ) >= - 0x10000L ) - { - error = TTO_Err_Invalid_SubTable; - goto Fail; - } - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail: - FREE( cf2->RangeRecord ); - return error; - } - - - static void Free_Coverage2( TTO_CoverageFormat2* cf2 ) - { - FREE( cf2->RangeRecord ); - } - - - TT_Error Load_Coverage( TTO_Coverage* c, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ACCESS_Frame( 2L ) ) - return error; - - c->CoverageFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( c->CoverageFormat ) - { - case 1: - return Load_Coverage1( &c->cf.cf1, input ); - - case 2: - return Load_Coverage2( &c->cf.cf2, input ); - - default: - return TTO_Err_Invalid_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - void Free_Coverage( TTO_Coverage* c ) - { - switch ( c->CoverageFormat ) - { - case 1: - Free_Coverage1( &c->cf.cf1 ); - break; - - case 2: - Free_Coverage2( &c->cf.cf2 ); - break; - } - } - - - static TT_Error Coverage_Index1( TTO_CoverageFormat1* cf1, - UShort glyphID, - UShort* index ) - { - UShort min, max, new_min, new_max, middle; - - UShort* array = cf1->GlyphArray; - - - /* binary search */ - - new_min = 0; - new_max = cf1->GlyphCount - 1; - - do - { - min = new_min; - max = new_max; - - /* we use (min + max) / 2 = max - (max - min) / 2 to avoid - overflow and rounding errors */ - - middle = max - ( ( max - min ) >> 1 ); - - if ( glyphID == array[middle] ) - { - *index = middle; - return TT_Err_Ok; - } - else if ( glyphID < array[middle] ) - { - if ( middle == min ) - break; - new_max = middle - 1; - } - else - { - if ( middle == max ) - break; - new_min = middle + 1; - } - } while ( min < max ); - - return TTO_Err_Not_Covered; - } - - - static TT_Error Coverage_Index2( TTO_CoverageFormat2* cf2, - UShort glyphID, - UShort* index ) - { - UShort min, max, new_min, new_max, middle; - - TTO_RangeRecord* rr = cf2->RangeRecord; - - - /* binary search */ - - new_min = 0; - new_max = cf2->RangeCount - 1; - - do - { - min = new_min; - max = new_max; - - /* we use (min + max) / 2 = max - (max - min) / 2 to avoid - overflow and rounding errors */ - - middle = max - ( ( max - min ) >> 1 ); - - if ( glyphID >= rr[middle].Start && glyphID <= rr[middle].End ) - { - *index = rr[middle].StartCoverageIndex + glyphID - rr[middle].Start; - return TT_Err_Ok; - } - else if ( glyphID < rr[middle].Start ) - { - if ( middle == min ) - break; - new_max = middle - 1; - } - else - { - if ( middle == max ) - break; - new_min = middle + 1; - } - } while ( min < max ); - - return TTO_Err_Not_Covered; - } - - - TT_Error Coverage_Index( TTO_Coverage* c, - UShort glyphID, - UShort* index ) - { - switch ( c->CoverageFormat ) - { - case 1: - return Coverage_Index1( &c->cf.cf1, glyphID, index ); - - case 2: - return Coverage_Index2( &c->cf.cf2, glyphID, index ); - - default: - return TTO_Err_Invalid_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - - /************************************* - * Class Definition related functions - *************************************/ - - - /* ClassDefFormat1 */ - - static TT_Error Load_ClassDef1( TTO_ClassDefinition* cd, - UShort limit, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* cva; - Bool* d; - - TTO_ClassDefFormat1* cdf1; - - - cdf1 = &cd->cd.cd1; - - if ( ACCESS_Frame( 4L ) ) - return error; - - cdf1->StartGlyph = GET_UShort(); - count = cdf1->GlyphCount = GET_UShort(); - - FORGET_Frame(); - - /* sanity check; we are limited to 16bit integers */ - - if ( cdf1->StartGlyph + (long)count >= 0x10000L ) - return TTO_Err_Invalid_SubTable; - - cdf1->ClassValueArray = NULL; - - if ( ALLOC_ARRAY( cdf1->ClassValueArray, count, UShort ) ) - return error; - - d = cd->Defined; - cva = cdf1->ClassValueArray; - - if ( ACCESS_Frame( count * 2L ) ) - goto Fail; - - for ( n = 0; n < count; n++ ) - { - cva[n] = GET_UShort(); - if ( cva[n] >= limit ) - { - error = TTO_Err_Invalid_SubTable; - goto Fail; - } - d[cva[n]] = TRUE; - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail: - FREE( cva ); - - return error; - } - - - static void Free_ClassDef1( TTO_ClassDefFormat1* cdf1 ) - { - FREE( cdf1->ClassValueArray ); - } - - - /* ClassDefFormat2 */ - - static TT_Error Load_ClassDef2( TTO_ClassDefinition* cd, - UShort limit, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - TTO_ClassRangeRecord* crr; - Bool* d; - - TTO_ClassDefFormat2* cdf2; - - - cdf2 = &cd->cd.cd2; - - if ( ACCESS_Frame( 2L ) ) - return error; - - count = cdf2->ClassRangeCount = GET_UShort(); - - FORGET_Frame(); - - cdf2->ClassRangeRecord = NULL; - - if ( ALLOC_ARRAY( cdf2->ClassRangeRecord, count, TTO_ClassRangeRecord ) ) - return error; - - d = cd->Defined; - crr = cdf2->ClassRangeRecord; - - if ( ACCESS_Frame( count * 6L ) ) - goto Fail; - - for ( n = 0; n < count; n++ ) - { - crr[n].Start = GET_UShort(); - crr[n].End = GET_UShort(); - crr[n].Class = GET_UShort(); - - /* sanity check */ - - if ( crr[n].Start > crr[n].End || - crr[n].Class >= limit ) - { - error = TTO_Err_Invalid_SubTable; - goto Fail; - } - d[crr[n].Class] = TRUE; - } - - FORGET_Frame(); - - return TT_Err_Ok; - - Fail: - FREE( crr ); - - return error; - } - - - static void Free_ClassDef2( TTO_ClassDefFormat2* cdf2 ) - { - FREE( cdf2->ClassRangeRecord ); - } - - - /* ClassDefinition */ - - TT_Error Load_ClassDefinition( TTO_ClassDefinition* cd, - UShort limit, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - - if ( ALLOC_ARRAY( cd->Defined, limit, Bool ) ) - return error; - - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - cd->ClassFormat = GET_UShort(); - - FORGET_Frame(); - - switch ( cd->ClassFormat ) - { - case 1: - error = Load_ClassDef1( cd, limit, input ); - break; - - case 2: - error = Load_ClassDef2( cd, limit, input ); - break; - - default: - error = TTO_Err_Invalid_SubTable_Format; - break; - } - - if ( error ) - goto Fail; - - cd->loaded = TRUE; - - return TT_Err_Ok; - - Fail: - FREE( cd->Defined ); - return error; - } - - - void Free_ClassDefinition( TTO_ClassDefinition* cd ) - { - if ( !cd->loaded ) - return; - - FREE( cd->Defined ); - - switch ( cd->ClassFormat ) - { - case 1: - Free_ClassDef1( &cd->cd.cd1 ); - break; - - case 2: - Free_ClassDef2( &cd->cd.cd2 ); - break; - } - } - - - static TT_Error Get_Class1( TTO_ClassDefFormat1* cdf1, - UShort glyphID, - UShort* class, - UShort* index ) - { - UShort* cva = cdf1->ClassValueArray; - - - *index = 0; - - if ( glyphID >= cdf1->StartGlyph && - glyphID <= cdf1->StartGlyph + cdf1->GlyphCount ) - { - *class = cva[glyphID - cdf1->StartGlyph]; - return TT_Err_Ok; - } - else - { - *class = 0; - return TTO_Err_Not_Covered; - } - } - - - /* we need the index value of the last searched class range record - in case of failure for constructed GDEF tables */ - - static TT_Error Get_Class2( TTO_ClassDefFormat2* cdf2, - UShort glyphID, - UShort* class, - UShort* index ) - { - TT_Error error = TT_Err_Ok; - UShort min, max, new_min, new_max, middle; - - TTO_ClassRangeRecord* crr = cdf2->ClassRangeRecord; - - - /* binary search */ - - new_min = 0; - new_max = cdf2->ClassRangeCount - 1; - - do - { - min = new_min; - max = new_max; - - /* we use (min + max) / 2 = max - (max - min) / 2 to avoid - overflow and rounding errors */ - - middle = max - ( ( max - min ) >> 1 ); - - if ( glyphID >= crr[middle].Start && glyphID <= crr[middle].End ) - { - *class = crr[middle].Class; - error = TT_Err_Ok; - break; - } - else if ( glyphID < crr[middle].Start ) - { - if ( middle == min ) - { - *class = 0; - error = TTO_Err_Not_Covered; - break; - } - new_max = middle - 1; - } - else - { - if ( middle == max ) - { - *class = 0; - error = TTO_Err_Not_Covered; - break; - } - new_min = middle + 1; - } - } while ( min < max ); - - if ( index ) - *index = middle; - - return error; - } - - - TT_Error Get_Class( TTO_ClassDefinition* cd, - UShort glyphID, - UShort* class, - UShort* index ) - { - switch ( cd->ClassFormat ) - { - case 1: - return Get_Class1( &cd->cd.cd1, glyphID, class, index ); - - case 2: - return Get_Class2( &cd->cd.cd2, glyphID, class, index ); - - default: - return TTO_Err_Invalid_SubTable_Format; - } - - return TT_Err_Ok; /* never reached */ - } - - - - /*************************** - * Device related functions - ***************************/ - - - TT_Error Load_Device( TTO_Device* d, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, count; - - UShort* dv; - - - if ( ACCESS_Frame( 6L ) ) - return error; - - d->StartSize = GET_UShort(); - d->EndSize = GET_UShort(); - d->DeltaFormat = GET_UShort(); - - FORGET_Frame(); - - if ( d->StartSize > d->EndSize || - d->DeltaFormat == 0 || d->DeltaFormat > 3 ) - return TTO_Err_Invalid_SubTable; - - d->DeltaValue = NULL; - - count = ( ( d->EndSize - d->StartSize + 1 ) >> - ( 4 - d->DeltaFormat ) ) + 1; - - if ( ALLOC_ARRAY( d->DeltaValue, count, UShort ) ) - return error; - - if ( ACCESS_Frame( count * 2L ) ) - { - FREE( d->DeltaValue ); - return error; - } - - dv = d->DeltaValue; - - for ( n = 0; n < count; n++ ) - dv[n] = GET_UShort(); - - FORGET_Frame(); - - return TT_Err_Ok; - } - - - void Free_Device( TTO_Device* d ) - { - FREE( d->DeltaValue ); - } - - - /* Since we have the delta values stored in compressed form, we must - uncompress it now. To simplify the interface, the function always - returns a meaningful value in `value'; the error is just for - information. - | | - format = 1: 0011223344556677|8899101112131415|... - | | - byte 1 byte 2 - - 00: (byte >> 14) & mask - 11: (byte >> 12) & mask - ... - - mask = 0x0003 - | | - format = 2: 0000111122223333|4444555566667777|... - | | - byte 1 byte 2 - - 0000: (byte >> 12) & mask - 1111: (byte >> 8) & mask - ... - - mask = 0x000F - | | - format = 3: 0000000011111111|2222222233333333|... - | | - byte 1 byte 2 - - 00000000: (byte >> 8) & mask - 11111111: (byte >> 0) & mask - .... - - mask = 0x00FF */ - - TT_Error Get_Device( TTO_Device* d, - UShort size, - Short* value ) - { - UShort byte, bits, mask, f, s; - - - f = d->DeltaFormat; - - if ( size >= d->StartSize && size <= d->EndSize ) - { - s = size - d->StartSize; - byte = d->DeltaValue[s >> ( 4 - f )]; - bits = byte >> ( 16 - ( ( s % ( 1 << ( 4 - f ) ) + 1 ) << f ) ); - mask = 0xFFFF >> ( 16 - ( 1 << f ) ); - - *value = (Short)( bits & mask ); - - /* conversion to a signed value */ - - if ( *value >= ( ( mask + 1 ) >> 1 ) ) - *value -= mask + 1; - - return TT_Err_Ok; - } - else - { - *value = 0; - return TTO_Err_Not_Covered; - } - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxopen.h b/Build/source/libs/freetype/lib/extend/ftxopen.h deleted file mode 100644 index 9725231dcfb..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxopen.h +++ /dev/null @@ -1,290 +0,0 @@ -/******************************************************************* - * - * ftxopen.h - * - * TrueType Open support. - * - * 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 should be included by the application. Nevertheless, - * the table specific APIs (and structures) are located in files like - * ftxgsub.h or ftxgpos.h; these header files are read by ftxopen.h . - * - ******************************************************************/ - -#ifndef FTXOPEN_H -#define FTXOPEN_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define TTO_MAX_NESTING_LEVEL 100 - -#define TTO_Err_Invalid_SubTable_Format 0x1000 -#define TTO_Err_Invalid_SubTable 0x1001 -#define TTO_Err_Not_Covered 0x1002 -#define TTO_Err_Too_Many_Nested_Contexts 0x1003 -#define TTO_Err_No_MM_Interpreter 0x1004 - - - /* Script list related structures */ - - typedef struct TTO_LangSys_ - { - TT_UShort LookupOrderOffset; /* always 0 for TT Open 1.0 */ - TT_UShort ReqFeatureIndex; /* required FeatureIndex */ - TT_UShort FeatureCount; /* number of Feature indices */ - TT_UShort* FeatureIndex; /* array of Feature indices */ - - } TTO_LangSys; - - - - typedef struct TTO_LangSysRecord_ - { - TT_ULong LangSysTag; /* LangSysTag identifier */ - TTO_LangSys LangSys; /* LangSys table */ - - } TTO_LangSysRecord; - - - - typedef struct TTO_Script_ - { - TTO_LangSys DefaultLangSys; /* DefaultLangSys table */ - TT_UShort LangSysCount; /* number of LangSysRecords */ - TTO_LangSysRecord* LangSysRecord; /* array of LangSysRecords */ - - } TTO_Script; - - - typedef struct TTO_ScriptRecord_ - { - TT_ULong ScriptTag; /* ScriptTag identifier */ - TTO_Script Script; /* Script table */ - - } TTO_ScriptRecord; - - - typedef struct TTO_ScriptList_ - { - TT_UShort ScriptCount; /* number of ScriptRecords */ - TTO_ScriptRecord* ScriptRecord; /* array of ScriptRecords */ - - } TTO_ScriptList; - - - - /* Feature list related structures */ - - typedef struct TTO_Feature_ - { - TT_UShort FeatureParams; /* always 0 for TT Open 1.0 */ - TT_UShort LookupListCount; /* number of LookupList indices */ - TT_UShort* LookupListIndex; /* array of LookupList indices */ - - } TTO_Feature; - - - typedef struct TTO_FeatureRecord_ - { - TT_ULong FeatureTag; /* FeatureTag identifier */ - TTO_Feature Feature; /* Feature table */ - - } TTO_FeatureRecord; - - - typedef struct TTO_FeatureList_ - { - TT_UShort FeatureCount; /* number of FeatureRecords */ - TTO_FeatureRecord* FeatureRecord; /* array of FeatureRecords */ - - } TTO_FeatureList; - - - /* Lookup list related structures */ - - struct TTO_SubTable_; - typedef struct TTO_SubTable_ TTO_SubTable; - - - typedef struct TTO_Lookup_ - { - TT_UShort LookupType; /* Lookup type */ - TT_UShort LookupFlag; /* Lookup qualifiers */ - TT_UShort SubTableCount; /* number of SubTables */ - TTO_SubTable* SubTable; /* array of SubTables */ - - } TTO_Lookup; - - - /* The `Properties' field is not defined in the TTO specification but - is needed for processing lookups. If properties[n] is > 0, the - functions TT_GSUB_Apply_String() resp. TT_GPOS_Apply_String() will - process Lookup[n] for glyphs which have the specific bit not set in - the `properties' field of the input string object. */ - - typedef struct TTO_LookupList_ - { - TT_UShort LookupCount; /* number of Lookups */ - TTO_Lookup* Lookup; /* array of Lookup records */ - TT_UShort* Properties; /* array of flags */ - - } TTO_LookupList; - - - /* Possible LookupFlag bit masks. `IGNORE_SPECIAL_MARKS' comes from the - OpenType 1.2 specification; RIGHT_TO_LEFT has been (re)introduced in - OpenType 1.3 -- if set, the last glyph in a cursive attachment - sequence has to be positioned on the baseline -- regardless of the - writing direction. */ - -#define RIGHT_TO_LEFT 0x0001 -#define IGNORE_BASE_GLYPHS 0x0002 -#define IGNORE_LIGATURES 0x0004 -#define IGNORE_MARKS 0x0008 -#define IGNORE_SPECIAL_MARKS 0xFF00 - - - typedef struct TTO_CoverageFormat1_ - { - TT_UShort GlyphCount; /* number of glyphs in GlyphArray */ - TT_UShort* GlyphArray; /* array of glyph IDs */ - - } TTO_CoverageFormat1; - - - typedef struct TTO_RangeRecord_ - { - TT_UShort Start; /* first glyph ID in the range */ - TT_UShort End; /* last glyph ID in the range */ - TT_UShort StartCoverageIndex; /* coverage index of first - glyph ID in the range */ - } TTO_RangeRecord; - - - typedef struct TTO_CoverageFormat2_ - { - TT_UShort RangeCount; /* number of RangeRecords */ - TTO_RangeRecord* RangeRecord; /* array of RangeRecords */ - - } TTO_CoverageFormat2; - - - typedef struct TTO_Coverage_ - { - TT_UShort CoverageFormat; /* 1 or 2 */ - - union - { - TTO_CoverageFormat1 cf1; - TTO_CoverageFormat2 cf2; - } cf; - - } TTO_Coverage; - - - typedef struct TTO_ClassDefFormat1_ - { - TT_UShort StartGlyph; /* first glyph ID of the - ClassValueArray */ - TT_UShort GlyphCount; /* size of the ClassValueArray */ - TT_UShort* ClassValueArray; /* array of class values */ - - } TTO_ClassDefFormat1; - - - typedef struct TTO_ClassRangeRecord_ - { - TT_UShort Start; /* first glyph ID in the range */ - TT_UShort End; /* last glyph ID in the range */ - TT_UShort Class; /* applied to all glyphs in range */ - - } TTO_ClassRangeRecord; - - - typedef struct TTO_ClassDefFormat2_ - { - TT_UShort ClassRangeCount; - /* number of ClassRangeRecords */ - TTO_ClassRangeRecord* ClassRangeRecord; - /* array of ClassRangeRecords */ - } TTO_ClassDefFormat2; - - - /* The `Defined' field is not defined in the TTO specification but - apparently needed for processing fonts like trado.ttf: This font - refers to a class which contains not a single element. We map such - classes to class 0. */ - - typedef struct TTO_ClassDefinition_ - { - TT_Bool loaded; - - TT_Bool* Defined; /* array of Booleans. - If Defined[n] is FALSE, - class n contains no glyphs. */ - TT_UShort ClassFormat; /* 1 or 2 */ - - union - { - TTO_ClassDefFormat1 cd1; - TTO_ClassDefFormat2 cd2; - } cd; - - } TTO_ClassDefinition; - - - typedef struct TTO_Device_ - { - TT_UShort StartSize; /* smallest size to correct */ - TT_UShort EndSize; /* largest size to correct */ - TT_UShort DeltaFormat; /* DeltaValue array data format: - 1, 2, or 3 */ - TT_UShort* DeltaValue; /* array of compressed data */ - - } TTO_Device; - - -#include "ftxgdef.h" -#include "ftxgsub.h" -#include "ftxgpos.h" - - - struct TTO_SubTable_ - { - union - { - TTO_GSUB_SubTable gsub; - TTO_GPOS_SubTable gpos; - } st; - }; - - - enum TTO_Type_ - { - GSUB, - GPOS - }; - - typedef enum TTO_Type_ TTO_Type; - - -#ifdef __cplusplus -} -#endif - -#endif /* FTXOPEN_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxopenf.h b/Build/source/libs/freetype/lib/extend/ftxopenf.h deleted file mode 100644 index 81c671a1d2e..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxopenf.h +++ /dev/null @@ -1,143 +0,0 @@ -/******************************************************************* - * - * ftxopenf.h - * - * internal TrueType Open functions - * - * 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 FTXOPENF_H -#define FTXOPENF_H - -#include "ftxopen.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /* functions from ftxopen.c */ - - TT_Error Load_ScriptList( TTO_ScriptList* sl, - PFace input ); - TT_Error Load_FeatureList( TTO_FeatureList* fl, - PFace input ); - TT_Error Load_LookupList( TTO_LookupList* ll, - PFace input, - TTO_Type type ); - - TT_Error Load_Coverage( TTO_Coverage* c, - PFace input ); - TT_Error Load_ClassDefinition( TTO_ClassDefinition* cd, - UShort limit, - PFace input ); - TT_Error Load_Device( TTO_Device* d, - PFace input ); - - void Free_ScriptList( TTO_ScriptList* sl ); - void Free_FeatureList( TTO_FeatureList* fl ); - void Free_LookupList( TTO_LookupList* ll, - TTO_Type type ); - - void Free_Coverage( TTO_Coverage* c ); - void Free_ClassDefinition( TTO_ClassDefinition* cd ); - void Free_Device( TTO_Device* d ); - - - /* functions from ftxgsub.c */ - - TT_Error Load_SingleSubst( TTO_SingleSubst* ss, - PFace input ); - TT_Error Load_MultipleSubst( TTO_MultipleSubst* ms, - PFace input ); - TT_Error Load_AlternateSubst( TTO_AlternateSubst* as, - PFace input ); - TT_Error Load_LigatureSubst( TTO_LigatureSubst* ls, - PFace input ); - TT_Error Load_ContextSubst( TTO_ContextSubst* cs, - PFace input ); - TT_Error Load_ChainContextSubst( TTO_ChainContextSubst* ccs, - PFace input ); - - void Free_SingleSubst( TTO_SingleSubst* ss ); - void Free_MultipleSubst( TTO_MultipleSubst* ms ); - void Free_AlternateSubst( TTO_AlternateSubst* as ); - void Free_LigatureSubst( TTO_LigatureSubst* ls ); - void Free_ContextSubst( TTO_ContextSubst* cs ); - void Free_ChainContextSubst( TTO_ChainContextSubst* ccs ); - - - /* functions from ftxgpos.c */ - - TT_Error Load_SinglePos( TTO_SinglePos* sp, - PFace input ); - TT_Error Load_PairPos( TTO_PairPos* pp, - PFace input ); - TT_Error Load_CursivePos( TTO_CursivePos* cp, - PFace input ); - TT_Error Load_MarkBasePos( TTO_MarkBasePos* mbp, - PFace input ); - TT_Error Load_MarkLigPos( TTO_MarkLigPos* mlp, - PFace input ); - TT_Error Load_MarkMarkPos( TTO_MarkMarkPos* mmp, - PFace input ); - TT_Error Load_ContextPos( TTO_ContextPos* cp, - PFace input ); - TT_Error Load_ChainContextPos( TTO_ChainContextPos* ccp, - PFace input ); - - void Free_SinglePos( TTO_SinglePos* sp ); - void Free_PairPos( TTO_PairPos* pp ); - void Free_CursivePos( TTO_CursivePos* cp ); - void Free_MarkBasePos( TTO_MarkBasePos* mbp ); - void Free_MarkLigPos( TTO_MarkLigPos* mlp ); - void Free_MarkMarkPos( TTO_MarkMarkPos* mmp ); - void Free_ContextPos( TTO_ContextPos* cp ); - void Free_ChainContextPos( TTO_ChainContextPos* ccp ); - - - /* query functions */ - - TT_Error Coverage_Index( TTO_Coverage* c, - UShort glyphID, - UShort* index ); - TT_Error Get_Class( TTO_ClassDefinition* cd, - UShort glyphID, - UShort* class, - UShort* index ); - TT_Error Get_Device( TTO_Device* d, - UShort size, - Short* value ); - - - /* functions from ftxgdef.c */ - - TT_Error Add_Glyph_Property( TTO_GDEFHeader* gdef, - UShort glyphID, - UShort property ); - - TT_Error Check_Property( TTO_GDEFHeader* gdef, - UShort index, - UShort flags, - UShort* property ); - -#define CHECK_Property( gdef, index, flags, property ) \ - ( ( error = Check_Property( (gdef), (index), (flags), \ - (property) ) ) != TT_Err_Ok ) - -#ifdef __cplusplus -} -#endif - -#endif /* FTXOPENF_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxpost.c b/Build/source/libs/freetype/lib/extend/ftxpost.c deleted file mode 100644 index e871277854f..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxpost.c +++ /dev/null @@ -1,544 +0,0 @@ -/******************************************************************* - * - * ftxpost.c - * - * post table support API extension body - * - * Copyright 1996-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 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 "ftxpost.h" - -#include "tttypes.h" -#include "ttobjs.h" -#include "tttables.h" -#include "ttload.h" /* for the macros */ -#include "ttfile.h" -#include "tttags.h" -#include "ttmemory.h" -#include "ttextend.h" - - -#define POST_ID Build_Extension_ID( 'p', 'o', 's', 't' ) - - - /* the 258 default Mac PS glyph names */ - - 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", - }; - - - - static TT_Error Load_Format_20( TT_Post_20* post20, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, num_glyphs, num_names; - Byte len; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - num_glyphs = GET_UShort(); - - FORGET_Frame(); - - /* 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 > input->numGlyphs ) - return TT_Err_Invalid_Post_Table; - - post20->numGlyphs = num_glyphs; - - /* load the indices */ - - if ( ALLOC_ARRAY( post20->glyphNameIndex, num_glyphs, TT_UShort ) ) - return error; - - if ( ACCESS_Frame( num_glyphs * 2L ) ) - goto Fail; - - for ( n = 0; n < num_glyphs; n++ ) - { - post20->glyphNameIndex[n] = GET_UShort(); - } - - FORGET_Frame(); - - /* compute number of names stored in table */ - num_names = 0; - - for ( n = 0; n < num_glyphs; n++ ) - { - UShort idx; - - - idx = post20->glyphNameIndex[n]; - if ( idx >= 258 ) - { - idx -= 257; -#if 0 /* FIXME This test has been dropped in Freetype 2. Why? */ - if ( idx > num_glyphs ) - { - error = TT_Err_Invalid_Post_Table; - goto Fail; - } -#endif - if ( idx > num_names ) - num_names = idx; - } - } - - post20->numNames = num_names; - - if ( num_names == 0 ) /* nothing more to do */ - return TT_Err_Ok; - - /* now load the name strings */ - if ( ALLOC_ARRAY( post20->glyphNames, num_names, Char* ) ) - goto Fail; - - /* We must initialize the glyphNames array for proper */ - /* deallocation. */ - /* FIXME is it still really needed? */ - for ( n = 0; n < num_names; n++ ) - post20->glyphNames[n] = NULL; - - /* Now we can read the glyph names which are stored in */ - /* Pascal string format. */ - for ( n = 0; n < num_names; n++ ) - { - if ( ACCESS_Frame( 1L ) ) - goto Fail1; - - len = GET_Byte(); - - FORGET_Frame(); - - if ( ALLOC_ARRAY( post20->glyphNames[n], len + 1, Char ) || - FILE_Read( post20->glyphNames[n], len ) ) - goto Fail1; - - /* we make a C string */ - post20->glyphNames[n][len] = '\0'; - } - - return TT_Err_Ok; - - - Fail1: - for ( n = 0; n < num_names; n++ ) - if ( post20->glyphNames[n] ) - FREE( post20->glyphNames[n] ); - - FREE( post20->glyphNames ); - - Fail: - FREE( post20->glyphNameIndex ); - return error; - } - - - static TT_Error Load_Format_25( TT_Post_25* post25, - PFace input ) - { - DEFINE_LOAD_LOCALS( input->stream ); - - UShort n, num; - - - if ( ACCESS_Frame( 2L ) ) - return error; - - /* UNDOCUMENTED! This value appears only in the Apple TT specs. */ - num = GET_UShort(); - - FORGET_Frame(); - - if ( num > input->numGlyphs || num > 258 ) - return TT_Err_Invalid_Post_Table; - - post25->numGlyphs = num; - - if ( ALLOC_ARRAY( post25->offset, num, Char ) ) - return error; - - if ( ACCESS_Frame( num ) ) - goto Fail; - - for ( n = 0; n < num; n++ ) - { - post25->offset[n] = GET_Char(); - - /* We add 128 to the tests to avoid problems with negative */ - /* values for comparison. */ - if ( n + ( post25->offset[n] + 128 ) > num + 128 || - n + ( post25->offset[n] + 128 ) < 128 ) - { - FORGET_Frame(); - error = TT_Err_Invalid_Post_Table; - goto Fail; - } - } - - FORGET_Frame(); - - return TT_Err_Ok; - - - Fail: - FREE( post25->offset ); - return error; - } - - - static TT_Error Post_Create( void* ext, - PFace face ) - { - TT_Post* post = (TT_Post*)ext; - Long table; - - - /* by convention */ - if ( !post ) - return TT_Err_Ok; - - /* we store the start offset and the size of the subtable */ - table = TT_LookUp_Table( face, TTAG_post ); - post->offset = face->dirTables[table].Offset + 32L; - post->length = face->dirTables[table].Length - 32L; - post->loaded = FALSE; - - return TT_Err_Ok; - } - - - static TT_Error Post_Destroy( void* ext, - PFace face ) - { - TT_Post* post = (TT_Post*)ext; - UShort n; - - - /* by convention */ - if ( !post ) - return TT_Err_Ok; - - if ( post->loaded ) - { - switch ( face->postscript.FormatType ) - { - case 0x00010000: /* nothing to do */ - break; - - case 0x00020000: - if ( post->p.post20.numNames ) - { - for ( n = 0; n < post->p.post20.numNames; n++ ) - if ( post->p.post20.glyphNames[n] ) - FREE( post->p.post20.glyphNames[n] ); - FREE( post->p.post20.glyphNames ); - } - FREE( post->p.post20.glyphNameIndex ); - break; - - case 0x00028000: - FREE( post->p.post25.offset ); - break; - - case 0x00030000: /* nothing to do */ - break; - -#if 0 - case 0x00040000: - break; -#endif - - default: - ; /* invalid format, do nothing */ - } - } - - return TT_Err_Ok; - } - - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_Post_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - TT_Error error; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - error = TT_Register_Extension( _engine, - POST_ID, - sizeof ( TT_Post ), - Post_Create, - Post_Destroy ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Load_PS_Names - * - * Description : Loads the PostScript Glyph Name subtable (if any). - * - * Output : error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_PS_Names( TT_Face face, - TT_Post* ppost ) - { - PFace faze = HANDLE_Face( face ); - TT_Error error; - TT_Stream stream; - TT_Post* post; - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - error = TT_Extension_Get( faze, POST_ID, (void**)&post ); - if ( error ) - return error; - - if ( USE_Stream( faze->stream, stream ) ) - return error; - - - switch ( faze->postscript.FormatType ) - { - case 0x00010000: - error = TT_Err_Ok; /* nothing to do */ - break; - - case 0x00020000: - if ( FILE_Seek( post->offset ) ) - goto Fail; - - error = Load_Format_20( &post->p.post20, faze ); - break; - - case 0x00028000: /* 2.5 in 16.16 format */ - if ( FILE_Seek( post->offset ) ) - goto Fail; - - error = Load_Format_25( &post->p.post25, faze ); - break; - - case 0x00030000: - error = TT_Err_Ok; /* nothing to do */ - break; - -#if 0 - case 0x00040000: - break; -#endif - - default: - error = TT_Err_Invalid_Post_Table_Format; - break; - } - - if ( !error ) - { - post->loaded = TRUE; - *ppost = *post; - } - - - Fail: - DONE_Stream( stream ); - - return error; - } - - -/******************************************************************* - * - * Function : TT_Get_PS_Name - * - * Description : Gets the PostScript Glyph Name of a glyph. - * - * Input : index glyph index - * PSname address of a string pointer. - * Will be NULL in case of error; otherwise it - * contains a pointer to the glyph name. - * - * You must not modify the returned string! - * - * Output : error code - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_PS_Name( TT_Face face, - TT_UShort index, - TT_String** PSname ) - { - PFace faze = HANDLE_Face( face ); - TT_Error error; - TT_Post* post; - UShort nameindex; - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( index >= faze->numGlyphs ) - return TT_Err_Invalid_Glyph_Index; - - error = TT_Extension_Get( faze, POST_ID, (void**)&post ); - if ( error ) - return error; - - - *PSname = TT_Post_Default_Names[0]; /* default value */ - - switch ( faze->postscript.FormatType ) - { - case 0x00010000: - if ( index < 258 ) /* paranoid checking */ - *PSname = TT_Post_Default_Names[index]; - break; - - case 0x00020000: - if ( index < post->p.post20.numGlyphs ) - nameindex = post->p.post20.glyphNameIndex[index]; - else - break; - - if ( nameindex < 258 ) - *PSname = TT_Post_Default_Names[nameindex]; - else - *PSname = (String*)post->p.post20.glyphNames[nameindex - 258]; - break; - - case 0x00028000: - if ( index < post->p.post25.numGlyphs ) /* paranoid checking */ - *PSname = TT_Post_Default_Names[index + post->p.post25.offset[index]]; - break; - - case 0x00030000: - break; /* nothing to do */ - -#if 0 - case 0x00040000: - break; -#endif - - default: - ; /* should never happen */ - } - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxpost.h b/Build/source/libs/freetype/lib/extend/ftxpost.h deleted file mode 100644 index 942d967ed6b..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxpost.h +++ /dev/null @@ -1,109 +0,0 @@ -/******************************************************************* - * - * ftxpost.h - * - * post table support API extension - * - * 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. - * - * - * 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. - * - ******************************************************************/ - -#ifndef FTXPOST_H -#define FTXPOST_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define TT_Err_Invalid_Post_Table_Format 0x0B00 -#define TT_Err_Invalid_Post_Table 0x0B01 - - /* the 258 standard Mac glyph names, used for format 1.0 and 2.5 */ - - extern TT_String* TT_Post_Default_Names[]; - - - /* format 2.0 table */ - - struct TT_Post_20_ - { - TT_UShort numGlyphs; - TT_UShort numNames; - TT_UShort* glyphNameIndex; - TT_Char** glyphNames; - }; - - typedef struct TT_Post_20_ TT_Post_20; - - struct TT_Post_25_ - { - TT_UShort numGlyphs; - TT_Char* offset; - }; - - typedef struct TT_Post_25_ TT_Post_25; - -#if 0 - /* format 4.0 table -- not implemented yet */ - - struct TT_Post_40_ - { - }; - - typedef struct TT_Post_40_ TT_Post_40; -#endif - - - struct TT_Post_ - { - TT_Long offset; - TT_Long length; - TT_Bool loaded; - - union - { - TT_Post_20 post20; - TT_Post_25 post25; -#if 0 - TT_Post_40 post40; -#endif - } p; - }; - - typedef struct TT_Post_ TT_Post; - - - FT_EXPORT_DEF( TT_Error ) - TT_Init_Post_Extension( TT_Engine engine ); - - FT_EXPORT_DEF( TT_Error ) - TT_Load_PS_Names( TT_Face face, - TT_Post* post ); - - FT_EXPORT_DEF( TT_Error ) - TT_Get_PS_Name( TT_Face face, - TT_UShort index, - TT_String** PSname ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXPOST_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxsbit.c b/Build/source/libs/freetype/lib/extend/ftxsbit.c deleted file mode 100644 index d692f7fd51c..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxsbit.c +++ /dev/null @@ -1,1393 +0,0 @@ -/******************************************************************* - * - * ftxsbit.c - * - * Embedded bitmap API extension - * - * 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 extension is used to load the embedded bitmaps present - * in certain TrueType files. - * - ******************************************************************/ - -#include "ftxsbit.h" -#include "ttobjs.h" -#include "ttfile.h" -#include "ttload.h" -#include "ttmemory.h" -#include "tttags.h" -#include "ttextend.h" -#include "ttdebug.h" - - -#define SBIT_ID Build_Extension_ID( 's', 'b', 'i', 't' ) - - -/* Required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_bitmap - -/* In all functions, the stream is taken from the 'face' object */ -#define DEFINE_LOCALS DEFINE_LOAD_LOCALS( face->stream ) -#define DEFINE_LOCALS_WO_FRAME DEFINE_LOAD_LOCALS_WO_FRAME( face->stream ) - - -/*************************** - * - * miscellaneous functions - * - ***************************/ - -/******************************************************************* - * - * Function: Load_BitmapData - * - * Bit-aligned bitmap data -> Byte-aligned bitmap data when pad is 0 - * - ******************************************************************/ - - static TT_Error - Load_BitmapData( TT_SBit_Image* image, - Int image_size, - Byte x_offset, - Byte y_offset, - UShort source_width, - UShort source_height, - Bool byte_padded, - PFace face ) - { - DEFINE_LOCALS; - - Int count; /* number of bits left in rows */ - Int loaded; /* number of bits loaded in the accumulator */ - UShort buff; /* accumulator */ - - PByte line; /* target write cursor */ - PByte limit; - - - if ( ( y_offset + source_height > image->map.rows ) || - ( x_offset + source_width > image->map.width ) ) - return TT_Err_Invalid_Argument; - - if ( ACCESS_Frame( image_size ) ) - return error; - - buff = 0; - loaded = 0; - line = (PByte)image->map.bitmap + - y_offset * image->map.cols; - limit = (PByte)image->map.bitmap + - ( y_offset + source_height ) * image->map.cols; - - for ( ; line < limit; line += image->map.cols ) - { - PByte ptr; - - - ptr = line + x_offset / 8; - count = source_width; - - /* We may assume that `loaded' is less than 8 */ - buff >>= x_offset % 8; - loaded += x_offset % 8; - - /* first of all, read all consecutive bytes */ - while ( count >= 8 ) - { - if ( loaded < 8 ) - { - buff |= ((UShort)GET_Byte()) << (8 - loaded); - loaded += 8; - } - - *ptr++ |= (Byte)(buff >> 8); - buff <<= 8; - loaded -= 8; - count -= 8; - } - - /* now write remaining bits (i.e. end of line with count < 8) */ - if ( count > 0 ) - { - if ( loaded < count ) - { - buff |= ((UShort)GET_Byte()) << (8 - loaded); - loaded += 8; - } - - *ptr |= ((Byte)(buff >> 8)) & ~(0xFF >> count); - buff <<= count; - loaded -= count; - } - - if ( byte_padded ) - { - buff = 0; - loaded = 0; - } - } - - FORGET_Frame(); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function: Crop_Bitmap - * - ******************************************************************/ - - static void Crop_Bitmap( TT_SBit_Image* image ) - { - /*******************************************************/ - /* In the following situation, some bounding boxes of */ - /* embedded bitmaps are too large. We need to crop it */ - /* to a reasonable size. */ - /* */ - /* --------- */ - /* | | ----- */ - /* | *** | |***| */ - /* | * | -----> | * | */ - /* | * | | * | */ - /* | * | | * | */ - /* | * | | * | */ - /* | *** | |***| */ - /* --------- ----- */ - /* */ - /*******************************************************/ - - Int rows, count; - Long line_len; - PByte line; - - - /********************************************************************/ - /* */ - /* first of all, check the top-most lines of the bitmap and remove */ - /* them if they're empty. */ - /* */ - { - line = (PByte)image->map.bitmap; - rows = image->map.rows; - line_len = image->map.cols; - - for ( count = 0; count < rows; count++ ) - { - PByte cur = line; - PByte 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 = (PByte)image->map.bitmap; - - MEM_Move( line, line + count*line_len, (rows-count) * line_len ); - - image->metrics.bbox.yMax -= count; - image->metrics.vertBearingY -= count; - image->metrics.horiBearingY -= count; - image->map.rows -= count; - rows -= count; - } - } - - /*******************************************************************/ - /* */ - /* second, crop the lower lines */ - /* */ - { - line = (PByte)image->map.bitmap + (rows-1) * line_len; - - for ( count = 0; count < rows; count++ ) - { - PByte cur = line; - PByte 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 ) - { - image->metrics.bbox.yMin += count; - image->map.rows -= count; - rows -= count; - } - } - - /*******************************************************************/ - /* */ - /* third, get rid of the space on the left side of the glyph */ - /* */ - do - { - PByte limit; - - - line = (PByte)image->map.bitmap; - 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 = (PByte)image->map.bitmap; - limit = line + rows * line_len; - - for ( ; line < limit; line += line_len ) - { - Int n, width = image->map.width; - Byte old; - PByte cur = line; - - - old = cur[0] << 1; - - for ( n = 8; n < width; n += 8 ) - { - Byte val; - - - val = cur[1]; - cur[0] = old | (val >> 7); - old = val << 1; - cur++; - } - cur[0] = old; - } - - image->map.width--; - image->metrics.horiBearingX++; - image->metrics.vertBearingX++; - image->metrics.bbox.xMin++; - - } while ( image->map.width > 0 ); - - Found_Left: - - /*********************************************************************/ - /* */ - /* finally, crop the bitmap width to get rid of the space on the */ - /* right side of the glyph. */ - /* */ - do - { - Int right = image->map.width-1; - PByte limit; - Byte mask; - - - line = (PByte)image->map.bitmap + (right >> 3); - limit = line + rows*line_len; - mask = 0x80 >> (right & 7); - - for ( ; line < limit; line += line_len ) - if ( line[0] & mask ) - goto Found_Right; - - /* crop the whole glyph on the right */ - image->map.width--; - image->metrics.bbox.xMax--; - - } while ( image->map.width > 0 ); - - Found_Right: - /* all right, the bitmap was cropped */ - return; - - Empty_Bitmap: - image->map.width = 0; - image->map.rows = 0; - image->map.cols = 0; - image->map.size = 0; - } - -/************* - * - * Main body - * - *************/ - - - static TT_Error - Load_Range_Codes( TT_SBit_Range* range, - PFace face, - Bool load_offsets ) - { - DEFINE_LOCALS; - - ULong count, n, size; - - - (void)face; - - /* read glyph count */ - if ( ACCESS_Frame( 4L ) ) - goto Exit; - count = GET_ULong(); - FORGET_Frame(); - - range->num_glyphs = count; - - /* Allocate glyph offsets table if needed */ - if ( load_offsets ) - { - if ( ALLOC_ARRAY( range->glyph_offsets, count, ULong ) ) - goto Exit; - - size = count * 4L; - } - else - size = count * 2L; - - /* Allocate glyph codes table and access frame */ - if ( ALLOC_ARRAY ( range->glyph_codes, count, UShort ) || - ACCESS_Frame( size ) ) - goto Exit; - - for ( n = 0; n < count; n++ ) - { - range->glyph_codes[n] = GET_UShort(); - - if ( load_offsets ) - range->glyph_offsets[n] = (ULong)range->image_offset + GET_UShort(); - } - - FORGET_Frame(); - - Exit: - return error; - } - - - static TT_Error - Load_SBit_Range( TT_SBit_Strike* strike, - TT_SBit_Range* range, - PFace face ) - { - DEFINE_LOCALS; - - UShort format; - - - (void)face; - (void)strike; - - format = range->index_format; - PTRACE6(( "Index Format: %d\n", format )); - - switch( format ) - { - case 1: /* variable metrics with 4-byte offsets */ - case 3: /* variable metrics with 2-byte offsets */ - { - UShort num_glyphs, size_elem; - Bool large = (format == 1); - ULong* cur; - - num_glyphs = range->last_glyph - range->first_glyph + 1; - PTRACE5(( " num glyphs: %hu\n", num_glyphs )); - - range->num_glyphs = num_glyphs; - - num_glyphs++; /* BEWARE */ - - size_elem = large ? 4 : 2; - - if ( ALLOC_ARRAY( range->glyph_offsets, num_glyphs, ULong ) || - ACCESS_Frame( num_glyphs * size_elem ) ) - return error; - - cur = range->glyph_offsets; - - while ( num_glyphs > 0 ) - { - cur[0] = (TT_ULong)( range->image_offset + - (large ? GET_ULong() : GET_UShort()) ); - PTRACE7(( " offset: %d\n", cur[0] )); - cur++; - num_glyphs--; - } - - FORGET_Frame(); - } - break; - - case 2: /* all glyphs have identical metrics */ - case 4: - case 5: - { - error = 0; - - if ( format != 4 ) /* read constant metrics, formats 2 and 5 */ - { - TT_SBit_Metrics* metrics; - - - if ( ACCESS_Frame( 12L ) ) - return error; - - range->image_size = GET_ULong(); - metrics = &range->metrics; - - metrics->height = GET_Byte(); - metrics->width = GET_Byte(); - - metrics->horiBearingX = GET_Char(); - metrics->horiBearingY = GET_Char(); - metrics->horiAdvance = GET_Byte(); - - metrics->vertBearingX = GET_Char(); - metrics->vertBearingY = GET_Char(); - metrics->vertAdvance = GET_Byte(); - - FORGET_Frame(); - } - - if ( format != 2 ) /* load range codes, formats 4 and 5 */ - error = Load_Range_Codes( range, face, (format == 4) ); - } - break; - - default: - error = TT_Err_Invalid_File_Format; - } - - PTRACE3(( "Embedded Bitmap Location Tables loaded.\n" )); - - return error; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Eblc - * - * Description : Loads the Eblc table directory into face table. - * - * Input : face face record to look for - * - * Output : Error code. - * - ******************************************************************/ - - static TT_Error - Load_TrueType_Eblc( PFace face, - TT_EBLC* eblc ) - { - DEFINE_LOCALS; - - ULong eblc_offset; - UInt i; - Long table; - - TT_SBit_Strike* strike; - - - PTRACE2(( "Load_EBLC_Table( %08lx )\n", (long)face )); - - eblc->version = 0; - - /* Try to find the `EBLC' or `bloc' table in the font files. */ - /* Both tags describe the same table; `EBLC' is for OpenType */ - /* fonts while `bloc' is for TrueType GX fonts. Many fonts */ - /* contain both tags pointing to the same table. */ - - table = TT_LookUp_Table( face, TTAG_EBLC ); - if ( table < 0 ) - table = TT_LookUp_Table( face, TTAG_bloc ); - - if ( table < 0 ) - /* This table is optional */ - return TT_Err_Ok; - - eblc_offset = face->dirTables[table].Offset; - - if ( FILE_Seek( eblc_offset ) || - ACCESS_Frame( 8L ) ) - return error; - - eblc->version = GET_ULong(); - eblc->num_strikes = GET_ULong(); - - FORGET_Frame(); - - PTRACE2(( "-- Tables count: %12u\n", eblc->num_strikes )); - PTRACE2(( "-- Format version: %08lx\n", eblc->version )); - - if ( eblc->version != 0x00020000 ) - { - PERROR(( "Invalid file format!\n" )); - return TT_Err_Invalid_File_Format; - } - - if ( ALLOC_ARRAY( eblc->strikes, eblc->num_strikes, TT_SBit_Strike ) || - ACCESS_Frame( 48L * eblc->num_strikes ) ) - return error; - - strike = eblc->strikes; - - for ( i = 0; i < (UInt)eblc->num_strikes; i++, strike++ ) - { /* loop through the tables and get all entries */ - ULong indexTablesSize; - TT_SBit_Line_Metrics* metrics; - Int count; - - - strike->ranges_offset = GET_ULong(); - indexTablesSize = GET_ULong(); /* dont' save */ - - strike->num_ranges = GET_ULong(); - strike->color_ref = GET_ULong(); - - /* load horizontal and vertical metrics */ - metrics = &strike->hori; - for ( count = 2; count > 0; count-- ) - { - metrics->ascender = GET_Char(); - metrics->descender = GET_Char(); - metrics->max_width = GET_Byte(); - - metrics->caret_slope_numerator = GET_Char(); - metrics->caret_slope_denominator = GET_Char(); - metrics->caret_offset = GET_Char(); - - metrics->min_origin_SB = GET_Char(); - metrics->min_advance_SB = GET_Char(); - metrics->max_before_BL = GET_Char(); - metrics->min_after_BL = GET_Char(); - metrics->pads[0] = GET_Char(); - metrics->pads[1] = GET_Char(); - - metrics = &strike->vert; - } - - strike->start_glyph = GET_UShort(); - strike->end_glyph = GET_UShort(); - strike->x_ppem = GET_Byte(); - strike->y_ppem = GET_Byte(); - strike->bit_depth = GET_Byte(); - strike->flags = GET_Char(); - - PTRACE4(( " start - end - ppemX - ppemY\n" )); - PTRACE4(( " %04d - %04d - %3u - %3u\n", - strike->start_glyph, - strike->end_glyph, - strike->x_ppem, - strike->y_ppem )); - } - - FORGET_Frame(); - - /* Load EBLC index ranges */ - strike = eblc->strikes; - - for ( i = 0; i < eblc->num_strikes; i++, strike++ ) - { - TT_SBit_Range* range; - UShort count = strike->num_ranges; - - - /* loop through the tables and get all entries */ - if ( ALLOC_ARRAY( strike->sbit_ranges, - strike->num_ranges, - TT_SBit_Range ) || - FILE_Seek( eblc_offset + strike->ranges_offset ) || - ACCESS_Frame( strike->num_ranges * 8L ) ) - return error; - - for ( range = strike->sbit_ranges; count > 0; count--, range++ ) - { - range->first_glyph = GET_UShort(); - range->last_glyph = GET_UShort(); - range->table_offset = eblc_offset + strike->ranges_offset + - GET_ULong(); - } - FORGET_Frame(); - - /* Now, read each index table */ - range = strike->sbit_ranges; - for ( count = strike->num_ranges; count > 0; count--, range++ ) - { - /* Read the header */ - if ( FILE_Seek( range->table_offset ) || - ACCESS_Frame( 8L ) ) - return error;; - - range->index_format = GET_UShort(); - range->image_format = GET_UShort(); - range->image_offset = GET_ULong(); - - FORGET_Frame(); - - error = Load_SBit_Range( strike, range, face ); - if (error) return error; - } - } - - return TT_Err_Ok; - } - - - static void Free_TrueType_Eblc( TT_EBLC* eblc ) - { - if ( eblc ) - { - ULong i; - TT_SBit_Strike* strike = eblc->strikes; - - - strike = eblc->strikes; - - for ( i = eblc->num_strikes; i > 0; i--, strike++ ) - { - /* for each strike, release all glyph ranges */ - TT_SBit_Range* range = strike->sbit_ranges; - Int n; - - - for ( n = strike->num_ranges; n > 0; n--, range++ ) - { - /* release a range */ - FREE( range->glyph_offsets ); - FREE( range->glyph_codes ); - } - FREE( strike->sbit_ranges ); - strike->num_ranges = 0; - } - FREE( eblc->strikes ); - eblc->num_strikes = 0; - eblc->version = 0; - } - } - - - static TT_Error - Load_SBit_Metrics( TT_Big_Glyph_Metrics* metrics, - TT_SBit_Range* range, - ULong ebdt_offset, - PFace face ) - { - DEFINE_LOCALS; - - Byte height, width; - - - /* copy bitmap metrics for formats 2 and 5 */ - if ( ( ( range->index_format == 2 ) || ( range->index_format == 5 ) ) && - ( range->image_format == 5 ) ) - /* metrics are taken from current image bitmap */ - /* i.e. from `image.metrics' */ - { - TT_SBit_Metrics* rmetrics = &range->metrics; - - - metrics->bbox.xMin = rmetrics->horiBearingX; - metrics->bbox.xMax = metrics->bbox.xMin + rmetrics->width; - - metrics->bbox.yMax = rmetrics->horiBearingY; - metrics->bbox.yMin = metrics->bbox.yMax - rmetrics->height; - - metrics->horiBearingX = rmetrics->horiBearingX; - metrics->horiBearingY = metrics->bbox.yMax; - metrics->horiAdvance = rmetrics->horiAdvance; - - metrics->vertBearingX = rmetrics->vertBearingX; - metrics->vertBearingY = rmetrics->vertBearingY; - metrics->vertAdvance = rmetrics->vertAdvance; - - return TT_Err_Ok; - } - - switch ( range->image_format ) - { - case 1: - case 2: - case 6: - case 7: - case 8: - case 9: - { - Long length = 5L; - - - if ( range->image_format == 8 ) - length++; - - /* read the small metrics */ - if ( ACCESS_Frame( length ) ) - return error; - - height = GET_Byte(); - width = GET_Byte(); - - metrics->horiBearingX = GET_Char(); - metrics->horiBearingY = GET_Char(); - metrics->horiAdvance = GET_Byte(); - - FORGET_Frame(); - - metrics->bbox.xMin = metrics->horiBearingX; - metrics->bbox.yMax = metrics->horiBearingY; - metrics->bbox.xMax = metrics->bbox.xMin + width; - metrics->bbox.yMin = metrics->bbox.yMax - height; - - /* read the rest of the big metrics for the formats */ - /* that support it. */ - if ( ( range->image_format >= 6 ) && ( range->image_format != 8 ) ) - { - if ( ACCESS_Frame( 3L ) ) - return error; - - metrics->vertBearingX = (Int)GET_Char(); - metrics->vertBearingY = (Int)GET_Char(); - metrics->vertAdvance = (Int)GET_Char(); - - FORGET_Frame(); - } - else - { - /* XXX: How can we fill these when the information isn't */ - /* available? */ - metrics->vertBearingX = 0; - metrics->vertBearingY = 0; - metrics->vertAdvance = 0; - } - } - break; - - case 5: /* metrics are taken from current image bitmap */ - /* i.e. from 'image.metrics' */ - break; - - default: - PERROR(( "Unsupported embedded bitmap format!\n" )); - return TT_Err_Invalid_File_Format; - } - - return TT_Err_Ok; - } - - - static TT_Error - Load_SBit_Image( TT_SBit_Strike strike, - UShort glyph_index, - Byte x_offset, - Byte y_offset, - ULong ebdt_offset, - TT_SBit_Image* image, - UShort component_depth, - PFace face ) - { - DEFINE_LOCALS; - Byte height, width; - - ULong bitmap_offset; - - TT_SBit_Range* range = 0; - - TT_Big_Glyph_Metrics metrics; - - /********************************************************************/ - /* */ - /* Scan the strike's range for the position/metrics of the source */ - /* glyph. */ - { - UShort count = strike.num_ranges; - TT_SBit_Range* cur = strike.sbit_ranges; - - for ( ; count > 0; count--, cur++ ) - { - /* look for the glyph in the current range */ - switch ( cur->index_format ) - { - case 1: - case 2: - case 3: - if ( glyph_index >= cur->first_glyph && - glyph_index <= cur->last_glyph ) - { - UShort delta = glyph_index - cur->first_glyph; - - - range = cur; - bitmap_offset = cur->index_format == 2 - ? cur->image_offset + cur->image_size * delta - : cur->glyph_offsets[delta]; - goto Found; - } - break; - - case 4: - case 5: - { - UShort n; - - - for ( n = 0; (UInt)n < cur->num_glyphs; n++ ) - if ( cur->glyph_codes[n] == glyph_index ) - { - range = cur; - bitmap_offset = cur->index_format == 4 - ? cur->glyph_offsets[n] - : cur->image_offset + cur->image_size * n; - goto Found; - } - } - break; - - default: - return TT_Err_Invalid_Glyph_Index; - } - } - /* Not found */ - return TT_Err_Invalid_Glyph_Index; - } - - Found: - if ( FILE_Seek( ebdt_offset + bitmap_offset ) ) - return error; - - /* First of all, load the metrics if needed */ - error = Load_SBit_Metrics( &metrics, range, ebdt_offset, face ); - if ( error ) - return error; - - width = metrics.bbox.xMax - metrics.bbox.xMin; - height = metrics.bbox.yMax - metrics.bbox.yMin; - - if ( !component_depth ) - { - image->metrics = metrics; - - image->map.width = width; - image->map.rows = height; - - image->map.cols = (width + 7) >> 3; - image->map.size = height * image->map.cols; - - if ( REALLOC( image->map.bitmap, image->map.size ) ) - return error; - - MEM_Set( image->map.bitmap, 0, image->map.size ); - } - - /* Now, load the data as needed */ - switch ( range->image_format ) - { - case 1: - case 6: /* byte-aligned data */ - error = Load_BitmapData( image, - height * (( width + 7 ) >> 3), - x_offset, y_offset, - width, height, - 1, face ); - if ( error ) - return error; - break; - - case 2: - case 5: - case 7: - error = Load_BitmapData( image, - (width * height + 7) >> 3, - x_offset, y_offset, - width, height, 0, face ); - if ( error ) - return error; - break; - - case 8: - case 9: - { - /* Now, load composite sbit glyphs */ - /* This code is not sophisticated */ - - TT_SBit_Component* component_array; - UShort num_components; - - Int i = 0; - - - if ( ACCESS_Frame( 2L ) ) - return error; - num_components = GET_UShort(); - FORGET_Frame(); - - MEM_Alloc( component_array, - sizeof ( TT_SBit_Component ) * num_components ); - - if ( ACCESS_Frame( 4L * num_components ) ) - return error; - - for ( i = 0; i < num_components; i++ ) - { - component_array[i].glyph_code = GET_UShort(); - component_array[i].x_offset = GET_Char(); - component_array[i].y_offset = GET_Char(); - } - - FORGET_Frame(); - - component_depth++; - - for ( i = 0; i < num_components; i++ ) - { - error = Load_SBit_Image( strike, component_array[i].glyph_code, - component_array[i].x_offset, - component_array[i].y_offset, - ebdt_offset, - image, - component_depth, face ); - if ( error ) - return error; - } - FREE( component_array ); - break; - - default: - return TT_Err_Invalid_File_Format; - } - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function: Load_TrueType_Ebdt - * - ******************************************************************/ - - static TT_Error - Load_TrueType_Ebdt( PFace face, - TT_SBit_Strike strike, - ULong glyph_index, - TT_SBit_Image* image ) - { - DEFINE_LOCALS; - - ULong ebdt_offset; - ULong version; - Long i; - - - /* Try to find the `EBDT' or `bdat' table in the font files. */ - /* Both tags describe the same table, `EBDT' is for OpenType */ - /* fonts, while `bdat' is for TrueType GX fonts. Many fonts */ - /* contain both tags pointing to the same table */ - - i = TT_LookUp_Table( face, TTAG_EBDT ); - if ( i < 0 ) - i = TT_LookUp_Table( face, TTAG_bdat ); - - if ( i < 0 ) - return TT_Err_Table_Missing; - - ebdt_offset = face->dirTables[i].Offset; - - if ( FILE_Seek( ebdt_offset ) || - ACCESS_Frame( 4L ) ) /* read into frame */ - return error; - - version = GET_ULong(); - FORGET_Frame(); - - PTRACE2(( "-- Format version : %08lx\n", version )); - if ( version != 0x00020000 ) - { - PERROR(( "Invalid file format!\n" )); - return TT_Err_Invalid_File_Format; - } - - /* This doesn't compile, I simply commented it out ?? - David */ - /* PTRACE4(( "-- Format: %d\n", range->image_format )); */ - - error = Load_SBit_Image( strike, - glyph_index, - 0, 0, - ebdt_offset, - image, - 0, face ); - if ( error ) - return error; - - return TT_Err_Ok; - } - - - static TT_Error EBLC_Create( void* ext, - PFace face ) - { - TT_EBLC* eblc = (TT_EBLC*)ext; - - - /* by convention */ - if ( !eblc ) - return TT_Err_Ok; - - return Load_TrueType_Eblc( face, eblc ); - } - - - static TT_Error EBLC_Destroy( void* ext, - PFace face ) - { - TT_EBLC* eblc = (TT_EBLC*)ext; - - - (void)face; - - if ( eblc ) - Free_TrueType_Eblc( eblc ); - - return TT_Err_Ok; - } - - - /*************************************************************/ - /* */ - /* */ - /* TT_Init_SBit_Extension */ - /* */ - /* */ - /* Initialize the embedded bitmaps extension for the */ - /* FreeType engine. */ - /* */ - /* */ - /* engine :: handle to current FreeType library instance */ - /* */ - /* */ - /* Error code. 0 means success. */ - /* */ - FT_EXPORT_FUNC( TT_Error ) - TT_Init_SBit_Extension( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - TT_Error error; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - error = TT_Register_Extension( _engine, - SBIT_ID, - sizeof ( TT_EBLC ), - EBLC_Create, - EBLC_Destroy ); - - return error; - } - - - /*************************************************************/ - /* */ - /* */ - /* TT_Get_Face_Bitmaps */ - /* */ - /* */ - /* Loads the `EBLC' table from a font file, if any. */ - /* */ - /* */ - /* face :: handle to the source TrueType font/face */ - /* */ - /* */ - /* eblc_table :: a descriptor for the EBLC table */ - /* */ - /* */ - /* Error code. 0 means success. */ - /* */ - /* */ - /* This function returns TT_Err_Table_Missing if the */ - /* font contains no embedded bitmaps. All fields in */ - /* `eblc_table' will then be set to 0. */ - /* */ - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Face_Bitmaps( TT_Face face, - TT_EBLC* eblc_table ) - { - PFace faze = HANDLE_Face( face ); - TT_EBLC* eblc; - TT_Error error; - - - error = TT_Extension_Get( faze, SBIT_ID, (void**)&eblc ); - if ( !error ) - { - if ( eblc->version ) - { - *eblc_table = *eblc; - return TT_Err_Ok; - } - error = TT_Err_Table_Missing; - } - - eblc_table->version = 0; - eblc_table->num_strikes = 0; - eblc_table->strikes = 0; - - return error; - } - - -/******************************************************************* - * - * TT_Get_SBit_Strike - * - * - * Loads suitable strike (bitmap sizetable) for given instance. - * This strike includes sbitLineMetrics. - * - * - * face :: the source face - * instance :: the current size instance - * - * - * strike :: the bitmap strike descriptor - * - * - * TrueType error code. 0 means success. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_SBit_Strike( TT_Face face, - TT_Instance instance, - TT_SBit_Strike* strike ) - { - TT_Error error; - PFace faze = HANDLE_Face( face ); - PInstance ins = HANDLE_Instance( instance ); - - TT_EBLC* eblc; - TT_Int x_ppem, y_ppem; - - - if ( !strike || !ins || ins->owner != faze ) - return TT_Err_Invalid_Argument; - - error = TT_Extension_Get( faze, SBIT_ID, (void**)&eblc ); - if ( error ) - goto Exit; - - /********************************************************************/ - /* */ - /* Look for an sbit strike that matches the current x and y ppms */ - /* */ - { - UShort count = eblc->num_strikes; - TT_SBit_Strike* cur = eblc->strikes; - - - x_ppem = ins->metrics.x_ppem; - y_ppem = ins->metrics.y_ppem; - - MEM_Set( strike, 0, sizeof ( TT_SBit_Strike ) ); - - for ( ; count > 0; count--, cur++ ) - if ( cur->x_ppem == x_ppem && - cur->y_ppem == y_ppem ) - { - *strike = *cur; - break; - } - - /* return immediately if we didn't find an appropriate strike */ - if ( !strike->num_ranges ) - error = TT_Err_Invalid_PPem; - } - - Exit: - return error; - } - - - /*************************************************************/ - /* */ - /* */ - /* TT_Load_Glyph_Bitmap */ - /* */ - /* */ - /* Loads a given glyph embedded bitmap. */ - /* */ - /* */ - /* face :: handle to the source TrueType font/face */ - /* instance :: current size/transform instance */ - /* glyph_index :: index of source glyph */ - /* bitmap :: target embedded bitmap descriptor */ - /* */ - /* */ - /* Error code. 0 means success. */ - /* */ - /* */ - /* This function returns an error if there is no */ - /* embedded bitmap for the glyph at the given */ - /* instance. */ - /* */ - FT_EXPORT_FUNC( TT_Error ) - TT_Load_Glyph_Bitmap( TT_Face face, - TT_Instance instance, - TT_UShort glyph_index, - TT_SBit_Image* image ) - { - TT_Stream stream; - TT_Error error; - - PFace faze = HANDLE_Face( face ); - PInstance ins = HANDLE_Instance( instance ); - - TT_SBit_Strike strike; - - - if ( ins->owner != faze ) - { - error = TT_Err_Invalid_Argument; - goto Fail; - } - - /********************************************************************/ - /* */ - /* Look for an sbit strike that matches the current x and y ppms */ - /* */ - error = TT_Get_SBit_Strike( face, instance, &strike ); - if ( error ) - goto Fail; - - /* return immediately if the glyph index isn't in the strike extent */ - if ( glyph_index < strike.start_glyph || - glyph_index > strike.end_glyph ) - { - error = TT_Err_Invalid_Glyph_Index; - goto Fail; - } - - { - image->bit_depth = 1; - - if ( !USE_Stream( faze->stream, stream ) ) - { - error = Load_TrueType_Ebdt( faze, strike, glyph_index, image ); - - DONE_Stream( stream ); - - /* exit successfully if we can */ - if ( !error ) - { - image->map.flow = TT_Flow_Down; - - Crop_Bitmap( image ); - - /* correct sbit metrics */ - { - TT_Big_Glyph_Metrics* metrics = &image->metrics; - - - metrics->bbox.xMin *= 64; - metrics->bbox.xMax *= 64; - - metrics->bbox.yMax *= 64; - metrics->bbox.yMin *= 64; - - metrics->horiBearingX *= 64; - metrics->horiBearingY *= 64; - metrics->horiAdvance *= 64; - - metrics->vertBearingX *= 64; - metrics->vertBearingY *= 64; - metrics->vertAdvance *= 64; - } - - goto Exit; - } - } - } - - Fail: - image->map.width = 0; - image->map.rows = 0; - image->map.cols = 0; - image->map.size = 0; - image->map.bitmap = 0; - image->map.flow = 0; - image->bit_depth = 0; - - Exit: - return error; - } - - - /*************************************************************/ - /* */ - /* */ - /* TT_New_SBit_Image */ - /* */ - /* */ - /* Allocates a new embedded bitmap container. */ - /* */ - /* */ - /* image :: sbit image */ - /* */ - /* */ - /* Error code. 0 means success. */ - /* */ - FT_EXPORT_FUNC( TT_Error ) - TT_New_SBit_Image( TT_SBit_Image** image ) - { - return MEM_Alloc( *image, sizeof ( **image ) ); - } - - - /*************************************************************/ - /* */ - /* */ - /* TT_Done_SBit_Image */ - /* */ - /* */ - /* Releases an embedded bitmap container. */ - /* */ - /* */ - /* image :: sbit image */ - /* */ - FT_EXPORT_FUNC( void ) - TT_Done_SBit_Image( TT_SBit_Image* image ) - { - FREE( image->map.bitmap ); - FREE( image ); - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxsbit.h b/Build/source/libs/freetype/lib/extend/ftxsbit.h deleted file mode 100644 index 1df6280b54a..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxsbit.h +++ /dev/null @@ -1,490 +0,0 @@ -/******************************************************************* - * - * ftxsbit.h - * - * embedded bitmap support API extension - * - * 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 extension is used to load the embedded bitmaps present - * in certain TrueType files. - * - ******************************************************************/ - -#ifndef FTXSBIT_H -#define FTXSBIT_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /*************************************************************/ - /* */ - /* TT_SBit_Metrics */ - /* */ - /* */ - /* 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' table. */ - /* */ - /* */ - /* height :: glyph height in pixels */ - /* width :: glyph width in pixels */ - /* */ - /* horiBearingX :: horizontal left bearing */ - /* horiBearingY :: horizontal top bearing */ - /* horiAdvance :: horizontal advance */ - /* */ - /* vertBearingX :: vertical left bearing */ - /* vertBearingY :: vertical top bearing */ - /* vertAdvance :: vertical advance */ - /* */ - typedef struct TT_SBit_Metrics_ - { - TT_Byte height; - TT_Byte width; - - TT_Char horiBearingX; - TT_Char horiBearingY; - TT_Byte horiAdvance; - - TT_Char vertBearingX; - TT_Char vertBearingY; - TT_Byte vertAdvance; - - } TT_SBit_Metrics; - - - /*************************************************************/ - /* */ - /* TT_SBit_Small_Metrics */ - /* */ - /* */ - /* 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' table. */ - /* */ - /* */ - /* height :: glyph height in pixels */ - /* width :: glyph width in pixels */ - /* */ - /* bearingX :: left-side bearing */ - /* bearingY :: top-side bearing */ - /* advance :: advance width or height */ - /* */ - typedef struct TT_SBit_Small_Metrics_ - { - TT_Byte height; - TT_Byte width; - - TT_Char bearingX; - TT_Char bearingY; - TT_Byte advance; - - } TT_SBit_Small_Metrics; - - - /*************************************************************/ - /* */ - /* TT_SBit_Line_Metrics */ - /* */ - /* */ - /* A structure used to describe the text line metrics of */ - /* a given bitmap strike, for either horizontal or */ - /* vertical layout. */ - /* */ - /* */ - /* ascender :: ascender in pixels */ - /* descender :: descender in pixels */ - /* max_width :: 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 */ - /* (hori. advance - ( horiBearingX + width )) */ - /* (resp. vert. advance - ( vertBearingY + height )) */ - /* max_before_BL :: Maximum of horiBearingY */ - /* (resp. Maximum of vertBearingY) */ - /* min_after_BL :: Minimum of ( horiBearingY - height ) */ - /* (resp. vertBearingX - width ) */ - /* */ - typedef struct TT_SBit_Line_Metrics_ - { - TT_Char ascender; - TT_Char descender; - TT_Byte max_width; - TT_Char caret_slope_numerator; - TT_Char caret_slope_denominator; - TT_Char caret_offset; - TT_Char min_origin_SB; - TT_Char min_advance_SB; - TT_Char max_before_BL; - TT_Char min_after_BL; - TT_Char pads[2]; - - } TT_SBit_Line_Metrics; - - - /*************************************************************/ - /* */ - /* TT_SBit_Range */ - /* */ - /* */ - /* A TrueType/OpenType subIndexTable as defined in the */ - /* `EBLC' or `bloc' tables. */ - /* */ - /* */ - /* */ - /* first_glyph :: first glyph index in range */ - /* last_glyph :: last glyph index in range */ - /* */ - /* index_format :: format of index table. valid */ - /* values are 1 to 5. */ - /* */ - /* image_format :: format of `EBDT' image data */ - /* image_offset :: offset to image data in `EBDT' */ - /* */ - /* image_size :: for index formats 2 and 5. This is */ - /* the size in bytes of each glyph bitmap */ - /* 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 :: offset of index table in `EBLC' table */ - /* -- only used during strike loading. */ - /* */ - typedef struct TT_SBit_Range - { - TT_UShort first_glyph; - TT_UShort last_glyph; - - TT_UShort index_format; - TT_UShort image_format; - TT_ULong image_offset; - - TT_ULong image_size; - TT_SBit_Metrics metrics; - TT_ULong num_glyphs; - - TT_ULong* glyph_offsets; - TT_UShort* glyph_codes; - - TT_ULong table_offset; - - } TT_SBit_Range; - - - /*************************************************************/ - /* */ - /* TT_SBit_Strike */ - /* */ - /* */ - /* A structure used describe a given bitmap strike in the */ - /* `EBLC' or `bloc' tables. */ - /* */ - /* */ - /* */ - /* num_index_ranges :: number of index ranges */ - /* index_ranges :: array of glyph index ranges */ - /* */ - /* color_ref :: unused. color reference? */ - /* hori :: line metrics for horizontal layouts. */ - /* vert :: line metrics for vertical layouts. */ - /* */ - /* start_glyph :: lowest glyph index for this strike. */ - /* end_glyph :: higher glyph index for this strike. */ - /* */ - /* x_ppem :: horizontal pixels per EM */ - /* y_ppem :: vertical pixels per EM */ - /* bit_depth :: bit depth. valid values are 1, 2, 4 & 8 */ - /* flags :: vertical or horizontal? */ - /* */ - typedef struct TT_SBit_Strike_ - { - TT_Int num_ranges; - TT_SBit_Range* sbit_ranges; - TT_ULong ranges_offset; - - TT_ULong color_ref; - - TT_SBit_Line_Metrics hori; - TT_SBit_Line_Metrics vert; - - TT_UShort start_glyph; - TT_UShort end_glyph; - - TT_Byte x_ppem; - TT_Byte y_ppem; - TT_Byte bit_depth; - TT_Char flags; - - } TT_SBit_Strike; - - - /*************************************************************/ - /* */ - /* TT_SBit_Component */ - /* */ - /* */ - /* A simple structure to describe a compound sbit element */ - /* */ - /* */ - /* glyph_code :: element's glyph index */ - /* x_offset :: element's left bearing */ - /* y_offset :: element's top bearing */ - /* */ - typedef struct TT_SBit_Component_ - { - TT_UShort glyph_code; - TT_Char x_offset; - TT_Char y_offset; - - } TT_SBit_Component; - - - /*************************************************************/ - /* */ - /* TT_SBit_Scale */ - /* */ - /* */ - /* A structure used describe a given bitmap scaling */ - /* table, as defined for the `EBSC' table. */ - /* */ - /* */ - /* hori :: horizontal line metrics */ - /* vert :: vertical line metrics */ - /* */ - /* x_ppem :: horizontal pixels per EM */ - /* y_ppem :: vertical pixels per EM */ - /* */ - /* x_ppem_substitute :: substitution x_ppem */ - /* y_ppem_substitute :: substitution y_ppem */ - /* */ - typedef struct TT_SBit_Scale_ - { - TT_SBit_Line_Metrics hori; - TT_SBit_Line_Metrics vert; - - TT_Byte x_ppem; - TT_Byte y_ppem; - - TT_Byte x_ppem_substitute; - TT_Byte y_ppem_substitute; - - } TT_SBit_Scale; - - - /*************************************************************/ - /* */ - /* TT_SBit_Image */ - /* */ - /* */ - /* A structure used to describe a given embedded bitmap */ - /* image. */ - /* */ - /* */ - /* map :: bitmap descriptor */ - /* bit_depth :: pixel bit depth */ - /* metrics :: glyph metrics for the bitmap */ - /* */ - typedef struct TT_SBit_Image_ - { - TT_Raster_Map map; - int bit_depth; - TT_Big_Glyph_Metrics metrics; - - } TT_SBit_Image; - - - /*************************************************************/ - /* */ - /* TT_EBLC */ - /* */ - /* */ - /* A structure used to describe the `EBLC' table from */ - /* a TrueType font. */ - /* */ - /* */ - /* version :: version number of the EBLC table */ - /* */ - /* num_strikes :: the number of strikes, i.e. bitmap */ - /* sizes, present in this font */ - /* */ - /* strikes :: array of strikes */ - /* */ - typedef struct TT_EBLC_ - { - TT_ULong version; - TT_ULong num_strikes; - TT_SBit_Strike* strikes; - - } TT_EBLC; - - - - - /*************************************************************/ - /* */ - /* */ - /* TT_Init_SBit_Extension */ - /* */ - /* */ - /* Initializes the embedded bitmap extension for the */ - /* FreeType engine. */ - /* */ - /* */ - /* engine :: handle to current FreeType library instance */ - /* */ - /* */ - /* Error code. 0 means success. */ - /* */ - FT_EXPORT_DEF( TT_Error ) - TT_Init_SBit_Extension( TT_Engine engine ); - - - /*************************************************************/ - /* */ - /* */ - /* TT_Get_Face_Bitmaps */ - /* */ - /* */ - /* Loads the `EBLC' table from a font file, if any. */ - /* */ - /* */ - /* face :: handle to the source TrueType font/face */ - /* */ - /* */ - /* eblc_table :: a descriptor for the EBLC table */ - /* */ - /* */ - /* Error code. 0 means success. */ - /* */ - /* */ - /* This function returns TT_Err_Table_Missing if the */ - /* font contains no embedded bitmaps. All fields in */ - /* `eblc_table' will then be set to 0. */ - /* */ - FT_EXPORT_DEF( TT_Error ) - TT_Get_Face_Bitmaps( TT_Face face, - TT_EBLC* eblc_table ); - - - /*************************************************************/ - /* */ - /* */ - /* TT_New_SBit_Image */ - /* */ - /* */ - /* Allocates a new embedded bitmap container. */ - /* */ - /* */ - /* image :: sbit image */ - /* */ - /* */ - /* Error code. 0 means success. */ - /* */ - FT_EXPORT_DEF( TT_Error ) - TT_New_SBit_Image( TT_SBit_Image** image ); - - - /*************************************************************/ - /* */ - /* */ - /* TT_Done_SBit_Image */ - /* */ - /* */ - /* Releases an embedded bitmap container. */ - /* */ - /* */ - /* image :: sbit image */ - /* */ - FT_EXPORT_DEF( void ) - TT_Done_SBit_Image( TT_SBit_Image* image ); - - - /*************************************************************/ - /* */ - /* TT_Get_SBit_Strike */ - /* */ - /* */ - /* Loads a suitable strike (bitmap sizetable) for the */ - /* given instance. This strike includes */ - /* sbitLineMetrics. */ - /* */ - /* */ - /* face :: the source face */ - /* instance :: the current size instance */ - /* */ - /* */ - /* strike :: the bitmap strike descriptor */ - /* */ - /* */ - /* Error code. 0 means success. */ - /* */ - FT_EXPORT_DEF( TT_Error ) - TT_Get_SBit_Strike( TT_Face face, - TT_Instance instance, - TT_SBit_Strike* strike ); - - - /*************************************************************/ - /* */ - /* */ - /* TT_Load_Glyph_Bitmap */ - /* */ - /* */ - /* Loads a given glyph embedded bitmap. */ - /* */ - /* */ - /* face :: handle to the source TrueType font/face */ - /* instance :: current size/transform instance */ - /* glyph_index :: index of source glyph */ - /* bitmap :: target embedded bitmap descriptor */ - /* */ - /* */ - /* Error code. 0 means success. */ - /* */ - /* */ - /* This function returns an error if there is no */ - /* embedded bitmap for the glyph at the given */ - /* instance. */ - /* */ - FT_EXPORT_DEF( TT_Error ) - TT_Load_Glyph_Bitmap( TT_Face face, - TT_Instance instance, - TT_UShort glyph_index, - TT_SBit_Image* bitmap ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXSBIT_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxwidth.c b/Build/source/libs/freetype/lib/extend/ftxwidth.c deleted file mode 100644 index f7879ed36a1..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxwidth.c +++ /dev/null @@ -1,185 +0,0 @@ -/******************************************************************* - * - * ftxwidth.c 1.0 - * - * Glyph Widths (and Heights) fast retrieval extension - * - * 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 extension is used to parse the "glyf" table of a TrueType - * file in order to extract the bbox of a given range of glyphs. - * - * The bbox is then used to build font unit widths and height - * that are returned in two parallel arrays. - * - * This extension is needed by the FreeType/2 OS/2 Font Driver. - * - ******************************************************************/ - - -#include "ftxwidth.h" -#include "ttdebug.h" -#include "ttobjs.h" -#include "ttfile.h" -#include "tttags.h" -#include "ttload.h" - -/* Required by the tracing mode */ - -#undef TT_COMPONENT -#define TT_COMPONENT trace_any - - - /******************************************************************/ - /* */ - /* Function: TT_Get_Face_Widths */ - /* */ - /* Description: Returns the widths and/or heights of a given */ - /* range of glyphs for a face. */ - /* */ - /* Input: */ - /* face :: face handle */ - /* */ - /* first_glyph :: first glyph in range */ - /* */ - /* last_glyph :: last glyph in range */ - /* */ - /* widths :: address of table receiving the widths */ - /* expressed in font units (ushorts). Set */ - /* this parameter to NULL if you're not */ - /* interested by these values. */ - /* */ - /* heights :: address of table receiving the heights */ - /* expressed in font units (ushorts). Set */ - /* this parameter to NULL if you're not */ - /* interested by these values. */ - /* */ - /* Returns: */ - /* Error code */ - /* */ - /* */ - /******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Face_Widths( TT_Face face, - TT_UShort first_glyph, - TT_UShort last_glyph, - TT_UShort* widths, - TT_UShort* heights ) - { - DEFINE_ALL_LOCALS; - - PFace faze = HANDLE_Face(face); - UShort n; - Long table; - - ULong glyf_offset; /* offset of glyph table in file */ - UShort zero_width = 0; /* width of glyph 0 */ - UShort zero_height = 0; /* height of glyph 0 */ - - Bool zero_loaded = 0; - -#ifndef TT_HUGE_PTR - PStorage locations; -#else - Storage TT_HUGE_PTR * locations; -#endif - TT_BBox bbox; - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( last_glyph >= faze->numGlyphs || - first_glyph > last_glyph ) - return TT_Err_Invalid_Argument; - - /* find "glyf" table */ - table = TT_LookUp_Table( faze, TTAG_glyf ); - if ( table < 0 ) - { - PERROR(( "ERROR: there is no glyph table in this font file!\n" )); - return TT_Err_Glyf_Table_Missing; - } - glyf_offset = faze->dirTables[table].Offset; - - /* now access stream */ - if ( USE_Stream( faze->stream, stream ) ) - return error; - - locations = faze->glyphLocations + first_glyph; - - /* loop to load each glyph in the range */ - for ( n = first_glyph; n <= last_glyph; n++ ) - { - if ( n + 1 < faze->numGlyphs && - locations[0] == locations[1] ) - { - /* Note : Glyph 0 is always used to indicate a missing glyph */ - /* in a range. We must thus return its width and height */ - /* where appropriate when we find an undefined glyph. */ - if ( zero_loaded == 0 ) - { - if ( FILE_Seek( glyf_offset + faze->glyphLocations[0] ) || - ACCESS_Frame( 10L ) ) - goto Fail; - - (void)GET_Short(); /* skip number of contours */ - - bbox.xMin = GET_Short(); - bbox.yMin = GET_Short(); - bbox.xMax = GET_Short(); - bbox.yMax = GET_Short(); - - FORGET_Frame(); - - zero_width = (UShort)(bbox.xMax - bbox.xMin); - zero_height = (UShort)(bbox.yMax - bbox.yMin); - zero_loaded = 1; - } - - if ( widths ) - *widths++ = zero_width; - - if ( heights ) - *heights++ = zero_height; - } - else - { - /* normal glyph, read header */ - if ( FILE_Seek( glyf_offset + locations[0] ) || - ACCESS_Frame( 10L ) ) - goto Fail; - - (void)GET_Short(); /* skip number of contours */ - - bbox.xMin = GET_Short(); - bbox.yMin = GET_Short(); - bbox.xMax = GET_Short(); - bbox.yMax = GET_Short(); - - FORGET_Frame(); - - if ( widths ) - *widths++ = (UShort)(bbox.xMax - bbox.xMin); - - if ( heights ) - *heights++ = (UShort)(bbox.yMax - bbox.yMin); - } - } - - Fail: - DONE_Stream( stream ); - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/ftxwidth.h b/Build/source/libs/freetype/lib/extend/ftxwidth.h deleted file mode 100644 index c7ebc3acb81..00000000000 --- a/Build/source/libs/freetype/lib/extend/ftxwidth.h +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************* - * - * ftxwidth.h - * - * Glyph Widths (and Heights) fast retrieval extension. - * - * 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 extension is used to parse the `glyf' table of a TrueType - * file in order to extract the bounding box of a given range of glyphs. - * - * The bounding box is then used to build font unit widths and heights - * that are returned in two parallel arrays. - * - * This extension is needed by the FreeType/2 OS/2 Font Driver. - * - ******************************************************************/ - -#ifndef FTXWIDTH_H -#define FTXWIDTH_H - -#include "freetype.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /******************************************************************/ - /* */ - /* Function: TT_Get_Face_Widths */ - /* */ - /* Description: Returns the widths and/or heights of a given */ - /* range of glyphs for a face. */ - /* */ - /* Input: */ - /* face :: face handle */ - /* */ - /* first_glyph :: first glyph in range */ - /* */ - /* last_glyph :: last glyph in range */ - /* */ - /* widths :: address of table receiving the widths */ - /* expressed in font units (ushorts). Set */ - /* this parameter to NULL if you're not */ - /* interested by these values. */ - /* */ - /* heights :: address of table receiving the heights */ - /* expressed in font units (ushorts). Set */ - /* this parameter to NULL if you're not */ - /* interested by these values */ - /* */ - /* Returns: */ - /* Error code */ - /* */ - /* */ - /******************************************************************/ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Face_Widths( TT_Face face, - TT_UShort first_glyph, - TT_UShort last_glyph, - TT_UShort* widths, - TT_UShort* heights ); - -#ifdef __cplusplus -} -#endif - -#endif /* FTXWIDTH_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/extend/readme.1st b/Build/source/libs/freetype/lib/extend/readme.1st deleted file mode 100644 index cce94cdfad1..00000000000 --- a/Build/source/libs/freetype/lib/extend/readme.1st +++ /dev/null @@ -1,61 +0,0 @@ -This directory contains several extensions to the core engine. - -An extension is a separately compilable unit which can be linked by -a client application to add new functionalities to the engine. - -There are two kinds of extensions: an `API extension' provides -clients with new APIs to access internal engine structures or data, -while an `engine extension' implements new TrueType data or table -management. - -This directory contains the following: - - ftxcmap: An API extension to iterate over cmaps. - - ftxgasp: A simple API extension which returns the TrueType `gasp' - table to client applications, when found in a font file. - Though this table is always loaded by the engine, there - is no function in the core API to access it. The reason - is simple: to demonstrate a simple API extension with - `ftxgasp'! - - ftxkern: This engine extension is used to access kerning data, - when available in a font file. Note that it implements - on-the-fly loading and retrieving of kerning tables. - However, it doesn't interpret or process the data, and - client applications should use it according to the - TrueType specification. - - ftxpost: An engine extension to load the PostScript glyph names - of the `post' table. See the `ftzoom' program for an - example how to use it. - - ftxwidth: A simple extension used to load the widths and heights - of a given range of glyphs in a face. Results are - expressed in unscaled font units. This is required by - the latest version of the FreeType/2 DLL to speed up - font loading in the GRE (the OS/2 GRaphics Engine). It - can be used by other applications though... - - ftxerr18: This extension simply converts a TrueType engine error - code into a corresponding string describing the error. - It is useful if you intend to write a package for end - users and want to give them not `Error code 135' but - `OS/2 table missing'. See docs/errstr.txt for a - description how to use it (really simple!). ftxerr18 - supports localization of error strings (that is: error - strings are automatically translated into supported - languages) using gettext(). See docs/i18n.txt about - using gettext. - - ftxsbit: Embedded bitmap support. This is an engine extension. - See e.g. the `ftstrtto' program for its usage. - - ftxopen, - ftxgsub, - ftxgpos, - ftxgdef: This is experimental stuff for TrueType Open support! - Please ignore it or help debugging :-) - - ---- END --- diff --git a/Build/source/libs/freetype/lib/freetype.h b/Build/source/libs/freetype/lib/freetype.h deleted file mode 100644 index ad6e434893c..00000000000 --- a/Build/source/libs/freetype/lib/freetype.h +++ /dev/null @@ -1,1184 +0,0 @@ -/******************************************************************* - * - * freetype.h - * - * High-level 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. - * - * Note: - * - * This is the only file that should be included by client - * application sources. All other types and functions defined - * in the `tt*.h' files are library internals and should not be - * included. - * - ******************************************************************/ - -#ifndef FREETYPE_H -#define FREETYPE_H - - -#define TT_FREETYPE_MAJOR 1 -#define TT_FREETYPE_MINOR 5 - - -#include "fterrid.h" -#include "ftnameid.h" - -#if defined(WIN32) -#ifdef FREETYPE_DLL -#ifdef MAKE_FREETYPE_DLL -#define FREETYPEDLL __declspec( dllexport) -#else -#define FREETYPEDLL __declspec( dllimport) -#endif -#else -#define FREETYPEDLL -#endif -#else /* ! WIN32 */ -#define FREETYPEDLL -#endif - -/*************************************************************************/ -/* Define FT_EXPORT_DEF as needed to use e.g. a DLL. */ -/* All variables and functions visible from outside have these prefixes. */ -/* */ -/* To make freetype.h independent from configuration files we check */ -/* whether FT_EXPORT_DEF has been defined already. */ - -/* Backward compatibility only. Don't use for new code. */ -#ifdef EXPORT_DEF -#define FT_EXPORT_DEF( type ) EXPORT_DEF type -#endif -/* End of backward compatibility section. */ - -#ifndef FT_EXPORT_DEF -#define FT_EXPORT_DEF( type ) extern type -#endif - -/* This is for variables; default is using the same as functions. */ -#ifndef FT_EXPORT_DECL -#define FT_EXPORT_DECL( type ) FT_EXPORT_DEF( type ) -#endif - -/* The same for TT_Text. If you define the HAVE_TT_TEXT macro, you have */ -/* to provide a typedef declaration for TT_Text before including this */ -/* file. */ - -#ifndef HAVE_TT_TEXT -#define HAVE_TT_TEXT - typedef char TT_Text; /* The data type to represent */ - /* file name string elements. */ -#endif - -#ifdef __cplusplus - extern "C" { -#endif - - - /*******************************************************************/ - /* */ - /* FreeType types definitions. */ - /* */ - /* All these begin with a 'TT_' prefix. */ - /* */ - /*******************************************************************/ - - typedef int TT_Bool; - - typedef signed long TT_Fixed; /* signed fixed 16.16 float */ - - typedef signed short TT_FWord; /* distance in FUnits */ - typedef unsigned short TT_UFWord; /* unsigned distance */ - - typedef char TT_String; - typedef signed char TT_Char; - typedef unsigned char TT_Byte; - typedef signed short TT_Short; - typedef unsigned short TT_UShort; - typedef int TT_Int; - typedef unsigned int TT_UInt; - typedef signed long TT_Long; - typedef unsigned long TT_ULong; - - typedef signed short TT_F2Dot14; /* Signed fixed float 2.14 used for */ - /* unit vectors, with layout */ - /* */ - /* s : 1 -- sign bit */ - /* m : 1 -- integer bit */ - /* f : 14 -- unsigned fractional */ - /* */ - /* `s:m' is the 2-bit signed int */ - /* value to which the positive */ - /* fractional part should be added. */ - - typedef signed long TT_F26Dot6; /* 26.6 fixed float, used for */ - /* glyph points pixel coordinates. */ - - typedef signed long TT_Pos; /* Point position, expressed either */ - /* in fractional pixels or notional */ - /* units, depending on context. */ - /* For example, glyph coordinates */ - /* returned by TT_Load_Glyph() are */ - /* expressed in font units if */ - /* scaling wasn't requested, and */ - /* in 26.6 fractional pixels if it */ - /* was. */ - - - struct TT_UnitVector_ /* guess what... */ - { - TT_F2Dot14 x; - TT_F2Dot14 y; - }; - - typedef struct TT_UnitVector_ TT_UnitVector; - - - struct TT_Vector_ /* simple vector type */ - { - TT_F26Dot6 x; - TT_F26Dot6 y; - }; - - typedef struct TT_Vector_ TT_Vector; - - - /* A simple 2x2 matrix used for transformations. */ - /* You should use 16.16 fixed floats. */ - /* */ - /* x' = xx*x + xy*y */ - /* y' = yx*x + yy*y */ - /* */ - - struct TT_Matrix_ - { - TT_Fixed xx, xy; - TT_Fixed yx, yy; - }; - - typedef struct TT_Matrix_ TT_Matrix; - - - /* A structure used to describe the source glyph to the renderer. */ - - struct TT_Outline_ - { - TT_Short n_contours; /* number of contours in glyph */ - TT_UShort n_points; /* number of points in the glyph */ - - TT_Vector* points; /* the outline's points */ - TT_Byte* flags; /* the points flags */ - TT_UShort* contours; /* the contour end points */ - - /* The following flag indicates that the outline owns the arrays it */ - /* refers to. Typically, this is true of outlines created from the */ - /* TT_New_Outline() API, while it isn't for those returned by */ - /* TT_Get_Glyph_Outline(). */ - - TT_Bool owner; /* The outline owns the coordinates, */ - /* flags and contours array it uses. */ - - /* The following flags are set automatically by */ - /* TT_Get_Glyph_Outline(). Their meaning is the following: */ - /* */ - /* high_precision If true, the scan-line converter will use a */ - /* higher precision to render bitmaps (i.e., a */ - /* 1/1024 pixel precision). This is important for */ - /* small ppem sizes. */ - /* */ - /* second_pass If true, the scan-line converter performs a */ - /* second sweep phase dedicated to find vertical */ - /* drop-outs. If false, only horizontal drop-outs */ - /* will be checked during the first vertical */ - /* sweep (yes, this is a bit confusing but it is */ - /* really the way it should work). This is */ - /* important for small ppems too. */ - /* */ - /* dropout_mode Specifies the TrueType drop-out mode to use for */ - /* continuity checking. Valid values are 0 (no */ - /* check), 1, 2, 4, and 5. */ - /* */ - /* Most of the engine's users will safely ignore these fields... */ - - TT_Bool high_precision; /* high precision rendering */ - TT_Bool second_pass; /* two sweeps rendering */ - TT_Char dropout_mode; /* dropout mode */ - }; - - typedef struct TT_Outline_ TT_Outline; - - - /* A structure used to describe a simple bounding box. */ - - struct TT_BBox_ - { - TT_Pos xMin; - TT_Pos yMin; - TT_Pos xMax; - TT_Pos yMax; - }; - - typedef struct TT_BBox_ TT_BBox; - - - /* A structure used to return glyph metrics. */ - /* */ - /* The `bearingX' isn't called `left-side bearing' anymore because */ - /* it has different meanings depending on the glyph's orientation. */ - /* */ - /* The same is true for `bearingY', which is the top-side bearing */ - /* defined by the TT_Spec, i.e., the distance from the baseline to */ - /* the top of the glyph's bbox. According to our current convention, */ - /* this is always the same as `bbox.yMax' but we make it appear for */ - /* consistency in its proper field. */ - /* */ - /* The `advance' field is the advance width for horizontal layout, */ - /* and advance height for vertical layouts. */ - - struct TT_Glyph_Metrics_ - { - TT_BBox bbox; /* glyph bounding box */ - - TT_Pos bearingX; /* left-side bearing */ - TT_Pos bearingY; /* top-side bearing, per se the TT spec */ - - TT_Pos advance; /* advance width (or height) */ - }; - - typedef struct TT_Glyph_Metrics_ TT_Glyph_Metrics; - - - /* A structure used to return horizontal _and_ vertical glyph */ - /* metrics. */ - /* */ - /* A glyph can be used either in a horizontal or vertical layout. */ - /* Its glyph metrics vary with orientation. The TT_Big_Glyph_Metrics */ - /* structure is used to return _all_ metrics in one call. */ - - struct TT_Big_Glyph_Metrics_ - { - TT_BBox bbox; /* glyph bounding box */ - - TT_Pos horiBearingX; /* left side bearing in horizontal layouts */ - TT_Pos horiBearingY; /* top side bearing in horizontal layouts */ - - TT_Pos vertBearingX; /* left side bearing in vertical layouts */ - TT_Pos vertBearingY; /* top side bearing in vertical layouts */ - - TT_Pos horiAdvance; /* advance width for horizontal layout */ - TT_Pos vertAdvance; /* advance height for vertical layout */ - - /* The following fields represent unhinted scaled metrics values. */ - /* They can be useful for applications needing to do some device */ - /* independent placement of glyphs. */ - /* */ - /* Applying these metrics to hinted glyphs will most surely ruin */ - /* the grid fitting performed by the bytecode interpreter. These */ - /* values are better used to compute accumulated positioning */ - /* distances. */ - - TT_Pos linearHoriBearingX; /* linearly scaled horizontal lsb */ - TT_Pos linearHoriAdvance; /* linearly scaled horizontal advance */ - - TT_Pos linearVertBearingY; /* linearly scaled vertical tsb */ - TT_Pos linearVertAdvance; /* linearly scaled vertical advance */ - }; - - typedef struct TT_Big_Glyph_Metrics_ TT_Big_Glyph_Metrics; - - - /* A structure used to return instance metrics. */ - - struct TT_Instance_Metrics_ - { - TT_F26Dot6 pointSize; /* char. size in points (1pt = 1/72 inch) */ - - TT_UShort x_ppem; /* horizontal pixels per EM square */ - TT_UShort y_ppem; /* vertical pixels per EM square */ - - TT_Fixed x_scale; /* 16.16 to convert from EM units to 26.6 pix */ - TT_Fixed y_scale; /* 16.16 to convert from EM units to 26.6 pix */ - - TT_UShort x_resolution; /* device horizontal resolution in dpi */ - TT_UShort y_resolution; /* device vertical resolution in dpi */ - }; - - typedef struct TT_Instance_Metrics_ TT_Instance_Metrics; - - - /* Flow constants: */ - /* */ - /* The flow of a bitmap refers to the way lines are oriented */ - /* within the bitmap data, i.e., the orientation of the Y */ - /* coordinate axis. */ - /* */ - /* For example, if the first bytes of the bitmap pertain to */ - /* its top-most line, then the flow is `down'. If these bytes */ - /* pertain to its lowest line, the the flow is `up'. */ - -#define TT_Flow_Down -1 /* bitmap is oriented from top to bottom */ -#define TT_Flow_Up 1 /* bitmap is oriented from bottom to top */ -#define TT_Flow_Error 0 /* an error occurred during rendering */ - - - /* A structure used to describe the target bitmap or pixmap to the */ - /* renderer. Note that there is nothing in this structure that */ - /* gives the nature of the buffer. */ - /* */ - /* IMPORTANT NOTE: */ - /* */ - /* In the case of a pixmap, the `width' and `cols' fields must */ - /* have the _same_ values, and _must_ be padded to 32-bits, i.e., */ - /* be a multiple of 4. Clipping problems will arise otherwise, */ - /* if not even page faults! */ - /* */ - /* The typical settings are: */ - /* */ - /* - for a WxH bitmap: */ - /* */ - /* rows = H */ - /* cols = (W+7) / 8 */ - /* width = W */ - /* flow = your_choice */ - /* */ - /* - for a WxH pixmap: */ - /* */ - /* rows = H */ - /* cols = (W+3) & ~3 */ - /* width = cols */ - /* flow = your_choice */ - - struct TT_Raster_Map_ - { - int rows; /* number of rows */ - int cols; /* number of columns (bytes) per row */ - int width; /* number of pixels per line */ - int flow; /* bitmap orientation */ - - void* bitmap; /* bit/pixmap buffer */ - long size; /* bit/pixmap size in bytes */ - }; - - typedef struct TT_Raster_Map_ TT_Raster_Map; - - - /* ------ The font header TrueType table structure ------ */ - - struct TT_Header_ - { - TT_Fixed Table_Version; - TT_Fixed Font_Revision; - - TT_Long CheckSum_Adjust; - TT_Long Magic_Number; - - TT_UShort Flags; - TT_UShort Units_Per_EM; - - TT_Long Created [2]; - TT_Long Modified[2]; - - TT_FWord xMin; - TT_FWord yMin; - TT_FWord xMax; - TT_FWord yMax; - - TT_UShort Mac_Style; - TT_UShort Lowest_Rec_PPEM; - - TT_Short Font_Direction; - TT_Short Index_To_Loc_Format; - TT_Short Glyph_Data_Format; - }; - - typedef struct TT_Header_ TT_Header; - - - /* ------ The horizontal header TrueType table structure ------ */ - - /*******************************************************/ - /* This structure is the one defined by the TrueType */ - /* specification, plus two fields used to link the */ - /* font-units metrics to the header. */ - - struct TT_Horizontal_Header_ - { - TT_Fixed Version; - TT_FWord Ascender; - TT_FWord Descender; - TT_FWord Line_Gap; - - TT_UFWord advance_Width_Max; /* advance width maximum */ - - TT_FWord min_Left_Side_Bearing; /* minimum left-sb */ - TT_FWord min_Right_Side_Bearing; /* minimum right-sb */ - TT_FWord xMax_Extent; /* xmax extents */ - TT_FWord caret_Slope_Rise; - TT_FWord caret_Slope_Run; - - TT_Short Reserved0, - Reserved1, - Reserved2, - Reserved3, - Reserved4; - - TT_Short metric_Data_Format; - TT_UShort number_Of_HMetrics; - - /* 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; - }; - - typedef struct TT_Horizontal_Header_ TT_Horizontal_Header; - - - /*******************************************************/ - /* This structure is the one defined by the TrueType */ - /* specification. Note that it has exactly the same */ - /* layout as the horizontal header (both are loaded */ - /* by the same function). */ - - struct TT_Vertical_Header_ - { - TT_Fixed Version; - TT_FWord Ascender; - TT_FWord Descender; - TT_FWord Line_Gap; - - TT_UFWord advance_Height_Max; /* advance height maximum */ - - TT_FWord min_Top_Side_Bearing; /* minimum left-sb or top-sb */ - TT_FWord min_Bottom_Side_Bearing; /* minimum right-sb or bottom-sb */ - TT_FWord yMax_Extent; /* xmax or ymax extents */ - TT_FWord caret_Slope_Rise; - TT_FWord caret_Slope_Run; - TT_FWord caret_Offset; - - TT_Short Reserved1, - Reserved2, - Reserved3, - Reserved4; - - TT_Short metric_Data_Format; - TT_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; - }; - - typedef struct TT_Vertical_Header_ TT_Vertical_Header; - - - /* ------ The OS/2 table ------ */ - - /************************************************************************/ - /* Note that since FreeType 1.3, we support Mac fonts which do not have */ - /* an OS/2 table. In this case the `version' field will be set to */ - /* 0xFFFF by the table loader; all other fields should be 0. */ - - struct TT_OS2_ - { - TT_UShort version; /* 0x0001 */ - TT_FWord xAvgCharWidth; - TT_UShort usWeightClass; - TT_UShort usWidthClass; - TT_Short fsType; - TT_FWord ySubscriptXSize; - TT_FWord ySubscriptYSize; - TT_FWord ySubscriptXOffset; - TT_FWord ySubscriptYOffset; - TT_FWord ySuperscriptXSize; - TT_FWord ySuperscriptYSize; - TT_FWord ySuperscriptXOffset; - TT_FWord ySuperscriptYOffset; - TT_FWord yStrikeoutSize; - TT_FWord yStrikeoutPosition; - TT_Short sFamilyClass; - - TT_Byte panose[10]; - - TT_ULong ulUnicodeRange1; /* Bits 0-31 */ - TT_ULong ulUnicodeRange2; /* Bits 32-63 */ - TT_ULong ulUnicodeRange3; /* Bits 64-95 */ - TT_ULong ulUnicodeRange4; /* Bits 96-127 */ - - TT_Char achVendID[4]; - - TT_UShort fsSelection; - TT_UShort usFirstCharIndex; - TT_UShort usLastCharIndex; - TT_Short sTypoAscender; - TT_Short sTypoDescender; - TT_Short sTypoLineGap; - TT_UShort usWinAscent; - TT_UShort usWinDescent; - - /* only version 1 tables: */ - - TT_ULong ulCodePageRange1; /* Bits 0-31 */ - TT_ULong ulCodePageRange2; /* Bits 32-63 */ - - /* only version 2 tables: */ - - TT_Short sxHeight; - TT_Short sCapHeight; - TT_UShort usDefaultChar; - TT_UShort usBreakChar; - TT_UShort usMaxContext; - }; - - typedef struct TT_OS2_ TT_OS2; - - - /* ------ The PostScript table ------ */ - - struct TT_Postscript_ - { - TT_Fixed FormatType; - TT_Fixed italicAngle; - TT_FWord underlinePosition; - TT_FWord underlineThickness; - TT_ULong isFixedPitch; - TT_ULong minMemType42; - TT_ULong maxMemType42; - TT_ULong minMemType1; - TT_ULong maxMemType1; - - /* Glyph names follow in the file, but we don't */ - /* load them by default. See the ftxpost.c extension. */ - }; - - typedef struct TT_Postscript_ TT_Postscript; - - - /* ------ The horizontal device metrics table (`hdmx') ------ */ - - struct TT_Hdmx_Record_ - { - TT_Byte ppem; - TT_Byte max_width; - TT_Byte* widths; - }; - - typedef struct TT_Hdmx_Record_ TT_Hdmx_Record; - - - struct TT_Hdmx_ - { - TT_UShort version; - TT_Short num_records; - TT_Hdmx_Record* records; - }; - - typedef struct TT_Hdmx_ TT_Hdmx; - - - /* A structure used to describe face properties. */ - - struct TT_Face_Properties_ - { - TT_UShort num_Glyphs; /* number of glyphs in face */ - TT_UShort max_Points; /* maximum number of points in a glyph */ - TT_UShort max_Contours; /* maximum number of contours in a glyph */ - - TT_UShort num_CharMaps; /* number of charmaps in the face */ - TT_UShort num_Names; /* number of name records in the face */ - - TT_ULong num_Faces; /* 1 for normal TrueType files, and the */ - /* number of embedded faces for TrueType */ - /* collections */ - - TT_Header* header; /* TrueType header table */ - TT_Horizontal_Header* horizontal; /* TrueType horizontal header */ - TT_OS2* os2; /* TrueType OS/2 table */ - TT_Postscript* postscript; /* TrueType Postscript table */ - TT_Hdmx* hdmx; /* TrueType hor. dev. metr. table */ - TT_Vertical_Header* vertical; /* TT Vertical header, if present */ - }; - - typedef struct TT_Face_Properties_ TT_Face_Properties; - - - /* Here are the definitions of the handle types used for FreeType's */ - /* most common objects accessed by the client application. We use */ - /* a simple trick: */ - /* */ - /* Each handle type is a structure that only contains one */ - /* pointer. The advantage of structures is that they are */ - /* mutually exclusive types. We could have defined the */ - /* following types: */ - /* */ - /* typedef void* TT_Stream; */ - /* typedef void* TT_Face; */ - /* typedef void* TT_Instance; */ - /* typedef void* TT_Glyph; */ - /* typedef void* TT_CharMap; */ - /* */ - /* but these would have allowed lines like: */ - /* */ - /* stream = instance; */ - /* */ - /* in the client code this would be a severe bug, unnoticed */ - /* by the compiler! */ - /* */ - /* Thus, we enforce type checking with a simple language */ - /* trick... */ - /* */ - /* NOTE: Some macros are defined in tttypes.h to perform */ - /* automatic type conversions for library hackers... */ - - struct TT_Engine_ { void* z; }; - struct TT_Stream_ { void* z; }; - struct TT_Face_ { void* z; }; - struct TT_Instance_ { void* z; }; - struct TT_Glyph_ { void* z; }; - struct TT_CharMap_ { void* z; }; - - typedef struct TT_Engine_ TT_Engine; /* engine instance */ - typedef struct TT_Stream_ TT_Stream; /* stream handle type */ - typedef struct TT_Face_ TT_Face; /* face handle type */ - typedef struct TT_Instance_ TT_Instance; /* instance handle type */ - typedef struct TT_Glyph_ TT_Glyph; /* glyph handle type */ - typedef struct TT_CharMap_ TT_CharMap; /* character map handle type */ - - - /* Almost all functions return an error code of this type. */ - - typedef long TT_Error; - - - /*******************************************************************/ - /* */ - /* FreeType API */ - /* */ - /* All these begin with a `TT_' prefix. */ - /* */ - /* Most of them are implemented in the `ttapi.c' source file. */ - /* */ - /*******************************************************************/ - - /* Get version information. */ - - FT_EXPORT_DEF( TT_Error ) - TT_FreeType_Version( int *major, - int *minor ); - - - /* Initialize the engine. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Init_FreeType( TT_Engine* engine ); - - - /* Finalize the engine, and release all allocated objects. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Done_FreeType( TT_Engine engine ); - - - /* Set the gray level palette. This is an array of 5 bytes used */ - /* to produce the font smoothed pixmaps. By convention: */ - /* */ - /* palette[0] = background (white) */ - /* palette[1] = light */ - /* palette[2] = medium */ - /* palette[3] = dark */ - /* palette[4] = foreground (black) */ - /* */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Raster_Gray_Palette( TT_Engine engine, - TT_Byte* palette ); - - - /* ----------------------- face management ----------------------- */ - - /* Open a new TrueType font file, and returns a handle for */ - /* it in variable '*face'. */ - /* */ - /* Note: The file can be either a TrueType file (*.ttf) or */ - /* a TrueType collection (*.ttc, in this case, only */ - /* the first face is opened). The number of faces in */ - /* the same collection can be obtained in the face's */ - /* properties, using TT_Get_Face_Properties() and the */ - /* `max_Faces' field. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Open_Face( TT_Engine engine, - const TT_Text* fontPathName, - TT_Face* face ); - - - /* Open a TrueType font file located inside a collection. */ - /* The font is assigned by its index in `fontIndex'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Open_Collection( TT_Engine engine, - const TT_Text* collectionPathName, - TT_ULong fontIndex, - TT_Face* face ); - - - /* Return face properties in the `properties' structure. */ - /* */ - /* Note that since version 1.3, we support font files with no */ - /* OS/2 table (mainly old Mac fonts). In this case, the OS/2 */ - /* `version' field will be set to 0xFFFF, and all other fields */ - /* will be zeroed. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Face_Properties( TT_Face face, - TT_Face_Properties* properties ); - - - /* Set a face object's generic pointer */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Face_Pointer( TT_Face face, - void* data ); - - - /* Get a face object's generic pointer */ - - FT_EXPORT_DEF( void* ) - TT_Get_Face_Pointer( TT_Face face ); - - - /* Close a face's file handle to save system resources. The file */ - /* will be re-opened automatically on the next disk access. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Flush_Face( TT_Face face ); - - /* Get a face's glyph metrics expressed in font units. Returns any */ - /* number of arrays. Set the fields to NULL if you are not interested */ - /* by a given array. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Face_Metrics( TT_Face face, - TT_UShort firstGlyph, - TT_UShort lastGlyph, - TT_Short* leftBearings, - TT_UShort* widths, - TT_Short* topBearings, - TT_UShort* heights ); - - - /* Close a given font object, destroying all associated */ - /* instances. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Close_Face( TT_Face face ); - - - /* Get font or table data. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Font_Data( TT_Face face, - TT_ULong tag, - TT_Long offset, - void* buffer, - TT_Long* length ); - - -/* A simple macro to build table tags from ASCII chars */ - -#define MAKE_TT_TAG( _x1, _x2, _x3, _x4 ) \ - (((TT_ULong)_x1 << 24) | \ - ((TT_ULong)_x2 << 16) | \ - ((TT_ULong)_x3 << 8) | \ - (TT_ULong)_x4) - - - - /* ----------------------- instance management -------------------- */ - - /* Open a new font instance and returns an instance handle */ - /* for it in `*instance'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_New_Instance( TT_Face face, - TT_Instance* instance ); - - - /* Set device resolution for a given instance. The values are */ - /* given in dpi (Dots Per Inch). Default is 96 in both directions. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_Resolutions( TT_Instance instance, - TT_UShort xResolution, - TT_UShort yResolution ); - - - /* Set the pointsize for a given instance. Default is 10pt. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_CharSize( TT_Instance instance, - TT_F26Dot6 charSize ); - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_CharSizes( TT_Instance instance, - TT_F26Dot6 charWidth, - TT_F26Dot6 charHeight ); - -#define TT_Set_Instance_PointSize( ins, ptsize ) \ - TT_Set_Instance_CharSize( ins, ptsize*64L ) - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_PixelSizes( TT_Instance instance, - TT_UShort pixelWidth, - TT_UShort pixelHeight, - TT_F26Dot6 pointSize ); - - - /* This function has been deprecated! Do not use it, as it */ - /* doesn't work reliably. You can perfectly control hinting */ - /* yourself when loading glyphs, then apply transforms as usual. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_Transform_Flags( TT_Instance instance, - TT_Bool rotated, - TT_Bool stretched ); - - - /* Return instance metrics in `metrics'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Instance_Metrics( TT_Instance instance, - TT_Instance_Metrics* metrics ); - - - /* Set an instance's generic pointer. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Set_Instance_Pointer( TT_Instance instance, - void* data ); - - - /* Get an instance's generic pointer. */ - - FT_EXPORT_DEF( void* ) - TT_Get_Instance_Pointer( TT_Instance instance ); - - - /* Close a given instance object, destroying all associated data. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Done_Instance( TT_Instance instance ); - - - - /* ----------------------- glyph management ----------------------- */ - - /* Create a new glyph object related to the given `face'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_New_Glyph( TT_Face face, - TT_Glyph* glyph ); - - - /* Discard (and destroy) a given glyph object. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Done_Glyph( TT_Glyph glyph ); - - -#define TTLOAD_SCALE_GLYPH 1 -#define TTLOAD_HINT_GLYPH 2 -#define TTLOAD_PEDANTIC 128 -#define TTLOAD_IGNORE_GLOBAL_ADVANCE_WIDTH 256 - -#define TTLOAD_DEFAULT (TTLOAD_SCALE_GLYPH | TTLOAD_HINT_GLYPH) - - - /* Load and process (scale/transform and hint) a glyph from the */ - /* given `instance'. The glyph and instance handles must be */ - /* related to the same face object. The glyph index can be */ - /* computed with a call to TT_Char_Index(). */ - /* */ - /* The 'load_flags' argument is a combination of the macros */ - /* TTLOAD_SCALE_GLYPH and TTLOAD_HINT_GLYPH. Hinting will be */ - /* applied only if the scaling is selected. */ - /* */ - /* If scaling is off (i.e., load_flags = 0), the returned */ - /* outlines are in EM square coordinates (also called FUnits), */ - /* extracted directly from the font with no hinting. Other */ - /* glyph metrics are also in FUnits. */ - /* */ - /* If scaling is on, the returned outlines are in fractional */ - /* pixel units (i.e. TT_F26Dot6 = 26.6 fixed floats). */ - /* */ - /* NOTE: The glyph index must be in the range 0..num_glyphs-1, */ - /* where `num_glyphs' is the total number of glyphs in */ - /* the font file (given in the face properties). */ - - FT_EXPORT_DEF( TT_Error ) - TT_Load_Glyph( TT_Instance instance, - TT_Glyph glyph, - TT_UShort glyphIndex, - TT_UShort loadFlags ); - - - /* Return glyph outline pointers in `outline'. Note that the returned */ - /* pointers are owned by the glyph object, and will be destroyed with */ - /* it. The client application should _not_ change the pointers. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Glyph_Outline( TT_Glyph glyph, - TT_Outline* outline ); - - - /* Copy the glyph metrics into `metrics'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Glyph_Metrics( TT_Glyph glyph, - TT_Glyph_Metrics* metrics ); - - - /* Copy the glyph's big metrics into `metrics'. */ - /* Necessary to obtain vertical metrics. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Glyph_Big_Metrics( TT_Glyph glyph, - TT_Big_Glyph_Metrics* metrics ); - - - /* Render the glyph into a bitmap, with given position offsets. */ - /* */ - /* Note: Only use integer pixel offsets to preserve the fine */ - /* hinting of the glyph and the `correct' anti-aliasing */ - /* (where vertical and horizontal stems aren't grayed). This */ - /* means that `xOffset' and `yOffset' must be multiples */ - /* of 64! */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Glyph_Bitmap( TT_Glyph glyph, - TT_Raster_Map* bitmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ); - - - /* Render the glyph into a pixmap, with given position offsets. */ - /* */ - /* Note: Only use integer pixel offsets to preserve the fine */ - /* hinting of the glyph and the `correct' anti-aliasing */ - /* (where vertical and horizontal stems aren't grayed). This */ - /* means that `xOffset' and `yOffset' must be multiples */ - /* of 64! */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Glyph_Pixmap( TT_Glyph glyph, - TT_Raster_Map* pixmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ); - - - - /* ----------------------- outline support ------------------------ */ - - /* Allocate a new outline. Reserve space for `numPoints' and */ - /* `numContours'. */ - - FT_EXPORT_DEF( TT_Error ) - TT_New_Outline( TT_UShort numPoints, - TT_Short numContours, - TT_Outline* outline ); - - - /* Release an outline. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Done_Outline( TT_Outline* outline ); - - - /* Copy an outline into another one. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Copy_Outline( TT_Outline* source, - TT_Outline* target ); - - - /* Render an outline into a bitmap. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Outline_Bitmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* bitmap ); - - - /* Render an outline into a pixmap. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Outline_Pixmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* pixmap ); - - - /* Return an outline's bounding box -- this function is slow as it */ - /* performs a complete scan-line process, without drawing, to get */ - /* the most accurate values. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Outline_BBox( TT_Outline* outline, - TT_BBox* bbox ); - - - /* Apply a transformation to a glyph outline. */ - - FT_EXPORT_DEF( void ) - TT_Transform_Outline( TT_Outline* outline, - TT_Matrix* matrix ); - - - /* Apply a translation to a glyph outline. */ - - FT_EXPORT_DEF( void ) - TT_Translate_Outline( TT_Outline* outline, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ); - - - /* Apply a transformation to a vector. */ - - FT_EXPORT_DEF( void ) - TT_Transform_Vector( TT_F26Dot6* x, - TT_F26Dot6* y, - TT_Matrix* matrix ); - - - /* Compute A*B/C with 64 bits intermediate precision. */ - - FT_EXPORT_DEF( TT_Long ) - TT_MulDiv( TT_Long A, - TT_Long B, - TT_Long C ); - - - /* Compute A*B/0x10000 with 64 bits intermediate precision. */ - /* Useful to multiply by a 16.16 fixed float value. */ - - FT_EXPORT_DEF( TT_Long ) - TT_MulFix( TT_Long A, - TT_Long B ); - - - /* ----------------- character mapping support --------------- */ - - /* Return the number of character mappings found in this file. */ - /* Returns -1 in case of failure (invalid face handle). */ - /* */ - /* DON'T USE THIS FUNCTION! IT HAS BEEN DEPRECATED! */ - /* */ - /* It is retained for backwards compatibility only and will */ - /* fail on 16bit systems. */ - /* */ - /* You can now get the charmap count in the `num_CharMaps' */ - /* field of a face's properties. */ - /* */ - - FT_EXPORT_DEF( int ) - TT_Get_CharMap_Count( TT_Face face ); - - - /* Return the ID of charmap number `charmapIndex' of a given face */ - /* used to enumerate the charmaps present in a TrueType file. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_CharMap_ID( TT_Face face, - TT_UShort charmapIndex, - TT_UShort* platformID, - TT_UShort* encodingID ); - - - /* Look up the character maps found in `face' and return a handle */ - /* for the one matching `platformID' and `platformEncodingID' */ - /* (see the TrueType specs relating to the `cmap' table for */ - /* information on these ID numbers). Returns an error code. */ - /* In case of failure, the handle is set to NULL and is invalid. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_CharMap( TT_Face face, - TT_UShort charmapIndex, - TT_CharMap* charMap ); - - - /* Translate a character code through a given character map */ - /* and return the corresponding glyph index to be used in */ - /* a TT_Load_Glyph() call. This function returns 0 in case */ - /* of failure. */ - - FT_EXPORT_DEF( TT_UShort ) - TT_Char_Index( TT_CharMap charMap, - TT_ULong charCode ); - - - - /* --------------------- names table support ------------------- */ - - /* Return the number of name strings found in the name table. */ - /* Returns -1 in case of failure (invalid face handle). */ - /* */ - /* DON'T USE THIS FUNCTION! IT HAS BEEN DEPRECATED! */ - /* */ - /* It is retained for backwards compatibility only and will */ - /* fail on 16bit systems. */ - /* */ - /* You can now get the number of name strings in a face with */ - /* the `num_Names' field of its properties. */ - - FT_EXPORT_DEF( int ) - TT_Get_Name_Count( TT_Face face ); - - - /* Return the ID of the name number `nameIndex' of a given face */ - /* used to enumerate the charmaps present in a TrueType file. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Name_ID( TT_Face face, - TT_UShort nameIndex, - TT_UShort* platformID, - TT_UShort* encodingID, - TT_UShort* languageID, - TT_UShort* nameID ); - - - /* Return the address and length of the name number `nameIndex' */ - /* of a given face in the variables `stringPtr' resp. `length'. */ - /* The string is part of the face object and shouldn't be */ - /* written to or released. */ - /* */ - /* Note that for an invalid platform ID a null pointer will be */ - /* returned. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Get_Name_String( TT_Face face, - TT_UShort nameIndex, - TT_String** stringPtr, - TT_UShort* length ); - - -#ifdef __cplusplus - } -#endif - -#endif /* FREETYPE_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/fterrid.h b/Build/source/libs/freetype/lib/fterrid.h deleted file mode 100644 index 54cd150d8cf..00000000000 --- a/Build/source/libs/freetype/lib/fterrid.h +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************* - * - * fterrid.h - * - * TrueType Error ID definitions - * - * 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 FREETYPE_H -#error "Don't include this file! Use freetype.h instead." -#endif - -#ifndef FTERRID_H -#define FTERRID_H - - /************************ error codes declaration **************/ - - /* The error codes are grouped in 'classes' used to indicate the */ - /* 'level' at which the error happened. */ - /* The class is given by an error code's high byte. */ - - - /* ------------- Success is always 0 -------- */ - -#define TT_Err_Ok 0 - - - /* -------- High-level API error codes ------ */ - -#define TT_Err_Invalid_Face_Handle 0x001 -#define TT_Err_Invalid_Instance_Handle 0x002 -#define TT_Err_Invalid_Glyph_Handle 0x003 -#define TT_Err_Invalid_CharMap_Handle 0x004 -#define TT_Err_Invalid_Result_Address 0x005 -#define TT_Err_Invalid_Glyph_Index 0x006 -#define TT_Err_Invalid_Argument 0x007 -#define TT_Err_Could_Not_Open_File 0x008 -#define TT_Err_File_Is_Not_Collection 0x009 - -#define TT_Err_Table_Missing 0x00A -#define TT_Err_Invalid_Horiz_Metrics 0x00B -#define TT_Err_Invalid_CharMap_Format 0x00C -#define TT_Err_Invalid_PPem 0x00D -#define TT_Err_Invalid_Vert_Metrics 0x00E - -#define TT_Err_Invalid_File_Format 0x010 - -#define TT_Err_Invalid_Engine 0x020 -#define TT_Err_Too_Many_Extensions 0x021 -#define TT_Err_Extensions_Unsupported 0x022 -#define TT_Err_Invalid_Extension_Id 0x023 - -#define TT_Err_No_Vertical_Data 0x030 - -#define TT_Err_Max_Profile_Missing 0x080 -#define TT_Err_Header_Table_Missing 0x081 -#define TT_Err_Horiz_Header_Missing 0x082 -#define TT_Err_Locations_Missing 0x083 -#define TT_Err_Name_Table_Missing 0x084 -#define TT_Err_CMap_Table_Missing 0x085 -#define TT_Err_Hmtx_Table_Missing 0x086 -#define TT_Err_OS2_Table_Missing 0x087 -#define TT_Err_Post_Table_Missing 0x088 -#define TT_Err_Glyf_Table_Missing 0x089 - - - /* -------- Memory component error codes ---- */ - - /* this error indicates that an operation cannot */ - /* be performed due to memory exhaustion. */ - -#define TT_Err_Out_Of_Memory 0x100 - - - /* -------- File component error codes ------ */ - - /* these error codes indicate that the file could */ - /* not be accessed properly. Usually, this means */ - /* a broken font file! */ - -#define TT_Err_Invalid_File_Offset 0x200 -#define TT_Err_Invalid_File_Read 0x201 -#define TT_Err_Invalid_Frame_Access 0x202 - - - /* -------- Glyph loader error codes -------- */ - - /* Produced only by the glyph loader, these error */ - /* codes indicate a broken glyph in a font file. */ - -#define TT_Err_Too_Many_Points 0x300 -#define TT_Err_Too_Many_Contours 0x301 -#define TT_Err_Invalid_Composite 0x302 -#define TT_Err_Too_Many_Ins 0x303 -#define TT_Err_Too_Many_FDefs 0x304 - - - /* --- bytecode interpreter error codes ----- */ - - /* These error codes are produced by the TrueType */ - /* bytecode interpreter. They usually indicate a */ - /* broken font file, a broken glyph within a font */ - /* file, or a bug in the interpreter! */ - -#define TT_Err_Invalid_Opcode 0x400 -#define TT_Err_Too_Few_Arguments 0x401 -#define TT_Err_Stack_Overflow 0x402 -#define TT_Err_Code_Overflow 0x403 -#define TT_Err_Bad_Argument 0x404 -#define TT_Err_Divide_By_Zero 0x405 -#define TT_Err_Storage_Overflow 0x406 -#define TT_Err_Cvt_Overflow 0x407 -#define TT_Err_Invalid_Reference 0x408 -#define TT_Err_Invalid_Distance 0x409 -#define TT_Err_Interpolate_Twilight 0x40A -#define TT_Err_Debug_OpCode 0x40B -#define TT_Err_ENDF_In_Exec_Stream 0x40C -#define TT_Err_Out_Of_CodeRanges 0x40D -#define TT_Err_Nested_DEFS 0x40E -#define TT_Err_Invalid_CodeRange 0x40F -#define TT_Err_Invalid_Displacement 0x410 -#define TT_Err_Execution_Too_Long 0x411 - - - /* ------ internal failure error codes ----- */ - - /* These error codes are produced when an incoherent */ - /* library state has been detected. These reflect a */ - /* severe bug in the engine! (Or a major overwrite */ - /* of your application into the library's data.) */ - -#define TT_Err_Nested_Frame_Access 0x500 -#define TT_Err_Invalid_Cache_List 0x501 -#define TT_Err_Could_Not_Find_Context 0x502 -#define TT_Err_Unlisted_Object 0x503 - - - /* ---- scan-line converter error codes ----- */ - - /* These error codes are produced by the raster component. */ - /* They indicate that an outline structure was incoherently */ - /* setup, or that you're trying to render an horribly */ - /* complex glyph! */ - -#define TT_Err_Raster_Pool_Overflow 0x600 -#define TT_Err_Raster_Negative_Height 0x601 -#define TT_Err_Raster_Invalid_Value 0x602 -#define TT_Err_Raster_Not_Initialized 0x603 - -#endif /* FTERRID_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ftnameid.h b/Build/source/libs/freetype/lib/ftnameid.h deleted file mode 100644 index eb804211b9d..00000000000 --- a/Build/source/libs/freetype/lib/ftnameid.h +++ /dev/null @@ -1,877 +0,0 @@ -/******************************************************************* - * - * ftnameid.h - * - * TrueType Name ID definitions - * - * 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 FREETYPE_H -#error "Don't include this file! Use freetype.h instead." -#endif - -#ifndef FTNAMEID_H -#define FTNAMEID_H - -/* - * possible values for the 'Platform' identifier code in the name - * records of the TTF "name" table - */ - -#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 - - -/* - * possible values of the platform specific encoding identifier field in - * the name records of the TTF "name" table when the 'Platform' identifier - * code is TT_PLATFORM_APPLE_UNICODE - */ - -#define TT_APPLE_ID_DEFAULT 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, BMP characters */ -#define TT_APPLE_ID_UNICODE_32 4 /* 3.1 or later, full repertoire */ - - -/* - * possible values of the platform specific encoding identifier field in - * the name records of the TTF "name" table when the 'Platform' identifier - * code is TT_PLATFORM_MACINTOSH - */ - -#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 - - -/* - * possible values of the platform specific encoding identifier field in - * the name records of the TTF "name" table when the 'Platform' identifier - * code is TT_PLATFORM_ISO - * - * This use is now deprecated - */ - -#define TT_ISO_ID_7BIT_ASCII 0 -#define TT_ISO_ID_10646 1 -#define TT_ISO_ID_8859_1 2 - - -/* - * possible values of the platform specific encoding identifier field in - * the name records of the TTF "name" table when the 'Platform' identifier - * code is TT_PLATFORM_MICROSOFT - */ - -#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 /* full repertoire, UTF-32 */ - - - -/* - * possible values of the language identifier field in the name records of - * the TTF "name" table when 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 when 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 - - /* this seems to be inconsistant... :-( - * here is the current "official" way: */ -#define TT_MS_LANGID_TIBETAN_BHUTAN 0x0451 - /* and now 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. AL 2001-11-10. */ - - /* don't ask me what this one means... :-( - * note it is currently commented out -#define TT_MS_LANGID_GREEK_GREECE2 0x2008 - * end of comment to avoid strange code */ - -#define TT_MS_LANGID_SPANISH_UNITED_STATES 0x540a - /* these following two blatently violate MS specs, by using a sublang>0x1F */ -#define TT_MS_LANGID_SPANISH_LATIN_AMERICA 0xE40a -#define TT_MS_LANGID_FRENCH_NORTH_AFRICA 0xE40c - -#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) ISO639-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. - */ - -/* 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 (also named `CJK Miscellaneous') */ -#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 really means: U+10000-U+10FFFD */ - -/* 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 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+FEFF, - U+FFF0-U+FFFF */ -/* 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__ ) \ - || defined( M_I86 ) && !defined( _M_I86 ) -#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 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 /* ndef HAVE_LIMIT_ON_IDENTS */ - -#endif /* FTNAMEID_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttapi.c b/Build/source/libs/freetype/lib/ttapi.c deleted file mode 100644 index a2d86c99434..00000000000 --- a/Build/source/libs/freetype/lib/ttapi.c +++ /dev/null @@ -1,2220 +0,0 @@ -/******************************************************************* - * - * ttapi.c - * - * High-level interface implementation - * - * 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. - * - * Notes: - * - * This file is used to implement most of the functions that are - * defined in the file "freetype.h". However, two functions are - * implemented elsewhere : - * - * TT_MulDiv and TT_MulFix are in ttcalc.h/ttcalc.c - * - ******************************************************************/ - -#include "ttconfig.h" - -#include "freetype.h" -#include "ttengine.h" -#include "ttcalc.h" -#include "ttmemory.h" -#include "ttcache.h" -#include "ttfile.h" -#include "ttobjs.h" -#include "ttload.h" -#include "ttgload.h" -#include "ttraster.h" -#include "ttextend.h" - - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_api - - -#ifdef TT_STATIC_RASTER -#define RAS_OPS /* void */ -#define RAS_OP /* void */ -#else -#define RAS_OPS ((TRaster_Instance*)_engine->raster_component), -#define RAS_OP ((TRaster_Instance*)_engine->raster_component) -#endif /* TT_STATIC_RASTER */ - - -#define RENDER_Glyph( glyph, target ) \ - Render_Glyph( RAS_OPS glyph, target ) - -#define RENDER_Gray_Glyph( glyph, target, palette ) \ - Render_Gray_Glyph( RAS_OPS glyph, target, palette ) - - - -/******************************************************************* - * - * Function : TT_FreeType_Version - * - * Description : Returns the major and minor version of the library. - * - * Input : major, minor addresses - * - * Output : Error code. - * - * MT-Note : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_FreeType_Version( int *major, - int *minor ) - { - if ( !major || !minor ) - return TT_Err_Invalid_Argument; - - *major = TT_FREETYPE_MAJOR; - *minor = TT_FREETYPE_MINOR; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Init_FreeType - * - * Description : The library's engine initializer. This function - * must be called prior to any call. - * - * Input : engine pointer to a FreeType engine instance - * - * Output : Error code. - * - * MT-Note : This function should be called each time you want - * to create a TT_Engine. It is not necessarily thread - * safe depending on the implementations of ttmemory, - * ttfile and ttmutex, so take care. Their default - * implementations are safe, however. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Init_FreeType( TT_Engine* engine ) - { - PEngine_Instance _engine; - - TT_Error error; - int n; - - - /* first of all, initialize memory sub-system */ - error = TTMemory_Init(); - if ( error ) - return error; - - /* Allocate engine instance */ - if ( ALLOC( _engine, sizeof ( TEngine_Instance ) ) ) - return error; - -#undef TT_FAIL -#define TT_FAIL( x ) ( error = x (_engine) ) != TT_Err_Ok - - /* Initalize components */ - if ( TT_FAIL( TTFile_Init ) || - TT_FAIL( TTCache_Init ) || -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - TT_FAIL( TTExtend_Init ) || -#endif - TT_FAIL( TTObjs_Init ) || - TT_FAIL( TTRaster_Init ) ) - goto Fail; - -#undef TT_FAIL - - /* set the gray palette defaults: 0 to 4 */ - for ( n = 0; n < 5; n++ ) - _engine->raster_palette[n] = (Byte)n; /* Conversion ok, some warn */ - - /* create the engine lock */ - MUTEX_Create( _engine->lock ); - - HANDLE_Set( *engine, _engine ); - return TT_Err_Ok; - - Fail: - TT_Done_FreeType( *engine ); - HANDLE_Set( *engine, NULL ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Done_FreeType - * - * Description : The library's engine finalizer. This function - * will discard all active face and glyph objects - * from the heap. - * - * Input : engine FreeType engine instance - * - * Output : Error code. - * - * MT-Note : Destroys an engine. Not necessarily thread-safe - * depending on the implementations of ttmemory, - * ttfile and ttmutex. The default implementations - * are safe, however. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_FreeType( TT_Engine engine ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - - if ( !_engine ) - return TT_Err_Ok; - - MUTEX_Destroy( _engine->lock ); - - TTRaster_Done( _engine ); - TTObjs_Done ( _engine ); -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - TTExtend_Done( _engine ); -#endif - TTCache_Done ( _engine ); - TTFile_Done ( _engine ); - FREE( _engine ); - - TTMemory_Done(); - - return TT_Err_Ok; - } - - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - -/******************************************************************* - * - * Function : TT_Set_Raster_Gray_Palette - * - * Description : Sets the gray-levels palette used for font - * smoothing. - * - * Input : engine FreeType engine instance - * palette address of palette (a 5 byte array) - * - * Output : Invalid argument if 'palette' is NULL. - * - * MT-Note: NO! Unprotected modification of an engine's palette. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Raster_Gray_Palette( TT_Engine engine, - Byte* palette ) - { - int i; - - - if ( !palette ) - return TT_Err_Invalid_Argument; - - for ( i = 0; i < 5; i++ ) - HANDLE_Engine( engine )->raster_palette[i] = (Byte)palette[i]; - - return TT_Err_Ok; - } - -#endif /* TT_CONFIG_OPTION_GRAY_SCALING */ - - -/******************************************************************* - * - * Function : TT_Open_Face - * - * Description : Creates a new face object from a given font file. - * - * Input : engine FreeType engine instance - * fontPathName the font file's pathname - * face adress of returned face handle - * - * Output : Error code. - * - * Note : The face handle is set to NULL in case of failure. - * - * MT-Note : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Open_Face( TT_Engine engine, - const TT_Text* fontPathName, - TT_Face* face ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - TFont_Input input; - TT_Error error; - TT_Stream stream; - PFace _face; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - /* open the file */ - error = TT_Open_Stream( fontPathName, &stream ); - if ( error ) - return error; - - input.stream = stream; - input.fontIndex = 0; - input.engine = _engine; - - /* Create and load the new face object - this is thread-safe */ - error = CACHE_New( _engine->objs_face_cache, - _face, - &input ); - - /* Set the handle */ - HANDLE_Set( *face, _face ); - - if ( error ) - goto Fail; - - return TT_Err_Ok; - - Fail: - TT_Close_Stream( &stream ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Open_Collection - * - * Description : Creates a new face object from a given font file. - * - * Input : engine FreeType engine instance - * collectionPathName the font file's pathname - * fontIndex index of font in TrueType collection - * face adress of returned face handle - * - * Output : Error code. - * - * Note : The face handle is set to NULL in case of failure. - * - * MT-Note : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Open_Collection( TT_Engine engine, - const TT_Text* collectionPathName, - TT_ULong fontIndex, - TT_Face* face ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - - TFont_Input input; - TT_Error error; - TT_Stream stream; - PFace _face; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - /* open the file */ - error = TT_Open_Stream( collectionPathName, &stream ); - if ( error ) - return error; - - input.stream = stream; - input.fontIndex = fontIndex; - input.engine = _engine; - - /* Create and load the new face object - this is thread-safe */ - error = CACHE_New( _engine->objs_face_cache, - _face, - &input ); - - /* Set the handle */ - HANDLE_Set( *face, _face ); - - if ( error ) - goto Fail; - - return TT_Err_Ok; - - Fail: - TT_Close_Stream( &stream ); - - return error; - } - - -/******************************************************************* - * - * Function : TT_Get_Face_Properties - * - * Description : Returns face properties. - * - * Input : face the face handle - * properties address of target properties record - * - * Output : Error code. - * - * Note : Currently, max_Faces is always set to 0. - * - * MT-Note : YES! Reads only permanent data. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Face_Properties( TT_Face face, - TT_Face_Properties* properties ) - { - PFace _face = HANDLE_Face( face ); - - - if ( !_face ) - return TT_Err_Invalid_Face_Handle; - - properties->num_Glyphs = _face->numGlyphs; - properties->max_Points = _face->maxPoints; - properties->max_Contours = _face->maxContours; - properties->num_CharMaps = _face->numCMaps; - properties->num_Names = _face->nameTable.numNameRecords; - - if ( _face->ttcHeader.DirCount == 0 ) - properties->num_Faces = 1; - else - properties->num_Faces = _face->ttcHeader.DirCount; - - properties->header = &_face->fontHeader; - properties->horizontal = &_face->horizontalHeader; - - if ( _face->verticalInfo ) - properties->vertical = &_face->verticalHeader; - else - properties->vertical = NULL; - - properties->os2 = &_face->os2; - properties->postscript = &_face->postscript; - properties->hdmx = &_face->hdmx; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Set_Face_Pointer - * - * Description : Each face object has one pointer, which use is - * reserved to client applications. The TrueType - * engine never accesses or uses this field. - * - * This function is used to set the pointer. - * - * Input : face the given face handle - * data the generic pointer value - * - * Output : Error code. - * - * MT-Note : NO! But this function is reserved to "enlightened" - * developers, so it shouldn't be a problem. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Face_Pointer( TT_Face face, - void* data ) - { - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - else - faze->generic = data; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Face_Pointer - * - * Description : Each face object has one pointer, which use is - * reserved to client applications. The TrueType - * engine never access or use this field. - * - * This function is used to read the pointer. - * - * Input : face the given face handle - * data the generic pointer value - * - * Output : Error code. - * - * MT-Note : NO! But this function is reserved to "enlightened" - * developers, so it shouldn't be a problem. - * - ******************************************************************/ - - FT_EXPORT_FUNC( void* ) - TT_Get_Face_Pointer( TT_Face face ) - { - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return NULL; - else - return faze->generic; - } - - -/******************************************************************* - * - * Function : TT_Get_Face_Metrics - * - * Description : This function returns the original horizontal AND - * vertical metrics as found in the "hmtx" and "vmtx" - * tables. These are the glyphs' left-side-bearings - * and advance widths (horizontal), as well as top - * side bearings and advance heights (vertical). - * - * All are expressed in FONT UNITS, a.k.a. EM - * units. - * - * Input : face The given face handle. - * first Index of first glyph in table. - * last Index of last glyph in table. - * - * leftBearings A pointer to an array of TT_Shorts where the - * left side bearings for the glyphs 'first' - * to 'last' will be returned. If these metrics - * don't interest you, simply set it to NULL. - * - * widths A pointer to an array of TT_UShorts - * where the advance widths for the glyphs - * 'first' to 'last' will be returned. If these - * metrics don't interest you, simply set it - * to NULL. - * - * topBearings A pointer to an array of TT_Shorts where the - * top side bearings for the glyphs 'first' - * to 'last' will be returned. If these metrics - * don't interest you, simply set it to NULL. - * - * heights A pointer to an array of TT_UShorts - * where the advance heights for the glyphs - * 'first' to 'last' will be returned. If these - * metrics don't interest you, simply set it - * to NULL. - * - * Output : Error code. - * - * IMPORTANT NOTE : - * - * As vertical metrics are optional in a TrueType font, this - * function will return an error ( TT_Err_No_Vertical_Data ) - * whenever this function is called on such a face with non-NULL - * 'topBearings' or 'heights' arguments. - * - * When a font has no vertical data, the 'vertical' field in its - * properties structure is set to NULL. - * - * MT-Note : YES! Reads only permanent data. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Face_Metrics( TT_Face face, - TT_UShort firstGlyph, - TT_UShort lastGlyph, - TT_Short* leftBearings, - TT_UShort* widths, - TT_Short* topBearings, - TT_UShort* heights ) - { - PFace _face = HANDLE_Face( face ); - UInt num; - - - if ( !_face ) - return TT_Err_Invalid_Face_Handle; - - /* Check the glyph range */ - if ( lastGlyph >= _face->numGlyphs || firstGlyph > lastGlyph ) - return TT_Err_Invalid_Argument; - - num = lastGlyph - firstGlyph; /* number of elements-1 in each array */ - - /* store the left side bearings and advance widths first */ - { - UShort n; - Short left_bearing; - UShort advance_width; - - - for ( n = 0; n <= num; n++ ) - { - TT_Get_Metrics( &_face->horizontalHeader, - firstGlyph + n, &left_bearing, &advance_width ); - - if ( leftBearings ) leftBearings[n] = left_bearing; - if ( widths ) widths[n] = advance_width; - } - } - - /* check for vertical data if topBearings or heights is non-NULL */ - if ( !topBearings && !heights ) - return TT_Err_Ok; - - if ( !_face->verticalInfo ) - return TT_Err_No_Vertical_Data; - - /* store the top side bearings */ - { - UShort n; - Short top_bearing; - UShort advance_height; - - for ( n = 0; n <= num; n++ ) - { - TT_Get_Metrics( (TT_Horizontal_Header*)&_face->verticalHeader, - firstGlyph + n, &top_bearing, &advance_height ); - - if ( topBearings ) topBearings[n] = top_bearing; - if ( heights ) heights[n] = advance_height; - } - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Flush_Face - * - * Description : This function is used to close an active face's - * file handle or descriptor. This is useful to save - * system resources, if your application uses tons - * of fonts. - * - * Input : face the given face handle - * - * Output : Error code. - * - * MT-Note : YES! (If ttfile is.) - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Flush_Face( TT_Face face ) - { - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - else - return TT_Flush_Stream( &faze->stream ); - } - - -/******************************************************************* - * - * Function : TT_Close_Face - * - * Description : Closes an opened face object. This function - * will destroy all objects associated to the - * face, except the glyphs. - * - * Input : face the given face handle - * - * Output : Error code. - * - * NOTE : The handle is set to NULL on exit. - * - * MT-Note : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Close_Face( TT_Face face ) - { - PFace _face = HANDLE_Face( face ); - - - if ( !_face ) - return TT_Err_Invalid_Face_Handle; - - TT_Close_Stream( &_face->stream ); - - /* delete the face object -- this is thread-safe */ - return CACHE_Done( _face->engine->objs_face_cache, _face ); - } - - -/******************************************************************* - * - * Function : TT_New_Instance - * - * Description : Creates a new instance from a given face. - * - * Input : face parent face handle - * instance address of instance handle - * - * Output : Error code. - * - * Note : The handle is set to NULL in case of failure. - * - * MT-Note : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_New_Instance( TT_Face face, - TT_Instance* instance ) - { - TT_Error error; - PFace _face = HANDLE_Face( face ); - PInstance _ins; - - - if ( !_face ) - return TT_Err_Invalid_Face_Handle; - - /* get a new instance from the face's cache -- this is thread-safe */ - error = CACHE_New( &_face->instances, _ins, _face ); - - HANDLE_Set( *instance, _ins ); - - if ( !error ) - { - error = Instance_Init( _ins ); - if ( error ) - { - HANDLE_Set( *instance, NULL ); - CACHE_Done( &_face->instances, _ins ); - } - } - - return error; - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_Resolutions - * - * Description : Resets an instance to a new device resolution. - * - * Input : instance the instance handle - * xResolution new horizontal device resolution in dpi - * yResolution new vertical device resolution in dpi - * - * Output : Error code. - * - * Note : There is no check for overflow; with other words, - * the product of glyph dimensions times the device - * resolutions must have reasonable values. - * - * MT-Note : You should set the charsize or pixel size immediately - * after this call in multi-threaded programs. This will - * force the instance data to be resetted. Otherwise, you - * may encounter corruption when loading two glyphs from - * the same instance concurrently! - * - * Happily, 99.99% will do just that :-) - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_Resolutions( TT_Instance instance, - TT_UShort xResolution, - TT_UShort yResolution ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - ins->metrics.x_resolution = xResolution; - ins->metrics.y_resolution = yResolution; - ins->valid = FALSE; - - /* In the case of a thread-safe implementation, we immediately */ - /* call Instance_Reset in order to change the instance's variable */ - - /* In the case of a non-threaded build, we simply set the 'valid' */ - /* flag to FALSE, which will force the instance's resetting at */ - /* the next glyph loading */ - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_CharSizes - * - * Description : Resets an instance to new point size. - * - * Input : instance the instance handle - * charWidth the new width in 26.6 char points - * charHeight the new height in 26.6 char points - * - * Output : Error code. - * - * Note : There is no check for overflow; with other words, - * the product of glyph dimensions times the device - * resolution must have reasonable values. - * - * MT-Note : NO! This should be called only when setting/resetting - * instances, so there is no need to protect. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_CharSizes( TT_Instance instance, - TT_F26Dot6 charWidth, - TT_F26Dot6 charHeight ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - if ( charWidth < 1 * 64 ) - charWidth = 1 * 64; - - if ( charHeight < 1 * 64 ) - charHeight = 1 * 64; - - ins->metrics.x_scale1 = ( charWidth * ins->metrics.x_resolution ) / 72; - ins->metrics.x_scale2 = ins->owner->fontHeader.Units_Per_EM; - - ins->metrics.y_scale1 = ( charHeight * ins->metrics.y_resolution ) / 72; - ins->metrics.y_scale2 = ins->owner->fontHeader.Units_Per_EM; - - if ( ins->owner->fontHeader.Flags & 8 ) - { - ins->metrics.x_scale1 = (ins->metrics.x_scale1+32) & -64; - ins->metrics.y_scale1 = (ins->metrics.y_scale1+32) & -64; - } - - ins->metrics.x_ppem = ins->metrics.x_scale1 / 64; - ins->metrics.y_ppem = ins->metrics.y_scale1 / 64; - - if ( charWidth > charHeight ) - ins->metrics.pointSize = charWidth; - else - ins->metrics.pointSize = charHeight; - - ins->valid = FALSE; - - return Instance_Reset( ins ); - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_CharSize - * - * Description : Resets an instance to new point size. - * - * Input : instance the instance handle - * charSize the new character size in 26.6 char points - * - * Output : Error code. - * - * Note : There is no check for overflow; with other words, - * the product of glyph dimensions times the device - * resolution must have reasonable values. - * - * MT-Note : NO! This should be called only when setting/resetting - * instances, so there is no need to protect. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_CharSize( TT_Instance instance, - TT_F26Dot6 charSize ) - { - return TT_Set_Instance_CharSizes( instance, charSize, charSize ); - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_PixelSizes - * - * Description : Resets an instance to new pixel sizes - * - * Input : instance the instance handle - * pixelWidth the new width in pixels - * pixelHeight the new height in pixels - * - * Output : Error code. - * - * Note : There is no check for overflow; with other words, - * the product of glyph dimensions times the device - * resolution must have reasonable values. - * - * MT-Note : NO! This should be called only when setting/resetting - * instances, so there is no need to protect. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_PixelSizes( TT_Instance instance, - TT_UShort pixelWidth, - TT_UShort pixelHeight, - TT_F26Dot6 pointSize ) - { - PInstance ins = HANDLE_Instance( instance ); - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - if ( pixelWidth < 1 ) pixelWidth = 1; - if ( pixelHeight < 1 ) pixelHeight = 1; - - ins->metrics.x_ppem = pixelWidth; - ins->metrics.y_ppem = pixelHeight; - ins->metrics.pointSize = pointSize; - - ins->metrics.x_scale1 = ins->metrics.x_ppem * 64L; - ins->metrics.x_scale2 = ins->owner->fontHeader.Units_Per_EM; - ins->metrics.y_scale1 = ins->metrics.y_ppem * 64L; - ins->metrics.y_scale2 = ins->owner->fontHeader.Units_Per_EM; - - ins->valid = FALSE; - - return Instance_Reset( ins ); - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_Transform_Flags - * - * Description : Informs the interpreter about the transformations - * that will be applied to the rendered glyphs. - * - * Input : instance the instance handle - * rotated set to TRUE if the glyph are rotated - * stretched set to TRUE if the glyph are stretched - * - * Output : Error code. - * - * Note : This function is deprecated! It's much better to - * control hinting manually when calling TT_Load_Glyph - * than relying on the font programs... - * - * Never use it, unless calling for trouble ;-) - * - * MT-Note : NO! This should be called only when setting/resetting - * instances, so there is no need to protect. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_Transform_Flags( TT_Instance instance, - TT_Bool rotated, - TT_Bool stretched ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - ins->metrics.rotated = rotated; - ins->metrics.stretched = stretched; - ins->valid = FALSE; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Instance_Metrics - * - * Description : Returns instance metrics. - * - * Input : instance the instance handle - * metrics address of target instance metrics record - * - * Output : Error code. - * - * MT-Note : YES! Reads only semi-permanent data. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Instance_Metrics( TT_Instance instance, - TT_Instance_Metrics* metrics ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - if ( !ins->valid ) - Instance_Reset( ins ); - - metrics->pointSize = ins->metrics.pointSize; - - metrics->x_scale = TT_MulDiv( 0x10000, - ins->metrics.x_scale1, - ins->metrics.x_scale2 ); - - metrics->y_scale = TT_MulDiv( 0x10000, - ins->metrics.y_scale1, - ins->metrics.y_scale2 ); - - metrics->x_resolution = ins->metrics.x_resolution; - metrics->y_resolution = ins->metrics.y_resolution; - metrics->x_ppem = ins->metrics.x_ppem; - metrics->y_ppem = ins->metrics.y_ppem; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Set_Instance_Pointer - * - * Description : Each instance has one pointer, which use is - * reserved to client applications. The TrueType - * engine never accesses or uses this field. - * - * This function is used to set the pointer. - * - * Input : face the given face handle - * data the generic pointer value - * - * Output : Error code. - * - * MT-Note : NO! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Set_Instance_Pointer( TT_Instance instance, - void* data ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - else - ins->generic = data; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Instance_Pointer - * - * Description : Each instance has one pointer, which use is - * reserved to client applications. The TrueType - * engine never accesses or uses this field. - * - * This function is used to read the pointer. - * - * Input : face the given face handle - * data the generic pointer value - * - * Output : Error code. - * - * MT-Safe : NO! - * - ******************************************************************/ - - FT_EXPORT_FUNC( void* ) - TT_Get_Instance_Pointer( TT_Instance instance ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return NULL; - else - return ins->generic; - } - - -/******************************************************************* - * - * Function : TT_Done_Instance - * - * Description : Closes a given instance. - * - * Input : instance address of instance handle - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Instance( TT_Instance instance ) - { - PInstance ins = HANDLE_Instance( instance ); - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - /* delete the instance -- this is thread-safe */ - return CACHE_Done( &ins->owner->instances, ins ); - } - - -/******************************************************************* - * - * Function : TT_New_Glyph - * - * Description : Creates a new glyph object related to a given - * face. - * - * Input : face the face handle - * glyph address of target glyph handle - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_New_Glyph( TT_Face face, - TT_Glyph* glyph ) - { - TT_Error error; - PFace _face = HANDLE_Face( face ); - PGlyph _glyph; - - - if ( !_face ) - return TT_Err_Invalid_Face_Handle; - - /* get a new glyph from the face's cache -- this is thread-safe */ - error = CACHE_New( &_face->glyphs, _glyph, _face ); - - HANDLE_Set( *glyph, _glyph ); - - return error; - } - - -/******************************************************************* - * - * Function : TT_Done_Glyph - * - * Description : Destroys a given glyph object. - * - * Input : glyph the glyph handle - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Glyph( TT_Glyph glyph ) - { - PGlyph _glyph = HANDLE_Glyph( glyph ); - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - /* delete the engine -- this is thread-safe */ - return CACHE_Done( &_glyph->face->glyphs, _glyph ); - } - - -/******************************************************************* - * - * Function : TT_Load_Glyph - * - * Description : Loads a glyph. - * - * Input : instance the instance handle - * glyph the glyph handle - * glyphIndex the glyph index - * loadFlags flags controlling how to load the glyph - * (none, scaled, hinted, both) - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Load_Glyph( TT_Instance instance, - TT_Glyph glyph, - TT_UShort glyphIndex, - TT_UShort loadFlags ) - { - PInstance _ins; - PGlyph _glyph; - TT_Error error; - - - _ins = HANDLE_Instance( instance ); - - if ( !_ins ) - loadFlags &= ~(TTLOAD_SCALE_GLYPH | TTLOAD_HINT_GLYPH); - - if ( (loadFlags & TTLOAD_SCALE_GLYPH) == 0 ) - _ins = 0; - - _glyph = HANDLE_Glyph( glyph ); - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - if ( _ins ) - { - if ( _ins->owner != _glyph->face ) - return TT_Err_Invalid_Face_Handle; - - if ( !_ins->valid ) - { - /* This code can only be called in non thread-safe builds */ - error = Instance_Reset( _ins ); - if ( error ) - return error; - } - } - - return Load_TrueType_Glyph( _ins, _glyph, glyphIndex, loadFlags ); - } - - -/******************************************************************* - * - * Function : TT_Get_Glyph_Outline - * - * Description : Returns the glyph's outline data. - * - * Input : glyph the glyph handle - * outline address where the glyph outline will be returned - * - * Output : Error code. - * - * MT-Safe : YES! Reads only semi-permanent data. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Glyph_Outline( TT_Glyph glyph, - TT_Outline* outline ) - { - PGlyph _glyph = HANDLE_Glyph( glyph ); - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - *outline = _glyph->outline; - outline->owner = FALSE; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Glyph_Metrics - * - * Description : Extracts the glyph's horizontal metrics information. - * - * Input : glyph glyph object handle - * metrics address where metrics will be returned - * - * Output : Error code. - * - * MT-Safe : NO! Glyph containers can't be shared. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Glyph_Metrics( TT_Glyph glyph, - TT_Glyph_Metrics* metrics ) - { - PGlyph _glyph = HANDLE_Glyph( glyph ); - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - metrics->bbox = _glyph->metrics.bbox; - metrics->bearingX = _glyph->metrics.horiBearingX; - metrics->bearingY = _glyph->metrics.horiBearingY; - metrics->advance = _glyph->metrics.horiAdvance; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Glyph_Big_Metrics - * - * Description : Extracts the glyph's big metrics information. - * - * Input : glyph glyph object handle - * metrics address where big metrics will be returned - * - * Output : Error code. - * - * MT-Safe : NO! Glyph containers can't be shared. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Glyph_Big_Metrics( TT_Glyph glyph, - TT_Big_Glyph_Metrics* metrics ) - { - PGlyph _glyph = HANDLE_Glyph( glyph ); - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - *metrics = _glyph->metrics; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Glyph_Bitmap - * - * Description : Produces a bitmap from a glyph outline. - * - * Input : glyph the glyph container's handle - * bitmap target bitmap description block - * xOffset x offset in fractional pixels (26.6 format) - * yOffset y offset in fractional pixels (26.6 format) - * - * Output : Error code. - * - * Note : Only use integer pixel offsets if you want to preserve - * the fine hints applied to the outline. This means that - * xOffset and yOffset must be multiples of 64! - * - * MT-Safe : NO! Glyph containers can't be shared. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Glyph_Bitmap( TT_Glyph glyph, - TT_Raster_Map* bitmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ) - { - PEngine_Instance _engine; - TT_Engine engine; - TT_Error error; - PGlyph _glyph = HANDLE_Glyph( glyph ); - - TT_Outline outline; - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - _engine = _glyph->face->engine; - HANDLE_Set( engine, _engine ); - - outline = _glyph->outline; - /* XXX : For now, use only dropout mode 2 */ - /* outline.dropout_mode = _glyph->scan_type; */ - outline.dropout_mode = 2; - - TT_Translate_Outline( &outline, xOffset, yOffset ); - error = TT_Get_Outline_Bitmap( engine, &outline, bitmap ); - TT_Translate_Outline( &outline, -xOffset, -yOffset ); - - return error; - } - - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - -/******************************************************************* - * - * Function : TT_Get_Glyph_Pixmap - * - * Description : Produces a grayscaled pixmap from a glyph - * outline. - * - * Input : glyph the glyph container's handle - * pixmap target pixmap description block - * xOffset x offset in fractional pixels (26.6 format) - * yOffset y offset in fractional pixels (26.6 format) - * - * Output : Error code. - * - * Note : Only use integer pixel offsets to preserve the fine - * hinting of the glyph and the 'correct' anti-aliasing - * (where vertical and horizontal stems aren't grayed). - * This means that xOffset and yOffset must be multiples - * of 64! - * - * You can experiment with offsets of +32 to get 'blurred' - * versions of the glyphs (a nice effect at large sizes that - * some graphic designers may appreciate :) - * - * MT-Safe : NO! Glyph containers can't be shared. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Glyph_Pixmap( TT_Glyph glyph, - TT_Raster_Map* pixmap, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ) - { - PEngine_Instance _engine; - TT_Engine engine; - TT_Error error; - PGlyph _glyph = HANDLE_Glyph( glyph ); - - TT_Outline outline; - - - if ( !_glyph ) - return TT_Err_Invalid_Glyph_Handle; - - _engine = _glyph->face->engine; - HANDLE_Set(engine,_engine); - - outline = _glyph->outline; - /* XXX : For now, use only dropout mode 2 */ - /* outline.dropout_mode = _glyph->scan_type; */ - outline.dropout_mode = 2; - - TT_Translate_Outline( &outline, xOffset, yOffset ); - error = TT_Get_Outline_Pixmap( engine, &outline, pixmap ); - TT_Translate_Outline( &outline, -xOffset, -yOffset ); - - return error; - } - -#endif /* TT_CONFIG_OPTION_GRAY_SCALING */ - - - static const TT_Outline null_outline - = { 0, 0, NULL, NULL, NULL, 0, 0, 0, 0 }; - - -/******************************************************************* - * - * Function : TT_New_Outline - * - * Description : Creates a new TrueType outline, reserving - * array space for a given number of points and - * contours. - * - * Input : numPoints number of points - * numContours number of contours - * outline address of target outline structure - * - * Output : Error code - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_New_Outline( TT_UShort numPoints, - TT_Short numContours, - TT_Outline* outline ) - { - TT_Error error; - - - if ( !outline ) - return TT_Err_Invalid_Argument; - - *outline = null_outline; - - if ( ALLOC( outline->points, numPoints*2*sizeof ( TT_F26Dot6 ) ) || - ALLOC( outline->flags, numPoints *sizeof ( Byte ) ) || - ALLOC( outline->contours, numContours*sizeof ( UShort ) ) ) - goto Fail; - - outline->n_points = numPoints; - outline->n_contours = numContours; - outline->owner = TRUE; - return TT_Err_Ok; - - Fail: - outline->owner = TRUE; - TT_Done_Outline( outline ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Done_Outline - * - * Description : Deletes an outline created through TT_New_Outline(). - * Calling this function for outlines returned - * by TT_Get_Glyph_Outline() yields an error. - * - * Input : outline address of outline - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Outline( TT_Outline* outline ) - { - if ( outline ) - { - if ( outline->owner ) - { - FREE( outline->points ); - FREE( outline->flags ); - FREE( outline->contours ); - } - *outline = null_outline; - return TT_Err_Ok; - } - else - return TT_Err_Invalid_Argument; - } - - -/******************************************************************* - * - * Function : TT_Get_Outline_Bitmap - * - * Description : Render a TrueType outline into a bitmap. - * Note that the bitmap must be created by the caller. - * - * Input : outline the outline to render - * bitmap the target bitmap - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Outline_Bitmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* bitmap ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - TT_Error error; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - if ( !outline || !bitmap ) - return TT_Err_Invalid_Argument; - - MUTEX_Lock( _engine->raster_lock ); - error = RENDER_Glyph( outline, bitmap ); - MUTEX_Release( _engine->raster_lock ); - - return error; - } - - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - -/******************************************************************* - * - * Function : TT_Get_Outline_Pixmap - * - * Description : Render a TrueType outline into a pixmap. - * Note that the pixmap must be created by the caller. - * - * Input : outline the outline to render - * pixmap the target pixmap - * - * Output : Error code - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Outline_Pixmap( TT_Engine engine, - TT_Outline* outline, - TT_Raster_Map* pixmap ) - { - PEngine_Instance _engine = HANDLE_Engine( engine ); - TT_Error error; - - - if ( !_engine ) - return TT_Err_Invalid_Engine; - - if ( !outline || !pixmap ) - return TT_Err_Invalid_Argument; - - MUTEX_Lock( _engine->raster_lock ); - error = RENDER_Gray_Glyph( outline, pixmap, _engine->raster_palette ); - MUTEX_Release( _engine->raster_lock ); - return error; - } - -#endif /* TT_CONFIG_OPTION_GRAY_SCALING */ - - -/******************************************************************* - * - * Function : TT_Copy_Outline - * - * Description : Copy an outline into another. The source and - * target outlines must have the same points and - * contours numbers. - * - * Input : source address of source outline - * target address of target outline - * - * Output : Error code - * - * Note : This function doesn't touch the target outline's 'owner' - * field. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Copy_Outline( TT_Outline* source, - TT_Outline* target ) - { - if ( !source || !target || - source->n_points != target->n_points || - source->n_contours != target->n_contours ) - return TT_Err_Invalid_Argument; - - MEM_Copy( target->points, source->points, - source->n_points * 2 * sizeof ( TT_F26Dot6 ) ); - - MEM_Copy( target->flags, source->flags, - source->n_points * sizeof ( Byte ) ); - - MEM_Copy( target->contours, source->contours, - source->n_contours * sizeof ( Short ) ); - - target->high_precision = source->high_precision; - target->second_pass = target->second_pass; - target->dropout_mode = source->dropout_mode; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Transform_Outline - * - * Description : Applies a simple transformation to an outline. - * - * Input : outline the glyph's outline. Can be extracted - * from a glyph container through - * TT_Get_Glyph_Outline(). - * - * matrix simple matrix with 16.16 fixed floats - * - * Output : Error code (always TT_Err_Ok). - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( void ) - TT_Transform_Outline( TT_Outline* outline, - TT_Matrix* matrix ) - { - UShort n; - TT_F26Dot6 x, y; - TT_Vector* vec; - - - vec = outline->points; - for ( n = 0; n < outline->n_points; n++ ) - { - x = TT_MulFix( vec->x, matrix->xx ) + - TT_MulFix( vec->y, matrix->xy ); - - y = TT_MulFix( vec->x, matrix->yx ) + - TT_MulFix( vec->y, matrix->yy ); - - vec->x = x; - vec->y = y; - vec++; - } - } - - -/******************************************************************* - * - * Function : TT_Transform_Vector - * - * Description : Apply a simple transform to a vector - * - * Input : x, y the vector. - * - * matrix simple matrix with 16.16 fixed floats - * - * Output : None. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( void ) - TT_Transform_Vector( TT_F26Dot6* x, - TT_F26Dot6* y, - TT_Matrix* matrix ) - { - TT_F26Dot6 xz, yz; - - - xz = TT_MulFix( *x, matrix->xx ) + - TT_MulFix( *y, matrix->xy ); - - yz = TT_MulFix( *x, matrix->yx ) + - TT_MulFix( *y, matrix->yy ); - - *x = xz; - *y = yz; - } - - -/******************************************************************* - * - * Function : TT_Translate_Outline - * - * Description : Applies a simple translation. - * - * Input : outline no comment :) - * xOffset - * yOffset - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( void ) - TT_Translate_Outline( TT_Outline* outline, - TT_F26Dot6 xOffset, - TT_F26Dot6 yOffset ) - { - UShort n; - TT_Vector* vec = outline->points; - - - for ( n = 0; n < outline->n_points; n++ ) - { - vec->x += xOffset; - vec->y += yOffset; - vec++; - } - } - - -/******************************************************************* - * - * Function : TT_Get_Outline_BBox - * - * Description : Returns an outline's bounding box. - * - * Input : outline no comment :) - * bbox address where the bounding box is returned - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Outline_BBox( TT_Outline* outline, - TT_BBox* bbox ) - { - TT_F26Dot6 x, y; - UShort k; - - - if ( outline && bbox ) - { - if ( outline->n_points == 0 ) - { - bbox->xMin = 0; - bbox->yMin = 0; - bbox->xMax = 0; - bbox->yMax = 0; - } - else - { - TT_Vector* vec = outline->points; - - bbox->xMin = bbox->xMax = vec->x; - bbox->yMin = bbox->yMax = vec->y; - vec++; - - for ( k = 1; k < outline->n_points; k++ ) - { - x = vec->x; - if ( x < bbox->xMin ) bbox->xMin = x; - if ( x > bbox->xMax ) bbox->xMax = x; - y = vec->y; - if ( y < bbox->yMin ) bbox->yMin = y; - if ( y > bbox->yMax ) bbox->yMax = y; - vec++; - } - } - return TT_Err_Ok; - } - else - return TT_Err_Invalid_Argument; - } - - - - /* ----------------- character mappings support ------------- */ - -/******************************************************************* - * - * Function : TT_Get_CharMap_Count - * - * Description : Returns the number of charmaps in a given face. - * - * Input : face face object handle - * - * Output : Number of tables. -1 in case of error (bad handle). - * - * Note : DON'T USE THIS FUNCTION! IT HAS BEEN DEPRECATED! - * - * It is retained for backwards compatibility only and will - * fail on 16bit systems. - * - * MT-Safe : YES ! - * - ******************************************************************/ - - FT_EXPORT_FUNC( int ) - TT_Get_CharMap_Count( TT_Face face ) - { - PFace faze = HANDLE_Face( face ); - - return ( faze ? faze->numCMaps : -1 ); - } - - -/******************************************************************* - * - * Function : TT_Get_CharMap_ID - * - * Description : Returns the ID of a given charmap. - * - * Input : face face object handle - * charmapIndex index of charmap in directory - * platformID address of returned platform ID - * encodingID address of returned encoding ID - * - * Output : error code - * - * MT-Safe : YES ! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_CharMap_ID( TT_Face face, - TT_UShort charmapIndex, - TT_UShort* platformID, - TT_UShort* encodingID ) - { - PCMapTable cmap; - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( charmapIndex >= faze->numCMaps ) - return TT_Err_Invalid_Argument; - - cmap = faze->cMaps + charmapIndex; - - *platformID = cmap->platformID; - *encodingID = cmap->platformEncodingID; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_CharMap - * - * Description : Looks up a charmap. - * - * Input : face face object handle - * charmapIndex index of charmap in directory - * charMap address of returned charmap handle - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_CharMap( TT_Face face, - TT_UShort charmapIndex, - TT_CharMap* charMap ) - { - TT_Error error; - TT_Stream stream; - PCMapTable cmap; - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( charmapIndex >= faze->numCMaps ) - return TT_Err_Invalid_Argument; - - cmap = faze->cMaps + charmapIndex; - - /* Load table if needed */ - error = TT_Err_Ok; - - /* MT-NOTE: We're modifying the face object, so protect it. */ - MUTEX_Lock( faze->lock ); - - if ( !cmap->loaded ) - { - (void)USE_Stream( faze->stream, stream ); - if ( !error ) - { - error = CharMap_Load( cmap, stream ); - DONE_Stream( stream ); - } - - if ( error ) - cmap = NULL; - else - cmap->loaded = TRUE; - } - MUTEX_Release( faze->lock ); - - HANDLE_Set( *charMap, cmap ); - - return error; - } - - -/******************************************************************* - * - * Function : TT_Char_Index - * - * Description : Returns the glyph index corresponding to - * a given character code defined for the 'charmap'. - * - * Input : charMap charmap handle - * charcode character code - * - * Output : glyph index. - * - * Notes : Character code 0 is the unknown glyph, which should never - * be displayed. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_UShort ) - TT_Char_Index( TT_CharMap charMap, - TT_ULong charCode ) - { - PCMapTable cmap = HANDLE_CharMap( charMap ); - - - if ( !cmap ) - return 0; /* we return 0 in case of invalid char map */ - - return CharMap_Index( cmap, charCode ); - } - - -/******************************************************************* - * - * Function : TT_Get_Name_Count - * - * Description : Returns the number of strings found in the - * name table. - * - * Input : face face handle - * - * Output : number of strings. - * - * Notes : Returns -1 on error (invalid handle). - * - * DON'T USE THIS FUNCTION! IT HAS BEEN DEPRECATED! - * - * It is retained for backwards compatibility only and will - * fail on 16bit systems. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( int ) - TT_Get_Name_Count( TT_Face face ) - { - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return -1; - - return faze->nameTable.numNameRecords; - } - - -/******************************************************************* - * - * Function : TT_Get_Name_ID - * - * Description : Returns the IDs of the string number 'nameIndex' - * in the name table of a given face. - * - * Input : face face handle - * nameIndex index of string. First is 0 - * platformID addresses of returned IDs - * encodingID - * languageID - * nameID - * - * Output : Error code. - * - * Notes : Some files have a corrupt or unusual name table, with some - * entries having a platformID > 3. These can usually - * be ignored by a client application. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Name_ID( TT_Face face, - TT_UShort nameIndex, - TT_UShort* platformID, - TT_UShort* encodingID, - TT_UShort* languageID, - TT_UShort* nameID ) - { - TNameRec* namerec; - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( nameIndex >= faze->nameTable.numNameRecords ) - return TT_Err_Invalid_Argument; - - namerec = faze->nameTable.names + nameIndex; - - *platformID = namerec->platformID; - *encodingID = namerec->encodingID; - *languageID = namerec->languageID; - *nameID = namerec->nameID; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Name_String - * - * Description : Returns the address and length of a given - * string found in the name table. - * - * Input : face face handle - * nameIndex string index - * stringPtr address of returned pointer to string - * length address of returned string length - * - * Output : Error code. - * - * Notes : If the string's platformID is invalid, - * stringPtr is NULL, and length is 0. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Name_String( TT_Face face, - TT_UShort nameIndex, - TT_String** stringPtr, - TT_UShort* length ) - { - TNameRec* namerec; - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - if ( nameIndex >= faze->nameTable.numNameRecords ) - return TT_Err_Invalid_Argument; - - namerec = faze->nameTable.names + nameIndex; - - *stringPtr = (String*)namerec->string; - *length = namerec->stringLength; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Get_Font_Data - * - * Description : Loads any font table into client memory. - * - * Input : face Face object to look for. - * - * tag 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 Starting offset in the table (or the file - * if tag == 0). - * - * buffer Address of target buffer - * - * length Address of decision variable: - * - * if length == NULL: - * Load the whole table. Returns an - * error if 'offset' != 0. - * - * if *length == 0 : - * Exit immediately, returning the - * length of the given table, or of - * the font file, depending on the - * value of 'tag'. - * - * if *length != 0 : - * Load the next 'length' bytes of - * table or font, starting at offset - * 'offset' (in table or font too). - * - * Output : Error code. - * - * MT-Safe : YES! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Get_Font_Data( TT_Face face, - TT_ULong tag, - TT_Long offset, - void* buffer, - TT_Long* length ) - { - PFace faze = HANDLE_Face( face ); - - - if ( !faze ) - return TT_Err_Invalid_Face_Handle; - - return Load_TrueType_Any( faze, tag, offset, buffer, length ); - } - - - /************************ callback definition ******************/ - - /* Register a new callback to the TrueType engine -- this should */ - /* only be used by higher-level libraries, not typical clients */ - /* */ - /* This is not part of the current FreeType release, thus */ - /* undefined... */ - -#if 0 - FT_EXPORT_FUNC( TT_Error ) - TT_Register_Callback( TT_Engine engine, - int callback_id, - void* callback_ptr ) - { - PEngine_Instance eng = HANDLE_Engine( engine ); - - - if ( !eng ) - return TT_Err_Invalid_Argument; - - /* currently, we only support one callback */ - if (callback_id != TT_Callback_Glyph_Outline_Load) - return TT_Err_Invalid_Argument; - - eng->glCallback = (TT_Glyph_Loader_Callback)callback_ptr; - return TT_Err_Ok; - } -#endif /* 0 */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttcache.c b/Build/source/libs/freetype/lib/ttcache.c deleted file mode 100644 index 21e6bf54c0f..00000000000 --- a/Build/source/libs/freetype/lib/ttcache.c +++ /dev/null @@ -1,464 +0,0 @@ -/******************************************************************* - * - * ttcache.c 1.1 - * - * Generic object cache - * - * 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. - * - * Changes between 1.1 and 1.0: - * - * - introduced the refresher and finalizer in the cache class - * definition/implementation. - * - ******************************************************************/ - -#include "ttengine.h" -#include "ttmemory.h" -#include "ttcache.h" -#include "ttobjs.h" -#include "ttdebug.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_cache - -#define ZERO_List( list ) list = NULL - -/* The macro FREE_Elements aliases the current engine instance's */ -/* free list_elements recycle list. */ -#define FREE_Elements ( engine->list_free_elements ) - -/* Redefinition of LOCK and UNLOCK macros for New_Element and Done_Element */ -/* Note: The macros are redefined below for the cache functions */ - -#undef LOCK -#define LOCK() MUTEX_Lock ( engine->lock ) - -#undef UNLOCK -#define UNLOCK() MUTEX_Release( engine->lock ) - -/******************************************************************* - * - * Function : Element_New - * - * Description : Gets a new (either fresh or recycled) list - * element. The element is unlisted. - * - * Input : None - * - * Output : List element address. NULL if out of memory. - * - ******************************************************************/ - - static - PList_Element Element_New( PEngine_Instance engine ) - { - PList_Element element; - - - LOCK(); - if ( FREE_Elements ) - { - element = (PList_Element)FREE_Elements; - FREE_Elements = element->next; - } - else - { - if ( !MEM_Alloc( element, sizeof ( TList_Element ) ) ) - { - element->next = NULL; - element->data = NULL; - } - } - - /* Note: in case of failure, Alloc sets the pointer to NULL */ - UNLOCK(); - - return element; - } - - -/******************************************************************* - * - * Function : Element_Done - * - * Description : Recycles an unlinked list element. - * - * Input : The list element to recycle. It _must_ be unlisted. - * - * Output : none. - * - * Note : This function doesn't check the element. - * - ******************************************************************/ - - static - void Element_Done( PEngine_Instance engine, - PList_Element element ) - { - LOCK(); - /* Simply add the list element to the recycle list */ - element->next = (PList_Element)FREE_Elements; - FREE_Elements = element; - UNLOCK(); - } - - -/* Redefinition of LOCK and UNLOCK macros for the cache functions */ -/* Note: The macros are defined above for the list element functions */ - -#undef LOCK -#define LOCK() MUTEX_Lock( *cache->lock ) - -#undef UNLOCK -#define UNLOCK() MUTEX_Release( *cache->lock ) - - -/******************************************************************* - * - * Function : Cache_Create - * - * Description : Creates a new cache that will be used to list - * and recycle several objects of the same class. - * - * Input : clazz a pointer to the cache's class. This is - * a simple structure that describes the - * the cache's object types and recycling - * limits. - * - * cache address of cache to create - * - * lock address of the mutex to use for this - * cache. The mutex will be used to protect - * the cache's lists. Use NULL for unprotected - * cache. - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Cache_Create( PEngine_Instance engine, - PCache_Class clazz, - TCache* cache, - TMutex* lock ) - { - cache->engine = engine; - cache->clazz = clazz; - cache->lock = lock; - cache->idle_count = 0; - - ZERO_List( cache->active ); - ZERO_List( cache->idle ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Cache_Destroy - * - * Description : Destroys a cache and all its idle and active - * objects. This will call each object's destructor - * before freeing it. - * - * Input : cache address of cache to destroy - * - * Output : error code. - * - * Note: This function is not MT-Safe, as we assume that a client - * isn't stupid enough to use an object while destroying it. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Cache_Destroy( TCache* cache ) - { - PDestructor destroy; - PList_Element current; - PList_Element next; - - - /* now destroy all active and idle listed objects */ - - /* get the destructor function */ - destroy = cache->clazz->done; - - /* destroy all elements in active list */ - current = cache->active; - while ( current ) - { - next = current->next; - destroy( current->data ); - FREE( current->data ); - - Element_Done( cache->engine, current ); - current = next; - } - ZERO_List(cache->active); - - /* destroy all elements in idle list */ - current = cache->idle; - while ( current ) - { - next = current->next; - destroy( current->data ); - FREE( current->data ); - - Element_Done( cache->engine, current ); - current = next; - } - ZERO_List(cache->idle); - - cache->clazz = NULL; - cache->idle_count = 0; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Cache_New - * - * Description : Extracts a new object from a cache. This will - * try to recycle an idle object, if any is found. - * Otherwise, a new object will be allocated and - * built (by calling its constructor). - * - * Input : cache address of cache to use - * new_object address of target pointer to the 'new' - * object - * parent_object this pointer is passed to a new object - * constructor (unused if object is - * recycled) - * - * Output : Error code. - * - * Notes: This function is thread-safe, each cache list is protected - * through the cache's mutex, if there is one... - * - * *new_object will be set to NULL in case of failure. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Cache_New( TCache* cache, - void** new_object, - void* parent_object ) - { - TT_Error error; - PList_Element current; - PConstructor build; - PRefresher reset; - void* object; - - - LOCK(); - current = cache->idle; - if ( current ) - { - cache->idle = current->next; - cache->idle_count--; - } - UNLOCK(); - - if ( current ) - { - object = current->data; - reset = cache->clazz->reset; - if ( reset ) - { - error = reset( object, parent_object ); - if ( error ) - { - LOCK(); - current->next = cache->idle; - cache->idle = current; - cache->idle_count++; - UNLOCK(); - goto Exit; - } - } - } - else - { - /* if no object was found in the cache, create a new one */ - build = cache->clazz->init; - - if ( MEM_Alloc( object, cache->clazz->object_size ) ) - goto Memory_Fail; - - current = Element_New( cache->engine ); - if ( !current ) - goto Memory_Fail; - - current->data = object; - - error = build( object, parent_object ); - if ( error ) - { - Element_Done( cache->engine, current ); - goto Fail; - } - } - - LOCK(); - current->next = cache->active; - cache->active = current; - UNLOCK(); - - *new_object = current->data; - return TT_Err_Ok; - - Exit: - *new_object = NULL; - return error; - - Memory_Fail: - error = TT_Err_Out_Of_Memory; - - Fail: - FREE( object ); - goto Exit; - } - - -/******************************************************************* - * - * Function : Cache_Done - * - * Description : Releases an object to the cache. This will either - * recycle or destroy the object, based on the cache's - * class and state. - * - * Input : cache the cache to use - * data the object to recycle/discard - * - * Output : error code. - * - * Notes : The object's destructor is called only when - * the objectwill be effectively destroyed by this - * function. This will not happen during recycling. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Cache_Done( TCache* cache, - void* data ) - { - TT_Error error; - PList_Element element; - PList_Element prev; - PFinalizer finalize; - Long limit; - Bool destroy; - - - /* Look for object in active list */ - LOCK(); - - element = cache->active; - prev = NULL; - while ( element ) - { - if ( element->data == data ) - { - if ( prev ) - prev->next = element->next; - else - cache->active = element->next; - goto Suite; - } - prev = element; - element = element->next; - } - - UNLOCK(); - return TT_Err_Unlisted_Object; - - Suite: - - limit = cache->clazz->idle_limit; - destroy = (cache->idle_count >= limit); - UNLOCK(); - - if ( destroy ) - { - /* destroy the object when the cache is full */ - cache->clazz->done( element->data ); - FREE( element->data ); - Element_Done( cache->engine, element ); - } - else - { - /* Finalize the object before adding it to the */ - /* idle list. Return the error if any is found. */ - - finalize = cache->clazz->finalize; - if ( finalize ) - { - error = finalize( element->data ); - if ( error ) - goto Exit; - - /* Note: a failure at finalize time is a severe bug in */ - /* the engine, which is why we allow ourselves to */ - /* lose the object in this case. A finalizer should */ - /* have its own error codes to spot this kind of */ - /* problems easily. */ - } - - LOCK(); - element->next = cache->idle; - cache->idle = element; - cache->idle_count++; - UNLOCK(); - } - - error = TT_Err_Ok; - - Exit: - return error; - } - - - FT_INTERNAL_FUNC( TT_Error ) - TTCache_Init( PEngine_Instance engine ) - { - /* Create list elements mutex */ - FREE_Elements = NULL; - return TT_Err_Ok; - } - - - FT_INTERNAL_FUNC( TT_Error ) - TTCache_Done( PEngine_Instance engine ) - { - /* We don't protect this function, as this is the end of the engine's */ - /* execution.. */ - PList_Element element, next; - - - /* frees the recycled list elements */ - element = FREE_Elements; - while ( element ) - { - next = element->next; - FREE( element ); - element = next; - } - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttcache.h b/Build/source/libs/freetype/lib/ttcache.h deleted file mode 100644 index 0c33f4a1861..00000000000 --- a/Build/source/libs/freetype/lib/ttcache.h +++ /dev/null @@ -1,216 +0,0 @@ -/******************************************************************* - * - * ttcache.h 1.1 - * - * Generic object cache - * - * 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. - * - * - * This component defines and implements object caches. - * - * An object class is a structure layout that encapsulate one - * given type of data used by the FreeType engine. Each object - * class is completely described by: - * - * - a 'root' or 'leading' structure containing the first - * important fields of the class. The root structure is - * always of fixed size. - * - * It is implemented as a simple C structure, and may - * contain several pointers to sub-tables that can be - * sized and allocated dynamically. - * - * Examples: TFace, TInstance, TGlyph & TExecution_Context - * (defined in 'ttobjs.h') - * - * - we make a difference between 'child' pointers and 'peer' - * pointers. A 'child' pointer points to a sub-table that is - * owned by the object, while a 'peer' pointer points to any - * other kind of data the object isn't responsible for. - * - * An object class is thus usually a 'tree' of 'child' tables. - * - * - each object class needs a constructor and a destructor. - * - * A constructor is a function which receives the address of - * freshly allocated and zeroed object root structure and - * 'builds' all the valid child data that must be associated - * to the object before it becomes 'valid'. - * - * A destructor does the inverse job: given the address of - * a valid object, it must discard all its child data and - * zero its main fields (essentially the pointers and array - * sizes found in the root fields). - * - * - * Important notes: - * - * When the constructor fails to allocate an object, it must - * return immediately with an error code, and not try to release - * what it has previously allocated before the error. The cache - * manager detects the error and calls the destructor on the - * partial object, before returning the error to the caller (along - * with a NULL pointer for the "new" object). - * - * The destructor must thus be able to deal with "partial objects", - * i.e., objects where only part of the child tables are allocated, - * and only release these ones. As the TT_Free() function accepts - * a NULL parameter (and returns successfuly in this case), no check - * is really necessary when using the macro 'FREE()'. - * - * Currently, there is no check in the cache manager to see if a - * destructor fails (double error state!). - * - * This scheme is more compact and more maintanable than the one - * where de-allocation code is duplicated in the constructor - * _and_ the destructor. - * - * - * - * Changes between 1.1 and 1.0: - * - * - introduced the refreshed and finalizer class definition/implementation - * - inserted an engine instance pointer in the cache structure - * - ******************************************************************/ - -#ifndef TTCACHE_H -#define TTCACHE_H - -#include "tttypes.h" -#include "ttconfig.h" -#include "ttmutex.h" - -#ifdef __cplusplus - extern "C" { -#endif - - typedef TT_Error TConstructor( void* object, - void* parent ); - - typedef TT_Error TDestructor ( void* object ); - - typedef TConstructor TRefresher; - typedef TDestructor TFinalizer; - - typedef TConstructor* PConstructor; - typedef TDestructor* PDestructor; - typedef TRefresher* PRefresher; - typedef TFinalizer* PFinalizer; - - - /* A Cache class record holds the data necessary to define */ - /* a cache kind. */ - struct TCache_Class_ - { - ULong object_size; - Long idle_limit; - PConstructor init; - PDestructor done; - PRefresher reset; - PFinalizer finalize; - }; - - typedef struct TCache_Class_ TCache_Class; - typedef TCache_Class* PCache_Class; - - - - /* Simple list node record. A list element is said to be 'unlinked' */ - /* when it doesn't belong to any list. */ - struct TList_Element_; - - typedef struct TList_Element_ TList_Element; - typedef TList_Element* PList_Element; - - struct TList_Element_ - { - PList_Element next; - void* data; - }; - - - /* Simple singly-linked list record - LIFO style, no tail field */ - typedef PList_Element TSingle_List; - - struct TCache_ - { - PEngine_Instance engine; - PCache_Class clazz; /* 'class' is a reserved word in C++ */ - TMutex* lock; - TSingle_List active; - TSingle_List idle; - Long idle_count; - }; - - typedef struct TCache_ TCache; - typedef TCache* PCache; - - /* Returns a new list element, either fresh or recycled. */ - /* Note: the returned element is unlinked. */ - - /* An object cache holds two lists tracking the active and */ - /* idle objects that are currently created and used by the */ - /* engine. It can also be 'protected' by a mutex. */ - - /* Initializes a new cache, of class 'clazz', pointed by 'cache', */ - /* protected by the 'lock' mutex. Set 'lock' to NULL if the cache */ - /* doesn't need protection */ - - FT_INTERNAL_DEF( TT_Error ) - Cache_Create( PEngine_Instance engine, - PCache_Class clazz, - TCache* cache, - TMutex* lock ); - - /* Destroys a cache and all its listed objects */ - - FT_INTERNAL_DEF( TT_Error ) - Cache_Destroy( TCache* cache ); - - - /* Extracts a new object from the cache */ - - FT_INTERNAL_DEF( TT_Error ) - Cache_New( TCache* cache, - void** new_object, - void* parent_object ); - - - /* Returns an object to the cache, or discards it depending */ - /* on the cache class' 'idle_limit' field */ - - FT_INTERNAL_DEF( TT_Error ) - Cache_Done( TCache* cache, void* data ); - -#define CACHE_New( _cache, _newobj, _parent ) \ - Cache_New( (TCache*)_cache, (void**)&_newobj, (void*)_parent ) - -#define CACHE_Done( _cache, _obj ) \ - Cache_Done( (TCache*)_cache, (void*)_obj ) - - - - FT_INTERNAL_DEF( TT_Error ) - TTCache_Init( PEngine_Instance engine ); - - FT_INTERNAL_DEF( TT_Error ) - TTCache_Done( PEngine_Instance engine ); - - -#ifdef __cplusplus - } -#endif - -#endif /* TTCACHE_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttcalc.c b/Build/source/libs/freetype/lib/ttcalc.c deleted file mode 100644 index 44d2f8c6f7f..00000000000 --- a/Build/source/libs/freetype/lib/ttcalc.c +++ /dev/null @@ -1,426 +0,0 @@ -/******************************************************************* - * - * ttcalc.c - * - * Arithmetic Computations (body). - * - * 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 "ttcalc.h" -#include "ttdebug.h" -#include "tttables.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_calc - - -/* Support for 1-complement arithmetic has been totally dropped in this */ -/* release. You can still write your own code if you need it... */ - - static const Long Roots[63] = - { - 1, 1, 2, 3, 4, 5, 8, 11, - 16, 22, 32, 45, 64, 90, 128, 181, - 256, 362, 512, 724, 1024, 1448, 2048, 2896, - 4096, 5892, 8192, 11585, 16384, 23170, 32768, 46340, - - 65536, 92681, 131072, 185363, 262144, 370727, - 524288, 741455, 1048576, 1482910, 2097152, 2965820, - 4194304, 5931641, 8388608, 11863283, 16777216, 23726566, - - 33554432, 47453132, 67108864, 94906265, - 134217728, 189812531, 268435456, 379625062, - 536870912, 759250125, 1073741824, 1518500250, - 2147483647 - }; - - -#ifdef LONG64 - - FT_EXPORT_FUNC( TT_Long ) - TT_MulDiv( TT_Long a, - TT_Long b, - TT_Long c ) - { - Long s; - - - s = a; a = ABS( a ); - s ^= b; b = ABS( b ); - s ^= c; c = ABS( c ); - - if ( c > 0 ) - a = ( (TT_Int64)a * b + ( c >> 1 ) ) / c; - else - a = 0x7FFFFFFFL; - - return ( s < 0 ) ? -a : a; - } - - - FT_EXPORT_FUNC( TT_Long ) - TT_MulFix( TT_Long a, - TT_Long b ) - { - Long s; - - - s = a; a = ABS( a ); - s ^= b; b = ABS( b ); - - a = ((TT_Int64)a * b + 0x8000) / 0x10000; - return ( s < 0 ) ? -a : a; - } - - - FT_INTERNAL_FUNC( Int ) - Order64( TT_Int64 z ) - { - Int j = 0; - - - while ( z ) - { - z = (unsigned INT64)z >> 1; - j++; - } - return j - 1; - } - - - FT_INTERNAL_FUNC( TT_Int32 ) - Sqrt64( TT_Int64 l ) - { - TT_Int64 r, s; - - - if ( l <= 0 ) return 0; - if ( l == 1 ) return 1; - - r = Roots[Order64( l )]; - - do - { - s = r; - r = ( r + l/r ) >> 1; - } - while ( r > s || r*r > l ); - - return r; - } - -#else /* LONG64 */ - - - /* The TT_MulDiv function has been optimized thanks to ideas from */ - /* Graham Asher. The trick is to optimize computation when everything */ - /* fits within 32-bits (a rather common case). */ - /* */ - /* we compute 'a*b+c/2', then divide it by 'c'. (positive values) */ - /* */ - /* 46340 is FLOOR(SQRT(2^31-1)). */ - /* */ - /* if ( a <= 46340 && b <= 46340 ) then ( a*b <= 0x7FFEA810 ) */ - /* */ - /* 0x7FFFFFFF - 0x7FFEA810 = 0x157F0 */ - /* */ - /* if ( c < 0x157F0*2 ) then ( a*b+c/2 <= 0x7FFFFFFF ) */ - /* */ - /* and 2*0x157F0 = 176096 */ - /* */ - - FT_EXPORT_FUNC( TT_Long ) - TT_MulDiv( TT_Long a, - TT_Long b, - TT_Long c ) - { - long s; - - - if ( a == 0 || b == c ) - return a; - - s = a; a = ABS( a ); - s ^= b; b = ABS( b ); - s ^= c; c = ABS( c ); - - if ( a <= 46340 && b <= 46340 && c <= 176095L && c > 0 ) - { - a = ( a * b + ( c >> 1 ) ) / c; - } - else if ( c > 0 ) - { - TT_Int64 temp, temp2; - - MulTo64( a, b, &temp ); - temp2.hi = (TT_Int32)( c >> 31 ); - temp2.lo = (TT_Word32)( c / 2 ); - Add64( &temp, &temp2, &temp ); - a = Div64by32( &temp, c ); - } - else - a = 0x7FFFFFFFL; - - return ( s < 0 ) ? -a : a; - } - - /* The optimization for TT_MulFix is different. We could simply be */ - /* happy by applying the same principles than with TT_MulDiv, because */ - /* */ - /* c = 0x10000 < 176096 */ - /* */ - /* however, in most cases, we have a 'b' with a value around 0x10000 */ - /* which is greater than 46340. */ - /* */ - /* According to Graham's testing, most cases have 'a' < 100, so a good */ - /* idea is to use bounds like 1024 and 2097151 (= floor(2^31-1)/1024 ) */ - /* for 'a' and 'b' respectively.. */ - /* */ - - FT_EXPORT_FUNC( TT_Long ) - TT_MulFix( TT_Long a, - TT_Long b ) - { - long s; - - if ( a == 0 || b == 0x10000 ) - return a; - - s = a; a = ABS( a ); - s ^= b; b = ABS( b ); - - if ( a <= 1024 && b <= 2097151 ) - { - a = ( a*b + 0x8000 ) >> 16; - } - else - { - TT_Int64 temp, temp2; - - MulTo64( a, b, &temp ); - temp2.hi = 0; - temp2.lo = 0x8000; - Add64( &temp, &temp2, &temp ); - a = Div64by32( &temp, 0x10000 ); - } - - return ( s < 0 ) ? -a : a; - } - - - FT_INTERNAL_FUNC( void ) - Neg64( TT_Int64* x ) - { - /* Remember that -(0x80000000) == 0x80000000 with 2-complement! */ - /* We take care of that here. */ - - x->hi ^= 0xFFFFFFFFUL; - x->lo ^= 0xFFFFFFFFUL; - x->lo++; - - if ( !x->lo ) - { - x->hi++; - if ( x->hi == 0x80000000UL ) /* Check -MaxInt32 - 1 */ - { - x->lo--; - x->hi--; /* We return 0x7FFFFFFF! */ - } - } - } - - - FT_INTERNAL_FUNC( void ) - Add64( TT_Int64* x, - TT_Int64* y, - TT_Int64* z ) - { - register TT_Word32 lo, hi; - - - lo = x->lo + y->lo; - hi = x->hi + y->hi + ( lo < x->lo ); - - z->lo = lo; - z->hi = hi; - } - - - FT_INTERNAL_FUNC( void ) - Sub64( TT_Int64* x, - TT_Int64* y, - TT_Int64* z ) - { - register TT_Word32 lo, hi; - - - lo = x->lo - y->lo; - hi = x->hi - y->hi - ( (TT_Int32)lo < 0 ); - - z->lo = lo; - z->hi = hi; - } - - - FT_INTERNAL_FUNC( void ) - MulTo64( TT_Int32 x, - TT_Int32 y, - TT_Int64* z ) - { - TT_Int32 s; - TT_Word32 lo1, hi1, lo2, hi2, lo, hi, i1, i2; - - - s = x; x = ABS( x ); - s ^= y; y = ABS( y ); - - lo1 = x & 0x0000FFFF; hi1 = x >> 16; - lo2 = y & 0x0000FFFF; hi2 = y >> 16; - - lo = lo1*lo2; - i1 = lo1*hi2; - i2 = lo2*hi1; - hi = hi1*hi2; - - /* Check carry overflow of i1 + i2 */ - - if ( i2 ) - { - if ( i1 >= (TT_Word32)-(TT_Int32)i2 ) hi += 1L << 16; - i1 += i2; - } - - i2 = i1 >> 16; - i1 = i1 << 16; - - /* Check carry overflow of i1 + lo */ - if ( i1 ) - { - if ( lo >= (TT_Word32)-(TT_Int32)i1 ) hi++; - lo += i1; - } - - hi += i2; - - z->lo = lo; - z->hi = hi; - - if ( s < 0 ) Neg64( z ); - } - - - FT_INTERNAL_FUNC( TT_Int32 ) - Div64by32( TT_Int64* x, - TT_Int32 y ) - { - TT_Int32 s; - TT_Word32 q, r, i, lo; - - - s = x->hi; if ( s < 0 ) Neg64( x ); - s ^= y; y = ABS( y ); - - /* Shortcut */ - if ( x->hi == 0 ) - { - if ( y > 0 ) - q = x->lo / y; - else - q = 0x7FFFFFFFL; - - return ( s < 0 ) ? -(TT_Int32)q : (TT_Int32)q; - } - - r = x->hi; - lo = x->lo; - - if ( r >= (TT_Word32)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 >= (TT_Word32)y ) - { - r -= y; - q |= 1; - } - lo <<= 1; - } - - return ( s < 0 ) ? -(TT_Int32)q : (TT_Int32)q; - } - - - FT_INTERNAL_FUNC( Int ) - Order64( TT_Int64* z ) - { - TT_Word32 i; - Int j; - - - if ( z->hi ) - { - i = z->hi; - j = 32; - } - else - { - i = z->lo; - j = 0; - } - - while ( i > 0 ) - { - i >>= 1; - j++; - } - return j-1; - } - - - FT_INTERNAL_FUNC( TT_Int32 ) - Sqrt64( TT_Int64* l ) - { - TT_Int64 l2; - TT_Int32 r, s; - - - if ( (TT_Int32)l->hi < 0 || - (l->hi == 0 && l->lo == 0) ) return 0; - - s = Order64( l ); - if ( s == 0 ) return 1; - - r = Roots[s]; - do - { - s = r; - r = ( r + Div64by32(l,r) ) >> 1; - MulTo64( r, r, &l2 ); - Sub64 ( l, &l2, &l2 ); - } - while ( r > s || (TT_Int32)l2.hi < 0 ); - - return r; - } - -#endif /* LONG64 */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttcalc.h b/Build/source/libs/freetype/lib/ttcalc.h deleted file mode 100644 index 98da62a1c21..00000000000 --- a/Build/source/libs/freetype/lib/ttcalc.h +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************* - * - * ttcalc.h - * - * Arithmetic Computations (specification). - * - * Copyright 1996-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 TTCALC_H -#define TTCALC_H - -#include "ttconfig.h" -#include "freetype.h" - - -#ifdef __cplusplus - extern "C" { -#endif - -#ifdef LONG64 - - typedef INT64 TT_Int64; - -#define ADD_64( x, y, z ) z = x + y -#define SUB_64( x, y, z ) z = x - y -#define MUL_64( x, y, z ) z = (TT_Int64)(x) * (y) - -#define DIV_64( x, y ) ( (x) / (y) ) - -#define SQRT_64( x ) Sqrt64( x ) -#define SQRT_32( x ) Sqrt32( x ) - - FT_INTERNAL_DEF( TT_Int32 ) - Sqrt64( TT_Int64 l ) -#if defined __GCC__ && defined TT_MAKE_OPTION_SINGLE_OBJECT - __attribute__ (( unused )) /* keep the compiler mute */ -#endif - ; - -#else /* LONG64 */ - - struct TT_Int64_ - { - TT_Word32 lo; - TT_Word32 hi; - }; - - typedef struct TT_Int64_ TT_Int64; - -#define ADD_64( x, y, z ) Add64( &x, &y, &z ) -#define SUB_64( x, y, z ) Sub64( &x, &y, &z ) -#define MUL_64( x, y, z ) MulTo64( x, y, &z ) - -#define DIV_64( x, y ) Div64by32( &x, y ) - -#define SQRT_64( x ) Sqrt64( &x ) -#define SQRT_32( x ) Sqrt32( x ) - - FT_INTERNAL_DEF( void ) - Add64( TT_Int64* x, - TT_Int64* y, - TT_Int64* z ); - FT_INTERNAL_DEF( void ) - Sub64( TT_Int64* x, - TT_Int64* y, - TT_Int64* z ); - - FT_INTERNAL_DEF( void ) - MulTo64( TT_Int32 x, - TT_Int32 y, - TT_Int64* z ); - - FT_INTERNAL_DEF( TT_Int32 ) - Div64by32( TT_Int64* x, - TT_Int32 y ); - - FT_INTERNAL_DEF( int ) - Order64( TT_Int64* z ); - - FT_INTERNAL_DEF( TT_Int32 ) - Sqrt64( TT_Int64* l ) -#if defined __GCC__ && defined TT_MAKE_OPTION_SINGLE_OBJECT - __attribute__ (( unused )) /* keep the compiler mute */ -#endif - ; - -#endif /* LONG64 */ - - /* The two following functions are now part of the API! */ - - /* TT_Long TT_MulDiv( TT_Long a, TT_Long b, TT_Long c ); */ - /* TT_Long TT_MulFix( TT_Long a, TT_Long b ); */ - - -#define INT_TO_F26DOT6( x ) ( (Long)(x) << 6 ) -#define INT_TO_F2DOT14( x ) ( (Long)(x) << 14 ) -#define INT_TO_FIXED( x ) ( (Long)(x) << 16 ) -#define F2DOT14_TO_FIXED( x ) ( (Long)(x) << 2 ) -#define FLOAT_TO_FIXED( x ) ( (Long)(x * 65536.0) ) - -#define ROUND_F26DOT6( x ) ( x >= 0 ? ( ((x) + 32) & -64) \ - : ( -((32 - (x)) & -64) ) ) - -#ifdef __cplusplus - } -#endif - -#endif /* TTCALC_H */ - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttcmap.c b/Build/source/libs/freetype/lib/ttcmap.c deleted file mode 100644 index a8ce85708d7..00000000000 --- a/Build/source/libs/freetype/lib/ttcmap.c +++ /dev/null @@ -1,635 +0,0 @@ -/******************************************************************* - * - * ttcmap.c - * - * TrueType Character Mappings - * - * Copyright 1996-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 "ttobjs.h" -#include "ttdebug.h" -#include "ttfile.h" -#include "ttmemory.h" -#include "ttload.h" -#include "ttcmap.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_cmap - - -/******************************************************************* - * - * Function : CharMap_Load - * - * Description : Loads a given charmap into memory. - * - * Input : cmap pointer to cmap table - * - * Output : Error code. - * - * Notes : - Assumes the the stream is already used (opened). - * - * - In case of error, releases all partially allocated - * tables. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - CharMap_Load( PCMapTable cmap, - TT_Stream input ) - { - DEFINE_LOAD_LOCALS( input ); - - UShort num_SH, num_Seg, i; - - UShort u, l, num_Groups, j; - ULong length; - - PCMap0 cmap0; - PCMap2 cmap2; - PCMap4 cmap4; - PCMap6 cmap6; - PCMap8_12 cmap8_12; - - PCMap2SubHeader cmap2sub; - PCMap4Segment segments; - PCMapGroup groups; - - - if ( cmap->loaded ) - return TT_Err_Ok; - - if ( FILE_Seek( cmap->offset ) ) - return error; - - switch ( cmap->format ) - { - case 0: - cmap0 = &cmap->c.cmap0; - - if ( ALLOC( cmap0->glyphIdArray, 256L ) || - FILE_Read( (void*)cmap0->glyphIdArray, 256L ) ) - goto Fail; - - break; - - case 2: - num_SH = 0; - cmap2 = &cmap->c.cmap2; - - /* allocate subheader keys */ - - if ( ALLOC_ARRAY( cmap2->subHeaderKeys, 256, UShort ) || - ACCESS_Frame( 512L ) ) - goto Fail; - - for ( i = 0; i < 256; i++ ) - { - u = GET_UShort() / 8; - cmap2->subHeaderKeys[i] = u; - - if ( num_SH < u ) - num_SH = u; - } - - FORGET_Frame(); - - /* load subheaders */ - - cmap2->numGlyphId = l = - ( ( cmap->length - 2L * (256 + 3) - num_SH * 8L ) & 0xffff) / 2; - - if ( ALLOC_ARRAY( cmap2->subHeaders, - num_SH + 1, - TCMap2SubHeader ) || - ACCESS_Frame( ( num_SH + 1 ) * 8L ) ) - goto Fail; - - cmap2sub = cmap2->subHeaders; - - for ( i = 0; i <= num_SH; i++ ) - { - cmap2sub->firstCode = GET_UShort(); - cmap2sub->entryCount = GET_UShort(); - cmap2sub->idDelta = GET_Short(); - /* we apply the location offset immediately */ - cmap2sub->idRangeOffset = GET_UShort() - ( num_SH - i ) * 8 - 2; - - cmap2sub++; - } - - FORGET_Frame(); - - /* load glyph ids */ - - if ( ALLOC_ARRAY( cmap2->glyphIdArray, l, UShort ) || - ACCESS_Frame( l * 2L ) ) - goto Fail; - - for ( i = 0; i < l; i++ ) - cmap2->glyphIdArray[i] = GET_UShort(); - - FORGET_Frame(); - break; - - case 4: - cmap4 = &cmap->c.cmap4; - - /* load header */ - - if ( ACCESS_Frame( 8L ) ) - goto Fail; - - cmap4->segCountX2 = GET_UShort(); - cmap4->searchRange = GET_UShort(); - cmap4->entrySelector = GET_UShort(); - cmap4->rangeShift = GET_UShort(); - - num_Seg = cmap4->segCountX2 / 2; - - FORGET_Frame(); - - /* load segments */ - - if ( ALLOC_ARRAY( cmap4->segments, - num_Seg, - TCMap4Segment ) || - ACCESS_Frame( (num_Seg * 4 + 1) * 2L ) ) - goto Fail; - - segments = cmap4->segments; - - for ( i = 0; i < num_Seg; i++ ) - segments[i].endCount = GET_UShort(); - - (void)GET_UShort(); - - for ( i = 0; i < num_Seg; i++ ) - segments[i].startCount = GET_UShort(); - - for ( i = 0; i < num_Seg; i++ ) - segments[i].idDelta = GET_Short(); - - for ( i = 0; i < num_Seg; i++ ) - segments[i].idRangeOffset = GET_UShort(); - - FORGET_Frame(); - - cmap4->numGlyphId = l = - ( ( cmap->length - ( 16L + 8L * num_Seg ) ) & 0xffff ) / 2; - - /* load ids */ - - if ( ALLOC_ARRAY( cmap4->glyphIdArray, l , UShort ) || - ACCESS_Frame( l * 2L ) ) - goto Fail; - - for ( i = 0; i < l; i++ ) - cmap4->glyphIdArray[i] = GET_UShort(); - - FORGET_Frame(); - break; - - case 6: - cmap6 = &cmap->c.cmap6; - - if ( ACCESS_Frame( 4L ) ) - goto Fail; - - cmap6->firstCode = GET_UShort(); - cmap6->entryCount = GET_UShort(); - - FORGET_Frame(); - - l = cmap6->entryCount; - - if ( ALLOC_ARRAY( cmap6->glyphIdArray, - cmap6->entryCount, - Short ) || - ACCESS_Frame( l * 2L ) ) - goto Fail; - - for ( i = 0; i < l; i++ ) - cmap6->glyphIdArray[i] = GET_UShort(); - - FORGET_Frame(); - break; - - case 8: - case 12: - if ( FILE_Seek( cmap->offset - 2 ) ) - return error; - - cmap8_12 = &cmap->c.cmap8_12; - - if ( ACCESS_Frame( 8L ) ) - goto Fail; - - length = GET_ULong(); - cmap->length = (UShort)(length & 0xFFFFU); - - if ( length!=cmap->length ) - goto Fail; - - GET_ULong(); /* language */ - - FORGET_Frame(); - - if ( cmap->format == 8 ) - if ( FILE_Skip( 8192L ) ) - goto Fail; - - if ( ACCESS_Frame( 4L ) ) - goto Fail; - cmap8_12->nGroups = GET_ULong(); - FORGET_Frame(); - - if ( cmap8_12->nGroups > 0xFFFF ) - goto Fail; - num_Groups = cmap8_12->nGroups; - - if ( ALLOC_ARRAY( cmap8_12->groups, num_Groups, TCMapGroup ) ) - goto Fail; - if ( ACCESS_Frame( num_Groups * 3 * 4L ) ) - goto Fail; - - groups = cmap8_12->groups; - - for ( j = 0; j < num_Groups; j++ ) - { - groups[j].startCharCode = GET_ULong(); - groups[j].endCharCode = GET_ULong(); - groups[j].startGlyphID = GET_ULong(); - } - - FORGET_Frame(); - - cmap8_12->last_group = cmap8_12->groups; - break; - - default: /* corrupt character mapping table */ - return TT_Err_Invalid_CharMap_Format; - - } - return TT_Err_Ok; - - Fail: - CharMap_Free( cmap ); - return error; - } - - -/******************************************************************* - * - * Function : CharMap_Free - * - * Description : Releases a given charmap table. - * - * Input : cmap pointer to cmap table - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - CharMap_Free( PCMapTable cmap ) - { - if ( !cmap ) - return TT_Err_Ok; - - switch ( cmap->format ) - { - case 0: - FREE( cmap->c.cmap0.glyphIdArray ); - break; - - case 2: - FREE( cmap->c.cmap2.subHeaderKeys ); - FREE( cmap->c.cmap2.subHeaders ); - FREE( cmap->c.cmap2.glyphIdArray ); - break; - - case 4: - FREE( cmap->c.cmap4.segments ); - FREE( cmap->c.cmap4.glyphIdArray ); - cmap->c.cmap4.segCountX2 = 0; - break; - - case 6: - FREE( cmap->c.cmap6.glyphIdArray ); - cmap->c.cmap6.entryCount = 0; - break; - - case 8: - case 12: - FREE( cmap->c.cmap8_12.groups ); - cmap->c.cmap8_12.nGroups = 0; - break; - - default: - /* invalid table format, do nothing */ - ; - } - - cmap->loaded = FALSE; - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : CharMap_Index - * - * Description : Performs charcode->glyph index translation. - * - * Input : cmap pointer to cmap table - * - * Output : Glyph index, 0 in case of failure. - * - ******************************************************************/ - - static UShort code_to_index0 ( ULong charCode, PCMap0 cmap0 ); - static UShort code_to_index2 ( ULong charCode, PCMap2 cmap2 ); - static UShort code_to_index4 ( ULong charCode, PCMap4 cmap4 ); - static UShort code_to_index6 ( ULong charCode, PCMap6 cmap6 ); - static UShort code_to_index8_12( ULong charCode, PCMap8_12 cmap8_12 ); - - - FT_INTERNAL_FUNC( UShort ) - CharMap_Index( PCMapTable cmap, - ULong charcode ) - { - switch ( cmap->format ) - { - case 0: - return code_to_index0( charcode, &cmap->c.cmap0 ); - case 2: - return code_to_index2( charcode, &cmap->c.cmap2 ); - case 4: - return code_to_index4( charcode, &cmap->c.cmap4 ); - case 6: - return code_to_index6( charcode, &cmap->c.cmap6 ); - case 8: - case 12: - return code_to_index8_12( charcode, &cmap->c.cmap8_12 ); - default: - return 0; - } - } - - -/******************************************************************* - * - * Function : code_to_index0 - * - * Description : Converts the character code into a glyph index. - * Uses format 0. - * charCode will be masked to get a value in the range - * 0x00-0xFF. - * - * Input : charCode the wanted character code - * cmap0 a pointer to a cmap table in format 0 - * - * Output : Glyph index into the glyphs array. - * 0 if the glyph does not exist. - * - ******************************************************************/ - - static UShort code_to_index0( ULong charCode, - PCMap0 cmap0 ) - { - if ( charCode <= 0xFF ) - return cmap0->glyphIdArray[charCode]; - else - return 0; - } - - -/******************************************************************* - * - * Function : code_to_index2 - * - * Description : Converts the character code into a glyph index. - * Uses format 2. - * - * Input : charCode the wanted character code - * cmap2 a pointer to a cmap table in format 2 - * - * Output : Glyph index into the glyphs array. - * 0 if the glyph does not exist. - * - ******************************************************************/ - - static UShort code_to_index2( ULong charCode, - PCMap2 cmap2 ) - { - UShort index1, idx; - UInt offset; - TCMap2SubHeader sh2; - - - index1 = cmap2->subHeaderKeys[charCode <= 0xFF ? - charCode : (charCode >> 8)]; - - if ( index1 == 0 ) - { - if ( charCode <= 0xFF ) - return cmap2->glyphIdArray[charCode]; /* 8bit character code */ - else - return 0; - } - else /* 16bit character code */ - { - if ( charCode <= 0xFF ) - return 0; - - sh2 = cmap2->subHeaders[index1]; - - if ( (charCode & 0xFF) < (TT_UInt)sh2.firstCode ) - return 0; - - if ( (charCode & 0xFF) >= (TT_UInt)( sh2.firstCode + sh2.entryCount ) ) - return 0; - - offset = sh2.idRangeOffset / 2 + (charCode & 0xFF) - sh2.firstCode; - if ( offset < cmap2->numGlyphId ) - idx = cmap2->glyphIdArray[offset]; - else - return 0; - - if ( idx ) - return ( idx + sh2.idDelta ) & 0xFFFF; - else - return 0; - } - } - - -/******************************************************************* - * - * Function : code_to_index4 - * - * Description : Converts the character code into a glyph index. - * Uses format 4. - * - * Input : charCode the wanted character code - * cmap4 a pointer to a cmap table in format 4 - * - * Output : Glyph index into the glyphs array. - * 0 if the glyph does not exist. - * - ******************************************************************/ - - static UShort code_to_index4( ULong charCode, - PCMap4 cmap4 ) - { - UInt index1; - UShort segCount, i; - TCMap4Segment seg4; - - - segCount = cmap4->segCountX2 / 2; - - for ( i = 0; i < segCount; i++ ) - if ( charCode <= (TT_UInt)cmap4->segments[i].endCount ) - break; - - /* Safety check - even though the last endCount should be 0xFFFF */ - if ( i >= segCount ) - return 0; - - seg4 = cmap4->segments[i]; - - if ( charCode < (TT_UInt)seg4.startCount ) - return 0; - - if ( seg4.idRangeOffset == 0 ) - return ( charCode + seg4.idDelta ) & 0xFFFF; - else - { - index1 = seg4.idRangeOffset / 2 + (charCode - seg4.startCount) - - (segCount - i); - - if ( index1 < cmap4->numGlyphId ) - { - if ( cmap4->glyphIdArray[index1] == 0 ) - return 0; - else - return ( cmap4->glyphIdArray[index1] + seg4.idDelta ) & 0xFFFF; - } - else - return 0; - } - } - - -/******************************************************************* - * - * Function : code_to_index6 - * - * Description : Converts the character code into a glyph index. - * Uses format 6. - * - * Input : charCode the wanted character code - * cmap6 a pointer to a cmap table in format 6 - * - * Output : Glyph index into the glyphs array. - * 0 if the glyph does not exist (`missing character glyph'). - * - ******************************************************************/ - - static UShort code_to_index6( ULong charCode, - PCMap6 cmap6 ) - { - TT_UInt firstCode; - - - firstCode = cmap6->firstCode; - - if ( charCode < firstCode ) - return 0; - - if ( charCode >= (firstCode + cmap6->entryCount) ) - return 0; - - return cmap6->glyphIdArray[charCode - firstCode]; - } - - - /*************************************************************************/ - /* */ - /* */ - /* code_to_index8_12 */ - /* */ - /* */ - /* Converts the (possibly 32bit) character code into a glyph index. */ - /* Uses format 8 or 12. */ - /* */ - /* */ - /* charCode :: The wanted character code. */ - /* cmap8_12 :: A pointer to a cmap table in format 8 or 12. */ - /* */ - /* */ - /* Glyph index into the glyphs array. 0 if the glyph does not exist. */ - /* */ - static UShort code_to_index8_12( ULong charCode, - PCMap8_12 cmap8_12 ) - { - PCMapGroup group, limit; - - - limit = cmap8_12->groups + cmap8_12->nGroups; - - /* first, check against the last used group */ - - group = cmap8_12->last_group; - - /* the following is equivalent to performing two tests, as in */ - /* */ - /* if ( charCode >= group->startCharCode && */ - /* charCode <= group->endCharCode ) */ - /* */ - /* This is a bit strange, but it is faster, and the idea behind the */ - /* cache is to significantly speed up charcode to glyph index */ - /* conversion. */ - - if ( (ULong)( charCode - group->startCharCode ) < - (ULong)( group->endCharCode - group->startCharCode ) ) - goto Found1; - - for ( group = cmap8_12->groups; group < limit; group++ ) - { - /* the ranges are sorted in increasing order. If we are out of */ - /* the range here, the char code isn't in the charmap, so exit. */ - - if ( charCode > group->endCharCode ) - continue; - - if ( charCode >= group->startCharCode ) - goto Found; - } - return 0; - - Found: - cmap8_12->last_group = group; - - Found1: - /* Theoretically, glyph indices > 0xFFFF are possible with this format, - but since all other TrueType tables expect 16bit glyph indices only - it doesn't make sense to support this. */ - return (UShort)( group->startGlyphID + - ( charCode - group->startCharCode ) ); - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttcmap.h b/Build/source/libs/freetype/lib/ttcmap.h deleted file mode 100644 index ea16554c9d2..00000000000 --- a/Build/source/libs/freetype/lib/ttcmap.h +++ /dev/null @@ -1,202 +0,0 @@ -/******************************************************************* - * - * ttcmap.h - * - * TrueType Character Mappings - * - * Copyright 1996-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 TTCMAP_H -#define TTCMAP_H - -#include "ttconfig.h" -#include "tttypes.h" - - -#ifdef __cplusplus - extern "C" { -#endif - - /* format 0 */ - - struct TCMap0_ - { - PByte glyphIdArray; - }; - - typedef struct TCMap0_ TCMap0; - typedef TCMap0* PCMap0; - - - /* format 2 */ - - struct TCMap2SubHeader_ - { - UShort firstCode; /* first valid low byte */ - UShort entryCount; /* number of valid low bytes */ - Short idDelta; /* delta value to glyphIndex */ - UShort idRangeOffset; /* offset from here to 1st code */ - }; - - typedef struct TCMap2SubHeader_ TCMap2SubHeader; - typedef TCMap2SubHeader* PCMap2SubHeader; - - struct TCMap2_ - { - PUShort subHeaderKeys; - /* high byte mapping table */ - /* value = subHeader index * 8 */ - - PCMap2SubHeader subHeaders; - PUShort glyphIdArray; - UShort numGlyphId; /* control value */ - }; - - typedef struct TCMap2_ TCMap2; - typedef TCMap2* PCMap2; - - - /* format 4 */ - - struct TCMap4Segment_ - { - UShort endCount; - UShort startCount; - Short idDelta; /* in the specs defined as UShort but the - example there gives negative values... */ - UShort idRangeOffset; - }; - - typedef struct TCMap4Segment_ TCMap4Segment; - typedef TCMap4Segment* PCMap4Segment; - - struct TCMap4_ - { - UShort segCountX2; /* number of segments * 2 */ - UShort searchRange; /* these parameters can be used */ - UShort entrySelector; /* for a binary search */ - UShort rangeShift; - - PCMap4Segment segments; - PUShort glyphIdArray; - UShort numGlyphId; /* control value */ - }; - - typedef struct TCMap4_ TCMap4; - typedef TCMap4* PCMap4; - - - /* format 6 */ - - struct TCMap6_ - { - UShort firstCode; /* first character code of subrange */ - UShort entryCount; /* number of character codes in subrange */ - - PUShort glyphIdArray; - }; - - typedef struct TCMap6_ TCMap6; - typedef TCMap6* PCMap6; - - - /* formats 8 & 12 */ - - /* auxiliary table for format 8 and 12 */ - - struct TCMapGroup_ - { - ULong startCharCode; - ULong endCharCode; - ULong startGlyphID; - }; - - typedef struct TCMapGroup_ TCMapGroup; - typedef TCMapGroup* PCMapGroup; - - /* FreeType handles format 8 and 12 identically. It is not necessary to - cover mixed 16bit and 32bit codes since FreeType always uses ULong - for input character codes -- converting Unicode surrogates to 32bit - character codes must be done by the application. */ - - struct TCMap8_12_ - { - ULong nGroups; - PCMapGroup groups; - - PCMapGroup last_group; /* last used group; this is a small */ - /* cache to potentially increase speed */ - }; - - typedef struct TCMap8_12_ TCMap8_12; - typedef TCMap8_12* PCMap8_12; - - - /* charmap table */ - - struct TCMapTable_ - { - UShort platformID; - UShort platformEncodingID; - UShort format; - UShort length; - UShort version; - - Bool loaded; - ULong offset; - - union - { - TCMap0 cmap0; - TCMap2 cmap2; - TCMap4 cmap4; - TCMap6 cmap6; - TCMap8_12 cmap8_12; - } c; - }; - - typedef struct TCMapTable_ TCMapTable; - typedef TCMapTable* PCMapTable; - - - - /* Load character mappings directory when face is loaded. */ - /* The mappings themselves are only loaded on demand. */ - - FT_INTERNAL_DEF( TT_Error ) - CharMap_Load( PCMapTable table, - TT_Stream input ); - - - /* Destroy one character mapping table */ - - FT_INTERNAL_DEF( TT_Error ) - CharMap_Free( PCMapTable table ); - - - /* Use character mapping table to perform mapping */ - - FT_INTERNAL_DEF( UShort ) - CharMap_Index( PCMapTable cmap, - ULong charCode ); - - /* NOTE: The PFace type isn't defined at this point */ - -#ifdef __cplusplus - } -#endif - -#endif /* TTCMAP_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttconfig.h b/Build/source/libs/freetype/lib/ttconfig.h deleted file mode 100644 index 7a30ebeb18d..00000000000 --- a/Build/source/libs/freetype/lib/ttconfig.h +++ /dev/null @@ -1,273 +0,0 @@ -/************************************************************************** - * - * ttconfig.h 1.2 - * - * Configuration settings header file. - * - * Copyright 1996-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. - * - * Notes: - * - * All the configuration #define statements have been gathered in - * this file to allow easy check and modification. - * - * The platform specificities are gathered in arch//ft_conf.h - * which is included by this file. - * - * Changes between 1.2 and 1.1 : - * - * - the EXPORT_DEF/EXPORT_FUNC/LOCAL_DEF/LOCAL_FUNC mechanism have - * replaced with a more elaborate one (with FT_ before) that allows - * addition of qualifiers _after_ the type, which is needed for DLLs. - * - *************************************************************************/ - -#ifndef TTCONFIG_H -#define TTCONFIG_H - - - -/* --------------- auto configuration ---------------------------------- */ - -/*************************************************************************/ -/* Here we include the file ft_conf.h for system dependent stuff. */ -/* The specific makefile is responsible for providing the right path to */ -/* this file. */ - -#include "ft_conf.h" - - -/*************************************************************************/ -/* */ -/* Some more settings used to be here, but they are now chosen */ -/* in the system-dependent file arch//ft_conf.h */ - - - -/* --------------- special debugging ----------------------------------- */ - -/*************************************************************************/ -/* Define this if you want to generate a special debug version of the */ -/* rasterizer. This will progressively draw the glyphs while the */ -/* computations are done directly on the graphics screen... (with */ -/* inverted glyphs). */ -/* */ -/* Use it at your own risk! It is not maintained currently. */ -/* */ -/* IMPORTANT: This is reserved to developers willing to debug the */ -/* rasterizer, which seems working very well in its */ -/* current state... */ - -/* #define DEBUG_RASTER */ - - -/*************************************************************************/ -/* Define this to have a simple debugger version of RunIns(). */ -/* */ -/* Use it at your own risk! It is not maintained currently. */ - -/* #define DEBUG_INTERPRETER */ - - -/*************************************************************************/ -/* Define this to have some housekeeping of allocation and deallocation. */ -/* */ -/* Please note that probably not all OS-specific versions of ttmemory.c */ -/* provide this functionality. */ - -/* #define DEBUG_MEMORY */ - - -/*************************************************************************/ -/* Define this to have bounds checking for file buffer frames. */ -/* */ -/* Please note that probably not all OS-specific versions of ttfile.c */ -/* provide this functionality. */ - -/* #define DEBUG_FILE */ - - - -/* --------------- arithmetic and processor support -------------------- */ - -/*************************************************************************/ -/* define ALIGNMENT to your processor/environment preferred alignment */ -/* size. A value of 8 should work on all current processors, even */ -/* 64-bits ones. */ - -#ifndef ALIGNMENT -#define ALIGNMENT 8 -#endif - - - -/* --------------- compilation model and naughty processors support ---- */ - -/*************************************************************************/ -/* Under normal operation, the library is compiled into a single object */ -/* file. This gets rids of all the external symbols defined in each */ -/* component interface, and de-pollutes the name-space. */ -/* */ -/* However, you can still compile components into separate object files, */ -/* and gather all of them into the library. But you should then declare */ -/* some functions as externally visible. */ -/* */ -/* We use two macros, namely FT_INTERNAL_FUNC and FT_INTERNAL_DEF, which */ -/* apply to functions that are internal to the engine, and should never */ -/* be seen or linked by a client application. */ -/* */ -/* FT_INTERNAL_DEF used in header (.h) files, to define a function */ -/* that will be seen by other components. This */ -/* translates to "extern" in normal mode, and to */ -/* "static" in single-object mode. */ -/* */ -/* FT_INTERNAL_FUNC used in implementation (.c) files, just before */ -/* the function body. This translates to nothing */ -/* in normal mode, and to "static" in single-object */ -/* mode. */ -/* */ -/* It is called a "MAKE_OPTION" because the macro must be defined in the */ -/* Makefile, rather than this one. It allows any developer to quickly */ -/* switch from one mode to the other without messing with "ttconfig.h" */ -/* each time. */ -/* */ -/* The following macros are needed to compile the library with some */ -/* 16-bit (the infamous `_cdecl', `__loadds', `_export', `FAR', etc. */ -/* stuff) or perhaps C++ compilers (extern "C"). The typename is passed */ -/* as an argument, which allows the macro to add stuff _after_ the */ -/* typename, which is required by 16-bit msdos compiler syntax. */ - -#ifndef TT_MAKE_OPTION_SINGLE_OBJECT - -#ifndef FT_INTERNAL_FUNC -#define FT_INTERNAL_FUNC( type ) type -#endif -#ifndef FT_INTERNAL_DEF -#define FT_INTERNAL_DEF( type ) extern type -#endif - -#else /* ! TT_MAKE_OPTION_SINGLE_OBJECT */ - -#ifndef FT_INTERNAL_FUNC -#define FT_INTERNAL_FUNC( type ) static type -#endif -#ifndef FT_INTERNAL_DEF -#define FT_INTERNAL_DEF( type ) static type -#endif - -#endif /* TT_MAKE_OPTION_SINGLE_OBJECT */ - -/* This is for variables; default is using the same as functions. */ -#ifndef FT_INTERNAL_DECL -#define FT_INTERNAL_DECL( type ) FT_INTERNAL_DEF( type ) -#endif -#ifndef FT_INTERNAL_VAR -#define FT_INTERNAL_VAR( type ) FT_INTERNAL_DECL( type ) -#endif - - -/*************************************************************************/ -/* Define FT_EXPORT_DEF and FT_EXPORT_FUNC as needed to build e.g. a DLL.*/ -/* All variables and functions visible from outside have these prefixes. */ - -/* Backward compatibility only. Don't use for new code. */ -#ifdef EXPORT_DEF -#define FT_EXPORT_DEF( type ) EXPORT_DEF type -#endif -#ifdef EXPORT_FUNC -#define FT_EXPORT_FUNC( type ) EXPORT_FUNC type -#endif -/* End of backward compatibility section. */ - -#ifndef FT_EXPORT_DEF -#define FT_EXPORT_DEF( type ) extern type -#endif - -#ifndef FT_EXPORT_FUNC -#define FT_EXPORT_FUNC( type ) type -#endif - -/* This is for variables; default is using the same as functions. */ -#ifndef FT_EXPORT_DECL -#define FT_EXPORT_DECL( type ) FT_EXPORT_DEF( type ) -#endif -#ifndef FT_EXPORT_VAR -#define FT_EXPORT_VAR( type ) FT_EXPORT_DECL( type ) -#endif - - - -/* --------------- miscellaneous --------------------------------------- */ - -/*************************************************************************/ -/* The number of extensions available. Don't change this value */ -/* except if you add new extensions to the engine. */ - -#define TT_MAX_EXTENSIONS 8 - - - -/* --------------- automatic setup -- don't touch ---------------------- */ - -/*************************************************************************/ -/* If HAVE_TT_TEXT is defined we don't provide a default typedef for */ -/* defining TT_Text. */ - -#ifndef HAVE_TT_TEXT -#define HAVE_TT_TEXT - typedef char TT_Text; -#endif - - -/*************************************************************************/ -/* We define NULL in case it's not defined yet. The default */ -/* location is stdlib.h. */ - -#ifdef HAVE_STDLIB_H -#include -#endif - - -/*************************************************************************/ -/* Some systems can't use vfprintf for error messages on stderr; if */ -/* HAVE_PRINT_FUNCTION is defined, the Print macro must be supplied */ -/* externally (having the same parameters). */ -/* */ -/* This is only used by the "ttdebug" component, which should be linked */ -/* to the engine only in debug mode. */ - -#if defined( DEBUG_LEVEL_TRACE ) || defined( DEBUG_LEVEL_ERROR ) -#ifndef HAVE_PRINT_FUNCTION -#define Print( format, ap ) vfprintf( stderr, (format), (ap) ) -#endif -#endif - - -/* --------------- internal (developer) configuration toggles ---------- */ - -/*************************************************************************/ -/* Do not undefine this configuration macro. It is now a default that */ -/* must be kept in all release builds. */ -#undef TT_STATIC_INTERPRETER - - -/*************************************************************************/ -/* Define this if you want to generate a static raster. This makes a */ -/* non re-entrant version of the scan-line converter, which is about */ -/* 10% faster and 50% bigger than an indirect one! */ -/* */ -/* NOTE : this is different from TT_CONFIG_OPTION_STATIC_RASTER. */ -/* This one only affects the calling convention. */ -#undef TT_STATIC_RASTER - - -#endif /* TTCONFIG_H */ - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttdebug.c b/Build/source/libs/freetype/lib/ttdebug.c deleted file mode 100644 index 4afe2dcc5ba..00000000000 --- a/Build/source/libs/freetype/lib/ttdebug.c +++ /dev/null @@ -1,404 +0,0 @@ -/* Simple debugging component. Temporary */ - -#include "ttdebug.h" -#include "tttables.h" -#include "ttobjs.h" - - -#ifdef DEBUG_LEVEL_TRACE - char tt_trace_levels[trace_max]; -#endif - -#if defined( DEBUG_LEVEL_ERROR ) || defined( DEBUG_LEVEL_TRACE ) - -#include -#include -#include - - - static String tempStr[128]; - - static const String* OpStr[256] = - { - "SVTCA y", /* Set vectors to coordinate axis y */ - "SVTCA x", /* Set vectors to coordinate axis x */ - "SPvTCA y", /* Set Proj. vec. to coord. axis y */ - "SPvTCA x", /* Set Proj. vec. to coord. axis x */ - "SFvTCA y", /* Set Free. vec. to coord. axis y */ - "SFvTCA x", /* Set Free. vec. to coord. axis x */ - "SPvTL //", /* Set Proj. vec. parallel to segment */ - "SPvTL +", /* Set Proj. vec. normal to segment */ - "SFvTL //", /* Set Free. vec. parallel to segment */ - "SFvTL +", /* Set Free. vec. normal to segment */ - "SPvFS", /* Set Proj. vec. from stack */ - "SFvFS", /* Set Free. vec. from stack */ - "GPV", /* Get projection vector */ - "GFV", /* Get freedom vector */ - "SFvTPv", /* Set free. vec. to proj. vec. */ - "ISECT", /* compute intersection */ - - "SRP0", /* Set reference point 0 */ - "SRP1", /* Set reference point 1 */ - "SRP2", /* Set reference point 2 */ - "SZP0", /* Set Zone Pointer 0 */ - "SZP1", /* Set Zone Pointer 1 */ - "SZP2", /* Set Zone Pointer 2 */ - "SZPS", /* Set all zone pointers */ - "SLOOP", /* Set loop counter */ - "RTG", /* Round to Grid */ - "RTHG", /* Round to Half-Grid */ - "SMD", /* Set Minimum Distance */ - "ELSE", /* Else */ - "JMPR", /* Jump Relative */ - "SCvTCi", /* Set CVT */ - "SSwCi", /* */ - "SSW", /* */ - - "DUP", - "POP", - "CLEAR", - "SWAP", - "DEPTH", - "CINDEX", - "MINDEX", - "AlignPTS", - "INS_$28", - "UTP", - "LOOPCALL", - "CALL", - "FDEF", - "ENDF", - "MDAP[-]", - "MDAP[r]", - - "IUP[y]", - "IUP[x]", - "SHP[0]", - "SHP[1]", - "SHC[0]", - "SHC[1]", - "SHZ[0]", - "SHZ[1]", - "SHPIX", - "IP", - "MSIRP[0]", - "MSIRP[1]", - "AlignRP", - "RTDG", - "MIAP[-]", - "MIAP[r]", - - "NPushB", - "NPushW", - "WS", - "RS", - "WCvtP", - "RCvt", - "GC[0]", - "GC[1]", - "SCFS", - "MD[0]", - "MD[1]", - "MPPEM", - "MPS", - "FlipON", - "FlipOFF", - "DEBUG", - - "LT", - "LTEQ", - "GT", - "GTEQ", - "EQ", - "NEQ", - "ODD", - "EVEN", - "IF", - "EIF", - "AND", - "OR", - "NOT", - "DeltaP1", - "SDB", - "SDS", - - "ADD", - "SUB", - "DIV", - "MUL", - "ABS", - "NEG", - "FLOOR", - "CEILING", - "ROUND[G]", - "ROUND[B]", - "ROUND[W]", - "ROUND[?]", - "NROUND[G]", - "NROUND[B]", - "NROUND[W]", - "NROUND[?]", - - "WCvtF", - "DeltaP2", - "DeltaP3", - "DeltaC1", - "DeltaC2", - "DeltaC3", - "SROUND", - "S45Round", - "JROT", - "JROF", - "ROFF", - "INS_$7B", - "RUTG", - "RDTG", - "SANGW", - "AA", - - "FlipPT", - "FlipRgON", - "FlipRgOFF", - "INS_$83", - "INS_$84", - "ScanCTRL", - "SDPVTL[0]", - "SDPVTL[1]", - "GetINFO", - "IDEF", - "ROLL", - "MAX", - "MIN", - "ScanTYPE", - "IntCTRL", - "INS_$8F", - - "INS_$90", - "INS_$91", - "INS_$92", - "INS_$93", - "INS_$94", - "INS_$95", - "INS_$96", - "INS_$97", - "INS_$98", - "INS_$99", - "INS_$9A", - "INS_$9B", - "INS_$9C", - "INS_$9D", - "INS_$9E", - "INS_$9F", - - "INS_$A0", - "INS_$A1", - "INS_$A2", - "INS_$A3", - "INS_$A4", - "INS_$A5", - "INS_$A6", - "INS_$A7", - "INS_$A8", - "INS_$A9", - "INS_$AA", - "INS_$AB", - "INS_$AC", - "INS_$AD", - "INS_$AE", - "INS_$AF", - - "PushB[0]", - "PushB[1]", - "PushB[2]", - "PushB[3]", - "PushB[4]", - "PushB[5]", - "PushB[6]", - "PushB[7]", - "PushW[0]", - "PushW[1]", - "PushW[2]", - "PushW[3]", - "PushW[4]", - "PushW[5]", - "PushW[6]", - "PushW[7]", - - "MDRP[G]", - "MDRP[B]", - "MDRP[W]", - "MDRP[?]", - "MDRP[rG]", - "MDRP[rB]", - "MDRP[rW]", - "MDRP[r?]", - "MDRP[mG]", - "MDRP[mB]", - "MDRP[mW]", - "MDRP[m?]", - "MDRP[mrG]", - "MDRP[mrB]", - "MDRP[mrW]", - "MDRP[mr?]", - "MDRP[pG]", - "MDRP[pB]", - - "MDRP[pW]", - "MDRP[p?]", - "MDRP[prG]", - "MDRP[prB]", - "MDRP[prW]", - "MDRP[pr?]", - "MDRP[pmG]", - "MDRP[pmB]", - "MDRP[pmW]", - "MDRP[pm?]", - "MDRP[pmrG]", - "MDRP[pmrB]", - "MDRP[pmrW]", - "MDRP[pmr?]", - - "MIRP[G]", - "MIRP[B]", - "MIRP[W]", - "MIRP[?]", - "MIRP[rG]", - "MIRP[rB]", - "MIRP[rW]", - "MIRP[r?]", - "MIRP[mG]", - "MIRP[mB]", - "MIRP[mW]", - "MIRP[m?]", - "MIRP[mrG]", - "MIRP[mrB]", - "MIRP[mrW]", - "MIRP[mr?]", - "MIRP[pG]", - "MIRP[pB]", - - "MIRP[pW]", - "MIRP[p?]", - "MIRP[prG]", - "MIRP[prB]", - "MIRP[prW]", - "MIRP[pr?]", - "MIRP[pmG]", - "MIRP[pmB]", - "MIRP[pmW]", - "MIRP[pm?]", - "MIRP[pmrG]", - "MIRP[pmrB]", - "MIRP[pmrW]", - "MIRP[pmr?]" - }; - - - const String* Cur_U_Line( void* _exec ) - { - String s[32]; - - Int op, i, n; - - PExecution_Context exec; - - - exec = _exec; - - op = exec->code[exec->IP]; - - sprintf( tempStr, "%s", OpStr[op] ); - - if ( op == 0x40 ) - { - n = exec->code[exec->IP + 1]; - sprintf( s, "(%d)", n ); - strncat( tempStr, s, 8 ); - - if ( n > 20 ) n = 20; /* limit output */ - - for ( i = 0; i < n; i++ ) - { - sprintf( s, " $%02hx", exec->code[exec->IP + i + 2] ); - strncat( tempStr, s, 8 ); - } - } - else if ( op == 0x41 ) - { - n = exec->code[exec->IP + 1]; - sprintf( s, "(%d)", n ); - strncat( tempStr, s, 8 ); - - if ( n > 20 ) n = 20; /* limit output */ - - for ( i = 0; i < n; i++ ) - { - sprintf( s, " $%02hx%02hx", exec->code[exec->IP + i*2 + 2], - exec->code[exec->IP + i*2 + 3] ); - strncat( tempStr, s, 8 ); - } - } - else if ( (op & 0xF8) == 0xB0 ) - { - n = op - 0xB0; - - for ( i = 0; i <= n; i++ ) - { - sprintf( s, " $%02hx", exec->code[exec->IP + i + 1] ); - strncat( tempStr, s, 8 ); - } - } - else if ( (op & 0xF8) == 0xB8 ) - { - n = op-0xB8; - - for ( i = 0; i <= n; i++ ) - { - sprintf( s, " $%02hx%02hx", exec->code[exec->IP + i*2 + 1], - exec->code[exec->IP + i*2 + 2] ); - strncat( tempStr, s, 8 ); - } - } - - return (String*)tempStr; - } - - - /* the Print() function is defined in ttconfig.h; */ - /* it defaults to vprintf on systems which have it */ - - void TT_Message( const String* fmt, ... ) - { - va_list ap; - - va_start( ap, fmt ); - Print( fmt, ap ); - va_end( ap ); - } - - - void TT_Panic( const String* fmt, ... ) - { - va_list ap; - - va_start( ap, fmt ); - Print( fmt, ap ); - va_end( ap ); - - exit( EXIT_FAILURE ); - } - -#endif /* defined( DEBUG_LEVEL_ERROR ) || defined( DEBUG_LEVEL_TRACE ) */ - -#if defined( DEBUG_LEVEL_TRACE ) - - /* use this function to set the values of tt_trace_levels */ - - void set_tt_trace_levels( int index, char value ) - { - tt_trace_levels[index] = value; - } - -#endif - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttdebug.h b/Build/source/libs/freetype/lib/ttdebug.h deleted file mode 100644 index 0fd1389febb..00000000000 --- a/Build/source/libs/freetype/lib/ttdebug.h +++ /dev/null @@ -1,170 +0,0 @@ -/******************************************************************* - * - * ttdebug.h - * - * Debugging and Logging component (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. - * - * - * 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). Define - * DEBUG_LEVEL_TRACE to enable this mode. - * - * - error mode: - * - * Only error messages are generated. Define - * DEBUG_LEVEL_ERROR to enable this mode. - * - * - release mode: - * - * Error messages are neither sent nor generated. The code is - * free from any debugging parts. - * - ******************************************************************/ - -#ifndef TTDEBUG_H -#define TTDEBUG_H - -#include "ttconfig.h" -#include "tttypes.h" - - -#ifdef __cplusplus - extern "C" { -#endif - - -#if defined( DEBUG_LEVEL_TRACE ) - - typedef enum Trace_Component_ - { - trace_any = 0, - trace_api, - trace_interp, - trace_load, - trace_gload, - trace_memory, - trace_file, - trace_mutex, - trace_cache, - trace_calc, - trace_cmap, - trace_extend, - trace_objs, - trace_raster, - - trace_bitmap, - trace_max - - } Trace_Component; - - - /* Here we define an array to hold the trace levels per component. */ - /* Since it is globally defined, all array members are set to 0. */ - /* You should set the values in this array either in your program */ - /* or with your debugger. */ - /* */ - /* Currently, up to eight levels (PTRACE0-PTRACE7, see below) are */ - /* used in some parts of the engine. */ - /* */ - /* For example, to have all tracing messages in the raster */ - /* component, say */ - /* */ - /* #define DEBUG_LEVEL_TRACE */ - /* #include "ttdebug.h" */ - /* */ - /* ... */ - /* set_tt_trace_levels( trace_raster, 7 ) */ - /* */ - /* in your code before initializing the FreeType engine. */ - /* */ - /* Maybe it is better to define DEBUG_LEVEL_TRACE in ttconfig.h... */ - - extern char tt_trace_levels[trace_max]; - - /* IMPORTANT: */ - /* */ - /* Each component must define the macro TT_COMPONENT */ - /* to a valid Trace_Component value before using any */ - /* PTRACEx macro. */ - /* */ - -#define PTRACE( level, varformat ) \ - if ( tt_trace_levels[TT_COMPONENT] >= level ) TT_Message##varformat - -#elif defined( DEBUG_LEVEL_ERROR ) - -#define PTRACE( level, varformat ) /* nothing */ - -#else /* RELEASE MODE */ - -#define TT_Assert( condition, action ) /* nothing */ - -#define PTRACE( level, varformat ) /* nothing */ -#define PERROR( varformat ) /* nothing */ -#define PANIC( varformat ) /* nothing */ - -#endif - - -/************************************************************************/ -/* */ -/* Define macros and fuctions that are common to the debug and trace */ -/* modes. */ -/* */ - -#if defined( DEBUG_LEVEL_TRACE ) || defined( DEBUG_LEVEL_ERROR ) - - -#define TT_Assert( condition, action ) if ( !(condition) ) ( action ) - - void TT_Message( const String* fmt, ... ); - void TT_Panic ( const String* fmt, ... ); - /* print a message and exit */ - - const String* Cur_U_Line( void* exec ); - -#define PERROR( varformat ) TT_Message##varformat -#define PANIC( varformat ) TT_Panic##varformat - -#endif - -#if defined( DEBUG_LEVEL_TRACE ) - - void set_tt_trace_levels( int index, char value ); - -#endif - - -#define PTRACE0( varformat ) PTRACE( 0, varformat ) -#define PTRACE1( varformat ) PTRACE( 1, varformat ) -#define PTRACE2( varformat ) PTRACE( 2, varformat ) -#define PTRACE3( varformat ) PTRACE( 3, varformat ) -#define PTRACE4( varformat ) PTRACE( 4, varformat ) -#define PTRACE5( varformat ) PTRACE( 5, varformat ) -#define PTRACE6( varformat ) PTRACE( 6, varformat ) -#define PTRACE7( varformat ) PTRACE( 7, varformat ) - - -#ifdef __cplusplus - } -#endif - - -#endif /* TTDEBUG_H */ diff --git a/Build/source/libs/freetype/lib/ttengine.h b/Build/source/libs/freetype/lib/ttengine.h deleted file mode 100644 index e11df7e2884..00000000000 --- a/Build/source/libs/freetype/lib/ttengine.h +++ /dev/null @@ -1,116 +0,0 @@ -/************************************************************************* - * - * ttengine.h 1.1 - * - * Engine instance structure definition - * (this spec has no associated 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. - * - * New in 1.1 : - * - * - added the 'raster_lock' mutex field to synchronize - * scan-line conversion in thread-safe and re-entrant builds. - * - *************************************************************************/ - -#ifndef TTENGINE_H -#define TTENGINE_H - -#include "tttypes.h" -#include "ttconfig.h" -#include "freetype.h" -#include "ttmutex.h" - -#ifdef __cplusplus - extern "C" { -#endif - - /***********************************************************************/ - /* */ - /* The freetype engine instance structure. */ - /* */ - /* This structure holds all the data that is necessary to run one */ - /* instance of the freetype engine. It is needed to get a completely */ - /* completely re-entrant version of the library. */ - /* */ - /* The goal is to move _all_ component-specific variables, either */ - /* static or global in the structure; the component initializers and */ - /* finalizers will all be called with the address of a valid */ - /* TEngine_Instance. */ - /* */ - /***********************************************************************/ - - struct TEngine_Instance_ - { - TMutex lock; /* engine lock */ - - void* list_free_elements; - - void* objs_face_class; /* the face cache class */ - void* objs_instance_class; /* the instance cache class */ - void* objs_execution_class; /* the context cache class */ - void* objs_glyph_class; /* the glyph cache class */ - - void* objs_face_cache; /* these caches are used to track */ - void* objs_exec_cache; /* the current face and execution */ - /* context objects */ - - void* file_component; /* ttfile implementation dependent */ - - TMutex raster_lock; /* mutex for this engine render pool */ - void* raster_component; /* ttraster implementation depedent */ - Byte raster_palette[5]; /* gray-levels palette for anti-aliasing */ - - void* extension_component; /* extensions dependent */ - -#if 0 - TT_Glyph_Loader_Callback glCallback; /* glyph loader callback, if any */ -#endif - }; - - /* NOTE : The raster's lock is only acquired by the Render_Glyph and */ - /* Render_Gray_Glyph functions, which always release it on exit */ - /* They do not lock the engine mutex. This means you shouldn't */ - /* be concerned about deadlocks between the two mutexes, as */ - /* these should never appear.. */ - - typedef struct TEngine_Instance_ TEngine_Instance; - typedef TEngine_Instance* PEngine_Instance; - - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE /* for re-entrant builds */ - -#define ENGINE_ARG TEngine_Instance* _engine -#define ENGINE_ARGS TEngine_Instance* _engine, - -#define ENGINE_VAR _engine -#define ENGINE_VARS _engine, - -#define ENGINE _engine - -#else /* for thread-unsafe builds */ - -#define ENGINE_ARG /* none */ -#define ENGINE_ARGS /* none */ - -#define ENGINE_VAR /* nothing */ -#define ENGINE_VARS /* nothing */ - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - -#ifdef __cplusplus - } -#endif - -#endif /* TTENGINE_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttextend.c b/Build/source/libs/freetype/lib/ttextend.c deleted file mode 100644 index 6a2813a80d7..00000000000 --- a/Build/source/libs/freetype/lib/ttextend.c +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************* - * - * ttextend.c 2.0 - * - * Extensions Interface - * - * 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. - * - * This is an updated version of the extension component, now - * located in the main library's source directory. It allows - * the dynamic registration/use of various face object extensions - * through a simple API. - * - ******************************************************************/ - -#include "ttextend.h" -#include "ttengine.h" -#include "ttmemory.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_extend - - - struct TExtension_Registry_ - { - Int num_extensions; - Long cur_offset; - TExtension_Class classes[TT_MAX_EXTENSIONS]; - }; - - typedef struct TExtension_Registry_ TExtension_Registry; - typedef TExtension_Registry* PExtension_Registry; - - - - /* Initialize the extension component */ - - FT_INTERNAL_FUNC( TT_Error ) - TTExtend_Init( PEngine_Instance engine ) - { - TT_Error error; - PExtension_Registry exts; - - - if ( ALLOC( exts, sizeof ( TExtension_Registry ) ) ) - return error; - - exts->num_extensions = 0; - exts->cur_offset = 0; - engine->extension_component = (void*)exts; - - return TT_Err_Ok; - } - - - /* Finalize the extension component */ - - FT_INTERNAL_FUNC( TT_Error ) - TTExtend_Done( PEngine_Instance engine ) - { - FREE( engine->extension_component ); - return TT_Err_Ok; - } - - - /* Register a new extension */ - - FT_EXPORT_FUNC( TT_Error ) - TT_Register_Extension( PEngine_Instance engine, - Long id, - Long size, - PExt_Constructor create, - PExt_Destructor destroy ) - { - PExtension_Registry exts; - PExtension_Class clazz; - Int p; - - - exts = (PExtension_Registry)engine->extension_component; - if ( !exts ) - return TT_Err_Ok; - - p = exts->num_extensions; - - if ( p >= TT_MAX_EXTENSIONS ) - return TT_Err_Too_Many_Extensions; - - clazz = exts->classes + p; - clazz->id = id; - clazz->size = size; - clazz->build = create; - clazz->destroy = destroy; - - clazz->offset = exts->cur_offset; - - exts->num_extensions++; - exts->cur_offset += ( size + ALIGNMENT-1 ) & -ALIGNMENT; - - return TT_Err_Ok; - } - - - /* Query an extension block by extension_ID */ - - FT_EXPORT_FUNC( TT_Error ) - TT_Extension_Get( PFace face, - Long extension_id, - void** extension_block ) - { - PExtension_Registry registry; - PExtension_Class clazz; - Int n; - - - if ( !face->extension ) - return TT_Err_Extensions_Unsupported; - - registry = (PExtension_Registry)face->engine->extension_component; - - for ( n = 0; n < face->n_extensions; n++ ) - { - clazz = registry->classes + n; - if ( clazz->id == extension_id ) - { - *extension_block = (PByte)face->extension + clazz->offset; - return TT_Err_Ok; - } - } - - return TT_Err_Invalid_Extension_Id; - } - - - /* Destroy all extensions within a face object. Called by the */ - /* face object destructor. */ - - FT_INTERNAL_FUNC( TT_Error ) - Extension_Destroy( PFace face ) - { - PEngine_Instance engine = face->engine; - PExtension_Registry registry; - PExtension_Class clazz; - Int n; - PByte ext; - - - registry = (PExtension_Registry)engine->extension_component; - - for ( n = 0; n < face->n_extensions; n++ ) - { - clazz = registry->classes + n; - ext = (PByte)face->extension + clazz->offset; - - /* the destructor is optional */ - if ( clazz->destroy ) - clazz->destroy( (void*)ext, face ); - } - - /* destroy the face's extension block too */ - FREE( face->extension ); - face->n_extensions = 0; - - return TT_Err_Ok; - } - - - /* Create an extension within a face object. Called by the */ - /* face object constructor. */ - - FT_INTERNAL_FUNC( TT_Error ) - Extension_Create( PFace face ) - { - PEngine_Instance engine = face->engine; - PExtension_Registry registry; - PExtension_Class clazz; - TT_Error error; - Int n; - PByte ext; - - - registry = (PExtension_Registry)engine->extension_component; - - face->n_extensions = registry->num_extensions; - if ( ALLOC( face->extension, registry->cur_offset ) ) - return error; - - for ( n = 0; n < face->n_extensions; n++ ) - { - clazz = registry->classes + n; - ext = (PByte)face->extension + clazz->offset; - error = clazz->build( (void*)ext, face ); - if ( error ) - goto Fail; - } - return TT_Err_Ok; - - Fail: - Extension_Destroy( face ); - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttextend.h b/Build/source/libs/freetype/lib/ttextend.h deleted file mode 100644 index 5cc05373f75..00000000000 --- a/Build/source/libs/freetype/lib/ttextend.h +++ /dev/null @@ -1,167 +0,0 @@ -/******************************************************************* - * - * ttextend.h 2.0 - * - * Extensions Interface. - * - * 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 is an updated version of the extension component, now - * located in the main library's source directory. It allows - * the dynamic registration/use of various face object extensions - * through a simple API. - * - ******************************************************************/ - -#ifndef TTEXTEND_H -#define TTEXTEND_H - -#include "ttconfig.h" -#include "tttypes.h" -#include "ttobjs.h" - - -#ifdef __cplusplus - extern "C" { -#endif - - /* The extensions don't need to be integrated at compile time into */ - /* the engine, only at link time. */ - - - /* When a new face object is created, the face constructor calls */ - /* the extension constructor with the following arguments: */ - /* */ - /* ext : typeless pointer to the face's extension block. */ - /* Its size is the one given at registration time */ - /* in the extension class's 'size' field. */ - /* */ - /* face : the parent face object. Note that the extension */ - /* constructor is called when the face object is */ - /* built. */ - - typedef TT_Error TExt_Constructor( void* ext, PFace face ); - - - /* When a face object is destroyed, the face destructor calls */ - /* the extension destructor with the following arguments. */ - /* */ - /* ext : typeless pointer to the face's extension block. */ - /* Its size is the one given at registration time */ - /* in the extension class's 'size' field. */ - /* */ - /* face : the parent face object. Note that the extension */ - /* destructor is called before the actual face object */ - /* is destroyed. */ - - typedef TT_Error TExt_Destructor ( void* ext, PFace face ); - - typedef TExt_Constructor* PExt_Constructor; - typedef TExt_Destructor* PExt_Destructor; - - - struct TExtension_Class_ - { - Long id; /* extension id */ - Long size; /* size in bytes of extension record */ - PExt_Constructor build; /* the extension's class constructor */ - PExt_Destructor destroy; /* the extension's class destructor */ - - Long offset; /* offset of ext. record in face obj */ - /* (set by the engine) */ - }; - - typedef struct TExtension_Class_ TExtension_Class; - typedef TExtension_Class* PExtension_Class; - - -#define Build_Extension_ID( a, b, c, d ) \ - ( ((ULong)(a) << 24) | \ - ((ULong)(b) << 16) | \ - ((ULong)(c) << 8 ) | \ - (ULong)(d) ) - - /* A note regarding extensions and the single-object compilation */ - /* mode : */ - /* */ - /* When the engine is compiled as a single object file, extensions */ - /* must remain linkable *after* compile time. In order to do this, */ - /* we need to export the functions that an extension may need. */ - /* Fortunately, we can limit ourselves to : */ - /* */ - /* o TT_Register_Extension (previously called Extension_Register) */ - /* which is to be called by each extension on within */ - /* it TT_Init_XXXX_Extension initializer. */ - /* */ - /* o File and frame access functions. Fortunately, these already */ - /* have their names prefixed by "TT_", so no change was needed */ - /* except replacing the FT_INTERNAL_DEF macro with FT_EXPORT_DEF. */ - /* */ - /* o Memory access functions, i.e. TT_Alloc and TT_Free. Again, */ - /* the change is minimal */ - /* */ - /* o the table-lookup function : TT_LookUp_Table, formerly known */ - /* as Load_TrueType_Table in ttload.c. */ - /* */ - /* */ - /* Other than that, an extension should be able to #include all */ - /* relevant header files to get access to internal types, but */ - /* should not call engine internal functions.. */ - /* */ - /* If there is a need for a specific internal function call, let */ - /* me known to see if we need to export it by default.. */ - /* - DavidT */ - /* */ - - /* Register a new extension. Called by extension */ - /* service initializers. */ - FT_EXPORT_DEF( TT_Error ) - TT_Register_Extension( PEngine_Instance engine, - Long id, - Long size, - PExt_Constructor create, - PExt_Destructor destroy ); - - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - /* Initialize the extension component */ - FT_INTERNAL_DEF( TT_Error ) - TTExtend_Init( PEngine_Instance engine ); - - /* Finalize the extension component */ - FT_INTERNAL_DEF( TT_Error ) - TTExtend_Done( PEngine_Instance engine ); - - /* Create an extension within a face object. Called by the */ - /* face object constructor. */ - FT_INTERNAL_DEF( TT_Error ) - Extension_Create( PFace face ); - - /* Destroy all extensions within a face object. Called by the */ - /* face object destructor. */ - FT_INTERNAL_DEF( TT_Error ) - Extension_Destroy( PFace face ); -#endif - - /* Query an extension block by extension_ID. Called by extension */ - /* service routines. */ - FT_EXPORT_DEF( TT_Error ) - TT_Extension_Get( PFace face, - Long extension_id, - void** extension_block ); - -#ifdef __cplusplus - } -#endif - - -#endif /* TTEXTEND_H */ - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttfile.c b/Build/source/libs/freetype/lib/ttfile.c deleted file mode 100644 index 256082dad55..00000000000 --- a/Build/source/libs/freetype/lib/ttfile.c +++ /dev/null @@ -1,1176 +0,0 @@ -/******************************************************************* - * - * ttfile.c (extended version) 2.1 - * - * File I/O Component (body). - * - * 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. - * - * NOTES: - * - * This implementation relies on the ANSI libc. You may wish to - * modify it to get rid of libc and go straight to the your - * platform's stream routines. - * - * The same source code can be used for thread-safe and re-entrant - * builds of the library. - * - * Changes between 2.0 and 2.1 : - * - * - it is now possible to close a stream's file handle explicitely - * through the new API "TT_Flush_Stream". This will simply close - * a stream's file handle (useful to save system resources when - * dealing with lots of opened fonts). Of course, the function - * "TT_Use_Stream" will automatically re-open a stream's handle if - * necessary. - * - * - added "TT_Stream_Size" to replace "TT_File_Size" which wasn't - * used anyway. This one returns the size of any stream, even - * flushed one (when the previous TT_File_Size could only return - * the size of the current working stream). This is used by the - * new "Load_TrueType_Any" function in the tables loader. - * - ******************************************************************/ - -#include "ttconfig.h" - -#include -#include - -#ifdef HAVE_UNISTD_H -#include -#endif - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttmemory.h" -#include "ttfile.h" /* our prototypes */ - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_file - - -/* For now, we don't define additional error messages in the core library */ -/* to report open-on demand errors. Define these error as standard ones */ - -#define TT_Err_Could_Not_ReOpen_File TT_Err_Could_Not_Open_File -#define TT_Err_Could_Not_ReSeek_File TT_Err_Could_Not_Open_File - - /* This definition is mandatory for each file component! */ - FT_EXPORT_FUNC( const ) - TFileFrame TT_Null_FileFrame = { NULL, 0, 0 }; - -/* It has proven useful to do some bounds checks during development phase. */ -/* They should probably be undefined for speed reasons in a later release. */ - -#if DEBUG_FILE -#define CHECK_FRAME( frame, n ) \ - do { \ - if ( frame.cursor + n > frame.address + frame.size ) \ - Panic( "Frame boundary error!\n" ); \ - } while ( 0 ) -#else -#define CHECK_FRAME( frame, n ) /* nothing */ -#endif - - /* Because a stream can be flushed, i.e. its file handle can be */ - /* closed to save system resources, we must keep the stream's file */ - /* pathname to be able to re-open it on demand when it is flushed */ - - struct TStream_Rec_; - typedef struct TStream_Rec_ TStream_Rec; - typedef TStream_Rec* PStream_Rec; - - struct TStream_Rec_ - { - Bool opened; /* is the stream handle opened ? */ - TT_Text* name; /* the file's pathname */ - Long position; /* current position within the file */ - - FILE* file; /* file handle */ - Long base; /* stream base in file */ - Long size; /* stream size in file */ - }; - - /* We support embedded TrueType files by allowing them to be */ - /* inside any file, at any location, hence the 'base' argument. */ - /* Note however that the current implementation does not allow you */ - /* to specify a 'base' index when opening a file. */ - /* (will come later) */ - /* I still don't know if this will turn out useful ?? - DavidT */ - -#define STREAM2REC( x ) ( (TStream_Rec*)HANDLE_Val( x ) ) - - static TT_Error Stream_Activate ( PStream_Rec stream ); - static TT_Error Stream_Deactivate( PStream_Rec stream ); - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /**** ****/ - /**** N O N R E E N T R A N T I M P L E M E N T A T I O N ****/ - /**** ****/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - - /* in non-rentrant builds, we allocate a single block where we'll */ - /* place all the frames smaller than FRAME_CACHE_SIZE, rather than */ - /* allocating a new block on each access. Bigger frames will be */ - /* malloced normally in the heap. */ - /* */ - /* See TT_Access_Frame() and TT_Forget_Frame() for details. */ - -#define FRAME_CACHE_SIZE 2048 - - /* The TFile_Component structure holds all the data that was */ - /* previously declared static or global in this component. */ - /* */ - /* It is accessible through the 'engine.file_component' */ - /* variable in re-entrant builds, or directly through the */ - /* static 'files' variable in other builds. */ - - struct TFile_Component_ - { - TMutex lock; /* used by the thread-safe build only */ - Byte* frame_cache; /* frame cache */ - PStream_Rec stream; /* current stream */ - TFileFrame frame; /* current frame */ - }; - - typedef struct TFile_Component_ TFile_Component; - - static TFile_Component files; - -#define CUR_Stream files.stream -#define CUR_Frame files.frame - -#define STREAM_VARS /* void */ -#define STREAM_VAR /* void */ - -/* The macro CUR_Stream denotes the current input stream. */ -/* Note that for the re-entrant version, the 'stream' name has been */ -/* chosen according to the macro STREAM_ARGS. */ - -/* The macro CUR_Frame denotes the current file frame. */ -/* Note that for the re-entrant version, the 'frame' name has been */ -/* chosen according to the macro FRAME_ARGS. */ - -/* The macro STREAM_VAR is used when calling public functions */ -/* that need an 'optional' stream argument. */ - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - TT_Error error; - - - MUTEX_Create( files.lock ); - files.stream = NULL; - ZERO_Frame( files.frame ); - - if ( ALLOC( files.frame_cache, FRAME_CACHE_SIZE ) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - FREE( files.frame_cache ); - MUTEX_Destroy( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Copies or duplicates a given stream. - * - * Input : org_stream original stream - * stream target stream (copy or duplicate) - * - * Output : Error code. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream org_stream, - TT_Stream* stream ) - { - MUTEX_Lock( files.lock ); /* lock file mutex */ - - *stream = org_stream; /* copy the stream */ - files.stream = STREAM2REC(org_stream); /* set current stream */ - - Stream_Activate( files.stream ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream target stream - * - * Output : Error code. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - HANDLE_Set( *stream, NULL ); - MUTEX_Release( files.lock ); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( size <= FRAME_CACHE_SIZE ) - { - /* use the cache */ - CUR_Frame.address = files.frame_cache; - CUR_Frame.size = FRAME_CACHE_SIZE; - } - else - { - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - } - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if (error) - { - if ( size > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - CUR_Frame.address = NULL; - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * `size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function truncates `size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - Long readBytes, requested; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( size <= FRAME_CACHE_SIZE ) - { - /* use the cache */ - CUR_Frame.address = files.frame_cache; - CUR_Frame.size = FRAME_CACHE_SIZE; - } - else - { - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - } - - requested = size; - readBytes = CUR_Stream->size - TT_File_Pos( STREAM_VAR ); - if ( size > readBytes ) - size = readBytes; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if (error) - { - if ( requested > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - CUR_Frame.address = NULL; - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - if ( CUR_Frame.size > FRAME_CACHE_SIZE ) - FREE( CUR_Frame.address ); - - ZERO_Frame( CUR_Frame ); - - return TT_Err_Ok; - } - - -#else /* TT_CONFIG_OPTION_THREAD_SAFE */ - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /******** ********/ - /******** R E E N T R A N T I M P L E M E N T A T I O N ********/ - /******** ********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/* a simple macro to access the file component's data */ -#define files ( *((TFile_Component*)engine.file_component) ) - -#define CUR_Stream STREAM2REC( stream ) /* re-entrant macros */ -#define CUR_Frame (*frame) - -#define STREAM_VARS stream, -#define STREAM_VAR stream - - -/******************************************************************* - * - * Function : TTFile_Init - * - * Description : Initializes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Init( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTFile_Done - * - * Description : Finalizes the File component. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTFile_Done( PEngine_Instance engine ) - { - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Use_Stream - * - * Description : Duplicates a stream for a new usage. - * - * Input : input_stream source stream to duplicate - * copy address of target duplicate stream - * - * Output : error code. - * The target stream is set to NULL in case of failure. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Use_Stream( TT_Stream input_stream, - TT_Stream* copy ) - { - PStream_Rec rec = STREAM2REC( input_stream ); - - return TT_Open_Stream( rec->name, copy ); - } - - -/******************************************************************* - * - * Function : TT_Done_Stream - * - * Description : Releases a given stream. - * - * Input : stream target stream - * - * Output : - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Done_Stream( TT_Stream* stream ) - { - return TT_Close_Stream( stream ); - } - - -/******************************************************************* - * - * Function : TT_Access_Frame - * - * Description : Notifies the component that we're going to read - * 'size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function fails if the byte range is not within the - * the file, or if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big in both cases). - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - FREE( CUR_Frame.address ); - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Check_And_Access_Frame - * - * Description : Notifies the component that we're going to read - * `size' bytes from the current file position. - * This function should load/cache/map these bytes - * so that they will be addressed by the GET_xxx - * functions easily. - * - * Input : size number of bytes to access. - * - * Output : SUCCESS on success. FAILURE on error. - * - * Notes: The function truncates `size' if the byte range is not - * within the file. - * - * It will fail if there is not enough memory to cache - * the bytes properly (which usually means that `size' is - * too big). - * - * It will fail if you make two consecutive calls - * to TT_Access_Frame(), without a TT_Forget_Frame() between - * them. - * - * The only difference with TT_Access_Frame() is that we - * check that the frame is within the current file. We - * otherwise truncate it. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ) - { - TT_Error error; - Long readBytes; - - - if ( CUR_Frame.address != NULL ) - return TT_Err_Nested_Frame_Access; - - if ( ALLOC( CUR_Frame.address, size ) ) - return error; - CUR_Frame.size = size; - - readBytes = CUR_Stream->size - TT_File_Pos( STREAM_VAR ); - if ( size > readBytes ) - size = readBytes; - - error = TT_Read_File( STREAM_VARS (void*)CUR_Frame.address, size ); - if ( error ) - { - FREE( CUR_Frame.address ); - CUR_Frame.size = 0; - } - - CUR_Frame.cursor = CUR_Frame.address; - return error; - } - - -/******************************************************************* - * - * Function : TT_Forget_Frame - * - * Description : Releases a cached frame after reading. - * - * Input : None - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Forget_Frame( STREAM_ARGS FRAME_ARG ) - { - if ( CUR_Frame.address == NULL ) - return TT_Err_Nested_Frame_Access; - - FREE( CUR_Frame.address ); - ZERO_Frame( CUR_Frame ); - - return TT_Err_Ok; - } - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - /*********** ***********/ - /*********** C O M M O N I M P L E M E N T A T I O N ***********/ - /*********** ***********/ - /*******************************************************************/ - /*******************************************************************/ - /*******************************************************************/ - -/******************************************************************* - * - * Function : Stream_Activate - * - * Description : activates a stream, this will either: - * - open a new file handle if the stream is closed - * - move the stream to the head of the linked list - * - * Input : stream the stream to activate - * - * Output : error condition. - * - * Note : This function is also called with fresh new streams - * created by TT_Open_Stream(). They have their 'size' - * field set to -1. - * - ******************************************************************/ - - static TT_Error Stream_Activate( PStream_Rec stream ) - { - if ( !stream->opened ) - { - if ( (stream->file = fopen( (TT_Text*)stream->name, "rb" )) == 0 ) - return TT_Err_Could_Not_ReOpen_File; - - stream->opened = TRUE; - - /* A newly created stream has a size field of -1 */ - if ( stream->size < 0 ) - { - fseek( stream->file, 0, SEEK_END ); - stream->size = ftell( stream->file ); - fseek( stream->file, 0, SEEK_SET ); - } - - /* Reset cursor in file */ - if ( stream->position ) - { - if ( fseek( stream->file, stream->position, SEEK_SET ) != 0 ) - { - /* error during seek */ - fclose( stream->file ); - stream->opened = FALSE; - return TT_Err_Could_Not_ReSeek_File; - } - } - } - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Stream_DeActivate - * - * Description : deactivates a stream, this will : - * - close its file handle if it was opened - * - remove it from the opened list if necessary - * - * Input : stream the stream to deactivate - * - * Output : Error condition - * - * Note : the function is called whenever a stream is deleted - * (_not_ when a stream handle's is closed due to an - * activation). However, the stream record isn't - * destroyed by it.. - * - ******************************************************************/ - - static TT_Error Stream_Deactivate( PStream_Rec stream ) - { - if ( stream->opened ) - { - /* Save its current position within the file */ - stream->position = ftell( stream->file ); - fclose( stream->file ); - stream->file = 0; - stream->opened = FALSE; - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Stream_Size - * - * Description : Returns the length of a given stream, even if it - * is flushed. - * - * Input : stream the stream - * - * Output : Length of stream in bytes. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Stream_Size( TT_Stream stream ) - { - PStream_Rec rec = STREAM2REC( stream ); - - - if ( rec ) - return rec->size; - else - return 0; /* invalid stream - return 0 */ - } - - -/******************************************************************* - * - * Function : TT_Open_Stream - * - * Description : Opens the font file and saves the total file size. - * - * Input : error address of stream's error variable - * (re-entrant build only) - * filepathname pathname of the file to open - * stream address of target TT_Stream structure - * - * Output : SUCCESS on sucess, FAILURE on error. - * The target stream is set to -1 in case of failure. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Open_Stream( const TT_Text* filepathname, - TT_Stream* stream ) - { - Int len; - TT_Error error; - PStream_Rec stream_rec; - - if ( ALLOC( *stream, sizeof ( TStream_Rec ) ) ) - return error; - - stream_rec = STREAM2REC( *stream ); - - stream_rec->file = NULL; - stream_rec->size = -1L; - stream_rec->base = 0; - stream_rec->opened = FALSE; - stream_rec->position = 0; - - len = strlen( filepathname ) + 1; - if ( ALLOC( stream_rec->name, len ) ) - goto Fail; - - strncpy( stream_rec->name, filepathname, len ); - - error = Stream_Activate( stream_rec ); - if ( error ) - goto Fail_Activate; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - CUR_Stream = stream_rec; -#endif - - return TT_Err_Ok; - - Fail_Activate: - FREE( stream_rec->name ); - Fail: - FREE( stream_rec ); - return error; - } - - -/******************************************************************* - * - * Function : TT_Close_Stream - * - * Description : Closes a stream. - * - * Input : stream address of target TT_Stream structure - * - * Output : SUCCESS (always). - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TT_Close_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - Stream_Deactivate( rec ); - FREE( rec->name ); - FREE( rec ); - - HANDLE_Set( *stream, NULL ); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Flush_Stream - * - * Description : Flushes a stream, i.e., closes its file handle. - * - * Input : stream address of target TT_Stream structure - * - * Output : Error code - * - * NOTE : Never flush the current opened stream. This means that - * you should _never_ call this function between a - * TT_Use_Stream() and a TT_Done_Stream()! - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Flush_Stream( TT_Stream* stream ) - { - PStream_Rec rec = STREAM2REC( *stream ); - - - if ( rec ) - { - Stream_Deactivate( rec ); - return TT_Err_Ok; - } - else - return TT_Err_Invalid_Argument; - } - - -/******************************************************************* - * - * Function : TT_Seek_File - * - * Description : Seeks the file cursor to a different position. - * - * Input : position new position in file - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Seek_File( STREAM_ARGS Long position ) - { - position += CUR_Stream->base; - - if ( fseek( CUR_Stream->file, position, SEEK_SET ) ) - return TT_Err_Invalid_File_Offset; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Skip_File - * - * Description : Skips forward the file cursor. - * - * Input : distance number of bytes to skip - * - * Output : see TT_Seek_File() - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Skip_File( STREAM_ARGS Long distance ) - { - return TT_Seek_File( STREAM_VARS ftell( CUR_Stream->file ) - - CUR_Stream->base + distance ); - } - - -/******************************************************************* - * - * Function : TT_Read_File - * - * Description : Reads a chunk of the file and copies it to memory. - * - * Input : buffer target buffer - * count length in bytes to read - * - * Output : SUCCESS on success. FAILURE if out of range. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_File( STREAM_ARGS void* buffer, Long count ) - { - if ( fread( buffer, 1, count, CUR_Stream->file ) != (ULong)count ) - return TT_Err_Invalid_File_Read; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_Read_At_File - * - * Description : Reads file at a specified position. - * - * Input : position position to seek to before read - * buffer target buffer - * count number of bytes to read - * - * Output : SUCCESS on success. FAILURE if error. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Read_At_File( STREAM_ARGS Long position, - void* buffer, - Long count ) - { - TT_Error error; - - - if ( (error = TT_Seek_File( STREAM_VARS position )) != TT_Err_Ok || - (error = TT_Read_File( STREAM_VARS buffer, count )) != TT_Err_Ok ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TT_File_Pos - * - * Description : Returns current file seek pointer. - * - * Input : none - * - * Output : Current file position. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_File_Pos( STREAM_ARG ) - { - return ftell( CUR_Stream->file ) - CUR_Stream->base; - } - - -/******************************************************************* - * - * Function : GET_Byte - * - * Description : Extracts a byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted Byte. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( Byte ) - TT_Get_Byte( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Byte)(*CUR_Frame.cursor++); - } -#endif - - -/******************************************************************* - * - * Function : GET_Char - * - * Description : Extracts a signed byte from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted char. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Char ) - TT_Get_Char( FRAME_ARG ) - { - CHECK_FRAME( CUR_Frame, 1 ); - - return (Char)(*CUR_Frame.cursor++); - } - - -/******************************************************************* - * - * Function : GET_Short - * - * Description : Extracts a short from the current file frame. - * - * Input : None or current frame - * - * Output : Extracted short. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Short ) - TT_Get_Short( FRAME_ARG ) - { - Short getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = (Short)((CUR_Frame.cursor[0] << 8) | - CUR_Frame.cursor[1]); - - CUR_Frame.cursor += 2; - - return getshort; - } - - -/******************************************************************* - * - * Function : GET_UShort - * - * Description : Extracts an unsigned short from the frame. - * - * Input : None or current frame - * - * Output : Extracted ushort. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( UShort ) - TT_Get_UShort( FRAME_ARG ) - { - UShort getshort; - - - CHECK_FRAME( CUR_Frame, 2 ); - - getshort = (UShort)((CUR_Frame.cursor[0] << 8) | - CUR_Frame.cursor[1]); - - CUR_Frame.cursor += 2; - - return getshort; - } -#endif - - -/******************************************************************* - * - * Function : GET_Long - * - * Description : Extracts a long from the frame. - * - * Input : None or current frame - * - * Output : Extracted long. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_Get_Long( FRAME_ARG ) - { - Long getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ((Long)CUR_Frame.cursor[0] << 24) | - ((Long)CUR_Frame.cursor[1] << 16) | - ((Long)CUR_Frame.cursor[2] << 8 ) | - (Long)CUR_Frame.cursor[3]; - - CUR_Frame.cursor += 4; - - return getlong; - } - - -/******************************************************************* - * - * Function : GET_ULong - * - * Description : Extracts an unsigned long from the frame. - * - * Input : None or current frame - * - * Output : Extracted ulong. - * - ******************************************************************/ -#if 0 - FT_EXPORT_FUNC( ULong ) - TT_Get_ULong( FRAME_ARG ) - { - ULong getlong; - - - CHECK_FRAME( CUR_Frame, 4 ); - - getlong = ( ((ULong)CUR_Frame.cursor[0] << 24) | - ((ULong)CUR_Frame.cursor[1] << 16) | - ((ULong)CUR_Frame.cursor[2] << 8 ) | - (ULong)CUR_Frame.cursor[3] ); - - CUR_Frame.cursor += 4; - - return getlong; - } -#endif - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttfile.h b/Build/source/libs/freetype/lib/ttfile.h deleted file mode 100644 index 13d5fb98e15..00000000000 --- a/Build/source/libs/freetype/lib/ttfile.h +++ /dev/null @@ -1,430 +0,0 @@ -/******************************************************************* - * - * ttfile.h 1.4 - * - * File I/O Component (specification). - * - * Copyright 1996-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. - * - * Changes between 1.4 and 1.2 : - * - * - the macros which used to be in ttload.h are now here - * (with their underlying functions) - * - * Changes between 1.3 and 1.2: - * - * - all functions report error values now - * - * - the stream semantics have also changed - * - * Changes between 1.2 and 1.1: - * - * - added macros to support re-entrant builds - * - * - added the TT_Duplicate_File function to duplicate streams - * (re-entrant builds only) - * - ******************************************************************/ - -#ifndef TTFILE_H -#define TTFILE_H - -#include "ttconfig.h" -#include "freetype.h" -#include "ttengine.h" -#include "ttdebug.h" - -#ifdef __cplusplus - extern "C" { -#endif - - /* Initialize file component */ - FT_INTERNAL_DEF( TT_Error ) - TTFile_Init( PEngine_Instance engine ); - - /* Done with file component */ - FT_INTERNAL_DEF( TT_Error ) - TTFile_Done( PEngine_Instance engine ); - - - /****************************************************************/ - /* */ - /* Macros. */ - /* */ - /****************************************************************/ - -/* The following macros are defined to simplify the writing of */ -/* the various table and glyph loaders. */ - -/* For examples see the code in ttload.c, ttgload.c etc. */ - -#define USE_Stream( original, duplicate ) \ - ( (error = TT_Use_Stream( original, &duplicate )) != TT_Err_Ok ) - -#define DONE_Stream( _stream ) \ - TT_Done_Stream( &_stream ) - -/* Define a file frame -- use it only when needed */ -#define DEFINE_A_FRAME TFileFrame frame = TT_Null_FileFrame - -/* Define a stream -- use it only when needed */ -#define DEFINE_A_STREAM TT_Stream stream - - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE /* re-entrant implementation */ - -/* The following macros define the necessary local */ -/* variables used to access streams and frames. */ - -/* Define stream locals with frame */ -#define DEFINE_STREAM_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM; \ - DEFINE_A_FRAME - -/* Define stream locals without frame */ -#define DEFINE_STREAM_LOCALS_WO_FRAME \ - TT_Error error; \ - DEFINE_A_STREAM - -/* Define locals with a predefined stream in reentrant mode -- see ttload.c */ -#define DEFINE_LOAD_LOCALS( STREAM ) \ - TT_Error error; \ - DEFINE_A_STREAM = (STREAM); \ - DEFINE_A_FRAME - -/* Define locals without frame with a predefined stream - see ttload.c */ -#define DEFINE_LOAD_LOCALS_WO_FRAME( STREAM ) \ - TT_Error error; \ - DEFINE_A_STREAM = (STREAM) - -/* Define all locals necessary to access a font file */ -#define DEFINE_ALL_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM; \ - DEFINE_A_FRAME - - -#define ACCESS_Frame( _size_ ) \ - ( (error = TT_Access_Frame( stream, \ - &frame, \ - (Long)(_size_) )) != TT_Err_Ok ) -#define CHECK_AND_ACCESS_Frame( _size_ ) \ - ( (error = TT_Check_And_Access_Frame( stream, \ - &frame, \ - (Long)(_size_) )) != TT_Err_Ok ) -#define FORGET_Frame() \ - ( (void)TT_Forget_Frame( stream, &frame ) ) - -#define GET_Byte() TT_Get_Byte ( &frame ) -#define GET_Char() TT_Get_Char ( &frame ) -#define GET_UShort() TT_Get_UShort( &frame ) -#define GET_Short() TT_Get_Short ( &frame ) -#define GET_Long() TT_Get_Long ( &frame ) -#define GET_ULong() TT_Get_ULong ( &frame ) -#define GET_Tag4() TT_Get_ULong ( &frame ) - -#define FILE_Pos() TT_File_Pos ( stream ) - -#define FILE_Seek( _position_ ) \ - ( (error = TT_Seek_File( stream, \ - (Long)(_position_) )) != TT_Err_Ok ) -#define FILE_Skip( _distance_ ) \ - ( (error = TT_Skip_File( stream, \ - (Long)(_distance_) )) != TT_Err_Ok ) -#define FILE_Read( buffer, count ) \ - ( (error = TT_Read_File ( stream, \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) -#define FILE_Read_At( pos, buffer, count ) \ - ( (error = TT_Read_At_File( stream, \ - (Long)(pos), \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) - -#else /* thread-safe implementation */ - -/* Define stream locals with frame -- nothing in thread-safe mode */ -#define DEFINE_STREAM_LOCALS \ - TT_Error error - -/* Define stream locals without frame -- nothing in thread-safe mode */ -#define DEFINE_STREAM_LOCALS_WO_FRAME \ - TT_Error error - -/* Define locals with a predefined stream in reentrant mode -- see ttload.c */ -#define DEFINE_LOAD_LOCALS( STREAM ) \ - TT_Error error - - -/* Define locals without frame with a predefined stream - see ttload.c */ -#define DEFINE_LOAD_LOCALS_WO_FRAME( STREAM ) \ - TT_Error error - -/* Define all locals necessary to access a font file */ -#define DEFINE_ALL_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM - - -#define ACCESS_Frame( _size_ ) \ - ( (error = TT_Access_Frame( (Long)(_size_) )) != TT_Err_Ok ) -#define CHECK_AND_ACCESS_Frame( _size_ ) \ - ( (error = TT_Check_And_Access_Frame( (Long)(_size_) )) != TT_Err_Ok ) -#define FORGET_Frame() \ - ( (void)TT_Forget_Frame() ) - -#define GET_Byte() TT_Get_Byte () -#define GET_Char() TT_Get_Char () -#define GET_UShort() TT_Get_UShort() -#define GET_Short() TT_Get_Short () -#define GET_Long() TT_Get_Long () -#define GET_ULong() TT_Get_ULong () -#define GET_Tag4() TT_Get_ULong () - -#define FILE_Pos() TT_File_Pos() - -#define FILE_Seek( _position_ ) \ - ( (error = TT_Seek_File( (Long)(_position_) )) != TT_Err_Ok ) -#define FILE_Skip( _distance_ ) \ - ( (error = TT_Skip_File( (Long)(_distance_) )) != TT_Err_Ok ) -#define FILE_Read( buffer, count ) \ - ( (error = TT_Read_File ( buffer, \ - (Long)(count) )) != TT_Err_Ok ) -#define FILE_Read_At( pos, buffer, count ) \ - ( (error = TT_Read_At_File( (Long)(pos), \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /****************************************************************/ - /* */ - /* Stream functions. */ - /* */ - /****************************************************************/ - - /* Open a file and return a stream handle for it. */ - /* Should only be used for a new face object's main stream. */ - - FT_INTERNAL_DEF( TT_Error ) - TT_Open_Stream( const TT_Text* name, - TT_Stream* stream ); - - - /* Closes, then discards, a stream when it's no longer needed. */ - /* Should only be used for a stream opend with TT_Open_Stream(). */ - - FT_INTERNAL_DEF( TT_Error ) - TT_Close_Stream( TT_Stream* stream ); - - - /* Informs the component that we're going to use the file */ - /* opened in 'org_stream', and report errors to the 'error' */ - /* variable. */ - - /* in non re-entrant builds, 'org_stream' is simply copied */ - /* to 'stream'. Otherwise, the latter is a duplicate handle */ - /* for the file opened with 'org_stream' */ - - FT_EXPORT_DEF( TT_Error ) - TT_Use_Stream( TT_Stream org_stream, - TT_Stream* stream ); - - /* Informs the component that we don't need to perform file */ - /* operations on the stream 'stream' anymore. This must be */ - /* used with streams "opened" with TT_Use_Stream() only! */ - - /* in re-entrant builds, this will really discard the stream */ - - FT_EXPORT_DEF( TT_Error ) - TT_Done_Stream( TT_Stream* stream ); - - /* Closes the stream's file handle to release system resources */ - /* The function TT_Use_Stream automatically re-activates a */ - /* flushed stream when it uses one */ - - FT_EXPORT_DEF( TT_Error ) - TT_Flush_Stream( TT_Stream* stream ); - -/* The macros STREAM_ARGS and STREAM_ARG let us build a thread-safe */ -/* or re-entrant implementation depending on a single configuration */ -/*define. */ - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE - -#define STREAM_ARGS TT_Stream stream, -#define STREAM_ARG TT_Stream stream - -#else - -#define STREAM_ARGS /* void */ -#define STREAM_ARG void - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /****************************************************************/ - /* */ - /* File Functions. */ - /* */ - /* The following functions perform file operations on the */ - /* currently 'used' stream. In thread-safe builds, only one */ - /* stream can be used at a time. Synchronisation is performed */ - /* through the Use_Stream()/Done_Stream() functions. */ - /* */ - /****************************************************************/ - - /* Read 'count' bytes from file into 'buffer' */ - - FT_EXPORT_DEF( TT_Error ) - TT_Read_File( STREAM_ARGS void* buffer, - Long count ); - - - /* Seek file cursor to a given position */ - - FT_EXPORT_DEF( TT_Error ) - TT_Seek_File( STREAM_ARGS Long position ); - - - /* Skip the next 'distance' bytes in file */ - - FT_EXPORT_DEF( TT_Error ) - TT_Skip_File( STREAM_ARGS Long distance ); - - - /* Read the 'count' bytes at 'position' into 'buffer' */ - - FT_EXPORT_DEF( TT_Error ) - TT_Read_At_File( STREAM_ARGS Long position, - void* buffer, - Long count ); - - /* Return current file position */ - - FT_EXPORT_DEF( Long ) - TT_File_Pos( STREAM_ARG ); - - /* Return length of a given stream, even if it is flushed */ - - FT_EXPORT_DEF( Long ) - TT_Stream_Size( TT_Stream stream ); - - - /****************************************************************/ - /* */ - /* Frame operations. */ - /* */ - /* For a comprehensive explanation of frames, please refer to */ - /* the documentation files. */ - /* */ - /****************************************************************/ - - /* Frame type declaration.*/ - - struct TFileFrame_ - { - Byte* address; /* frame buffer */ - Byte* cursor; /* current cursor position in frame */ - Long size; /* frame size */ - }; - - typedef struct TFileFrame_ TFileFrame; - - FT_EXPORT_DECL( const TFileFrame ) - TT_Null_FileFrame; - - -/* The macro ZERO_Frame is used to define and init a frame. */ -/* It is important to have a default frame of { NULL, NULL, 0 } */ -/* before a call to TT_Access_Frame(). Otherwise, the call will */ -/* fail with a TT_Err_Nested_Frame_Accesses error. */ - -#define ZERO_Frame( frame ) \ - { \ - (frame).address = NULL; \ - (frame).cursor = NULL; \ - (frame).size = 0; \ - } - - -/* The macros FRAME_ARGS and FRAME_ARG let us build a thread-safe */ -/* or re-entrant implementation depending on a single configuration */ -/* define */ - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE - -#define FRAME_ARGS TFileFrame* frame, -#define FRAME_ARG TFileFrame* frame - -#else - -#define FRAME_ARGS /* void */ -#define FRAME_ARG void - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - - /* Access the next 'size' bytes from current position. */ - /* Fails if all bytes cannot be read/accessed. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ); - - - /* Access the bytes located in the next 'size' bytes of the file. */ - /* Doesn't fail if less than 'size' bytes are accessible (like */ - /* at the end of the file). */ - - FT_EXPORT_DEF( TT_Error ) - TT_Check_And_Access_Frame( STREAM_ARGS FRAME_ARGS Long size ); - - /* Forget frame */ - - FT_EXPORT_DEF( TT_Error ) - TT_Forget_Frame( STREAM_ARGS FRAME_ARG ); - - - /* primitive routines for data accessing */ - - FT_EXPORT_DEF( Char ) - TT_Get_Char( FRAME_ARG ); - - FT_EXPORT_DEF( Short ) - TT_Get_Short( FRAME_ARG ); - - FT_EXPORT_DEF( Long ) - TT_Get_Long( FRAME_ARG ); - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE - -#define TT_Get_Byte( frame ) ( (Byte )TT_Get_Char ( frame ) ) -#define TT_Get_UShort( frame ) ( (UShort)TT_Get_Short( frame ) ) -#define TT_Get_ULong( frame ) ( (ULong )TT_Get_Long ( frame ) ) - -#else - -#define TT_Get_Byte() ( (Byte )TT_Get_Char () ) -#define TT_Get_UShort() ( (UShort)TT_Get_Short() ) -#define TT_Get_ULong() ( (ULong )TT_Get_Long () ) - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - -#ifdef __cplusplus - } -#endif - -#endif /* TTFILE_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttgload.c b/Build/source/libs/freetype/lib/ttgload.c deleted file mode 100644 index e7a838a40a7..00000000000 --- a/Build/source/libs/freetype/lib/ttgload.c +++ /dev/null @@ -1,1353 +0,0 @@ -/******************************************************************* - * - * ttgload.c 1.0 - * - * TrueType Glyph Loader. - * - * 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 "tttypes.h" -#include "ttdebug.h" -#include "ttcalc.h" -#include "ttfile.h" - -#include "tttables.h" -#include "ttobjs.h" -#include "ttgload.h" - -#include "ttmemory.h" -#include "tttags.h" -#include "ttload.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_gload - - -/* composite font flags */ - -#define ARGS_ARE_WORDS 0x001 -#define ARGS_ARE_XY_VALUES 0x002 -#define ROUND_XY_TO_GRID 0x004 -#define WE_HAVE_A_SCALE 0x008 -/* reserved 0x010 */ -#define MORE_COMPONENTS 0x020 -#define WE_HAVE_AN_XY_SCALE 0x040 -#define WE_HAVE_A_2X2 0x080 -#define WE_HAVE_INSTR 0x100 -#define USE_MY_METRICS 0x200 - - -/********************************************************/ -/* Return 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). */ -/* */ -/* This function will much probably move to another */ -/* component in the short future, but I haven't decided */ -/* which yet... */ - - FT_INTERNAL_FUNC( void ) - TT_Get_Metrics( TT_Horizontal_Header* header, - UShort index, - Short* bearing, - UShort* advance ) - { - PLongMetrics longs_m; - - UShort k = header->number_Of_HMetrics; - - - if ( index < k ) - { - longs_m = (PLongMetrics)header->long_metrics + index; - *bearing = longs_m->bearing; - *advance = longs_m->advance; - } - else - { - *bearing = ((PShortMetrics)header->short_metrics)[index - k]; - *advance = ((PLongMetrics)header->long_metrics)[k - 1].advance; - } - } - - -/********************************************************/ -/* Return horizontal metrics in font units for a given */ -/* glyph. If `check' is true, take care of mono-spaced */ -/* fonts by returning the advance width max. */ - - static void Get_HMetrics( PFace face, - UShort index, - Bool check, - Short* lsb, - UShort* aw ) - { - TT_Get_Metrics( &face->horizontalHeader, index, lsb, aw ); - - if ( check && face->postscript.isFixedPitch ) - *aw = face->horizontalHeader.advance_Width_Max; - } - - -/********************************************************/ -/* Return advance width table for a given pixel size */ -/* if it is found in the font's `hdmx' table (if any). */ - - static PByte Get_Advance_Widths( PFace face, - UShort ppem ) - { - 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; - } - - -/********************************************************/ -/* Copy current glyph into original one. */ - -#define cur_to_org( n, zone ) \ - MEM_Copy( (zone)->org, (zone)->cur, (n) * sizeof ( TT_Vector ) ) - -/********************************************************/ -/* copy original glyph into current one */ - -#define org_to_cur( n, zone ) \ - MEM_Copy( (zone)->cur, (zone)->org, (n) * sizeof ( TT_Vector ) ) - -/********************************************************/ -/* translate an array of coordinates */ - - static void translate_array( UShort n, - TT_Vector* coords, - TT_Pos delta_x, - TT_Pos delta_y ) - { - UShort 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; - } - - -/********************************************************/ -/* mount one zone on top of another */ - - static void mount_zone( PGlyph_Zone source, - PGlyph_Zone target ) - { - UShort np; - Short nc; - - np = source->n_points; - nc = source->n_contours; - - target->org = source->org + np; - target->cur = source->cur + np; - target->touch = source->touch + np; - - target->contours = source->contours + nc; - - target->n_points = 0; - target->n_contours = 0; - } - - -/******************************************************************* - * - * Function: Load_Simple_Glyph - * - ******************************************************************/ - - static TT_Error Load_Simple_Glyph( PExecution_Context exec, - TT_Stream input, - Short n_contours, - Short left_contours, - UShort left_points, - UShort load_flags, - PSubglyph_Record subg ) - { - DEFINE_LOAD_LOCALS( input ); - - PGlyph_Zone pts; - Short k; - UShort j; - UShort n_points, n_ins; - PFace face; - Byte* flag; - TT_Vector* vec; - TT_F26Dot6 x, y; - - - face = exec->face; - - /* simple check */ - if ( n_contours > left_contours ) - { - PTRACE0(( "ERROR: Glyph index %ld has %d contours > left %d\n", - subg->index, n_contours, left_contours )); - return TT_Err_Too_Many_Contours; - } - - - /* preparing the execution context */ - mount_zone( &subg->zone, &exec->pts ); - - /* reading the contours endpoints */ - if ( ACCESS_Frame( (n_contours + 1) * 2L ) ) - return error; - - PTRACE4(( " Contour endpoints:" )); - - for ( k = 0; k < n_contours; k++ ) - { - exec->pts.contours[k] = GET_UShort(); - PTRACE4(( " %d", exec->pts.contours[k] )); - } - PTRACE4(( "\n" )); - - if ( n_contours > 0 ) - n_points = exec->pts.contours[n_contours - 1] + 1; - else - n_points = 0; - - n_ins = GET_UShort(); - - FORGET_Frame(); - - if ( n_points > left_points ) - { - PTRACE0(( "ERROR: Too many points in glyph %ld\n", subg->index )); - return TT_Err_Too_Many_Points; - } - - /* loading instructions */ - - PTRACE4(( " Instructions size: %d\n", n_ins )); - - if ( n_ins > face->maxProfile.maxSizeOfInstructions ) - { - PTRACE0(( "ERROR: Too many instructions!\n" )); - return TT_Err_Too_Many_Ins; - } - - if ( FILE_Read( exec->glyphIns, n_ins ) ) - return error; - - if ( (error = Set_CodeRange( exec, - TT_CodeRange_Glyph, - exec->glyphIns, - n_ins )) != TT_Err_Ok ) - return error; - - - /* read the flags */ - - if ( CHECK_AND_ACCESS_Frame( n_points * 5L ) ) - return error; - - j = 0; - flag = exec->pts.touch; - - while ( j < n_points ) - { - Byte c, cnt; - - flag[j] = c = GET_Byte(); - j++; - - if ( c & 8 ) - { - cnt = GET_Byte(); - while( cnt > 0 ) - { - flag[j++] = c; - cnt--; - } - } - } - - /* read the X */ - - x = 0; - vec = exec->pts.org; - - for ( j = 0; j < n_points; j++ ) - { - if ( flag[j] & 2 ) - { - if ( flag[j] & 16 ) - x += GET_Byte(); - else - x -= GET_Byte(); - } - else - { - if ( (flag[j] & 16) == 0 ) - x += GET_Short(); - } - - vec[j].x = x; - } - - - /* read the Y */ - - y = 0; - - for ( j = 0; j < n_points; j++ ) - { - if ( flag[j] & 4 ) - { - if ( flag[j] & 32 ) - y += GET_Byte(); - else - y -= GET_Byte(); - } - else - { - if ( (flag[j] & 32) == 0 ) - y += GET_Short(); - } - - vec[j].y = y; - } - - FORGET_Frame(); - /* Now add the two shadow points at n and n + 1. */ - /* We need the left side bearing and advance width. */ - - /* pp1 = xMin - lsb */ - vec[n_points].x = subg->metrics.bbox.xMin - subg->metrics.horiBearingX; - vec[n_points].y = 0; - - /* pp2 = pp1 + aw */ - vec[n_points+1].x = vec[n_points].x + subg->metrics.horiAdvance; - vec[n_points+1].y = 0; - - /* clear the touch flags */ - - for ( j = 0; j < n_points; j++ ) - exec->pts.touch[j] &= TT_Flag_On_Curve; - - exec->pts.touch[n_points ] = 0; - exec->pts.touch[n_points + 1] = 0; - - /* Note that we return two more points that are not */ - /* part of the glyph outline. */ - - n_points += 2; - - /* now eventually scale and hint the glyph */ - - pts = &exec->pts; - pts->n_points = n_points; - pts->n_contours = n_contours; - - if ( (load_flags & TTLOAD_SCALE_GLYPH) == 0 ) - { - /* no scaling, just copy the orig arrays into the cur ones */ - org_to_cur( n_points, pts ); - } - else - { - /* first scale the glyph points */ - - for ( j = 0; j < n_points; j++ ) - { - pts->org[j].x = Scale_X( &exec->metrics, pts->org[j].x ); - pts->org[j].y = Scale_Y( &exec->metrics, pts->org[j].y ); - } - - /* if hinting, round pp1, and shift the glyph accordingly */ - if ( subg->is_hinted ) - { - x = pts->org[n_points - 2].x; - x = ((x+32) & -64) - x; - translate_array( n_points, pts->org, x, 0 ); - - org_to_cur( n_points, pts ); - - pts->cur[n_points - 1].x = (pts->cur[n_points - 1].x + 32) & -64; - - /* now consider hinting */ - if ( n_ins > 0 ) - { - exec->is_composite = FALSE; - exec->pedantic_hinting = load_flags & TTLOAD_PEDANTIC; - - error = Context_Run( exec, FALSE ); - if (error && exec->pedantic_hinting) - return error; - } - } - else - org_to_cur( n_points, pts ); - } - - /* save glyph phantom points */ - if (!subg->preserve_pps) - { - subg->pp1 = pts->cur[n_points - 2]; - subg->pp2 = pts->cur[n_points - 1]; - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_Composite_End - * - ******************************************************************/ - - static - TT_Error Load_Composite_End( UShort n_points, - Short n_contours, - PExecution_Context exec, - PSubglyph_Record subg, - UShort load_flags, - TT_Stream input ) - { - DEFINE_LOAD_LOCALS( input ); - - UShort k, n_ins; - PGlyph_Zone pts; - - - if ( subg->is_hinted && - subg->element_flag & WE_HAVE_INSTR ) - { - if ( ACCESS_Frame( 2L ) ) - return error; - - n_ins = GET_UShort(); /* read size of instructions */ - FORGET_Frame(); - - PTRACE4(( " Instructions size: %d\n", n_ins )); - - if ( n_ins > exec->face->maxProfile.maxSizeOfInstructions ) - { - PTRACE0(( "ERROR: Too many instructions in composite glyph %ld\n", - subg->index )); - return TT_Err_Too_Many_Ins; - } - - if ( FILE_Read( exec->glyphIns, n_ins ) ) - return error; - - error = Set_CodeRange( exec, - TT_CodeRange_Glyph, - exec->glyphIns, - n_ins ); - - if ( error ) - return error; - } - else - n_ins = 0; - - - /* prepare the execution context */ - n_points += 2; - exec->pts = subg->zone; - pts = &exec->pts; - - pts->n_points = n_points; - pts->n_contours = n_contours; - - /* add phantom points */ - pts->cur[n_points - 2] = subg->pp1; - pts->cur[n_points - 1] = subg->pp2; - - pts->touch[n_points - 1] = 0; - pts->touch[n_points - 2] = 0; - - /* if hinting, round the phantom points */ - if ( subg->is_hinted ) - { - pts->cur[n_points - 2].x = (subg->pp1.x + 32) & -64; - pts->cur[n_points - 1].x = (subg->pp2.x + 32) & -64; - } - - for ( k = 0; k < n_points; k++ ) - pts->touch[k] &= TT_Flag_On_Curve; - - cur_to_org( n_points, pts ); - - /* now consider hinting */ - if ( subg->is_hinted && n_ins > 0 ) - { - exec->is_composite = TRUE; - exec->pedantic_hinting = load_flags & TTLOAD_PEDANTIC; - - error = Context_Run( exec, FALSE ); - if (error && exec->pedantic_hinting) - return error; - } - - /* save glyph origin and advance points */ - subg->pp1 = pts->cur[n_points - 2]; - subg->pp2 = pts->cur[n_points - 1]; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Init_Glyph_Component - * - ******************************************************************/ - - static - void Init_Glyph_Component( PSubglyph_Record element, - PSubglyph_Record original, - PExecution_Context exec ) - { - element->index = -1; - element->is_scaled = FALSE; - element->is_hinted = FALSE; - - if ( original ) - mount_zone( &original->zone, &element->zone ); - else - element->zone = exec->pts; - - element->zone.n_contours = 0; - element->zone.n_points = 0; - - element->arg1 = 0; - element->arg2 = 0; - - element->element_flag = 0; - element->preserve_pps = FALSE; - - element->transform.xx = 1L << 16; - element->transform.xy = 0; - element->transform.yx = 0; - element->transform.yy = 1L << 16; - - element->transform.ox = 0; - element->transform.oy = 0; - - element->metrics.horiBearingX = 0; - element->metrics.horiAdvance = 0; - } - - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Glyph( PInstance instance, - PGlyph glyph, - UShort glyph_index, - UShort load_flags ) - { - enum TPhases_ - { - Load_Exit, - Load_Glyph, - Load_Header, - Load_Simple, - Load_Composite, - Load_End - }; - - typedef enum TPhases_ TPhases; - - DEFINE_ALL_LOCALS; - - PFace face; - - UShort num_points; - Short num_contours; - UShort left_points; - Short left_contours; - UShort num_elem_points; - - Long table; - UShort load_top; - Long k, l; - UShort new_flags; - Long index; - UShort u, v; - - Long glyph_offset, offset; - - TT_F26Dot6 x, y, nx, ny; - - Fixed xx, xy, yx, yy; - - PExecution_Context exec; - - PSubglyph_Record subglyph, subglyph2; - - TGlyph_Zone base_pts; - - TPhases phase; - PByte widths; - -/* TT_Glyph_Loader_Callback cacheCb; */ -/* TT_Outline cached_outline; */ - - - /* first of all, check arguments */ - if ( !glyph ) - return TT_Err_Invalid_Glyph_Handle; - - face = glyph->face; - if ( !face ) - return TT_Err_Invalid_Glyph_Handle; - - if ( glyph_index >= face->numGlyphs ) - return TT_Err_Invalid_Glyph_Index; - - if ( instance && (load_flags & TTLOAD_SCALE_GLYPH) == 0 ) - { - instance = 0; - load_flags &= ~( TTLOAD_SCALE_GLYPH | TTLOAD_HINT_GLYPH ); - } - - table = TT_LookUp_Table( face, TTAG_glyf ); - if ( table < 0 ) - { - PTRACE0(( "ERROR: There is no glyph table in this font file!\n" )); - return TT_Err_Glyf_Table_Missing; - } - - glyph_offset = face->dirTables[table].Offset; - - /* query new execution context */ - - if ( instance && instance->debug ) - exec = instance->context; - else - exec = New_Context( face ); - - if ( !exec ) - return TT_Err_Could_Not_Find_Context; - - Context_Load( exec, face, instance ); - - if ( instance ) - { - if ( instance->GS.instruct_control & 2 ) - exec->GS = Default_GraphicsState; - else - exec->GS = instance->GS; - /* load default graphics state */ - - glyph->outline.high_precision = ( instance->metrics.y_ppem < 24 ); - } - - /* save its critical pointers, as they'll be modified during load */ - base_pts = exec->pts; - - /* init variables */ - left_points = face->maxPoints; - left_contours = face->maxContours; - - num_points = 0; - num_contours = 0; - - load_top = 0; - subglyph = exec->loadStack; - - Init_Glyph_Component( subglyph, NULL, exec ); - - subglyph->index = glyph_index; - subglyph->is_hinted = load_flags & TTLOAD_HINT_GLYPH; - - /* when the cvt program has disabled hinting, the argument */ - /* is ignored. */ - if ( instance && instance->GS.instruct_control & 1 ) - subglyph->is_hinted = FALSE; - - - /* now access stream */ - - if ( USE_Stream( face->stream, stream ) ) - goto Fin; - - /* Main loading loop */ - - phase = Load_Glyph; - index = 0; - - while ( phase != Load_Exit ) - { - subglyph = exec->loadStack + load_top; - - switch ( phase ) - { - /************************************************************/ - /* */ - /* Load_Glyph state */ - /* */ - /* reading a glyph's generic header to determine */ - /* whether it's simple or composite */ - /* */ - /* exit states: Load_Header and Load_End */ - - case Load_Glyph: - /* check glyph index and table */ - - index = subglyph->index; - if ( index < 0 || index >= face->numGlyphs ) - { - error = TT_Err_Invalid_Glyph_Index; - goto Fail; - } - - /* get horizontal metrics */ - - { - Short left_bearing; - UShort advance_width; - - - Get_HMetrics( face, (UShort)index, - !(load_flags & TTLOAD_IGNORE_GLOBAL_ADVANCE_WIDTH), - &left_bearing, - &advance_width ); - - subglyph->metrics.horiBearingX = left_bearing; - subglyph->metrics.horiAdvance = advance_width; - } - - phase = Load_Header; - - - /* The cache callback isn't part of the FreeType release yet */ - /* It is discarded for the moment.. */ - /* */ -#if 0 - if ( instance ) - { - /* is the glyph in an outline cache ? */ - cacheCb = instance->owner->engine->glCallback; - if ( cacheCb && 0 ) /* disabled */ - { - /* we have a callback */ - error = cacheCb( instance->generic, - index, &cached_outline, &x, &y ); - if ( !error ) - { - /* no error, then append the outline to the current subglyph */ - /* error = Append_Outline( subglyph, - &left_points, - &left_contours, - &cached_outline ); */ - phase = Load_End; - } - } - } -#endif - break; - - - /************************************************************/ - /* */ - /* Load_Header state */ - /* */ - /* reading a glyph's generic header to determine */ - /* wether it's simple or composite */ - /* */ - /* exit states: Load_Simple and Load_Composite */ - /* */ - - case Load_Header: /* load glyph */ - - if ( (TT_UInt)( index + 1 ) < (TT_UInt)face->numLocations && - face->glyphLocations[index] == face->glyphLocations[index + 1] ) - { - /* as described by Frederic Loyer, these are spaces, and */ - /* not the unknown glyph. */ - - num_contours = 0; - num_points = 0; - - subglyph->metrics.bbox.xMin = 0; - subglyph->metrics.bbox.xMax = 0; - subglyph->metrics.bbox.yMin = 0; - subglyph->metrics.bbox.yMax = 0; - - subglyph->pp1.x = 0; - subglyph->pp2.x = subglyph->metrics.horiAdvance; - if (load_flags & TTLOAD_SCALE_GLYPH) - subglyph->pp2.x = Scale_X( &exec->metrics, subglyph->pp2.x ); - - exec->glyphSize = 0; - phase = Load_End; - break; - } - - offset = glyph_offset + face->glyphLocations[index]; - - /* read first glyph header */ - if ( FILE_Seek( offset ) || - ACCESS_Frame( 10L ) ) - goto Fail_File; - - num_contours = GET_Short(); - - subglyph->metrics.bbox.xMin = GET_Short(); - subglyph->metrics.bbox.yMin = GET_Short(); - subglyph->metrics.bbox.xMax = GET_Short(); - subglyph->metrics.bbox.yMax = GET_Short(); - - FORGET_Frame(); - - PTRACE6(( "Glyph %ld:\n", index )); - PTRACE6(( " # of contours: %d\n", num_contours )); - PTRACE6(( " xMin: %4d xMax: %4d\n", - subglyph->metrics.bbox.xMin, - subglyph->metrics.bbox.xMax )); - PTRACE6(( " yMin: %4d yMax: %4d\n", - subglyph->metrics.bbox.yMin, - subglyph->metrics.bbox.yMax )); - - if ( num_contours > left_contours ) - { - PTRACE0(( "ERROR: Too many contours for glyph %ld\n", index )); - error = TT_Err_Too_Many_Contours; - goto Fail; - } - - subglyph->pp1.x = subglyph->metrics.bbox.xMin - - subglyph->metrics.horiBearingX; - subglyph->pp1.y = 0; - subglyph->pp2.x = subglyph->pp1.x + subglyph->metrics.horiAdvance; - if (load_flags & TTLOAD_SCALE_GLYPH) - { - subglyph->pp1.x = Scale_X( &exec->metrics, subglyph->pp1.x ); - subglyph->pp2.x = Scale_X( &exec->metrics, subglyph->pp2.x ); - } - - /* is it a simple glyph ? */ - if ( num_contours > 0 ) - phase = Load_Simple; - else - phase = Load_Composite; - - break; - - - /************************************************************/ - /* */ - /* Load_Simple state */ - /* */ - /* reading a simple glyph (num_contours must be set to */ - /* the glyph's number of contours.) */ - /* */ - /* exit states : Load_End */ - /* */ - - case Load_Simple: - new_flags = load_flags; - - /* disable hinting when scaling */ - if ( !subglyph->is_hinted ) - new_flags &= ~TTLOAD_HINT_GLYPH; - - error = Load_Simple_Glyph( exec, - stream, - num_contours, - left_contours, - left_points, - new_flags, - subglyph ); - if ( error ) - goto Fail; - - /* Note: We could have put the simple loader source there */ - /* but the code is fat enough already :-) */ - - num_points = exec->pts.n_points - 2; - - phase = Load_End; - - break; - - - /************************************************************/ - /* */ - /* Load_Composite state */ - /* */ - /* reading a composite glyph header a pushing a new */ - /* load element on the stack. */ - /* */ - /* exit states: Load_Glyph */ - /* */ - - case Load_Composite: - - /* create a new element on the stack */ - load_top++; - - if ( load_top > face->maxComponents ) - { - error = TT_Err_Invalid_Composite; - goto Fail; - } - - subglyph2 = exec->loadStack + load_top; - - Init_Glyph_Component( subglyph2, subglyph, NULL ); - subglyph2->is_hinted = subglyph->is_hinted; - - /* now read composite header */ - - if ( ACCESS_Frame( 4L ) ) - goto Fail_File; - - subglyph->element_flag = new_flags = GET_UShort(); - - subglyph2->index = GET_UShort(); - - FORGET_Frame(); - - k = 1 + 1; - - if ( new_flags & ARGS_ARE_WORDS ) - k *= 2; - - if ( new_flags & WE_HAVE_A_SCALE ) - k += 2; - - else if ( new_flags & WE_HAVE_AN_XY_SCALE ) - k += 4; - - else if ( new_flags & WE_HAVE_A_2X2 ) - k += 8; - - if ( ACCESS_Frame( k ) ) - goto Fail_File; - - if ( new_flags & ARGS_ARE_WORDS ) - { - k = GET_Short(); - l = GET_Short(); - } - else - { - k = GET_Char(); - l = GET_Char(); - } - - subglyph->arg1 = k; - subglyph->arg2 = l; - - if ( new_flags & ARGS_ARE_XY_VALUES ) - { - subglyph->transform.ox = k; - subglyph->transform.oy = l; - } - - xx = 1L << 16; - xy = 0; - yx = 0; - yy = 1L << 16; - - if ( new_flags & WE_HAVE_A_SCALE ) - { - xx = (Fixed)GET_Short() << 2; - yy = xx; - subglyph2->is_scaled = TRUE; - } - else if ( new_flags & WE_HAVE_AN_XY_SCALE ) - { - xx = (Fixed)GET_Short() << 2; - yy = (Fixed)GET_Short() << 2; - subglyph2->is_scaled = TRUE; - } - else if ( new_flags & WE_HAVE_A_2X2 ) - { - xx = (Fixed)GET_Short() << 2; - xy = (Fixed)GET_Short() << 2; - yx = (Fixed)GET_Short() << 2; - yy = (Fixed)GET_Short() << 2; - subglyph2->is_scaled = TRUE; - } - - FORGET_Frame(); - - subglyph->transform.xx = xx; - subglyph->transform.xy = xy; - subglyph->transform.yx = yx; - subglyph->transform.yy = yy; - - k = TT_MulFix( xx, yy ) - TT_MulFix( xy, yx ); - - /* disable hinting in case of scaling/slanting */ - if ( ABS( k ) != (1L << 16) ) - subglyph2->is_hinted = FALSE; - - subglyph->file_offset = FILE_Pos(); - - phase = Load_Glyph; - - break; - - - /************************************************************/ - /* */ - /* Load_End state */ - /* */ - /* after loading a glyph, apply transformation and offset */ - /* where necessary, pops element and continue or */ - /* stop process. */ - /* */ - /* exit states : Load_Composite and Load_Exit */ - /* */ - - case Load_End: - if ( load_top > 0 ) - { - subglyph2 = subglyph; - - load_top--; - subglyph = exec->loadStack + load_top; - - /* check advance width and left side bearing */ - - if ( !subglyph->preserve_pps && - subglyph->element_flag & USE_MY_METRICS ) - { - subglyph->metrics.horiBearingX = subglyph2->metrics.horiBearingX; - subglyph->metrics.horiAdvance = subglyph2->metrics.horiAdvance; - - subglyph->pp1 = subglyph2->pp1; - subglyph->pp2 = subglyph2->pp2; - - subglyph->preserve_pps = TRUE; - } - - /* apply scale */ - - if ( subglyph2->is_scaled ) - { - TT_Vector* cur = subglyph2->zone.cur; - TT_Vector* org = subglyph2->zone.org; - - for ( u = 0; u < num_points; u++ ) - { - nx = TT_MulFix( cur->x, subglyph->transform.xx ) + - TT_MulFix( cur->y, subglyph->transform.yx ); - - ny = TT_MulFix( cur->x, subglyph->transform.xy ) + - TT_MulFix( cur->y, subglyph->transform.yy ); - - cur->x = nx; - cur->y = ny; - - nx = TT_MulFix( org->x, subglyph->transform.xx ) + - TT_MulFix( org->y, subglyph->transform.yx ); - - ny = TT_MulFix( org->x, subglyph->transform.xy ) + - TT_MulFix( org->y, subglyph->transform.yy ); - - org->x = nx; - org->y = ny; - - cur++; - org++; - } - } - - /* adjust counts */ - - num_elem_points = subglyph->zone.n_points; - - for ( k = 0; k < num_contours; k++ ) - subglyph2->zone.contours[k] += num_elem_points; - - subglyph->zone.n_points += num_points; - subglyph->zone.n_contours += num_contours; - - left_points -= num_points; - left_contours -= num_contours; - - if ( !(subglyph->element_flag & ARGS_ARE_XY_VALUES) ) - { - /* move second glyph according to control points */ - /* the attach points are relative to the specific component */ - - u = (UShort)subglyph->arg1; - v = (UShort)subglyph->arg2; - - if ( u >= num_elem_points || - v >= num_points ) - { - error = TT_Err_Invalid_Composite; - goto Fail; - } - - /* adjust count */ - v += num_elem_points; - - x = subglyph->zone.cur[u].x - subglyph->zone.cur[v].x; - y = subglyph->zone.cur[u].y - subglyph->zone.cur[v].y; - } - else - { - /* apply offset */ - - x = subglyph->transform.ox; - y = subglyph->transform.oy; - - if ( load_flags & TTLOAD_SCALE_GLYPH ) - { - x = Scale_X( &exec->metrics, x ); - y = Scale_Y( &exec->metrics, y ); - - if ( subglyph->element_flag & ROUND_XY_TO_GRID ) - { - x = (x+32) & -64; - y = (y+32) & -64; - } - } - } - - translate_array( num_points, subglyph2->zone.cur, x, y ); - - cur_to_org( num_points, &subglyph2->zone ); - - num_points = subglyph->zone.n_points; - num_contours = subglyph->zone.n_contours; - - /* check for last component */ - - if ( FILE_Seek( subglyph->file_offset ) ) - goto Fail_File; - - if ( subglyph->element_flag & MORE_COMPONENTS ) - phase = Load_Composite; - else - { - error = Load_Composite_End( num_points, - num_contours, - exec, - subglyph, - load_flags, - stream ); - if ( error ) - goto Fail; - - phase = Load_End; - } - } - else - phase = Load_Exit; - - break; - - - case Load_Exit: - break; - } - } - - /* finally, copy the points arrays to the glyph object */ - - exec->pts = base_pts; - - for ( u = 0; u < num_points + 2; u++ ) - { - glyph->outline.points[u] = exec->pts.cur[u]; - glyph->outline.flags [u] = exec->pts.touch[u]; - } - - for ( k = 0; k < num_contours; k++ ) - glyph->outline.contours[k] = exec->pts.contours[k]; - - glyph->outline.n_points = num_points; - glyph->outline.n_contours = num_contours; - glyph->outline.second_pass = TRUE; - - /* translate array so that (0,0) is the glyph's origin */ - translate_array( num_points + 2, - glyph->outline.points, - -subglyph->pp1.x, - 0 ); - - TT_Get_Outline_BBox( &glyph->outline, &glyph->metrics.bbox ); - - if ( subglyph->is_hinted ) - { - /* grid-fit the bounding box */ - glyph->metrics.bbox.xMin &= -64; - glyph->metrics.bbox.yMin &= -64; - glyph->metrics.bbox.xMax = (glyph->metrics.bbox.xMax+63) & -64; - glyph->metrics.bbox.yMax = (glyph->metrics.bbox.yMax+63) & -64; - } - - /* get the device-independent scaled horizontal metrics */ - /* take care of fixed-pitch fonts... */ - { - TT_Pos left_bearing; - TT_Pos advance; - - - left_bearing = subglyph->metrics.horiBearingX; - advance = subglyph->metrics.horiAdvance; - - if ( face->postscript.isFixedPitch ) - advance = face->horizontalHeader.advance_Width_Max; - - if ( load_flags & TTLOAD_SCALE_GLYPH ) - { - left_bearing = Scale_X( &exec->metrics, left_bearing ); - advance = Scale_X( &exec->metrics, advance ); - } - - glyph->metrics.linearHoriBearingX = left_bearing; - glyph->metrics.linearHoriAdvance = advance; - } - - glyph->metrics.horiBearingX = glyph->metrics.bbox.xMin; - glyph->metrics.horiBearingY = glyph->metrics.bbox.yMax; - glyph->metrics.horiAdvance = subglyph->pp2.x - subglyph->pp1.x; - - /* 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' ... */ - - { - Short top_bearing; /* vertical top side bearing (EM units) */ - UShort advance_height; /* vertical advance height (EM units) */ - - TT_Pos left; /* scaled vertical left side bearing */ - TT_Pos orig_top; /* scaled original vertical top side bearing */ - TT_Pos top; /* scaled vertical top side bearing */ - TT_Pos advance; /* scaled vertical advance height */ - - - /* Get the unscaled `tsb' and `ah' values */ - if ( face->verticalInfo && - face->verticalHeader.number_Of_VMetrics > 0 ) - { - /* Don't assume that both the vertical header and vertical */ - /* metrics are present in the same font :-) */ - - TT_Get_Metrics( (TT_Horizontal_Header*)&face->verticalHeader, - glyph_index, - &top_bearing, - &advance_height ); - } - 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... */ - /* */ - /* NOTE2: The sTypoDescender is negative, which is why */ - /* we compute the baseline-to-baseline distance */ - /* here with : */ - /* ascender - descender + linegap */ - /* */ - -/* XXX What happens here with these Apple fonts without OS/2 table ? */ - - top_bearing = (Short) (face->os2.sTypoLineGap / 2); - advance_height = (UShort)(face->os2.sTypoAscender - - face->os2.sTypoDescender + - face->os2.sTypoLineGap); - } - - /* We must adjust the top_bearing value from the bounding box */ - /* given in the glyph header to te bounding box calculated with */ - /* TT_Get_Outline_BBox() */ - - /* scale the metrics */ - if ( load_flags & TTLOAD_SCALE_GLYPH ) - { - orig_top = Scale_Y( &exec->metrics, top_bearing ); - top = Scale_Y( &exec->metrics, - top_bearing + subglyph->metrics.bbox.yMax ) - - glyph->metrics.bbox.yMax; - advance = Scale_Y( &exec->metrics, advance_height ); - } - else - { - orig_top = top_bearing; - top = top_bearing + subglyph->metrics.bbox.yMax - - glyph->metrics.bbox.yMax; - advance = advance_height; - } - - glyph->metrics.linearVertBearingY = orig_top; - glyph->metrics.linearVertAdvance = advance; - - /* XXX : for now, we have no better algo for the lsb, but it should */ - /* work ok.. */ - /* */ - left = ( glyph->metrics.bbox.xMin - glyph->metrics.bbox.xMax ) / 2; - - /* grid-fit them if necessary */ - if ( subglyph->is_hinted ) - { - left &= -64; - top = (top + 63) & -64; - advance = (advance + 32) & -64; - } - - glyph->metrics.vertBearingX = left; - glyph->metrics.vertBearingY = top; - glyph->metrics.vertAdvance = advance; - } - - /* Adjust advance width to the value contained in the hdmx table. */ - if ( !exec->face->postscript.isFixedPitch && instance && - subglyph->is_hinted ) - { - widths = Get_Advance_Widths( exec->face, - exec->instance->metrics.x_ppem ); - if ( widths ) - glyph->metrics.horiAdvance = widths[glyph_index] << 6; - } - - glyph->outline.dropout_mode = (Char)exec->GS.scan_type; - - error = TT_Err_Ok; - - Fail_File: - Fail: - DONE_Stream( stream ); - - Fin: - - /* reset the execution context */ - exec->pts = base_pts; - - if ( !instance || !instance->debug ) - Done_Context( exec ); - - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttgload.h b/Build/source/libs/freetype/lib/ttgload.h deleted file mode 100644 index 98e57ef8b79..00000000000 --- a/Build/source/libs/freetype/lib/ttgload.h +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************* - * - * ttgload.h 1.0 - * - * TrueType Glyph Loader. - * - * 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. - * - ******************************************************************/ - -#ifndef TTGLOAD_H -#define TTGLOAD_H - -#include "ttconfig.h" -#include "tttypes.h" -#include "ttobjs.h" - -#ifdef __cplusplus - extern "C" { -#endif - - - FT_INTERNAL_DEF( void ) - TT_Get_Metrics( TT_Horizontal_Header* header, - UShort index, - Short* bearing, - UShort* advance ); - - - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Glyph( PInstance instance, - PGlyph glyph, - UShort glyph_index, - UShort load_flags ); - -#ifdef __cplusplus - } -#endif - - -#endif /* TTGLOAD_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttinterp.c b/Build/source/libs/freetype/lib/ttinterp.c deleted file mode 100644 index 3c991a5e130..00000000000 --- a/Build/source/libs/freetype/lib/ttinterp.c +++ /dev/null @@ -1,6681 +0,0 @@ -/******************************************************************* - * - * ttinterp.c 3.1 - * - * TrueType bytecode intepreter. - * - * Copyright 1996-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. - * - * - * Changes between 3.1 and 3.0: - * - * - A more relaxed version of the interpreter. It is now able to - * ignore errors like out-of-bound array access and writes in - * order to silently support broken glyphs (even if the results - * are not always pretty). - * - * Note that one can use the flag TTLOAD_PEDANTIC to force - * TrueType-compliant interpretation. - * - * - A big #if used to completely disable the interpreter, which - * is due to the Apple patents issue. - * - ******************************************************************/ - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttcalc.h" -#include "ttmemory.h" -#include "ttinterp.h" - - -#ifndef TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - FT_INTERNAL_FUNC( TT_Error ) - RunIns( EXEC_OP ) - { - /* do nothing - always successful */ - -#ifndef TT_CONFIG_OPTION_STATIC_INTERPRETER - /* make picky compilers happy */ - (void)exc; -#endif - return TT_Err_Ok; - } - -#else /* ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ - - -#ifdef DEBUG_INTERPRETER - /* The debugger uses a special version of the TrueType */ - /* interpreter, with some hooks and a simple user interface. */ - /* Here we declare the needed additions. */ -#include "ttdebug.h" - -/* Define the `getch()' function, used for get user inputs. */ - -#ifndef UNIX - -/* Outside Unix, we rely on getch() being defined by . */ -/* This has become a standard, coming from MS-DOS libraries, and */ -/* has been ported to OS/2, Win32, and perhaps others. */ -/* If it does not work for you, investigate the code for Unix */ -/* (here, and in test/fdebug.c). */ -#include -#if defined( _M_I86 ) - /* a recent compiler, which do not pollute name spaces... */ -#define getch(x) _getch(x) -#endif /* modern compiler */ - -#else /* !defined( UNIX ) */ - -/* On Unix systems, it is an alias for `getchar()', and the */ -/* debugger front end must ensure that the `stdin' file */ -/* descriptor is not in line-by-line input mode. */ -#define getch getchar - -#endif - -#endif /* DEBUG_INTEPRETER */ - - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_interp - - -/* In order to detect infinite loops in the code, we set-up a */ -/* counter within the run loop. a singly stroke of interpretation */ -/* is now limited to a maximum number of opcodes defined below. */ -/* */ -#define MAX_RUNNABLE_OPCODES 1000000 - - -/******************************************************************/ -/* */ -/* There are two kinds of implementations there: */ -/* */ -/* 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, however, fully re-entrant. */ -/* */ -/* */ -/* The idea is that an indirect implementation may be slower to */ -/* execute on the low-end processors that are used in some */ -/* systems (like 386's or even 486's). */ -/* */ -/* When the interpreter started, we had no idea of the time that */ -/* glyph hinting (i.e. executing instructions) could take in the */ -/* whole process of rendering a glyph, and a 10 to 30% */ -/* performance penalty on low-end systems didn't seem much of a */ -/* good idea. This question led us to provide two distinct */ -/* builds from a single source, with the use of macros (again). */ -/* */ -/* Now that the engine is working (and working really well!), it */ -/* seems that the greatest time-consuming factors are: file i/o, */ -/* glyph loading, rasterizing and _then_ glyph hinting! */ -/* */ -/* Tests performed with two versions of the 'fttimer' program */ -/* seem to indicate that hinting takes less than 5% of the */ -/* rendering process, which is dominated by glyph loading and */ -/* scan-line conversion by an high order of magnitude. */ -/* */ -/* 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 one */ -/* used for development. */ -/* */ -/* - it's much more readable that way! */ -/* */ -/* - it's still open to later experimentation and tuning. */ -/* */ -/* TT_CONFIG_OPTION_STATIC_INTERPRETER (in ft_conf.h) toggles */ -/* the use of the static interpreter. */ -/* */ - -#ifndef TT_CONFIG_OPTION_STATIC_INTERPRETER /* indirect implementation */ - -#define CUR (*exc) - -#else /* static implementation */ - -#define CUR cur - - static TExecution_Context 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 byte addresses). */ - -#endif /* !TT_CONFIG_OPTION_STATIC_INTERPRETER */ - - -/* A bunch of macros to save typing (and ease reading). */ - -#define INS_ARG EXEC_OPS PStorage args /* see ttobjs.h */ - -#define SKIP_Code() SkipCode( EXEC_ARG ) - -#define GET_ShortIns() GetShortIns( EXEC_ARG ) - -#define COMPUTE_Funcs() Compute_Funcs( EXEC_ARG ) - -#define NORMalize( x, y, v ) Normalize( EXEC_ARGS x, y, v ) - -#define SET_SuperRound( scale, flags ) \ - SetSuperRound( EXEC_ARGS scale, flags ) - -#define INS_Goto_CodeRange( range, ip ) \ - Ins_Goto_CodeRange( EXEC_ARGS range, ip ) - -#define CUR_Func_project( x, y ) CUR.func_project( EXEC_ARGS x, y ) -#define CUR_Func_move( z, p, d ) CUR.func_move( EXEC_ARGS z, p, d ) -#define CUR_Func_dualproj( x, y ) CUR.func_dualproj( EXEC_ARGS x, y ) -#define CUR_Func_freeProj( x, y ) CUR.func_freeProj( EXEC_ARGS x, y ) -#define CUR_Func_round( d, c ) CUR.func_round( EXEC_ARGS d, c ) - -#define CUR_Func_read_cvt( index ) \ - CUR.func_read_cvt( EXEC_ARGS index ) - -#define CUR_Func_write_cvt( index, val ) \ - CUR.func_write_cvt( EXEC_ARGS index, val ) - -#define CUR_Func_move_cvt( index, val ) \ - CUR.func_move_cvt( EXEC_ARGS index, val ) - -#define CURRENT_Ratio() Current_Ratio( EXEC_ARG ) -#define CURRENT_Ppem() Current_Ppem( EXEC_ARG ) - -#define CALC_Length() Calc_Length( EXEC_ARG ) - -#define INS_SxVTL( a, b, c, d ) Ins_SxVTL( EXEC_ARGS a, b, c, d ) - -#define COMPUTE_Point_Displacement( a, b, c, d ) \ - Compute_Point_Displacement( EXEC_ARGS a, b, c, d ) - -#define MOVE_Zp2_Point( a, b, c, t ) Move_Zp2_Point( EXEC_ARGS a, b, c, t ) - -#define CUR_Ppem() Cur_PPEM( EXEC_ARG ) - - /* Instruction dispatch function, as used by the interpreter */ - typedef void (*TInstruction_Function)( INS_ARG ); - -#define BOUNDS( x, n ) ( (TT_UInt)(x) >= (TT_UInt)(n) ) - - - -/*********************************************************************/ -/* */ -/* 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 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 TT_Vector Null_Vector = {0,0}; - -#undef NULL_Vector -#define NULL_Vector (TT_Vector*)&Null_Vector - - -/******************************************************************* - * - * Function : Norm - * - * Description : Returns the norm (length) of a vector. - * - * Input : X, Y vector - * - * Output : Returns length in F26dot6. - * - *****************************************************************/ - - static TT_F26Dot6 Norm( TT_F26Dot6 X, TT_F26Dot6 Y ) - { - TT_Int64 T1, T2; - - - MUL_64( X, X, T1 ); - MUL_64( Y, Y, T2 ); - - ADD_64( T1, T2, T1 ); - - return (TT_F26Dot6)SQRT_64( T1 ); - } - - -/******************************************************************* - * - * Function : FUnits_To_Pixels - * - * Description : Scale a distance in FUnits to pixel coordinates. - * - * Input : Distance in FUnits - * - * Output : Distance in 26.6 format. - * - *****************************************************************/ - - static TT_F26Dot6 FUnits_To_Pixels( EXEC_OPS Short distance ) - { - return TT_MulDiv( distance, - CUR.metrics.scale1, - CUR.metrics.scale2 ); - } - - -/******************************************************************* - * - * Function : Current_Ratio - * - * Description : Return the current aspect ratio scaling factor - * depending on the projection vector's state and - * device resolutions. - * - * Input : None - * - * Output : Aspect ratio in 16.16 format, always <= 1.0 . - * - *****************************************************************/ - - static Long Current_Ratio( EXEC_OP ) - { - if ( CUR.metrics.ratio ) - return CUR.metrics.ratio; - - if ( CUR.GS.projVector.y == 0 ) - CUR.metrics.ratio = CUR.metrics.x_ratio; - - else if ( CUR.GS.projVector.x == 0 ) - CUR.metrics.ratio = CUR.metrics.y_ratio; - - else - { - Long x, y; - - - x = TT_MulDiv( CUR.GS.projVector.x, CUR.metrics.x_ratio, 0x4000 ); - y = TT_MulDiv( CUR.GS.projVector.y, CUR.metrics.y_ratio, 0x4000 ); - CUR.metrics.ratio = Norm( x, y ); - } - - return CUR.metrics.ratio; - } - - - static Long Current_Ppem( EXEC_OP ) - { - return TT_MulFix( CUR.metrics.ppem, CURRENT_Ratio() ); - } - - - static TT_F26Dot6 Read_CVT( EXEC_OPS ULong index ) - { - return CUR.cvt[index]; - } - - - static TT_F26Dot6 Read_CVT_Stretched( EXEC_OPS ULong index ) - { - return TT_MulFix( CUR.cvt[index], CURRENT_Ratio() ); - } - - - static void Write_CVT( EXEC_OPS ULong index, TT_F26Dot6 value ) - { - CUR.cvt[index] = value; - } - - static void Write_CVT_Stretched( EXEC_OPS ULong index, TT_F26Dot6 value ) - { - CUR.cvt[index] = TT_MulDiv( value, 0x10000, CURRENT_Ratio() ); - } - - - static void Move_CVT( EXEC_OPS ULong index, TT_F26Dot6 value ) - { - CUR.cvt[index] += value; - } - - static void Move_CVT_Stretched( EXEC_OPS ULong index, TT_F26Dot6 value ) - { - CUR.cvt[index] += TT_MulDiv( value, 0x10000, CURRENT_Ratio() ); - } - - -/****************************************************************** - * - * Function : Calc_Length - * - * Description : Computes the length in bytes of current opcode. - * - *****************************************************************/ - - static Bool Calc_Length( EXEC_OP ) - { - CUR.opcode = CUR.code[CUR.IP]; - - switch ( CUR.opcode ) - { - case 0x40: - if ( CUR.IP + 1 >= CUR.codeSize ) - return FAILURE; - - CUR.length = CUR.code[CUR.IP + 1] + 2; - break; - - case 0x41: - if ( CUR.IP + 1 >= CUR.codeSize ) - return FAILURE; - - CUR.length = CUR.code[CUR.IP + 1] * 2 + 2; - break; - - case 0xB0: - case 0xB1: - case 0xB2: - case 0xB3: - case 0xB4: - case 0xB5: - case 0xB6: - case 0xB7: - CUR.length = CUR.opcode - 0xB0 + 2; - break; - - case 0xB8: - case 0xB9: - case 0xBA: - case 0xBB: - case 0xBC: - case 0xBD: - case 0xBE: - case 0xBF: - CUR.length = (CUR.opcode - 0xB8) * 2 + 3; - break; - - default: - CUR.length = 1; - break; - } - - /* make sure result is in range */ - - if ( CUR.IP + CUR.length > CUR.codeSize ) - return FAILURE; - - return SUCCESS; - } - - -/******************************************************************* - * - * Function : GetShortIns - * - * Description : Returns a short integer taken from the instruction - * stream at address IP. - * - * Input : None - * - * Output : Short read at Code^[IP..IP+1] - * - * Notes : Called through the GET_ShortIns() macro. - * - *****************************************************************/ - - static Short GetShortIns( EXEC_OP ) - { - /* Reading a byte stream so there is no endianess (DaveP) */ - CUR.IP += 2; - return (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 - * aIP - * - * Output : SUCCESS or FAILURE. - * - *****************************************************************/ - - static Bool Ins_Goto_CodeRange( EXEC_OPS Int aRange, ULong aIP ) - { - TCodeRange* WITH; - - - if ( aRange < 1 || aRange > 3 ) - { - CUR.error = TT_Err_Bad_Argument; - return FAILURE; - } - - WITH = &CUR.codeRangeTable[aRange - 1]; - - if ( WITH->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 > WITH->Size ) - { - CUR.error = TT_Err_Code_Overflow; - return FAILURE; - } - - CUR.code = WITH->Base; - CUR.codeSize = WITH->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 index of point to move - * distance distance to apply - * zone affected glyph zone - * - * Output : None - * - *****************************************************************/ - - static void Direct_Move( EXEC_OPS PGlyph_Zone zone, - UShort point, - TT_F26Dot6 distance ) - { - TT_F26Dot6 v; - - - v = CUR.GS.freeVector.x; - - if ( v != 0 ) - { - zone->cur[point].x += TT_MulDiv( distance, - v * 0x10000L, - CUR.F_dot_P ); - - zone->touch[point] |= TT_Flag_Touched_X; - } - - v = CUR.GS.freeVector.y; - - if ( v != 0 ) - { - zone->cur[point].y += TT_MulDiv( distance, - v * 0x10000L, - CUR.F_dot_P ); - - zone->touch[point] |= TT_Flag_Touched_Y; - } - } - - -/******************************************************************/ -/* */ -/* The following versions are used whenever both vectors are both */ -/* along one of the coordinate unit vectors, i.e. in 90% cases. */ -/* */ -/******************************************************************/ - -/******************************************************************* - * Direct_Move_X - * - *******************************************************************/ - - static void Direct_Move_X( EXEC_OPS PGlyph_Zone zone, - UShort point, - TT_F26Dot6 distance ) - { - zone->cur[point].x += distance; - zone->touch[point] |= TT_Flag_Touched_X; - } - - -/******************************************************************* - * Direct_Move_Y - * - *******************************************************************/ - - static void Direct_Move_Y( EXEC_OPS PGlyph_Zone zone, - UShort point, - TT_F26Dot6 distance ) - { - zone->cur[point].y += distance; - zone->touch[point] |= TT_Flag_Touched_Y; - } - - -/******************************************************************* - * - * Function : Round_None - * - * Description : Does not round, but adds engine compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : rounded distance. - * - * NOTE : The spec says very few about the relationship between - * rounding and engine compensation. However, it seems - * from the description of super round that we should - * should add the compensation before rounding. - * - ******************************************************************/ - - static TT_F26Dot6 Round_None( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = distance + compensation; - if ( 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 : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - *****************************************************************/ - - static TT_F26Dot6 Round_To_Grid( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = distance + compensation + 32; - if ( val > 0 ) - val &= ~63; - else - val = 0; - } - else - { - val = -( (compensation - distance + 32) & (-64) ); - if ( val > 0 ) - val = 0; - } - - return val; - } - - -/******************************************************************* - * - * Function : Round_To_Half_Grid - * - * Description : Rounds value to half grid after adding engine - * compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - *****************************************************************/ - - static TT_F26Dot6 Round_To_Half_Grid( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = ((distance + compensation) & (-64)) + 32; - if ( val < 0 ) - val = 0; - } - else - { - val = -( ((compensation - distance) & (-64)) + 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 : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - *****************************************************************/ - - static TT_F26Dot6 Round_Down_To_Grid( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = distance + compensation; - if ( 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 : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - *****************************************************************/ - - static TT_F26Dot6 Round_Up_To_Grid( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = distance + compensation + 63; - if ( val > 0 ) - val &= ~63; - else - val = 0; - } - else - { - val = -( (compensation - distance + 63) & (-64) ); - if ( val > 0 ) - val = 0; - } - - return val; - } - - -/******************************************************************* - * - * Function : Round_To_Double_Grid - * - * Description : Rounds value to double grid after adding engine - * compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - *****************************************************************/ - - static TT_F26Dot6 Round_To_Double_Grid( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = distance + compensation + 16; - if ( val > 0 ) - val &= ~31; - else - val = 0; - } - else - { - val = -( (compensation - distance + 16) & (-32) ); - if ( val > 0 ) - val = 0; - } - - return val; - } - - -/******************************************************************* - * - * Function : Round_Super - * - * Description : Super-rounds value to grid after adding engine - * compensation. - * - * Input : distance : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - * NOTE : The spec says very few about the relationship between - * rounding and engine compensation. However, it seems - * from the description of super round that we should - * should add the compensation before rounding. - * - *****************************************************************/ - - static TT_F26Dot6 Round_Super( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = (distance - CUR.phase + CUR.threshold + compensation) & - (-CUR.period); - if ( 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 : distance to round - * compensation : engine compensation - * - * Output : Rounded distance. - * - * NOTE : There is a separate function for Round_Super_45 as we - * may need a greater precision. - * - *****************************************************************/ - - static TT_F26Dot6 Round_Super_45( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ) - { - TT_F26Dot6 val; - - - if ( distance >= 0 ) - { - val = ( (distance - CUR.phase + CUR.threshold + compensation) / - CUR.period ) * CUR.period; - if ( 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; - } - - -/******************************************************************* - * Compute_Round - * - *****************************************************************/ - - static void Compute_Round( EXEC_OPS Byte round_mode ) - { - switch ( round_mode ) - { - case TT_Round_Off: - CUR.func_round = (TRound_Function)Round_None; - break; - - case TT_Round_To_Grid: - CUR.func_round = (TRound_Function)Round_To_Grid; - break; - - case TT_Round_Up_To_Grid: - CUR.func_round = (TRound_Function)Round_Up_To_Grid; - break; - - case TT_Round_Down_To_Grid: - CUR.func_round = (TRound_Function)Round_Down_To_Grid; - break; - - case TT_Round_To_Half_Grid: - CUR.func_round = (TRound_Function)Round_To_Half_Grid; - break; - - case TT_Round_To_Double_Grid: - CUR.func_round = (TRound_Function)Round_To_Double_Grid; - break; - - case TT_Round_Super: - CUR.func_round = (TRound_Function)Round_Super; - break; - - case TT_Round_Super_45: - CUR.func_round = (TRound_Function)Round_Super_45; - break; - } - } - - -/******************************************************************* - * - * Function : SetSuperRound - * - * Description : Sets Super Round parameters. - * - * Input : GridPeriod Grid period - * selector SROUND opcode - * - * Output : None. - * - *****************************************************************/ - - static void SetSuperRound( EXEC_OPS TT_F26Dot6 GridPeriod, - Long selector ) - { - switch ( (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 ( (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 = GridPeriod * 3 / 4; - break; - } - - if ( (selector & 0x0F) == 0 ) - CUR.threshold = CUR.period - 1; - else - CUR.threshold = ( (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, v2 input vector - * - * Output : Returns distance in F26dot6 format. - * - *****************************************************************/ - - static TT_F26Dot6 Project( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ) - { - TT_Int64 T1, T2; - - - MUL_64( v1->x - v2->x, CUR.GS.projVector.x, T1 ); - MUL_64( v1->y - v2->y, CUR.GS.projVector.y, T2 ); - - ADD_64( T1, T2, T1 ); - - return (TT_F26Dot6)DIV_64( T1, 0x4000L ); - } - - -/******************************************************************* - * - * Function : Dual_Project - * - * Description : Computes the projection of the vector given by - * (v2-v1) along the current dual vector. - * - * Input : v1, v2 input vector - * - * Output : Returns distance in F26dot6 format. - * - *****************************************************************/ - - static TT_F26Dot6 Dual_Project( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ) - { - TT_Int64 T1, T2; - - - MUL_64( v1->x - v2->x, CUR.GS.dualVector.x, T1 ); - MUL_64( v1->y - v2->y, CUR.GS.dualVector.y, T2 ); - - ADD_64( T1, T2, T1 ); - - return (TT_F26Dot6)DIV_64( T1, 0x4000L ); - } - - -/******************************************************************* - * - * Function : Free_Project - * - * Description : Computes the projection of the vector given by - * (v2-v1) along the current freedom vector. - * - * Input : v1, v2 input vector - * - * Output : Returns distance in F26dot6 format. - * - *****************************************************************/ - - static TT_F26Dot6 Free_Project( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ) - { - TT_Int64 T1, T2; - - - MUL_64( v1->x - v2->x, CUR.GS.freeVector.x, T1 ); - MUL_64( v1->y - v2->y, CUR.GS.freeVector.y, T2 ); - - ADD_64( T1, T2, T1 ); - - return (TT_F26Dot6)DIV_64( T1, 0x4000L ); - } - - -/******************************************************************* - * - * Function : Project_x - * - * Input : Vx, Vy input vector - * - * Output : Returns Vx. - * - * Note : Used as a dummy function. - * - *****************************************************************/ - - static TT_F26Dot6 Project_x( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ) - { - return (v1->x - v2->x); - } - - -/******************************************************************* - * - * Function : Project_y - * - * Input : Vx, Vy input vector - * - * Output : Returns Vy. - * - * Note : Used as a dummy function. - * - *****************************************************************/ - - static TT_F26Dot6 Project_y( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ) - { - return (v1->y - v2->y); - } - - -/******************************************************************* - * - * Function : Compute_Funcs - * - * Description : Computes the projections and movement function - * pointers according to the current graphics state. - * - * Input : None - * - *****************************************************************/ - - static void Compute_Funcs( EXEC_OP ) - { - if ( CUR.GS.freeVector.x == 0x4000 ) - { - CUR.func_freeProj = (TProject_Function)Project_x; - CUR.F_dot_P = CUR.GS.projVector.x * 0x10000L; - } - else - { - if ( CUR.GS.freeVector.y == 0x4000 ) - { - CUR.func_freeProj = (TProject_Function)Project_y; - CUR.F_dot_P = CUR.GS.projVector.y * 0x10000L; - } - else - { - CUR.func_freeProj = (TProject_Function)Free_Project; - CUR.F_dot_P = (Long)CUR.GS.projVector.x * CUR.GS.freeVector.x * 4 + - (Long)CUR.GS.projVector.y * CUR.GS.freeVector.y * 4; - } - } - - CUR.cached_metrics = FALSE; - - if ( CUR.GS.projVector.x == 0x4000 ) - CUR.func_project = (TProject_Function)Project_x; - else - { - if ( CUR.GS.projVector.y == 0x4000 ) - CUR.func_project = (TProject_Function)Project_y; - else - CUR.func_project = (TProject_Function)Project; - } - - if ( CUR.GS.dualVector.x == 0x4000 ) - CUR.func_dualproj = (TProject_Function)Project_x; - else - { - if ( CUR.GS.dualVector.y == 0x4000 ) - CUR.func_dualproj = (TProject_Function)Project_y; - else - CUR.func_dualproj = (TProject_Function)Dual_Project; - } - - CUR.func_move = (TMove_Function)Direct_Move; - - if ( CUR.F_dot_P == 0x40000000L ) - { - if ( CUR.GS.freeVector.x == 0x4000 ) - CUR.func_move = (TMove_Function)Direct_Move_X; - else - { - if ( CUR.GS.freeVector.y == 0x4000 ) - CUR.func_move = (TMove_Function)Direct_Move_Y; - } - } - - /* at small sizes, F_dot_P can become too small, resulting */ - /* in overflows and 'spikes' in a number of glyphs like 'w'. */ - - if ( ABS( CUR.F_dot_P ) < 0x4000000L ) - CUR.F_dot_P = 0x40000000L; - - /* Disable cached aspect ratio */ - CUR.metrics.ratio = 0; - } - - -/******************************************************************* - * - * Function : Normalize - * - * Description : Norms a vector - * - * Input : Vx, Vy input vector - * R normed unit vector - * - * Output : Returns FAILURE if a vector parameter is zero. - * - *****************************************************************/ - - static Bool Normalize( EXEC_OPS TT_F26Dot6 Vx, - TT_F26Dot6 Vy, - TT_UnitVector* R ) - { - TT_F26Dot6 W; - Bool S1, S2; - - - if ( ABS( Vx ) < 0x10000L && ABS( Vy ) < 0x10000L ) - { - Vx *= 0x100; - Vy *= 0x100; - - W = Norm( Vx, Vy ); - - if ( W == 0 ) - { - /* UNDOCUMENTED! It seems that it's possible to try to */ - /* normalize the vector (0,0). Return immediately. */ - return SUCCESS; - } - - R->x = (TT_F2Dot14)TT_MulDiv( Vx, 0x4000L, W ); - R->y = (TT_F2Dot14)TT_MulDiv( Vy, 0x4000L, W ); - - return SUCCESS; - } - - W = Norm( Vx, Vy ); - - Vx = TT_MulDiv( Vx, 0x4000L, W ); - Vy = TT_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 = (TT_F2Dot14)Vx; /* Type conversion */ - R->y = (TT_F2Dot14)Vy; /* Type conversion */ - - return SUCCESS; - } - - -/**************************************************************** - * - * Opcodes - * - ****************************************************************/ - - - static Bool Ins_SxVTL( EXEC_OPS UShort aIdx1, - UShort aIdx2, - Int aOpc, - TT_UnitVector* Vec ) - { - Long A, B, C; - TT_Vector* p1; - TT_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; /* CounterClockwise 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're all defined there. */ - -#define DO_SVTCA \ - { \ - Short A, B; \ - \ - \ - A = (Short)(CUR.opcode & 1) << 14; \ - B = A ^ (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 \ - { \ - Short A, B; \ - \ - \ - A = (Short)(CUR.opcode & 1) << 14; \ - B = A ^ (Short)0x4000; \ - \ - CUR.GS.projVector.x = A; \ - CUR.GS.dualVector.x = A; \ - \ - CUR.GS.projVector.y = B; \ - CUR.GS.dualVector.y = B; \ - \ - COMPUTE_Funcs(); \ - } - - -#define DO_SFVTCA \ - { \ - Short A, B; \ - \ - \ - A = (Short)(CUR.opcode & 1) << 14; \ - B = A ^ (Short)0x4000; \ - \ - CUR.GS.freeVector.x = A; \ - CUR.GS.freeVector.y = B; \ - \ - COMPUTE_Funcs(); \ - } - - -#define DO_SPVTL \ - if ( INS_SxVTL( (UShort)args[1], \ - (UShort)args[0], \ - CUR.opcode, \ - &CUR.GS.projVector) == SUCCESS ) \ - { \ - CUR.GS.dualVector = CUR.GS.projVector; \ - COMPUTE_Funcs(); \ - } - - -#define DO_SFVTL \ - if ( INS_SxVTL( (UShort)args[1], \ - (UShort)args[0], \ - CUR.opcode, \ - &CUR.GS.freeVector) == SUCCESS ) \ - COMPUTE_Funcs(); - - -#define DO_SFVTPV \ - CUR.GS.freeVector = CUR.GS.projVector; \ - COMPUTE_Funcs(); - - -#define DO_SPVFS \ - { \ - Short S; \ - Long X, Y; \ - \ - \ - /* Only use low 16bits, then sign extend */ \ - S = (Short)args[1]; \ - Y = (Long)S; \ - S = (Short)args[0]; \ - X = (Long)S; \ - \ - NORMalize( X, Y, &CUR.GS.projVector ); \ - \ - CUR.GS.dualVector = CUR.GS.projVector; \ - COMPUTE_Funcs(); \ - } - - -#define DO_SFVFS \ - { \ - Short S; \ - Long X, Y; \ - \ - \ - /* Only use low 16bits, then sign extend */ \ - S = (Short)args[1]; \ - Y = (Long)S; \ - S = (Short)args[0]; \ - X = S; \ - \ - NORMalize( X, Y, &CUR.GS.freeVector ); \ - COMPUTE_Funcs(); \ - } - - -#define DO_GPV \ - args[0] = CUR.GS.projVector.x; \ - args[1] = CUR.GS.projVector.y; - - -#define DO_GFV \ - args[0] = CUR.GS.freeVector.x; \ - args[1] = CUR.GS.freeVector.y; - - -#define DO_SRP0 \ - CUR.GS.rp0 = (UShort)args[0]; - - -#define DO_SRP1 \ - CUR.GS.rp1 = (UShort)args[0]; - - -#define DO_SRP2 \ - CUR.GS.rp2 = (UShort)args[0]; - - -#define DO_RTHG \ - CUR.GS.round_state = TT_Round_To_Half_Grid; \ - CUR.func_round = (TRound_Function)Round_To_Half_Grid; - - -#define DO_RTG \ - CUR.GS.round_state = TT_Round_To_Grid; \ - CUR.func_round = (TRound_Function)Round_To_Grid; - - -#define DO_RTDG \ - CUR.GS.round_state = TT_Round_To_Double_Grid; \ - CUR.func_round = (TRound_Function)Round_To_Double_Grid; - - -#define DO_RUTG \ - CUR.GS.round_state = TT_Round_Up_To_Grid; \ - CUR.func_round = (TRound_Function)Round_Up_To_Grid; - - -#define DO_RDTG \ - CUR.GS.round_state = TT_Round_Down_To_Grid; \ - CUR.func_round = (TRound_Function)Round_Down_To_Grid; - - -#define DO_ROFF \ - CUR.GS.round_state = TT_Round_Off; \ - CUR.func_round = (TRound_Function)Round_None; - - -#define DO_SROUND \ - SET_SuperRound( 0x4000L, args[0] ); \ - CUR.GS.round_state = TT_Round_Super; \ - CUR.func_round = (TRound_Function)Round_Super; - - -#define DO_S45ROUND \ - SET_SuperRound( 0x2D41L, args[0] ); \ - CUR.GS.round_state = TT_Round_Super_45; \ - CUR.func_round = (TRound_Function)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 = (TT_F26Dot6)args[0]; - - -#define DO_SCVTCI \ - CUR.GS.control_value_cutin = (TT_F26Dot6)args[0]; - - -#define DO_SSWCI \ - CUR.GS.single_width_cutin = (TT_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 = (TT_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 = (Short)args[0]; - - -#define DO_SDS \ - CUR.GS.delta_shift = (Short)args[0]; - - -#define DO_MD /* nothing */ - - -#define DO_MPPEM \ - args[0] = CURRENT_Ppem(); - - -#define DO_MPS \ - args[0] = CUR.metrics.pointSize; - - -#define DO_DUP \ - args[1] = args[0]; - - -#define DO_CLEAR \ - CUR.new_top = 0; - - -#define DO_SWAP \ - { \ - Long L; \ - \ - L = args[0]; \ - args[0] = args[1]; \ - args[1] = L; \ - } - - -#define DO_DEPTH \ - args[0] = CUR.top; - - -#define DO_CINDEX \ - { \ - 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( args[0], 64L, args[1] ); - - -#define DO_MUL \ - args[0] = TT_MulDiv( args[0], args[1], 64L ); - - -#define DO_ABS \ - args[0] = ABS( args[0] ); - - -#define DO_NEG \ - args[0] = -args[0]; - - -#define DO_FLOOR \ - args[0] &= -64; - - -#define DO_CEILING \ - args[0] = (args[0] + 63) & (-64); - - -#define DO_RS \ - { \ - ULong I = (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 \ - { \ - ULong I = (ULong)args[0]; \ - if ( BOUNDS( I, CUR.storeSize ) ) \ - { \ - if ( CUR.pedantic_hinting ) \ - { \ - ARRAY_BOUND_ERROR; \ - } \ - } \ - else \ - CUR.storage[I] = args[1]; \ - } - - - -#define DO_RCVT \ - { \ - ULong I = (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 \ - { \ - ULong I = (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 \ - { \ - ULong I = (ULong)args[0]; \ - if ( BOUNDS( I, CUR.cvtSize ) ) \ - { \ - if ( CUR.pedantic_hinting ) \ - { \ - ARRAY_BOUND_ERROR; \ - } \ - } \ - else \ - CUR.cvt[I] = FUnits_To_Pixels( EXEC_ARGS (Short)args[1] ); \ - } - - -#define DO_DEBUG \ - CUR.error = TT_Err_Debug_OpCode; - - -#define DO_ROUND \ - args[0] = CUR_Func_round( args[0], \ - CUR.metrics.compensations[CUR.opcode-0x68] ); - - -#define DO_NROUND \ - args[0] = Round_None( EXEC_ARGS \ - args[0], \ - CUR.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 axis */ -/* CodeRange : $00-$01 */ -/* Stack : --> */ - - static void Ins_SVTCA( INS_ARG ) - { - DO_SVTCA - } - - -/*******************************************/ -/* SPVTCA[a] : Set PVector to Axis */ -/* CodeRange : $02-$03 */ -/* Stack : --> */ - - static void Ins_SPVTCA( INS_ARG ) - { - DO_SPVTCA - } - - -/*******************************************/ -/* SFVTCA[a] : Set FVector to Axis */ -/* CodeRange : $04-$05 */ -/* Stack : --> */ - - static void Ins_SFVTCA( INS_ARG ) - { - DO_SFVTCA - } - -/*******************************************/ -/* SPVTL[a] : Set PVector to Line */ -/* CodeRange : $06-$07 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_SPVTL( INS_ARG ) - { - DO_SPVTL - } - - -/*******************************************/ -/* SFVTL[a] : Set FVector to Line */ -/* CodeRange : $08-$09 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_SFVTL( INS_ARG ) - { - DO_SFVTL - } - - -/*******************************************/ -/* SFVTPV[] : Set FVector to PVector */ -/* CodeRange : $0E */ -/* Stack : --> */ - - static void Ins_SFVTPV( INS_ARG ) - { - DO_SFVTPV - } - - -/*******************************************/ -/* SPVFS[] : Set PVector From Stack */ -/* CodeRange : $0A */ -/* Stack : f2.14 f2.14 --> */ - - static void Ins_SPVFS( INS_ARG ) - { - DO_SPVFS - } - - -/*******************************************/ -/* SFVFS[] : Set FVector From Stack */ -/* CodeRange : $0B */ -/* Stack : f2.14 f2.14 --> */ - - static void Ins_SFVFS( INS_ARG ) - { - DO_SFVFS - } - - -/*******************************************/ -/* GPV[] : Get Projection Vector */ -/* CodeRange : $0C */ -/* Stack : ef2.14 --> ef2.14 */ - - static void Ins_GPV( INS_ARG ) - { - DO_GPV - } - - -/*******************************************/ -/* GFV[] : Get Freedom Vector */ -/* CodeRange : $0D */ -/* Stack : ef2.14 --> ef2.14 */ - - static void Ins_GFV( INS_ARG ) - { - DO_GFV - } - - -/*******************************************/ -/* SRP0[] : Set Reference Point 0 */ -/* CodeRange : $10 */ -/* Stack : uint32 --> */ - - static void Ins_SRP0( INS_ARG ) - { - DO_SRP0 - } - - -/*******************************************/ -/* SRP1[] : Set Reference Point 1 */ -/* CodeRange : $11 */ -/* Stack : uint32 --> */ - - static void Ins_SRP1( INS_ARG ) - { - DO_SRP1 - } - - -/*******************************************/ -/* SRP2[] : Set Reference Point 2 */ -/* CodeRange : $12 */ -/* Stack : uint32 --> */ - - static void Ins_SRP2( INS_ARG ) - { - DO_SRP2 - } - - -/*******************************************/ -/* RTHG[] : Round To Half Grid */ -/* CodeRange : $19 */ -/* Stack : --> */ - - static void Ins_RTHG( INS_ARG ) - { - DO_RTHG - } - - -/*******************************************/ -/* RTG[] : Round To Grid */ -/* CodeRange : $18 */ -/* Stack : --> */ - - static void Ins_RTG( INS_ARG ) - { - DO_RTG - } - - -/*******************************************/ -/* RTDG[] : Round To Double Grid */ -/* CodeRange : $3D */ -/* Stack : --> */ - - static void Ins_RTDG( INS_ARG ) - { - DO_RTDG - } - - -/*******************************************/ -/* RUTG[] : Round Up To Grid */ -/* CodeRange : $7C */ -/* Stack : --> */ - - static void Ins_RUTG( INS_ARG ) - { - DO_RUTG - } - - -/*******************************************/ -/* RDTG[] : Round Down To Grid */ -/* CodeRange : $7D */ -/* Stack : --> */ - - static void Ins_RDTG( INS_ARG ) - { - DO_RDTG - } - - -/*******************************************/ -/* ROFF[] : Round OFF */ -/* CodeRange : $7A */ -/* Stack : --> */ - - static void Ins_ROFF( INS_ARG ) - { - DO_ROFF - } - - -/*******************************************/ -/* SROUND[] : Super ROUND */ -/* CodeRange : $76 */ -/* Stack : Eint8 --> */ - - static void Ins_SROUND( INS_ARG ) - { - DO_SROUND - } - - -/*******************************************/ -/* S45ROUND[]: Super ROUND 45 degrees */ -/* CodeRange : $77 */ -/* Stack : uint32 --> */ - - static void Ins_S45ROUND( INS_ARG ) - { - DO_S45ROUND - } - - -/*******************************************/ -/* SLOOP[] : Set LOOP variable */ -/* CodeRange : $17 */ -/* Stack : int32? --> */ - - static void Ins_SLOOP( INS_ARG ) - { - DO_SLOOP - } - - -/*******************************************/ -/* SMD[] : Set Minimum Distance */ -/* CodeRange : $1A */ -/* Stack : f26.6 --> */ - - static void Ins_SMD( INS_ARG ) - { - DO_SMD - } - - -/**********************************************/ -/* SCVTCI[] : Set Control Value Table Cut In */ -/* CodeRange : $1D */ -/* Stack : f26.6 --> */ - - static void Ins_SCVTCI( INS_ARG ) - { - DO_SCVTCI - } - - -/**********************************************/ -/* SSWCI[] : Set Single Width Cut In */ -/* CodeRange : $1E */ -/* Stack : f26.6 --> */ - - static void Ins_SSWCI( INS_ARG ) - { - DO_SSWCI - } - - -/**********************************************/ -/* SSW[] : Set Single Width */ -/* CodeRange : $1F */ -/* Stack : int32? --> */ - - static void Ins_SSW( INS_ARG ) - { - DO_SSW - } - - -/**********************************************/ -/* FLIPON[] : Set Auto_flip to On */ -/* CodeRange : $4D */ -/* Stack : --> */ - - static void Ins_FLIPON( INS_ARG ) - { - DO_FLIPON - } - - -/**********************************************/ -/* FLIPOFF[] : Set Auto_flip to Off */ -/* CodeRange : $4E */ -/* Stack : --> */ - - static void Ins_FLIPOFF( INS_ARG ) - { - DO_FLIPOFF - } - - -/**********************************************/ -/* SANGW[] : Set Angle Weight */ -/* CodeRange : $7E */ -/* Stack : uint32 --> */ - - static void Ins_SANGW( INS_ARG ) - { - /* instruction not supported anymore */ - } - - -/**********************************************/ -/* SDB[] : Set Delta Base */ -/* CodeRange : $5E */ -/* Stack : uint32 --> */ - - static void Ins_SDB( INS_ARG ) - { - DO_SDB - } - - -/**********************************************/ -/* SDS[] : Set Delta Shift */ -/* CodeRange : $5F */ -/* Stack : uint32 --> */ - - static void Ins_SDS( INS_ARG ) - { - DO_SDS - } - - -/**********************************************/ -/* MPPEM[] : Measure Pixel Per EM */ -/* CodeRange : $4B */ -/* Stack : --> Euint16 */ - - static void Ins_MPPEM( INS_ARG ) - { - DO_MPPEM - } - - -/**********************************************/ -/* MPS[] : Measure PointSize */ -/* CodeRange : $4C */ -/* Stack : --> Euint16 */ - - static void Ins_MPS( INS_ARG ) - { - DO_MPS - } - -/*******************************************/ -/* DUP[] : Duplicate top stack element */ -/* CodeRange : $20 */ -/* Stack : StkElt --> StkElt StkElt */ - - static void Ins_DUP( INS_ARG ) - { - DO_DUP - } - - -/*******************************************/ -/* POP[] : POPs the stack's top elt. */ -/* CodeRange : $21 */ -/* Stack : StkElt --> */ - - static void Ins_POP( INS_ARG ) - { - /* nothing to do */ - } - - -/*******************************************/ -/* CLEAR[] : Clear the entire stack */ -/* CodeRange : $22 */ -/* Stack : StkElt... --> */ - - static void Ins_CLEAR( INS_ARG ) - { - DO_CLEAR - } - - -/*******************************************/ -/* SWAP[] : Swap the top two elements */ -/* CodeRange : $23 */ -/* Stack : 2 * StkElt --> 2 * StkElt */ - - static void Ins_SWAP( INS_ARG ) - { - DO_SWAP - } - - -/*******************************************/ -/* DEPTH[] : return the stack depth */ -/* CodeRange : $24 */ -/* Stack : --> uint32 */ - - static void Ins_DEPTH( INS_ARG ) - { - DO_DEPTH - } - - -/*******************************************/ -/* CINDEX[] : copy indexed element */ -/* CodeRange : $25 */ -/* Stack : int32 --> StkElt */ - - static void Ins_CINDEX( INS_ARG ) - { - DO_CINDEX - } - - -/*******************************************/ -/* EIF[] : End IF */ -/* CodeRange : $59 */ -/* Stack : --> */ - - static void Ins_EIF( INS_ARG ) - { - /* nothing to do */ - } - - -/*******************************************/ -/* JROT[] : Jump Relative On True */ -/* CodeRange : $78 */ -/* Stack : StkElt int32 --> */ - - static void Ins_JROT( INS_ARG ) - { - DO_JROT - } - - -/*******************************************/ -/* JMPR[] : JuMP Relative */ -/* CodeRange : $1C */ -/* Stack : int32 --> */ - - static void Ins_JMPR( INS_ARG ) - { - DO_JMPR - } - - -/*******************************************/ -/* JROF[] : Jump Relative On False */ -/* CodeRange : $79 */ -/* Stack : StkElt int32 --> */ - - static void Ins_JROF( INS_ARG ) - { - DO_JROF - } - - -/*******************************************/ -/* LT[] : Less Than */ -/* CodeRange : $50 */ -/* Stack : int32? int32? --> bool */ - - static void Ins_LT( INS_ARG ) - { - DO_LT - } - - -/*******************************************/ -/* LTEQ[] : Less Than or EQual */ -/* CodeRange : $51 */ -/* Stack : int32? int32? --> bool */ - - static void Ins_LTEQ( INS_ARG ) - { - DO_LTEQ - } - - -/*******************************************/ -/* GT[] : Greater Than */ -/* CodeRange : $52 */ -/* Stack : int32? int32? --> bool */ - - static void Ins_GT( INS_ARG ) - { - DO_GT - } - - -/*******************************************/ -/* GTEQ[] : Greater Than or EQual */ -/* CodeRange : $53 */ -/* Stack : int32? int32? --> bool */ - - static void Ins_GTEQ( INS_ARG ) - { - DO_GTEQ - } - - -/*******************************************/ -/* EQ[] : EQual */ -/* CodeRange : $54 */ -/* Stack : StkElt StkElt --> bool */ - - static void Ins_EQ( INS_ARG ) - { - DO_EQ - } - - -/*******************************************/ -/* NEQ[] : Not EQual */ -/* CodeRange : $55 */ -/* Stack : StkElt StkElt --> bool */ - - static void Ins_NEQ( INS_ARG ) - { - DO_NEQ - } - - -/*******************************************/ -/* ODD[] : Odd */ -/* CodeRange : $56 */ -/* Stack : f26.6 --> bool */ - - static void Ins_ODD( INS_ARG ) - { - DO_ODD - } - - -/*******************************************/ -/* EVEN[] : Even */ -/* CodeRange : $57 */ -/* Stack : f26.6 --> bool */ - - static void Ins_EVEN( INS_ARG ) - { - DO_EVEN - } - - -/*******************************************/ -/* AND[] : logical AND */ -/* CodeRange : $5A */ -/* Stack : uint32 uint32 --> uint32 */ - - static void Ins_AND( INS_ARG ) - { - DO_AND - } - - -/*******************************************/ -/* OR[] : logical OR */ -/* CodeRange : $5B */ -/* Stack : uint32 uint32 --> uint32 */ - - static void Ins_OR( INS_ARG ) - { - DO_OR - } - - -/*******************************************/ -/* NOT[] : logical NOT */ -/* CodeRange : $5C */ -/* Stack : StkElt --> uint32 */ - - static void Ins_NOT( INS_ARG ) - { - DO_NOT - } - - -/*******************************************/ -/* ADD[] : ADD */ -/* CodeRange : $60 */ -/* Stack : f26.6 f26.6 --> f26.6 */ - - static void Ins_ADD( INS_ARG ) - { - DO_ADD - } - - -/*******************************************/ -/* SUB[] : SUBstract */ -/* CodeRange : $61 */ -/* Stack : f26.6 f26.6 --> f26.6 */ - - static void Ins_SUB( INS_ARG ) - { - DO_SUB - } - - -/*******************************************/ -/* DIV[] : DIVide */ -/* CodeRange : $62 */ -/* Stack : f26.6 f26.6 --> f26.6 */ - - static void Ins_DIV( INS_ARG ) - { - DO_DIV - } - - -/*******************************************/ -/* MUL[] : MULtiply */ -/* CodeRange : $63 */ -/* Stack : f26.6 f26.6 --> f26.6 */ - - static void Ins_MUL( INS_ARG ) - { - DO_MUL - } - - -/*******************************************/ -/* ABS[] : ABSolute value */ -/* CodeRange : $64 */ -/* Stack : f26.6 --> f26.6 */ - - static void Ins_ABS( INS_ARG ) - { - DO_ABS - } - - -/*******************************************/ -/* NEG[] : NEGate */ -/* CodeRange : $65 */ -/* Stack : f26.6 --> f26.6 */ - - static void Ins_NEG( INS_ARG ) - { - DO_NEG - } - - -/*******************************************/ -/* FLOOR[] : FLOOR */ -/* CodeRange : $66 */ -/* Stack : f26.6 --> f26.6 */ - - static void Ins_FLOOR( INS_ARG ) - { - DO_FLOOR - } - - -/*******************************************/ -/* CEILING[] : CEILING */ -/* CodeRange : $67 */ -/* f26.6 --> f26.6 */ - - static void Ins_CEILING( INS_ARG ) - { - DO_CEILING - } - -/*******************************************/ -/* RS[] : Read Store */ -/* CodeRange : $43 */ -/* Stack : uint32 --> uint32 */ - - static void Ins_RS( INS_ARG ) - { - DO_RS - } - - -/*******************************************/ -/* WS[] : Write Store */ -/* CodeRange : $42 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_WS( INS_ARG ) - { - DO_WS - } - - -/*******************************************/ -/* WCVTP[] : Write CVT in Pixel units */ -/* CodeRange : $44 */ -/* Stack : f26.6 uint32 --> */ - - static void Ins_WCVTP( INS_ARG ) - { - DO_WCVTP - } - - -/*******************************************/ -/* WCVTF[] : Write CVT in FUnits */ -/* CodeRange : $70 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_WCVTF( INS_ARG ) - { - DO_WCVTF - } - - -/*******************************************/ -/* RCVT[] : Read CVT */ -/* CodeRange : $45 */ -/* Stack : uint32 --> f26.6 */ - - static void Ins_RCVT( INS_ARG ) - { - DO_RCVT - } - - -/********************************************/ -/* AA[] : Adjust Angle */ -/* CodeRange : $7F */ -/* Stack : uint32 --> */ - - static void Ins_AA( INS_ARG ) - { - /* Intentional - no longer supported */ - } - - -/********************************************/ -/* DEBUG[] : DEBUG. Unsupported */ -/* CodeRange : $4F */ -/* Stack : uint32 --> */ - -/* NOTE : The original instruction pops a value from the stack */ - - static void Ins_DEBUG( INS_ARG ) - { - DO_DEBUG - } - -/*******************************************/ -/* ROUND[ab] : ROUND value */ -/* CodeRange : $68-$6B */ -/* Stack : f26.6 --> f26.6 */ - - static void Ins_ROUND( INS_ARG ) - { - DO_ROUND - } - -/*******************************************/ -/* NROUND[ab]: No ROUNDing of value */ -/* CodeRange : $6C-$6F */ -/* Stack : f26.6 --> f26.6 */ - - static void Ins_NROUND( INS_ARG ) - { - DO_NROUND - } - - - -/*******************************************/ -/* MAX[] : MAXimum */ -/* CodeRange : $68 */ -/* Stack : int32? int32? --> int32 */ - - static void Ins_MAX( INS_ARG ) - { - DO_MAX - } - - -/*******************************************/ -/* MIN[] : MINimum */ -/* CodeRange : $69 */ -/* 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 */ -/* CodeRange : $26 */ -/* Stack : int32? --> StkElt */ - - static void Ins_MINDEX( INS_ARG ) - { - 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]; - - MEM_Move( (&CUR.stack[CUR.args - L ]), - (&CUR.stack[CUR.args - L + 1]), - (L - 1) * sizeof ( Long ) ); - - CUR.stack[CUR.args - 1] = K; - } - - -/*******************************************/ -/* ROLL[] : roll top three elements */ -/* CodeRange : $8A */ -/* Stack : 3 * StkElt --> 3 * StkElt */ - - static void Ins_ROLL( INS_ARG ) - { - Long A, B, C; - - - 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 specs' order. */ -/* */ -/****************************************************************/ - - static Bool SkipCode( EXEC_OP ) - { - CUR.IP += CUR.length; - - if ( CUR.IP < CUR.codeSize ) - if ( CALC_Length() == SUCCESS ) - return SUCCESS; - - CUR.error = TT_Err_Code_Overflow; - return FAILURE; - } - - -/*******************************************/ -/* IF[] : IF test */ -/* CodeRange : $58 */ -/* Stack : StkElt --> */ - - static void Ins_IF( INS_ARG ) - { - Int nIfs; - 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 = (nIfs == 1); - break; - - case 0x59: /* EIF */ - nIfs--; - Out = (nIfs == 0); - break; - } - } while ( Out == 0 ); - } - - -/*******************************************/ -/* ELSE[] : ELSE */ -/* CodeRange : $1B */ -/* Stack : --> */ - - static void Ins_ELSE( INS_ARG ) - { - Int nIfs; - - - 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 specs' order. */ -/* */ -/****************************************************************/ - - static PDefRecord Locate_FDef( EXEC_OPS Int n, Bool new_def ) - { - PDefRecord def; - UShort hash; - UShort cnt; - - /* The function table is interpreted as a simple hash table */ - /* with indexes computed modulo maxFDefs and the linear search */ - /* of free cells in the case of a collision. */ - /* Except for some old Apple fonts, all functions in a TrueType */ - /* font fit into 0..maxFDefs - 1 range and the lookup is */ - /* reduced to a single step. */ - - /* Minor optimization. */ - if ( !new_def && ( n < 0 || n > CUR.maxFunc ) ) - return NULL; - - for ( cnt = 0; cnt < CUR.maxFDefs; ++cnt ) - { - hash = ( (UShort)n + cnt ) % CUR.maxFDefs; - def = &CUR.FDefs[ hash ]; - if ( !def->Active ) - return new_def ? def : NULL; - if ( def->Opc == n ) - return def; - } - - /* The table is full and the entry has not been found. */ - return NULL; - } - - -/*******************************************/ -/* FDEF[] : Function DEFinition */ -/* CodeRange : $2C */ -/* Stack : uint32 --> */ - - static void Ins_FDEF( INS_ARG ) - { - Int n; - PDefRecord def; - - - /* check that there is enough room */ - if ( CUR.numFDefs >= CUR.maxFDefs ) - { - CUR.error = TT_Err_Too_Many_FDefs; - return; - } - - n = (Int)args[0]; - if ( n < 0 || n != (int)args[0] ) - { - /* Gotcha. Function index is uint32 according to the specs */ - /* but TDefRecord.Opc is defined as Int. We cannot store */ - /* the definition of this function. */ - CUR.error = TT_Err_Bad_Argument; - return; - } - - def = Locate_FDef( EXEC_ARGS n, TRUE ); - if ( !def ) - { - /* Oh, oh. Something is wrong. Locate_FDef should never fail here. */ - CUR.error = TT_Err_Too_Many_Ins; - return; - } - - /* Some font programs are broken enough to redefine functions! */ - if ( !def->Active ) - CUR.numFDefs++; - - def->Range = CUR.curRange; - def->Opc = n; - def->Start = CUR.IP + 1; - def->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 */ -/* CodeRange : $2D */ -/* Stack : --> */ - - static void Ins_ENDF( INS_ARG ) - { - PCallRecord pRec; - - - 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: When 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's why we do not test */ - /* the result of Ins_Goto_CodeRange() here! */ - } - - -/*******************************************/ -/* CALL[] : CALL function */ -/* CodeRange : $2B */ -/* Stack : uint32? --> */ - - static void Ins_CALL( INS_ARG ) - { - Int n; - PDefRecord def; - PCallRecord pCrec; - - - n = (Int)args[0]; - def = Locate_FDef( EXEC_ARGS n, FALSE ); - if ( !def ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - - /* check 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; - } - - -/*******************************************/ -/* LOOPCALL[]: LOOP and CALL function */ -/* CodeRange : $2A */ -/* Stack : uint32? Eint16? --> */ - - static void Ins_LOOPCALL( INS_ARG ) - { - Int n; - Long count; - PDefRecord def; - PCallRecord pTCR; - - - n = (Int)args[1]; - def = Locate_FDef( EXEC_ARGS n, FALSE ); - if ( !def ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - - if ( CUR.callTop >= CUR.callSize ) - { - CUR.error = TT_Err_Stack_Overflow; - return; - } - - count = (Long)args[0]; - if ( count <= 0 ) - return; - - pTCR = &CUR.callStack[CUR.callTop]; - - pTCR->Caller_Range = CUR.curRange; - pTCR->Caller_IP = CUR.IP + 1; - pTCR->Cur_Count = count; - pTCR->Cur_Restart = def->Start; - - CUR.callTop++; - - INS_Goto_CodeRange( def->Range, - def->Start ); - - CUR.step_ins = FALSE; - } - - -/*******************************************/ -/* IDEF[] : Instruction DEFinition */ -/* CodeRange : $89 */ -/* Stack : Eint8 --> */ - - static void Ins_IDEF( INS_ARG ) - { - Byte opcode; - PDefRecord def; - PDefRecord limit; - - - opcode = (Byte)args[0]; - - /* First of all, look for the same instruction in our table */ - def = CUR.IDefs; - limit = def + CUR.numIDefs; - for ( ; def < limit; def++ ) - if ( def->Opc == opcode ) - break; - - if ( def == limit ) - { - /* check that there is enough room for a new instruction */ - if ( CUR.numIDefs >= CUR.maxIDefs ) - { - /* We could introduce a new error message (the same as for FDEF), */ - /* but we're too close from the release to change all the 'po' */ - /* files again... */ - CUR.error = TT_Err_Too_Many_Ins; - return; - } - CUR.numIDefs++; - } - - def->Opc = opcode; - def->Start = CUR.IP + 1; - def->Range = CUR.curRange; - def->Active = TRUE; - - if ( opcode > CUR.maxIns ) - CUR.maxIns = opcode; - - /* 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 specs' order. */ -/* */ -/****************************************************************/ - -/*******************************************/ -/* NPUSHB[] : PUSH N Bytes */ -/* CodeRange : $40 */ -/* Stack : --> uint32... */ - - static void Ins_NPUSHB( INS_ARG ) - { - UShort L, K; - - - L = (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 */ -/* CodeRange : $41 */ -/* Stack : --> int32... */ - - static void Ins_NPUSHW( INS_ARG ) - { - UShort L, K; - - - L = (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 */ -/* CodeRange : $B0-$B7 */ -/* Stack : --> uint32... */ - - static void Ins_PUSHB( INS_ARG ) - { - UShort L, K; - - - L = (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 */ -/* CodeRange : $B8-$BF */ -/* Stack : --> int32... */ - - static void Ins_PUSHW( INS_ARG ) - { - UShort L, K; - - - L = (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 */ -/* CodeRange : $46-$47 */ -/* Stack : uint32 --> f26.6 */ - -/* BULLSHIT: Measures from the original glyph must be taken */ -/* along the dual projection vector! */ - - static void Ins_GC( INS_ARG ) - { - ULong L; - TT_F26Dot6 R; - - - L = (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 */ -/* CodeRange : $48 */ -/* Stack : f26.6 uint32 --> */ -/* */ -/* Formula: */ -/* */ -/* OA := OA + ( value - OA.p )/( f.p ) * f */ -/* */ - - static void Ins_SCFS( INS_ARG ) - { - Long K; - UShort L; - - - L = (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 */ -/* CodeRange : $49-$4A */ -/* 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 ) - { - UShort K, L; - TT_F26Dot6 D; - - - K = (UShort)args[1]; - L = (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; - } - else - 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 */ -/* CodeRange : $86-$87 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_SDPVTL( INS_ARG ) - { - Long A, B, C; - UShort p1, p2; /* was Int in pas type ERROR */ - - - p1 = (UShort)args[1]; - p2 = (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; - } - - { - TT_Vector* v1 = CUR.zp1.org + p2; - TT_Vector* v2 = CUR.zp2.org + p1; - - - A = v1->x - v2->x; - B = v1->y - v2->y; - } - - if ( (CUR.opcode & 1) != 0 ) - { - C = B; /* CounterClockwise rotation */ - B = A; - A = -C; - } - - NORMalize( A, B, &CUR.GS.dualVector ); - - { - TT_Vector* v1 = CUR.zp1.cur + p2; - TT_Vector* v2 = CUR.zp2.cur + p1; - - - A = v1->x - v2->x; - B = v1->y - v2->y; - } - - if ( (CUR.opcode & 1) != 0 ) - { - C = B; /* CounterClockwise rotation */ - B = A; - A = -C; - } - - NORMalize( A, B, &CUR.GS.projVector ); - - COMPUTE_Funcs(); - } - - -/*******************************************/ -/* SZP0[] : Set Zone Pointer 0 */ -/* CodeRange : $13 */ -/* Stack : uint32 --> */ - - static void Ins_SZP0( INS_ARG ) - { - switch ( (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 = (UShort)args[0]; - } - - -/*******************************************/ -/* SZP1[] : Set Zone Pointer 1 */ -/* CodeRange : $14 */ -/* Stack : uint32 --> */ - - static void Ins_SZP1( INS_ARG ) - { - switch ( (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 = (UShort)args[0]; - } - - -/*******************************************/ -/* SZP2[] : Set Zone Pointer 2 */ -/* CodeRange : $15 */ -/* Stack : uint32 --> */ - - static void Ins_SZP2( INS_ARG ) - { - switch ( (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 = (UShort)args[0]; - } - - -/*******************************************/ -/* SZPS[] : Set Zone Pointers */ -/* CodeRange : $16 */ -/* Stack : uint32 --> */ - - static void Ins_SZPS( INS_ARG ) - { - switch ( (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 = (UShort)args[0]; - CUR.GS.gep1 = (UShort)args[0]; - CUR.GS.gep2 = (UShort)args[0]; - } - - -/*******************************************/ -/* INSTCTRL[]: INSTruction ConTRol */ -/* CodeRange : $8e */ -/* Stack : int32 int32 --> */ - - static void Ins_INSTCTRL( INS_ARG ) - { - 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 = - (Byte)( CUR.GS.instruct_control & ~(Byte)K ) | (Byte)L; - } - - -/*******************************************/ -/* SCANCTRL[]: SCAN ConTRol */ -/* CodeRange : $85 */ -/* Stack : uint32? --> */ - - static void Ins_SCANCTRL( INS_ARG ) - { - Int A; - - - /* Get Threshold */ - A = (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 ( (args[0] & 0x100) != 0 && CUR.metrics.pointSize <= A ) - CUR.GS.scan_control = TRUE; - - if ( (args[0] & 0x200) != 0 && CUR.metrics.rotated ) - CUR.GS.scan_control = TRUE; - - if ( (args[0] & 0x400) != 0 && CUR.metrics.stretched ) - CUR.GS.scan_control = TRUE; - - if ( (args[0] & 0x800) != 0 && CUR.metrics.pointSize > A ) - CUR.GS.scan_control = FALSE; - - if ( (args[0] & 0x1000) != 0 && CUR.metrics.rotated ) - CUR.GS.scan_control = FALSE; - - if ( (args[0] & 0x2000) != 0 && CUR.metrics.stretched ) - CUR.GS.scan_control = FALSE; -} - - -/*******************************************/ -/* SCANTYPE[]: SCAN TYPE */ -/* CodeRange : $8D */ -/* 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 = (Int)args[0]; - } - } - - - -/****************************************************************/ -/* */ -/* MANAGING OUTLINES */ -/* */ -/* Instructions appear in the specs' order. */ -/* */ -/****************************************************************/ - -/**********************************************/ -/* FLIPPT[] : FLIP PoinT */ -/* CodeRange : $80 */ -/* Stack : uint32... --> */ - - static void Ins_FLIPPT( INS_ARG ) - { - UShort point; - - - if ( CUR.top < CUR.GS.loop ) - { - CUR.error = TT_Err_Too_Few_Arguments; - return; - } - - while ( CUR.GS.loop > 0 ) - { - CUR.args--; - - point = (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.touch[point] ^= TT_Flag_On_Curve; - - CUR.GS.loop--; - } - - CUR.GS.loop = 1; - CUR.new_top = CUR.args; - } - - -/**********************************************/ -/* FLIPRGON[]: FLIP RanGe ON */ -/* CodeRange : $81 */ -/* Stack : uint32 uint32 --> */ -/* (but UShorts are sufficient) */ - - static void Ins_FLIPRGON( INS_ARG ) - { - UShort I, K, L; - - - K = (UShort)args[1]; - L = (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.touch[I] |= TT_Flag_On_Curve; - } - - -/**********************************************/ -/* FLIPRGOFF : FLIP RanGe OFF */ -/* CodeRange : $82 */ -/* Stack : uint32 uint32 --> */ -/* (but UShorts are sufficient) */ - - static void Ins_FLIPRGOFF( INS_ARG ) - { - UShort I, K, L; - - - K = (UShort)args[1]; - L = (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.touch[I] &= ~TT_Flag_On_Curve; - } - - - static Bool Compute_Point_Displacement( EXEC_OPS - PCoordinates x, - PCoordinates y, - PGlyph_Zone zone, - UShort* refp ) - { - TGlyph_Zone zp; - UShort p; - TT_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_Displacement; - return FAILURE; - } - - *zone = zp; - *refp = p; - - d = CUR_Func_project( zp.cur + p, zp.org + p ); - - *x = TT_MulDiv(d, (Long)CUR.GS.freeVector.x * 0x10000L, CUR.F_dot_P ); - *y = TT_MulDiv(d, (Long)CUR.GS.freeVector.y * 0x10000L, CUR.F_dot_P ); - - return SUCCESS; - } - - - static void Move_Zp2_Point( EXEC_OPS - UShort point, - TT_F26Dot6 dx, - TT_F26Dot6 dy, - Bool touch ) - { - if ( CUR.GS.freeVector.x != 0 ) - { - CUR.zp2.cur[point].x += dx; - if ( touch ) - CUR.zp2.touch[point] |= TT_Flag_Touched_X; - } - - if ( CUR.GS.freeVector.y != 0 ) - { - CUR.zp2.cur[point].y += dy; - if ( touch ) - CUR.zp2.touch[point] |= TT_Flag_Touched_Y; - } - } - - -/**********************************************/ -/* SHP[a] : SHift Point by the last point */ -/* CodeRange : $32-33 */ -/* Stack : uint32... --> */ - - static void Ins_SHP( INS_ARG ) - { - TGlyph_Zone zp; - UShort refp; - - TT_F26Dot6 dx, - dy; - UShort point; - - - 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 = (UShort)CUR.stack[CUR.args]; - - if ( BOUNDS( point, CUR.zp2.n_points ) ) - { - if ( CUR.pedantic_hinting ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - } - else - /* 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 */ -/* CodeRange : $34-35 */ -/* Stack : uint32 --> */ - - static void Ins_SHC( INS_ARG ) - { - TGlyph_Zone zp; - UShort refp; - TT_F26Dot6 dx, - dy; - - Short contour; - UShort first_point, last_point, i; - - - contour = (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 = 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 = CUR.zp2.n_points - 1; - else - last_point = 0; - } - - /* UNDOCUMENTED! SHC doesn't 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, FALSE ); - } - } - - -/**********************************************/ -/* SHZ[a] : SHift Zone */ -/* CodeRange : $36-37 */ -/* Stack : uint32 --> */ - - static void Ins_SHZ( INS_ARG ) - { - TGlyph_Zone zp; - UShort refp; - TT_F26Dot6 dx, - dy; - - 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 = CUR.zp2.n_points - 1; - else - last_point = 0; - - /* 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 */ -/* CodeRange : $38 */ -/* Stack : f26.6 uint32... --> */ - - static void Ins_SHPIX( INS_ARG ) - { - TT_F26Dot6 dx, dy; - UShort point; - - - if ( CUR.top < CUR.GS.loop + 1 ) - { - CUR.error = TT_Err_Invalid_Reference; - return; - } - - dx = TT_MulDiv( args[0], - (Long)CUR.GS.freeVector.x, - 0x4000 ); - dy = TT_MulDiv( args[0], - (Long)CUR.GS.freeVector.y, - 0x4000 ); - - while ( CUR.GS.loop > 0 ) - { - CUR.args--; - - point = (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 */ -/* CodeRange : $3A-$3B */ -/* Stack : f26.6 uint32 --> */ - - static void Ins_MSIRP( INS_ARG ) - { - UShort point; - TT_F26Dot6 distance; - - - point = (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.gep0 == 0 ) /* if in twilight zone */ - { - CUR.zp1.org[point] = CUR.zp0.org[CUR.GS.rp0]; - 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 */ -/* CodeRange : $2E-$2F */ -/* Stack : uint32 --> */ - - static void Ins_MDAP( INS_ARG ) - { - UShort point; - TT_F26Dot6 cur_dist, - distance; - - - point = (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.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 */ -/* CodeRange : $3E-$3F */ -/* Stack : uint32 uint32 --> */ - - static void Ins_MIAP( INS_ARG ) - { - ULong cvtEntry; - UShort point; - TT_F26Dot6 distance, - org_dist; - - - cvtEntry = (ULong)args[1]; - point = (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 */ - /* specs :) */ - /* */ - /* 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_MulDiv( CUR.GS.freeVector.x, - distance, 0x4000L ); - CUR.zp0.org[point].y = TT_MulDiv( CUR.GS.freeVector.y, - distance, 0x4000L ); - 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 ( ABS( distance - org_dist ) > CUR.GS.control_value_cutin ) - distance = org_dist; - - distance = CUR_Func_round( distance, CUR.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 */ -/* CodeRange : $C0-$DF */ -/* Stack : uint32 --> */ - - static void Ins_MDRP( INS_ARG ) - { - UShort point; - TT_F26Dot6 org_dist, distance; - - - point = (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 ( ABS( org_dist ) < 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.metrics.compensations[CUR.opcode & 3] ); - else - distance = Round_None( EXEC_ARGS - org_dist, - CUR.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 */ -/* CodeRange : $E0-$FF */ -/* Stack : int32? uint32 --> */ - - static void Ins_MIRP( INS_ARG ) - { - UShort point; - ULong cvtEntry; - - TT_F26Dot6 cvt_dist, - distance, - cur_dist, - org_dist; - - - point = (UShort)args[0]; - cvtEntry = (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 ( ABS( cvt_dist ) < 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_MulDiv( cvt_dist, - CUR.GS.freeVector.x, - 0x4000 ); - - CUR.zp1.org[point].y = CUR.zp0.org[CUR.GS.rp0].y + - TT_MulDiv( cvt_dist, - CUR.GS.freeVector.y, - 0x4000 ); - - 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 ( ABS( cvt_dist - org_dist ) >= CUR.GS.control_value_cutin ) - cvt_dist = org_dist; - - distance = CUR_Func_round( cvt_dist, - CUR.metrics.compensations[CUR.opcode & 3] ); - } - else - distance = Round_None( EXEC_ARGS - cvt_dist, - CUR.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; - - /* UNDOCUMENTED! */ - - CUR.GS.rp2 = point; - } - - -/**********************************************/ -/* ALIGNRP[] : ALIGN Relative Point */ -/* CodeRange : $3C */ -/* Stack : uint32 uint32... --> */ - - static void Ins_ALIGNRP( INS_ARG ) - { - UShort point; - TT_F26Dot6 distance; - - - 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 = (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 */ -/* CodeRange : $0F */ -/* Stack : 5 * uint32 --> */ - - static void Ins_ISECT( INS_ARG ) - { - UShort point, - a0, a1, - b0, b1; - - TT_F26Dot6 discriminant; - - TT_F26Dot6 dx, dy, - dax, day, - dbx, dby; - - TT_F26Dot6 val; - - TT_Vector R; - - - point = (UShort)args[0]; - - a0 = (UShort)args[1]; - a1 = (UShort)args[2]; - b0 = (UShort)args[3]; - b1 = (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.touch[point] |= TT_Flag_Touched_Both; - - discriminant = TT_MulDiv( dax, -dby, 0x40L ) + - TT_MulDiv( day, dbx, 0x40L ); - - if ( ABS( discriminant ) >= 0x40 ) - { - val = TT_MulDiv( dx, -dby, 0x40L ) + TT_MulDiv( dy, dbx, 0x40L ); - - 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 */ -/* CodeRange : $27 */ -/* Stack : uint32 uint32 --> */ - - static void Ins_ALIGNPTS( INS_ARG ) - { - UShort p1, p2; - TT_F26Dot6 distance; - - - p1 = (UShort)args[0]; - p2 = (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 */ -/* CodeRange : $39 */ -/* Stack : uint32... --> */ - - static void Ins_IP( INS_ARG ) - { - TT_F26Dot6 org_a, org_b, org_x, - cur_a, cur_b, cur_x, - distance; - UShort point; - - - 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 = (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 */ -/* CodeRange : $29 */ -/* Stack : uint32 --> */ - - static void Ins_UTP( INS_ARG ) - { - UShort point; - Byte mask; - - - point = (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 &= ~TT_Flag_Touched_X; - - if ( CUR.GS.freeVector.y != 0 ) - mask &= ~TT_Flag_Touched_Y; - - CUR.zp0.touch[point] &= mask; - } - - - /* Local variables for Ins_IUP: */ - struct LOC_Ins_IUP - { - TT_Vector* orgs; /* original and current coordinate */ - TT_Vector* curs; /* arrays */ - }; - - - static void Shift( UShort p1, - UShort p2, - UShort p, - struct LOC_Ins_IUP* LINK ) - { - UShort i; - TT_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( UShort p1, - UShort p2, - UShort ref1, - UShort ref2, - struct LOC_Ins_IUP* LINK ) - { - UShort i; - TT_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 */ -/* CodeRange : $30-$31 */ -/* Stack : --> */ - - static void Ins_IUP( INS_ARG ) - { - struct LOC_Ins_IUP V; - Byte mask; - - UShort first_point; /* first point of contour */ - UShort end_point; /* end point (last+1) of contour */ - - UShort first_touched; /* first touched point in contour */ - UShort cur_touched; /* current touched point in contour */ - - UShort point; /* current point */ - Short contour; /* current contour */ - - - if ( CUR.opcode & 1 ) - { - mask = TT_Flag_Touched_X; - V.orgs = CUR.pts.org; - V.curs = CUR.pts.cur; - } - else - { - mask = TT_Flag_Touched_Y; - V.orgs = (TT_Vector*)( ((TT_F26Dot6*)CUR.pts.org) + 1 ); - V.curs = (TT_Vector*)( ((TT_F26Dot6*)CUR.pts.cur) + 1 ); - } - - contour = 0; - point = 0; - - do - { - end_point = CUR.pts.contours[contour]; - first_point = point; - - while ( point <= end_point && (CUR.pts.touch[point] & mask) == 0 ) - point++; - - if ( point <= end_point ) - { - first_touched = point; - cur_touched = point; - - point++; - - while ( point <= end_point ) - { - if ( (CUR.pts.touch[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( 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 */ -/* CodeRange : $5D,$71,$72 */ -/* Stack : uint32 (2 * uint32)... --> */ - - static void Ins_DELTAP( INS_ARG ) - { - ULong nump, k; - UShort A; - ULong C; - Long B; - - - nump = (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 = (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 = ((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() == (Long)C ) - { - B = ((ULong)B & 0xF) - 8; - if ( B >= 0 ) - B++; - B = B * 64L / (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 */ -/* CodeRange : $73,$74,$75 */ -/* Stack : uint32 (2 * uint32)... --> */ - - static void Ins_DELTAC( INS_ARG ) - { - ULong nump, k; - ULong A, C; - Long B; - - - nump = (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 = (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 = ((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() == (Long)C ) - { - B = ((ULong)B & 0xF) - 8; - if ( B >= 0 ) - B++; - B = B * 64L / (1L << CUR.GS.delta_shift); - - CUR_Func_move_cvt( A, B ); - } - } - } - - CUR.new_top = CUR.args; - } - - - -/****************************************************************/ -/* */ -/* MISC. INSTRUCTIONS */ -/* */ -/****************************************************************/ - - -/**********************************************/ -/* GETINFO[] : GET INFOrmation */ -/* CodeRange : $88 */ -/* 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 ) - { - 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.metrics.rotated ) - K |= 0x80; - - /* Has the glyph been stretched ? */ - if ( CUR.metrics.stretched ) - K |= 0x100; - - args[0] = K; - } - - - static void Ins_UNKNOWN( INS_ARG ) - { - /* look up the current instruction in our table */ - PDefRecord def, limit; - - def = CUR.IDefs; - limit = def + CUR.numIDefs; - for ( ; def < limit; def++ ) - { - if ( def->Opc == CUR.opcode && def->Active ) - { - PCallRecord pCrec; - - /* implement instruction as a function call */ - - /* check 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; - } - } - - 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_$28 */ 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_$7B */ Ins_UNKNOWN, - /* RUTG */ Ins_RUTG, - /* RDTG */ Ins_RDTG, - /* SANGW */ Ins_SANGW, - /* AA */ Ins_AA, - - /* FlipPT */ Ins_FLIPPT, - /* FlipRgON */ Ins_FLIPRGON, - /* FlipRgOFF */ Ins_FLIPRGOFF, - /* INS_$83 */ Ins_UNKNOWN, - /* INS_$84 */ 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_$8F */ Ins_UNKNOWN, - - /* INS_$90 */ Ins_UNKNOWN, - /* INS_$91 */ Ins_UNKNOWN, - /* INS_$92 */ Ins_UNKNOWN, - /* INS_$93 */ Ins_UNKNOWN, - /* INS_$94 */ Ins_UNKNOWN, - /* INS_$95 */ Ins_UNKNOWN, - /* INS_$96 */ Ins_UNKNOWN, - /* INS_$97 */ Ins_UNKNOWN, - /* INS_$98 */ Ins_UNKNOWN, - /* INS_$99 */ Ins_UNKNOWN, - /* INS_$9A */ Ins_UNKNOWN, - /* INS_$9B */ Ins_UNKNOWN, - /* INS_$9C */ Ins_UNKNOWN, - /* INS_$9D */ Ins_UNKNOWN, - /* INS_$9E */ Ins_UNKNOWN, - /* INS_$9F */ Ins_UNKNOWN, - - /* INS_$A0 */ Ins_UNKNOWN, - /* INS_$A1 */ Ins_UNKNOWN, - /* INS_$A2 */ Ins_UNKNOWN, - /* INS_$A3 */ Ins_UNKNOWN, - /* INS_$A4 */ Ins_UNKNOWN, - /* INS_$A5 */ Ins_UNKNOWN, - /* INS_$A6 */ Ins_UNKNOWN, - /* INS_$A7 */ Ins_UNKNOWN, - /* INS_$A8 */ Ins_UNKNOWN, - /* INS_$A9 */ Ins_UNKNOWN, - /* INS_$AA */ Ins_UNKNOWN, - /* INS_$AB */ Ins_UNKNOWN, - /* INS_$AC */ Ins_UNKNOWN, - /* INS_$AD */ Ins_UNKNOWN, - /* INS_$AE */ Ins_UNKNOWN, - /* INS_$AF */ 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 - - -/****************************************************************/ -/* */ -/* 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 a 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 specs' order. */ -/* */ -/****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) -#ifndef DEBUG_INTERPRETER - RunIns( PExecution_Context exc ) -#else - RunIns2( PExecution_Context exc ) -#endif - { - UShort A; - PDefRecord WITH; - PCallRecord WITH1; - - Long ins_counter = 0; /* executed instructions counter */ - -#ifdef TT_CONFIG_OPTION_STATIC_INTERPRETER - cur = *exc; -#endif - - /* set CVT functions */ - CUR.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( EXEC_ARGS (Byte)( CUR.GS.round_state ) ); - - do - { - if ( CALC_Length() != SUCCESS ) - { - CUR.error = TT_Err_Code_Overflow; - goto LErrorLabel_; - } - - /* 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 - { - PStorage args = CUR.stack + CUR.args; - 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 */ - { - Short AA, BB; - - - AA = (Short)(opcode & 1) << 14; - BB = AA ^ (Short)0x4000; - - if ( opcode < 4 ) - { - CUR.GS.projVector.x = AA; - CUR.GS.projVector.y = BB; - - CUR.GS.dualVector.x = AA; - CUR.GS.dualVector.y = BB; - } - - if ( (opcode & 2) == 0 ) - { - CUR.GS.freeVector.x = AA; - CUR.GS.freeVector.y = BB; - } - - 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_ARGS 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_ARGS args ); - break; - - case 0x14: /* SZP1 */ - Ins_SZP1( EXEC_ARGS args ); - break; - - case 0x15: /* SZP2 */ - Ins_SZP2( EXEC_ARGS args ); - break; - - case 0x16: /* SZPS */ - Ins_SZPS( EXEC_ARGS 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_ARGS 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_ARGS args ); - break; - - case 0x27: /* ALIGNPTS */ - Ins_ALIGNPTS( EXEC_ARGS args ); - break; - - case 0x28: /* ???? */ - Ins_UNKNOWN( EXEC_ARGS args ); - break; - - case 0x29: /* UTP */ - Ins_UTP( EXEC_ARGS args ); - break; - - case 0x2A: /* LOOPCALL */ - Ins_LOOPCALL( EXEC_ARGS args ); - break; - - case 0x2B: /* CALL */ - Ins_CALL( EXEC_ARGS args ); - break; - - case 0x2C: /* FDEF */ - Ins_FDEF( EXEC_ARGS args ); - break; - - case 0x2D: /* ENDF */ - Ins_ENDF( EXEC_ARGS args ); - break; - - case 0x2E: /* MDAP */ - case 0x2F: /* MDAP */ - Ins_MDAP( EXEC_ARGS args ); - break; - - - case 0x30: /* IUP */ - case 0x31: /* IUP */ - Ins_IUP( EXEC_ARGS args ); - break; - - case 0x32: /* SHP */ - case 0x33: /* SHP */ - Ins_SHP( EXEC_ARGS args ); - break; - - case 0x34: /* SHC */ - case 0x35: /* SHC */ - Ins_SHC( EXEC_ARGS args ); - break; - - case 0x36: /* SHZ */ - case 0x37: /* SHZ */ - Ins_SHZ( EXEC_ARGS args ); - break; - - case 0x38: /* SHPIX */ - Ins_SHPIX( EXEC_ARGS args ); - break; - - case 0x39: /* IP */ - Ins_IP( EXEC_ARGS args ); - break; - - case 0x3A: /* MSIRP */ - case 0x3B: /* MSIRP */ - Ins_MSIRP( EXEC_ARGS args ); - break; - - case 0x3C: /* AlignRP */ - Ins_ALIGNRP( EXEC_ARGS args ); - break; - - case 0x3D: /* RTDG */ - DO_RTDG - break; - - case 0x3E: /* MIAP */ - case 0x3F: /* MIAP */ - Ins_MIAP( EXEC_ARGS args ); - break; - - case 0x40: /* NPUSHB */ - Ins_NPUSHB( EXEC_ARGS args ); - break; - - case 0x41: /* NPUSHW */ - Ins_NPUSHW( EXEC_ARGS 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_ARGS args ); - break; - - case 0x48: /* SCFS */ - Ins_SCFS( EXEC_ARGS args ); - break; - - case 0x49: /* MD */ - case 0x4A: /* MD */ - Ins_MD( EXEC_ARGS 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_ARGS 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_ARGS 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_ARGS args ); - break; - - case 0x73: /* DELTAC0 */ - case 0x74: /* DELTAC1 */ - case 0x75: /* DELTAC2 */ - Ins_DELTAC( EXEC_ARGS 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_ARGS 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_ARGS args ); - break; - - case 0x81: /* FLIPRGON */ - Ins_FLIPRGON( EXEC_ARGS args ); - break; - - case 0x82: /* FLIPRGOFF */ - Ins_FLIPRGOFF( EXEC_ARGS args ); - break; - - case 0x83: /* UNKNOWN */ - case 0x84: /* UNKNOWN */ - Ins_UNKNOWN( EXEC_ARGS args ); - break; - - case 0x85: /* SCANCTRL */ - Ins_SCANCTRL( EXEC_ARGS args ); - break; - - case 0x86: /* SDPVTL */ - case 0x87: /* SDPVTL */ - Ins_SDPVTL( EXEC_ARGS args ); - break; - - case 0x88: /* GETINFO */ - Ins_GETINFO( EXEC_ARGS args ); - break; - - case 0x89: /* IDEF */ - Ins_IDEF( EXEC_ARGS args ); - break; - - case 0x8A: /* ROLL */ - Ins_ROLL( EXEC_ARGS args ); - break; - - case 0x8B: /* MAX */ - DO_MAX - break; - - case 0x8C: /* MIN */ - DO_MIN - break; - - case 0x8D: /* SCANTYPE */ - Ins_SCANTYPE( EXEC_ARGS args ); - break; - - case 0x8E: /* INSTCTRL */ - Ins_INSTCTRL( EXEC_ARGS args ); - break; - - case 0x8F: - Ins_UNKNOWN( EXEC_ARGS args ); - break; - - default: - if ( opcode >= 0xE0 ) - Ins_MIRP( EXEC_ARGS args ); - else if ( opcode >= 0xC0 ) - Ins_MDRP( EXEC_ARGS args ); - else if ( opcode >= 0xB8 ) - Ins_PUSHW( EXEC_ARGS args ); - else if ( opcode >= 0xB0 ) - Ins_PUSHB( EXEC_ARGS args ); - else - Ins_UNKNOWN( EXEC_ARGS args ); - } - - } -#else - Instruct_Dispatch[CUR.opcode]( EXEC_ARGS &CUR.stack[CUR.args] ); -#endif - if ( CUR.error != TT_Err_Ok ) - { - switch ( (Int)(CUR.error) ) - { - case TT_Err_Invalid_Opcode: /* looking for redefined instructions */ - A = 0; - - while ( A < CUR.numIDefs ) - { - WITH = &CUR.IDefs[A]; - - if ( WITH->Active && CUR.opcode == WITH->Opc ) - { - if ( CUR.callTop >= CUR.callSize ) - { - CUR.error = TT_Err_Invalid_Reference; - goto LErrorLabel_; - } - - WITH1 = &CUR.callStack[CUR.callTop]; - - WITH1->Caller_Range = CUR.curRange; - WITH1->Caller_IP = CUR.IP + 1; - WITH1->Cur_Count = 1; - WITH1->Cur_Restart = WITH->Start; - - if ( INS_Goto_CodeRange( WITH->Range, WITH->Start ) == FAILURE ) - goto LErrorLabel_; - - goto LSuiteLabel_; - } - else - { - A++; - continue; - } - } - - CUR.error = TT_Err_Invalid_Opcode; - goto LErrorLabel_; -/* break; Unreachable code warning suppress. Leave in case a later - change to remind the editor to consider break; */ - - default: - goto LErrorLabel_; -/* break; */ - } - } - - 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 ) - { - CUR.error = TT_Err_Execution_Too_Long; - goto LErrorLabel_; - } - - 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_: - CUR.error = TT_Err_Ok; - - LErrorLabel_: - -#ifdef TT_CONFIG_OPTION_STATIC_INTERPRETER - *exc = cur; -#endif - - return CUR.error; - - - } - - - -#ifdef DEBUG_INTERPRETER - - /* This function must be declared by the debugger front end */ - /* in order to specify which code range to debug. */ - - int debug_coderange = TT_CodeRange_Glyph; - - FT_INTERNAL_FUNC( TT_Error ) - RunIns( PExecution_Context exc ) - { - Int A, diff; - ULong next_IP; - Char ch, oldch; - char *temp; - int key; - - TT_Error error = 0; - - TGlyph_Zone save; - TGlyph_Zone pts; - -#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 - - const String* round_str[8] = - { - "to half-grid", - "to grid", - "to double grid", - "down to grid", - "up to grid", - "off", - "super", - "super 45" - }; - - /* Check that we're running the code range that is effectively */ - /* asked by the debugger front end. */ - if ( CUR.curRange != debug_coderange ) - return RunIns2( &CUR ); - - pts = CUR.pts; - - save.n_points = pts.n_points; - save.n_contours = pts.n_contours; - - MEM_Alloc( save.org, sizeof ( TT_Vector ) * save.n_points ); - MEM_Alloc( save.cur, sizeof ( TT_Vector ) * save.n_points ); - MEM_Alloc( save.touch, sizeof ( Byte ) * save.n_points ); - - CUR.instruction_trap = 1; - - oldch = '\0'; - - do - { - if ( CUR.IP < CUR.codeSize ) - { -#ifdef TT_CONFIG_OPTION_STATIC_INTERPRETER - cur = *exc; -#endif - CALC_Length(); - - 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. */ - - /* Print the current line. We use a 80-columns console with the */ - /* following formatting: */ - /* */ - /* [loc]:[addr] [opcode] [disassemby] [a][b]|[c][d] */ - /* */ - - { - char temp[80]; - int n, col, pop; - int args = CUR.args; - - - sprintf( temp, "%78c\n", ' ' ); - - /* first letter of location */ - switch ( CUR.curRange ) - { - case TT_CodeRange_Glyph: - temp[0] = 'g'; - break; - case TT_CodeRange_Cvt: - temp[0] = 'c'; - break; - default: - temp[0] = 'f'; - } - - /* current IP */ - sprintf( temp+1, "%04lx: %02x %-36.36s", - CUR.IP, - CUR.opcode, - Cur_U_Line(&CUR) ); - - strncpy( temp+46, " (", 2 ); - - args = CUR.top - 1; - pop = Pop_Push_Count[CUR.opcode] >> 4; - col = 48; - for ( n = 6; n > 0; n-- ) - { - if ( pop == 0 ) - temp[col-1] = (temp[col-1] == '(' ? ' ' : ')' ); - - if ( args < CUR.top && args >= 0 ) - sprintf( temp+col, "%04lx", CUR.stack[args] ); - else - sprintf( temp+col, " " ); - - temp[col+4] = ' '; - col += 5; - pop--; - args--; - } - temp[78] = '\n'; - temp[79] = '\0'; - PTRACE0(( temp )); - } - - /* First, check for empty stack and overflow */ - if ( CUR.args < 0 ) - { - PTRACE0(( "ERROR : Too few arguments\n" )); - 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 'case' */ - - if ( CUR.new_top > CUR.stackSize ) - { - PTRACE0(( "ERROR : Stack overflow\n" )); - CUR.error = TT_Err_Stack_Overflow; - goto LErrorLabel_; - } - -#ifdef TT_CONFIG_OPTION_STATIC_INTERPRETER - *exc = cur; -#endif - } - else - PTRACE0(( "End of program reached.\n" )); - - key = 0; - do - { - /* read keyboard */ - - ch = getch(); - - switch ( ch ) - { - /* Help - show keybindings */ - case '?': - PTRACE0(( "FDebug Help\n\n" )); - PTRACE0(( "? Show this page\n" )); - PTRACE0(( "q Quit debugger\n" )); - PTRACE0(( "n Skip to next instruction\n" )); - PTRACE0(( "s Step into\n" )); - PTRACE0(( "v Show vector info\n" )); - PTRACE0(( "g Show graphics state\n" )); - PTRACE0(( "p Show points zone\n\n" )); - break; - - /* Show vectors */ - case 'v': - PTRACE0(( "freedom (%04hx,%04hx)\n", CUR.GS.freeVector.x, - CUR.GS.freeVector.y )); - PTRACE0(( "projection (%04hx,%04hx)\n", CUR.GS.projVector.x, - CUR.GS.projVector.y )); - PTRACE0(( "dual (%04hx,%04hx)\n\n", CUR.GS.dualVector.x, - CUR.GS.dualVector.y )); - break; - - /* Show graphics state */ - case 'g': - PTRACE0(( "rounding %s\n", round_str[CUR.GS.round_state] )); - PTRACE0(( "min dist %04lx\n", CUR.GS.minimum_distance )); - PTRACE0(( "cvt_cutin %04lx\n", CUR.GS.control_value_cutin )); - break; - - /* Show points table */ - case 'p': - for ( A = 0; A < CUR.pts.n_points; A++ ) - { - PTRACE0(( "%02hx ", A )); - PTRACE0(( "%08lx,%08lx - ", pts.org[A].x, pts.org[A].y )); - PTRACE0(( "%08lx,%08lx\n", pts.cur[A].x, pts.cur[A].y )); - } - PTRACE0(( "\n" )); - break; - - default: - key = 1; - } - } while ( !key ); - - MEM_Copy( save.org, pts.org, pts.n_points * sizeof ( TT_Vector ) ); - MEM_Copy( save.cur, pts.cur, pts.n_points * sizeof ( TT_Vector ) ); - MEM_Copy( save.touch, pts.touch, pts.n_points ); - - /* a return indicate the last command */ - if (ch == '\r') - ch = oldch; - - switch ( ch ) - { - /* Quit debugger */ - case 'q': - goto LErrorLabel_; - - /* Step over */ - case 'n': - if ( CUR.IP < CUR.codeSize ) - { - /* `step over' is equivalent to `step into' except if */ - /* the current opcode is a CALL or LOOPCALL */ - if ( CUR.opcode != 0x2a && CUR.opcode != 0x2b ) - goto Step_into; - - /* otherwise, loop execution until we reach the next opcode */ - next_IP = CUR.IP + CUR.length; - while ( CUR.IP != next_IP ) - { - if ( ( error = RunIns2( &CUR ) ) != 0 ) - goto LErrorLabel_; - } - } - oldch = ch; - break; - - /* Step into */ - case 's': - if ( CUR.IP < CUR.codeSize ) - - Step_into: - if ( ( error = RunIns2( &CUR ) ) != 0 ) - goto LErrorLabel_; - oldch = ch; - break; - - default: - PTRACE0(( "unknown command. Press ? for help\n" )); - oldch = '\0'; - } - - for ( A = 0; A < pts.n_points; A++ ) - { - diff = 0; - if ( save.org[A].x != pts.org[A].x ) diff |= 1; - if ( save.org[A].y != pts.org[A].y ) diff |= 2; - if ( save.cur[A].x != pts.cur[A].x ) diff |= 4; - if ( save.cur[A].y != pts.cur[A].y ) diff |= 8; - if ( save.touch[A] != pts.touch[A] ) diff |= 16; - - if ( diff ) - { - PTRACE0(( "%02hx ", A )); - - if ( diff & 16 ) temp = "(%01hx)"; else temp = " %01hx "; - PTRACE0(( temp, save.touch[A] & 7 )); - - if ( diff & 1 ) temp = "(%08lx)"; else temp = " %08lx "; - PTRACE0(( temp, save.org[A].x )); - - if ( diff & 2 ) temp = "(%08lx)"; else temp = " %08lx "; - PTRACE0(( temp, save.org[A].y )); - - if ( diff & 4 ) temp = "(%08lx)"; else temp = " %08lx "; - PTRACE0(( temp, save.cur[A].x )); - - if ( diff & 8 ) temp = "(%08lx)"; else temp = " %08lx "; - PTRACE0(( temp, save.cur[A].y )); - - PTRACE0(( "\n" )); - - PTRACE0(( "%02hx ", A )); - - if ( diff & 16 ) temp = "[%01hx]"; else temp = " %01hx "; - PTRACE0(( temp, pts.touch[A] & 7 )); - - if ( diff & 1 ) temp = "[%08lx]"; else temp = " %08lx "; - PTRACE0(( temp, pts.org[A].x )); - - if ( diff & 2 ) temp = "[%08lx]"; else temp = " %08lx "; - PTRACE0(( temp, pts.org[A].y )); - - if ( diff & 4 ) temp = "[%08lx]"; else temp = " %08lx "; - PTRACE0(( temp, pts.cur[A].x )); - - if ( diff & 8 ) temp = "[%08lx]"; else temp = " %08lx "; - PTRACE0(( temp, pts.cur[A].y )); - - PTRACE0(( "\n\n" )); - } - } - } while ( TRUE ); - - LErrorLabel_: - - return error; - } - -#endif /* DEBUG_INTERPRETER */ - - -#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttinterp.h b/Build/source/libs/freetype/lib/ttinterp.h deleted file mode 100644 index 2c92a0ae59d..00000000000 --- a/Build/source/libs/freetype/lib/ttinterp.h +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************* - * - * ttinterp.h 2.2 - * - * TrueType bytecode intepreter. - * - * 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. - * - * - * Changes between 2.2 and 2.1: - * - * - a small bugfix in the Push opcodes - * - * Changes between 2.1 and 2.0: - * - * - created the TTExec component to take care of all execution - * context management. The interpreter has now one single - * function. - * - * - made some changes to support re-entrancy. The re-entrant - * interpreter is smaller! - * - ******************************************************************/ - -#ifndef TTINTERP_H -#define TTINTERP_H - -#include "ttconfig.h" -#include "ttobjs.h" - - -#ifdef __cplusplus - extern "C" { -#endif - - /* Run instructions in current execution context */ - - FT_INTERNAL_DEF( TT_Error ) - RunIns( PExecution_Context exc ); - -#ifdef __cplusplus - } -#endif - -#endif /* TTINTERP_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttload.c b/Build/source/libs/freetype/lib/ttload.c deleted file mode 100644 index 0cf2894aa71..00000000000 --- a/Build/source/libs/freetype/lib/ttload.c +++ /dev/null @@ -1,1598 +0,0 @@ - -/******************************************************************* - * - * ttload.c 1.0 - * - * TrueType Tables Loader. - * - * 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 "tttypes.h" -#include "ttdebug.h" -#include "ttcalc.h" -#include "ttfile.h" - -#include "tttables.h" -#include "ttobjs.h" - -#include "ttmemory.h" -#include "tttags.h" -#include "ttload.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_load - -/* In all functions, the stream is taken from the 'face' object */ -#define DEFINE_LOCALS DEFINE_LOAD_LOCALS( face->stream ) -#define DEFINE_LOCALS_WO_FRAME DEFINE_LOAD_LOCALS_WO_FRAME( face->stream ) - - -/******************************************************************* - * - * Function : LookUp_TrueType_Table - * - * Description : Looks for a TrueType table by name. - * - * Input : face face table to look for - * tag searched tag - * - * Output : Index of table if found, -1 otherwise. - * - ******************************************************************/ - - FT_EXPORT_FUNC( Long ) - TT_LookUp_Table( PFace face, - ULong tag ) - { - UShort i; - - - PTRACE4(( "TT_LookUp_Table( %08lx, %c%c%c%c )\n", - (Long)face, - (Char)(tag >> 24), - (Char)(tag >> 16), - (Char)(tag >> 8), - (Char)(tag) )); - - for ( i = 0; i < face->numTables; i++ ) - if ( face->dirTables[i].Tag == tag ) - return i; - - PTRACE4(( " Could not find table!\n" )); - return -1; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Collection - * - * Description : Loads the TTC table directory into face table. - * - * Input : face face record to look for - * - * Output : Error code. - * - ******************************************************************/ - - static TT_Error Load_TrueType_Collection( PFace face ) - { - DEFINE_LOCALS; - - ULong n; - - - PTRACE3(( "Load_TrueType_Collection( %08lx )\n", (long)face )); - - if ( FILE_Seek ( 0L ) || - ACCESS_Frame( 12L ) ) - return error; - - face->ttcHeader.Tag = GET_Tag4(); - face->ttcHeader.version = GET_Long(); - face->ttcHeader.DirCount = GET_Long(); - - FORGET_Frame(); - - if ( face->ttcHeader.Tag != TTAG_ttcf ) - { - face->ttcHeader.Tag = 0; - face->ttcHeader.version = 0; - face->ttcHeader.DirCount = 0; - - face->ttcHeader.TableDirectory = NULL; - - PTRACE3(("skipped.\n")); - - return TT_Err_File_Is_Not_Collection; - } - - if ( ALLOC_ARRAY( face->ttcHeader.TableDirectory, - face->ttcHeader.DirCount, - ULong ) || - ACCESS_Frame( face->ttcHeader.DirCount * 4L ) ) - return error; - - for ( n = 0; n < face->ttcHeader.DirCount; n++ ) - face->ttcHeader.TableDirectory[n] = GET_ULong(); - - FORGET_Frame(); - - PTRACE3(( "collections directory loaded.\n" )); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Directory - * - * Description : Loads the table directory into face table. - * - * Input : face face record to look for - * - * faceIndex the index of the TrueType font, when - * we're opening a collection. - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Directory( PFace face, - ULong faceIndex ) - { - DEFINE_LOCALS; - - UShort n, limit; - TTableDir tableDir; - - PTableDirEntry entry; - - - PTRACE2(("Load_TT_Directory( %08lx, %ld )\n", (long)face, faceIndex)); - - error = Load_TrueType_Collection( face ); - - if ( error ) - { - if ( error != TT_Err_File_Is_Not_Collection ) - return error; - - /* the file isn't a collection, exit if we're asking */ - /* for a collected font */ - if ( faceIndex != 0 ) - return error; - - /* Now skip to the beginning of the file */ - if ( FILE_Seek( 0L ) ) - return error; - } - else - { - /* The file is a collection. Check the font index */ - if ( faceIndex >= face->ttcHeader.DirCount ) - return TT_Err_Invalid_Argument; - - /* select a TrueType font in the ttc file */ - if ( FILE_Seek( face->ttcHeader.TableDirectory[faceIndex] ) ) - return error; - } - - if ( ACCESS_Frame( 12L ) ) - return error; - - tableDir.version = GET_Long(); - tableDir.numTables = GET_UShort(); - - tableDir.searchRange = GET_UShort(); - tableDir.entrySelector = GET_UShort(); - tableDir.rangeShift = GET_UShort(); - - FORGET_Frame(); - - PTRACE2(( "-- Tables count : %12u\n", tableDir.numTables )); - PTRACE2(( "-- Format version : %08lx\n", tableDir.version )); - - /* Check that we have a 'sfnt' format there */ - - if ( tableDir.version != 0x00010000 && /* MS fonts */ - tableDir.version != 0x74727565 && /* Mac fonts */ - tableDir.version != 0x00000000 ) /* some Korean fonts */ - { - PERROR(( "!! invalid file format" )); - return TT_Err_Invalid_File_Format; - } - - face->numTables = tableDir.numTables; - - if ( ALLOC_ARRAY( face->dirTables, - face->numTables, - TTableDirEntry ) ) - return error; - - if ( ACCESS_Frame( face->numTables * 16L ) ) - return error; - - limit = face->numTables; - entry = face->dirTables; - - for ( n = 0; n < limit; n++ ) - { /* loop through the tables and get all entries */ - entry->Tag = GET_Tag4(); - entry->CheckSum = GET_ULong(); - entry->Offset = GET_Long(); - entry->Length = GET_Long(); - - PTRACE2(( " %c%c%c%c - %08lx - %08lx\n", - (Char)(entry->Tag >> 24), - (Char)(entry->Tag >> 16), - (Char)(entry->Tag >> 8 ), - (Char)(entry->Tag), - entry->Offset, - entry->Length )); - entry++; - } - - FORGET_Frame(); - - PTRACE2(( "Directory loaded\n\n" )); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_MaxProfile - * - * Description : Loads the maxp table into face table. - * - * Input : face face table to look for - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_MaxProfile( PFace face ) - { - DEFINE_LOCALS; - - Long i; - PMaxProfile maxProfile = &face->maxProfile; - - - PTRACE2(( "Load_TT_MaxProfile( %08lx )\n", (long)face )); - - if ( ( i = TT_LookUp_Table( face, TTAG_maxp ) ) < 0 ) - return TT_Err_Max_Profile_Missing; - - if ( FILE_Seek( face->dirTables[i].Offset ) ) /* seek to maxprofile */ - return error; - - if ( ACCESS_Frame( 32L ) ) /* read into frame */ - return error; - - /* read frame data into face table */ - maxProfile->version = GET_ULong(); - - maxProfile->numGlyphs = GET_UShort(); - - maxProfile->maxPoints = GET_UShort(); - maxProfile->maxContours = GET_UShort(); - maxProfile->maxCompositePoints = GET_UShort(); - maxProfile->maxCompositeContours = GET_UShort(); - - maxProfile->maxZones = GET_UShort(); - maxProfile->maxTwilightPoints = GET_UShort(); - - maxProfile->maxStorage = GET_UShort(); - maxProfile->maxFunctionDefs = GET_UShort(); - maxProfile->maxInstructionDefs = GET_UShort(); - maxProfile->maxStackElements = GET_UShort(); - maxProfile->maxSizeOfInstructions = GET_UShort(); - maxProfile->maxComponentElements = GET_UShort(); - maxProfile->maxComponentDepth = GET_UShort(); - - FORGET_Frame(); - - /* XXX : an adjustement 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->numGlyphs = maxProfile->numGlyphs; - - face->maxPoints = MAX( maxProfile->maxCompositePoints, - maxProfile->maxPoints ); - face->maxContours = MAX( maxProfile->maxCompositeContours, - maxProfile->maxContours ); - face->maxComponents = maxProfile->maxComponentElements + - maxProfile->maxComponentDepth; - - /* XXX: Some fonts have maxComponents set to 0; we will */ - /* then use 16 of them by default. */ - if ( face->maxComponents == 0 ) - face->maxComponents = 16; - - /* We also increase maxPoints and maxContours in order to support */ - /* some broken fonts. */ - face->maxPoints += 8; - face->maxContours += 4; - - PTRACE2(( "GASP loaded.\n" )); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Gasp - * - * Description : Loads the TrueType Gasp table into the face - * table. - * - * Input : face face table to look for - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Gasp( PFace face ) - { - DEFINE_LOCALS; - - Long i; - UShort j; - TGasp* gas; - GaspRange* gaspranges; - - - PTRACE2(( "Load_TT_Gasp( %08lx )\n", (long)face )); - - if ( ( i = TT_LookUp_Table( face, TTAG_gasp ) ) < 0 ) - return TT_Err_Ok; /* gasp table is not required */ - - if ( FILE_Seek( face->dirTables[i].Offset ) || - ACCESS_Frame( 4L ) ) - return error; - - gas = &face->gasp; - - gas->version = GET_UShort(); - gas->numRanges = GET_UShort(); - - FORGET_Frame(); - - PTRACE3(( "number of ranges = %d\n", gas->numRanges )); - - if ( ALLOC_ARRAY( gaspranges, gas->numRanges, GaspRange ) || - ACCESS_Frame( gas->numRanges * 4L ) ) - goto Fail; - - face->gasp.gaspRanges = gaspranges; - - for ( j = 0; j < gas->numRanges; j++ ) - { - gaspranges[j].maxPPEM = GET_UShort(); - gaspranges[j].gaspFlag = GET_UShort(); - - PTRACE3(( " [max:%d flag:%d]", - gaspranges[j].maxPPEM, - gaspranges[j].gaspFlag )); - } - PTRACE3(("\n")); - - FORGET_Frame(); - - PTRACE2(( "GASP loaded\n" )); - return TT_Err_Ok; - - Fail: - FREE( gaspranges ); - gas->numRanges = 0; - return error; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Header - * - * Description : Loads the TrueType header table into the face - * table. - * - * Input : face face table to look for - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Header( PFace face ) - { - DEFINE_LOCALS; - - Long i; - TT_Header* header; - - - PTRACE2(( "Load_TT_Header( %08lx )\n", (long)face )); - - if ( ( i = TT_LookUp_Table( face, TTAG_head ) ) < 0 ) - { - PTRACE0(( "Font Header is missing !!\n" )); - return TT_Err_Header_Table_Missing; - } - - if ( FILE_Seek( face->dirTables[i].Offset ) || - ACCESS_Frame( 54L ) ) - return error; - - header = &face->fontHeader; - - header->Table_Version = GET_ULong(); - header->Font_Revision = GET_ULong(); - - header->CheckSum_Adjust = GET_Long(); - header->Magic_Number = GET_Long(); - - header->Flags = GET_UShort(); - header->Units_Per_EM = GET_UShort(); - - header->Created [0] = GET_Long(); - header->Created [1] = GET_Long(); - header->Modified[0] = GET_Long(); - header->Modified[1] = GET_Long(); - - header->xMin = GET_Short(); - header->yMin = GET_Short(); - header->xMax = GET_Short(); - header->yMax = GET_Short(); - - header->Mac_Style = GET_UShort(); - header->Lowest_Rec_PPEM = GET_UShort(); - - header->Font_Direction = GET_Short(); - header->Index_To_Loc_Format = GET_Short(); - header->Glyph_Data_Format = GET_Short(); - - FORGET_Frame(); - - PTRACE2(( " Units per EM : %8u\n", header->Units_Per_EM )); - PTRACE2(( " IndexToLoc : %8d\n", header->Index_To_Loc_Format )); - PTRACE2(( "Font Header Loaded.\n" )); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Metrics - * - * Description : Loads the horizontal or vertical metrics table - * into face object. - * - * Input : face - * vertical set to true when loading the vmtx table, - * or false for hmtx - * - * Output : Error code. - * - ******************************************************************/ - - static - TT_Error Load_TrueType_Metrics( PFace face, - Bool vertical ) - { - DEFINE_LOCALS; - - Long n, num_shorts, num_shorts_checked, num_longs; - - PLongMetrics* longs; - PShortMetrics* shorts; - - PLongMetrics long_metric; - - - PTRACE2(( "Load_TT_%s_Metrics( %08lx )\n", - vertical ? "Vertical" : "Horizontal", - (long)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 ! */ - /* */ - n = TT_LookUp_Table( face, TTAG_vmtx ); - if ( n < 0 ) - { - /* Set the number_Of_VMetrics to 0! */ - PTRACE2(( " no vertical header in file.\n" )); - face->verticalHeader.number_Of_VMetrics = 0; - return TT_Err_Ok; - } - - num_longs = face->verticalHeader.number_Of_VMetrics; - longs = (PLongMetrics*)&face->verticalHeader.long_metrics; - shorts = (PShortMetrics*)&face->verticalHeader.short_metrics; - } - else - { - if ( ( n = TT_LookUp_Table( face, TTAG_hmtx ) ) < 0 ) - { - PERROR(( "!! No Horizontal metrics in file !!\n" )); - return TT_Err_Hmtx_Table_Missing; - } - - num_longs = face->horizontalHeader.number_Of_HMetrics; - longs = (PLongMetrics*)&face->horizontalHeader.long_metrics; - shorts = (PShortMetrics*)&face->horizontalHeader.short_metrics; - } - - /* never trust derived values! */ - - num_shorts = face->maxProfile.numGlyphs - num_longs; - num_shorts_checked = ( face->dirTables[n].Length - num_longs * 4 ) / 2; - - if ( num_shorts < 0 ) /* sanity check */ - { - PERROR(( "!! more metrics than glyphs!\n" )); - if ( vertical ) - return TT_Err_Invalid_Vert_Metrics; - else - return TT_Err_Invalid_Horiz_Metrics; - } - - if ( ALLOC_ARRAY( *longs, num_longs, TLongMetrics ) || - ALLOC_ARRAY( *shorts, num_shorts, TShortMetrics ) ) - return error; - - if ( FILE_Seek( face->dirTables[n].Offset ) || - ACCESS_Frame( face->dirTables[n].Length ) ) - return error; - - long_metric = *longs; - for ( n = 0; n < num_longs; n++ ) - { - long_metric->advance = GET_UShort(); - long_metric->bearing = GET_Short(); - long_metric++; - } - - /* do we have an inconsistent number of metric values? */ - - if ( num_shorts > num_shorts_checked ) - { - for ( n = 0; n < num_shorts_checked; n++ ) - (*shorts)[n] = GET_Short(); - - /* we fill up the missing left side bearings with the */ - /* last valid value. Since this will occur for buggy CJK */ - /* fonts usually, nothing serious will happen. */ - - for ( n = num_shorts_checked; n < num_shorts; n++ ) - (*shorts)[n] = (*shorts)[num_shorts_checked - 1]; - } - else - { - for ( n = 0; n < num_shorts; n++ ) - (*shorts)[n] = GET_Short(); - } - - FORGET_Frame(); - - PTRACE2(( "loaded\n" )); - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Metrics_Header - * - * Description : Loads either the "hhea" or "vhea" table in memory - * - * Input : face face table to look for - * vertical a boolean. When set, queries the optional - * "vhea" table. Otherwise, load the mandatory - * "hhea" horizontal header. - * - * Output : Error code. - * - * Note : This function now loads the corresponding metrics table - * (either hmtx or vmtx) and attaches it to the header. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Metrics_Header( PFace face, - Bool vertical ) - { - DEFINE_LOCALS; - - Long i; - - TT_Horizontal_Header* header; - - - PTRACE2(( vertical ? "Vertical header" : "Horizontal header " )); - - if ( vertical ) - { - face->verticalInfo = 0; - - /* The vertical header table is optional, so return quietly if */ - /* we don't find it.. */ - if ( ( i = TT_LookUp_Table( face, TTAG_vhea ) ) < 0 ) - return TT_Err_Ok; - - face->verticalInfo = 1; - header = (TT_Horizontal_Header*)&face->verticalHeader; - } - else - { - /* The orizontal header is mandatory, return an error if we */ - /* don't find it. */ - if ( ( i = TT_LookUp_Table( face, TTAG_hhea ) ) < 0 ) - return TT_Err_Horiz_Header_Missing; - - header = &face->horizontalHeader; - } - - if ( FILE_Seek( face->dirTables[i].Offset ) || - ACCESS_Frame( 36L ) ) - return error; - - header->Version = GET_ULong(); - header->Ascender = GET_Short(); - header->Descender = GET_Short(); - header->Line_Gap = GET_Short(); - - header->advance_Width_Max = GET_UShort(); - - header->min_Left_Side_Bearing = GET_Short(); - header->min_Right_Side_Bearing = GET_Short(); - header->xMax_Extent = GET_Short(); - header->caret_Slope_Rise = GET_Short(); - header->caret_Slope_Run = GET_Short(); - - header->Reserved0 = GET_Short(); /* this is caret_Offset for - vertical headers */ - header->Reserved1 = GET_Short(); - header->Reserved2 = GET_Short(); - header->Reserved3 = GET_Short(); - header->Reserved4 = GET_Short(); - - header->metric_Data_Format = GET_Short(); - header->number_Of_HMetrics = GET_UShort(); - - FORGET_Frame(); - - header->long_metrics = NULL; - header->short_metrics = NULL; - - PTRACE2(( "loaded\n" )); - - /* Now try to load the corresponding metrics */ - - return Load_TrueType_Metrics( face, vertical ); - } - - -/******************************************************************* - * - * Function : Load_TrueType_Locations - * - * Description : Loads the location table into face table. - * - * Input : face face table to look for - * - * Output : Error code. - * - * NOTE: - * The Font Header *must* be loaded in the leading segment - * calling this function. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Locations( PFace face ) - { - DEFINE_LOCALS; - - Long n, limit; - Short LongOffsets; - - - PTRACE2(( "Locations " )); - - LongOffsets = face->fontHeader.Index_To_Loc_Format; - - if ( ( n = TT_LookUp_Table( face, TTAG_loca ) ) < 0 ) - return TT_Err_Locations_Missing; - - if ( FILE_Seek( face->dirTables[n].Offset ) ) - return error; - - if ( LongOffsets != 0 ) - { - face->numLocations = face->dirTables[n].Length >> 2; - - PTRACE2(( "(32 bit offsets): %12lu ", - face->numLocations )); - - if ( ALLOC_ARRAY( face->glyphLocations, - face->numLocations, - Long ) ) - return error; - - if ( ACCESS_Frame( face->numLocations * 4L ) ) - return error; - - limit = face->numLocations; - - for ( n = 0; n < limit; n++ ) - face->glyphLocations[n] = GET_Long(); - - FORGET_Frame(); - } - else - { - face->numLocations = face->dirTables[n].Length >> 1; - - PTRACE2(( "(16 bit offsets): %12lu ", - face->numLocations )); - - if ( ALLOC_ARRAY( face->glyphLocations, - face->numLocations, - Long ) ) - return error; - - if ( ACCESS_Frame( face->numLocations * 2L ) ) - return error; - - limit = face->numLocations; - - for ( n = 0; n < limit; n++ ) - face->glyphLocations[n] = - (Long)((ULong)GET_UShort() * 2); - - FORGET_Frame(); - } - - PTRACE2(( "loaded\n" )); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Names - * - * Description : Loads the name table into face table. - * - * Input : face face table to look for - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Names( PFace face ) - { - DEFINE_LOCALS; - - UShort i, bytes; - Long n; - PByte storage; - - TName_Table* names; - TNameRec* namerec; - - - PTRACE2(( "Names " )); - - if ( ( n = TT_LookUp_Table( face, TTAG_name ) ) < 0 ) - { - /* The name table is required so indicate failure. */ - PTRACE2(( "is missing!\n" )); - - return TT_Err_Name_Table_Missing; - } - - /* Seek to the beginning of the table and check the frame access. */ - /* The names table has a 6 byte header. */ - if ( FILE_Seek( face->dirTables[n].Offset ) || - ACCESS_Frame( 6L ) ) - return error; - - names = &face->nameTable; - - /* Load the initial names data. */ - names->format = GET_UShort(); - names->numNameRecords = GET_UShort(); - names->storageOffset = GET_UShort(); - - FORGET_Frame(); - - /* Allocate the array of name records. */ - if ( ALLOC_ARRAY( names->names, - names->numNameRecords, - TNameRec ) || - ACCESS_Frame( names->numNameRecords * 12L ) ) - { - names->numNameRecords = 0; - goto Fail; - } - - /* Load the name records and determine how much storage is needed */ - /* to hold the strings themselves. */ - - for ( i = bytes = 0; i < names->numNameRecords; i++ ) - { - namerec = names->names + i; - namerec->platformID = GET_UShort(); - namerec->encodingID = GET_UShort(); - namerec->languageID = GET_UShort(); - namerec->nameID = GET_UShort(); - namerec->stringLength = GET_UShort(); - namerec->stringOffset = GET_UShort(); - -#if 0 - /* check the ids */ - if ( namerec->platformID <= 3 ) - { -#endif - /* this test takes care of 'holes' in the names tables, as */ - /* reported by Erwin */ - if ( (namerec->stringOffset + namerec->stringLength) > bytes ) - bytes = namerec->stringOffset + namerec->stringLength; -#if 0 - } -#endif - } - - FORGET_Frame(); - - /* Allocate storage for the strings if they exist. */ - - names->storage = NULL; - - if ( bytes > 0 ) - { - if ( ALLOC( storage, bytes ) || - FILE_Read_At( face->dirTables[n].Offset + names->storageOffset, - (void*)storage, - bytes ) ) - goto Fail_Storage; - - names->storage = storage; - - /* Go through and assign the string pointers to the name records. */ - - for ( i = 0; i < names->numNameRecords; i++ ) - { - namerec = names->names + i; - namerec->string = storage + names->names[i].stringOffset; - -/* It is possible (but rather unlikely) that a new platform ID will be */ -/* added by Apple, so we can't rule out IDs > 3. */ - -#if 0 - if ( namerec->platformID <= 3 ) - namerec->string = storage + names->names[i].stringOffset; - else - { - namerec->string = NULL; - namerec->stringLength = 0; - } -#endif - } - } - -#ifdef DEBUG_LEVEL_TRACE - - for ( i = 0; i < names->numNameRecords; i++ ) - { - int j; - - - PTRACE2(( "%d %d %x %d ", - names->names[i].platformID, - names->names[i].encodingID, - names->names[i].languageID, - names->names[i].nameID )); - - /* I know that M$ encoded strings are Unicode, */ - /* but this works reasonable well for debugging purposes. */ - for ( j = 0; j < names->names[i].stringLength; j++ ) - { - if (names->names[i].string) - { - Char c = *(names->names[i].string + j); - - - if ( (Byte)c < 128 ) - PTRACE2(( "%c", c )); - } - } - - PTRACE2(( "\n" )); - } - -#endif /* DEBUG_LEVEL_TRACE */ - - PTRACE2(( "loaded\n" )); - return TT_Err_Ok; - - Fail_Storage: - FREE( storage ); - - Fail: - Free_TrueType_Names( face ); - return error; - } - - -/******************************************************************* - * - * Function : Free_TrueType_Names - * - * Description : Frees a name table. - * - * Input : face face table to look for - * - * Output : TT_Err_Ok. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Free_TrueType_Names( PFace face ) - { - TName_Table* names = &face->nameTable; - - - /* free strings table */ - FREE( names->names ); - - /* free strings storage */ - FREE( names->storage ); - - names->numNameRecords = 0; - names->format = 0; - names->storageOffset = 0; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_CVT - * - * Description : Loads cvt table into resident table. - * - * Input : face face table to look for - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_CVT( PFace face ) - { - DEFINE_LOCALS; - - Long n, limit; - - - PTRACE2(( "CVT " )); - - if ( ( n = TT_LookUp_Table( face, TTAG_cvt ) ) < 0 ) - { - PTRACE2(( "is missing!\n" )); - - face->cvtSize = 0; - face->cvt = NULL; - return TT_Err_Ok; - } - - face->cvtSize = face->dirTables[n].Length / 2; - - if ( ALLOC_ARRAY( face->cvt, - face->cvtSize, - Short ) ) - return error; - - if ( FILE_Seek( face->dirTables[n].Offset ) || - ACCESS_Frame( face->cvtSize * 2L ) ) - return error; - - limit = face->cvtSize; - - for ( n = 0; n < limit; n++ ) - face->cvt[n] = GET_Short(); - - FORGET_Frame(); - - PTRACE2(( "loaded\n" )); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_CMap - * - * Description : Loads the cmap directory in memory. - * The cmaps themselves are loaded in ttcmap.c . - * - * Input : face - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_CMap( PFace face ) - { - DEFINE_LOCALS; - - Long off, table_start; - Long n, limit; - - TCMapDir cmap_dir; - TCMapDirEntry entry_; - PCMapTable cmap; - - - PTRACE2(( "CMaps " )); - - if ( ( n = TT_LookUp_Table( face, TTAG_cmap ) ) < 0 ) - return TT_Err_CMap_Table_Missing; - - table_start = face->dirTables[n].Offset; - - if ( ( FILE_Seek( table_start ) ) || - ( ACCESS_Frame( 4L ) ) ) /* 4 bytes cmap header */ - return error; - - cmap_dir.tableVersionNumber = GET_UShort(); - cmap_dir.numCMaps = GET_UShort(); - - FORGET_Frame(); - - off = FILE_Pos(); /* save offset to cmapdir[] which follows */ - - /* save space in face table for cmap tables */ - if ( ALLOC_ARRAY( face->cMaps, - cmap_dir.numCMaps, - TCMapTable ) ) - return error; - - face->numCMaps = cmap_dir.numCMaps; - - limit = face->numCMaps; - cmap = face->cMaps; - - for ( n = 0; n < limit; n++ ) - { - if ( FILE_Seek( off ) || - ACCESS_Frame( 8L ) ) - return error; - - /* extra code using entry_ for platxxx could be cleaned up later */ - cmap->loaded = FALSE; - cmap->platformID = entry_.platformID = GET_UShort(); - cmap->platformEncodingID = entry_.platformEncodingID = GET_UShort(); - - entry_.offset = GET_Long(); - - FORGET_Frame(); - - off = FILE_Pos(); - - if ( FILE_Seek( table_start + entry_.offset ) || - ACCESS_Frame( 6L ) ) - return error; - - cmap->format = GET_UShort(); - cmap->length = GET_UShort(); - cmap->version = GET_UShort(); - - FORGET_Frame(); - - cmap->offset = FILE_Pos(); - - cmap++; - } - - PTRACE2(( "loaded\n" )); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Programs - * - * Description : Loads the font (fpgm) and cvt programs into the - * face table. - * - * Input : face - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Programs( PFace face ) - { - DEFINE_LOCALS_WO_FRAME; - - Long n; - - - PTRACE2(( "Font program " )); - - /* The font program is optional */ - if ( ( n = TT_LookUp_Table( face, TTAG_fpgm ) ) < 0 ) - { - face->fontProgram = NULL; - face->fontPgmSize = 0; - - PTRACE2(( "is missing!\n" )); - } - else - { - face->fontPgmSize = face->dirTables[n].Length; - - if ( ALLOC( face->fontProgram, - face->fontPgmSize ) || - FILE_Read_At( face->dirTables[n].Offset, - (void*)face->fontProgram, - face->fontPgmSize ) ) - return error; - - PTRACE2(( "loaded, %12d bytes\n", face->fontPgmSize )); - } - - PTRACE2(( "Prep program " )); - - if ( ( n = TT_LookUp_Table( face, TTAG_prep ) ) < 0 ) - { - face->cvtProgram = NULL; - face->cvtPgmSize = 0; - - PTRACE2(( "is missing!\n" )); - } - else - { - face->cvtPgmSize = face->dirTables[n].Length; - - if ( ALLOC( face->cvtProgram, - face->cvtPgmSize ) || - FILE_Read_At( face->dirTables[n].Offset, - (void*)face->cvtProgram, - face->cvtPgmSize ) ) - return error; - - PTRACE2(( "loaded, %12d bytes\n", face->cvtPgmSize )); - } - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_OS_2 - * - * Description : Loads the OS2 Table. - * - * Input : face - * - * Output : Error code. - * - * NOTE : This function used to be named Load_TrueType_OS2. - * We changed its name to avoid a name clash (OS2 happens - * to be a reserved name on some OS/2 compilers...) - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_OS_2( PFace face ) - { - DEFINE_LOCALS; - - Long i; - TT_OS2* os2; - - - PTRACE2(( "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. */ - if ( ( i = TT_LookUp_Table( face, TTAG_OS2 ) ) < 0 ) - { - PTRACE2(( "is missing\n!" )); - face->os2.version = 0xFFFF; - error = TT_Err_Ok; - return TT_Err_Ok; - } - - if ( FILE_Seek( face->dirTables[i].Offset ) || - ACCESS_Frame( 78L ) ) - return error; - - os2 = &face->os2; - - os2->version = GET_UShort(); - os2->xAvgCharWidth = GET_Short(); - os2->usWeightClass = GET_UShort(); - os2->usWidthClass = GET_UShort(); - os2->fsType = GET_Short(); - os2->ySubscriptXSize = GET_Short(); - os2->ySubscriptYSize = GET_Short(); - os2->ySubscriptXOffset = GET_Short(); - os2->ySubscriptYOffset = GET_Short(); - os2->ySuperscriptXSize = GET_Short(); - os2->ySuperscriptYSize = GET_Short(); - os2->ySuperscriptXOffset = GET_Short(); - os2->ySuperscriptYOffset = GET_Short(); - os2->yStrikeoutSize = GET_Short(); - os2->yStrikeoutPosition = GET_Short(); - os2->sFamilyClass = GET_Short(); - - for ( i = 0; i < 10; i++ ) - os2->panose[i] = GET_Byte(); - - os2->ulUnicodeRange1 = GET_ULong(); - os2->ulUnicodeRange2 = GET_ULong(); - os2->ulUnicodeRange3 = GET_ULong(); - os2->ulUnicodeRange4 = GET_ULong(); - - for ( i = 0; i < 4; i++ ) - os2->achVendID[i] = GET_Byte(); - - os2->fsSelection = GET_UShort(); - os2->usFirstCharIndex = GET_UShort(); - os2->usLastCharIndex = GET_UShort(); - os2->sTypoAscender = GET_Short(); - os2->sTypoDescender = GET_Short(); - os2->sTypoLineGap = GET_Short(); - os2->usWinAscent = GET_UShort(); - os2->usWinDescent = GET_UShort(); - - FORGET_Frame(); - - 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 ( ACCESS_Frame( 8L ) ) /* read into frame */ - return error; - - os2->ulCodePageRange1 = GET_ULong(); - os2->ulCodePageRange2 = GET_ULong(); - - FORGET_Frame(); - - if ( os2->version >= 0x0002 ) - { - /* only version 2 tables */ - - if ( ACCESS_Frame( 10L ) ) - return error; - - os2->sxHeight = GET_Short(); - os2->sCapHeight = GET_Short(); - os2->usDefaultChar = GET_UShort(); - os2->usBreakChar = GET_UShort(); - os2->usMaxContext = GET_UShort(); - - FORGET_Frame(); - } - } - - PTRACE2(( "loaded\n" )); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_PostScript - * - * Description : Loads the post table into face table. - * - * Input : face face table to look for - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_PostScript( PFace face ) - { - DEFINE_LOCALS; - - Long i; - - TT_Postscript* post = &face->postscript; - - - PTRACE2(( "PostScript " )); - - if ( ( i = TT_LookUp_Table( face, TTAG_post ) ) < 0 ) - return TT_Err_Post_Table_Missing; - - if ( FILE_Seek( face->dirTables[i].Offset ) || - ACCESS_Frame( 32L ) ) - return error; - - /* read frame data into face table */ - - post->FormatType = GET_ULong(); - post->italicAngle = GET_ULong(); - post->underlinePosition = GET_Short(); - post->underlineThickness = GET_Short(); - post->isFixedPitch = GET_ULong(); - post->minMemType42 = GET_ULong(); - post->maxMemType42 = GET_ULong(); - post->minMemType1 = GET_ULong(); - post->maxMemType1 = GET_ULong(); - - FORGET_Frame(); - - /* we don't load the glyph names, we do that in a */ - /* library extension (ftxpost). */ - - PTRACE2(( "loaded\n" )); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Hdmx - * - * Description : Loads the horizontal device metrics table. - * - * Input : face face object to look for - * - * Output : SUCCESS on success. FAILURE on error. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Hdmx( PFace face ) - { - DEFINE_LOCALS; - - TT_Hdmx_Record* rec; - TT_Hdmx hdmx; - Long table; - UShort n, num_glyphs; - Long record_size; - - - hdmx.version = 0; - hdmx.num_records = 0; - hdmx.records = 0; - - face->hdmx = hdmx; - - if ( ( table = TT_LookUp_Table( face, TTAG_hdmx ) ) < 0 ) - return TT_Err_Ok; - - if ( FILE_Seek( face->dirTables[table].Offset ) || - ACCESS_Frame( 8L ) ) - return error; - - hdmx.version = GET_UShort(); - hdmx.num_records = GET_Short(); - record_size = GET_Long(); - - FORGET_Frame(); - - /* Only recognize format 0 */ - - if ( hdmx.version != 0 ) - return TT_Err_Ok; - - if ( ALLOC( hdmx.records, sizeof ( TT_Hdmx_Record ) * hdmx.num_records ) ) - return error; - - num_glyphs = face->numGlyphs; - record_size -= num_glyphs+2; - rec = hdmx.records; - - for ( n = 0; n < hdmx.num_records; n++ ) - { - /* read record */ - - if ( ACCESS_Frame( 2L ) ) - goto Fail; - - rec->ppem = GET_Byte(); - rec->max_width = GET_Byte(); - - FORGET_Frame(); - - if ( ALLOC( rec->widths, num_glyphs ) || - FILE_Read( rec->widths, num_glyphs ) ) - goto Fail; - - /* skip padding bytes */ - if ( record_size > 0 ) - if ( FILE_Skip( record_size ) ) - goto Fail; - - rec++; - } - - face->hdmx = hdmx; - - return TT_Err_Ok; - - Fail: - for ( n = 0; n < hdmx.num_records; n++ ) - FREE( hdmx.records[n].widths ); - - FREE( hdmx.records ); - return error; - } - - -/******************************************************************* - * - * Function : Free_TrueType_Hdmx - * - * Description : Frees the horizontal device metrics table. - * - * Input : face face object to look for - * - * Output : TT_Err_Ok. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Free_TrueType_Hdmx( PFace face ) - { - UShort n; - - - if ( !face ) - return TT_Err_Ok; - - for ( n = 0; n < face->hdmx.num_records; n++ ) - FREE( face->hdmx.records[n].widths ); - - FREE( face->hdmx.records ); - face->hdmx.num_records = 0; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Load_TrueType_Any - * - * Description : Loads any font table into client memory. Used by - * the TT_Get_Font_Data() API function. - * - * Input : face face object to look for - * - * tag 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 starting offset in the table (or the file - * if tag == 0 ) - * - * buffer address of target buffer - * - * length address of decision variable : - * - * if length == NULL : - * load the whole table. returns an - * an error if 'offset' == 0 !! - * - * if *length == 0 : - * exit immediately, returning the - * length of the given table, or of - * the font file, depending on the - * value of 'tag' - * - * if *length != 0 : - * load the next 'length' bytes of - * table or font, starting at offset - * 'offset' (in table or font too). - * - * Output : Error condition - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Load_TrueType_Any( PFace face, - ULong tag, - Long offset, - void* buffer, - Long* length ) - { - TT_Stream stream; - TT_Error error; - Long table; - ULong size; - - - if ( tag != 0 ) - { - /* look for tag in font directory */ - table = TT_LookUp_Table( face, tag ); - if ( table < 0 ) - return TT_Err_Table_Missing; - - offset += face->dirTables[table].Offset; - size = face->dirTables[table].Length; - } - else - /* tag = 0 -- the use want to access the font file directly */ - size = TT_Stream_Size( face->stream ); - - if ( length && *length == 0 ) - { - *length = size; - return TT_Err_Ok; - } - - if ( length ) - size = *length; - - if ( !USE_Stream( face->stream, stream ) ) - (void)FILE_Read_At( offset, buffer, size ); - DONE_Stream( stream ); - - return error; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttload.h b/Build/source/libs/freetype/lib/ttload.h deleted file mode 100644 index d5f74d40e17..00000000000 --- a/Build/source/libs/freetype/lib/ttload.h +++ /dev/null @@ -1,238 +0,0 @@ -/******************************************************************* - * - * ttload.h 1.2 - * - * TrueType Tables Loader. - * - * Copyright 1996-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. - * - * - * Changes between 1.2 and 1.1 : - * - * - the macros are now in ttfile.h (with their underlying functions) - * - * Changes between 1.1 and 1.0 : - * - * - add function Load_TrueType_Any used by TT_Get_Font_Data - * - ******************************************************************/ - -#ifndef TTLOAD_H -#define TTLOAD_H - -#include "ttconfig.h" -#include "tttypes.h" -#include "ttobjs.h" - -#ifdef __cplusplus - extern "C" { -#endif - - FT_EXPORT_DEF( Long ) - TT_LookUp_Table( PFace face, - ULong tag ); - - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Directory( PFace face, - ULong faceIndex ); - - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_MaxProfile( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Gasp( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Header( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Locations( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Names( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_CVT( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_CMap( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Programs( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_OS_2( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_PostScript( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Hdmx( PFace face ); - - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Metrics_Header( PFace face, - Bool vertical ); - - FT_INTERNAL_DEF( TT_Error ) - Load_TrueType_Any( PFace face, - ULong tag, - Long offset, - void* buffer, - Long* length ); - - FT_INTERNAL_DEF( TT_Error ) - Free_TrueType_Names( PFace face ); - FT_INTERNAL_DEF( TT_Error ) - Free_TrueType_Hdmx ( PFace face ); - - -/* The following macros are defined to simplify the writing of */ -/* the various table and glyph loaders. */ - -/* For examples see the code in ttload.c, ttgload.c etc. */ - -#define USE_Stream( original, duplicate ) \ - ( (error = TT_Use_Stream( original, &duplicate )) != TT_Err_Ok ) - -#define DONE_Stream( _stream ) \ - TT_Done_Stream( &_stream ) - -/* Define a file frame -- use it only when needed */ -#define DEFINE_A_FRAME TFileFrame frame = TT_Null_FileFrame - -/* Define a stream -- use it only when needed */ -#define DEFINE_A_STREAM TT_Stream stream - - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE /* re-entrant implementation */ - -/* The following macros define the necessary local */ -/* variables used to access streams and frames. */ - -/* Define stream locals with frame */ -#define DEFINE_STREAM_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM; \ - DEFINE_A_FRAME - -/* Define stream locals without frame */ -#define DEFINE_STREAM_LOCALS_WO_FRAME \ - TT_Error error; \ - DEFINE_A_STREAM - -/* Define locals with a predefined stream in reentrant mode -- see ttload.c */ -#define DEFINE_LOAD_LOCALS( STREAM ) \ - TT_Error error; \ - DEFINE_A_STREAM = (STREAM); \ - DEFINE_A_FRAME - -/* Define locals without frame with a predefined stream - see ttload.c */ -#define DEFINE_LOAD_LOCALS_WO_FRAME( STREAM ) \ - TT_Error error; \ - DEFINE_A_STREAM = (STREAM) - -/* Define all locals necessary to access a font file */ -#define DEFINE_ALL_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM; \ - DEFINE_A_FRAME - - -#define ACCESS_Frame( _size_ ) \ - ( (error = TT_Access_Frame( stream, \ - &frame, \ - (Long)(_size_) )) != TT_Err_Ok ) -#define CHECK_ACCESS_Frame( _size_ ) \ - ( (error = TT_Check_And_Access_Frame( stream, \ - &frame, \ - (Long)(_size_) )) != TT_Err_Ok ) -#define FORGET_Frame() \ - ( (void)TT_Forget_Frame( stream, &frame ) ) - -#define GET_Byte() TT_Get_Byte ( &frame ) -#define GET_Char() TT_Get_Char ( &frame ) -#define GET_UShort() TT_Get_UShort( &frame ) -#define GET_Short() TT_Get_Short ( &frame ) -#define GET_Long() TT_Get_Long ( &frame ) -#define GET_ULong() TT_Get_ULong ( &frame ) -#define GET_Tag4() TT_Get_ULong ( &frame ) - -#define FILE_Pos() TT_File_Pos ( stream ) - -#define FILE_Seek( _position_ ) \ - ( (error = TT_Seek_File( stream, \ - (Long)(_position_) )) != TT_Err_Ok ) -#define FILE_Skip( _distance_ ) \ - ( (error = TT_Skip_File( stream, \ - (Long)(_distance_) )) != TT_Err_Ok ) -#define FILE_Read( buffer, count ) \ - ( (error = TT_Read_File ( stream, \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) -#define FILE_Read_At( pos, buffer, count ) \ - ( (error = TT_Read_At_File( stream, \ - (Long)(pos), \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) - -#else /* thread-safe implementation */ - -/* Define stream locals with frame -- nothing in thread-safe mode */ -#define DEFINE_STREAM_LOCALS \ - TT_Error error - -/* Define stream locals without frame -- nothing in thread-safe mode */ -#define DEFINE_STREAM_LOCALS_WO_FRAME \ - TT_Error error - -/* Define locals with a predefined stream in reentrant mode -- see ttload.c */ -#define DEFINE_LOAD_LOCALS( STREAM ) \ - TT_Error error - - -/* Define locals without frame with a predefined stream - see ttload.c */ -#define DEFINE_LOAD_LOCALS_WO_FRAME( STREAM ) \ - TT_Error error - -/* Define all locals necessary to access a font file */ -#define DEFINE_ALL_LOCALS \ - TT_Error error; \ - DEFINE_A_STREAM - - -#define ACCESS_Frame( _size_ ) \ - ( (error = TT_Access_Frame( (Long)(_size_) )) != TT_Err_Ok ) -#define CHECK_ACCESS_Frame( _size_ ) \ - ( (error = TT_Check_And_Access_Frame( (Long)(_size_) )) != TT_Err_Ok ) -#define FORGET_Frame() \ - ( (void)TT_Forget_Frame() ) - -#define GET_Byte() TT_Get_Byte () -#define GET_Char() TT_Get_Char () -#define GET_UShort() TT_Get_UShort() -#define GET_Short() TT_Get_Short () -#define GET_Long() TT_Get_Long () -#define GET_ULong() TT_Get_ULong () -#define GET_Tag4() TT_Get_ULong () - -#define FILE_Pos() TT_File_Pos() - -#define FILE_Seek( _position_ ) \ - ( (error = TT_Seek_File( (Long)(_position_) )) != TT_Err_Ok ) -#define FILE_Skip( _distance_ ) \ - ( (error = TT_Skip_File( (Long)(_distance_) )) != TT_Err_Ok ) -#define FILE_Read( buffer, count ) \ - ( (error = TT_Read_File ( buffer, \ - (Long)(count) )) != TT_Err_Ok ) -#define FILE_Read_At( pos, buffer, count ) \ - ( (error = TT_Read_At_File( (Long)(pos), \ - buffer, \ - (Long)(count) )) != TT_Err_Ok ) - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - -#ifdef __cplusplus - } -#endif - -#endif /* TTLOAD_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttmemory.c b/Build/source/libs/freetype/lib/ttmemory.c deleted file mode 100644 index bdfa0cfe62b..00000000000 --- a/Build/source/libs/freetype/lib/ttmemory.c +++ /dev/null @@ -1,399 +0,0 @@ -/******************************************************************* - * - * ttmemory.c 1.2 - * - * Memory management component (body). - * - * 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. - * - * - * Changes between 1.1 and 1.2: - * - * - the font pool is gone. - * - * - introduced the FREE macro and the Free function for - * future use in destructors. - * - * - Init_FontPool() is now a macro to allow the compilation of - * 'legacy' applications (all four test programs have been updated). - * - ******************************************************************/ - -#include "ttdebug.h" -#include "ttmemory.h" -#include "ttengine.h" - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_memory - - -#ifdef DEBUG_MEMORY - -#include - -#define MAX_TRACKED_BLOCKS 4096 - - struct TMemRec_ - { - void* base; - Long size; - }; - - typedef struct TMemRec_ TMemRec; - - static TMemRec pointers[MAX_TRACKED_BLOCKS + 1]; - - static Int num_alloc; - static Int num_free; - static Int num_realloc; /* counts only `real' reallocations - (i.e., an existing buffer will be resized - to a value larger than zero */ - - static Int fail_alloc; - static Int fail_realloc; - static Int fail_free; - -#endif /* DEBUG_MEMORY */ - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - Long TTMemory_Allocated; - Long TTMemory_MaxAllocated; -#endif - - -/******************************************************************* - * - * Function : TT_Alloc - * - * Description : Allocates memory from the heap buffer. - * - * Input : Size size of the memory to be allocated - * P pointer to a buffer pointer - * - * Output : Error code. - * - * NOTE : The newly allocated block should _always_ be zeroed - * on return. Many parts of the engine rely on this to - * work properly. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Alloc( ULong Size, - void** P ) - { -#ifdef DEBUG_MEMORY - Int i; -#endif - - - if ( !P ) - return TT_Err_Invalid_Argument; - - if ( Size > (size_t)-1 ) - return TT_Err_Out_Of_Memory; - if ( Size > 0 ) - { - *P = (void*)malloc( Size ); - if ( !*P ) - return TT_Err_Out_Of_Memory; - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated += Size; - TTMemory_MaxAllocated += Size; -#endif - -#ifdef DEBUG_MEMORY - - num_alloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != NULL ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_alloc++; - else - { - pointers[i].base = *P; - pointers[i].size = Size; - } - -#endif /* DEBUG_MEMORY */ - - MEM_Set( *P, 0, Size ); - } - else - *P = NULL; - - return TT_Err_Ok; - } - - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - - -/******************************************************************* - * - * Function : TT_Realloc - * - * Description : Reallocates memory from the heap buffer. - * - * Input : Size new size of the memory to be allocated; - * if zero, TT_Free() will be called - * P pointer to a buffer pointer; if *P == NULL, - * TT_Alloc() will be called - * - * Output : Error code. - * - * NOTES : It's not necessary to zero the memory in case the - * reallocated buffer is larger than before -- the - * application has to take care of this. - * - * If the memory request fails, TT_Free() will be - * called on *P, and TT_Err_Out_Of_Memory returned. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Realloc( ULong Size, - void** P ) - { - void* Q; - -#ifdef DEBUG_MEMORY - Int i; -#endif - - - if ( !P ) - return TT_Err_Invalid_Argument; - - if ( !*P ) - return TT_Alloc( Size, P ); - - if ( Size == 0 ) - return TT_Free( P ); - - if ( Size > (size_t)-1 ) - { - TT_Free( *P ); - return TT_Err_Out_Of_Memory; - } - - Q = (void*)realloc( *P, Size ); - if ( !Q ) - { - TT_Free( *P ); - return TT_Err_Out_Of_Memory; - } - -#ifdef DEBUG_MEMORY - - num_realloc++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_realloc++; - else - { -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated += Size - pointers[i].size; - if ( Size > pointers[i].size ) - TTMemory_MaxAllocated += Size - pointers[i].size; -#endif - - pointers[i].base = Q; - pointers[i].size = Size; - } -#endif /* DEBUG_MEMORY */ - - *P = Q; - - return TT_Err_Ok; - } - - -#endif /* TT_CONFIG_OPTION_EXTEND_ENGINE */ - - -/******************************************************************* - * - * Function : TT_Free - * - * Description : Releases a previously allocated block of memory. - * - * Input : P pointer to memory block - * - * Output : Always SUCCESS. - * - * Note : The pointer must _always_ be set to NULL by this function. - * - ******************************************************************/ - - FT_EXPORT_FUNC( TT_Error ) - TT_Free( void** P ) - { -#ifdef DEBUG_MEMORY - Int i; -#endif /* DEBUG_MEMORY */ - - - if ( !P || !*P ) - return TT_Err_Ok; - -#ifdef DEBUG_MEMORY - - num_free++; - - i = 0; - while ( i < MAX_TRACKED_BLOCKS && pointers[i].base != *P ) - i++; - - if ( i >= MAX_TRACKED_BLOCKS ) - fail_free++; - else - { -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated -= pointers[i].size; -#endif - - pointers[i].base = NULL; - pointers[i].size = 0; - } -#endif /* DEBUG_MEMORY */ - - free( *P ); - - *P = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Init - * - * Description : Initializes the memory. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Init( void ) - { -#ifdef DEBUG_MEMORY - Int i; - - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - pointers[i].base = NULL; - pointers[i].size = 0; - } - - num_alloc = 0; - num_realloc = 0; - num_free = 0; - - fail_alloc = 0; - fail_realloc = 0; - fail_free = 0; -#endif - - -#ifndef TT_CONFIG_OPTION_THREAD_SAFE - TTMemory_Allocated = 0; - TTMemory_MaxAllocated = 0; -#endif - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : TTMemory_Done - * - * Description : Finalizes memory usage. - * - * Output : Always SUCCESS. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTMemory_Done( void ) - { -#ifdef DEBUG_MEMORY - Int i, num_leaked, tot_leaked; - - - num_leaked = 0; - tot_leaked = 0; - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - num_leaked ++; - tot_leaked += pointers[i].size; - } - } - - fprintf( stderr, - "%d memory allocations, of which %d failed\n", - num_alloc, - fail_alloc ); - - fprintf( stderr, - "%d memory reallocations, of which %d failed\n", - num_realloc, - fail_realloc ); - - fprintf( stderr, - "%d memory deallocations, of which %d failed\n", - num_free, - fail_free ); - - if ( num_leaked > 0 ) - { - fprintf( stderr, - "There are %d leaked memory blocks, totalizing %d bytes\n", - num_leaked, tot_leaked ); - - for ( i = 0; i < MAX_TRACKED_BLOCKS; i++ ) - { - if ( pointers[i].base ) - { - fprintf( stderr, - "index: %4d (base: $%08lx, size: %08ld)\n", - i, - (long)pointers[i].base, - pointers[i].size ); - } - } - } - else - fprintf( stderr, "No memory leaks!\n" ); - -#endif /* DEBUG_MEMORY */ - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttmemory.h b/Build/source/libs/freetype/lib/ttmemory.h deleted file mode 100644 index 5173567849f..00000000000 --- a/Build/source/libs/freetype/lib/ttmemory.h +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************* - * - * ttmemory.h 1.2 - * - * Memory management component (specification). - * - * 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. - * - * Changes between 1.2 and 1.1: - * - * - the font pool is gone! All allocations are now performed - * with malloc() and free(). - * - * - introduced the FREE() macro and the Free() function for - * future use in destructors. - * - * - Init_FontPool() is now a macro to allow the compilation of - * 'legacy' applications (all four test programs have been updated). - * - ******************************************************************/ - -#ifndef TTMEMORY_H -#define TTMEMORY_H - -#include "ttconfig.h" -#include "tttypes.h" -#include - - -#ifdef __cplusplus - extern "C" { -#endif - -#define MEM_Set( dest, byte, count ) memset( dest, byte, count ) - -#ifdef HAVE_MEMCPY -#define MEM_Copy( dest, source, count ) memcpy( dest, source, count ) -#else -#define MEM_Copy( dest, source, count ) bcopy( source, dest, count ) -#endif - -#ifdef HAVE_MEMMOVE -#define MEM_Move( dest, source, count ) memmove( dest, source, count ) -#else -#define MEM_Move( dest, source, count ) bcopy( source, dest, count ) -#endif - - -#define MEM_Alloc( _pointer_, _size_ ) \ - TT_Alloc( _size_, (void**)&(_pointer_) ) - -#define MEM_Realloc( _pointer_, _size_ ) \ - TT_Realloc( _size_, (void**)&(_pointer_) ) - -#define ALLOC( _pointer_, _size_ ) \ - ( ( error = MEM_Alloc( _pointer_, _size_ ) ) != TT_Err_Ok ) - -#define ALLOC_ARRAY( _pointer_, _count_, _type_ ) \ - ( ( error = MEM_Alloc( _pointer_, \ - (_count_) * sizeof ( _type_ ) ) ) != TT_Err_Ok ) - -#define REALLOC( _pointer_, _size_ ) \ - ( ( error = MEM_Realloc( _pointer_, _size_ ) ) != TT_Err_Ok ) - -#define REALLOC_ARRAY( _pointer_, _count_, _type_ ) \ - ( (error = MEM_Realloc( _pointer_, \ - (_count_) * sizeof ( _type_ ) ) ) != TT_Err_Ok ) - -#define FREE( _pointer_ ) \ - TT_Free( (void**)&(_pointer_) ) - - - /* Allocate a block of memory of 'Size' bytes from the heap, and */ - /* sets the pointer '*P' to its address. If 'Size' is 0, or in */ - /* case of error, the pointer is always set to NULL. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Alloc( ULong Size, - void** P ); - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - - /* Reallocates a block of memory pointed to by '*P' to 'Size' */ - /* bytes from the heap, possibly changing '*P'. If 'Size' is 0, */ - /* TT_Free() is called, if '*P' is NULL, TT_Alloc() is called. */ - /* '*P' is freed (if it's non-NULL) in case of error. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Realloc( ULong Size, - void** P ); - -#endif /* TT_CONFIG_OPTION_EXTEND_ENGINE */ - - /* Releases a block that was previously allocated through Alloc. */ - /* Note that the function returns successfully when P or *P are */ - /* already NULL. The pointer '*P' is set to NULL on exit in */ - /* case of success. */ - - FT_EXPORT_DEF( TT_Error ) - TT_Free( void** P ); - - - /* For "legacy" applications, that should be re-coded. */ - /* Note that this won't release the previously allocated font pool. */ - -#define Init_FontPool( x, y ) while( 0 ) { } - - - FT_INTERNAL_DEF( TT_Error ) - TTMemory_Init( void ); - FT_INTERNAL_DEF( TT_Error ) - TTMemory_Done( void ); - - -#ifdef __cplusplus - } -#endif - -#endif /* TTMEMORY_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttmutex.c b/Build/source/libs/freetype/lib/ttmutex.c deleted file mode 100644 index e7c3b53c671..00000000000 --- a/Build/source/libs/freetype/lib/ttmutex.c +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************* - * - * ttmutex.c 1.0 - * - * Mutual exclusion object, single-threaded implementation - * - * 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. - * - * NOTE: This is a generic non-functional implementation - * that you are welcome to refine for your own system. - * - * Please name your system-specific source with a - * different name (like ttmutex-os2.c or ttmutex-linux.c) - * and change your makefile accordingly. - * - ******************************************************************/ - -#include "ttmutex.h" - - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_mutex - - -/* ANSI C prevents the compilation of empty units. We thus introduce */ -/* a dummy typedef to get rid of compiler warnings/errors. */ -/* Note that gcc's -ansi -pedantic does not report any error here. */ -/* Watcom, VC++ or Borland C++ do however. */ - - typedef void _ttmutex_to_satisfy_ANSI_C_; - - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE - - FT_INTERNAL_FUNC( void ) - TT_Mutex_Create( TMutex* mutex ) - { - *mutex = (void*)-1; - /* Replace this line with your own mutex creation code */ - } - - - FT_INTERNAL_FUNC( void ) - TT_Mutex_Delete( TMutex* mutex ) - { - *mutex = (void*)0; - /* Replace this line with your own mutex destruction code */ - } - - - FT_INTERNAL_FUNC( void ) - TT_Mutex_Lock( TMutex* mutex ) - { - /* NOTE: It is legal to call this function with a NULL argument */ - /* in which case an immediate return is appropriate. */ - if ( !mutex ) - return; - - ; /* Insert your own mutex locking code here */ - } - - - FT_INTERNAL_FUNC( void ) - TT_Mutex_Release( TMutex* mutex ) - { - /* NOTE: It is legal to call this function with a NULL argument */ - /* in which case an immediate return is appropriate */ - if ( !mutex ) - return; - - ; /* Insert your own mutex release code here */ - } - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttmutex.h b/Build/source/libs/freetype/lib/ttmutex.h deleted file mode 100644 index 3dae642af99..00000000000 --- a/Build/source/libs/freetype/lib/ttmutex.h +++ /dev/null @@ -1,63 +0,0 @@ -/******************************************************************* - * - * ttmutex.h 1.0 - * - * Mutual exclusion object / dummy generic interface. - * - * 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. - * - * Note: This file provides a generic interface. The implementation - * to compile depends on your system and the type of - * library you want to build (either singly-threaded, - * thread-safe or re-entrant). - * - * Please read the technical documentation for more details. - * - ******************************************************************/ - -#ifndef TTMUTEX_H -#define TTMUTEX_H - -#include "ttconfig.h" - - - typedef void* TMutex; /* typeless reference to a mutex */ - -#ifdef TT_CONFIG_OPTION_THREAD_SAFE /* thread-safe and re-entrant builds */ - -#define MUTEX_Create( mutex ) TT_Mutex_Create ( &(mutex) ) -#define MUTEX_Destroy( mutex ) TT_Mutex_Delete ( &(mutex) ) -#define MUTEX_Lock( mutex ) TT_Mutex_Lock ( &(mutex) ) -#define MUTEX_Release( mutex ) TT_Mutex_Release( &(mutex) ) - - FT_INTERNAL_DEF( void ) - TT_Mutex_Create( TMutex* mutex ); /* Create a new mutex */ - FT_INTERNAL_DEF( void ) - TT_Mutex_Delete( TMutex* mutex ); /* Delete a mutex */ - FT_INTERNAL_DEF( void ) - TT_Mutex_Lock( TMutex* mutex ); /* Lock a mutex */ - FT_INTERNAL_DEF( void ) - TT_Mutex_Release( TMutex* mutex ); /* Release a mutex */ - -#else /* for the single-thread build */ - -#define MUTEX_Create( mutex ) /* nothing */ -#define MUTEX_Destroy( mutex ) /* nothing */ -#define MUTEX_Lock( mutex ) /* nothing */ -#define MUTEX_Release( mutex ) /* nothing */ - - /* No code will be generated for mutex operations */ - -#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ - -#endif /* TTMUTEX_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttobjs.c b/Build/source/libs/freetype/lib/ttobjs.c deleted file mode 100644 index 3c6331dedcb..00000000000 --- a/Build/source/libs/freetype/lib/ttobjs.c +++ /dev/null @@ -1,1500 +0,0 @@ -/******************************************************************* - * - * ttobjs.c 1.0 - * - * Objects manager. - * - * 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. - * - ******************************************************************/ - -#include "ttobjs.h" -#include "ttfile.h" -#include "ttcalc.h" -#include "ttmemory.h" -#include "ttload.h" -#include "ttinterp.h" -#include "ttdebug.h" - - -/* Add extensions definition */ -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE -#include "ttextend.h" -#endif - -/* Required by tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_objs - -/******************************************************************* - * - * Function : New_Context - * - * Description : Creates a new execution context for a given - * face object. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( PExecution_Context ) - New_Context( PFace face ) - { - PEngine_Instance engine; - PExecution_Context exec; - - - if ( !face ) - return NULL; - - engine = face->engine; - CACHE_New( engine->objs_exec_cache, exec, face ); - return exec; - } - - -/******************************************************************* - * - * Function : Done_Context - * - * Description : Discards an execution context. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Done_Context( PExecution_Context exec ) - { - PEngine_Instance engine; - - - if ( !exec ) - return TT_Err_Ok; - - engine = exec->face->engine; - return CACHE_Done( engine->objs_exec_cache, exec ); - } - - -#if 0 - -/******************************************************************* - * - * Function : New_Instance - * - * Description : Creates a new instance for a given face object. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( PInstance ) - New_Instance( PFace face ) - { - PInstance ins; - - - if ( !face ) - return NULL; - - CACHE_New( &face->instances, ins, face ); - - return ins; - } - - -/******************************************************************* - * - * Function : Done_Instance - * - * Description : Discards an instance. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Done_Instance( PInstance instance ) - { - return CACHE_Done( &instance->owner->instances, instance ); - } - -#endif - - -/******************************************************************* - * * - * GLYPH ZONE FUNCTIONS * - * * - * * - *******************************************************************/ - -/******************************************************************* - * - * Function : New_Glyph_Zone - * - * Description : Allocates a new glyph zone - * - * Input : pts pointer to the target glyph zone record - * maxPoints capacity of glyph zone in points - * maxContours capacity of glyph zone in contours - * - * Return : Error code. - * - *****************************************************************/ - - static - TT_Error New_Glyph_Zone( PGlyph_Zone pts, - UShort maxPoints, - UShort maxContours ) - { - TT_Error error; - - - if ( ALLOC( pts->org, maxPoints * 2 * sizeof ( TT_F26Dot6 ) ) || - ALLOC( pts->cur, maxPoints * 2 * sizeof ( TT_F26Dot6 ) ) || - ALLOC( pts->touch, maxPoints * sizeof ( Byte ) ) || - ALLOC( pts->contours, maxContours * sizeof ( Short ) ) ) - return error; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Done_Glyph_Zone - * - * Description : Deallocates a glyph zone - * - * Input : pts pointer to the target glyph zone record - * - * Return : Error code. - * - *****************************************************************/ - - static - TT_Error Done_Glyph_Zone( PGlyph_Zone pts ) - { - FREE( pts->contours ); - FREE( pts->touch ); - FREE( pts->cur ); - FREE( pts->org ); - - return TT_Err_Ok; - } - - - -/******************************************************************* - * * - * CODERANGE FUNCTIONS * - * * - *******************************************************************/ - -/******************************************************************* - * - * Function : Goto_CodeRange - * - * Description : Switch to a new code range (updates Code and IP). - * - * Input : exec target execution context - * range new execution code range - * IP new IP in new code range - * - * Output : SUCCESS on success. FAILURE on error (no code range). - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Goto_CodeRange( PExecution_Context exec, - Int range, - ULong IP ) - { - PCodeRange cr; - - - if ( range < 1 || range > 3 ) - return TT_Err_Bad_Argument; - - cr = &exec->codeRangeTable[range - 1]; - - if ( cr->Base == NULL ) - return TT_Err_Invalid_CodeRange; - - /* 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. */ - - if ( IP > cr->Size ) - return TT_Err_Code_Overflow; - - exec->code = cr->Base; - exec->codeSize = cr->Size; - exec->IP = IP; - exec->curRange = range; - - return TT_Err_Ok; - } - - -#if 0 - -/******************************************************************* - * - * Function : Get_CodeRange - * - * Description : Returns a pointer to a given code range. Should - * be used only by the debugger. Returns NULL if - * 'range' is out of current bounds. - * - * Input : exec target execution context - * range new execution code range - * - * Output : Pointer to the code range record. NULL on failure. - * - *****************************************************************/ - - FT_INTERNAL_FUNC( PCodeRange ) - Get_CodeRange( PExecution_Context exec, - Int range ) - { - if ( range < 1 || range > 3 ) - return NULL; - else /* arrays start with 1 in Pascal, and with 0 in C */ - return &exec->codeRangeTable[range - 1]; - } - -#endif - - -/******************************************************************* - * - * Function : Set_CodeRange - * - * Description : Sets a code range. - * - * Input : exec target execution context - * range code range index - * base new code base - * length range size in bytes - * - * Output : SUCCESS on success. FAILURE on error. - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Set_CodeRange( PExecution_Context exec, - Int range, - void* base, - ULong length ) - { - if ( range < 1 || range > 3 ) - return TT_Err_Bad_Argument; - - exec->codeRangeTable[range - 1].Base = (Byte*)base; - exec->codeRangeTable[range - 1].Size = length; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Clear_CodeRange - * - * Description : Clears a code range. - * - * Input : exec target execution context - * range code range index - * - * Output : SUCCESS on success. FAILURE on error. - * - * Note : Does not set the Error variable. - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Clear_CodeRange( PExecution_Context exec, - Int range ) - { - if ( range < 1 || range > 3 ) - return TT_Err_Bad_Argument; - - exec->codeRangeTable[range - 1].Base = NULL; - exec->codeRangeTable[range - 1].Size = 0; - - return TT_Err_Ok; - } - - - -/******************************************************************* - * * - * EXECUTION CONTEXT ROUTINES * - * * - *******************************************************************/ - -/******************************************************************* - * - * Function : Context_Destroy - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Context_Destroy( void* _context ) - { - PExecution_Context exec = (PExecution_Context)_context; - - if ( !exec ) - return TT_Err_Ok; - - /* free composite load stack */ - FREE( exec->loadStack ); - exec->loadSize = 0; - - /* points zone */ - Done_Glyph_Zone( &exec->pts ); - exec->maxPoints = 0; - exec->maxContours = 0; - - /* free stack */ - FREE( exec->stack ); - exec->stackSize = 0; - - /* free call stack */ - FREE( exec->callStack ); - exec->callSize = 0; - exec->callTop = 0; - - /* free glyph code range */ - FREE( exec->glyphIns ); - exec->glyphSize = 0; - - exec->instance = NULL; - exec->face = NULL; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Context_Create - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Context_Create( void* _context, - void* _face ) - { - PExecution_Context exec = (PExecution_Context)_context; - - PFace face = (PFace)_face; - TT_Error error; - - - /* XXX : We don't reserve arrays anymore, this is done automatically */ - /* during a "Context_Load".. */ - - exec->callSize = 32; - if ( ALLOC_ARRAY( exec->callStack, exec->callSize, TCallRecord ) ) - 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->instance = NULL; - - return TT_Err_Ok; - - Fail_Memory: - Context_Destroy( exec ); - return error; - } - - -/******************************************************************* - * - * Function : Context_Load - * - *****************************************************************/ - -/****************************************************************/ -/* */ -/* Update_Max : Reallocate a buffer if it needs to */ -/* */ -/* input: size address of buffer's current size */ -/* expressed in elements */ -/* */ -/* multiplier size in bytes of each element in the */ -/* buffer */ -/* */ -/* buff address of the buffer base pointer */ -/* */ -/* new_max new capacity (size) of the buffer */ - - static - TT_Error Update_Max( ULong* size, - ULong multiplier, - void** buff, - ULong new_max ) - { - TT_Error error; - - if ( *size < new_max ) - { - FREE( *buff ); - if ( ALLOC( *buff, new_max * multiplier ) ) - return error; - *size = new_max; - } - return TT_Err_Ok; - } - - -/****************************************************************/ -/* */ -/* Update_Zone: Reallocate a zone if it needs to */ -/* */ -/* input: zone address of the target zone */ -/* */ -/* maxPoints address of the zone's current capacity */ -/* in points */ -/* */ -/* maxContours address of the zone's current capacity */ -/* in contours */ -/* */ -/* newPoints new capacity in points */ -/* */ -/* newContours new capacity in contours */ -/* */ - - static - TT_Error Update_Zone( PGlyph_Zone zone, - UShort* maxPoints, - UShort* maxContours, - UShort newPoints, - UShort newContours ) - { - if ( *maxPoints < newPoints || *maxContours < newContours ) - { - TT_Error error; - - - Done_Glyph_Zone( zone ); - - error = New_Glyph_Zone( zone, newPoints, newContours ); - if ( error ) - return error; - - *maxPoints = newPoints; - *maxContours = newContours; - } - return TT_Err_Ok; - } - - - FT_INTERNAL_FUNC( TT_Error ) - Context_Load( PExecution_Context exec, - PFace face, - PInstance ins ) - { - Int i; - TMaxProfile* maxp; - TT_Error error; - - exec->face = face; - maxp = &face->maxProfile; - - exec->instance = ins; - - if ( ins ) - { - exec->numFDefs = ins->numFDefs; - exec->numIDefs = ins->numIDefs; - exec->maxFDefs = ins->maxFDefs; - exec->maxIDefs = ins->maxIDefs; - exec->FDefs = ins->FDefs; - exec->IDefs = ins->IDefs; - exec->metrics = ins->metrics; - - exec->maxFunc = ins->maxFunc; - exec->maxIns = ins->maxIns; - - for ( i = 0; i < MAX_CODE_RANGES; i++ ) - exec->codeRangeTable[i] = ins->codeRangeTable[i]; - - /* set graphics state */ - exec->GS = ins->GS; - - exec->cvtSize = ins->cvtSize; - exec->cvt = ins->cvt; - - exec->storeSize = ins->storeSize; - exec->storage = ins->storage; - - exec->twilight = ins->twilight; - } - - error = Update_Max( &exec->loadSize, - sizeof ( TSubglyph_Record ), - (void**)&exec->loadStack, - face->maxComponents + 1 ); - if ( error ) - return error; - - error = Update_Max( &exec->stackSize, - sizeof ( TT_F26Dot6 ), - (void**)&exec->stack, - maxp->maxStackElements + 32 ); - /* XXX : We reserve a little more elements on the stack to deal safely */ - /* with broken fonts like arialbs, courbs, timesbs... */ - if ( error ) - return error; - - error = Update_Max( &exec->glyphSize, - sizeof ( Byte ), - (void**)&exec->glyphIns, - maxp->maxSizeOfInstructions ); - if ( error ) - return error; - - error = Update_Zone( &exec->pts, - &exec->maxPoints, - &exec->maxContours, - exec->face->maxPoints + 2, - exec->face->maxContours ); - /* XXX : We reserve two positions for the phantom points! */ - if ( error ) - return error; - - exec->pts.n_points = 0; - exec->pts.n_contours = 0; - - exec->instruction_trap = FALSE; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Context_Save - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Context_Save( PExecution_Context exec, - PInstance ins ) - { - Int i; - - /* XXXX : Will probably disappear soon with all the coderange */ - /* management, which is now rather obsolete. */ - - ins->numFDefs = exec->numFDefs; - ins->numIDefs = exec->numIDefs; - ins->maxFunc = exec->maxFunc; - ins->maxIns = exec->maxIns; - - for ( i = 0; i < MAX_CODE_RANGES; i++ ) - ins->codeRangeTable[i] = exec->codeRangeTable[i]; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Context_Run - * - *****************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Context_Run( PExecution_Context exec, - Bool debug ) - { - TT_Error error; - - - if ( (error = 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; - - 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 ( !debug ) - return RunIns( exec ); - else - return TT_Err_Ok; - } - - - FT_INTERNAL_VAR( const TGraphicsState ) - Default_GraphicsState = - { - 0, 0, 0, - { 0x4000, 0 }, - { 0x4000, 0 }, - { 0x4000, 0 }, - 1, 64, 1, - TRUE, 68, 0, 0, 9, 3, - 0, FALSE, 2, 1, 1, 1 - }; - - - -/******************************************************************* - * * - * INSTANCE FUNCTIONS * - * * - * * - *******************************************************************/ - -/******************************************************************* - * - * Function : Instance_Destroy - * - * Description : - * - * Input : _instance the instance object to destroy - * - * Output : error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Instance_Destroy( void* _instance ) - { - PInstance ins = (PInstance)_instance; - - - if ( !_instance ) - return TT_Err_Ok; - - if ( ins->debug ) - { - /* the debug context must be deleted by the debugger itself */ - ins->context = NULL; - ins->debug = FALSE; - } - - FREE( ins->cvt ); - ins->cvtSize = 0; - - /* free storage area */ - FREE( ins->storage ); - ins->storeSize = 0; - - /* twilight zone */ - Done_Glyph_Zone( &ins->twilight ); - - FREE( ins->FDefs ); - FREE( ins->IDefs ); - ins->numFDefs = 0; - ins->numIDefs = 0; - ins->maxFDefs = 0; - ins->maxIDefs = 0; - ins->maxFunc = -1; - ins->maxIns = -1; - - ins->owner = NULL; - ins->valid = FALSE; - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Instance_Create - * - * Description : - * - * Input : _instance instance record to initialize - * _face parent face object - * - * Output : Error code. All partially built subtables are - * released on error. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Instance_Create( void* _instance, - void* _face ) - { - PInstance ins = (PInstance)_instance; - PFace face = (PFace)_face; - TT_Error error; - Int i; - UShort n_twilight; - - PMaxProfile maxp = &face->maxProfile; - - - ins->owner = face; - ins->valid = FALSE; - - ins->maxFDefs = maxp->maxFunctionDefs; - ins->maxIDefs = maxp->maxInstructionDefs; - ins->cvtSize = face->cvtSize; - ins->storeSize = maxp->maxStorage; - - /* Set default metrics */ - { - PIns_Metrics metrics = &ins->metrics; - - - metrics->pointSize = 10 * 64; /* default pointsize = 10pts */ - - metrics->x_resolution = 96; /* default resolution = 96dpi */ - metrics->y_resolution = 96; - - metrics->x_ppem = 0; - metrics->y_ppem = 0; - - metrics->rotated = FALSE; - metrics->stretched = FALSE; - - /* set default compensation ( all 0 ) */ - for ( i = 0; i < 4; i++ ) - metrics->compensations[i] = 0; - } - - /* allocate function defs, instruction defs, cvt and storage area */ - if ( ALLOC_ARRAY( ins->FDefs, ins->maxFDefs, TDefRecord ) || - ALLOC_ARRAY( ins->IDefs, ins->maxIDefs, TDefRecord ) || - ALLOC_ARRAY( ins->cvt, ins->cvtSize, Long ) || - ALLOC_ARRAY( ins->storage, ins->storeSize, Long ) ) - goto Fail_Memory; - - /* reserve twilight zone */ - n_twilight = maxp->maxTwilightPoints; - error = New_Glyph_Zone( &ins->twilight, n_twilight, 0 ); - if (error) - goto Fail_Memory; - - ins->twilight.n_points = n_twilight; - - return TT_Err_Ok; - - Fail_Memory: - Instance_Destroy( ins ); - return error; - } - - -/******************************************************************* - * - * Function : Instance_Init - * - * Description : Initialize a fresh new instance. - * Executes the font program if any is found. - * - * Input : _instance the instance object to destroy - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Instance_Init( PInstance ins ) - { - PExecution_Context exec; - - TT_Error error; - PFace face = ins->owner; - - - if ( ins->debug ) - exec = ins->context; - else - exec = New_Context( face ); - /* debugging instances have their own context */ - - if ( !exec ) - return TT_Err_Could_Not_Find_Context; - - ins->GS = Default_GraphicsState; - - ins->numFDefs = 0; - ins->numIDefs = 0; - ins->maxFunc = -1; - ins->maxIns = -1; - - Context_Load( exec, face, ins ); - - exec->callTop = 0; - exec->top = 0; - - exec->period = 64; - exec->phase = 0; - exec->threshold = 0; - - { - PIns_Metrics metrics = &exec->metrics; - - - metrics->x_ppem = 0; - metrics->y_ppem = 0; - metrics->pointSize = 0; - metrics->x_scale1 = 0; - metrics->x_scale2 = 1; - metrics->y_scale1 = 0; - metrics->y_scale2 = 1; - - metrics->ppem = 0; - metrics->scale1 = 0; - metrics->scale2 = 1; - metrics->ratio = 1L << 16; - } - - exec->instruction_trap = FALSE; - - exec->cvtSize = ins->cvtSize; - exec->cvt = ins->cvt; - - exec->F_dot_P = 0x10000; - - /* allow font program execution */ - Set_CodeRange( exec, - TT_CodeRange_Font, - face->fontProgram, - face->fontPgmSize ); - - /* disable CVT and glyph programs coderange */ - Clear_CodeRange( exec, TT_CodeRange_Cvt ); - Clear_CodeRange( exec, TT_CodeRange_Glyph ); - - if ( face->fontPgmSize > 0 ) - { - error = Goto_CodeRange( exec, TT_CodeRange_Font, 0 ); - if ( error ) - goto Fin; - - error = RunIns( exec ); - } - else - error = TT_Err_Ok; - - Fin: - Context_Save( exec, ins ); - - if ( !ins->debug ) - Done_Context( exec ); - /* debugging instances keep their context */ - - ins->valid = FALSE; - - return error; - } - - -/******************************************************************* - * - * Function : Instance_Reset - * - * Description : Resets an instance to a new pointsize/transform. - * Executes the cvt program if any is found. - * - * Input : _instance the instance object to destroy - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Instance_Reset( PInstance ins ) - { - PExecution_Context exec; - - TT_Error error; - ULong i; - UShort j; - PFace face; - - - if ( !ins ) - return TT_Err_Invalid_Instance_Handle; - - if ( ins->valid ) - return TT_Err_Ok; - - face = ins->owner; - - if ( ins->metrics.x_ppem < 1 || - ins->metrics.y_ppem < 1 ) - return TT_Err_Invalid_PPem; - - /* compute new transformation */ - if ( ins->metrics.x_ppem >= ins->metrics.y_ppem ) - { - ins->metrics.scale1 = ins->metrics.x_scale1; - ins->metrics.scale2 = ins->metrics.x_scale2; - ins->metrics.ppem = ins->metrics.x_ppem; - ins->metrics.x_ratio = 1L << 16; - ins->metrics.y_ratio = TT_MulDiv( ins->metrics.y_ppem, - 0x10000, - ins->metrics.x_ppem ); - } - else - { - ins->metrics.scale1 = ins->metrics.y_scale1; - ins->metrics.scale2 = ins->metrics.y_scale2; - ins->metrics.ppem = ins->metrics.y_ppem; - ins->metrics.x_ratio = TT_MulDiv( ins->metrics.x_ppem, - 0x10000, - ins->metrics.y_ppem ); - ins->metrics.y_ratio = 1L << 16; - } - - /* Scale the cvt values to the new ppem. */ - /* We use by default the y ppem to scale the CVT. */ - - for ( i = 0; i < ins->cvtSize; i++ ) - ins->cvt[i] = TT_MulDiv( face->cvt[i], - ins->metrics.scale1, - ins->metrics.scale2 ); - - /* All twilight points are originally zero */ - for ( j = 0; j < ins->twilight.n_points; j++ ) - { - ins->twilight.org[j].x = 0; - ins->twilight.org[j].y = 0; - ins->twilight.cur[j].x = 0; - ins->twilight.cur[j].y = 0; - } - - /* clear storage area */ - for ( i = 0; i < ins->storeSize; i++ ) - ins->storage[i] = 0; - - ins->GS = Default_GraphicsState; - - /* get execution context and run prep program */ - - if ( ins->debug ) - exec = ins->context; - else - exec = New_Context(face); - /* debugging instances have their own context */ - - if ( !exec ) - return TT_Err_Could_Not_Find_Context; - - Context_Load( exec, face, ins ); - - Set_CodeRange( exec, - TT_CodeRange_Cvt, - face->cvtProgram, - face->cvtPgmSize ); - - Clear_CodeRange( exec, TT_CodeRange_Glyph ); - - exec->instruction_trap = FALSE; - - exec->top = 0; - exec->callTop = 0; - - if ( face->cvtPgmSize > 0 ) - { - error = Goto_CodeRange( exec, TT_CodeRange_Cvt, 0 ); - if ( error ) - goto Fin; - - if ( !ins->debug ) - error = RunIns( exec ); - } - else - error = TT_Err_Ok; - - ins->GS = exec->GS; - /* save default graphics state */ - - Fin: - Context_Save( exec, ins ); - - if ( !ins->debug ) - Done_Context( exec ); - /* debugging instances keep their context */ - - if ( !error ) - ins->valid = TRUE; - - return error; - } - - - -/******************************************************************* - * * - * FACE FUNCTIONS * - * * - * * - *******************************************************************/ - -/******************************************************************* - * - * Function : Face_Destroy - * - * Description : The face object destructor. - * - * Input : _face typeless pointer to the face object to destroy - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Face_Destroy( void* _face ) - { - PFace face = (PFace)_face; - UShort n; - - - if ( !face ) - return TT_Err_Ok; - - /* well, we assume that no other thread is using the face */ - /* at this moment, but one is never sure enough. */ - MUTEX_Lock( face->lock ); - - /* first of all, destroys the cached sub-objects */ - Cache_Destroy( &face->instances ); - Cache_Destroy( &face->glyphs ); - - /* destroy the extensions */ -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - Extension_Destroy( face ); -#endif - - /* freeing the collection table */ - FREE( face->ttcHeader.TableDirectory ); - face->ttcHeader.DirCount = 0; - - /* freeing table directory */ - FREE( face->dirTables ); - face->numTables = 0; - - /* freeing the locations table */ - FREE( face->glyphLocations ); - face->numLocations = 0; - - /* freeing the character mapping tables */ - for ( n = 0; n < face->numCMaps; n++ ) - CharMap_Free( face->cMaps + n ); - - FREE( face->cMaps ); - face->numCMaps = 0; - - /* freeing the CVT */ - FREE( face->cvt ); - face->cvtSize = 0; - - /* freeing the horizontal metrics */ - FREE( face->horizontalHeader.long_metrics ); - FREE( face->horizontalHeader.short_metrics ); - - /* freeing the vertical ones, if any */ - if (face->verticalInfo) - { - FREE( face->verticalHeader.long_metrics ); - FREE( face->verticalHeader.short_metrics ); - face->verticalInfo = 0; - } - - /* freeing the programs */ - FREE( face->fontProgram ); - FREE( face->cvtProgram ); - face->fontPgmSize = 0; - face->cvtPgmSize = 0; - - /* freeing the gasp table */ - FREE( face->gasp.gaspRanges ); - face->gasp.numRanges = 0; - - /* freeing the name table */ - Free_TrueType_Names( face ); - - /* freeing the hdmx table */ - Free_TrueType_Hdmx( face ); - - /* TT_Close_Stream( &face->stream ); -- this is performed by the API */ - - /* destroy the mutex */ - MUTEX_Destroy(face->lock); - - return TT_Err_Ok; - } - - -/******************************************************************* - * - * Function : Face_Create - * - * Description : The face object constructor. - * - * Input : _face face record to build - * _input input stream where to load font data - * - * Output : Error code. - * - * NOTE : The input stream is kept in the face object. The - * caller shouldn't destroy it after calling Face_Create(). - * - ******************************************************************/ - -#undef LOAD_ -#define LOAD_( table ) \ - (error = Load_TrueType_##table (face)) != TT_Err_Ok - - - FT_INTERNAL_FUNC( TT_Error ) - Face_Create( void* _face, - void* _input ) - { - PEngine_Instance engine; - - TFont_Input* input = (TFont_Input*)_input; - PFace face = (PFace)_face; - TT_Error error; - - - face->stream = input->stream; - face->engine = input->engine; - - engine = face->engine; - - MUTEX_Create( face->lock ); - - Cache_Create( engine, - engine->objs_instance_class, - &face->instances, - &face->lock ); - - Cache_Create( engine, - engine->objs_glyph_class, - &face->glyphs, - &face->lock ); - - /* Load collection directory if present, then font directory */ - - error = Load_TrueType_Directory( face, input->fontIndex ); - if ( error ) - goto Fail; - - /* Load tables */ - - if ( LOAD_( Header ) || - LOAD_( MaxProfile ) || - LOAD_( Locations ) || - - (error = Load_TrueType_Metrics_Header( face, 0 )) != TT_Err_Ok || - /* load the 'hhea' & 'hmtx' tables at once */ - - LOAD_( CMap ) || - LOAD_( CVT ) || - LOAD_( Programs ) || - LOAD_( Gasp ) || - LOAD_( Names ) || - LOAD_( OS_2 ) || - LOAD_( PostScript ) || - - (error = Load_TrueType_Metrics_Header( face, 1 )) != TT_Err_Ok || - /* try to load the 'vhea' & 'vmtx' at once if present */ - - LOAD_( Hdmx ) ) - - goto Fail; - -#ifdef TT_CONFIG_OPTION_EXTEND_ENGINE - if ( ( error = Extension_Create( face ) ) != TT_Err_Ok ) - return error; -#endif - - return TT_Err_Ok; - - Fail : - Face_Destroy( face ); - return error; - } - -#undef LOAD_ - - -/******************************************************************* - * - * Function : Glyph_Destroy - * - * Description : The glyph object destructor. - * - * Input : _glyph typeless pointer to the glyph record to destroy - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Glyph_Destroy( void* _glyph ) - { - PGlyph glyph = (PGlyph)_glyph; - - - if ( !glyph ) - return TT_Err_Ok; - - glyph->outline.owner = TRUE; - return TT_Done_Outline( &glyph->outline ); - } - - -/******************************************************************* - * - * Function : Glyph_Create - * - * Description : The glyph object constructor. - * - * Input : _glyph glyph record to build. - * _face the glyph's parent face. - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Glyph_Create( void* _glyph, - void* _face ) - { - PFace face = (PFace)_face; - PGlyph glyph = (PGlyph)_glyph; - - - if ( !face ) - return TT_Err_Invalid_Face_Handle; - - if ( !glyph ) - return TT_Err_Invalid_Glyph_Handle; - - glyph->face = face; - - /* XXX: Don't forget the space for the 2 phantom points */ - return TT_New_Outline( glyph->face->maxPoints + 2, - glyph->face->maxContours, - &glyph->outline ); - } - - -/******************************************************************* - * - * Function : Scale_X - * - * Description : scale an horizontal distance from font - * units to 26.6 pixels - * - * Input : metrics pointer to metrics - * x value to scale - * - * Output : scaled value - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Pos ) - Scale_X( PIns_Metrics metrics, - TT_Pos x ) - { - return TT_MulDiv( x, metrics->x_scale1, metrics->x_scale2 ); - } - - -/******************************************************************* - * - * Function : Scale_Y - * - * Description : scale a vertical distance from font - * units to 26.6 pixels - * - * Input : metrics pointer to metrics - * y value to scale - * - * Output : scaled value - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Pos ) - Scale_Y( PIns_Metrics metrics, - TT_Pos y ) - { - return TT_MulDiv( y, metrics->y_scale1, metrics->y_scale2 ); - } - - -/******************************************************************* - * - * Function : TTObjs_Init - * - * Description : The TTObjs component initializer. Creates the - * object cache classes, as well as the face record - * cache. - * - * Input : engine engine instance - * - * Output : Error code. - * - ******************************************************************/ - - static - const TCache_Class objs_face_class = - { - sizeof ( TFace ), - -1, - Face_Create, - Face_Destroy, - NULL, - NULL - }; - - static - const TCache_Class objs_instance_class = - { - sizeof ( TInstance ), - -1, - Instance_Create, - Instance_Destroy, - NULL, - NULL - }; - - /* Note that we use a cache size of 1 for the execution context. */ - /* This is to avoid re-creating a new context each time we */ - /* change one instance's attribute (resolution and/or char sizes) */ - /* or when we load a glyph. */ - - static - const TCache_Class objs_exec_class = - { - sizeof ( TExecution_Context ), - 1, - Context_Create, - Context_Destroy, - NULL, - NULL - }; - - static - const TCache_Class objs_glyph_class = - { - sizeof ( TGlyph ), - -1, - Glyph_Create, - Glyph_Destroy, - NULL, - NULL - }; - - - FT_INTERNAL_FUNC( TT_Error ) - TTObjs_Init( PEngine_Instance engine ) - { - PCache face_cache, exec_cache; - TT_Error error; - - - face_cache = 0; - exec_cache = 0; - - if ( ALLOC( face_cache, sizeof ( TCache ) ) || - ALLOC( exec_cache, sizeof ( TCache ) ) ) - goto Fail; - - /* create face cache */ - error = Cache_Create( engine, (PCache_Class)&objs_face_class, - face_cache, &engine->lock ); - if ( error ) - goto Fail; - - engine->objs_face_cache = face_cache; - - error = Cache_Create( engine, (PCache_Class)&objs_exec_class, - exec_cache, &engine->lock ); - if ( error ) - goto Fail; - - engine->objs_exec_cache = exec_cache; - - engine->objs_face_class = (PCache_Class)&objs_face_class; - engine->objs_instance_class = (PCache_Class)&objs_instance_class; - engine->objs_execution_class = (PCache_Class)&objs_exec_class; - engine->objs_glyph_class = (PCache_Class)&objs_glyph_class; - - goto Exit; - - Fail: - FREE( face_cache ); - FREE( exec_cache ); - - Exit: - return error; - } - - -/******************************************************************* - * - * Function : TTObjs_Done - * - * Description : The TTObjs component finalizer. - * - * Input : engine engine instance - * - * Output : Error code. - * - ******************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - TTObjs_Done( PEngine_Instance engine ) - { - /* destroy all active faces and contexts before releasing the */ - /* caches */ - Cache_Destroy( (TCache*)engine->objs_exec_cache ); - Cache_Destroy( (TCache*)engine->objs_face_cache ); - - /* Now frees caches and cache classes */ - FREE( engine->objs_exec_cache ); - FREE( engine->objs_face_cache ); - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttobjs.h b/Build/source/libs/freetype/lib/ttobjs.h deleted file mode 100644 index 0457609e366..00000000000 --- a/Build/source/libs/freetype/lib/ttobjs.h +++ /dev/null @@ -1,881 +0,0 @@ -/******************************************************************* - * - * ttobjs.h 1.0 - * - * Objects definition unit. - * - * 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. - * - ******************************************************************/ - -#ifndef TTOBJS_H -#define TTOBJS_H - -#include "ttconfig.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttcache.h" -#include "tttables.h" -#include "ttcmap.h" - -#ifdef __cplusplus - extern "C" { -#endif - -/* */ -/* This file contains the definitions and methods of the four */ -/* kinds of objects managed by the FreeType engine. These are: */ -/* */ -/* */ -/* Face objects: */ -/* */ -/* There is always one face object per opened TrueType font */ -/* file, and only one. The face object contains data that is */ -/* independent of current transform/scaling/rotation and */ -/* pointsize, or glyph index. This data is made of several */ -/* critical tables that are loaded on face object creation. */ -/* */ -/* A face object tracks all active and recycled objects of */ -/* the instance and execution context classes. Destroying a face */ -/* object will automatically destroy all associated instances. */ -/* */ -/* */ -/* Instance objects: */ -/* */ -/* An instance object always relates to a given face object, */ -/* known as its 'parent' or 'owner', and contains only the */ -/* data that is specific to one given pointsize/transform of */ -/* the face. You can only create an instance from a face object. */ -/* */ -/* An instance's current transform/pointsize can be changed */ -/* at any time using a single high-level API call, */ -/* TT_Reset_Instance(). */ -/* */ -/* Execution Context objects: */ -/* */ -/* An execution context (or context in short) relates to a face. */ -/* It contains the data and tables that are necessary to load */ -/* and hint (i.e. execute the glyph instructions of) one glyph. */ -/* A context is a transient object that is queried/created on */ -/* the fly: client applications never deal with them directly. */ -/* */ -/* */ -/* Glyph objects: */ -/* */ -/* A glyph object contains only the minimal glyph information */ -/* needed to render one glyph correctly. This means that a glyph */ -/* object really contains tables that are sized to hold the */ -/* contents of _any_ glyph of a given face. A client application */ -/* can usually create one glyph object for a given face, then use */ -/* it for all subsequent loads. */ -/* */ -/* Here is an example of a client application : */ -/* (NOTE: No error checking performed here!) */ -/* */ -/* */ -/* TT_Face face; -- face handle */ -/* TT_Instance ins1, ins2; -- two instance handles */ -/* TT_Glyph glyph; -- glyph handle */ -/* */ -/* TT_Init_FreeType(); */ -/* */ -/* -- Initialize the engine. This must be done prior to _any_ */ -/* operation. */ -/* */ -/* TT_Open_Face( "/some/face/name.ttf", &face ); */ -/* */ -/* -- create the face object. This call opens the font file */ -/* */ -/* TT_New_Instance( face, &ins1 ); */ -/* TT_New_Instance( face, &ins2 ); */ -/* */ -/* TT_Set_Instance_PointSize( ins1, 8 ); */ -/* TT_Set_Instance_PointSize( ins2, 12 ); */ -/* */ -/* -- create two distinct instances of the same face */ -/* -- ins1 is pointsize 8 at resolution 96 dpi */ -/* -- ins2 is pointsize 12 at resolution 96 dpi */ -/* */ -/* TT_New_Glyph( face, &glyph ); */ -/* */ -/* -- create a new glyph object which will receive the contents */ -/* of any glyph of 'face' */ -/* */ -/* TT_Load_Glyph( ins1, glyph, 64, DEFAULT_GLYPH_LOAD ); */ -/* */ -/* -- load glyph indexed 64 at pointsize 8 in the 'glyph' object */ -/* -- NOTE: This call will fail if the instance and the glyph */ -/* do not relate to the same face object. */ -/* */ -/* TT_Get_Outline( glyph, &outline ); */ -/* */ -/* -- extract the glyph outline from the object and copies it */ -/* to the 'outline' record */ -/* */ -/* TT_Get_Metrics( glyph, &metrics ); */ -/* */ -/* -- extract the glyph metrics and put them into the 'metrics' */ -/* record */ -/* */ -/* TT_Load_Glyph( ins2, glyph, 64, DEFAULT_GLYPH_LOAD ); */ -/* */ -/* -- load the same glyph at pointsize 12 in the 'glyph' object */ -/* */ -/* */ -/* TT_Close_Face( &face ); */ -/* */ -/* -- destroy the face object. This will destroy 'ins1' and */ -/* 'ins2'. However, the glyph object will still be available */ -/* */ -/* TT_Done_FreeType(); */ -/* */ -/* -- Finalize the engine. This will also destroy all pending */ -/* glyph objects (here 'glyph'). */ - - struct TFace_; - struct TInstance_; - struct TExecution_Context_; - struct TGlyph_; - - typedef struct TFace_ TFace; - typedef TFace* PFace; - - typedef struct TInstance_ TInstance; - typedef TInstance* PInstance; - - typedef struct TExecution_Context_ TExecution_Context; - typedef TExecution_Context* PExecution_Context; - - typedef struct TGlyph_ TGlyph; - typedef TGlyph* PGlyph; - - - /*************************************************************/ - /* */ - /* ADDITIONAL SUBTABLES */ - /* */ - /* These tables are not precisely defined by the specs */ - /* but their structures is implied by the TrueType font */ - /* file layout. */ - /* */ - /*************************************************************/ - - /* Graphics State */ - /* */ - /* The Graphics State (GS) is managed by the */ - /* instruction field, but does not come from */ - /* the font file. Thus, we can use 'int's */ - /* where needed. */ - - struct TGraphicsState_ - { - UShort rp0; - UShort rp1; - UShort rp2; - - TT_UnitVector dualVector; - TT_UnitVector projVector; - TT_UnitVector freeVector; - - Long loop; - TT_F26Dot6 minimum_distance; - Int round_state; - - Bool auto_flip; - TT_F26Dot6 control_value_cutin; - TT_F26Dot6 single_width_cutin; - TT_F26Dot6 single_width_value; - Short delta_base; - Short delta_shift; - - Byte instruct_control; - Bool scan_control; - Int scan_type; - - UShort gep0; - UShort gep1; - UShort gep2; - }; - - typedef struct TGraphicsState_ TGraphicsState; - - - FT_INTERNAL_DEF( const TGraphicsState ) Default_GraphicsState; - - - /*************************************************************/ - /* */ - /* EXECUTION SUBTABLES */ - /* */ - /* These sub-tables relate to instruction execution. */ - /* */ - /*************************************************************/ - -#define 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 */ - -#define TT_CodeRange_Font 1 -#define TT_CodeRange_Cvt 2 -#define TT_CodeRange_Glyph 3 - - - struct TCodeRange_ - { - PByte Base; - ULong Size; - }; - - typedef struct TCodeRange_ TCodeRange; - typedef TCodeRange* PCodeRange; - - - /* Defintion of a code range */ - /* */ - /* Code ranges can be resident to a glyph (i.e. the Font Program) */ - /* while some others are volatile (Glyph instructions). */ - /* Tracking the state and presence of code ranges allows function */ - /* and instruction definitions within a code range to be forgotten */ - /* when the range is discarded. */ - - typedef TCodeRange TCodeRangeTable[MAX_CODE_RANGES]; - - /* defines a function/instruction definition record */ - - struct TDefRecord_ - { - Int Range; /* in which code range is it located ? */ - ULong Start; /* where does it start ? */ - Int Opc; /* function #, or instruction code */ - Bool Active; /* is it active ? */ - }; - - typedef struct TDefRecord_ TDefRecord; - typedef TDefRecord* PDefRecord; - typedef TDefRecord* PDefArray; - - /* defines a call record, used to manage function calls. */ - - struct TCallRecord_ - { - Int Caller_Range; - ULong Caller_IP; - Long Cur_Count; - ULong Cur_Restart; - }; - - typedef struct TCallRecord_ TCallRecord; - typedef TCallRecord* PCallRecord; - typedef TCallRecord* PCallStack; /* defines a simple call stack */ - - - /* This type defining a set of glyph points will be used to represent */ - /* each zone (regular and twilight) during instructions decoding. */ - struct TGlyph_Zone_ - { - UShort n_points; /* number of points in zone */ - Short n_contours; /* number of contours */ - - TT_Vector* org; /* original points coordinates */ - TT_Vector* cur; /* current points coordinates */ - - Byte* touch; /* current touch flags */ - UShort* contours; /* contour end points */ - }; - - typedef struct TGlyph_Zone_ TGlyph_Zone; - typedef TGlyph_Zone* PGlyph_Zone; - - - -#ifndef TT_CONFIG_OPTION_STATIC_INTERPRETER - /* Normal (indexed) implementation */ - -#define EXEC_OPS PExecution_Context exc, -#define EXEC_OP PExecution_Context exc -#define EXEC_ARGS exc, -#define EXEC_ARG exc - -#else - /* Static implementation, with one shared execution context. */ - -#define EXEC_OPS /* [nothing] */ -#define EXEC_OP /* void */ -#define EXEC_ARGS /* [nothing] */ -#define EXEC_ARG /* void */ - -#endif /* TT_CONFIG_OPTION_STATIC_INTERPRETER */ - - - /* Rounding function, as used by the interpreter */ - typedef TT_F26Dot6 (*TRound_Function)( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ); - - /* Point displacement along the freedom vector routine, as */ - /* used by the interpreter */ - typedef void (*TMove_Function)( EXEC_OPS PGlyph_Zone zone, - UShort point, - TT_F26Dot6 distance ); - - /* Distance projection along one of the proj. vectors, as used */ - /* by the interpreter */ - typedef TT_F26Dot6 (*TProject_Function)( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ); - - /* reading a cvt value. Take care of non-square pixels when needed */ - typedef TT_F26Dot6 (*TGet_CVT_Function)( EXEC_OPS ULong index ); - - /* setting or moving a cvt value. Take care of non-square pixels */ - /* when needed */ - typedef void (*TSet_CVT_Function)( EXEC_OPS ULong index, - TT_F26Dot6 value ); - - /* subglyph transformation record */ - struct TTransform_ - { - TT_Fixed xx, xy; /* transformation */ - TT_Fixed yx, yy; /* matrix */ - TT_F26Dot6 ox, oy; /* offsets */ - }; - - typedef struct TTransform_ TTransform; - typedef TTransform* PTransform; - - /* subglyph loading record. Used to load composite components */ - struct TSubglyph_Record_ - { - Long index; /* subglyph index; initialized with -1 */ - Bool is_scaled; /* is the subglyph scaled? */ - Bool is_hinted; /* should it be hinted? */ - Bool preserve_pps; /* preserve phantom points? */ - - Long file_offset; - - TT_Big_Glyph_Metrics metrics; - - TGlyph_Zone zone; - - Long arg1; /* first argument */ - Long arg2; /* second argument */ - - UShort element_flag; /* current load element flag */ - - TTransform transform; /* transform */ - - TT_Vector pp1, pp2; /* phantom points */ - - }; - - typedef struct TSubglyph_Record_ TSubglyph_Record; - typedef TSubglyph_Record* PSubglyph_Record; - typedef TSubglyph_Record* PSubglyph_Stack; - - /* A note regarding non-squared pixels: */ - /* */ - /* (This text will probably go into some docs at some time, for */ - /* now, it is kept there 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, and some other are used in 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, */ - /* ratop = 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 instance and execution context objects */ - struct TIns_Metrics_ - { - TT_F26Dot6 pointSize; /* point size. 1 point = 1/72 inch. */ - - UShort x_resolution; /* device horizontal resolution in dpi. */ - UShort y_resolution; /* device vertical resolution in dpi. */ - - UShort x_ppem; /* horizontal pixels per EM */ - UShort y_ppem; /* vertical pixels per EM */ - - Long x_scale1; - Long x_scale2; /* used to scale FUnits to fractional pixels */ - - Long y_scale1; - Long y_scale2; /* used to scale FUnits to fractional pixels */ - - /* for non-square pixels */ - Long x_ratio; - Long y_ratio; - - UShort ppem; /* maximum ppem size */ - Long ratio; /* current ratio */ - Long scale1; - Long scale2; /* scale for ppem */ - - TT_F26Dot6 compensations[4]; /* device-specific compensations */ - - Bool rotated; /* `is the glyph rotated?'-flag */ - Bool stretched; /* `is the glyph stretched?'-flag */ - }; - - typedef struct TIns_Metrics_ TIns_Metrics; - typedef TIns_Metrics* PIns_Metrics; - - - - /***********************************************************************/ - /* */ - /* FreeType Face Type */ - /* */ - /***********************************************************************/ - - struct TFace_ - { - /* parent engine instance for the face object */ - PEngine_Instance engine; - - /* i/o stream */ - TT_Stream stream; - - /* used only by the threaded builds of the library */ - TMutex lock; - - /* TrueType collection header, if any was found */ - TTTCHeader ttcHeader; - - /* maximum profile table, as found in the TrueType file */ - TMaxProfile maxProfile; - - /* Note: */ - /* it seems that some maximum values cannot be */ - /* taken directly from this table, but rather by */ - /* combining some of its fields; e.g. the max. */ - /* number of points seems to be given by */ - /* MAX( maxPoints, maxCompositePoints ) */ - /* */ - /* For this reason, we define later our own */ - /* max values that are used to load and allocate */ - /* further tables. */ - - TT_Header fontHeader; /* the font header, as */ - /* found in the TTF file */ - TT_Horizontal_Header horizontalHeader; /* the horizontal header */ - - Bool verticalInfo; /* True when vertical table */ - TT_Vertical_Header verticalHeader; /* is present in the font */ - - TT_OS2 os2; /* 'OS/2' table */ - - TT_Postscript postscript; /* 'Post' table */ - - TT_Hdmx hdmx; /* 'Hdmx' table */ - - TName_Table nameTable; /* name table */ - - TGasp gasp; /* the 'gasp' table */ - - /* The directory of TrueType tables for this typeface */ - UShort numTables; - PTableDirEntry dirTables; - - /* The directory of character mappings table for */ - /* this typeface */ - UShort numCMaps; - PCMapTable cMaps; - - /* The glyph locations table */ - ULong numLocations; /* UShort is not enough */ -#ifndef TT_HUGE_PTR - PStorage glyphLocations; -#else - Storage TT_HUGE_PTR * glyphLocations; -#endif - - /* NOTE : The "hmtx" is now part of the horizontal header */ - - /* the font program, if any */ - ULong fontPgmSize; - PByte fontProgram; - - /* the cvt program, if any */ - ULong cvtPgmSize; - PByte cvtProgram; - - /* the original, unscaled, control value table */ - ULong cvtSize; - PShort cvt; - - /* The following values _must_ be set by the */ - /* maximum profile loader */ - - UShort numGlyphs; /* the face's total number of glyphs */ - UShort maxPoints; /* max glyph points number, simple and composite */ - UShort maxContours; /* max glyph contours numb, simple and composite */ - UShort maxComponents; /* max components in a composite glyph */ - - /* the following are object caches to track active */ - /* and recycled instances and execution contexts */ - /* objects. See 'ttcache.h' */ - - TCache instances; /* current instances for this face */ - TCache glyphs; /* current glyph containers for this face */ - - - /* A typeless pointer to the face object extensions defined */ - /* in the 'ttextend.*' files. */ - void* extension; - Int n_extensions; /* number of extensions */ - - /* Use extensions to provide additional capabilities to the */ - /* engine. Read the developer's guide in the documentation */ - /* directory to know how to do that. */ - - /* a generic pointer for client use - see TT_Set/Get_Face_Pointer */ - void* generic; - }; - - - - /***********************************************************************/ - /* */ - /* FreeType Instance Type */ - /* */ - /***********************************************************************/ - - struct TInstance_ - { - PFace owner; /* face object */ - - Bool valid; - - TIns_Metrics metrics; - - UShort numFDefs; /* number of function definitions */ - UShort maxFDefs; - PDefArray FDefs; /* table of FDefs entries */ - - UShort numIDefs; /* number of instruction definitions */ - UShort maxIDefs; - PDefArray IDefs; /* table of IDefs entries */ - - Int maxFunc; /* maximum function definition id */ - Int maxIns; /* maximum instruction definition id */ - - TCodeRangeTable codeRangeTable; - - TGraphicsState GS; - TGraphicsState default_GS; - - ULong cvtSize; /* the scaled control value table */ - PLong cvt; - - ULong storeSize; /* The storage area is now part of the */ - PLong storage; /* instance */ - - TGlyph_Zone 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 */ - - Bool debug; - PExecution_Context context; - - /* a generic pointer for client use - see TT_Set/Get_Instance_Pointer */ - void* generic; - }; - - - /***********************************************************************/ - /* */ - /* FreeType Execution Context Type */ - /* */ - /***********************************************************************/ - - struct TExecution_Context_ - { - PFace face; - PInstance instance; - - /* instructions state */ - - TT_Error error; /* last execution error */ - - Long top; /* top of exec. stack */ - - ULong stackSize; /* size of exec. stack */ - PStorage stack; /* current exec. stack */ - - Long args; - ULong new_top; /* new top after exec. */ - - TGlyph_Zone zp0, /* zone records */ - zp1, - zp2, - pts, - twilight; - - TIns_Metrics metrics; /* instance metrics */ - - TGraphicsState GS; /* current graphics state */ - - Int curRange; /* current code range number */ - PByte code; /* current code range */ - ULong IP; /* current instruction pointer */ - ULong codeSize; /* size of current range */ - - Byte opcode; /* current opcode */ - Int length; /* length of current opcode */ - - Bool step_ins; /* true if the interpreter must */ - /* increment IP after ins. exec */ - ULong cvtSize; - PLong cvt; - - ULong glyphSize; /* glyph instructions buffer size */ - PByte glyphIns; /* glyph instructions buffer */ - - UShort numFDefs; /* number of function defs */ - UShort maxFDefs; /* maximum number of function defs */ - PDefRecord FDefs; /* table of FDefs entries */ - - UShort numIDefs; /* number of instruction defs */ - UShort maxIDefs; /* maximum number of instruction defs */ - PDefRecord IDefs; /* table of IDefs entries */ - - Int maxFunc; - Int maxIns; - - Int callTop, /* top of call stack during execution */ - callSize; /* size of call stack */ - PCallStack callStack; /* call stack */ - - UShort maxPoints; /* capacity of this context's "pts" */ - UShort maxContours; /* record, expressed in points and */ - /* contours.. */ - - TCodeRangeTable codeRangeTable; /* table of valid coderanges */ - /* useful for the debugger */ - - ULong storeSize; /* size of current storage */ - PLong storage; /* storage area */ - - TT_F26Dot6 period; /* values used for the */ - TT_F26Dot6 phase; /* 'SuperRounding' */ - TT_F26Dot6 threshold; - - /* this seems to be unused */ -#if 0 - Int cur_ppem; /* ppem along the current proj vector */ -#endif - Long scale1; /* scaling values along the current */ - Long scale2; /* projection vector too.. */ - Bool cached_metrics; /* the ppem is computed lazily. used */ - /* to trigger computation when needed */ - - Bool instruction_trap; /* If True, the interpreter will */ - /* exit after each instruction */ - - TGraphicsState default_GS; /* graphics state resulting from */ - /* the prep program */ - Bool is_composite; /* ture if the glyph is composite */ - - Bool pedantic_hinting; /* if true, read and write array */ - /* bounds faults halt the hinting */ - - /* latest interpreter additions */ - - Long F_dot_P; /* dot product of freedom and projection */ - /* vectors */ - TRound_Function func_round; /* current rounding function */ - - TProject_Function func_project, /* current projection function */ - func_dualproj, /* current dual proj. function */ - func_freeProj; /* current freedom proj. func */ - - TMove_Function func_move; /* current point move function */ - - TGet_CVT_Function func_read_cvt; /* read a cvt entry */ - TSet_CVT_Function func_write_cvt; /* write a cvt entry (in pixels) */ - TSet_CVT_Function func_move_cvt; /* incr a cvt entry (in pixels) */ - - ULong loadSize; - PSubglyph_Stack loadStack; /* loading subglyph stack */ - - }; - - - /***********************************************************************/ - /* */ - /* FreeType Glyph Object Type */ - /* */ - /***********************************************************************/ - - struct TGlyph_ - { - PFace face; - TT_Big_Glyph_Metrics metrics; - TT_Outline outline; - }; - - - /* The following type is used to load a font from a collection. */ - /* See Face_Create in ttobjs.c */ - - struct TFont_Input_ - { - TT_Stream stream; /* input stream */ - ULong fontIndex; /* index of font in collection */ - PEngine_Instance engine; /* parent engine instance */ - - }; - - typedef struct TFont_Input_ TFont_Input; - - - /********************************************************************/ - /* */ - /* Code Range Functions */ - /* */ - /********************************************************************/ - - /* Goto a specified coderange */ - FT_INTERNAL_DEF( TT_Error ) - Goto_CodeRange( PExecution_Context exec, - Int range, - ULong IP ); - -#if 0 - /* Return a pointer to a given coderange record. */ - /* Used only by the debugger. */ - FT_INTERNAL_DEF( PCodeRange ) - Get_CodeRange( PExecution_Context exec, - Int range ); -#endif - - /* Set a given code range properties */ - FT_INTERNAL_DEF( TT_Error ) - Set_CodeRange( PExecution_Context exec, - Int range, - void* base, - ULong length ); - - /* Clear a given coderange */ - FT_INTERNAL_DEF( TT_Error ) - Clear_CodeRange( PExecution_Context exec, Int range ); - - - FT_INTERNAL_DEF( PExecution_Context ) - New_Context( PFace face ); - - FT_INTERNAL_DEF( TT_Error ) - Done_Context( PExecution_Context exec ); - - - FT_INTERNAL_DEF( TT_Error ) - Context_Load( PExecution_Context exec, - PFace face, - PInstance ins ); - - FT_INTERNAL_DEF( TT_Error ) - Context_Save( PExecution_Context exec, - PInstance ins ); - - FT_INTERNAL_DEF( TT_Error ) - Context_Run( PExecution_Context exec, - Bool debug ); - - FT_INTERNAL_DEF( TT_Error ) - Instance_Init( PInstance ins ); - - FT_INTERNAL_DEF( TT_Error ) - Instance_Reset( PInstance ins ); - - - /********************************************************************/ - /* */ - /* Handy scaling functions */ - /* */ - /********************************************************************/ - - FT_INTERNAL_DEF( TT_Pos ) - Scale_X( PIns_Metrics metrics, - TT_Pos x ); - FT_INTERNAL_DEF( TT_Pos ) - Scale_Y( PIns_Metrics metrics, - TT_Pos y ); - - /********************************************************************/ - /* */ - /* Component Initializer/Finalizer */ - /* */ - /* Called from 'freetype.c' */ - /* The component must create and register the face, instance and */ - /* execution context cache classes before any object can be */ - /* managed. */ - /* */ - /********************************************************************/ - - FT_INTERNAL_DEF( TT_Error ) - TTObjs_Init( PEngine_Instance engine ); - FT_INTERNAL_DEF( TT_Error ) - TTObjs_Done( PEngine_Instance engine ); - -#ifdef __cplusplus - } -#endif - -#endif /* TTOBJS_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttraster.c b/Build/source/libs/freetype/lib/ttraster.c deleted file mode 100644 index e8024546423..00000000000 --- a/Build/source/libs/freetype/lib/ttraster.c +++ /dev/null @@ -1,2725 +0,0 @@ -/******************************************************************* - * - * ttraster.c 1.5 - * - * The FreeType glyph rasterizer (body). - * - * 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. - * - * NOTES: - * - * This version supports the following: - * - * - direct grayscaling - * - sub-banding - * - drop-out modes 4 and 5 - * - second pass for complete drop-out control (bitmap only) - * - variable precision - * - * Changes between 1.5 and 1.3: - * - * Mainly performance tunings: - * - * - Line_Down() and Bezier_Down() now use the functions Line_Up() - * and Bezier_Up() to do their work. - * - optimized Split_Bezier() - * - optimized linked lists used during sweeps - * - ******************************************************************/ - -#include "ttraster.h" -#include "ttdebug.h" -#include "tttypes.h" -#include "ttengine.h" -#include "ttcalc.h" /* for TT_MulDiv only */ - -#include "ttmemory.h" /* only used to allocate memory on engine init */ - -/* required by the tracing mode */ -#undef TT_COMPONENT -#define TT_COMPONENT trace_raster - - -/* The default render pool size */ -#define RASTER_RENDER_POOL 64000 - -/* The size of the two-lines intermediate bitmap used */ -/* for anti-aliasing */ -#define RASTER_GRAY_LINES 2048 - - -#define Raster_Err_None TT_Err_Ok -#define Raster_Err_Not_Ini TT_Err_Raster_Not_Initialized -#define Raster_Err_Overflow TT_Err_Raster_Pool_Overflow -#define Raster_Err_Neg_Height TT_Err_Raster_Negative_Height -#define Raster_Err_Invalid TT_Err_Raster_Invalid_Value -#define Raster_Err_Gray_Unsupported TT_Err_Raster_Gray_Unsupported - - -/* FMulDiv means "Fast MulDiv", it is uses in case where 'b' is typically */ -/* a small value and the result of (a*b) is known to fit in 32 bits. */ -#define FMulDiv( a, b, c ) ( (a) * (b) / (c) ) - -/* On the other hand, SMulDiv is for "Slow MulDiv", and is used typically */ -/* for clipping computations. It simply uses the TT_MulDiv() function */ -/* defined in "ttcalc.h" */ -/* */ -/* So, the following definition fits the bill nicely, and we don't need */ -/* to use the one in 'ttcalc' anymore, even for 16-bit systems... */ -#define SMulDiv TT_MulDiv - - -/* Define DEBUG_RASTER if you want to generate a debug version of the */ -/* rasterizer. This will progressively draw the glyphs while all the */ -/* computation are done directly on the graphics screen (the glyphs */ -/* will be inverted). */ - -/* Note that DEBUG_RASTER should only be used for debugging with b/w */ -/* rendering, not with gray levels. */ - -/* The definition of DEBUG_RASTER should appear in the file */ -/* "ttconfig.h". */ - -#ifdef DEBUG_RASTER - extern Char* Vio; /* A pointer to VRAM or display buffer */ -#endif - - -/* 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 - -#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 */ - - /* States of each line, arc and profile */ - enum TStates_ - { - Unknown, - Ascending, - Descending, - Flat - }; - - typedef enum TStates_ TStates; - - struct TProfile_; - typedef struct TProfile_ TProfile; - typedef TProfile* PProfile; - - struct TProfile_ - { - TT_F26Dot6 X; /* current coordinate during sweep */ - PProfile link; /* link to next profile - various purpose */ - PStorage 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 */ - - UShort 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; - - - /* I use the classic trick of two dummy records for the head and tail */ - /* of a linked list; this reduces tests in insertion/deletion/sorting. */ - /* NOTE: used during sweeps only. */ - - /* Simple record used to implement a stack of bands, required */ - /* by the sub-banding mechanism */ - - struct TBand_ - { - Short y_min; /* band's minimum */ - Short y_max; /* band's maximum */ - }; - - typedef struct TBand_ TBand; - - -#define AlignProfileSize \ - (( sizeof(TProfile)+sizeof(long)-1 ) / sizeof(long)) - - - /* Left fill bitmask */ - static const Byte LMask[8] = - { 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01 }; - - /* Right fill bitmask */ - static const Byte RMask[8] = - { 0x80, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC, 0xFE, 0xFF }; - - /* 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, - TT_F26Dot6 x1, - TT_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 ) - -#ifdef DEBUG_RASTER -#define DEBUG_PSET Pset() -#else -#define DEBUG_PSET -#endif - - struct TPoint_ - { - Long x, y; - }; - - typedef struct TPoint_ TPoint; - - - /* 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 */ - - PStorage buff; /* The profiles buffer */ - PStorage sizeBuff; /* Render pool size */ - PStorage maxBuff; /* Profiles buffer size */ - PStorage top; /* Current cursor in buffer */ - - TT_Error error; - - PByte flags; /* current flags table */ - PUShort outs; /* current outlines table */ - - UShort nPoints; /* number of points in current glyph */ - Short nContours; /* number of contours in current glyph */ - 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 */ - - TT_Raster_Map target; /* description of target bit/pixmap */ - - 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; - - TT_Vector* coords; - - Byte dropOutControl; /* current drop_out control method */ - - Byte grays[5]; /* Palette of gray levels used for render */ - - Byte* 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' */ - - 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[2 * 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 */ - }; - - -#ifdef TT_CONFIG_OPTION_STATIC_RASTER - - static TRaster_Instance cur_ras; -#define ras cur_ras - -#else - -#define ras (*raster) - -#endif /* TT_STATIC_RASTER */ - - -#ifdef DEBUG_RASTER - - /************************************************/ - /* */ - /* Pset: */ - /* */ - /* Used for debugging only. Plots a point */ - /* in VRAM during rendering (not afterwards). */ - /* */ - /* NOTE: This procedure relies on the value */ - /* of cProfile->start, which may not */ - /* be set when Pset is called sometimes. */ - /* This will usually result in a dot */ - /* plotted on the first screen scanline */ - /* (far away its original position). */ - /* */ - /* This "bug" reflects nothing wrong */ - /* in the current implementation, and */ - /* the bitmap is rendered correctly, */ - /* so don't panic if you see 'flying' */ - /* dots in debugging mode. */ - /* */ - /* - David */ - /* */ - /************************************************/ - - static void Pset( RAS_ARG ) - { - Long o; - Long x; - - - x = ras.top[-1]; - - switch ( ras.cProfile->flow ) - { - case TT_Flow_Up: - o = Vio_ScanLineWidth * - ( ras.top-ras.cProfile->offset + ras.cProfile->start ) + - ( x / (ras.precision*8) ); - break; - - case TT_Flow_Down: - o = Vio_ScanLineWidth * - ( ras.cProfile->start-ras.top + ras.cProfile->offset ) + - ( x / (ras.precision*8) ); - break; - } - - if ( o > 0 ) - Vio[o] |= (unsigned)0x80 >> ( (x/ras.precision) & 7 ); - } - - - static void Clear_Band( RAS_ARGS Int y1, Int y2 ) - { - MEM_Set( Vio + y1*Vio_ScanLineWidth, (y2-y1+1)*Vio_ScanLineWidth, 0 ); - } - -#endif /* DEBUG_RASTER */ - - -/************************************************************************/ -/* */ -/* 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 Bool 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; - } - - PTRACE7(( "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 state/orientation of the new Profile */ -/* */ -/* Returns: 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: - ras.cProfile->flow = TT_Flow_Up; - PTRACE7(( "New ascending profile = %lx\n", (long)ras.cProfile )); - break; - - case Descending: - ras.cProfile->flow = TT_Flow_Down; - PTRACE7(( "New descending profile = %lx\n", (long)ras.cProfile )); - break; - - default: - PTRACE0(( "Invalid profile direction in Raster:New_Profile !!\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. */ -/* */ -/* Input: None */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE in case of overflow or incoherency. */ -/* */ -/****************************************************************************/ - - static Bool End_Profile( RAS_ARG ) - { - Long h; - PProfile oldProfile; - - - h = ras.top - ras.cProfile->offset; - - if ( h < 0 ) - { - PTRACE0(( "Negative height encountered in End_Profile!\n" )); - ras.error = Raster_Err_Neg_Height; - return FAILURE; - } - - if ( h > 0 ) - { - PTRACE1(( "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 ) - { - PTRACE1(( "overflow in End_Profile\n" )); - ras.error = Raster_Err_Overflow; - return FAILURE; - } - - ras.joint = FALSE; - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Insert_Y_Turn */ -/* */ -/* Description: Insert a salient into the sorted list placed on top */ -/* of the render pool */ -/* */ -/* Input: New y scanline position */ -/* */ -/****************************************************************************/ - - static - Bool Insert_Y_Turn( RAS_ARGS Int y ) - { - PStorage 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 = y_turns[n]; - y_turns[n] = y; - y = y2; - n--; - } - - if ( n < 0 ) - { - if (ras.maxBuff <= ras.top) - { - ras.error = Raster_Err_Overflow; - return FAILURE; - } - ras.maxBuff--; - ras.numTurns++; - ras.sizeBuff[-ras.numTurns] = y; - } - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Finalize_Profile_Table */ -/* */ -/* Description: Adjusts all links in the Profiles list. */ -/* */ -/* Input: None */ -/* */ -/* Returns: None. */ -/* */ -/****************************************************************************/ - - static - Bool Finalize_Profile_Table( RAS_ARG ) - { - Long 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 TT_Flow_Down: - bottom = p->start - p->height+1; - top = p->start; - p->start = bottom; - p->offset += p->height-1; - break; - - case TT_Flow_Up: - default: - bottom = p->start; - top = 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_Bezier */ -/* */ -/* Description: Subdivides one Bezier arc into two joint */ -/* sub-arcs in the Bezier stack. */ -/* */ -/* Input: None (subdivided bezier is taken from the top of the */ -/* stack). */ -/* */ -/* Returns: None. */ -/* */ -/* */ -/* 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_Bezier( 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 too good at common expression */ - /* substitution and instruction scheduling ;-) */ - } - - -/****************************************************************************/ -/* */ -/* Function: Push_Bezier */ -/* */ -/* Description: Clears the Bezier stack and pushes a new arc on top of it. */ -/* */ -/* Input: x1,y1 x2,y2 x3,y3 new Bezier arc */ -/* */ -/* Returns: None. */ -/* */ -/****************************************************************************/ - - static void Push_Bezier( RAS_ARGS Long x1, Long y1, - Long x2, Long y2, - Long x3, Long y3 ) - { - ras.arc = ras.arcs; - ras.arc[2].x = x1; ras.arc[2].y = y1; - ras.arc[1].x = x2; ras.arc[1].y = y2; - ras.arc[0].x = x3; ras.arc[0].y = y3; - } - - -/****************************************************************************/ -/* */ -/* Function: Line_Up */ -/* */ -/* Description: Computes the x-coordinates of an ascending line segment */ -/* and stores them in the render pool. */ -/* */ -/* Input: x1,y1,x2,y2 Segment start (x1,y1) and end (x2,y2) points */ -/* */ -/* Returns: 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; - - PStorage 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 = TRUNC( miny ); - f1 = 0; - } - else - { - e1 = TRUNC( y1 ); - f1 = FRAC( y1 ); - } - - if ( y2 > maxy ) - { - /* x2 += FMulDiv( Dx, maxy - y2, Dy ); UNNECESSARY */ - e2 = TRUNC( maxy ); - f2 = 0; - } - else - { - e2 = TRUNC( y2 ); - f2 = 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 = ( 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; - - DEBUG_PSET; - - x1 += Ix; - Ax += Rx; - if ( Ax >= 0 ) - { - Ax -= Dy; - x1 += Dx; - } - size--; - } - - ras.top = top; - return SUCCESS; - } - - - 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; - } - - -/****************************************************************************/ -/* */ -/* Function: Bezier_Up */ -/* */ -/* Description: Computes thes x-coordinates of an ascending bezier arc */ -/* and stores them in the render pool. */ -/* */ -/* Input: None. The arc is taken from the top of the Bezier stack. */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE on Render Pool overflow. */ -/* */ -/****************************************************************************/ - - static Bool Bezier_Up( RAS_ARGS Long miny, Long maxy ) - { - Long y1, y2, e, e2, e0; - Short f1; - - TPoint* arc; - TPoint* start_arc; - - PStorage top; - - - arc = ras.arc; - y1 = arc[2].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 = FRAC( y1 ); - e0 = e; - - if ( f1 == 0 ) - { - if ( ras.joint ) - { - top--; - ras.joint = FALSE; - } - - *top++ = arc[2].x; - - DEBUG_PSET; - - 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[2].y; - if ( y2 - y1 >= ras.precision_step ) - { - Split_Bezier( arc ); - arc += 2; - } - else - { - *top++ = arc[2].x + FMulDiv( arc[0].x - arc[2].x, - e - y1, - y2 - y1 ); - DEBUG_PSET; - - arc -= 2; - e += ras.precision; - } - } - else - { - if ( y2 == e ) - { - ras.joint = TRUE; - *top++ = arc[0].x; - - DEBUG_PSET; - - e += ras.precision; - } - arc -= 2; - } - } - - Fin: - ras.top = top; - ras.arc -= 2; - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Bezier_Down */ -/* */ -/* Description: Computes the x-coordinates of a descending bezier arc */ -/* and stores them in the render pool. */ -/* */ -/* Input: None. Arc is taken from the top of the Bezier stack. */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE on Render Pool overflow. */ -/* */ -/****************************************************************************/ - - static Bool Bezier_Down( RAS_ARGS 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; - - fresh = ras.fresh; - - result = Bezier_Up( RAS_VARS -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, y : segment endpoint (start point in LastX,LastY) */ -/* */ -/* Returns: 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: - if ( y > ras.lastY ) - { - if ( New_Profile( RAS_VARS Ascending ) ) return FAILURE; - } - else - { - if ( y < ras.lastY ) - if ( New_Profile( RAS_VARS Descending ) ) return FAILURE; - } - break; - - case Ascending: - if ( y < ras.lastY ) - { - if ( End_Profile( RAS_VAR ) || - New_Profile( RAS_VARS Descending ) ) return FAILURE; - } - break; - - case Descending: - if ( y > ras.lastY ) - { - if ( End_Profile( RAS_VAR ) || - New_Profile( RAS_VARS Ascending ) ) return FAILURE; - } - break; - - default: - ; - } - - /* Then compute the lines */ - - switch ( ras.state ) - { - case Ascending: - if ( Line_Up ( RAS_VARS ras.lastX, ras.lastY, - x, y, ras.minY, ras.maxY ) ) - return FAILURE; - break; - - case Descending: - 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: Bezier_To */ -/* */ -/* Description: Injects a new bezier arc and adjusts the profile list. */ -/* */ -/* Input: x, y : arc endpoint (start point in LastX, LastY) */ -/* Cx, Cy : control point */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE on Render Pool overflow or Incorrect Profile. */ -/* */ -/****************************************************************************/ - - static Bool Bezier_To( RAS_ARGS Long x, - Long y, - Long cx, - Long cy ) - { - Long y1, y2, y3, x3; - TStates state_bez; - - - Push_Bezier( RAS_VARS ras.lastX, ras.lastY, cx, cy, x, 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 == y2 ) - { - if ( y2 == y3 ) - state_bez = Flat; - else if ( y2 > y3 ) - state_bez = Descending; - else - state_bez = Ascending; - } - else if ( y1 > y2 ) - { - if ( y2 >= y3 ) - state_bez = Descending; - else - state_bez = Unknown; - } - else if ( y2 <= y3 ) - state_bez = Ascending; - else - state_bez = Unknown; - - /* split non-monotonic arcs, ignore flat ones, or */ - /* computes the up and down ones */ - - switch ( state_bez ) - { - case Flat: - ras.arc -= 2; - break; - - case Unknown: - Split_Bezier( ras.arc ); - ras.arc += 2; - break; - - default: - /* detect a change of direction */ - - if ( ras.state != state_bez ) - { - if ( ras.state != Unknown ) - if ( End_Profile( RAS_VAR ) ) return FAILURE; - - if ( New_Profile( RAS_VARS state_bez ) ) return FAILURE; - } - - /* compute */ - - switch ( ras.state ) - { - case Ascending: - if ( Bezier_Up ( RAS_VARS ras.minY, ras.maxY ) ) - return FAILURE; - break; - - case Descending: - if ( Bezier_Down( RAS_VARS ras.minY, ras.maxY ) ) - return FAILURE; - break; - - default: - ; - } - } - } while ( ras.arc >= ras.arcs ); - - ras.lastX = x3; - ras.lastY = y3; - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* 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, last : indexes of first and last point in */ -/* contour. */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE on error. */ -/* */ -/****************************************************************************/ - -#undef SWAP_ -#define SWAP_(x,y) { Long swap = x; x = y; y = swap; } - - static Bool Decompose_Curve( RAS_ARGS UShort first, - UShort last, - Bool flipped ) - { - Long x, y; /* current point */ - Long cx, cy; /* current Bezier control point */ - Long mx, my; /* current middle point */ - - Long x_first, y_first; /* first point's coordinates */ - Long x_last, y_last; /* last point's coordinates */ - - UShort index; /* current point's index */ - Bool on_curve; /* current point's state */ - - x_first = SCALED( ras.coords[first].x ); - y_first = SCALED( ras.coords[first].y ); - - if ( flipped ) SWAP_( x_first,y_first ); - - x_last = SCALED( ras.coords[last].x ); - y_last = SCALED( ras.coords[last].y ); - - if ( flipped ) SWAP_( x_last,y_last ); - - ras.lastX = cx = x_first; - ras.lastY = cy = y_first; - - on_curve = (ras.flags[first] & 1); - index = first; - - /* check first point to determine origin */ - if ( !on_curve ) - { - /* first point is off the curve. Yes, this happens... */ - if ( ras.flags[last] & 1 ) - { - ras.lastX = x_last; /* start at last point if it */ - ras.lastY = y_last; /* is on the curve */ - } - else - { - /* if both first and last points are off the curve, */ - /* start at their middle and record its position */ - /* for closure */ - ras.lastX = (ras.lastX + x_last)/2; - ras.lastY = (ras.lastY + y_last)/2; - - x_last = ras.lastX; - y_last = ras.lastY; - } - } - - /* now process each contour point individually */ - while ( index < last ) - { - index++; - x = SCALED( ras.coords[index].x ); - y = SCALED( ras.coords[index].y ); - - if ( flipped ) SWAP_( x, y ); - - if ( on_curve ) - { - /* the previous point was on the curve */ - on_curve = ( ras.flags[index] & 1 ); - if ( on_curve ) - { - /* two successive on points => emit segment */ - if ( Line_To( RAS_VARS x, y ) ) return FAILURE; - } - else - { - /* else, keep current control point for next bezier */ - cx = x; - cy = y; - } - } - else - { - /* the previous point was off the curve */ - on_curve = ( ras.flags[index] & 1 ); - if ( on_curve ) - { - /* reaching an `on' point */ - if ( Bezier_To( RAS_VARS x, y, cx, cy ) ) return FAILURE; - } - else - { - /* two successive `off' points => create middle point */ - mx = ( cx + x ) / 2; - my = ( cy + y ) / 2; - - if ( Bezier_To( RAS_VARS mx, my, cx, cy ) ) return FAILURE; - - cx = x; - cy = y; - } - } - } - - /* end of contour, close curve cleanly */ - if ( ras.flags[first] & 1 ) - { - if ( on_curve ) - return Line_To( RAS_VARS x_first, y_first ); - else - return Bezier_To( RAS_VARS x_first, y_first, cx, cy ); - } - else - if ( !on_curve ) - return Bezier_To( RAS_VARS x_last, y_last, cx, cy ); - - return SUCCESS; - } - - -/****************************************************************************/ -/* */ -/* Function: Convert_Glyph */ -/* */ -/* Description: Converts a glyph into a series of segments and arcs */ -/* and makes a Profiles list with them. */ -/* */ -/* Input: _xCoord, _yCoord : coordinates tables. */ -/* */ -/* Uses the 'Flag' table too. */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE if any error was encountered during rendering. */ -/* */ -/****************************************************************************/ - - static Bool Convert_Glyph( RAS_ARGS int flipped ) - { - Short i; - UShort 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.nContours; i++ ) - { - ras.state = Unknown; - ras.gProfile = NULL; - - if ( Decompose_Curve( RAS_VARS start, ras.outs[i], flipped ) ) - return FAILURE; - - start = ras.outs[i] + 1; - - /* We must now see if 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 (ras.top < ras.maxBuff ? SUCCESS : FAILURE ); - } - - -/************************************************/ -/* */ -/* Init_Linked */ -/* */ -/* Inits 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 = ¤t->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 = ¤t->link; - current = *old; - } - - /* we should never get there, unless the Profile was not part of */ - /* the list. */ - } - - -/************************************************/ -/* */ -/* Update : */ -/* */ -/* Update all X offsets of a drawing list */ -/* */ -/************************************************/ - - static void Update( PProfile first ) - { - PProfile current = first; - - - while ( current ) - { - current->X = *current->offset; - current->offset += current->flow; - current->height--; - current = current->link; - } - } - - -/************************************************/ -/* */ -/* 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 */ - Update( *list ); - - /* Then sort them */ - old = list; - current = *old; - - if ( !current ) - return; - - next = current->link; - - while ( next ) - { - if ( current->X <= next->X ) - { - old = ¤t->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 three 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 ) - { - switch ( ras.target.flow ) - { - case TT_Flow_Up: - ras.traceOfs = *min * ras.target.cols; - ras.traceIncr = ras.target.cols; - break; - - default: - ras.traceOfs = ( ras.target.rows - 1 - *min ) * ras.target.cols; - ras.traceIncr = -ras.target.cols; - } - - ras.gray_min_x = 0; - ras.gray_max_x = 0; - } - - - static void Vertical_Sweep_Span( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_F26Dot6 x2, - PProfile left, - PProfile right ) - { - Long e1, e2; - Short c1, c2; - Short f1, f2; - Byte* target; - - - /* 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 = e1 & 7; - f2 = e2 & 7; - - if ( ras.gray_min_x > c1 ) ras.gray_min_x = c1; - if ( ras.gray_max_x < c2 ) ras.gray_max_x = c2; - - target = ras.bTarget + ras.traceOfs + c1; - - if ( c1 != c2 ) - { - *target |= LMask[f1]; - - if ( c2 > c1 + 1 ) - MEM_Set( target + 1, 0xFF, c2 - c1 - 1 ); - - target[c2 - c1] |= RMask[f2]; - } - else - *target |= ( LMask[f1] & RMask[f2] ); - } - } - - - static void Vertical_Sweep_Drop( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_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 when: */ - /* */ - /* 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 ( x2-x1 < ras.precision_half ) */ - { - /* 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 = 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 = 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 three 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 */ - } - - - static void Horizontal_Sweep_Span( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_F26Dot6 x2, - PProfile left, - PProfile right ) - { - Long e1, e2; - PByte bits; - Byte f1; - - - 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 ) - { - if ( ras.target.flow == TT_Flow_Down ) - bits[(ras.target.rows-1 - e1) * ras.target.cols] |= f1; - else - bits[e1 * ras.target.cols] |= f1; - } - } - } -#if 0 - e2 = TRUNC( e2 ); - - if ( e2 >= 0 && e2 < ras.target.rows ) - if ( ras.target.flow == TT_Flow_Down ) - bits[(ras.target.rows-1-e2) * ras.target.cols] |= f1; - else - bits[e2 * ras.target.cols] |= f1; -#endif - } - - - static void Horizontal_Sweep_Drop( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_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)); - - if ( ras.target.flow == TT_Flow_Down ) - bits += (ras.target.rows-1-e1) * ras.target.cols; - else - bits += e1 * ras.target.cols; - - 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 ) - { - if (ras.target.flow==TT_Flow_Down) - bits[(ras.target.rows-1-e1) * ras.target.cols] |= f1; - else - bits[e1 * ras.target.cols] |= f1; - } - } - - - static void Horizontal_Sweep_Step( RAS_ARG ) - { - /* Nothing, really */ - } - - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - -/***********************************************************************/ -/* */ -/* 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 ) - { - *min = *min & -2; - *max = ( *max + 3 ) & -2; - - ras.traceOfs = 0; - - switch ( ras.target.flow ) - { - case TT_Flow_Up: - ras.traceG = (*min / 2) * ras.target.cols; - ras.traceIncr = ras.target.cols; - break; - - default: - ras.traceG = (ras.target.rows-1 - *min/2) * ras.target.cols; - ras.traceIncr = -ras.target.cols; - } - - ras.gray_min_x = ras.target.cols; - ras.gray_max_x = -ras.target.cols; - } - - - 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 ) - { - if ( ras.gray_max_x >= ras.target.width ) - ras.gray_max_x = ras.target.width-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 & 0xF000) >> 12]; - pix[1] = grays[(c2 & 0x0F00) >> 8]; - pix[2] = grays[(c2 & 0x00F0) >> 4]; - pix[3] = grays[(c2 & 0x000F) ]; - - *bit = 0; - *bit2 = 0; - } - - bit ++; - bit2++; - pix += 4; - c1 --; - } - } - - ras.traceOfs = 0; - ras.traceG += ras.traceIncr; - - ras.gray_min_x = ras.target.cols; - ras.gray_max_x = -ras.target.cols; - } - } - - - static void Horizontal_Gray_Sweep_Span( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_F26Dot6 x2, - PProfile left, - PProfile right ) - { - /* nothing, really */ - } - - static void Horizontal_Gray_Sweep_Drop( RAS_ARGS Short y, - TT_F26Dot6 x1, - TT_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 ) - { - if ( ras.target.flow == TT_Flow_Down ) - pixel = ras.gTarget + - (ras.target.rows - 1 - e1) * ras.target.cols + y / 2; - else - pixel = ras.gTarget + - e1 * ras.target.cols + y / 2; - - if (pixel[0] == ras.grays[0]) - pixel[0] = color; - } - } - } - -#endif /* TT_CONFIG_OPTION_GRAY_SCALING */ - - -/********************************************************************/ -/* */ -/* 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 wait; - TProfileList draw_left, draw_right; - - - /* Init empty linked lists */ - - Init_Linked( &wait ); - - 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 = P->start; - top = P->start + P->height-1; - - if ( min_Y > bottom ) min_Y = bottom; - if ( max_Y < top ) max_Y = top; - - P->X = 0; - InsNew( &wait, 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 = wait; - - while ( P ) - { - P->countL = 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 wait list for new activations */ - - P = wait; - - while ( P ) - { - Q = P->link; - P->countL -= y_height; - if ( P->countL == 0 ) - { - DelOld( &wait, P ); - - switch ( P->flow ) - { - case TT_Flow_Up: InsNew( &draw_left, P ); break; - case TT_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 = 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 */ - - { - PProfile Q, P; - P = draw_left; - while ( P ) - { - Q = P->link; - if ( P->height == 0 ) - DelOld( &draw_left, P ); - P = Q; - } - } - - { - PProfile 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; - /* dropouts--; -- this is useful when debugging only */ - 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: _XCoord, _YCoord : x and y coordinates arrays */ -/* */ -/* Returns: SUCCESS on success */ -/* FAILURE if any error was encountered during render. */ -/* */ -/****************************************************************************/ - - static TT_Error 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 = ( 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 = k - 1; - - ras.band_top++; - } - else - { - if ( ras.fProfile ) - if ( Draw_Sweep( RAS_VAR ) ) return ras.error; - ras.band_top--; - } - } - - return TT_Err_Ok; - } - - -/****************************************************************************/ -/* */ -/* Function: Render_Glyph */ -/* */ -/* Description: Renders a glyph in a bitmap. Sub-banding if needed. */ -/* */ -/* Input: AGlyph Glyph record */ -/* */ -/* Returns: SUCCESS on success. */ -/* FAILURE if any error was encountered during rendering. */ -/* */ -/****************************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Render_Glyph( RAS_ARGS TT_Outline* glyph, - TT_Raster_Map* target_map ) - { - TT_Error error; - - - if ( glyph->n_points == 0 || glyph->n_contours <= 0 ) - return TT_Err_Ok; - - if ( !ras.buff ) - { - ras.error = Raster_Err_Not_Ini; - return ras.error; - } - - if ( glyph->n_points < glyph->contours[glyph->n_contours - 1] ) - { - ras.error = TT_Err_Too_Many_Points; - return ras.error; - } - - if ( target_map ) - ras.target = *target_map; - - ras.outs = glyph->contours; - ras.flags = glyph->flags; - ras.nPoints = glyph->n_points; - ras.nContours = glyph->n_contours; - ras.coords = glyph->points; - - Set_High_Precision( RAS_VARS glyph->high_precision ); - ras.scale_shift = ras.precision_shift; - ras.dropOutControl = glyph->dropout_mode; - ras.second_pass = glyph->second_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 = ras.target.rows - 1; - - ras.bWidth = ras.target.width; - ras.bTarget = (Byte*)ras.target.bitmap; - - 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 = ras.target.width - 1; - - if ( (error = Render_Single_Pass( RAS_VARS 1 )) != 0 ) - return error; - } - - return TT_Err_Ok; - } - - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - -/****************************************************************************/ -/* */ -/* Function: Render_Gray_Glyph */ -/* */ -/* Description: Renders a glyph with grayscaling. Sub-banding if needed. */ -/* */ -/* Input: AGlyph Glyph record */ -/* */ -/* Returns: SUCCESS on success */ -/* FAILURE if any error was encountered during rendering. */ -/* */ -/****************************************************************************/ - - FT_INTERNAL_FUNC( TT_Error ) - Render_Gray_Glyph( RAS_ARGS TT_Outline* glyph, - TT_Raster_Map* target_map, - Byte* palette ) - { - Int i; - TT_Error error; - - if ( !ras.buff ) - { - ras.error = Raster_Err_Not_Ini; - return ras.error; - } - - if ( glyph->n_points == 0 || glyph->n_contours <= 0 ) - return TT_Err_Ok; - - if ( glyph->n_points < glyph->contours[glyph->n_contours - 1] ) - { - ras.error = TT_Err_Too_Many_Points; - return ras.error; - } - - if ( palette ) - { - for ( i = 0; i < 5; i++ ) - ras.grays[i] = palette[i]; - } - - if ( target_map ) - ras.target = *target_map; - - ras.outs = glyph->contours; - ras.flags = glyph->flags; - ras.nPoints = glyph->n_points; - ras.nContours = glyph->n_contours; - ras.coords = glyph->points; - - Set_High_Precision( RAS_VARS glyph->high_precision ); - ras.scale_shift = ras.precision_shift+1; - ras.dropOutControl = glyph->dropout_mode; - ras.second_pass = glyph->second_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; - if ( ras.bWidth > ras.target.cols/4 ) - ras.bWidth = ras.target.cols/4; - - ras.bWidth = ras.bWidth * 8; - ras.bTarget = (Byte*)ras.gray_lines; - ras.gTarget = (Byte*)ras.target.bitmap; - - 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 TT_Err_Ok; - } - -#endif /* TT_CONFIG_OPTION_GRAY_SCALING */ - - -/************************************************/ -/* */ -/* InitRasterizer */ -/* */ -/* Raster Initialization. */ -/* Gets the bitmap description and render pool */ -/* addresses. */ -/* */ -/************************************************/ - -#undef ras - - FT_INTERNAL_FUNC( TT_Error ) - TTRaster_Done( PEngine_Instance engine ) - { - TRaster_Instance* ras = (TRaster_Instance*)engine->raster_component; - - - if ( !ras ) - return TT_Err_Ok; - - FREE( ras->buff ); - FREE( ras->gray_lines ); - -#ifndef TT_CONFIG_OPTION_STATIC_RASTER - FREE( engine->raster_component ); -#endif - - return TT_Err_Ok; - } - - - FT_INTERNAL_FUNC( TT_Error ) - TTRaster_Init( PEngine_Instance engine ) - { - TT_Error error; - - Int i, l, j, c; - - TRaster_Instance* ras; - - -#ifdef TT_CONFIG_OPTION_STATIC_RASTER - ras = engine->raster_component = &cur_ras; -#else - if ( ALLOC( engine->raster_component, sizeof ( TRaster_Instance ) ) ) - return error; - - ras = (TRaster_Instance*)engine->raster_component; -#endif - - if ( ALLOC( ras->buff, RASTER_RENDER_POOL ) || - ALLOC( ras->gray_lines, RASTER_GRAY_LINES ) ) - return error; - - ras->sizeBuff = ras->buff + ( RASTER_RENDER_POOL/sizeof(long) ); - ras->gray_width = RASTER_GRAY_LINES/2; - - MUTEX_Create( engine->raster_lock ); - - /* Initialization of Count_Table */ - - for ( i = 0; i < 256; i++ ) - { - l = 0; - j = i; - - for ( c = 0; c < 4; c++ ) - { - l <<= 4; - - if ( j & 0x80 ) l++; - if ( j & 0x40 ) l++; - - j = ( j << 2 ) & 0xFF; - } - - ras->count_table[i] = l; - } - - ras->dropOutControl = 2; - ras->error = Raster_Err_None; - - return TT_Err_Ok; - } - - -/* END */ diff --git a/Build/source/libs/freetype/lib/ttraster.h b/Build/source/libs/freetype/lib/ttraster.h deleted file mode 100644 index f6c4149589c..00000000000 --- a/Build/source/libs/freetype/lib/ttraster.h +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************* - * - * ttraster.h v 1.4 - * - * The FreeType glyph rasterizer. - * - * 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. - * - * NOTES: - * - * This version supports the following: - * - * - direct grayscaling - * - sub-banding - * - drop-out modes 4 and 5 - * - second pass for complete drop-out control (bitmap only) - * - variable precision - * - * - * Changes between 1.5 and 1.3: - * - * Mainly performance tunings: - * - * - Line_Down() and Bezier_Down() now use the functions Line_Up() - * and Bezier_Up() to do their work. - * - optimized Split_Bezier() - * - optimized linked lists used during sweeps - * - * Changes between 1.2 and 1.3: - * - * - made the engine optionaly re-entrant. Saves a lot - * of code for a moderate performance hit. - * - ******************************************************************/ - -#ifndef TTRASTER_H -#define TTRASTER_H - -#include "ttconfig.h" -#include "freetype.h" /* for TT_Outline */ -#include "ttengine.h" - -#ifdef __cplusplus -extern "C" { -#endif - - /* We provide two different builds of the scan-line converter */ - /* The static build uses global variables and isn't */ - /* re-entrant. */ - /* The indirect build is re-entrant but accesses all variables */ - /* indirectly. */ - /* */ - /* As a consequence, the indirect build is about 10% slower */ - /* than the static one on a _Pentium_ (this could get worse */ - /* on older processors), but the code size is reduced by */ - /* more than 30% ! */ - /* */ - /* The indirect build is now the default, defined in */ - /* ttconfig.h. Be careful if you experiment with this. */ - - /* Note also that, though its code can be re-entrant, the */ - /* component is always used in thread-safe mode. This is */ - /* simply due to the fact that we want to use a single */ - /* render pool (of 64 Kb), and not to waste memory. */ - -#ifdef TT_STATIC_RASTER - -#define RAS_ARGS /* void */ -#define RAS_ARG /* void */ - -#define RAS_VARS /* void */ -#define RAS_VAR /* void */ - -#else - -#define RAS_ARGS TRaster_Instance* raster, -#define RAS_ARG TRaster_Instance* raster - -#define RAS_VARS raster, -#define RAS_VAR raster - -#endif - - - struct TRaster_Instance_; - typedef struct TRaster_Instance_ TRaster_Instance; - - /* Render one glyph in the target bitmap, using drop-out control */ - /* mode 'scan'. */ - FT_INTERNAL_DEF( TT_Error ) - Render_Glyph( RAS_ARGS TT_Outline* glyph, - TT_Raster_Map* target ); - -#ifdef TT_CONFIG_OPTION_GRAY_SCALING - /* Render one gray-level glyph in the target pixmap. */ - /* Palette points to an array of 5 colors used for the rendering. */ - /* Use NULL to reuse the last palette. Default is VGA graylevels. */ - FT_INTERNAL_DEF( TT_Error ) - Render_Gray_Glyph( RAS_ARGS TT_Outline* glyph, - TT_Raster_Map* target, - Byte* palette ); -#endif - - /* Initialize rasterizer */ - FT_INTERNAL_DEF( TT_Error ) - TTRaster_Init( PEngine_Instance engine ); - - /* Finalize it */ - FT_INTERNAL_DEF( TT_Error ) - TTRaster_Done( PEngine_Instance engine ); - - -#ifdef __cplusplus -} -#endif - -#endif /* TTRASTER_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/tttables.h b/Build/source/libs/freetype/lib/tttables.h deleted file mode 100644 index 9c3c4b50fe6..00000000000 --- a/Build/source/libs/freetype/lib/tttables.h +++ /dev/null @@ -1,216 +0,0 @@ -/******************************************************************* - * - * tttables.h 1.1 - * - * TrueType Tables structures and handling (specification) - * (this spec has no associated 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. - * - ******************************************************************/ - -#ifndef TTTABLES_H -#define TTTABLES_H - -#include "ttconfig.h" -#include "tttypes.h" - -#ifdef __cplusplus - extern "C" { -#endif - - /***********************************************************************/ - /* */ - /* TrueType Table Types */ - /* */ - /***********************************************************************/ - - /* TrueType Collection Header */ - - struct TTTCHeader_ - { - ULong Tag; - TT_Fixed version; - ULong DirCount; - PULong TableDirectory; - }; - - typedef struct TTTCHeader_ TTTCHeader; - typedef TTTCHeader* PTTCHeader; - - - /* TrueType Table Directory type */ - - struct TTableDir_ - { - TT_Fixed version; /* should be 0x10000 */ - UShort numTables; /* number of tables */ - - UShort searchRange; /* These parameters are only used */ - UShort entrySelector; /* for a dichotomy search in the */ - UShort rangeShift; /* directory. We ignore them. */ - }; - - typedef struct TTableDir_ TTableDir; - typedef TTableDir* PTableDir; - - - /* The 'TableDir' is followed by 'numTables' TableDirEntries */ - - struct TTableDirEntry_ - { - ULong Tag; /* table type */ - ULong CheckSum; /* table checksum */ - ULong Offset; /* table file offset */ - ULong Length; /* table length */ - }; - - typedef struct TTableDirEntry_ TTableDirEntry; - typedef TTableDirEntry* PTableDirEntry; - - - /* 'cmap' tables */ - - struct TCMapDir_ - { - UShort tableVersionNumber; - UShort numCMaps; - }; - - typedef struct TCMapDir_ TCMapDir; - typedef TCMapDir* PCMapDir; - - struct TCMapDirEntry_ - { - UShort platformID; - UShort platformEncodingID; - Long offset; - }; - - typedef struct TCMapDirEntry_ TCMapDirEntry; - typedef TCMapDirEntry* PCMapDirEntries; - - - /* 'maxp' Maximum Profiles table */ - - struct TMaxProfile_ - { - TT_Fixed version; - UShort numGlyphs, - maxPoints, - maxContours, - maxCompositePoints, - maxCompositeContours, - maxZones, - maxTwilightPoints, - maxStorage, - maxFunctionDefs, - maxInstructionDefs, - maxStackElements, - maxSizeOfInstructions, - maxComponentElements, - maxComponentDepth; - }; - - typedef struct TMaxProfile_ TMaxProfile; - typedef TMaxProfile* PMaxProfile; - - - /* table "gasp" */ - -#define GASP_GRIDFIT 0x01 -#define GASP_DOGRAY 0x02 - - struct GaspRange_ - { - UShort maxPPEM; - UShort gaspFlag; - }; - - typedef struct GaspRange_ GaspRange; - - - struct TGasp_ - { - UShort version; - UShort numRanges; - GaspRange* gaspRanges; - }; - - typedef struct TGasp_ TGasp; - - - /* table "head" - now defined in freetype.h */ - /* table "hhea" - now defined in freetype.h */ - - - /* tables "HMTX" and "VMTX" */ - - struct TLongMetrics_ - { - UShort advance; - Short bearing; - }; - - typedef struct TLongMetrics_ TLongMetrics, *PLongMetrics; - - typedef Short TShortMetrics, *PShortMetrics; - - /* 'loca' location table type */ - - struct TLoca_ - { - UShort Size; - PStorage Table; - }; - - typedef struct TLoca_ TLoca; - - - /* table "name" */ - - struct TNameRec_ - { - UShort platformID; - UShort encodingID; - UShort languageID; - UShort nameID; - UShort stringLength; - UShort stringOffset; - - /* this last field is not defined in the spec */ - /* but used by the FreeType engine */ - - PByte string; - }; - - typedef struct TNameRec_ TNameRec; - - - struct TName_Table_ - { - UShort format; - UShort numNameRecords; - UShort storageOffset; - TNameRec* names; - PByte storage; - }; - - typedef struct TName_Table_ TName_Table; - - -#ifdef __cplusplus - } -#endif - -#endif /* TTTABLES_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/tttags.h b/Build/source/libs/freetype/lib/tttags.h deleted file mode 100644 index 7194461a74a..00000000000 --- a/Build/source/libs/freetype/lib/tttags.h +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************* - * - * tttags.h - * - * tags for TrueType tables (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 TTAGS_H -#define TTAGS_H - -#include "ttconfig.h" -#include "freetype.h" /* for MAKE_TT_TAG() */ - -#define TTAG_BASE MAKE_TT_TAG( 'B', 'A', 'S', 'E' ) -#define TTAG_bloc MAKE_TT_TAG( 'b', 'l', 'o', 'c' ) -#define TTAG_bdat MAKE_TT_TAG( 'b', 'd', 'a', 't' ) -#define TTAG_cmap MAKE_TT_TAG( 'c', 'm', 'a', 'p' ) -#define TTAG_cvt MAKE_TT_TAG( 'c', 'v', 't', ' ' ) -#define TTAG_EBDT MAKE_TT_TAG( 'E', 'B', 'D', 'T' ) -#define TTAG_EBLC MAKE_TT_TAG( 'E', 'B', 'L', 'C' ) -#define TTAG_EBSC MAKE_TT_TAG( 'E', 'B', 'S', 'C' ) -#define TTAG_fpgm MAKE_TT_TAG( 'f', 'p', 'g', 'm' ) -#define TTAG_gasp MAKE_TT_TAG( 'g', 'a', 's', 'p' ) -#define TTAG_glyf MAKE_TT_TAG( 'g', 'l', 'y', 'f' ) -#define TTAG_GDEF MAKE_TT_TAG( 'G', 'D', 'E', 'F' ) -#define TTAG_GPOS MAKE_TT_TAG( 'G', 'P', 'O', 'S' ) -#define TTAG_GSUB MAKE_TT_TAG( 'G', 'S', 'U', 'B' ) -#define TTAG_hdmx MAKE_TT_TAG( 'h', 'd', 'm', 'x' ) -#define TTAG_head MAKE_TT_TAG( 'h', 'e', 'a', 'd' ) -#define TTAG_hhea MAKE_TT_TAG( 'h', 'h', 'e', 'a' ) -#define TTAG_hmtx MAKE_TT_TAG( 'h', 'm', 't', 'x' ) -#define TTAG_JSTF MAKE_TT_TAG( 'J', 'S', 'T', 'F' ) -#define TTAG_kern MAKE_TT_TAG( 'k', 'e', 'r', 'n' ) -#define TTAG_loca MAKE_TT_TAG( 'l', 'o', 'c', 'a' ) -#define TTAG_LTSH MAKE_TT_TAG( 'L', 'T', 'S', 'H' ) -#define TTAG_maxp MAKE_TT_TAG( 'm', 'a', 'x', 'p' ) -#define TTAG_name MAKE_TT_TAG( 'n', 'a', 'm', 'e' ) -#define TTAG_OS2 MAKE_TT_TAG( 'O', 'S', '/', '2' ) -#define TTAG_PCLT MAKE_TT_TAG( 'P', 'C', 'L', 'T' ) -#define TTAG_post MAKE_TT_TAG( 'p', 'o', 's', 't' ) -#define TTAG_prep MAKE_TT_TAG( 'p', 'r', 'e', 'p' ) -#define TTAG_ttc MAKE_TT_TAG( 't', 't', 'c', ' ' ) -#define TTAG_ttcf MAKE_TT_TAG( 't', 't', 'c', 'f' ) -#define TTAG_VDMX MAKE_TT_TAG( 'V', 'D', 'M', 'X' ) -#define TTAG_vhea MAKE_TT_TAG( 'v', 'h', 'e', 'a' ) -#define TTAG_vmtx MAKE_TT_TAG( 'v', 'm', 't', 'x' ) - -#endif /* TTAGS_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/lib/tttypes.h b/Build/source/libs/freetype/lib/tttypes.h deleted file mode 100644 index 3750c4ee2f7..00000000000 --- a/Build/source/libs/freetype/lib/tttypes.h +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************* - * - * tttypes.h - * - * Freetype engine's common types specification - * (this spec has no associated 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. - * - * NOTE: - * - * All these declarations are library internals, and *not* part - * of the high-level interface. See also 'freetype.h'. - * - ******************************************************************/ - -#ifndef TTTYPES_H -#define TTTYPES_H - -#include "ttconfig.h" -#include "freetype.h" - -#ifdef __MACTYPES__ -#error " have been included, and this prevents the proper\ - compilation of this library. Please remove the precompiled headers." -#endif - - typedef char String; - typedef signed char Char; - typedef unsigned char Byte; - - typedef unsigned short UShort; - typedef signed short Short; - - typedef unsigned long ULong; - typedef signed long Long; - - typedef TT_Int32 Fixed; - - typedef unsigned int UInt; - typedef int Int; - - /* Simple access types: pointers and tables */ - - typedef Byte* PByte; - typedef UShort* PUShort; - typedef Short* PShort; - typedef ULong* PULong; - typedef Long* PLong; - - typedef Fixed* PFixed; - - typedef Int* PInt; - - typedef void* Pointer; - - typedef TT_F26Dot6* PCoordinates; - typedef unsigned char* PTouchTable; - - -#ifndef Bool - typedef int Bool; /* No boolean type in C */ -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef NULL -#define NULL (void*)0 -#endif - - typedef Long Storage; - typedef Storage* PStorage; - - -/* 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 - - -/* Touch flag masks */ - -#define TT_Flag_On_Curve 1 -#define TT_Flag_Touched_X 2 -#define TT_Flag_Touched_Y 4 -#define TT_Flag_Touched_Both 6 - - -/* Error management constants :) */ - -#define SUCCESS 0 -#define FAILURE -1 - - -/* The min and max functions missing in C. As usual, be careful not to */ -/* write things like MIN( a++, b++ ) to avoid side effects. */ - -#ifndef MIN -#define MIN( a, b ) ( (a) < (b) ? (a) : (b) ) -#endif - -#ifndef MAX -#define MAX( a, b ) ( (a) > (b) ? (a) : (b) ) -#endif - -#ifndef ABS -#define ABS( a ) ( (a) < 0 ? -(a) : (a) ) -#endif - -/* conversion macros for the handles defined in freetype.h */ - -#define HANDLE_Val( handle ) ((handle).z) - -#define HANDLE_Engine( handle ) ((PEngine_Instance)HANDLE_Val( handle )) - -#define HANDLE_Face( handle ) ((PFace)HANDLE_Val( handle )) - -#define HANDLE_Instance( handle ) ((PInstance)HANDLE_Val( handle )) - -/* HANDLE_Stream( handle ) must be defined in ttfile.c */ - -#define HANDLE_Glyph( handle ) ((PGlyph)HANDLE_Val( handle )) - -#define HANDLE_CharMap( handle ) ((PCMapTable)HANDLE_Val( handle )) - -#define HANDLE_Set( handle, val ) ((handle).z = (void*)(val)) - - -#endif /* TTTYPES_H */ - - -/* END */ diff --git a/Build/source/libs/freetype/license.txt b/Build/source/libs/freetype/license.txt deleted file mode 100644 index b46b9ddd695..00000000000 --- a/Build/source/libs/freetype/license.txt +++ /dev/null @@ -1,7 +0,0 @@ - -FreeType comes with two licenses from which you can choose the one which -fits your needs best: - - . The FreeType License, in file `docs/FTL.txt'; - - . The GNU Public License, in file `docs/GPL.txt'. diff --git a/Build/source/libs/freetype/ltconfig b/Build/source/libs/freetype/ltconfig deleted file mode 100755 index a01334f9212..00000000000 --- a/Build/source/libs/freetype/ltconfig +++ /dev/null @@ -1,3078 +0,0 @@ -#! /bin/sh - -# ltconfig - Create a system-specific libtool. -# Copyright (C) 1996-1999 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 1996 -# -# 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. - -# A lot of this script is taken from autoconf-2.10. - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} -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 </dev/null`} - case X$UNAME in - *-DOS) PATH_SEPARATOR=';' ;; - *) PATH_SEPARATOR=':' ;; - esac -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 "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' || - test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then - # 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. - - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for dir in $PATH /usr/ucb; do - if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$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' && - test "X`(print -r "$echo_test_string") 2>/dev/null`" = 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 ltconfig 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' && - test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - # Cool, printf works - : - elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && - test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = 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 test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && - test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = 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}" "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi - -# 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' - -# The name of this program. -progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` - -# Constants: -PROGRAM=ltconfig -PACKAGE=libtool -VERSION=1.3.4 -TIMESTAMP=" (1.385.2.196 1999/12/07 21:47:57)" -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' -rm="rm -f" - -help="Try \`$progname --help' for more information." - -# Global variables: -default_ofile=libtool -can_build_shared=yes -enable_shared=yes -# All known linkers require a `.a' archive for static linking (except M$VC, -# which needs '.lib'). -enable_static=yes -enable_fast_install=yes -enable_dlopen=unknown -enable_win32_dll=no -ltmain= -silent= -srcdir= -ac_config_guess= -ac_config_sub= -host= -nonopt= -ofile="$default_ofile" -verify_host=yes -with_gcc=no -with_gnu_ld=no -need_locks=yes -ac_ext=c -objext=o -libext=a -exeext= -cache_file= - -old_AR="$AR" -old_CC="$CC" -old_CFLAGS="$CFLAGS" -old_CPPFLAGS="$CPPFLAGS" -old_LDFLAGS="$LDFLAGS" -old_LD="$LD" -old_LN_S="$LN_S" -old_LIBS="$LIBS" -old_NM="$NM" -old_RANLIB="$RANLIB" -old_DLLTOOL="$DLLTOOL" -old_OBJDUMP="$OBJDUMP" -old_AS="$AS" - -# Parse the command line options. -args= -prev= -for option -do - case "$option" in - -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - eval "$prev=\$option" - prev= - continue - fi - - case "$option" in - --help) cat <&2 - echo "$help" 1>&2 - exit 1 - ;; - - *) - if test -z "$ltmain"; then - ltmain="$option" - elif test -z "$host"; then -# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 -# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then -# echo "$progname: warning \`$option' is not a valid host type" 1>&2 -# fi - host="$option" - else - echo "$progname: too many arguments" 1>&2 - echo "$help" 1>&2 - exit 1 - fi ;; - esac -done - -if test -z "$ltmain"; then - echo "$progname: you must specify a LTMAIN file" 1>&2 - echo "$help" 1>&2 - exit 1 -fi - -if test ! -f "$ltmain"; then - echo "$progname: \`$ltmain' does not exist" 1>&2 - echo "$help" 1>&2 - exit 1 -fi - -# Quote any args containing shell metacharacters. -ltconfig_args= -for arg -do - case "$arg" in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ltconfig_args="$ltconfig_args '$arg'" ;; - *) ltconfig_args="$ltconfig_args $arg" ;; - esac -done - -# A relevant subset of AC_INIT. - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 5 compiler messages saved in config.log -# 6 checking for... messages and results -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>>./config.log - -# 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). -if test "X${LC_ALL+set}" = Xset; then LC_ALL=C; export LC_ALL; fi -if test "X${LANG+set}" = Xset; then LANG=C; export LANG; fi - -if test -n "$cache_file" && test -r "$cache_file"; then - echo "loading cache $cache_file within ltconfig" - . $cache_file -fi - -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - -if test -z "$srcdir"; then - # Assume the source directory is the same one as the path to LTMAIN. - srcdir=`$echo "X$ltmain" | $Xsed -e 's%/[^/]*$%%'` - test "$srcdir" = "$ltmain" && srcdir=. -fi - -trap "$rm conftest*; exit 1" 1 2 15 -if test "$verify_host" = yes; then - # Check for config.guess and config.sub. - ac_aux_dir= - for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/config.guess; then - ac_aux_dir=$ac_dir - break - fi - done - if test -z "$ac_aux_dir"; then - echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 - echo "$help" 1>&2 - exit 1 - fi - ac_config_guess=$ac_aux_dir/config.guess - ac_config_sub=$ac_aux_dir/config.sub - - # Make sure we can run config.sub. - if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : - else - echo "$progname: cannot run $ac_config_sub" 1>&2 - echo "$help" 1>&2 - exit 1 - fi - - echo $ac_n "checking host system type""... $ac_c" 1>&6 - - host_alias=$host - case "$host_alias" in - "") - if host_alias=`$SHELL $ac_config_guess`; then : - else - echo "$progname: cannot guess host type; you must specify one" 1>&2 - echo "$help" 1>&2 - exit 1 - fi ;; - esac - host=`$SHELL $ac_config_sub $host_alias` - echo "$ac_t$host" 1>&6 - - # Make sure the host verified. - test -z "$host" && exit 1 - -elif test -z "$host"; then - echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 - echo "$help" 1>&2 - exit 1 -else - host_alias=$host -fi - -# Transform linux* to *-*-linux-gnu*, to support old configure scripts. -case "$host_os" in -linux-gnu*) ;; -linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` -esac - -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -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 - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR cru $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -# Set a sane default for `AR'. -test -z "$AR" && AR=ar - -# Set a sane default for `OBJDUMP'. -test -z "$OBJDUMP" && OBJDUMP=objdump - -# If RANLIB is not set, then run the test. -if test "${RANLIB+set}" != "set"; then - result=no - - echo $ac_n "checking for ranlib... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/ranlib || test -f $dir/ranlib$ac_exeext; then - RANLIB="ranlib" - result="ranlib" - break - fi - done - IFS="$save_ifs" - - echo "$ac_t$result" 1>&6 -fi - -if test -n "$RANLIB"; then - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" -fi - -# Set sane defaults for `DLLTOOL', `OBJDUMP', and `AS', used on cygwin. -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$OBJDUMP" && OBJDUMP=objdump -test -z "$AS" && AS=as - -# Check to see if we are using GCC. -if test "$with_gcc" != yes || test -z "$CC"; then - # If CC is not set, then try to find GCC or a usable CC. - if test -z "$CC"; then - echo $ac_n "checking for gcc... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/gcc || test -f $dir/gcc$ac_exeext; then - CC="gcc" - break - fi - done - IFS="$save_ifs" - - if test -n "$CC"; then - echo "$ac_t$CC" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - fi - - # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". - if test -z "$CC"; then - echo $ac_n "checking for cc... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - cc_rejected=no - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/cc || test -f $dir/cc$ac_exeext; then - if test "$dir/cc" = "/usr/ucb/cc"; then - cc_rejected=yes - continue - fi - CC="cc" - break - fi - done - IFS="$save_ifs" - if test $cc_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same name, so the bogon will be chosen - # first if we set CC to just the name; use the full file name. - shift - set dummy "$dir/cc" "$@" - shift - CC="$@" - fi - fi - - if test -n "$CC"; then - echo "$ac_t$CC" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - - if test -z "$CC"; then - echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 - exit 1 - fi - fi - - # Now see if the compiler is really GCC. - with_gcc=no - echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 - echo "$progname:581: checking whether we are using GNU C" >&5 - - $rm conftest.c - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - with_gcc=yes - fi - $rm conftest.c - echo "$ac_t$with_gcc" 1>&6 -fi - -# Allow CC to be a program name with arguments. -set dummy $CC -compiler="$2" - -echo $ac_n "checking for object suffix... $ac_c" 1>&6 -$rm conftest* -echo 'int i = 1;' > conftest.c -echo "$progname:603: checking for object suffix" >& 5 -if { (eval echo $progname:604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - for ac_file in conftest.*; do - case $ac_file in - *.c) ;; - *) objext=`echo $ac_file | sed -e s/conftest.//` ;; - esac - done -else - cat conftest.err 1>&5 - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 -fi -$rm conftest* -echo "$ac_t$objext" 1>&6 - -echo $ac_n "checking for executable suffix... $ac_c" 1>&6 -if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_cv_exeext="no" - $rm conftest* - echo 'main () { return 0; }' > conftest.c - echo "$progname:629: checking for executable suffix" >& 5 - if { (eval echo $progname:630: \"$ac_link\") 1>&5; (eval $ac_link) 2>conftest.err; }; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - for ac_file in conftest.*; do - case $ac_file in - *.c | *.err | *.$objext ) ;; - *) ac_cv_exeext=.`echo $ac_file | sed -e s/conftest.//` ;; - esac - done - else - cat conftest.err 1>&5 - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - $rm conftest* -fi -if test "X$ac_cv_exeext" = Xno; then - exeext="" -else - exeext="$ac_cv_exeext" -fi -echo "$ac_t$ac_cv_exeext" 1>&6 - -echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 -pic_flag= -special_shlib_compile_flags= -wl= -link_static_flag= -no_builtin_flag= - -if test "$with_gcc" = yes; then - wl='-Wl,' - link_static_flag='-static' - - case "$host_os" in - beos* | irix5* | irix6* | osf3* | osf4* | osf5*) - # PIC is the default for these OSes. - ;; - aix*) - # Below there is a dirty hack to force normal static linking with -ldl - # The problem is because libdl dynamically linked with both libc and - # libC (AIX C++ library), which obviously doesn't included in libraries - # list by gcc. This cause undefined symbols with -static flags. - # This hack allows C programs to be linked with "-static -ldl", but - # we not sure about C++ programs. - link_static_flag="$link_static_flag ${wl}-lC" - ;; - cygwin* | mingw* | os2*) - # We can build DLLs from non-PIC. - ;; - 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'. - pic_flag='-m68020 -resident32 -malways-restore-a4' - ;; - sysv4*MP*) - if test -d /usr/nec; then - pic_flag=-Kconform_pic - fi - ;; - *) - pic_flag='-fPIC' - ;; - esac -else - # PORTME Check for PIC flags for the system compiler. - case "$host_os" in - aix3* | aix4*) - # All AIX code is PIC. - link_static_flag='-bnso -bI:/lib/syscalls.exp' - ;; - - hpux9* | hpux10* | hpux11*) - # Is there a better link_static_flag that works with the bundled CC? - wl='-Wl,' - link_static_flag="${wl}-a ${wl}archive" - pic_flag='+Z' - ;; - - irix5* | irix6*) - wl='-Wl,' - link_static_flag='-non_shared' - # PIC (with -KPIC) is the default. - ;; - - cygwin* | mingw* | os2*) - # We can build DLLs from non-PIC. - ;; - - osf3* | osf4* | osf5*) - # All OSF/1 code is PIC. - wl='-Wl,' - link_static_flag='-non_shared' - ;; - - sco3.2v5*) - pic_flag='-Kpic' - link_static_flag='-dn' - special_shlib_compile_flags='-belf' - ;; - - solaris*) - pic_flag='-KPIC' - link_static_flag='-Bstatic' - wl='-Wl,' - ;; - - sunos4*) - pic_flag='-PIC' - link_static_flag='-Bstatic' - wl='-Qoption ld ' - ;; - - sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) - pic_flag='-KPIC' - link_static_flag='-Bstatic' - wl='-Wl,' - ;; - - uts4*) - pic_flag='-pic' - link_static_flag='-Bstatic' - ;; - sysv4*MP*) - if test -d /usr/nec ;then - pic_flag='-Kconform_pic' - link_static_flag='-Bstatic' - fi - ;; - *) - can_build_shared=no - ;; - esac -fi - -if test -n "$pic_flag"; then - echo "$ac_t$pic_flag" 1>&6 - - # Check to make sure the pic_flag actually works. - echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:776: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:777: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - case "$host_os" in - hpux9* | hpux10* | hpux11*) - # On HP-UX, both CC and GCC only warn that PIC is supported... then they - # create non-PIC objects. So, if there were any warnings, we assume that - # PIC is not supported. - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - can_build_shared=no - pic_flag= - else - echo "$ac_t"yes 1>&6 - pic_flag=" $pic_flag" - fi - ;; - *) - echo "$ac_t"yes 1>&6 - pic_flag=" $pic_flag" - ;; - esac - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - can_build_shared=no - pic_flag= - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* -else - echo "$ac_t"none 1>&6 -fi - -# Check to see if options -o and -c are simultaneously supported by compiler -echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6 -$rm -r conftest 2>/dev/null -mkdir conftest -cd conftest -$rm conftest* -echo "int some_variable = 0;" > conftest.c -mkdir out -# According to Tom Tromey, Ian Lance Taylor reported there are C compilers -# that will create temporary files in the current directory regardless of -# the output directory. Thus, making CWD read-only will cause this test -# to fail, enabling locking or at least warning the user not to do parallel -# builds. -chmod -w . -save_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -o out/conftest2.o" -echo "$progname:829: checking if $compiler supports -c -o file.o" >&5 -if { (eval echo $progname:830: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.o; 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 - echo "$ac_t"no 1>&6 - compiler_c_o=no - else - echo "$ac_t"yes 1>&6 - compiler_c_o=yes - fi -else - # Append any errors to the config.log. - cat out/conftest.err 1>&5 - compiler_c_o=no - echo "$ac_t"no 1>&6 -fi -CFLAGS="$save_CFLAGS" -chmod u+w . -$rm conftest* out/* -rmdir out -cd .. -rmdir conftest -$rm -r conftest 2>/dev/null - -if test x"$compiler_c_o" = x"yes"; then - # Check to see if we can write to a .lo - echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -c -o conftest.lo" - echo "$progname:862: checking if $compiler supports -c -o file.lo" >&5 -if { (eval echo $progname:863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; 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 - echo "$ac_t"no 1>&6 - compiler_o_lo=no - else - echo "$ac_t"yes 1>&6 - compiler_o_lo=yes - fi - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - compiler_o_lo=no - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* -else - compiler_o_lo=no -fi - -# Check to see if we can do hard links to lock some files if needed -hard_links="nottested" -if test "$compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&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 "$ac_t$hard_links" 1>&6 - $rm conftest* - if test "$hard_links" = no; then - echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2 - need_locks=warn - fi -else - need_locks=no -fi - -if test "$with_gcc" = yes; then - # Check to see if options -fno-rtti -fno-exceptions are supported by compiler - echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" - echo "$progname:914: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 - if { (eval echo $progname:915: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; 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 - echo "$ac_t"no 1>&6 - compiler_rtti_exceptions=no - else - echo "$ac_t"yes 1>&6 - compiler_rtti_exceptions=yes - fi - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - compiler_rtti_exceptions=no - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* - - if test "$compiler_rtti_exceptions" = "yes"; then - no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' - else - no_builtin_flag=' -fno-builtin' - fi - -fi - -# Check for any special shared library compilation flags. -if test -n "$special_shlib_compile_flags"; then - echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2 - if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then : - else - echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2 - can_build_shared=no - fi -fi - -echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6 -$rm conftest* -echo 'main(){return(0);}' > conftest.c -save_LDFLAGS="$LDFLAGS" -LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:958: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - echo "$ac_t$link_static_flag" 1>&6 -else - echo "$ac_t"none 1>&6 - link_static_flag= -fi -LDFLAGS="$save_LDFLAGS" -$rm conftest* - -if test -z "$LN_S"; then - # Check to see if we can use ln -s, or we need hard links. - echo $ac_n "checking whether ln -s works... $ac_c" 1>&6 - $rm conftest.dat - if ln -s X conftest.dat 2>/dev/null; then - $rm conftest.dat - LN_S="ln -s" - else - LN_S=ln - fi - if test "$LN_S" = "ln -s"; then - echo "$ac_t"yes 1>&6 - else - echo "$ac_t"no 1>&6 - fi -fi - -# Make sure LD is an absolute path. -if test -z "$LD"; then - ac_prog=ld - if test "$with_gcc" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:991: checking for ld used by GCC" >&5 - ac_prog=`($CC -print-prog-name=ld) 2>&5` - case "$ac_prog" in - # Accept absolute paths. - [\\/]* | [A-Za-z]:[\\/]*) - re_direlt='/[^/][^/]*/\.\./' - # Canonicalize the path 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 are not 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 $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:1015: checking for GNU ld" >&5 - else - echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:1018: checking for non-GNU ld" >&5 - fi - - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - 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. - if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" - fi - - if test -n "$LD"; then - echo "$ac_t$LD" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - - if test -z "$LD"; then - echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 - exit 1 - fi -fi - -# Check to see if it really is or is not GNU ld. -echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 -# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - with_gnu_ld=yes -else - with_gnu_ld=no -fi -echo "$ac_t$with_gnu_ld" 1>&6 - -# See if the linker supports building shared libraries. -echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 - -allow_undefined_flag= -no_undefined_flag= -need_lib_prefix=unknown -need_version=unknown -# when you set need_version to no, make sure it does not cause -set_version -# flags to be left without arguments -archive_cmds= -archive_expsym_cmds= -old_archive_from_new_cmds= -export_dynamic_flag_spec= -whole_archive_flag_spec= -thread_safe_flag_spec= -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no -hardcode_shlibpath_var=unsupported -runpath_var= -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 egrep regular expression 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. - -case "$host_os" in -cygwin* | mingw*) - # 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 "$with_gcc" != yes; then - with_gnu_ld=no - fi - ;; - -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*) - # On AIX, the GNU linker is very broken - ld_shlibs=no - cat <&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 - ;; - - amigaos*) - archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - - # Samuel A. Falvo II 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 use - # them. - ld_shlibs=no - ;; - - beos*) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - allow_undefined_flag=unsupported - # Joseph Beckenbach says some releases of gcc - # support --undefined. This deserves some investigation. FIXME - archive_cmds='$CC -nostart $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - else - ld_shlibs=no - fi - ;; - - cygwin* | mingw*) - # 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=yes - - # Extract the symbol export list from an `--export-all' def file, - # then regenerate the def file from the symbol export list, so that - # the compiled dll only exports the symbol export list. - export_symbols_cmds='test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ - test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ - $DLLTOOL --export-all --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --output-def $objdir/$soname-def $objdir/$soname-ltdll.$objext $libobjs $convenience~ - sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]* ; *//" < $objdir/$soname-def > $export_symbols' - - archive_expsym_cmds='echo EXPORTS > $objdir/$soname-def~ - _lt_hint=1; - for symbol in `cat $export_symbols`; do - echo " \$symbol @ \$_lt_hint ; " >> $objdir/$soname-def; - _lt_hint=`expr 1 + \$_lt_hint`; - done~ - test -f $objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $0 > $objdir/$soname-ltdll.c~ - test -f $objdir/$soname-ltdll.$objext || (cd $objdir && $CC -c $soname-ltdll.c)~ - $CC -Wl,--base-file,$objdir/$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ - $CC -Wl,--base-file,$objdir/$soname-base $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbols DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12 --def $objdir/$soname-def --base-file $objdir/$soname-base --output-exp $objdir/$soname-exp~ - $CC $objdir/$soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $objdir/$soname-ltdll.$objext $libobjs $deplibs $linkopts' - - old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $objdir/$soname-def --output-lib $objdir/$libname.a' - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' - else - archive_cmds='$LD -Bshareable $libobjs $deplibs $linkopts -o $lib' - # can we support soname and/or expsyms with a.out? -oliva - fi - ;; - - solaris* | sysv5*) - if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then - ld_shlibs=no - cat <&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 | egrep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${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 $linkopts' - wlarc= - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - *) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${wl}-soname $wl$soname -o $lib' - archive_expsym_cmds='$CC -shared $libobjs $deplibs $linkopts ${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' - case $host_os in - cygwin* | mingw*) - # dlltool doesn't understand --whole-archive et. al. - whole_archive_flag_spec= - ;; - *) - # ancient GNU ld didn't support --whole-archive et. al. - if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then - whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' - else - whole_archive_flag_spec= - fi - ;; - esac - 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 $objdir/$soname $libobjs $deplibs $linkopts -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$with_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*) - hardcode_libdir_flag_spec='${wl}-b ${wl}nolibpath ${wl}-b ${wl}libpath:$libdir:/usr/lib:/lib' - hardcode_libdir_separator=':' - if test "$with_gcc" = yes; then - 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 - shared_flag='-shared' - else - shared_flag='${wl}-bM:SRE' - hardcode_direct=yes - fi - allow_undefined_flag=' ${wl}-berok' - archive_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bexpall ${wl}-bnoentry${allow_undefined_flag}' - archive_expsym_cmds="\$CC $shared_flag"' -o $objdir/$soname $libobjs $deplibs $linkopts ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}' - case "$host_os" in aix4.[01]|aix4.[01].*) - # According to Greg Wooledge, -bexpall is only supported from AIX 4.2 on - always_export_symbols=yes ;; - esac - ;; - - amigaos*) - archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib $libobjs~$RANLIB $lib~(cd $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 - ;; - - cygwin* | mingw*) - # 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 - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib $libobjs $linkopts `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' - fix_srcfile_path='`cygpath -w $srcfile`' - ;; - - 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 $linkopts /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 $linkopts' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9* | hpux10* | hpux11*) - case "$host_os" in - hpux9*) archive_cmds='$rm $objdir/$soname~$LD -b +b $install_libdir -o $objdir/$soname $libobjs $deplibs $linkopts~test $objdir/$soname = $lib || mv $objdir/$soname $lib' ;; - *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linkopts' ;; - esac - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_minus_L=yes # Not in the search PATH, but as the default - # location of the library. - export_dynamic_flag_spec='${wl}-E' - ;; - - irix5* | irix6*) - if test "$with_gcc" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $linkopts ${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='$LD -shared $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linkopts' # ELF - fi - hardcode_libdir_flag_spec='${wl}-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - openbsd*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp $libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $linkopts $objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' - ;; - - osf3*) - if test "$with_gcc" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${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 the -msym flag - if test "$with_gcc" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $linkopts ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linkopts -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ;; - - solaris*) - 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 $linkopts' - 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 $linkopts~$rm $lib.exp' - 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 - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - 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 $linkopts' - 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 $linkopts~$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 $linkopts' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - 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 $linkopts' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - unixware7*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linkopts' - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac -fi -echo "$ac_t$ld_shlibs" 1>&6 -test "$ld_shlibs" = no && can_build_shared=no - -if test -z "$NM"; then - echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 - case "$NM" in - [\\/]* | [A-Za-z]:[\\/]*) ;; # Let the user override the test with a path. - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}" - for ac_dir in $PATH /usr/ucb /usr/ccs/bin /bin; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/nm || test -f $ac_dir/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 - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - NM="$ac_dir/nm -B" - break - elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - NM="$ac_dir/nm -p" - break - else - NM=${NM="$ac_dir/nm"} # keep the first match, but - continue # so that we can try to find one that supports BSD flags - fi - fi - done - IFS="$ac_save_ifs" - test -z "$NM" && NM=nm - ;; - esac - echo "$ac_t$NM" 1>&6 -fi - -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 - -# 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 -global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" - -# Define system-specific variables. -case "$host_os" in -aix*) - symcode='[BCDT]' - ;; -cygwin* | mingw*) - symcode='[ABCDGISTW]' - ;; -hpux*) # Its linker distinguishes data from code symbols - global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^. .* \(.*\)$/extern char \1;/p'" - ;; -irix*) - symcode='[BCDEGRST]' - ;; -solaris*) - symcode='[BDT]' - ;; -sysv4) - symcode='[DFNSTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - symcode='[ABCDGISTW]' -fi - -# Try without a prefix undercore, then with it. -for ac_symprfx in "" "_"; do - - # Write the raw and C identifiers. - global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode\)[ ][ ]*\($ac_symprfx\)$sympat$/$symxfrm/p'" - - # Check to see that the pipe works correctly. - pipe_works=no - $rm conftest* - cat > conftest.c <&5 - if { (eval echo $progname:1636: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then - # Now try to grab the symbols. - nlist=conftest.nm - if { echo "$progname:1639: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && 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 egrep ' nm_test_var$' "$nlist" >/dev/null; then - if egrep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.c -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - eval "$global_symbol_to_cdecl"' < "$nlist" >> conftest.c' - - cat <> conftest.c -#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/^. \(.*\) \(.*\)$/ {"\2", (lt_ptr_t) \&\2},/' < "$nlist" >> conftest.c - cat <<\EOF >> conftest.c - {0, (lt_ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$objext conftstm.$objext - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="conftstm.$objext" - CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:1691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - pipe_works=yes - else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - LIBS="$save_LIBS" - 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 $global_symbol_pipe" >&5 - fi - else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - $rm conftest* conftst* - - # Do not use the global_symbol_pipe unless it works. - if test "$pipe_works" = yes; then - break - else - global_symbol_pipe= - fi -done -if test "$pipe_works" = yes; then - echo "${ac_t}ok" 1>&6 -else - echo "${ac_t}failed" 1>&6 -fi - -if test -z "$global_symbol_pipe"; then - global_symbol_to_cdecl= -fi - -# Check hardcoding attributes. -echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var"; 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 "$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 "$ac_t$hardcode_action" 1>&6 - - -reload_flag= -reload_cmds='$LD$reload_flag -o $output$reload_objs' -echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 -# PORTME Some linkers may need a different reload flag. -reload_flag='-r' -echo "$ac_t$reload_flag" 1>&6 -test -n "$reload_flag" && reload_flag=" $reload_flag" - -# PORTME Fill in your ld.so characteristics -library_names_spec= -libname_spec='lib$name' -soname_spec= -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" -sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" -file_magic_cmd= -file_magic_test_file= -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 egrep 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. -echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 -case "$host_os" in -aix3*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}.so$major' - ;; - -aix4*) - version_type=linux - # AIX 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. - # We preserve .a as extension for shared libraries though AIX4.2 - # and later linker supports .so - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.a' - shlibpath_var=LIBPATH - deplibs_check_method=pass_all - ;; - -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}.so' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - deplibs_check_method=pass_all - lt_cv_dlopen="load_add_on" - lt_cv_dlopen_libs= - lt_cv_dlopen_self=yes - ;; - -bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - file_magic_cmd=/usr/bin/file - file_magic_test_file=/shlib/libc.so - 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" - export_dynamic_flag_spec=-rdynamic - # 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*) - version_type=windows - need_version=no - need_lib_prefix=no - if test "$with_gcc" = yes; then - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' - else - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' - fi - dynamic_linker='Win32 ld.exe' - deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' - file_magic_cmd='${OBJDUMP} -f' - # FIXME: first we should search . and the directory the executable is in - shlibpath_var=PATH - lt_cv_dlopen="LoadLibrary" - lt_cv_dlopen_libs= - ;; - -freebsd1*) - dynamic_linker=no - ;; - -freebsd*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - case "$version_type" in - freebsd-elf*) - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /usr/lib/libc.so*` - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' - need_version=no - need_lib_prefix=no - ;; - freebsd-*) - deplibs_check_method=unknown - library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' - need_version=yes - ;; - esac - shlibpath_var=LD_LIBRARY_PATH - case "$host_os" in - freebsd2* | freebsd3.[01]* | freebsdelf3.[01]*) - shlibpath_overrides_runpath=yes - ;; - *) # from 3.2 on - shlibpath_overrides_runpath=no - ;; - esac - ;; - -gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - dynamic_linker="$host_os dld.sl" - version_type=sunos - need_lib_prefix=no - need_version=no - shlibpath_var=SHLIB_PATH - shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH - library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' - soname_spec='${libname}${release}.sl$major' - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5* | irix6*) - version_type=irix - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}.so.$major' - library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major ${libname}${release}.so $libname.so' - case "$host_os" in - irix5*) - libsuff= shlibsuff= - # this will be overridden with pass_all, but let us keep it just in case - deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" - ;; - *) - case "$LD" in # libtool.m4 will add one of these switches to LD - *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 ") 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}" - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /lib${libsuff}/libc.so*` - deplibs_check_method='pass_all' - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux-gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` - - if test -f /lib/ld.so.1; then - dynamic_linker='GNU ld.so' - else - # Only the GNU ld.so supports shared libraries on MkLinux. - case "$host_cpu" in - powerpc*) dynamic_linker=no ;; - *) dynamic_linker='Linux ld.so' ;; - esac - fi - ;; - -netbsd*) - version_type=sunos - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - dynamic_linker='NetBSD (a.out) ld.so' - else - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' - soname_spec='${libname}${release}.so$major' - dynamic_linker='NetBSD ld.elf_so' - fi - shlibpath_var=LD_LIBRARY_PATH - ;; - -openbsd*) - version_type=sunos - if test "$with_gnu_ld" = yes; then - need_lib_prefix=no - need_version=no - fi - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - ;; - -os2*) - libname_spec='$name' - need_lib_prefix=no - library_names_spec='$libname.dll $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4* | osf5*) - version_type=osf - need_version=no - soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' - shlibpath_var=LD_LIBRARY_PATH - # this will be overridden with pass_all, but let us keep it just in case - deplibs_check_method='file_magic COFF format alpha shared library' - file_magic_cmd=/usr/bin/file - file_magic_test_file=/shlib/libc.so - deplibs_check_method='pass_all' - 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}.so$major' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=yes - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - deplibs_check_method="file_magic ELF [0-9][0-9]-bit [LM]SB dynamic lib" - file_magic_cmd=/usr/bin/file - file_magic_test_file=/lib/libc.so - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$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}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - case "$host_vendor" in - ncr) - deplibs_check_method='pass_all' - ;; - motorola) - need_lib_prefix=no - need_version=no - shlibpath_overrides_runpath=no - sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' - 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]' - file_magic_cmd=/usr/bin/file - file_magic_test_file=`echo /usr/lib/libc.so*` - ;; - esac - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -dgux*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -sysv4*MP*) - if test -d /usr/nec ;then - version_type=linux - library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' - soname_spec='$libname.so.$major' - shlibpath_var=LD_LIBRARY_PATH - fi - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$ac_t$dynamic_linker" 1>&6 -test "$dynamic_linker" = no && can_build_shared=no - -# Report the final consequences. -echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 - -# Only try to build win32 dlls if AC_LIBTOOL_WIN32_DLL was used in -# configure.in, otherwise build static only libraries. -case "$host_os" in -cygwin* | mingw* | os2*) - if test x$can_build_shared = xyes; then - test x$enable_win32_dll = xno && can_build_shared=no - echo "checking if package supports dlls... $can_build_shared" 1>&6 - fi -;; -esac - -if test -n "$file_magic_test_file" && test -n "$file_magic_cmd"; then - case "$deplibs_check_method" in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - egrep "$file_magic_regex" > /dev/null; then - : - else - cat <&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 - -echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&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*) - test "$enable_shared" = yes && enable_static=no - ;; -esac - -echo "$ac_t$enable_shared" 1>&6 - -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes - -echo "checking whether to build static libraries... $enable_static" 1>&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 - -echo $ac_n "checking for objdir... $ac_c" 1>&6 -rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - objdir=_libs -fi -rmdir .libs 2>/dev/null -echo "$ac_t$objdir" 1>&6 - -if test "x$enable_dlopen" != xyes; then - enable_dlopen=unknown - enable_dlopen_self=unknown - enable_dlopen_self_static=unknown -else -if eval "test \"`echo '$''{'lt_cv_dlopen'+set}'`\" != set"; then - lt_cv_dlopen=no lt_cv_dlopen_libs= -echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "$progname:2212: checking for dlopen in -ldl" >&5 -ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldl $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for dlopen""... $ac_c" 1>&6 -echo "$progname:2252: checking for dlopen" >&5 -if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen(); - -int main() { - -/* 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 -dlopen(); -#endif - -; return 0; } -EOF -if { (eval echo $progname:2282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_dlopen=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_dlopen=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="dlopen" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 -echo "$progname:2299: checking for dld_link in -ldld" >&5 -ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldld $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for shl_load""... $ac_c" 1>&6 -echo "$progname:2339: checking for shl_load" >&5 -if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -/* Override any gcc2 internal prototype to avoid an error. */ -/* We use char because int might match the return type of a gcc2 - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char shl_load(); - -int main() { - -/* 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 -shl_load(); -#endif - -; return 0; } -EOF -if { (eval echo $progname:2369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_func_shl_load=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_func_shl_load=no" -fi -rm -f conftest* -fi - -if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="shl_load" -else - echo "$ac_t""no" 1>&6 -echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "$progname:2387: checking for shl_load in -ldld" >&5 -ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldld $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" -else - echo "$ac_t""no" 1>&6 -fi - - -fi - - -fi - - -fi - - -fi - -fi - - if test "x$lt_cv_dlopen" != xno; then - enable_dlopen=yes - fi - - case "$lt_cv_dlopen" in - dlopen) -for ac_hdr in dlfcn.h; do -ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` -echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "$progname:2452: checking for $ac_hdr" >&5 -if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext < -int fnord = 0; -EOF -ac_try="$ac_compile >/dev/null 2>conftest.out" -{ (eval echo $progname:2462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } -ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` -if test -z "$ac_err"; then - rm -rf conftest* - eval "ac_cv_header_$ac_safe=yes" -else - echo "$ac_err" >&5 - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_header_$ac_safe=no" -fi -rm -f conftest* -fi -if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then - echo "$ac_t""yes" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi -done - - if test "x$ac_cv_header_dlfcn_h" = xyes; then - CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" - fi - eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" - LIBS="$lt_cv_dlopen_libs $LIBS" - - echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 -echo "$progname:2490: checking whether a program can dlopen itself" >&5 -if test "${lt_cv_dlopen_self+set}" = set; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - lt_cv_dlopen_self=cross - else - cat > conftest.c < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -fnord() { int i=42;} -main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); - if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } - -EOF -if { (eval echo $progname:2544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null -then - lt_cv_dlopen_self=yes -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - lt_cv_dlopen_self=no -fi -rm -fr conftest* -fi - -fi - -echo "$ac_t""$lt_cv_dlopen_self" 1>&6 - - if test "$lt_cv_dlopen_self" = yes; then - LDFLAGS="$LDFLAGS $link_static_flag" - echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 -echo "$progname:2563: checking whether a statically linked program can dlopen itself" >&5 -if test "${lt_cv_dlopen_self_static+set}" = set; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test "$cross_compiling" = yes; then - lt_cv_dlopen_self_static=cross - else - cat > conftest.c < -#endif - -#include - -#ifdef RTLD_GLOBAL -# define LTDL_GLOBAL RTLD_GLOBAL -#else -# ifdef DL_GLOBAL -# define LTDL_GLOBAL DL_GLOBAL -# else -# define LTDL_GLOBAL 0 -# endif -#endif - -/* We may have to define LTDL_LAZY_OR_NOW in the command line if we - find out it does not work in some platform. */ -#ifndef LTDL_LAZY_OR_NOW -# ifdef RTLD_LAZY -# define LTDL_LAZY_OR_NOW RTLD_LAZY -# else -# ifdef DL_LAZY -# define LTDL_LAZY_OR_NOW DL_LAZY -# else -# ifdef RTLD_NOW -# define LTDL_LAZY_OR_NOW RTLD_NOW -# else -# ifdef DL_NOW -# define LTDL_LAZY_OR_NOW DL_NOW -# else -# define LTDL_LAZY_OR_NOW 0 -# endif -# endif -# endif -# endif -#endif - -fnord() { int i=42;} -main() { void *self, *ptr1, *ptr2; self=dlopen(0,LTDL_GLOBAL|LTDL_LAZY_OR_NOW); - if(self) { ptr1=dlsym(self,"fnord"); ptr2=dlsym(self,"_fnord"); - if(ptr1 || ptr2) { dlclose(self); exit(0); } } exit(1); } - -EOF -if { (eval echo $progname:2617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null -then - lt_cv_dlopen_self_static=yes -else - echo "$progname: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -fr conftest* - lt_cv_dlopen_self_static=no -fi -rm -fr conftest* -fi - -fi - -echo "$ac_t""$lt_cv_dlopen_self_static" 1>&6 -fi - ;; - 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 - -# Copy echo and quote the copy, instead of the original, because it is -# used later. -ltecho="$echo" -if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then - ltecho="$CONFIG_SHELL \$0 --fallback-echo" -fi -LTSHELL="$SHELL" - -LTCONFIG_VERSION="$VERSION" - -# Only quote variables if we're using ltmain.sh. -case "$ltmain" in -*.sh) - # Now quote all the things that may contain metacharacters. - for var in ltecho old_CC old_CFLAGS old_CPPFLAGS \ - old_LD old_LDFLAGS old_LIBS \ - old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS \ - AR CC LD LN_S NM LTSHELL LTCONFIG_VERSION \ - reload_flag reload_cmds wl \ - pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ - thread_safe_flag_spec whole_archive_flag_spec libname_spec \ - library_names_spec soname_spec \ - RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ - old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds postuninstall_cmds \ - file_magic_cmd export_symbols_cmds deplibs_check_method allow_undefined_flag no_undefined_flag \ - finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ - hardcode_libdir_flag_spec hardcode_libdir_separator \ - sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ - compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do - - case "$var" in - reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) - # Double-quote double-evaled strings. - eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" - ;; - *) - eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case "$ltecho" in - *'\$0 --fallback-echo"') - ltecho=`$echo "X$ltecho" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - - trap "$rm \"$ofile\"; exit 1" 1 2 15 - echo "creating $ofile" - $rm "$ofile" - cat < "$ofile" -#! $SHELL - -# `$echo "$ofile" | 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 ltconfig or ltmain.sh. -# -# Copyright (C) 1996-1999 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 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. - -# 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 - -### BEGIN LIBTOOL CONFIG -EOF - cfgfile="$ofile" - ;; - -*) - # Double-quote the variables that need it (for aesthetics). - for var in old_CC old_CFLAGS old_CPPFLAGS \ - old_LD old_LDFLAGS old_LIBS \ - old_NM old_RANLIB old_LN_S old_DLLTOOL old_OBJDUMP old_AS; do - eval "$var=\\\"\$var\\\"" - done - - # Just create a config file. - cfgfile="$ofile.cfg" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - echo "creating $cfgfile" - $rm "$cfgfile" - cat < "$cfgfile" -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) -EOF - ;; -esac - -cat <> "$cfgfile" -# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# -# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\ -# LD=$old_LD LDFLAGS=$old_LDFLAGS LIBS=$old_LIBS \\ -# NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\ -# DLLTOOL=$old_DLLTOOL OBJDUMP=$old_OBJDUMP AS=$old_AS \\ -# $0$ltconfig_args -# -# Compiler and other test output produced by $progname, useful for -# debugging $progname, is in ./config.log if it exists. - -# The version of $progname that generated this script. -LTCONFIG_VERSION=$LTCONFIG_VERSION - -# Shell to use when invoking shell scripts. -SHELL=$LTSHELL - -# 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 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=$ltecho - -# The archiver. -AR=$AR - -# The default C compiler. -CC=$CC - -# The linker used to build libraries. -LD=$LD - -# Whether we need hard or soft links. -LN_S=$LN_S - -# A BSD-compatible nm program. -NM=$NM - -# 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=$reload_flag -reload_cmds=$reload_cmds - -# How to pass a linker flag through the compiler. -wl=$wl - -# Object file suffix (normally "o"). -objext="$objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Executable file suffix (normally ""). -exeext="$exeext" - -# Additional compiler flags for building library objects. -pic_flag=$pic_flag - -# Does compiler simultaneously support -c and -o options? -compiler_c_o=$compiler_c_o - -# Can we write directly to a .lo ? -compiler_o_lo=$compiler_o_lo - -# Must we lock files when doing compilation ? -need_locks=$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=$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=$link_static_flag - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$no_builtin_flag - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$whole_archive_flag_spec - -# Compiler flag to generate thread-safe objects. -thread_safe_flag_spec=$thread_safe_flag_spec - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$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=$library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$RANLIB -old_archive_cmds=$old_archive_cmds -old_postinstall_cmds=$old_postinstall_cmds -old_postuninstall_cmds=$old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$old_archive_from_new_cmds - -# Commands used to build and install a shared archive. -archive_cmds=$archive_cmds -archive_expsym_cmds=$archive_expsym_cmds -postinstall_cmds=$postinstall_cmds -postuninstall_cmds=$postuninstall_cmds - -# Method to check whether dependent libraries are shared objects. -deplibs_check_method=$deplibs_check_method - -# Command to use when deplibs_check_method == file_magic. -file_magic_cmd=$file_magic_cmd - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$global_symbol_pipe - -# Transform the output of nm in a proper C declaration -global_symbol_to_cdecl=$global_symbol_to_cdecl - -# 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 - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$hardcode_libdir_separator - -# Set to yes if using DIR/libNAME.so 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 - -# Compile-time system search path for libraries -sys_lib_search_path_spec=$sys_lib_search_path_spec - -# Run-time system search path for libraries -sys_lib_dlsearch_path_spec=$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=$export_symbols_cmds - -# Symbols that should not be listed in the preloaded symbols. -exclude_expsyms=$exclude_expsyms - -# Symbols that must always be exported. -include_expsyms=$include_expsyms - -EOF - -case "$ltmain" in -*.sh) - echo '### END LIBTOOL CONFIG' >> "$ofile" - echo >> "$ofile" - case "$host_os" in - aix3*) - cat <<\EOF >> "$ofile" - -# 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 - - # Append the ltmain.sh script. - sed '$q' "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) - # 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? - - chmod +x "$ofile" - ;; - -*) - # Compile the libtool program. - echo "FIXME: would compile $ltmain" - ;; -esac - -test -n "$cache_file" || exit 0 - -# AC_CACHE_SAVE -trap '' 1 2 15 -cat > confcache <<\EOF -# 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. It is not useful on other systems. -# If it contains results you don't want to keep, you may remove or edit it. -# -# By default, configure uses ./config.cache as the cache file, -# creating it if it does not exist already. You can give configure -# the --cache-file=FILE option to use a different cache file; that is -# what configure does when it calls configure scripts in -# subdirectories, so they share the cache. -# Giving --cache-file=/dev/null disables caching, for debugging configure. -# config.status only pays attention to the cache file if you give it the -# --recheck option to rerun configure. -# -EOF -# 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 \ - -e "s/'/'\\\\''/g" \ - -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' - ;; - esac >> confcache -if cmp -s $cache_file confcache; then - : -else - if test -w $cache_file; then - echo "updating cache $cache_file" - cat confcache > $cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -exit 0 - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/Build/source/libs/freetype/ltmain.sh b/Build/source/libs/freetype/ltmain.sh deleted file mode 100755 index 4598ec61ccf..00000000000 --- a/Build/source/libs/freetype/ltmain.sh +++ /dev/null @@ -1,6930 +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, 2005, 2006, -# 2007 Free Software Foundation, Inc. -# Originally by Gordon Matzigkeit , 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 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.24 -TIMESTAMP=" (1.1220.2.455 2007/06/24 02:13:29)" - -# Be Bourne compatible (taken from Autoconf:_AS_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+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# 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 <&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= -duplicate_deps=no -preserve_args= -lo2o="s/\\.lo\$/.${objext}/" -o2lo="s/\\.${objext}\$/.lo/" -extracted_archives= -extracted_serial=0 - -##################################### -# Shell function definitions: -# This seems to be the best place for them - -# func_mktempdir [string] -# Make a temporary directory that won't clash with other running -# libtool processes, and avoids race conditions if possible. If -# given, STRING is the basename for that directory. -func_mktempdir () -{ - my_template="${TMPDIR-/tmp}/${1-$progname}" - - if test "$run" = ":"; then - # Return a directory name, but don't create it in dry-run mode - my_tmpdir="${my_template}-$$" - else - - # If mktemp works, use that first and foremost - my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` - - if test ! -d "$my_tmpdir"; then - # Failing that, at least try and use $RANDOM to avoid a race - my_tmpdir="${my_template}-${RANDOM-0}$$" - - save_mktempdir_umask=`umask` - umask 0077 - $mkdir "$my_tmpdir" - umask $save_mktempdir_umask - fi - - # If we're not in dry-run mode, bomb out on failure - test -d "$my_tmpdir" || { - $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 - exit $EXIT_FAILURE - } - fi - - $echo "X$my_tmpdir" | $Xsed -} - - -# 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 /{ - s,.*,import, - p - q - } - }'` - case $win32_nmres in - import*) win32_libid_type="x86 archive import";; - *) win32_libid_type="x86 archive static";; - esac - 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 -} - - -# func_extract_an_archive dir oldlib -func_extract_an_archive () -{ - f_ex_an_ar_dir="$1"; shift - f_ex_an_ar_oldlib="$1" - - $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" - $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? - if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 - exit $EXIT_FAILURE - fi -} - -# func_extract_archives gentop oldlib ... -func_extract_archives () -{ - my_gentop="$1"; shift - my_oldlibs=${1+"$@"} - my_oldobjs="" - my_xlib="" - my_xabs="" - my_xdir="" - my_status="" - - $show "${rm}r $my_gentop" - $run ${rm}r "$my_gentop" - $show "$mkdir $my_gentop" - $run $mkdir "$my_gentop" - my_status=$? - if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then - exit $my_status - fi - - for my_xlib in $my_oldlibs; do - # Extract the objects. - case $my_xlib in - [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; - *) my_xabs=`pwd`"/$my_xlib" ;; - esac - my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` - my_xlib_u=$my_xlib - while :; do - case " $extracted_archives " in - *" $my_xlib_u "*) - extracted_serial=`expr $extracted_serial + 1` - my_xlib_u=lt$extracted_serial-$my_xlib ;; - *) break ;; - esac - done - extracted_archives="$extracted_archives $my_xlib_u" - my_xdir="$my_gentop/$my_xlib_u" - - $show "${rm}r $my_xdir" - $run ${rm}r "$my_xdir" - $show "$mkdir $my_xdir" - $run $mkdir "$my_xdir" - exit_status=$? - if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then - exit $exit_status - fi - case $host in - *-darwin*) - $show "Extracting $my_xabs" - # Do not bother doing anything if just a dry run - if test -z "$run"; then - darwin_orig_dir=`pwd` - cd $my_xdir || exit $? - darwin_archive=$my_xabs - darwin_curdir=`pwd` - darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` - darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` - if test -n "$darwin_arches"; then - darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` - darwin_arch= - $show "$darwin_base_archive has multiple architectures $darwin_arches" - for darwin_arch in $darwin_arches ; do - mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" - lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" - cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" - func_extract_an_archive "`pwd`" "${darwin_base_archive}" - cd "$darwin_curdir" - $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" - done # $darwin_arches - ## Okay now we have a bunch of thin objects, gotta fatten them up :) - darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` - darwin_file= - darwin_files= - for darwin_file in $darwin_filelist; do - darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` - lipo -create -output "$darwin_file" $darwin_files - done # $darwin_filelist - ${rm}r unfat-$$ - cd "$darwin_orig_dir" - else - cd "$darwin_orig_dir" - func_extract_an_archive "$my_xdir" "$my_xabs" - fi # $darwin_arches - fi # $run - ;; - *) - func_extract_an_archive "$my_xdir" "$my_xabs" - ;; - esac - my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` - done - func_extract_archives_result="$my_oldobjs" -} -# End of Shell function definitions -##################################### - -# Darwin sucks -eval std_shrext=\"$shrext_cmds\" - -disable_libs=no - -# 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 - -Copyright (C) 2007 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." - exit $? - ;; - - --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 $? - ;; - - --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 $? - ;; - - --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 - preserve_args="$preserve_args --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 - -case $disable_libs in -no) - ;; -shared) - build_libtool_libs=no - build_old_libs=yes - ;; -static) - build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` - ;; -esac - -# 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, and some SunOS ksh mistreat backslash-escaping - # in scan sets (worked around with variable expansion), - # and furthermore cannot handle '|' '&' '(' ')' in scan sets - # at all, so we specify them 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 ;; - *.[fF][09]?) xform=[fF][09]. ;; - *.for) xform=for ;; - *.java) xform=java ;; - *.obj) xform=obj ;; - 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 - - qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` - case $qlibobj in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qlibobj="\"$qlibobj\"" ;; - esac - test "X$libobj" != "X$qlibobj" \ - && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ - && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." - 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 - qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` - case $qsrcfile in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - qsrcfile="\"$qsrcfile\"" ;; - esac - - $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 </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 <> ${libobj}T </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 <> ${libobj}T <&2 - fi - if test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - -static) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=built - ;; - -static-libtool-libs) - if test -z "$pic_flag" && test -n "$link_static_flag"; then - dlopen_self=$dlopen_self_static - fi - prefer_static_libs=yes - ;; - esac - build_libtool_libs=no - build_old_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 - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - 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 - ;; - darwin_framework|darwin_framework_skip) - test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $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 - ;; - - -framework|-arch|-isysroot) - case " $CC " in - *" ${arg} ${1} "* | *" ${arg} ${1} "*) - prev=darwin_framework_skip ;; - *) compiler_flags="$compiler_flags $arg" - prev=darwin_framework ;; - esac - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - 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 - absdir="$dir" - notinst_path="$notinst_path $dir" - 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*) - testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$dir:"*) ;; - *) dllsearchpath="$dllsearchpath:$dir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - *) dllsearchpath="$dllsearchpath:$testbindir";; - esac - ;; - esac - continue - ;; - - -l*) - if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) - # These systems don't actually have a C or math library (as such) - continue - ;; - *-*-os2*) - # These systems don't actually have a C library (as such) - test "X$arg" = "X-lc" && continue - ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # 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 - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - test "X$arg" = "X-lc" && continue - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - test "X$arg" = "X-lc" && continue - ;; - esac - elif test "X$arg" = "X-lc_r"; then - case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) - # Do not include libc_r directly, use -pthread flag. - continue - ;; - esac - fi - deplibs="$deplibs $arg" - continue - ;; - - # Tru64 UNIX uses -model [arg] to determine the layout of C++ - # classes, name mangling, and exception handling. - -model) - compile_command="$compile_command $arg" - compiler_flags="$compiler_flags $arg" - finalize_command="$finalize_command $arg" - prev=xcompiler - continue - ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads) - compiler_flags="$compiler_flags $arg" - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - continue - ;; - - -module) - module=yes - continue - ;; - - # -64, -mips[0-9] enable 64-bit mode on the SGI compiler - # -r[0-9][0-9]* specifies the processor on the SGI compiler - # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler - # +DA*, +DD* enable 64-bit mode on the HP compiler - # -q* pass through compiler args for the IBM compiler - # -m* pass through architecture-specific compiler args for GCC - # -m*, -t[45]*, -txscale* pass through architecture-specific - # compiler args for GCC - # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC - # -F/path gives path to uninstalled frameworks, gcc on darwin - # @file GCC response files - -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ - -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*) - - # 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" - compiler_flags="$compiler_flags $arg" - continue - ;; - - -shrext) - prev=shrext - continue - ;; - - -no-fast-install) - fast_install=no - continue - ;; - - -no-install) - case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*) - # The PATH hackery in wrapper scripts is required on Windows - # and Darwin 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 | -static-libtool-libs) - # 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 - else - # If the PIC object exists, use it instead. - # $xdir was prepended to $pic_object above. - non_pic_object="$pic_object" - non_pic_objects="$non_pic_objects $non_pic_object" - 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 - exit_status=$? - if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then - exit $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 - 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|-threads) - if test "$linkmode,$pass" = "prog,link"; then - compile_deplibs="$deplib $compile_deplibs" - finalize_deplibs="$deplib $finalize_deplibs" - else - compiler_flags="$compiler_flags $deplib" - fi - continue - ;; - -l*) - if test "$linkmode" != lib && test "$linkmode" != prog; then - $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 - 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) - valid_a_lib=no - case $deplibs_check_method in - match_pattern*) - set dummy $deplibs_check_method - match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` - if eval $echo \"$deplib\" 2>/dev/null \ - | $SED 10q \ - | $EGREP "$match_pattern_regex" > /dev/null; then - valid_a_lib=yes - fi - ;; - pass_all) - valid_a_lib=yes - ;; - esac - if test "$valid_a_lib" != yes; 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' or unhandled argument \`$deplib'" 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 - avoidtemprpath= - - - # 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 - test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes - else - if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then - dir="$ladir" - absdir="$abs_ladir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" - else - dir="$ladir/$objdir" - absdir="$abs_ladir/$objdir" - # Remove this search path later - notinst_path="$notinst_path $abs_ladir" - fi - 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 "$prefer_static_libs,$installed" = "built,yes"; } || - test -z "$old_library"; }; then - # We need to hardcode the library path - if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $absdir" ;; - 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 - use_static_libs=$prefer_static_libs - if test "$use_static_libs" = built && test "$installed" = yes ; then - use_static_libs=no - fi - if test -n "$library_names" && - { test "$use_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.0.[024]*) add_dir="-L$dir" ;; - *-*-sysv4*uw2*) add_dir="-L$dir" ;; - *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ - *-*-unixware7*) 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 - 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 - *" $path "*) ;; - *) deplibs="$path $deplibs" ;; - esac - case " $deplibs " in - *" $depdepl "*) ;; - *) deplibs="$depdepl $deplibs" ;; - 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|none) - 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` - age="$number_minor" - revision="$number_minor" - lt_irix_increment=no - ;; - 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]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - $echo "$modename: CURRENT \`$current' must be 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]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - $echo "$modename: REVISION \`$revision' must be 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]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; - *) - $echo "$modename: AGE \`$age' must be 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` - xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" - 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) - if test "X$lt_irix_increment" = "Xno"; then - major=`expr $current - $age` - else - major=`expr $current - $age + 1` - fi - 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* | *-*-dragonfly*) - # Do not include libc due to us having libc/libc_r. - ;; - *-*-sco3.2v5* | *-*-sco5v6*) - # Causes problems with __ctype - ;; - *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) - # Compiler inserts libc in the correct place for threads to work - ;; - *) - # 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 </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 - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $deplibs " in - *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; - esac - ;; - *) new_libs="$new_libs $deplib" ;; - esac - done - deplibs="$new_libs" - - - # 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 - case $archive_cmds in - *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;; - *) eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;; - esac - 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" - linknames= - 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=: - # Break out early, otherwise skipped_export may be - # set to false by a later but shorter cmd. - break - 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" - generated="$generated $gentop" - - func_extract_archives $gentop $convenience - libobjs="$libobjs $func_extract_archives_result" - 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" : ".*" 2>/dev/null` && - 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 - output_la=`$echo "X$output" | $Xsed -e "$basename"` - - # 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/$output_la-${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" : ".*" 2>/dev/null` && - 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/$output_la-${k}.$objext - k=`expr $k + 1` - output=$output_objdir/$output_la-${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 reloadable object files - # after they are used. - i=0 - while test "$i" -lt "$k" - do - i=`expr $i + 1` - delfiles="$delfiles $output_objdir/$output_la-${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" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' - fi - - exit $lt_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 $? - - if test -n "$convenience"; then - if test -z "$whole_archive_flag_spec"; then - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - fi - fi - - 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 and hope we can get by with - # turning comma into space.. - wl= - - if test -n "$convenience"; then - if test -n "$whole_archive_flag_spec"; then - eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" - reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'` - else - gentop="$output_objdir/${obj}x" - generated="$generated $gentop" - - func_extract_archives $gentop $convenience - reload_conv_objs="$reload_objs $func_extract_archives_result" - 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 - - - # move library search paths that coincide with paths to not yet - # installed libraries to the beginning of the library search list - new_libs= - for path in $notinst_path; do - case " $new_libs " in - *" -L$path/$objdir "*) ;; - *) - case " $compile_deplibs " in - *" -L$path/$objdir "*) - new_libs="$new_libs -L$path/$objdir" ;; - esac - ;; - esac - done - for deplib in $compile_deplibs; do - case $deplib in - -L*) - case " $new_libs " in - *" $deplib "*) ;; - *) new_libs="$new_libs $deplib" ;; - esac - ;; - *) new_libs="$new_libs $deplib" ;; - esac - done - compile_deplibs="$new_libs" - - - 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*) - testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` - case :$dllsearchpath: in - *":$libdir:"*) ;; - *) dllsearchpath="$dllsearchpath:$libdir";; - esac - case :$dllsearchpath: in - *":$testbindir:"*) ;; - *) dllsearchpath="$dllsearchpath:$testbindir";; - 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/$outputname.exp" - $run $rm $export_symbols - $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' - case $host in - *cygwin* | *mingw* ) - $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' - ;; - esac - else - $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' - $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' - $run eval 'mv "$nlist"T "$nlist"' - case $host in - *cygwin* | *mingw* ) - $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' - $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' - ;; - esac - 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 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. */ -" - - case $host in - *cygwin* | *mingw* ) - $echo >> "$output_objdir/$dlsyms" "\ -/* DATA imports from DLLs on WIN32 can't be const, because - runtime relocations are performed -- see ld's documentation - on pseudo-relocs */ -struct { -" - ;; - * ) - $echo >> "$output_objdir/$dlsyms" "\ -const struct { -" - ;; - esac - - - $echo >> "$output_objdir/$dlsyms" "\ - 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 $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" - $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -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. - case $host in - *cygwin* | *mingw* ) - if test -f "$output_objdir/${outputname}.def" ; then - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP` - else - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - fi - ;; - * ) - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP` - ;; - esac - ;; - *) - $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" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` - finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP` - fi - - if test "$need_relink" = no || test "$build_libtool_libs" != yes; then - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP` - link_command="$compile_command$compile_rpath" - - # We have no uninstalled library dependencies, so finalize right now. - $show "$link_command" - $run eval "$link_command" - exit_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 $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" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP` - 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" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` - 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* ) - output_name=`basename $output` - output_path=`dirname $output` - cwrappersource="$output_path/$objdir/lt-$output_name.c" - cwrapper="$output_path/$output_name.exe" - $rm $cwrappersource $cwrapper - trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 - - cat > $cwrappersource <> $cwrappersource<<"EOF" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#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 '/' -# define PATH_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 -# ifndef PATH_SEPARATOR_2 -# define PATH_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 */ - -#ifndef PATH_SEPARATOR_2 -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) -#else /* PATH_SEPARATOR_2 */ -# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) -#endif /* PATH_SEPARATOR_2 */ - -#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) -#define XFREE(stale) do { \ - if (stale) { free ((void *) stale); stale = 0; } \ -} while (0) - -/* -DDEBUG is fairly common in CFLAGS. */ -#undef DEBUG -#if defined DEBUGWRAPPER -# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) -#else -# define DEBUG(format, ...) -#endif - -const char *program_name = NULL; - -void * xmalloc (size_t num); -char * xstrdup (const char *string); -const char * base_name (const char *name); -char * find_executable(const char *wrapper); -int check_executable(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 (base_name (argv[0])); - DEBUG("(main) argv[0] : %s\n",argv[0]); - DEBUG("(main) program_name : %s\n",program_name); - newargz = XMALLOC(char *, argc+2); -EOF - - cat >> $cwrappersource <> $cwrappersource <<"EOF" - newargz[1] = find_executable(argv[0]); - if (newargz[1] == NULL) - lt_fatal("Couldn't find %s", argv[0]); - DEBUG("(main) found exe at : %s\n",newargz[1]); - /* 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; - - for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" - return 127; -} - -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 -; -} - -const char * -base_name (const char *name) -{ - const char *base; - -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - /* Skip over the disk name in MSDOS pathnames. */ - if (isalpha ((unsigned char)name[0]) && name[1] == ':') - name += 2; -#endif - - for (base = name; *name; name++) - if (IS_DIR_SEPARATOR (*name)) - base = name + 1; - return base; -} - -int -check_executable(const char * path) -{ - struct stat st; - - DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); - if ((!path) || (!*path)) - return 0; - - if ((stat (path, &st) >= 0) && - ( - /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ -#if defined (S_IXOTH) - ((st.st_mode & S_IXOTH) == S_IXOTH) || -#endif -#if defined (S_IXGRP) - ((st.st_mode & S_IXGRP) == S_IXGRP) || -#endif - ((st.st_mode & S_IXUSR) == S_IXUSR)) - ) - return 1; - else - return 0; -} - -/* Searches for the full path of the wrapper. Returns - newly allocated full path name if found, NULL otherwise */ -char * -find_executable (const char* wrapper) -{ - int has_slash = 0; - const char* p; - const char* p_next; - /* static buffer for getcwd */ - char tmp[LT_PATHMAX + 1]; - int tmp_len; - char* concat_name; - - DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); - - if ((wrapper == NULL) || (*wrapper == '\0')) - return NULL; - - /* Absolute path? */ -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') - { - concat_name = xstrdup (wrapper); - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - } - else - { -#endif - if (IS_DIR_SEPARATOR (wrapper[0])) - { - concat_name = xstrdup (wrapper); - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - } -#if defined (HAVE_DOS_BASED_FILE_SYSTEM) - } -#endif - - for (p = wrapper; *p; p++) - if (*p == '/') - { - has_slash = 1; - break; - } - if (!has_slash) - { - /* no slashes; search PATH */ - const char* path = getenv ("PATH"); - if (path != NULL) - { - for (p = path; *p; p = p_next) - { - const char* q; - size_t p_len; - for (q = p; *q; q++) - if (IS_PATH_SEPARATOR(*q)) - break; - p_len = q - p; - p_next = (*q == '\0' ? q : q + 1); - if (p_len == 0) - { - /* empty path: current directory */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); - tmp_len = strlen(tmp); - concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - } - else - { - concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); - memcpy (concat_name, p, p_len); - concat_name[p_len] = '/'; - strcpy (concat_name + p_len + 1, wrapper); - } - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - } - } - /* not found in PATH; assume curdir */ - } - /* Relative path | not found in path: prepend cwd */ - if (getcwd (tmp, LT_PATHMAX) == NULL) - lt_fatal ("getcwd failed"); - tmp_len = strlen(tmp); - concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); - memcpy (concat_name, tmp, tmp_len); - concat_name[tmp_len] = '/'; - strcpy (concat_name + tmp_len + 1, wrapper); - - if (check_executable(concat_name)) - return concat_name; - XFREE(concat_name); - return NULL; -} - -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 $LTCFLAGS -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' - -# Be Bourne compatible (taken from Autoconf:_AS_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+\"\$@\"}'='\"\$@\"' - setopt NO_GLOB_SUBST -else - case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac -fi -BIN_SH=xpg4; export BIN_SH # for Tru64 -DUALCASE=1; export DUALCASE # for MKS sh - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH - -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 \$*\" - 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" - generated="$generated $gentop" - - func_extract_archives $gentop $addlibs - oldobjs="$oldobjs $func_extract_archives_result" - 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 - # POSIX demands no paths to be encoded in archives. We have - # to avoid creating archives with duplicate basenames if we - # might have to extract them afterwards, e.g., when creating a - # static archive out of a convenience library, or when linking - # the entirety of a libtool archive into another (currently - # not supported by libtool). - if (for obj in $oldobjs - do - $echo "X$obj" | $Xsed -e 's%^.*/%%' - done | sort | sort -uc >/dev/null 2>&1); then - : - else - $echo "copying selected object files to avoid basename conflicts..." - - if test -z "$gentop"; then - gentop="$output_objdir/${outputname}x" - generated="$generated $gentop" - - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "$mkdir $gentop" - $run $mkdir "$gentop" - exit_status=$? - if test "$exit_status" -ne 0 && test ! -d "$gentop"; then - exit $exit_status - fi - fi - - save_oldobjs=$oldobjs - oldobjs= - counter=1 - for obj in $save_oldobjs - do - objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - case " $oldobjs " in - " ") oldobjs=$obj ;; - *[\ /]"$objbase "*) - while :; do - # Make sure we don't pick an alternate name that also - # overlaps. - newobj=lt$counter-$objbase - counter=`expr $counter + 1` - case " $oldobjs " in - *[\ /]"$newobj "*) ;; - *) if test ! -f "$gentop/$newobj"; then break; fi ;; - esac - done - $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" - $run ln "$obj" "$gentop/$newobj" || - $run cp "$obj" "$gentop/$newobj" - oldobjs="$oldobjs $gentop/$newobj" - ;; - *) oldobjs="$oldobjs $obj" ;; - esac - done - fi - - 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 - - # 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" : ".*" 2>/dev/null` && - 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" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP` - 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" | 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) - case " $install_prog " in - *[\\\ /]cp\ *) ;; - *) prev=$arg ;; - esac - ;; - -g | -m | -o) prev=$arg ;; - -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" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP` - else - relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP` - 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. - # Try `ln -sf' first, because the `ln' binary might depend on - # the symlink we replace! Solaris /bin/ln does not understand -f, - # so we also need to try rm && ln -s. - for linkname - do - if test "$linkname" != "$realname"; then - $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" - $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $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" || { - lt_exit=$? - - # Restore the uninstalled library and exit - if test "$mode" = relink; then - $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' - fi - - exit $lt_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= - - # Note that it is not necessary on cygwin/mingw to append a dot to - # foo even if both foo and FILE.exe exist: automatic-append-.exe - # behavior happens only for exec(3), not for open(2)! Also, sourcing - # `FILE.' does not work on cygwin managed mounts. - # - # If there is no directory component, then add one. - case $wrapper in - */* | *\\*) . ${wrapper} ;; - *) . ./${wrapper} ;; - 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= - # Note that it is not necessary on cygwin/mingw to append a dot to - # foo even if both foo and FILE.exe exist: automatic-append-.exe - # behavior happens only for exec(3), not for open(2)! Also, sourcing - # `FILE.' does not work on cygwin managed mounts. - # - # If there is no directory component, then add one. - case $wrapper in - */* | *\\*) . ${wrapper} ;; - *) . ./${wrapper} ;; - esac - - outputname= - if test "$fast_install" = no && test -n "$relink_command"; then - if test "$finalize" = yes && test -z "$run"; then - tmpdir=`func_mktempdir` - file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` - outputname="$tmpdir/$file" - # Replace the output file specification. - relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP` - - $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 anyway - 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 "X----------------------------------------------------------------------" | $Xsed - $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 "X----------------------------------------------------------------------" | $Xsed - 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 - if test ! -f "$dir/$dlname"; then - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit $EXIT_FAILURE - fi - 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 - for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES - do - eval "if test \"\${save_$lt_var+set}\" = set; then - $lt_var=\$save_$lt_var; export $lt_var - fi" - done - - # 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" - - case "$mode" in - clean) - case " $library_names " in - # " " in the beginning catches empty $dlname - *" $dlname "*) ;; - *) rmfiles="$rmfiles $objdir/$dlname" ;; - esac - test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" - ;; - uninstall) - 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. - ;; - esac - 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 ." - 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 uninstalled libtool libraries - -static-libtool-libs - 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 $? - -# 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 -disable_libs=shared -# ### END LIBTOOL TAG CONFIG: disable-shared - -# ### BEGIN LIBTOOL TAG CONFIG: disable-static -disable_libs=static -# ### END LIBTOOL TAG CONFIG: disable-static - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/Build/source/libs/freetype/mkinstalldirs b/Build/source/libs/freetype/mkinstalldirs deleted file mode 100755 index ef7e16fdafe..00000000000 --- a/Build/source/libs/freetype/mkinstalldirs +++ /dev/null @@ -1,161 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy - -scriptversion=2006-05-11.19 - -# Original author: Noah Friedman -# Created: 1993-05-16 -# Public domain. -# -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -nl=' -' -IFS=" "" $nl" -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 ." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" - exit $? - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --version) - echo "$0 $scriptversion" - exit $? - ;; - --) # 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 - case $file in - /*) pathcomp=/ ;; - *) pathcomp= ;; - esac - oIFS=$IFS - IFS=/ - set fnord $file - shift - IFS=$oIFS - - for d - do - test "x$d" = x && continue - - 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/Build/source/libs/freetype/net.m4 b/Build/source/libs/freetype/net.m4 deleted file mode 100644 index 919766781a2..00000000000 --- a/Build/source/libs/freetype/net.m4 +++ /dev/null @@ -1,55 +0,0 @@ -dnl -dnl The following was written by jhawk@mit.edu -dnl -dnl AC_LIBRARY_NET: Id: net.m4,v 1.4 1997/10/25 20:49:53 jhawk Exp -dnl -dnl This test is for network applications that need socket() and -dnl gethostbyname() -ish functions. Under Solaris, those applications need to -dnl link with "-lsocket -lnsl". Under IRIX, they should *not* link with -dnl "-lsocket" because libsocket.a breaks a number of things (for instance: -dnl gethostbyname() under IRIX 5.2, and snoop sockets under most versions of -dnl IRIX). -dnl -dnl Unfortunately, many application developers are not aware of this, and -dnl mistakenly write tests that cause -lsocket to be used under IRIX. It is -dnl also easy to write tests that cause -lnsl to be used under operating -dnl systems where neither are necessary (or useful), such as SunOS 4.1.4, which -dnl uses -lnsl for TLI. -dnl -dnl This test exists so that every application developer does not test this in -dnl a different, and subtly broken fashion. -dnl -dnl It has been argued that this test should be broken up into two seperate -dnl tests, one for the resolver libraries, and one for the libraries necessary -dnl for using Sockets API. Unfortunately, the two are carefully intertwined and -dnl allowing the autoconf user to use them independantly potentially results in -dnl unfortunate ordering dependancies -- as such, such component macros would -dnl have to carefully use indirection and be aware if the other components were -dnl executed. Since other autoconf macros do not go to this trouble, and almost -dnl no applications use sockets without the resolver, this complexity has not -dnl been implemented. -dnl -dnl The check for libresolv is in case you are attempting to link statically -dnl and happen to have a libresolv.a lying around (and no libnsl.a). -dnl -AC_DEFUN([AC_LIBRARY_NET], [ - # Most operating systems have gethostbyname() in the default searched - # libraries (i.e. libc): - AC_CHECK_FUNC(gethostbyname, , - # Some OSes (eg. Solaris) place it in libnsl: - AC_CHECK_LIB(nsl, gethostbyname, , - # Some strange OSes (SINIX) have it in libsocket: - AC_CHECK_LIB(socket, gethostbyname, , - # Unfortunately libsocket sometimes depends on libnsl. - # AC_CHECK_LIB's API is essentially broken so the following - # ugliness is necessary: - AC_CHECK_LIB(socket, gethostbyname, - LIBS="-lsocket -lnsl $LIBS", - AC_CHECK_LIB(resolv, gethostbyname), - -lnsl) - ) - ) - ) - AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, , - AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , -lnsl))) - ]) diff --git a/Build/source/libs/freetype/pascal/README b/Build/source/libs/freetype/pascal/README deleted file mode 100644 index e8c197ac579..00000000000 --- a/Build/source/libs/freetype/pascal/README +++ /dev/null @@ -1,10 +0,0 @@ -In previous releases of Freetype v.1.x, this directory hold a Pascal -version of the FreeType library. Since it has proven to be difficult -to keep the Pascal version in sync with the C version, we decided to -split the two projects, making the Pascal version of the Freetype -1.5 library available separately. - -If you are interested in the Pascal version, please visit -http://www.freetype.org for more information. - ---- end of pascal/README --- diff --git a/Build/source/libs/freetype/po/.cvsignore b/Build/source/libs/freetype/po/.cvsignore deleted file mode 100644 index 2c6880244fe..00000000000 --- a/Build/source/libs/freetype/po/.cvsignore +++ /dev/null @@ -1,8 +0,0 @@ -*.gmo -*.mo -Makefile -Makefile.in -POTFILES -cat-id-tbl.c -freetype.pot -stamp-cat-id diff --git a/Build/source/libs/freetype/po/.cvsignore.delete b/Build/source/libs/freetype/po/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Build/source/libs/freetype/po/Makefile.in.in b/Build/source/libs/freetype/po/Makefile.in.in deleted file mode 100644 index f16ad4dcbbc..00000000000 --- a/Build/source/libs/freetype/po/Makefile.in.in +++ /dev/null @@ -1,220 +0,0 @@ -# -# -# Makefile for freetype I18n, -# based on the Makefile.in.in that comes with gettext -# -# Erwin Dieterich, 20. 1. 1998 Erwin.Dieterich.ED@Bayer-AG.de -# -# -# -# Makefile for program source directory in GNU NLS utilities package. -# Copyright (C) 1995, 1996 Free Software Foundation, Inc. -# -# 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, 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. - -PACKAGE = freetype -VERSION = @freetype_version@ - -SHELL = /bin/sh -@SET_MAKE@ - -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -VPATH = @srcdir@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = $(prefix)/@DATADIRNAME@ -localedir = @LOCALEDIR@ -gnulocaledir = @LOCALEDIR@ -subdir = po - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -CC = @CC@ -GMSGFMT = @GMSGFMT@ -MSGFMT = @MSGFMT@ -XGETTEXT = @XGETTEXT@ -MSGMERGE = @MSGMERGE@ - -DEFS = @DEFS@ -CFLAGS = @CFLAGS@ -CPPFLAGS = @CPPFLAGS@ - -INCLUDES = -I.. - -COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) - -DISTFILES = Makefile.in.in POTFILES.in $(PACKAGE).pot - -POTFILES = \ - -CATALOGS = @CATALOGS@ -CATOBJEXT = @CATOBJEXT@ -INSTOBJEXT = @INSTOBJEXT@ - -.SUFFIXES: -.SUFFIXES: .c .o .po .pox .gmo .mo .msg - -.c.o: - $(COMPILE) $< - -.po.pox: - $(MAKE) $(PACKAGE).pot - $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox - -.po.mo: - $(MSGFMT) -o $@ $< - -.po.gmo: - file=`echo $* | sed 's,.*/,,'`.gmo \ - && rm -f $$file && $(GMSGFMT) -o $$file $< - - - -all: all-@USE_NLS@ - -all-yes: $(PACKAGE).pot $(CATALOGS) -all-no: - @echo "No support for NLS requested" - -$(PACKAGE).pot: $(POTFILES) - if test -n "$(XGETTEXT)"; then \ - $(XGETTEXT) --default-domain=freetype --directory=$(srcdir)/.. \ - --keyword=_ --files-from=$(srcdir)/POTFILES.in; \ - mv freetype.po freetype.pot; \ - else \ - echo "xgettext not available: $(PACKAGE).pot not updated" 1>&2; \ - fi - - -install: install-exec install-data -install-exec: -install-data: install-data-@USE_NLS@ -install-data-no: all -install-data-yes: all - $(top_srcdir)/mkinstalldirs $(datadir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - case "$$cat" in \ - *.gmo) destdir=$(gnulocaledir);; \ - *) destdir=$(localedir);; \ - esac; \ - lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \ - dir=$$destdir/$$lang/LC_MESSAGES; \ - $(top_srcdir)/mkinstalldirs $$dir; \ - if test -r $$cat; then \ - $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ - echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \ - else \ - $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \ - fi; \ - if test -r $$cat.m; then \ - $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ - else \ - if test -r $(srcdir)/$$cat.m ; then \ - $(INSTALL_DATA) $(srcdir)/$$cat.m \ - $$dir/$(PACKAGE)$(INSTOBJEXT).m; \ - echo "installing $(srcdir)/$$cat as" \ - "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \ - else \ - true; \ - fi; \ - fi; \ - done - -# Define this as empty until I found a useful application. -installcheck: - -uninstall: - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \ - rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \ - done - rm -f $(gettextsrcdir)/po-Makefile.in.in - -check: all - -dvi info tags TAGS ID: - -mostlyclean: - rm -f core core.* *.pox $(PACKAGE).po *.old.po - rm -fr *.o *~ - -clean: mostlyclean - -distclean: clean - rm -f Makefile Makefile.in POTFILES *.mo *.gmo *.msg *.cat.m - -maintainer-clean: distclean - @echo "This command is intended for maintainers to use;" - @echo "it deletes files that may require special tools to rebuild." - -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir) -dist distdir: update-po $(DISTFILES) - dists="$(DISTFILES)"; \ - for file in $$dists; do \ - ln $(srcdir)/$$file $(distdir) 2> /dev/null \ - || cp -p $(srcdir)/$$file $(distdir); \ - done - -update-po: Makefile - $(MAKE) $(PACKAGE).pot - PATH=`pwd`/../src:$$PATH; \ - cd $(srcdir); \ - catalogs='$(CATALOGS)'; \ - for cat in $$catalogs; do \ - lang=`echo $$cat | sed 's/$(CATOBJEXT)$$//'`; \ - mv $$lang.po $$lang.old.po; \ - echo "$$lang:"; \ - if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \ - rm -f $$lang.old.po; \ - else \ - echo "msgmerge for $$cat failed!"; \ - rm -f $$lang.po; \ - mv $$lang.old.po $$lang.po; \ - fi; \ - done - -POTFILES: POTFILES.in - ( if test 'x$(srcdir)' != 'x.'; then \ - posrcprefix='$(top_srcdir)/'; \ - else \ - posrcprefix="../"; \ - fi; \ - sed -e '/^#/d' -e '/^[ ]*$$/d' \ - -e "s@.*@ $$posrcprefix& \\\\@" \ - -e '$$s/\(.*\) \\/\1/' < $(srcdir)/POTFILES.in > POTFILES ) - -Makefile: Makefile.in.in ../config.status POTFILES - cd .. \ - && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ - $(SHELL) ./config.status - -# Tell versions [3.59,3.63) of GNU make not to export all variables. -# Otherwise a system limit (for SysV at least) may be exceeded. -.NOEXPORT: - -.PHONY: all all-yes all-no install install-exec install-data install-data-no \ - install-data-yes installcheck uninstall check mostlyclean clean \ - distclean maintainer-clean dist distdir update-po diff --git a/Build/source/libs/freetype/po/POTFILES.in b/Build/source/libs/freetype/po/POTFILES.in deleted file mode 100644 index 71ce09d9ca1..00000000000 --- a/Build/source/libs/freetype/po/POTFILES.in +++ /dev/null @@ -1,10 +0,0 @@ -# -# List of source files containing translatable strings -# -# -lib/extend/ftxerr18.c -test/fterror.c -test/ftdump.c -test/ftlint.c -test/ftmetric.c -test/ftsbit.c diff --git a/Build/source/libs/freetype/po/cs.po b/Build/source/libs/freetype/po/cs.po deleted file mode 100644 index 34de4178404..00000000000 --- a/Build/source/libs/freetype/po/cs.po +++ /dev/null @@ -1,883 +0,0 @@ -# Czech messages for FreeType -# Copyright (C) 1998-2002 Pavel Kaòkovský -# Pavel Kaòkovský , 1998-2002 -# -msgid "" -msgstr "" -"Project-Id-Version: FreeType 1.5\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: 2002-12-25\n" -"Last-Translator: Pavel Kaòkovský , 2002\n" -"Language-Team: Czech\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "" -"(Read)" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "Úspì¹né volání funkce, ¾ádná chyba." - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "Neplatný manipulátor písma." - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "Neplatný manipulátor instance." - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "Neplatný manipulátor litery." - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "Neplatný manipulátor znakové mapy." - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "Neplatná adresa výsledku." - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "Neplatný index litery." - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "Neplatný argument." - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "Nelze otevøít soubor." - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "Soubor není kolekce písem TrueType." - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "Nìkterá z povinných tabulek chybí." - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "Neplatná horizontální metrika (tabulka HMTX po¹kozena)." - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "Neplatný formát znakové mapy." - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "Neplatné rozmìry liter (ppem)." - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "Neplatná vertikální metrika (tabulka VMTX po¹kozena)." - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "Neplatný formát souboru." - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "Neplatná globální data knihovny." - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "Pøíli¹ mnoho roz¹íøení." - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "Roz¹íøení není podporováno." - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "Neplatný identifikátor roz¹íøení." - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "V písmu nejsou obsa¾ena ¾ádná vertikální data." - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "Chybìjící tabulka maximálních hodnot (MAXP)." - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "Chybìjící tabulka hlavièky písma (HEAD)." - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "Chybìjící tabulka horizontální hlavièky (HHEA)." - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "Chybìjící tabulka adres liter (LOCA)." - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "Chybìjící tabulka jmen (NAME)." - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "Chybìjící tabulky znakových map (CMAP)." - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "Chybìjící tabulka horizontálních metrik (HTMX)." - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "Chybìjící tabulka OS/2." - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "Chybìjící tabulka dat pro PostScript (POST)." - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "Chybìjící tabulka liter (GLYF)." - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "Nedostatek pamìti." - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "Neplatná adresa v souboru." - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "Neplatné ètení ze souboru." - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "Neplatný pøístup k úseku souboru." - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "Pøíli¹ mnoho bodù." - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "Pøíli¹ mnoho kontur." - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "Neplatná kompozitní litera." - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "Pøíli¹ mnoho instrukcí." - -#: lib/extend/ftxerr18.c:169 -msgid "Too many function definitions (FDEF)." -msgstr "Pøíli¹ mnoho definic funkcí (FDEF)." - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "Neplatný kód operace." - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "Pøíli¹ málo argumentù." - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "Pøeteèení zásobníku." - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "Pøeteèení oblasti instrukcí." - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "©patný argument." - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "Dìlení nulou." - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "Pøeteèení oblasti pro ukládání dat." - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "Pøeteèení tabulky øídících hodnot (CVT)." - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "Neplatný odkaz." - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "Neplatná vzdálenost." - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "Interpolace mezi body v \"soumraèné zónì\"." - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "Ladící operace." - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "Operace ENDF nalezena na ¹patném místì." - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "Mimo oblasti instrukcí." - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "Vnoøené definice funkcí." - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "Neplatná oblast instrukcí." - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "Neplatné posunutí." - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "Do¹lo k zacyklení bìhem vykonávání instrukcí." - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "Vnoøené pøístupy k úseku souboru." - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "Neplatný seznam vyrovnávací pamìti." - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "Nelze najít kontext." - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "Objekt není v seznamu." - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "Pøeteèení pamìti rasterizéru." - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "Rasterizér: záporná vý¹ka." - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "Rasterizér: neplatná hodnota." - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "Rasterizér není incializován." - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "Neplatný formát tabulky kernù (KERN)." - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "Neplatná tabulka kernù (KERN)." - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "Neplatný formát tabulky PostScript (POST)." - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "Neplatná tabulka PostScript (POST)." - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "Neplatný formát podtabulky TrueType Open." - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "Neplatná podtabulka TrueType Open." - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "Jedna èi více liter bìhem prohledávání nenalezena." - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "Pøíli¹ mnoho vnoøených kontextových substitucí." - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "®ádný interpreter MM (Adobe MultipleMaster) není k dispozici." - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "Neplatný formát tabulky substitucí liter (GSUB)." - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "Neplatná tabulka substitucí liter (GSUB)." - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "Neplatný formát tabulky umís»ování liter (GPOS)." - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "Neplatná tabulka umís»ování liter (GPOS)." - -#: lib/extend/ftxerr18.c:268 -msgid "Invalid glyph definition (GDEF) table format." -msgstr "Neplatný formát tabulky definic liter (GDEF)." - -#: lib/extend/ftxerr18.c:270 -msgid "Invalid glyph definition (GDEF) table." -msgstr "Neplatná tabulka definic liter (GDEF)." - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "Neznámý kód chyby." - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "" -"fterror: test funkce TT_ErrToString18\n" -"\n" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr "" -" pøi zadání èíselného argumentu vypí¹e odpovídající hlá¹ení.\n" -"\n" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "Zaèátek fterror.\n" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "Konec fterror.\n" - -#: test/fterror.c:96 -#, c-format -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "Chybové hlá¹ení FreeType 0x%04lX (%lu): %s\n" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "Nelze vytvoøit kontejner liter.\n" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "Nelze vytvoøit instanci.\n" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "Nelze vytvoøit druhou instanci.\n" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "Statistika pamì»ových nárokù:\n" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "objekt písma" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "objekt litery" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "objekt instance" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "objekt provádìcího kontextu" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "celková spotøeba pamìti" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "Chybové hlá¹ení FreeType: %s\n" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "polo¾ky v tabulce jmen\n" - -#: test/ftdump.c:310 -#, c-format -msgid "" -"PostScript name: %s\n" -"\n" -msgstr "" -"PostScriptové jméno: %s\n" -"\n" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "kódování map znakù\n" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "Soubor zøejmì neobsahuje ¾ádnou mapu znakù.\n" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" -"%hu kódování:\n" -"\n" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr "kódování %2u: " - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "Neznámá hodnota %hu" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "Neznámé" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "test roz¹íøení ftxcmap\n" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "kódování %2u:\n" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "první: index litery %hu, kód znaku 0x%lx\n" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "dal¹í: index litery %hu, kód znaku 0x%lx\n" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "poslední: index litery %hu, kód znaku 0x%lx\n" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "Chyba bìhem naèítání tabulky vlo¾ených bitmap.\n" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "tabulka vlo¾ených bitmap\n" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr " verze tabulky vlo¾ených bitmap: 0x%lx\n" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr " poèet blokù vlo¾ených bitmap: %lu\n" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr " blok vlo¾ených bitmap %hu/%lu: " - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "%hux%hu pixelù, bitová hloubka %hu, litery [%hu..%hu]\n" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr " úsek formátu (%hu:%hu) litery %hu..%hu\n" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "Chyba bìhem naèítání tabulky GSUB.\n" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "tabulka GSUB\n" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "Chyba bìhem prohledávání seznamu GSUB skriptù.\n" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "Chyba pøi pokusu vybrat GSUB skript \"%4.4s\".\n" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr " skript \"%4.4s\" (index %hu):\n" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" -"Chyba bìhem zkoumání bì¾ného GSUB jazykového systému pro skript \"%4.4s\".\n" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr " bì¾ný jazykový systém:\n" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Chyba pøi výbìru GSUB vlastnosti \"%4.4s\"\n" -"pro bì¾ný jazykový systém skriptu \"%4.4s\".\n" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr " vlastnost \"%4.4s\" (index %hu; vyhledávání " - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "Chyba bìhem zkoumání GSUB seznamu jazykù pro skript \"%4.4s\".\n" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "Chyba bìhem výbìru GSUB jazyka \"%4.4s\" pro skript \"%4.4s\".\n" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr " jazyk \"%4.4s\" (index %hu):\n" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr " po¾adovaná vlastnost (index %hu; vyhledávání " - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Chyba bìhem zkoumání seznamu GSUB vlastností\n" -"pro skript \"%4.4s\", jazyk \"%4.4s\".\n" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Chyba bìhem výbìru GSUB vlastnosti \"%4.4s\"\n" -"pro skript \"%4.4s\", jazyk \"%4.4s\".\n" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr "" -"Vyhledávací údaje:\n" -"\n" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr " %hu: typ %hu, pøíznaky 0x%x\n" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "Chyba bìhem naèítání tabulky GPOS.\n" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "tabulka GPOS\n" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "Chyba bìhem prohledávání seznamu GPOS skriptù.\n" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "Chyba pøi pokusu vybrat GPOS skript \"%4.4s\".\n" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" -"Chyba bìhem zkoumání bì¾ného GPOS jazykového systému pro skript \"%4.4s\".\n" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Chyba pøi výbìru GPOS vlastnosti \"%4.4s\"\n" -"pro bì¾ný jazykový systém skriptu \"%4.4s\".\n" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "Chyba bìhem zkoumání GPOS seznamu jazykù pro skript \"%4.4s\".\n" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "Chyba bìhem výbìru GPOS jazyka \"%4.4s\" pro skript \"%4.4s\".\n" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Chyba bìhem zkoumání seznamu GPOS vlastností\n" -"pro skript \"%4.4s\", jazyk \"%4.4s\".\n" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Chyba bìhem výbìru GPOS vlastnosti \"%4.4s\"\n" -"pro skript \"%4.4s\", jazyk \"%4.4s\".\n" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "" -"ftdump: jednoduchý výpis obsahu písma TrueType -- souèást projektu FreeType" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" -"Pou¾ití: %s název-písma[.ttf|.ttc]\n" -"\n" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "Chyba bìhem inicializace knihovny.\n" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "Chyba bìhem inicializace roz¹íøení pro vlo¾ené bitmapy.\n" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "Chyba bìhem inicializace roz¹íøení pro substituce liter (GSUB).\n" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "Chyba bìhem inicializace roz¹íøení pro umís»ování liter (GPOS).\n" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "Nelze nalézt nebo otevøít soubor %s.\n" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "Chyba bìhem otevírání souboru %s.\n" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "ftlint: test instrukcí písma TrueType -- souèást projektu FreeType" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" -"Pou¾ití: %s ppem název-písma[.ttf|.ttc] [název-dal¹ího-písma...]\n" -"\n" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "Nelze nastavit velikost písma na %d bodù.\n" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" -"Výskyt chyb\n" -" " - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "litera %4d: %s\n" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "poèet chyb: 1\n" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "poèet chyb: %d\n" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "ftmetric: výpis metrik písma TrueType -- souèást projektu FreeType" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" -"Pou¾ití: %s [volby (viz ní¾e)] bodová-velikost název-písma[.ttf|.ttc]\n" -"\n" -" -B zobraz rozmìry bitmapy (std: nezobrazuj)\n" -" -c C pou¾ij písmo indexu C z kolekce písem (std: 0)\n" -" -i index index litery (std: 0)\n" -" -r R rozli¹ení R bodù na palec (std: 72 dpi)\n" -"\n" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "Poèet písem v kolekci: %d.\n" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "V kolekci není ¾ádné písmo s indexem %d.\n" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "V souboru písma nejsou vlo¾eny ¾ádné bitmapy.\n" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "Nelze nastavit rozli¹ení zaøízení.\n" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "Nelze inicializovat instanci.\n" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "Rozmìry instance: ppemX %d, ppemY %d\n" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "Nelze vytvoøit kontejner vlo¾ených bitmap.\n" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "Nelze naèíst bitmapu pro literu %d.\n" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "Rozmìry obrysu" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "Obrys litery\n" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "" -"ftsbit: výpis bitmap vlo¾ených do písma TrueType -- souèást projektu FreeType" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" -"Pou¾ití: %s ppem název-písma[.ttf|.ttc] index-litery [index-dal¹í-litery...]\n" -"\n" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "V souboru písma nelze nalézt ¾ádné vlo¾ené bitmapy.\n" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "Chyba bìhem naèítání vlo¾ených bitmap.\n" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr " litera %d nemá ¾ádnou vlo¾enou bitmapu.\n" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "litera %d = %dx%d pixelù, " - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "posun = %ld, minBearing = [%ld,%ld]\n" diff --git a/Build/source/libs/freetype/po/de.po b/Build/source/libs/freetype/po/de.po deleted file mode 100644 index de1c08d1492..00000000000 --- a/Build/source/libs/freetype/po/de.po +++ /dev/null @@ -1,885 +0,0 @@ -# German messages for FreeType. -# Copyright (C) 1997-2000 Erwin Dieterich -# Erwin Dieterich , 1997-2000. -# -msgid "" -msgstr "" -"Project-Id-Version: FreeType 1.5\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: 2002-11-10\n" -"Last-Translator: Werner Lemberg \n" -"Language-Team: German\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "no translation needed" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "Funktionsaufruf erfolgreich." - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "Ungültiges Schriftobjekt." - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "Ungültiges Instanzenobjekt." - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "Ungültiges Glyphobjekt." - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "Ungültiges Objekt für Zeichenkodierungstabelle (charmap)." - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "Ungültige Ergebnisadresse." - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "Ungültiger Glyphindex." - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "Ungültiger Übergabeparameter" - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "Datei konnte nicht geöffnet werden." - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "Datei ist keine TrueType-Collection." - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "Eine obligatorische Tabelle fehlt." - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "Ungültige horizontale Metrik (`hmtx'-Tabelle defekt)." - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "Ungültiges Format der Zeichenkodierungstabelle (charmap)." - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "Ungültiger ppem-Wert." - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "Ungültige vertikale Metrik (`vmtx'-Tabelle defekt)." - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "Ungültiges Dateiformat." - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "Ungültige FreeType-Maschine (engine)." - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "Zu viele Erweiterungen." - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "Erweiterungen nicht unterstützt." - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "Ungültige Erweiterungs-ID." - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "Keine vertikale Informationen in der Schrift." - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "`Maximum Profile (maxp)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "`Font Header (head)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "`Horizontal Header (hhea)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "`Index to Location (loca)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "`Naming (name)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "`Character to Glyph Index Mapping (cmap)'-Tabellen fehlen." - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "`Horizontal Metrics (hmtx)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "`OS/2'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "`PostScript (post)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "`Glyph (glyf)'-Tabelle fehlt." - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "Zu wenig Speicher." - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "Ungültiger Dateioffset." - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "Ungültiger Lesezugriff auf Datei." - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "Ungültiger Zugriff auf Speicherfenster (frame)." - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "Zu viele Punkte." - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "Zu viele Konturen." - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "Ungültiger zusammengesetzter Glyph." - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "Zu viele Programminstruktionen." - -#: lib/extend/ftxerr18.c:169 -msgid "Too many function definitions (FDEF)." -msgstr "Zu viele Funktionsdefinitionen (FDEF)." - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "Ungültiger Opcode." - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "Zu wenig Übergabeparameter." - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "Stack-Überlauf." - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "Code-Überlauf." - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "Falscher Übergabeparameter." - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "Division durch Null." - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "Speicherüberlauf." - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "Überlauf der `Control Value (cvt)'-Tabelle." - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "Ungültige Referenz." - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "Ungültiger Abstand." - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "Interpolation von Punkten der Zwielichtzone." - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "`DEBUG'-Opcode gefunden." - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "`ENDF' in Bytecode-Strom." - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "Außerhalb der Code-Bereiche." - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "Verschachtelte Funktionsdefinitionen." - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "Ungültiger Codebereich." - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "Ungültige Verschiebung." - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "" -"Unendliche Schleife beim Ausführen\n" -"der Programminstruktionen entdeckt." - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "Verschachtelter Zugriff auf Speicherfenster (frame)." - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "Ungütlige Cacheliste." - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "Der Kontext konnte nicht gefunden werden." - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "Objekt ist nicht aufgeführt." - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "Überlauf des Rasterpools." - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "Raster: Negative Höhe gefunden." - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "Raster: Ungültiger Wert." - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "Raster nicht initialisiert." - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "Ungültiges Format der `Kerning (kern)'-Tabelle." - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "Ungültige `Kerning (kern)'-Tabelle." - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "Ungültiges Format der `PostScript (post)'-Tabelle." - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "Ungültige `PostScript (post)'-Tabelle." - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "Ungültiges Format einer TrueType-Open-Subtabelle." - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "Ungültige TrueType-Open-Subtabelle." - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "Glyph(en) von Lookup-Prozedur nicht erfaßt." - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "Zu viele verschachtelte Kontext-Substitutionen." - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "Kein MM-Interpreter (für Adobe MultipleMaster Fonts) verfügbar." - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "Ungültiges Format der `glyph substitution (GSUB)'-Tabelle." - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "Ungültige `glyph substitution (GSUB)'-Tabelle." - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "Ungültiges Format der `glyph positioning (GPOS)'-Tabelle." - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "Ungültige `glyph positioning (GPOS)'-Tabelle." - -#: lib/extend/ftxerr18.c:268 -msgid "Invalid glyph definition (GDEF) table format." -msgstr "Ungültiges Format der `glyph definition (GDEF)'-Tabelle." - -#: lib/extend/ftxerr18.c:270 -msgid "Invalid glyph definition (GDEF) table." -msgstr "Ungültige `glyph definition (GDEF)'-Tabelle." - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "Ungültige Fehler-ID." - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "" -"fterror: Teste Funktionalität von TT_ErrToString18\n" -"\n" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr "" -" ein optionales numerisches Argument liefert die assoziierte Meldung.\n" -"\n" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "Beginn von fterror.\n" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "Ende von fterror.\n" - -#: test/fterror.c:96 -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "FreeType Fehlercode 0x%04lX (%lu): %s\n" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "Konnte den Glyphcontainer nicht erzeugen.\n" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "Konnte die Instanz nicht erzeugen.\n" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "Konnte die zweite Instanz nicht erzeugen.\n" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "Speicherabdruck-Statistik:\n" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "Schriftobjekt" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "Glyphobjekt" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "Instanzobjekt" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "Ausführbares Kontextobjekt" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "Gesamtverbrauch an Speicher" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "FreeType Fehlermeldung: %s\n" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "Einträge in der `name'-Tabelle der Schrift\n" - -#: test/ftdump.c:310 -#, c-format -msgid "" -"PostScript name: %s\n" -"\n" -msgstr "" -"PostScript-Name: %s\n" -"\n" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "Zeichenkodierungstabellen (cmaps)\n" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "Diese Datei enthält anscheinend keine `cmap'-Tabelle.\n" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" -"Es gibt %hu Kodierungen:\n" -"\n" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr "Kodierung %2u: " - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "Unbekannter Wert %hu" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "Unbekannt" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "Test von ftxcmap\n" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "Kodierung %2u:\n" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "Erster Eintrag: Glyphindex %hu, Zeichenkode 0x%lx\n" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "Nächster Eintrag: Glyphindex %hu, Zeichenkode 0x%lx\n" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "Letzter Eintrag: Glyphindex %hu, Zeichenkode 0x%lx\n" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "Fehler beim Laden der `embedded bitmaps'-Tabelle.\n" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "`embedded bitmap'-Tabelle\n" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr " Version der `embedded bitmap'-Tabelle: 0x%lx\n" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr " Anzahl der eingebetteten Bitmapsätze: %lu\n" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr " Bitmapsatz %hu/%hu: " - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "%hux%hu Pixel, Tiefe %hu Bit, Glyphbereich [%hu-%hu]\n" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr " Bereichsformat (%hu:%hu) Glyphen %hu-%hu\n" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "Fehler beim Laden der `GSUB'-Tabelle.\n" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "`GSUB'-Tabelle\n" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "Fehler bei Abfrage der GSUB Schriftenliste.\n" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "Fehler bei Auswahl der GSUB Schrift `%4.4s'.\n" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr " Schrift `%4.4s' (Index %hu):\n" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" -"Fehler bei Abfrage der GSUB-Standardsprachenwerte für Schrift `%4.4s'.\n" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr " Standardsprachenwerte:\n" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Fehler bei Auswahl des GSUB-Merkmals `%4.4s'\n" -"für Standardsprachenwert der Schrift `%4.4s'.\n" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr " Merkmal `%4.4s' (Index %hu; Lookup " - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "Fehler bei Abfrage der GSUB-Sprachenliste für Schrift `%4.4s'.\n" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "Fehler bei Auswahl der GSUB-Sprache `%4.4s' für Schrift `%4.4s'.\n" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr " Sprache `%4.4s' (Index %hu):\n" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr " Benötigtes Merkmal: Index %hu (Lookup " - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fehler bei Abfrage der GSUB-Merkmaltabelle\n" -"für Schrift `%4.4s', Sprache `%4.4s'.\n" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fehler bei Auswahl des GSUB-Merkmals `%4.4s'\n" -"für Schrift `%4.4s', Sprache `%4.4s'.\n" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr "" -"Lookups:\n" -"\n" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr " %hu: Typ %hu, Flag 0x%x\n" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "Fehler beim Laden der `GPOS'-Tabelle.\n" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "`GPOS'-Tabelle\n" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "Fehler bei Abfrage der GPOS Schriftenliste.\n" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "Fehler bei Auswahl der GPOS Schrift `%4.4s'.\n" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" -"Fehler bei Abfrage der GPOS-Standardsprachenwerte für Schrift `%4.4s'.\n" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Fehler bei Auswahl des GPOS-Merkmals `%4.4s'\n" -"für Standardsprachenwert der Schrift `%4.4s'.\n" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "Fehler bei Abfrage der GPOS-Sprachenliste für Schrift `%4.4s'.\n" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "Fehler bei Auswahl der GPOS-Sprache `%4.4s' für Schrift `%4.4s'.\n" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fehler bei Abfrage der GPOS-Merkmaltabelle\n" -"für Schrift `%4.4s', Sprache `%4.4s'.\n" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fehler bei Auswahl des GPOS-Merkmals `%4.4s'\n" -"für Schrift `%4.4s', Sprache `%4.4s'.\n" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "ftdump: Ein einfacher TrueType Dumper -- Teil des FreeType-Projekts" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" -"Verwendung: %s Fontname[.ttf|.ttc]\n" -"\n" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "Fehler beim Starten von FreeType.\n" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "Fehler bei Initialisierung der Erweiterung für eingebettete Bitmaps.\n" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "Fehler beim Starten der GSUB-Erweiterung.\n" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "Fehler beim Starten der GPOS-Erweiterung.\n" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "Datei `%s' konnte nicht gefunden oder geöffnet werden.\n" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "Fehler beim Öffnen von %s.\n" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "" -"ftlint: Ein einfacher TTF Instruktionen-Tester -- Teil des FreeType-Projekts" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" -"Verwendung: %s ppem Fontname[.ttf|.ttc] [Fontname2..]\n" -"\n" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "Konnte die Schriftgröße nicht auf %d Punkt setzen.\n" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" -"Fehler bei\n" -" " - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "Glyph %4u: %s\n" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "einmal gescheitert.\n" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "%d mal gescheitert.\n" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "" -"ftmetric: Ein einfacher TTF Metrik/Glyph-Dumper -- Teil des FreeType-Projekts" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" -"Verwendung: %s [Optionen s.u.] Punktgröße Fontname[.ttf|.ttc]\n" -"\n" -" -B zeige Metriken von eingebetteten Bitmaps (Standardwert: nein)\n" -" -c C verwende den `C'ten Fontindex der TrueType-Collection\n" -" (Standardwert: 0)\n" -" -i Index Glyphindex (Standardwert: 0)\n" -" -r R verwende Auflösung `R' dpi (Standardwert: 72)\n" -"\n" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "Es gibt %d Fonts in dieser TrueType-Collection.\n" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "In dieser Fontdatei gibt es keine Collection mit Index %d.\n" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "Konnte keine eingebetteten Bitmaps in Fontdatei finden.\n" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "Konnte die Geräteauflösung nicht setzen.\n" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "Konnte die Instanz nicht neu setzen.\n" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "Instanzmetriken: ppemX %d, ppemY %d\n" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "Konnte den Glyphcontainer für Bitmaps nicht erzeugen.\n" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "Kann Bitmap für Glyph %d nicht laden.\n" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "Vektormetriken" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "Vektorglyph\n" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "" -"ftsbit: Ein einfacher TrueType `sbit' Dumper -- Teil des FreeType-Projekts" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" -"Verwendung: %s ppem Fontname[.ttf|.ttc] Glyphindex [Glyphindex2..]\n" -"\n" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "Konnte keine eingebetteten Bitmaps in Fontdatei finden.\n" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "Fehler beim Laden von eingebettete Bitmaps.\n" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr " keine Bitmap für Glyph %d.\n" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "Glyphindex %d = %dx%d Pixel, " - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "Vorschubbreite = %ld, `minBearing' = [%ld,%ld]\n" diff --git a/Build/source/libs/freetype/po/es.po b/Build/source/libs/freetype/po/es.po deleted file mode 100644 index 0ff48e5b9be..00000000000 --- a/Build/source/libs/freetype/po/es.po +++ /dev/null @@ -1,888 +0,0 @@ -# Spanish messages for FreeType. -# Copyright (C) 1998-2002 Miguel A. Pérez Valdenebro -# Miguel A. Pérez Valdenebro , 1998. -# -msgid "" -msgstr "" -"Project-Id-Version: FreeType 1.5\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: 2002-11-08 18:30+0100\n" -"Last-Translator: \n" -"Language-Team: Spanish\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "Éxito en la llamada a función." - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "Ticket de diseño inválido." - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "Ticket de instancia inválido." - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "Ticket de glifo inválido." - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "Ticket de codificación inválido." - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "Dirección del resultado inválida." - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "Índice de glifo inválido." - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "Argumento inválido." - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "No se puedo abrir el fichero." - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "El fichero no es una colección TrueType." - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "No se encuentra une tabla obligatoria." - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "Dimensiones horizontales (tabla `hmtx') incorrectas." - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "Formato de codificación inválido." - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "Tamaño en pixel invalido." - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "Dimensiones verticales (tabla `vmtx') incorrectas." - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "Formato de fichero inválido." - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "Instancia de la biblioteca incorrecta." - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "Demasiadas extensiones (max:8)." - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "Extensión no soportada." - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "Identificador de extensión inválido." - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "Placa sin datos verticales." - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "No se encuentra la tabla `maxp'." - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "No se encuentra la cabecera (head) de la placa." - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "No se encuentra la cabecera para la horizontal (hhea)." - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "No se encuentra la tabla de los posiciones (loca)." - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "No se encuentra la tabla de los nombres (name)." - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "" -"No se encuentra la tabla de correspondencia de carácter a glifo (cmap)." - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "No se encuentra la tabla de dimensiones horizontales (hmtx)." - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "No se encuentra la tabla `OS/2'." - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "No se encuentra la tabla PostScript (post)." - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "No se encuentra los glifos (tabla `glyf')." - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "No hay suficiente memoria." - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "Dirección en el fichero inválido." - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "Lectura de fichero incorrecta." - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "Ventana de acceso inválida." - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "Demasiados puntos de control." - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "Demasiados contornos." - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "Glifo compuesto inválido." - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "Demasiadas instrucciones." - -#: lib/extend/ftxerr18.c:169 -msgid "Too many function definitions (FDEF)." -msgstr "Demasiadas definiciones de funciones (FDEF)." - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "Código de operación inválido." - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "Hace falta más argumentos." - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "Desbordamiento de pila." - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "Desbordamiento de código." - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "Argumento incorrecto." - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "División por cero." - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "Desbordamiento de capacidad en el almacen." - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "Desbordamiento de capacidad (tabla CVT)." - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "Referencia incorrecta." - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "Distancia incorrecta." - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "Interpolación de marcas (puntos de referencia)." - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "Se ha encontrado la instrucción `DEBUG'." - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "Se ha encontrado `ENDF' en el programa de un glifo." - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "Demasiados espacios de ejecución (code ranges)." - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "Definiciones de funciones encajadas." - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "Espacio de ejecución (code range) incorrecto." - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "Desplazamiento inválido." - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "" -"Se ha encontrado bucle sin fin durante la ejecución de las instrucciones." - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "Ventanas de acceso encajadas." - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "Lista de `cache' inválida." - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "No se puede encontrar el contexto." - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "Este objeto no es encadenado en el `cache'." - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "Tramador: Desbordamiento de memoria." - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "Tramador: altura negativa." - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "Tramador: valor erroneo." - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "Tramador no inicializado." - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "Formato de la tabla `kern' incorrecto." - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "Tabla `kern' inválida." - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "Formato de tabla PostScript (post) incorrecto." - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "Tabla PostScript (post) inválida." - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "Formato de la tabla TrueType Open incorrecto." - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "Tabla TrueType Open inválida." - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "Estos glifos no existen en las tablas de busqueda (lookups)." - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "Demasiados cambios contextuales encajados." - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "No encontrado el intérprete per MM (Adobe MultipleMaster)." - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "Formato de la tabla de cambios de glifos (GSUB) incorrecto." - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "Tabla de cambios de glifos (GSUB) inválida." - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "Formato de la tabla de posiciones de los glifos (GPOS) incorrecto." - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "Tabla de posiciones de los glifos (GPOS) inválida." - -#: lib/extend/ftxerr18.c:268 -msgid "Invalid glyph definition (GDEF) table format." -msgstr "Formato de la tabla de definiciones de los glifos (GDEF) incorrecto." - -#: lib/extend/ftxerr18.c:270 -msgid "Invalid glyph definition (GDEF) table." -msgstr "Tabla de definiciones de los glifos (GDEF) inválida." - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "Número de Error Inválido." - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "fterror: ensayo si funcciona TT_ErrToString18\n\n" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr " con un argumento númerico opcional, escribe el mensaje asociado.\n\n" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "Inicio de fterror.\n" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "Fin de fterror.\n" - -#: test/fterror.c:96 -#, c-format -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "Código de error FreeType 0x%04lX (%lu):\n" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "No se puede crear una caja de glifo.\n" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "No se puede crear una instancia.\n" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "No se puede crear una segunda instancia.\n" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "Estadísticas de asignación de memoria:\n" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "objeto diseño" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "objeto glifo" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "objeto instancia" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "objeto contexto de calculo" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "uso total de memoria" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "Mensaje de error FreeType: %s\n" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "Entradas en la tabla de nombres\n" - -#: test/ftdump.c:310 -#, c-format -msgid "" -"PostScript name: %s\n" -"\n" -msgstr "" -"Nombre PostScript: %s\n" -"\n" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "Codificaciones del mapa de caracteres\n" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "La placa no parece tener ninguna tabla de codificación.\n" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" -"Hay %hu codificaciones:\n" -"\n" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr " codificación %2u: " - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "Desconocido %hu" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "Desconocido" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "Muestra de ftxcmap\n" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "Codificación %2u:\n" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "primero: glifo índice %hu, codigo de carácter 0x%lx\n" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "siguiente: glifo índice %hu, codigo de carácter 0x%lx\n" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "ultimo: glifo índice %hu, codigo de carácter 0x%lx\n" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "Error durante la recuperación de los bitmaps.\n" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "Tabla de bitmaps\n" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr " version de la tabla de bitmap: 0x%lx\n" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr " número de tamaños de bitmaps: %lu\n" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr " tamaño %hu en %lu: " - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "%hux%hu pixels, en %hu bits, glifos [%hu...%hu]\n" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr " formato intervalo (%hu:%hu) glifos %hu...%hu\n" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "Error durante la creación de la tabla GSUB.\n" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "Table de cambios de glifos (GSUB)\n" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "Error durante la busqueda de la lista de las escrituras en GSUB.\n" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "Error durante la selección de la escritura `%4.4s' en GSUB.\n" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr " escritura `%4.4s' (índice %hu):\n" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" -"Error durante la busqueda en GSUB de las informaciones\n" -"relativas a las lenguas estandar de la escritura `%4.4s'.\n" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr " lenguas estandar:\n" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Error durante la selección de la información `%4.4s' en GSUB\n" -"para las lenguas estandar de la escritura `%4.4s'.\n" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr " información `%4.4s' (índice %hu: tabla de busqueda " - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "" -"Error durante la busqueda de las lenguas para la escritura `%4.4s' en GSUB.\n" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "" -"Error durante la selección de la lengua `%4.4s' para la escritura `%4.4s' en " -"GSUB.\n" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr " lengua `%4.4s' (índice %hu):\n" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr " información obligatoria índice %hu (tabla de busqueda " - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Error durante la busqueda en GSUB de las informaciones\n" -"relativas a la escritura `%4.4s', lengua `%4.4s'.\n" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Error durante la selección de la información `%4.4s'\n" -"relativa a la escritura `%4.4s', lengua `%4.4s' en GSUB.\n" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr "Tabla de busqueda:\n" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr " %hu: tipo %hu, indicador 0x%x\n" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "Error durante la creación de la tabla GPOS.\n" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "Table de posición de glifos (GPOS)\n" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "Error durante la busqueda de la lista de las escrituras en GPOS.\n" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "Error durante la selección de la escritura `%4.4s' en GPOS.\n" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" -"Error durante la busqueda en GPOS de las informaciones\n" -"relativas a las lenguas estandar de la escritura `%4.4s'.\n" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Error durante la selección de la información `%4.4s' en GPOS\n" -"para las lenguas estandar de la escritura `%4.4s'.\n" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "" -"Error durante la busqueda de las lenguas para la escritura `%4.4s' en GPOS.\n" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "" -"Error durante la selección de la lengua `%4.4s' para la escritura `%4.4s' en " -"GPOS.\n" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Error durante la busqueda en GPOS de las informaciones\n" -"relativas a la escritura `%4.4s', lengua `%4.4s'.\n" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Error durante la selección de la información `%4.4s'\n" -"relativa a la escritura `%4.4s', lengua `%4.4s' en GPOS.\n" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "" -"ftdump: información sobre placas TrueType -- parte del proyecto FreeType" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" -"Uso: %s nombre_de_la_placa[.ttf|.ttc]\n" -"\n" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "Error durante la inicialización de la biblioteca.\n" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "Error durante la inicialización de la extensión `bitmap'.\n" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "Error durante la inicialización de la extensión `GSUB'.\n" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "Error durante la inicialización de la extensión `GPOS'.\n" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "No se puede encontrar o abrir el fichero %s.\n" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "Error abriendo %s.\n" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "" -"ftlint: verificador de instrucciones TrueType -- parte del proyecto FreeType" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" -"Uso: %s ppem nombre_de_la_placa[.ttf|.ttc] [nombre2...]\n" -"\n" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "No se puede asignar el tamaño del punto a %d.\n" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" -"Error con\n" -" " - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "glifo %4u: %s\n" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "1 error.\n" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "%d errores.\n" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "" -"ftmetric: información sobre dimensiones TrueType -- parte del proyecto " -"FreeType" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" -"Uso: %s [optiones] ppem nombre_de_la_placa[.ttf|.ttc]\n" -"\n" -" -B muestra dimensiones de los sbit's (default: no)\n" -" -c C usa (C+1)ª placa de la collección TrueType (default: 1ª)\n" -" -i index muestra esto glifo (default: primero glifo)\n" -" -r R usa resolución R en dpi (default: 72)\n" -"\n" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "Hay %d placas en esta collección.\n" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "No hay placa con índice %d en esto fichero.\n" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "No hay bitmaps en esto fichero.\n" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "No se puede poner esta resolución.\n" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "No se puede inicializar la instancia.\n" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "Dimensiones: ppemX %d, ppemY %d\n" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "No se puede crear un contenedor de bitmap.\n" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "Ne se puede crear un bitmap para el glifo %d.\n" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "Dimensiones del contorno" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "Glifo utilizando el contorno\n" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "ftsbit: bitmaps de una placa TrueType -- parte del proyecto FreeType" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" -"Uso: %s ppem nombre_de_font[.ttf|.ttc] índice_de_glifo [índice2...]\n" -"\n" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "No se puede encontrar bitmaps en esto fichero.\n" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "Error durante la lectura de los bitmaps.\n" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr " no bitmap para el glifo %d.\n" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "glifo índice %d = %dx%d pixels, " - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "`advance' = %ld, `bearings' = [%ld,%ld]\n" diff --git a/Build/source/libs/freetype/po/fr.po b/Build/source/libs/freetype/po/fr.po deleted file mode 100644 index f88bc2b022f..00000000000 --- a/Build/source/libs/freetype/po/fr.po +++ /dev/null @@ -1,883 +0,0 @@ -# French messages for FreeType, without accents. -# Copyright (C) 1998-2002 David Turner -# David Turner , 1998 -# -msgid "" -msgstr "" -"Project-Id-Version: FreeType 1.5\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: 2002-11-08 18:20+0100\n" -"Last-Translator: Antoine Leca \n" -"Language-Team: French\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=us-ascii\n" -"Content-Transfer-Encoding: 7bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "(Lu - Antoine Leca, 2002-11-08)" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "Appel de fonction reussi, pas d'erreur." - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "Mauvais handle d'oeil (face)." - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "Mauvais handle d'instance." - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "Mauvais handle de glyphe." - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "Mauvais handle d'encodage (charmap)." - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "Mauvaise adresse de resultat." - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "Numero de glyphe incorrect." - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "Argument incorrect." - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "Le fichier n'a pas pu etre ouvert." - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "Ce fichier n'est pas une collection." - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "Il manque une table critique." - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "Metriques horizontales (table `hmtx') incorrectes." - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "Format d'encodage (charmap) invalide." - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "Taille en pixels incorrecte." - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "Metriques verticales (table `vmtx') incorrectes." - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "Format de fichier invalide." - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "Mauvaise instance de bibliotheque (engine)" - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "Trop d'extensions utilisees (max: 8)." - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "Extensions non disponibles." - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "Mauvais numero d'extension." - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "Pas de donnees verticales dans cette police." - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "Il manque la table `maxp'." - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "Il manque l'en-tete de police (head)." - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "Il manque l'en-tete pour l'horizontale (hhea)." - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "Il manque les index de glyphes (table `loca')." - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "Il manque la table des noms (name)." - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "Il manque la table des encodages (cmap)." - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "Il manque les metriques horizontales (hmtx)." - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "Il manque la table `OS/2'." - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "Il manque la table Postscript (post)." - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "Il manque les glyphes (table `glyf')." - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "Pas assez de memoire." - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "Adresse dans le fichier incorrecte." - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "Lecture du fichier impossible." - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "Fenetre d'access incorrecte." - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "Trop de points." - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "Trop de contours." - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "Glyphe compose invalide." - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "Trop d'instructions." - -#: lib/extend/ftxerr18.c:169 -msgid "Too many function definitions (FDEF)." -msgstr "Trop de definitions de fonctions (FDEF)." - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "Code-operation invalide." - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "Il manque un ou des arguments." - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "Debordement de la pile." - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "Debordement dans le code." - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "Mauvais argument." - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "Division par zero." - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "Depassement de capacite (stockage)." - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "Depassement de capacite (tableau cvt)." - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "Reference incorrecte." - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "Distance incorrecte." - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "Interpolation de points de repere." - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "Le code `DEBUG' a ete rencontre." - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "'ENDF' invalide dans les instructions d'un glyphe." - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "Pas assez d'espace d'execution (code ranges)." - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "Definitions imbriquees de fonction." - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "Espace d'execution (code range) incorrect." - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "Deplacement invalide." - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "Arret force d'une boucle infinie." - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "Fenetres d'acces imbriquees." - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "(Mauvaise liste chainee de caches)." - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "Contexte introuvable." - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "Objet non chaine dans le cache." - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "Debordement de memoire de la trameuse." - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "Trameuse: hauteur negative." - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "Trameuse: valeur incorrecte." - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "Trameuse: non initialisee." - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "Format de table de crenage (kern) invalide." - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "Table de crenage (kern) incorrecte." - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "Format de table Postscript (post) invalide." - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "Table Postscript (post) incorrecte." - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "Format de table TrueType Open invalide." - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "Sous-table TrueType Open incorrecte." - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "Des glyphes sont absents d'une table de recherche (lookup)." - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "Substitutions contextuelles imbriquees trop profondement." - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "Pas d'interpreteur MM (Adobe MultipleMaster) disponible." - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "Format de la table de substitution de glyphes (GSUB) invalide." - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "Table de substitution de glyphes (GSUB) incorrecte." - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "Format de table de positionnement des glyphes (GPOS) invalide." - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "Table de positionnement des glyphes (GPOS) incorrecte." - -#: lib/extend/ftxerr18.c:268 -msgid "Invalid glyph definition (GDEF) table format." -msgstr "Format de table de definition des glyphes (GDEF) invalide." - -#: lib/extend/ftxerr18.c:270 -msgid "Invalid glyph definition (GDEF) table." -msgstr "Table de definition des glyphes (GDEF) incorrecte." - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "Numero d'erreur inconnu ?" - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "" -"fterror: teste la fonctionnalite TT_ErrToString18\n" -"\n" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr "" -" avec un argument numerique optionnel, ecrit le message associe.\n" -"\n" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "Debut de fterror.\n" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "Fin de fterror.\n" - -#: test/fterror.c:96 -#, c-format -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "Code d'erreur FreeType 0x%04lX (%lu) : %s\n" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "Impossible de creer un conteneur de glyphe.\n" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "Impossible de creer une instance\n" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "Impossible de creer une deuxieme instance.\n" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "Statistiques de consommation de la memoire:\n" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "objet oeil" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "objet glyphe" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "objet instance" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "objet contexte" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "consommation totale de memoire" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "Message d'erreur FreeType : %s\n" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "Elements du tableau des noms\n" - -#: test/ftdump.c:310 -#, c-format -msgid "PostScript name: %s\n\n" -msgstr "Nom Postscript : %s\n\n" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "Encodages des caracteres\n" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "Cette police ne semble pas avoir de table d'encodage.\n" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" -"Il y a %hu encodage(s) :\n" -"\n" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr "encodage %2u : " - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "(valeur inconnue %hu)" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "(inconnu)" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "Test de ftxcmap\n" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "encodage %2u :\n" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "premier : glyphe numero %hu, caractere code 0x%lx\n" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "suivant : glyphe numero %hu, caractere code 0x%lx\n" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "dernier : glyphe numero %hu, caractere code 0x%lx\n" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "Erreur pendant la recuperation de la table des bitmaps.\n" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "Table des bitmaps incorpores\n" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr " version de la table de bitmaps : 0x%lx\n" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr " nombre de tailles de bitmaps : %lu\n" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr " taille de bitmap %hu sur %lu : " - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "%hux%hu pixels par %hu bit(s), glyphes de %hu a %hu\n" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr " format intervalle (%hu:%hu) glyphes %hu a %hu\n" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "Erreur en chargeant la table GSUB.\n" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "Table des substitutions de glyphes (GSUB)\n" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "Erreur en demandant la liste des ecritures dans GSUB.\n" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "Erreur en selectionnant l'ecriture `%4.4s' dans GSUB.\n" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr " Ecriture `%4.4s' (numero %hu)\n" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" -"Erreur en cherchant les informations pour les langues standards de `%4.4s' " -"dans GSUB.\n" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr " langue standard :\n" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant dans GSUB l'information `%4.4s'\n" -"pour la langue standard de l'ecriture `%4.4s'.\n" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr " information `%4.4s' (numero %hu ; table(s) de recherche " - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "" -"Erreur en demandant la liste des langues pour l'ecriture `%4.4s' dans GSUB.\n" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant la langue `%4.4s' pour l'ecriture `%4.4s' dans " -"GSUB.\n" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr " langue `%4.4s' (numero %hu) :\n" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr " information requise (table(s) de recherche " - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Erreur en recherchant dans GSUB la liste des informations\n" -"pour l'ecriture `%4.4s', langue `%4.4s'.\n" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant dans GSUB l'information `%4.4s'\n" -"pour l'ecriture `%4.4s', langue `%4.4s'.\n" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr " Tables de recherche :\n" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr "%4hu : type %hu, drapeaux 0x%x\n" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "Erreur en chargeant la table GPOS.\n" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "Table des repositionnement de glyphes (GPOS)\n" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "Erreur en demandant la liste des ecritures dans GPOS.\n" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "Erreur en selectionnant l'ecriture `%4.4s' dans GPOS.\n" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" -"Erreur en cherchant les informations pour les langues standards de `%4.4s' " -"dans GPOS.\n" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant dans GPOS l'information `%4.4s'\n" -"pour la langue standard de l'ecriture `%4.4s'.\n" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "" -"Erreur en demandant la liste des langues pour l'ecriture `%4.4s' dans GPOS.\n" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant la langue `%4.4s' pour l'ecriture `%4.4s' dans " -"GPOS.\n" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Erreur en recherchant dans GPOS la liste des informations\n" -"pour l'ecriture `%4.4s', langue `%4.4s'.\n" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Erreur en selectionnant dans GPOS l'information `%4.4s'\n" -"pour l'ecriture `%4.4s', langue `%4.4s'.\n" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "ftdump : utilitaire d'informations TrueType -- www.freetype.org" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" -"Utilisation : %s nompolice[.ttf|.ttc]\n" -"\n" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "Erreur lors de l'initialisation de FreeType.\n" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "Erreur lors de l'initialisation de l'extension `bitmaps'.\n" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "Erreur lors de l'initialisation de l'extension `GSUB'.\n" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "Erreur lors de l'initialisation de l'extension `GPOS'.\n" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "Impossible de trouver ou d'ouvrir %s.\n" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "Erreur lors de l'ouverture de %s.\n" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "" -"ftlint : verificateur simple d'instructions TrueType - www.freetype.org" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" -"Utilisation : %s ppem nompolice[.ttf|.ttc] [nompolice2...]\n" -"\n" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "Impossible de selectionner la taille %d.\n" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" -"Erreur avec\n" -" " - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "glyphe %4u : %s\n" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "1 echec.\n" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "%d echecs.\n" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "ftmetric : affichage des metriques TrueType -- www.freetype.org" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" -"Utilisation : %s [options] point nompolice[.ttf|.ttc]\n" -"\n" -" -B montrer les metriques des bitmaps (defaut : non)\n" -" -c C utilise la police numero C d'une collection (defaut : 0)\n" -" -i index numero du glyphe (default : 0)\n" -" -r R resolution en dpi (defaut : 72)\n" -"\n" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "Il y a %d polices dans cette collection.\n" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "Il n'y a aucune police d'indice %d dans cette collection.\n" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "Il n'y a pas de bitmaps dans cette police.\n" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "Impossible de changer la resolution.\n" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "Impossible de changer la taile.\n" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "Metriques de l'instance : ppemX %d ppemY %d\n" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "Impossible d'allouer un conteneur de glyphe.\n" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "Impossible de charger le bitmap du glyphe %d.\n" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "Metriques du dessin vectorise" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "glyphe du dessin vectorise\n" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "ftsbit : affichage des `sbit' TrueType -- www.freetype.org" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" -"Utilisation : %s ppm nompolice[.ttf|.ttc] numero_glyphe [numero_glyphe2...]\n" -"\n" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "Pas de bitmaps dans cette police.\n" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "Erreur lors du chargement des bitmaps.\n" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr " pas de bitmap pour le glyphe %d.\n" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "glyphe numero %d = %dx%d pixels, " - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "chasse = %ld, approches = [%ld,%ld]\n" diff --git a/Build/source/libs/freetype/po/freetype.pot b/Build/source/libs/freetype/po/freetype.pot deleted file mode 100644 index 51758ba2cf8..00000000000 --- a/Build/source/libs/freetype/po/freetype.pot +++ /dev/null @@ -1,842 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "" - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "" - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "" - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "" - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "" - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "" - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "" - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "" - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "" - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "" - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "" - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "" - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "" - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "" - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "" - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "" - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "" - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "" - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "" - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "" - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "" - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "" - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "" - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "" - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "" - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "" - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "" - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "" - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "" - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "" - -#: lib/extend/ftxerr18.c:169 -msgid "Too many function definitions (FDEF)." -msgstr "" - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "" - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "" - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "" - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "" - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "" - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "" - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "" - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "" - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "" - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "" - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "" - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "" - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "" - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "" - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "" - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "" - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "" - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "" - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "" - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "" - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "" - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "" - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "" - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "" - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "" - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "" - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "" - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "" - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "" - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "" - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "" - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "" - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "" - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "" - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "" - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "" - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "" - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "" - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "" - -#: lib/extend/ftxerr18.c:268 -msgid "Invalid glyph definition (GDEF) table format." -msgstr "" - -#: lib/extend/ftxerr18.c:270 -msgid "Invalid glyph definition (GDEF) table." -msgstr "" - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "" - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr "" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "" - -#: test/fterror.c:96 -#, c-format -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "" - -#: test/ftdump.c:310 -#, c-format -msgid "" -"PostScript name: %s\n" -"\n" -msgstr "" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr "" - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr "" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr "" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr "" - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr "" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr "" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr "" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr "" - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr "" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr "" - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr "" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr "" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr "" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "" - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "" diff --git a/Build/source/libs/freetype/po/nl.po b/Build/source/libs/freetype/po/nl.po deleted file mode 100644 index 56314f498c1..00000000000 --- a/Build/source/libs/freetype/po/nl.po +++ /dev/null @@ -1,883 +0,0 @@ -# Dutch messages for FreeType. -# Copyright (C) 1998-2000 Gertjan de Back -# Gertjan de Back , 1999. -# -msgid "" -msgstr "" -"Project-Id-Version: FreeType 1.5\n" -"POT-Creation-Date: 2002-11-08 18:11+0000\n" -"PO-Revision-Date: 2000-01-05\n" -"Last-Translator: Gertjan de Back \n" -"Language-Team: Dutch\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: lib/extend/ftxerr18.c:40 -msgid "" -"Welcome to the translation of the Freetype v.1 library!\n" -"\n" -"This message is not really part of the library (it is bracketed by\n" -" #if 0 / #endif), but is really intended to be the first one in the .po\n" -"file, and the first one that a new translator should see, to give hints.\n" -"\n" -"First, while this .po might seems big, the real interesting part of it\n" -"is only the messages in this file, lib/extend/ftxerr18.c. The other\n" -"messages are part of the demonstration programs, and are more intended\n" -"to help grasping how to use i18n with the Freetype library. So the real\n" -"work is the about 65 first ones. Unfortunately they are the harder ones!\n" -"\n" -"A difficulty is that there are some specialized vocabulary, about\n" -"``faces'', ``glyph'' and similar things. These are typographical things,\n" -"and this should be researched before attempting to translate the whole\n" -"thing. A quick look across the TrueType documentation might help to\n" -"understand many things, too.\n" -"\n" -"Best wiches for your translation!\n" -"Antoine Leca - 2002-11-08" -msgstr "" - -#: lib/extend/ftxerr18.c:77 -msgid "Successful function call, no error." -msgstr "Functieaanroep succesvol." - -#: lib/extend/ftxerr18.c:80 -msgid "Invalid face handle." -msgstr "Ongeldige Face handle." - -#: lib/extend/ftxerr18.c:82 -msgid "Invalid instance handle." -msgstr "Ongeldige Instance handle." - -#: lib/extend/ftxerr18.c:84 -msgid "Invalid glyph handle." -msgstr "Ongeldige Glyph handle." - -#: lib/extend/ftxerr18.c:86 -msgid "Invalid charmap handle." -msgstr "Ongeldige Charmap handle." - -#: lib/extend/ftxerr18.c:88 -msgid "Invalid result address." -msgstr "Ongeldig resultaat adres." - -#: lib/extend/ftxerr18.c:90 -msgid "Invalid glyph index." -msgstr "Ongeldige Glyph index." - -#: lib/extend/ftxerr18.c:92 -msgid "Invalid argument." -msgstr "Ongeldig argument." - -#: lib/extend/ftxerr18.c:94 -msgid "Could not open file." -msgstr "Bestand kon niet geopend worden." - -#: lib/extend/ftxerr18.c:96 -msgid "File is not a TrueType collection." -msgstr "Bestand is geen TrueType collectie." - -#: lib/extend/ftxerr18.c:98 -msgid "Mandatory table missing." -msgstr "Vereiste tabel ontbreekt." - -#: lib/extend/ftxerr18.c:100 -msgid "Invalid horizontal metrics (hmtx table broken)." -msgstr "Ongeldige horizontale metriek (hmtx tabel defect)." - -#: lib/extend/ftxerr18.c:102 -msgid "Invalid charmap format." -msgstr "Ongeldige Charmap opmaak." - -#: lib/extend/ftxerr18.c:104 -msgid "Invalid ppem value." -msgstr "Ongeldige ppem waarde." - -#: lib/extend/ftxerr18.c:106 -msgid "Invalid vertical metrics (vmtx table broken)." -msgstr "Ongeldige vertikale metriek (vmtx tabel defect)." - -#: lib/extend/ftxerr18.c:109 -msgid "Invalid file format." -msgstr "Ongeldige bestandsopmaak." - -#: lib/extend/ftxerr18.c:112 -msgid "Invalid engine." -msgstr "Ongeldige engine." - -#: lib/extend/ftxerr18.c:114 -msgid "Too many extensions." -msgstr "Te veel uitbreidingen." - -#: lib/extend/ftxerr18.c:116 -msgid "Extensions unsupported." -msgstr "Uitbreidingen niet ondersteund." - -#: lib/extend/ftxerr18.c:118 -msgid "Invalid extension id." -msgstr "Ongeldige uitbreiding id." - -#: lib/extend/ftxerr18.c:121 -msgid "No vertical data in font." -msgstr "Geen vertikale informatie in lettertype." - -#: lib/extend/ftxerr18.c:124 -msgid "Maximum Profile (maxp) table missing." -msgstr "`Maximum Profile (maxp)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:126 -msgid "Font Header (head) table missing." -msgstr "`Font Header (head)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:128 -msgid "Horizontal Header (hhea) table missing." -msgstr "`Horizontal Header (hhea)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:130 -msgid "Index to Location (loca) table missing." -msgstr "`Index to Location (loca)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:132 -msgid "Naming (name) table missing." -msgstr "`Naming (name)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:134 -msgid "Character to Glyph Index Mapping (cmap) tables missing." -msgstr "`Character to Glyph Index Mapping (cmap)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:136 -msgid "Horizontal Metrics (hmtx) table missing." -msgstr "`Horizontal Metrics (hmtx)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:138 -msgid "OS/2 table missing." -msgstr "OS/2 tabel ontbreekt." - -#: lib/extend/ftxerr18.c:140 -msgid "PostScript (post) table missing." -msgstr "`PostScript (post)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:142 -msgid "Glyph (glyf) table missing." -msgstr "`Naming (glyf)' tabel ontbreekt." - -#: lib/extend/ftxerr18.c:147 -msgid "Out of memory." -msgstr "Onvoldoende geheugen." - -#: lib/extend/ftxerr18.c:152 -msgid "Invalid file offset." -msgstr "Bestand positie ongeldig." - -#: lib/extend/ftxerr18.c:154 -msgid "Invalid file read." -msgstr "Lezen van bestand ongeldig." - -#: lib/extend/ftxerr18.c:156 -msgid "Invalid frame access." -msgstr "Toegang tot frame ongeldig." - -#: lib/extend/ftxerr18.c:161 -msgid "Too many points." -msgstr "Te veel punten." - -#: lib/extend/ftxerr18.c:163 -msgid "Too many contours." -msgstr "Te veel contouren." - -#: lib/extend/ftxerr18.c:165 -msgid "Invalid composite glyph." -msgstr "Samengestelde Glyph ongeldig." - -#: lib/extend/ftxerr18.c:167 -msgid "Too many instructions." -msgstr "Te veel instructies." - -#: lib/extend/ftxerr18.c:169 -#, fuzzy -msgid "Too many function definitions (FDEF)." -msgstr "Functiedefinities genest." - -#: lib/extend/ftxerr18.c:174 -msgid "Invalid opcode." -msgstr "Ongeldige opcode." - -#: lib/extend/ftxerr18.c:176 -msgid "Too few arguments." -msgstr "Te weinig argumenten." - -#: lib/extend/ftxerr18.c:178 -msgid "Stack overflow." -msgstr "Stack overloop." - -#: lib/extend/ftxerr18.c:180 -msgid "Code overflow." -msgstr "Code overloop." - -#: lib/extend/ftxerr18.c:182 -msgid "Bad argument." -msgstr "Foutief argument." - -#: lib/extend/ftxerr18.c:184 -msgid "Divide by zero." -msgstr "Deling door nul." - -#: lib/extend/ftxerr18.c:186 -msgid "Storage overflow." -msgstr "Opslag overloop." - -#: lib/extend/ftxerr18.c:188 -msgid "Control Value (cvt) table overflow." -msgstr "`Control Value (cvt)' tabel overloop." - -#: lib/extend/ftxerr18.c:190 -msgid "Invalid reference." -msgstr "Ongeldige referentie." - -#: lib/extend/ftxerr18.c:192 -msgid "Invalid distance." -msgstr "Ongeldige afstand." - -#: lib/extend/ftxerr18.c:194 -msgid "Interpolate twilight points." -msgstr "Interpolatie van schemer (twilight) punten." - -#: lib/extend/ftxerr18.c:196 -msgid "`DEBUG' opcode found." -msgstr "`DEBUG'-opcode gevonden." - -#: lib/extend/ftxerr18.c:198 -msgid "`ENDF' in byte-code stream." -msgstr "`ENDF' in bytecode-stroom." - -#: lib/extend/ftxerr18.c:200 -msgid "Out of code ranges." -msgstr "Onvoldoende codegebieden." - -#: lib/extend/ftxerr18.c:202 -msgid "Nested function definitions." -msgstr "Functiedefinities genest." - -#: lib/extend/ftxerr18.c:204 -msgid "Invalid code range." -msgstr "Ongeldig codegebied." - -#: lib/extend/ftxerr18.c:206 -msgid "Invalid displacement." -msgstr "Ongeldige verplaatsing." - -#: lib/extend/ftxerr18.c:208 -msgid "Endless loop encountered while executing instructions." -msgstr "Oneindige loop aangetrofffen tijdens het uitvoeren van instructies." - -#: lib/extend/ftxerr18.c:213 -msgid "Nested frame access." -msgstr "Frame toegang genest." - -#: lib/extend/ftxerr18.c:215 -msgid "Invalid cache list." -msgstr "Ongeldige cachelijst." - -#: lib/extend/ftxerr18.c:217 -msgid "Could not find context." -msgstr "Context niet gevonden." - -#: lib/extend/ftxerr18.c:219 -msgid "Unlisted object." -msgstr "Object niet aanwezig." - -#: lib/extend/ftxerr18.c:224 -msgid "Raster pool overflow." -msgstr "Overloop van Raster pool." - -#: lib/extend/ftxerr18.c:226 -msgid "Raster: negative height encountered." -msgstr "Raster: negatieve hoogte aangetroffen." - -#: lib/extend/ftxerr18.c:228 -msgid "Raster: invalid value." -msgstr "Raster: ongeldige waarde." - -#: lib/extend/ftxerr18.c:230 -msgid "Raster not initialized." -msgstr "Raster niet geinitialiseerd." - -#: lib/extend/ftxerr18.c:235 -msgid "Invalid kerning (kern) table format." -msgstr "Ongeldige `Kerning (kern)' tabel opmaak." - -#: lib/extend/ftxerr18.c:237 -msgid "Invalid kerning (kern) table." -msgstr "Ongeldige `Kerning (kern)' tabel." - -#: lib/extend/ftxerr18.c:240 -msgid "Invalid PostScript (post) table format." -msgstr "Ongeldige `PostScript (post)' tabel opmaak." - -#: lib/extend/ftxerr18.c:242 -msgid "Invalid PostScript (post) table." -msgstr "Ongeldige `PostScript (post)' tabel." - -#: lib/extend/ftxerr18.c:247 -msgid "Invalid TrueType Open subtable format." -msgstr "Ongeldige opmaak van TrueType Open subtabel." - -#: lib/extend/ftxerr18.c:249 -msgid "Invalid TrueType Open subtable." -msgstr "Ongeldige TrueType Open subtabel." - -#: lib/extend/ftxerr18.c:251 -msgid "Glyph(s) not covered by lookup." -msgstr "Glyph(s) niet door opgenomen in Lookup." - -#: lib/extend/ftxerr18.c:253 -msgid "Too many nested context substitutions." -msgstr "Te veel geneste context vervangingen." - -#: lib/extend/ftxerr18.c:255 -msgid "No MM (Adobe MultipleMaster) interpreter available." -msgstr "" - -#: lib/extend/ftxerr18.c:258 -msgid "Invalid glyph substitution (GSUB) table format." -msgstr "Ongeldige Glyph vervanging (GSUB) tabel opmaak." - -#: lib/extend/ftxerr18.c:260 -msgid "Invalid glyph substitution (GSUB) table." -msgstr "Ongeldige Glyph vervanging (GSUB) tabel." - -#: lib/extend/ftxerr18.c:263 -msgid "Invalid glyph positioning (GPOS) table format." -msgstr "Ongeldige Glyph plaatsing (GPOS) tabel opmaak." - -#: lib/extend/ftxerr18.c:265 -msgid "Invalid glyph positioning (GPOS) table." -msgstr "Ongeldige Glyph plaatsing (GPOS) tabel." - -#: lib/extend/ftxerr18.c:268 -#, fuzzy -msgid "Invalid glyph definition (GDEF) table format." -msgstr "Ongeldige Glyph plaatsing (GPOS) tabel opmaak." - -#: lib/extend/ftxerr18.c:270 -#, fuzzy -msgid "Invalid glyph definition (GDEF) table." -msgstr "Ongeldige Glyph plaatsing (GPOS) tabel." - -#: lib/extend/ftxerr18.c:277 -msgid "Invalid Error Number." -msgstr "Ongeldig foutnummer." - -#: test/fterror.c:49 -msgid "" -"fterror: test TT_ErrToString18 functionality\n" -"\n" -msgstr "" - -#: test/fterror.c:50 -msgid "" -" with an optional numerical argument, dumps the associated message.\n" -"\n" -msgstr "" - -#: test/fterror.c:73 -msgid "Start of fterror.\n" -msgstr "Begin van fterror.\n" - -#: test/fterror.c:81 -msgid "End of fterror.\n" -msgstr "Einde van fterror.\n" - -#: test/fterror.c:96 -#, fuzzy, c-format -msgid "Freetype error code 0x%04lX (%lu): %s\n" -msgstr "FreeType foutmelding: %s\n" - -#: test/ftdump.c:169 test/ftlint.c:207 test/ftmetric.c:294 -msgid "Could not create glyph container.\n" -msgstr "Aanmaken Glyph container mislukt.\n" - -#: test/ftdump.c:179 test/ftlint.c:215 test/ftmetric.c:303 test/ftsbit.c:214 -msgid "Could not create instance.\n" -msgstr "Aanmaken Instance mislukt.\n" - -#: test/ftdump.c:188 -msgid "Could not create second instance.\n" -msgstr "Aanmaken tweede Instance mislukt.\n" - -#: test/ftdump.c:194 -msgid "Memory footprint statistics:\n" -msgstr "Statistieken geheugengebruik:\n" - -#: test/ftdump.c:202 -msgid "face object" -msgstr "Face object" - -#: test/ftdump.c:203 -msgid "glyph object" -msgstr "Glyph object" - -#: test/ftdump.c:204 -msgid "instance object" -msgstr "Instance object" - -#: test/ftdump.c:208 -msgid "exec. context object" -msgstr "uitv. context object" - -#: test/ftdump.c:215 -msgid "total memory usage" -msgstr "totaal geheugengebruik" - -#: test/ftdump.c:223 test/ftdump.c:579 test/ftdump.c:789 test/ftdump.c:993 -#: test/ftdump.c:1139 test/ftlint.c:274 test/ftlint.c:287 test/ftmetric.c:390 -#: test/ftsbit.c:286 -#, c-format -msgid "FreeType error message: %s\n" -msgstr "FreeType foutmelding: %s\n" - -#: test/ftdump.c:300 -msgid "font name table entries\n" -msgstr "lettertypen in namentabel\n" - -#: test/ftdump.c:310 -#, c-format -msgid "" -"PostScript name: %s\n" -"\n" -msgstr "" -"PostScript naam: %s\n" -"\n" - -#: test/ftdump.c:333 -msgid "character map encodings\n" -msgstr "tekencodering tabellen\n" - -#: test/ftdump.c:340 test/ftdump.c:488 -msgid "The file doesn't seem to have any encoding table.\n" -msgstr "Het bestand schijnt geen codering tabellen te bevatten.\n" - -#: test/ftdump.c:344 test/ftdump.c:492 -#, c-format -msgid "" -"There are %hu encodings:\n" -"\n" -msgstr "" -"Er zijn %hu coderingen:\n" -"\n" - -#: test/ftdump.c:349 -#, c-format -msgid "encoding %2u: " -msgstr "codering %2u: " - -#: test/ftdump.c:376 test/ftdump.c:385 test/ftdump.c:452 -#, c-format -msgid "Unknown value %hu" -msgstr "Waarde %hu onbekend" - -#: test/ftdump.c:459 -msgid "Unknown" -msgstr "Onbekend" - -#: test/ftdump.c:481 -msgid "ftxcmap test\n" -msgstr "ftxcmap test\n" - -#: test/ftdump.c:498 -#, c-format -msgid "encoding %2u:\n" -msgstr "codering %2u:\n" - -#: test/ftdump.c:503 -#, c-format -msgid "first: glyph index %hu, character code 0x%lx\n" -msgstr "eerste: Glyph index %hu, karakter code 0x%lx\n" - -#: test/ftdump.c:507 -#, c-format -msgid "next: glyph index %hu, character code 0x%lx\n" -msgstr "volgende: Glyph index %hu, karakter code 0x%lx\n" - -#: test/ftdump.c:511 -#, c-format -msgid "last: glyph index %hu, character code 0x%lx\n" -msgstr "laatste: Glyph index %hu, karakter code 0x%lx\n" - -#: test/ftdump.c:533 test/ftmetric.c:284 -msgid "Error while retrieving embedded bitmaps table.\n" -msgstr "Fout bij het ophalen van ingebedde bitmap tabel.\n" - -#: test/ftdump.c:537 -msgid "embedded bitmap table\n" -msgstr "ingebedde bitmap tabel\n" - -#: test/ftdump.c:540 -#, c-format -msgid " version of embedded bitmap table: 0x%lx\n" -msgstr " versie van ingebedde bitmap tabel: 0x%lx\n" - -#: test/ftdump.c:542 -#, c-format -msgid " number of embedded bitmap strikes: %lu\n" -msgstr " aantal ingebedde bitmap treffers: %lu\n" - -#: test/ftdump.c:552 -#, c-format -msgid " bitmap strike %hu/%lu: " -msgstr " bitmap treffer %hu/%lu: " - -#: test/ftdump.c:555 -#, c-format -msgid "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" -msgstr "%hux%hu pixels, %hu-bit diepte, Glyphs [%hu..%hu]\n" - -#: test/ftdump.c:564 -#, c-format -msgid " range format (%hu:%hu) glyphs %hu..%hu\n" -msgstr " bereik formaat (%hu:%hu) Glyphs %hu..%hu\n" - -#: test/ftdump.c:615 -msgid "Error while loading GSUB table.\n" -msgstr "Fout bij het laden van GSUB tabel.\n" - -#: test/ftdump.c:619 -msgid "GSUB table\n" -msgstr "GSUB tabel\n" - -#: test/ftdump.c:626 -msgid "Error while querying GSUB script list.\n" -msgstr "Fout bij het opvragen van GSUB script lijst.\n" - -#: test/ftdump.c:639 -#, c-format -msgid "Error while selecting GSUB script `%4.4s'.\n" -msgstr "Fout bij het selecteren van GSUB script `%4.4s'.\n" - -#: test/ftdump.c:644 test/ftdump.c:848 -#, c-format -msgid " script `%4.4s' (index %hu):\n" -msgstr " script `%4.4s' (index %hu):\n" - -#: test/ftdump.c:652 -#, c-format -msgid "Error while querying GSUB default language system for script `%4.4s'.\n" -msgstr "" -"Fout bij het opvragen van GSUB standaard taal systeem voor script `%4.4s'.\n" - -#: test/ftdump.c:657 test/ftdump.c:861 -msgid " default language system:\n" -msgstr " standaard taal systeem:\n" - -#: test/ftdump.c:670 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Fout bij het selecteren van GSUB kenmerk `%4.4s'\n" -"voor standaard taal systeem van script `%4.4s'.\n" - -#: test/ftdump.c:676 test/ftdump.c:757 test/ftdump.c:880 test/ftdump.c:961 -#, c-format -msgid " feature `%4.4s' (index %hu; lookup " -msgstr " kenmerk `%4.4s' (index %hu; lookup " - -#: test/ftdump.c:692 -#, c-format -msgid "Error while querying GSUB language list for script `%4.4s'.\n" -msgstr "Fout bij het opvragen van GSUB taal lijst voor script `%4.4s'.\n" - -#: test/ftdump.c:709 -#, c-format -msgid "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" -msgstr "Fout bij het selecteren van GSUB taal `%4.4s' voor script `%4.4s'.\n" - -#: test/ftdump.c:714 test/ftdump.c:918 -#, c-format -msgid " language `%4.4s' (index %hu):\n" -msgstr " taal `%4.4s' (index %hu):\n" - -#: test/ftdump.c:719 test/ftdump.c:923 -#, c-format -msgid " required feature index %hu (lookup " -msgstr " benodigde kenmerk index %hu (lookup " - -#: test/ftdump.c:734 -#, c-format -msgid "" -"Error while querying GSUB feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fout bij het opvragen van GSUB kenmerken lijst\n" -"voor script `%4.4s', taal `%4.4s'.\n" - -#: test/ftdump.c:751 -#, c-format -msgid "" -"Error while selecting GSUB feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fout bij het selecteren van GSUB kenmerk `%4.4s'\n" -"voor script `%4.4s', taal `%4.4s'.\n" - -#: test/ftdump.c:776 test/ftdump.c:980 -msgid "" -"Lookups:\n" -"\n" -msgstr "" -"Lookups:\n" -"\n" - -#: test/ftdump.c:779 test/ftdump.c:983 -#, c-format -msgid " %hu: type %hu, flag 0x%x\n" -msgstr " %hu: type %hu, vlag 0x%x\n" - -#: test/ftdump.c:819 -msgid "Error while loading GPOS table.\n" -msgstr "Fout bij het laden van GPOS tabel.\n" - -#: test/ftdump.c:823 -msgid "GPOS table\n" -msgstr "GPOS tabel\n" - -#: test/ftdump.c:830 -msgid "Error while querying GPOS script list.\n" -msgstr "Fout bij het opvragen van GPOS script lijst.\n" - -#: test/ftdump.c:843 -#, c-format -msgid "Error while selecting GPOS script `%4.4s'.\n" -msgstr "Fout bij het selecteren van GPOS script `%4.4s'.\n" - -#: test/ftdump.c:856 -#, c-format -msgid "Error while querying GPOS default language system for script `%4.4s'.\n" -msgstr "" -"Fout bij het opvragen van GPOS standaard taal systeem voor script `%4.4s'.\n" - -#: test/ftdump.c:874 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for default language system of script `%4.4s'.\n" -msgstr "" -"Fout bij het selecteren van GPOS kenmerk `%4.4s'\n" -"voor standaard taal systeem van script `%4.4s'.\n" - -#: test/ftdump.c:896 -#, c-format -msgid "Error while querying GPOS language list for script `%4.4s'.\n" -msgstr "Fout bij het opvragen van GPOS taal lijst voor script `%4.4s'.\n" - -#: test/ftdump.c:913 -#, c-format -msgid "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" -msgstr "Fout bij het selecteren van GPOS taal `%4.4s' voor script `%4.4s'.\n" - -#: test/ftdump.c:938 -#, c-format -msgid "" -"Error while querying GPOS feature list\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fout bij het opvragen van GPOS kenmerken lijst\n" -"voor script `%4.4s', taal `%4.4s'.\n" - -#: test/ftdump.c:955 -#, c-format -msgid "" -"Error while selecting GPOS feature `%4.4s'\n" -"for script `%4.4s', language `%4.4s'.\n" -msgstr "" -"Fout bij het selecteren van GPOS kenmerk `%4.4s'\n" -"voor script `%4.4s', taal `%4.4s'.\n" - -#: test/ftdump.c:1018 -msgid "ftdump: Simple TrueType Dumper -- part of the FreeType project" -msgstr "" -"ftdump: eenvoudige TrueType dumper -- onderdeel van het FreeType project" - -#: test/ftdump.c:1022 -#, c-format -msgid "" -"Usage: %s fontname[.ttf|.ttc]\n" -"\n" -msgstr "" -"Gebruik: %s lettertype[.ttf|.ttc]\n" -"\n" - -#: test/ftdump.c:1054 test/ftlint.c:134 test/ftmetric.c:228 test/ftsbit.c:127 -msgid "Error while initializing engine.\n" -msgstr "Fout bij het starten van de FreeType engine.\n" - -#: test/ftdump.c:1061 test/ftmetric.c:236 test/ftsbit.c:134 -msgid "Error while initializing embedded bitmap extension.\n" -msgstr "Fout bij het starten de ingebedde bitmap toevoeging.\n" - -#: test/ftdump.c:1068 -msgid "Error while initializing GSUB extension.\n" -msgstr "Fout bij het starten van de GSUB toevoeging.\n" - -#: test/ftdump.c:1075 -msgid "Error while initializing GPOS extension.\n" -msgstr "Fout bij het starten van de GPOS toevoeging.\n" - -#: test/ftdump.c:1091 test/ftlint.c:187 test/ftmetric.c:251 test/ftsbit.c:182 -#, c-format -msgid "Could not find or open %s.\n" -msgstr "Kan %s niet vinden of openen.\n" - -#: test/ftdump.c:1094 test/ftlint.c:193 test/ftmetric.c:254 test/ftsbit.c:188 -#, c-format -msgid "Error while opening %s.\n" -msgstr "Fout bij het openen van %s.\n" - -#: test/ftlint.c:94 -msgid "" -"ftlint: Simple TrueType instruction tester -- part of the FreeType project" -msgstr "" -"ftlint: TrueType instructie tester -- onderdeel van het FreeType project" - -#: test/ftlint.c:99 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n" -"\n" -msgstr "" -"Gebruik: %s ppem lettertype[.ttf|.ttc] [lettertype2..]\n" -"\n" - -#: test/ftlint.c:226 test/ftsbit.c:225 -#, c-format -msgid "Could not set point size to %d.\n" -msgstr "Instellen van puntgrootte %d mislukt.\n" - -#: test/ftlint.c:239 -msgid "" -"Error with\n" -" " -msgstr "" -"Fout met\n" -" " - -#: test/ftlint.c:240 -#, c-format -msgid "glyph %4u: %s\n" -msgstr "Glyph %4u: %s\n" - -#: test/ftlint.c:253 -msgid "1 fail.\n" -msgstr "1 misser.\n" - -#: test/ftlint.c:255 -#, c-format -msgid "%d fails.\n" -msgstr "%d missers.\n" - -#: test/ftmetric.c:70 -msgid "" -"ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" -msgstr "" -"ftmetric: TTF metriek/Glyph dumper -- onderdeel van het FreeType project" - -#: test/ftmetric.c:74 -#, c-format -msgid "" -"Usage: %s [options below] point fontname[.ttf|.ttc]\n" -"\n" -" -B show sbit's metrics (default: none)\n" -" -c C use C'th font index of TrueType collection (default: 0)\n" -" -i index glyph index (default: 0)\n" -" -r R use resolution R dpi (default: 72)\n" -"\n" -msgstr "" -"Gebruik: %s [opties hieronder] punt lettertype[.ttf|.ttc]\n" -"\n" -" -B toon sbit's metriek (standaard: geen)\n" -" -c C gebruik 'C'e lettertype index van TrueType collectie (standaard: " -"0)\n" -" -i index Glyph index (standaard: 0)\n" -" -r R gebruik resolutie van R dpi (standaard: 72)\n" -"\n" - -#: test/ftmetric.c:261 -#, c-format -msgid "There are %d fonts in this collection.\n" -msgstr "Er zijn %d lettertypen in deze collectie.\n" - -#: test/ftmetric.c:266 -#, c-format -msgid "There is no collection with index %d in this font file.\n" -msgstr "Er is geen collectie met index %d in dit lettertype.\n" - -#: test/ftmetric.c:280 -msgid "There is no embedded bitmap data in the font.\n" -msgstr "Er is geen ingebedde bitmap informatie in het lettertype.\n" - -#: test/ftmetric.c:310 -msgid "Could not set device resolutions.\n" -msgstr "Instellen van resolutie is mislukt.\n" - -#: test/ftmetric.c:317 -msgid "Could not reset instance.\n" -msgstr "Her-instellen van Instance mislukt.\n" - -#: test/ftmetric.c:323 -#, c-format -msgid "Instance metrics: ppemX %d, ppemY %d\n" -msgstr "Instance metriek: ppemX %d, ppemY %d\n" - -#: test/ftmetric.c:333 test/ftsbit.c:234 -msgid "Could not allocate glyph bitmap container.\n" -msgstr "Toewijzen van Glyph bitmap container mislukt.\n" - -#: test/ftmetric.c:341 test/ftsbit.c:258 -#, c-format -msgid "Can't load bitmap for glyph %d.\n" -msgstr "Laden van bitmap voor Glyph %d mislukt.\n" - -#: test/ftmetric.c:368 -msgid "Outline's metrics" -msgstr "Omtrek metriek" - -#: test/ftmetric.c:370 -msgid "Outline glyph\n" -msgstr "Omtrek Glyph\n" - -#: test/ftsbit.c:90 -msgid "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" -msgstr "ftsbit: TrueType `sbit' dumper -- onderdeel van het FreeType project" - -#: test/ftsbit.c:95 -#, c-format -msgid "" -"Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" -msgstr "" -"Gebruik: %s ppem lettertype[.ttf|.ttc] glyph_index [glyph_index2..]\n" -"\n" - -#: test/ftsbit.c:200 -msgid "Could not find embedded bitmaps in this font.\n" -msgstr "Ingebedde bitmaps niet gevonden in dit lettertype.\n" - -#: test/ftsbit.c:206 -msgid "Error while loading embedded bitmaps.\n" -msgstr "Fout bij het laden van ingebedde bitmaps.\n" - -#: test/ftsbit.c:252 -#, c-format -msgid " no bitmap for glyph %d.\n" -msgstr " geen bitmap voor Glyph %d.\n" - -#: test/ftsbit.c:264 -#, c-format -msgid "glyph index %d = %dx%d pixels, " -msgstr "Glyph index %d = %dx%d pixels, " - -#: test/ftsbit.c:267 -#, c-format -msgid "advance = %ld, minBearing = [%ld,%ld]\n" -msgstr "advance = %ld, minBearing = [%ld,%ld]\n" diff --git a/Build/source/libs/freetype/readme.1st b/Build/source/libs/freetype/readme.1st deleted file mode 100644 index ad87630be1c..00000000000 --- a/Build/source/libs/freetype/readme.1st +++ /dev/null @@ -1,10 +0,0 @@ - - DISCLAIMER - - - PLEASE READ THE FILE `PATENTS' BEFORE ANYTHING ELSE! IT - CONTAINS *CRITICAL* INFORMATION REGARDING THE FREE USE OF THIS - LIBRARY. - - ---- end of readme.1st --- diff --git a/Build/source/libs/freetype/test/.cvsignore b/Build/source/libs/freetype/test/.cvsignore deleted file mode 100644 index 0f0d08671e4..00000000000 --- a/Build/source/libs/freetype/test/.cvsignore +++ /dev/null @@ -1,12 +0,0 @@ -.libs -ftview -fttimer -ftlint -ftdump -ftzoom -ftstring -ftstrpnm -fterror -ftsbit -ftmetric -ftstrtto diff --git a/Build/source/libs/freetype/test/.cvsignore.delete b/Build/source/libs/freetype/test/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Build/source/libs/freetype/test/README b/Build/source/libs/freetype/test/README deleted file mode 100644 index 364b1eb586a..00000000000 --- a/Build/source/libs/freetype/test/README +++ /dev/null @@ -1,6 +0,0 @@ - -The instructions how to use the test programs can be found in the -main `README' file located in the parent directory. - - ---- end of README --- diff --git a/Build/source/libs/freetype/test/arabic.c b/Build/source/libs/freetype/test/arabic.c deleted file mode 100644 index 37715ff7447..00000000000 --- a/Build/source/libs/freetype/test/arabic.c +++ /dev/null @@ -1,386 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* arabic -- An implementation of the contextual algorithm given in the */ -/* Unicode 2.0 book to assign the `isolated', `initial', `medial', and */ -/* `final' properties to an input string of character codes for the Arabic */ -/* script. */ -/* */ -/****************************************************************************/ - -#include -#include - -#include "arabic.h" -#include "freetype.h" -#include "ftxopen.h" - - - /* - - Here a table of the joining classes for characters in the range - U+0620 - U+06FF. - - The following character also has a joining class: - - U+200C ZERO WIDTH NON-JOINER -> causing - - All other characters are given the joining class `none'. - - */ - - joining_class arabic[] = - { - /* U+0620 */ - none, none, right, right, - right, right, dual, right, - dual, right, dual, dual, - dual, dual, dual, right, - - /* U+0630 */ - right, right, right, dual, - dual, dual, dual, dual, - dual, dual, dual, none, - none, none, none, none, - - /* U+0640 */ - causing, dual, dual, dual, - dual, dual, dual, dual, - right, right, dual, transparent, - transparent, transparent, transparent, transparent, - - /* U+0650 */ - transparent, transparent, transparent, none, - none, none, none, none, - none, none, none, none, - none, none, none, none, - - /* U+0660 */ - none, none, none, none, - none, none, none, none, - none, none, none, none, - none, none, none, none, - - /* U+0670 */ - transparent, none, right, right, - none, right, right, right, - dual, dual, dual, dual, - dual, dual, dual, dual, - - /* U+0680 */ - dual, dual, dual, dual, - dual, dual, dual, dual, - right, right, right, right, - right, right, right, right, - - /* U+0690 */ - right, right, right, right, - right, right, right, right, - right, right, dual, dual, - dual, dual, dual, dual, - - /* U+06A0 */ - dual, dual, dual, dual, - dual, dual, dual, dual, - dual, dual, dual, dual, - dual, dual, dual, dual, - - /* U+06B0 */ - dual, dual, dual, dual, - dual, dual, dual, dual, - dual, dual, dual, dual, - dual, dual, dual, dual, - - /* U+06C0 */ - right, dual, right, right, - right, right, right, right, - right, right, right, right, - dual, right, dual, right, - - /* U+06D0 */ - dual, dual, right, right, - none, none, none, transparent, - transparent, transparent, transparent, transparent, - transparent, transparent, transparent, transparent, - - /* U+06E0 */ - transparent, transparent, transparent, transparent, - transparent, none, none, transparent, - transparent, none, transparent, transparent, - transparent, transparent, none, none, - - /* U+06F0 */ - none, none, none, none, - none, none, none, none, - none, none, dual, dual, - dual, none, none, none - }; - - - struct cgc_ - { - TT_UShort char_code; - TT_UShort glyph_index; - TT_UShort class; - }; - - typedef struct cgc_ cgc; - - - int compare_cgc( const void* a, - const void* b ) - { - return ( ((cgc*)a)->glyph_index > ((cgc*)b)->glyph_index ) ? - 1 : ( ( ((cgc*)a)->glyph_index == ((cgc*)b)->glyph_index ) ? - 0 : -1 ); - } - - - TT_Error Build_Arabic_Glyph_Properties( TT_CharMap char_map, - TT_UShort max_glyphs, - TTO_GDEFHeader** gdef ) - { - TT_UShort i, j, num_glyphs; - - cgc Arabic[0x0700 - 0x0620]; - - TT_UShort glyph_indices[0x700 - 0x0620]; - TT_UShort classes[0x700 - 0x0620]; - - - if ( !gdef ) - return TT_Err_Invalid_Argument; - - j = 0; - - for ( i = 0x0620; i < 0x0700; i++ ) - { - Arabic[j].char_code = i; - Arabic[j].class = ( arabic[i - 0x0620] == transparent ) ? - MARK_GLYPH : SIMPLE_GLYPH; - Arabic[j].glyph_index = TT_Char_Index( char_map, i ); - if ( Arabic[j].glyph_index ) - j++; - } - num_glyphs = j; - - if ( !num_glyphs ) - { - /* no Arabic font */ - *gdef = NULL; - return TT_Err_Ok; - } - - /* sort it */ - - qsort( Arabic, num_glyphs, sizeof ( cgc ), compare_cgc ); - - /* write it to the arrays, removing duplicates */ - - glyph_indices[0] = Arabic[0].glyph_index; - classes[0] = Arabic[0].class; - - j = 1; - - for ( i = 1; i < num_glyphs; i++ ) - { - glyph_indices[j] = Arabic[i].glyph_index; - classes[j] = Arabic[i].class; - - if ( glyph_indices[j - 1] != glyph_indices[j] ) - j++; - } - num_glyphs = j; - - TT_GDEF_Build_ClassDefinition( *gdef, max_glyphs, num_glyphs, - glyph_indices, classes ); - - return TT_Err_Ok; - } - - - /* The joining rules as given in the Unicode 2.0 book (characters are - here specified as appearing in the byte stream, i.e. *not* in - visual order). Joining classes are given in angle brackets, glyph - forms in square brackets. Glyphs affected by a specific rule are - enclosed with vertical bars. - - Note: The description of the joining algorithm in the book is - severely broken. You can get a corrected version from - www.unicode.org (as of 29-Jun-1999, this hasn't appeared). - - R1: - - apply joining rules for - -> [shape1] [shape2] - - -> [shape1] [isolated] [shape2] - - R2: || - - -> [final] - - R3: || - - -> [initial] - - R4: || - - -> [medial] - - R5: || - - -> [final] - - R6: || - - -> [initial] - - R7: If R1-R6 fail: - - -> [isolated] */ - - - /* `direction' can be -1, 0, or 1 to indicate the last non-transparent - glyph, the current glyph, and the next non-transparent glyph, - respectively. */ - - static joining_class Get_Joining_Class( TT_ULong* string, - TT_UShort pos, - TT_UShort length, - int direction ) - { - joining_class j; - - - while ( 1 ) - { - if ( pos == 0 && direction < 0 ) - return none; - - pos += direction; - - if ( pos >= length ) - return none; - - if ( string[pos] < 0x0620 || - string[pos] >= 0x0700 ) - { - if ( string[pos] == 0x200C ) - return causing; - else - return none; - } - else - j = arabic[string[pos] - 0x0620]; - - if ( !direction || j != transparent ) - return j; - } - } - - - TT_Error Assign_Arabic_Properties( TT_ULong* string, - TT_UShort* properties, - TT_UShort length ) - { - joining_class previous, current, next; - - TT_UShort i; - - - if ( !string || !properties || length == 0 ) - return TT_Err_Invalid_Argument; - - for ( i = 0; i < length; i++ ) - { - previous = Get_Joining_Class( string, i, length, -1 ); - current = Get_Joining_Class( string, i, length, 0 ); - next = Get_Joining_Class( string, i, length, 1 ); - - /* R1 */ - - if ( current == transparent ) - { - properties[i] |= isolated_p; - continue; - } - - /* R2 */ - - if ( previous == causing || - previous == left || - previous == dual ) - if ( current == right ) - { - properties[i] |= final_p; - continue; - } - - /* R3 */ - - if ( current == left ) - if ( next == causing || - next == right || - next == dual ) - { - properties[i] |= initial_p; - continue; - } - - /* R4 */ - - if ( previous == causing || - previous == left || - previous == dual ) - if ( current == dual ) - if ( next == causing || - next == right || - next == dual ) - { - properties[i] |= medial_p; - continue; - } - - /* R5 */ - - if ( previous == causing || - previous == left || - previous == dual ) - if ( current == dual ) - if ( !( next == causing || - next == right || - next == dual ) ) - { - properties[i] |= final_p; - continue; - } - - /* R6 */ - - if ( !( previous == causing || - previous == left || - previous == dual ) ) - if ( current == dual ) - if ( next == causing || - next == right || - next == dual ) - { - properties[i] |= initial_p; - continue; - } - - /* R7 */ - - properties[i] |= isolated_p; - } - - return TT_Err_Ok; - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/arabic.h b/Build/source/libs/freetype/test/arabic.h deleted file mode 100644 index af7f63279fd..00000000000 --- a/Build/source/libs/freetype/test/arabic.h +++ /dev/null @@ -1,66 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* arabic -- An implementation of the contextual algorithm given in the */ -/* Unicode 2.0 book to assign the `isolated', `initial', `medial', and */ -/* `final' properties to an input string of character codes for the Arabic */ -/* script. */ -/* */ -/****************************************************************************/ - - -#include "freetype.h" -#include "ftxopen.h" - - - enum joining_type_ - { - isolated = 1, /* nominal */ - final = 2, /* right_joining */ - initial = 4, /* left_joining */ - medial = 8 /* double_joining */ - }; - - typedef enum joining_type_ joining_type; - - - /* A glyph's property value as needed by e.g. TT_GSUB_Apply_String() - specifies which features should *not* be applied */ - - enum arabic_glyph_property_ - { - isolated_p = final | initial | medial, - final_p = isolated | initial | medial, - initial_p = isolated | final | medial, - medial_p = isolated | final | initial - }; - - typedef enum arabic_glyph_property_ arabic_glyph_property; - - - enum joining_class_ - { - right, - left, /* not used */ - dual, - causing, - none, - transparent - }; - - typedef enum joining_class_ joining_class; - - - TT_Error Assign_Arabic_Properties( TT_ULong* string, - TT_UShort* properties, - TT_UShort length ); - TT_Error Build_Arabic_Glyph_Properties( TT_CharMap char_map, - TT_UShort max_glyphs, - TTO_GDEFHeader** gdef ); - - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/amigaos/Makefile.gcc b/Build/source/libs/freetype/test/arch/amigaos/Makefile.gcc deleted file mode 100644 index 1cb828baa2d..00000000000 --- a/Build/source/libs/freetype/test/arch/amigaos/Makefile.gcc +++ /dev/null @@ -1,118 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for amiga using ADE. -# -# You will need GNU make. -# -# Use this file while in the 'test' directory with the following statement: -# -# make -f arch/amigaos/Makefile.gcc -# -# -# 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. - -ARCH = arch/amigaos -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -LIBDIR = ../lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -CFLAGS = -ansi -Wall -g -noixemul $(INCDIRS) -# CFLAGS = -Wall -noixemul -O2 -Ilib $(INCDIRS) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -GSRC = gmain.c display.c blitter.c $(ARCH)/gw_amiga.c -GOBJ = $(GSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -%.exe: - $(CC) $(CFLAGS) -o $@ @^ - - -EXEFILES = ftdump \ - fterror \ - ftlint \ - ftmetric \ - ftsbit \ - ftstring \ - ftstrpnm \ - ftstrtto \ - fttimer \ - ftview \ - ftzoom - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - -ftzoom: $(GOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview: $(GOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump: ftdump.o common.o $(LIBDIR)/libttf.a -ftstring: $(GOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -fttimer: $(GOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftsbit: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrpnm: ftstrpnm.o common.o $(LIBDIR)/libttf.a -ftmetric: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto: $(GOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a -fterror: fterror.o $(LIBDIR)/libttf.a - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -rm dep.end core - -rm $(EXE) - -do_clean: - -rm *.o - -rm arch/amigaos/*.o - - -depend: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -M $(INCDIRS) $(SRC) $(GSRC) > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/test/arch/amigaos/TODO b/Build/source/libs/freetype/test/arch/amigaos/TODO deleted file mode 100644 index 49e53a1b243..00000000000 --- a/Build/source/libs/freetype/test/arch/amigaos/TODO +++ /dev/null @@ -1,16 +0,0 @@ - - * To test the window oriented driver. - - * To improve the window oriented driver to use ROM functions like - WriteChunkyPixel() (or similar) instead of the current routine. - - * To build a truetype.library from libttf.a - - * truetype.datatype. - - * Program to convert truetype fonts in Amiga fonts. - - Suggestions, bug reports, code improvements, support for other compilers, - ... are welcome ! - - Send them to: map@medusa.es or to freetype@freetype.org diff --git a/Build/source/libs/freetype/test/arch/amigaos/gfsamiga.c b/Build/source/libs/freetype/test/arch/amigaos/gfsamiga.c deleted file mode 100644 index 8a680a1774d..00000000000 --- a/Build/source/libs/freetype/test/arch/amigaos/gfsamiga.c +++ /dev/null @@ -1,428 +0,0 @@ -/******************************************************************* - * - * gfsamiga.c graphics utility fullscreen Amiga driver. 1.0 - * - * This is the driver for fullscreen Amiga display, used by the - * graphics utility of the FreeType test suite. - * - * 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. - * - ******************************************************************/ - -/* standard includes */ - -#include -#include - -/* AmigaOS includes */ - -#include -#include -#include -#include - -#ifdef __GNUC__ - -#include -#include -#include -#include - -#else - -#include -#include -#include -#include - -#endif - -/* FreeType includes */ - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - -/* some screen definitions */ - -#define MONO_SCREEN_WIDTH 640 -#define MONO_SCREEN_HEIGHT 512 -#define MONO_SCREEN_DEPTH 1 - -#define GRAY_SCREEN_WIDTH 320 -#define GRAY_SCREEN_HEIGHT 256 -#define GRAY_SCREEN_DEPTH 3 - -#define DISPLAY_MEM ( 1024 * 64 ) - - - /* external variables */ - - extern struct Library* SysBase; - extern struct Library* DOSBase; - - extern int vio_ScanLineWidth; - extern char* Vio; - extern char gray_palette[5]; - - /* global variables */ - - struct Library* IntuitionBase = NULL; - struct Library* GfxBase = NULL; - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - - /* local variables */ - - static struct Screen* fts = NULL; - static struct Window* ftw = NULL; - - static int graphx_mode; - - - /* exit gracefully */ - - static void AmigaCleanUp( void ) - { - if ( ftw ) - CloseWindow( ftw ); - - if ( fts ) - CloseScreen( fts ); - - if ( IntuitionBase ) - CloseLibrary( IntuitionBase ); - - if ( GfxBase ) - CloseLibrary( GfxBase ); - - if ( graphx_mode == Graphics_Mode_Gray ) - if ( Vio ) - FreeMem( Vio, DISPLAY_MEM ); - } - - - static void SetPalette( void ) - { - short color[] = { 0x0000, - 0x0333, - 0x0777, - 0x0BBB, - 0x0FFF, - 0x0A00, - 0x00A0, - 0x000A - }; - short i; - - - for ( i = 0; i < 8; i++ ) - { - if ( i < 5 ) - gray_palette[i] = i; - - SetRGB4( &fts->ViewPort, i, (UBYTE)(color[i] >> 8 & 0x0f), - (UBYTE)(color[i] >> 4 & 0x0f), - (UBYTE)(color[i] & 0x0f ) ); - } - } - - - /* open libraries & custom screen */ - - static int AmigaInit( void ) - { - /* cleanup at exit */ - if ( atexit( AmigaCleanUp ) ) - { - PutStr( "atexit() failed\n" ); - return -1; - } - - /* open intuition library */ - - IntuitionBase = (struct Library*)OpenLibrary( "intuition.library", 37L ); - if ( IntuitionBase == NULL ) - { - PutStr( "Could not open intuition library\n" ); - return -1; - } - - /* Open graphics library */ - - GfxBase = OpenLibrary( "graphics.library", 37L ); - if ( GfxBase == NULL ) - { - PutStr( "Could not open graphics library\n" ); - return -1; - } - - if ( graphx_mode == Graphics_Mode_Gray ) - { - /* open custom screen */ - fts = (struct Screen*)OpenScreenTags( - NULL, - SA_DisplayID, (PAL_MONITOR_ID | LORES_KEY), - SA_Width, GRAY_SCREEN_WIDTH, - SA_Height, GRAY_SCREEN_HEIGHT, - SA_Depth, GRAY_SCREEN_DEPTH, - SA_ShowTitle, FALSE, - TAG_DONE ); - - if ( fts == NULL ) - { - PutStr( "Could not open custom screen\n" ); - return -1; - } - - /* set gray palette */ - SetPalette(); - } - else - { - /* open custom screen */ - fts = (struct Screen*)OpenScreenTags( - NULL, - SA_DisplayID, (PAL_MONITOR_ID | HIRESLACE_KEY), - SA_Width, MONO_SCREEN_WIDTH, - SA_Height, MONO_SCREEN_HEIGHT, - SA_Depth, MONO_SCREEN_DEPTH, - SA_ShowTitle, FALSE, - TAG_DONE ); - - if ( fts == NULL ) - { - PutStr( "Could not open custom screen\n" ); - return -1; - } - } - - /* open intuition window */ - ftw = OpenWindowTags( - NULL, - WA_Left, 0, - WA_Width, fts->Width, - WA_Top, 0, - WA_Height, fts->Height, - WA_IDCMP, IDCMP_VANILLAKEY | IDCMP_MOUSEBUTTONS, - WA_Flags, WFLG_BACKDROP | WFLG_BORDERLESS | - WFLG_RMBTRAP | WFLG_ACTIVATE, - WA_Gadgets, NULL, - WA_Title, NULL, - WA_CustomScreen, fts, - TAG_DONE ); - - if ( ftw == NULL ) - { - PutStr( "Could not open intuition window\n" ); - return -1; - } - - if ( graphx_mode == Graphics_Mode_Gray ) - { - Vio = (char*)AllocMem( DISPLAY_MEM, MEMF_ANY ); - - if ( !Vio ) - { - PutStr( "Cannot AllocMem() display memory\n" ); - return -1; - } - - vio_Width = vio_ScanLineWidth = GRAY_SCREEN_WIDTH; - vio_Height = GRAY_SCREEN_HEIGHT; - } - else - { - Vio = (char*)fts->BitMap.Planes[0]; - vio_ScanLineWidth = fts->BitMap.BytesPerRow; - vio_Width = MONO_SCREEN_WIDTH; - vio_Height = MONO_SCREEN_HEIGHT; - } - - return 0; - } - - - /* get events in the window */ - - static char Get_Intuition_Event( void ) - { - struct IntuiMessage* msg; - ULONG class; - USHORT code; - - - WaitPort( ftw->UserPort ); - - while ( ( msg = (struct IntuiMessage*)GetMsg( ftw->UserPort ) ) ) - { - class = msg->Class; - code = msg->Code; - - ReplyMsg( (struct Message*)msg ); - - switch ( class ) - { - case IDCMP_MOUSEBUTTONS: - return (char)27; - - case IDCMP_VANILLAKEY: - return (char)code; - } - } - - return '\0'; - } - - - /* set Amiga graphics mode */ - - int Driver_Set_Graphics( int mode ) - { - graphx_mode = mode; - - - if ( AmigaInit() == -1 ) - return 0; /* failure */ - - return 1; /* success */ - } - - - /* restore screen to its original state */ - - int Driver_Restore_Mode( void ) - { - /* do nothing */ - - return 1; /* success */ - } - - - /* display bitmap */ - - int Driver_Display_Bitmap( char* buffer, int line, int col ) - { - int y, z; - char* target; - char old = -1; - - - target = Vio + ( line - 1 ) * vio_ScanLineWidth; - - for ( y = 0; y < line; y++ ) - { - CopyMem( buffer, target, col ); - target -= vio_ScanLineWidth; - buffer += col; - } - - if ( graphx_mode == Graphics_Mode_Gray ) - { - /* clear screen */ - SetRast( &fts->RastPort, 0 ); - - /* draw glyph */ - for ( y = 0; y < line; y++ ) - { - for ( z = 0; z < col; z++ ) - { - int c = Vio[y * vio_ScanLineWidth + z]; - - if ( c != 0 ) - { - if ( old != c ) - { - if ( c < 0 || c > 5 ) - { - PutStr( "Unexpected value!\n" ); - SetAPen( &fts->RastPort, 7 ); - } - else - { - old = c; - SetAPen( &fts->RastPort, c ); - } - } - - WritePixel( &fts->RastPort, z, y ); - } - } - } - } - - return 1; /* success */ - } - - - void Get_Event( TEvent* event ) - { - int i; - char c; - - - c = Get_Intuition_Event(); - - if ( c != '\0' ) - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - event->what = trans[i].event_class; - event->info = trans[i].event_info; - return; - } - } - - /* unrecognized keystroke */ - - event->what = event_Keyboard; - event->info = (int)c; - - return; - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/amigaos/gw_amiga.c b/Build/source/libs/freetype/test/arch/amigaos/gw_amiga.c deleted file mode 100644 index 3704d96f999..00000000000 --- a/Build/source/libs/freetype/test/arch/amigaos/gw_amiga.c +++ /dev/null @@ -1,519 +0,0 @@ -/******************************************************************* - * - * gw_amiga.c graphics utility Intuition Amiga driver. - * - * This is the driver for windowed display under Amiga WorkBench, - * used by the graphics utility of the FreeType test suite. - * - * 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. - * - ******************************************************************/ - -/* modified by Richard Griffith - open largest window we can, and adapt accordingly - gray and mono both appear black on white - display Header message in Window title - add simple menus - */ - -/* standard includes */ - -#include -#include - -/* AmigaOS includes */ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -/* FreeType includes */ - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - -/* some screen definitions */ - -#define MONO_WINDOW_WIDTH 0xFFFF -#define MONO_WINDOW_HEIGHT 0xFFFF - -#define GRAY_WINDOW_WIDTH 0xFFFF -#define GRAY_WINDOW_HEIGHT 0xFFFF - -#define DISPLAY_MEM ( 1024 * 64 ) - - - /* external variables */ - extern struct Library* SysBase; - extern struct Library* DOSBase; - - extern int vio_ScanLineWidth; - extern char* Vio; -/* extern char gray_palette[5]; */ - - /* global variables */ - struct Library* IntuitionBase = NULL; - struct Library* GfxBase = NULL; - struct Library* GadToolsBase = NULL; - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - - /* local variables */ - static struct Screen* fts = NULL; - static struct Window* ftw = NULL; - static APTR VisualInfo = NULL; - static struct Menu *ftmenus = NULL; - - static int graphx_mode; - - static ULONG vio_allocsize; - - static struct NewMenu ftNewMenu[] = { - {NM_TITLE, (STRPTR)"File", NULL, 0, NULL, NULL}, - {NM_ITEM, (STRPTR)"Next", (STRPTR)"n", 0, 0L, (APTR)'n'}, - {NM_ITEM, (STRPTR)"Previous",(STRPTR)"p", 0, 0L, (APTR)'p'}, - {NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL}, - {NM_ITEM, (STRPTR)"Quit", (STRPTR)"q", 0, 0L, (APTR)'q'}, - {NM_TITLE, (STRPTR)"Options", NULL, 0, NULL, NULL}, - {NM_ITEM, (STRPTR)"Scale Up", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"Fine", (STRPTR)"u", 0, 0L, (APTR)'u'}, - {NM_SUB, (STRPTR)"Fast", (STRPTR)"+", 0, 0L, (APTR)'+'}, - {NM_ITEM, (STRPTR)"Scale Down", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"Fine", (STRPTR)"j", 0, 0L, (APTR)'j'}, - {NM_SUB, (STRPTR)"Fast", (STRPTR)"-", 0, 0L, (APTR)'-'}, - {NM_ITEM, (STRPTR)"Toggle Hinting", (STRPTR)"h", 0, 0L, (APTR)'h'}, - {NM_ITEM, (STRPTR)"Toggle Kerning", (STRPTR)"K", 0, 0L, (APTR)'K'}, - {NM_ITEM, (STRPTR)"Toggle sbit", (STRPTR)"B", 0, 0L, (APTR)'B'}, - {NM_ITEM, (STRPTR)"Toggle GSUB", (STRPTR)"S", 0, 0L, (APTR)'S'}, - {NM_ITEM, (STRPTR)"Toggle GPOS", (STRPTR)"P", 0, 0L, (APTR)'P'}, - {NM_TITLE, (STRPTR)"Glyph", NULL, 0, NULL, NULL}, - {NM_ITEM, (STRPTR)"Next", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"1", (STRPTR)"l", 0, 0L, (APTR)'l'}, - {NM_SUB, (STRPTR)"10", (STRPTR)"o", 0, 0L, (APTR)'o'}, - {NM_SUB, (STRPTR)"100", (STRPTR)"0", 0, 0L, (APTR)'0'}, - {NM_SUB, (STRPTR)"1000", (STRPTR)")", 0, 0L, (APTR)')'}, - {NM_SUB, (STRPTR)"10000",(STRPTR)"}", 0, 0L, (APTR)'}'}, - {NM_ITEM, (STRPTR)"Previous", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"1", (STRPTR)"k", 0, 0L, (APTR)'k'}, - {NM_SUB, (STRPTR)"10", (STRPTR)"i", 0, 0L, (APTR)'i'}, - {NM_SUB, (STRPTR)"100", (STRPTR)"9", 0, 0L, (APTR)'9'}, - {NM_SUB, (STRPTR)"1000", (STRPTR)"(", 0, 0L, (APTR)'('}, - {NM_SUB, (STRPTR)"10000",(STRPTR)"{", 0, 0L, (APTR)'{'}, - {NM_TITLE, (STRPTR)"Rotate", NULL, 0, NULL, NULL}, - {NM_ITEM, (STRPTR)"Clockwise", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"Fine", (STRPTR)"c", 0, 0L, (APTR)'c'}, - {NM_SUB, (STRPTR)"Fast", (STRPTR)"b", 0, 0L, (APTR)'b'}, - {NM_ITEM, (STRPTR)"Counter-clockwise", NULL, 0, NULL, NULL}, - {NM_SUB, (STRPTR)"Fine", (STRPTR)"x", 0, 0L, (APTR)'x'}, - {NM_SUB, (STRPTR)"Fast", (STRPTR)"v", 0, 0L, (APTR)'v'}, - {NM_END, NULL, NULL, 0, 0L, NULL} }; - - - /* Exit gracefully */ - static void AmigaCleanUp( void ) - { - if ( Vio ) - FreeMem( Vio, vio_allocsize ); - - ReleasePen( fts->ViewPort.ColorMap, gray_palette[0] ); - ReleasePen( fts->ViewPort.ColorMap, gray_palette[1] ); - - if ( graphx_mode == Graphics_Mode_Gray ) - { - ReleasePen( fts->ViewPort.ColorMap, gray_palette[2] ); - ReleasePen( fts->ViewPort.ColorMap, gray_palette[3] ); - ReleasePen( fts->ViewPort.ColorMap, gray_palette[4] ); - } - - if ( ftmenus ) - { - ClearMenuStrip( ftw ); - FreeMenus( ftmenus ); - } - - if ( ftw ) - CloseWindow( ftw ); - - if ( VisualInfo ) - FreeVisualInfo( VisualInfo ); - - if ( GfxBase ) - CloseLibrary( GfxBase ); - - if ( GadToolsBase ) - CloseLibrary( GadToolsBase ); - - if ( IntuitionBase ) - CloseLibrary( IntuitionBase ); - } - - - /* open libraries & custom screen */ - static int AmigaInit( void ) - { - /* cleanup at exit */ - if ( atexit( AmigaCleanUp ) ) - { - PutStr( "atexit() failed\n" ); - return -1; - } - - /* open intuition library */ - IntuitionBase = (struct Library*)OpenLibrary( "intuition.library", 39L ); - if ( IntuitionBase == NULL ) - { - PutStr( "Could not open intuition library\n" ); - return -1; - } - - /* open gaadtools library */ - GadToolsBase = (struct Library*)OpenLibrary( "gadtools.library", 39L ); - if ( GadToolsBase == NULL ) - { - PutStr( "Could not open gadtools library\n" ); - return -1; - } - - /* open graphics library */ - GfxBase = OpenLibrary( "graphics.library", 39L ); - if ( GfxBase == NULL ) - { - PutStr( "Could not open graphics library\n" ); - return -1; - } - - /* get public screen */ - fts = LockPubScreen( NULL ); - - if ( fts == NULL ) - { - PutStr( "Could not lock public screen\n" ); - return -1; - } - - if ( ! ( VisualInfo = GetVisualInfo( fts, TAG_DONE ))) - { - PutStr( "Could not get VisualInfo\n" ); - return -1; - } - - if ( graphx_mode == Graphics_Mode_Gray ) - { - vio_ScanLineWidth = GRAY_WINDOW_WIDTH; - vio_Width = GRAY_WINDOW_WIDTH; - vio_Height = GRAY_WINDOW_HEIGHT; - - gray_palette[4] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0x00000000, 0x00000000, 0x00000000, NULL ); - gray_palette[3] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0x33333300, 0x33333300, 0x33333300, NULL ); - gray_palette[2] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0x77777700, 0x77777700, 0x77777700, NULL ); - gray_palette[1] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0xBBBBBB00, 0xBBBBBB00, 0xBBBBBB00, NULL ); - gray_palette[0] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, NULL ); - } - else - { - vio_ScanLineWidth = MONO_WINDOW_WIDTH / 8; - vio_Width = MONO_WINDOW_WIDTH; - vio_Height = MONO_WINDOW_HEIGHT; - - gray_palette[0] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0xFFFFFF00, 0xFFFFFF00, 0xFFFFFF00, NULL ); - gray_palette[1] = ObtainBestPenA( fts->ViewPort.ColorMap, - 0x00000000, 0x00000000, 0x00000000, NULL ); - } - - if ( !( ftmenus = CreateMenus( ftNewMenu, GTMN_FrontPen, 0L, TAG_DONE ) ) ) - { - PutStr( "Could not create menus\n" ); - return -1; - } - - LayoutMenus( ftmenus, VisualInfo, GTMN_NewLookMenus, TRUE, TAG_DONE ); - - /* open intuition window */ - ftw = OpenWindowTags( - NULL, - WA_InnerWidth, vio_Width, - WA_InnerHeight, vio_Height, - WA_IDCMP, IDCMP_MENUPICK | - IDCMP_VANILLAKEY | - IDCMP_CLOSEWINDOW, - /* WA_AutoAdjust, TRUE, */ - WA_CloseGadget, TRUE, - WA_Activate, TRUE, - WA_DragBar, TRUE, - WA_SmartRefresh, TRUE, - WA_Gadgets, NULL, - WA_Flags, WFLG_DEPTHGADGET | WFLG_SMART_REFRESH, - WA_Title, (UBYTE*)"FreeType Project", - WA_NewLookMenus, TRUE, - WA_PubScreen, fts, - TAG_DONE ); - - if ( ftw == NULL ) - { - PutStr( "Could not open intuition window\n" ); - return -1; - } - - SetMenuStrip( ftw, ftmenus ); - - UnlockPubScreen( NULL, fts ); - - vio_Height = ftw->Height - ftw->BorderTop - ftw->BorderBottom - 2; - vio_Width = (ftw->Width - ftw->BorderLeft - ftw->BorderRight) & 0xFFFFFC; - - if ( graphx_mode == Graphics_Mode_Gray ) - { - vio_ScanLineWidth = vio_Width; - } - else - { - vio_ScanLineWidth = vio_Width / 8; - } - vio_allocsize = vio_Height * vio_ScanLineWidth; - - Vio = (char*)AllocMem( vio_allocsize, MEMF_ANY ); - if ( Vio == NULL ) - { - PutStr( "Could not allocate memory\n" ); - return -1; - } - - return 0; - } - - - /* get events in the window */ - static char Get_Intuition_Event( void ) - { - struct IntuiMessage* msg; - ULONG class; - USHORT code; - int rc; - struct MenuItem *n; - - - WaitPort( ftw->UserPort ); - - while ( ( msg = (struct IntuiMessage*)GetMsg( ftw->UserPort ) ) ) - { - class = msg->Class; - code = msg->Code; - - ReplyMsg( (struct Message*)msg ); - - switch( class ) - { - case IDCMP_REFRESHWINDOW: - GT_BeginRefresh( ftw ); - GT_EndRefresh( ftw, TRUE ); - break; - - case IDCMP_CLOSEWINDOW: - return (char)27; - - case IDCMP_VANILLAKEY: - return (char)code; - - case IDCMP_MENUPICK: - while( code != MENUNULL ) - { - n = ItemAddress( ftmenus, code ); - rc = (int)GTMENUITEM_USERDATA( n ); - code = n->NextSelect; - } /* despite loop, we only do one */ - return (char)rc; - } - } - - return '\0'; - } - - - /* Set Amiga graphics mode */ - int Driver_Set_Graphics( int mode ) - { - graphx_mode = mode; - - if ( AmigaInit() == -1 ) - return 0; /* failure */ - - return 1; /* success */ - } - - - /* restore screen to its original state */ - int Driver_Restore_Mode( void ) - { - /* Do nothing */ - - return 1; /* success */ - } - - - /* display bitmap */ - int Driver_Display_Bitmap( char* buffer, int line, int col ) - { - int y, z; - char* target; - char old = 0; - extern char Header[]; - - - SetWindowTitles(ftw,Header,Header); - - target = Vio + ( line - 1 ) * vio_ScanLineWidth; - - for ( y = 0; y < line; y++ ) - { - CopyMem( buffer, target, col ); - target -= vio_ScanLineWidth; - buffer += col; - } - - /* clear window */ - /* SetRast( ftw->RPort, gray_palette[0] ); */ - - SetAPen( ftw->RPort, gray_palette[0] ); - - RectFill( ftw->RPort, ftw->BorderLeft, ftw->BorderTop, - ftw->Width - ftw->BorderRight - 1, - ftw->Height - ftw->BorderBottom - 1 ); - - if ( graphx_mode != Graphics_Mode_Gray ) - { - SetAPen( ftw->RPort, gray_palette[1] ); - old = 1; - } - - /* Draw glyph */ - for ( y = 0; y < line; y++ ) - { - for ( z = 0; z < col; z++ ) - { - int c = Vio[y * vio_ScanLineWidth + z]; - - - if ( graphx_mode == Graphics_Mode_Gray ) - { - if ( c != 0 && c != gray_palette[0] ) - { - if ( old != c ) - { - old = c; - /* printf("x = %d, y = %d, color = %d\n", z, y, c ); */ - SetAPen( ftw->RPort, c ); - } - - WritePixel( ftw->RPort, ftw->BorderLeft + z, ftw->BorderTop + y ); - } - } - else - { - int mask = 0x80; - int counter = 0; - - - while ( mask ) - { - if ( mask & c ) - WritePixel( ftw->RPort, ftw->BorderLeft + z * 8 + counter, - ftw->BorderTop + y ); - - counter++; - mask >>= 1; - } - } - } - } - - return 1; /* success */ - } - - - void Get_Event( TEvent* event ) - { - int i; - char c; - - - c = Get_Intuition_Event(); - - if ( c != '\0' ) - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - event->what = trans[i].event_class; - event->info = trans[i].event_info; - return; - } - } - - /* unrecognized keystroke */ - - event->what = event_Keyboard; - event->info = (int)c; - - return; - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/amigaos/smakefile b/Build/source/libs/freetype/test/arch/amigaos/smakefile deleted file mode 100644 index 07f0ed50fc2..00000000000 --- a/Build/source/libs/freetype/test/arch/amigaos/smakefile +++ /dev/null @@ -1,195 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for amiga using SAS/C -# and smake -# -# Use this file while in the 'test/arch/amigaos' directory with -# the following statements: -# -# smake assign -# smake -# -# the 'assign' step creates an assignment to simplify referencing -# the core library module, as smake has quite a few limitations in -# dealing with multi-directory projects. -# -# -# 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. - -OBJB = ttapi.o ttcache.o ttcalc.o ttcmap.o ttdebug.o \ - ttextend.o ttfile.o ttgload.o ttinterp.o ttload.o \ - ttmemory.o ttmutex.o ttobjs.o ttraster.o - -OBJS = freetype.o - -OBJX = ftxgasp.o ftxkern.o ftxpost.o ftxcmap.o ftxwidth.o \ - ftxsbit.o ftxgsub.o ftxgpos.o ftxgdef.o ftxopen.o - -CORE = FT:lib/ -COREXT = $(CORE)extend/ -TST = FT:test/ - -OPTIMIZER = optimize optcomp=5 optdep=4 optinlocal optrdep=4 - -SCFLAGS = idlen=40 idir=$(CORE)arch/amigaos idir=$(CORE) idir=$(COREXT) - -TSCFLAGS = $(SCFLAGS) idir=$(TST) - -LIB=ttf.lib -TOPTS=$(TSCFLAGS) link lib=$(LIB) lib=lib:scm.lib \ - lib=lib:sc.lib lib=lib:amiga.lib - -EXE = ftzoom ftlint ftview fttimer ftmetric \ - ftdump ftstring ftstrpnm ftsbit ftstrtto - -TOBJ = gw_amiga.o gmain.o common.o textdisp.o blitter.o display.o - -all: ttf.lib $(EXE) - -assign: - assign FT: /// - -ttf.lib: $(OBJS) $(OBJX) - oml $@ r $(OBJS) $(OBJX) - -ttfdbg.lib: $(OBJB) $(OBJX) - oml $@ r $(OBJB) $(OBJX) - -clean: - -delete \#?.o - -delete //\#?.o - -delete \#?.lib - -delete $(EXE) - - -# -# freetype library core single object -# -freetype.o: $(CORE)arch/amigaos/freetype.c - sc $(SCFLAGS) code=far $(OPTIMIZER) objname=$@ $< - -# -# freetype library core as separate objects -# -ttapi.o: $(CORE)ttapi.c - sc $(SCFLAGS) objname=$@ $< -ttcache.o: $(CORE)ttcache.c - sc $(SCFLAGS) objname=$@ $< -ttcalc.o: $(CORE)ttcalc.c - sc $(SCFLAGS) objname=$@ $< -ttcmap.o: $(CORE)ttcmap.c - sc $(SCFLAGS) objname=$@ $< -ttdebug.o: $(CORE)ttdebug.c - sc $(SCFLAGS) objname=$@ $< -ttextend.o: $(CORE)ttextend.c - sc $(SCFLAGS) objname=$@ $< -ttfile.o: $(CORE)ttfile.c - sc $(SCFLAGS) objname=$@ $< -ttgload.o: $(CORE)ttgload.c - sc $(SCFLAGS) objname=$@ $< -ttinterp.o: $(CORE)ttinterp.c - sc $(SCFLAGS) objname=$@ $< -ttload.o: $(CORE)ttload.c - sc $(SCFLAGS) objname=$@ $< -ttmemory.o: $(CORE)ttmemory.c - sc $(SCFLAGS) objname=$@ $< -ttmutex.o: $(CORE)ttmutex.c - sc $(SCFLAGS) objname=$@ $< -ttobjs.o: $(CORE)ttobjs.c - sc $(SCFLAGS) objname=$@ $< -ttraster.o: $(CORE)ttraster.c - sc $(SCFLAGS) objname=$@ $< - -# -# library extentions -# -ftxgasp.o: $(COREXT)ftxgasp.c - sc $(SCFLAGS) objname=$@ $< -ftxkern.o: $(COREXT)ftxkern.c - sc $(SCFLAGS) objname=$@ $< -ftxpost.o: $(COREXT)ftxpost.c - sc $(SCFLAGS) objname=$@ $< -ftxcmap.o: $(COREXT)ftxcmap.c - sc $(SCFLAGS) objname=$@ $< -ftxwidth.o: $(COREXT)ftxwidth.c - sc $(SCFLAGS) objname=$@ $< -ftxsbit.o: $(COREXT)ftxsbit.c - sc $(SCFLAGS) objname=$@ $< -ftxgsub.o: $(COREXT)ftxgsub.c - sc $(SCFLAGS) objname=$@ $< -ftxgpos.o: $(COREXT)ftxgpos.c - sc $(SCFLAGS) objname=$@ $< code=far -ftxgdef.o: $(COREXT)ftxgdef.c - sc $(SCFLAGS) objname=$@ $< -ftxopen.o: $(COREXT)ftxopen.c - sc $(SCFLAGS) objname=$@ $< - -# -# Test programs -# -ftzoom: $(TST)ftzoom.c $(TOBJ) $(LIB) - sc $(TST)ftzoom.c programname=$@ $(TOBJ) $(TOPTS) - -ftlint: $(TST)ftlint.c common.o $(LIB) - sc $(TST)ftlint.c programname=$@ common.o $(TOPTS) - -ftdump: $(TST)ftdump.c common.o $(LIB) - sc $(TST)ftdump.c programname=$@ common.o $(TOPTS) - -# use unsigned char so full latin1 encoding may be used in string argument -ftstring: $(TST)ftstring.c $(TOBJ) $(LIB) - sc $(TST)ftstring.c uchar programname=$@ $(TOBJ) $(TOPTS) - -ftview: $(TST)ftview.c $(TOBJ) $(LIB) - sc $(TST)ftview.c programname=$@ $(TOBJ) $(TOPTS) - -fttimer: $(TST)fttimer.c $(TOBJ) $(LIB) - sc $(TST)fttimer.c programname=$@ $(TOBJ) $(TOPTS) - -ftstrpnm: $(TST)ftstrpnm.c common.o $(LIB) - sc $(TST)ftstrpnm.c uchar programname=$@ common.o $(TOPTS) - -ftsbit: $(TST)ftsbit.c common.o textdisp.o $(LIB) - sc $(TST)ftsbit.c programname=$@ common.o textdisp.o $(TOPTS) - -ftmetric: $(TST)ftmetric.c common.o textdisp.o $(LIB) - sc $(TST)ftmetric.c programname=$@ common.o textdisp.o $(TOPTS) - -# use unsigned char so full latin1/UTF8 encoding may be used in argument -ftstrtto: $(TST)ftstrtto.c $(TOBJ) arabic.o $(LIB) - sc $(TST)ftstrtto.c uchar programname=$@ $(TOBJ) \ - arabic.o $(TOPTS) - -# -# Test program support modules -# - -gw_amiga.o: gw_amiga.c - sc gw_amiga.c $(TSCFLAGS) - -common.o: $(TST)common.c - sc $(TSCFLAGS) objname=$@ $< - -textdisp.o: $(TST)textdisp.c - sc $(TSCFLAGS) objname=$@ $< - -blitter.o: $(TST)blitter.c - sc $(TSCFLAGS) objname=$@ $< - -display.o: $(TST)display.c - sc $(TSCFLAGS) objname=$@ $< - -gmain.o: $(TST)gmain.c - sc $(TSCFLAGS) objname=$@ $< - -arabic.o: $(TST)arabic.c - sc $(TSCFLAGS) objname=$@ $< - -# end of smakefile diff --git a/Build/source/libs/freetype/test/arch/debugger/Makefile b/Build/source/libs/freetype/test/arch/debugger/Makefile deleted file mode 100644 index 4de2f61c654..00000000000 --- a/Build/source/libs/freetype/test/arch/debugger/Makefile +++ /dev/null @@ -1,110 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the debugger for emx-gcc under OS/2 resp. under Unix. -# -# You will need GNU make. -# -# Use this file while in the `test' directory with the following statements: -# -# make -f arch/debugger/Makefile depend -# make -f arch/debugger/Makefile -# -# -# Copyright 1996-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. - -ARCH = arch/debugger -FT_MAKEFILE = $(ARCH)/Makefile - -CC = gcc - -LIBDIR = ../lib -LIBTTF = $(LIBDIR)/$(ARCH)/libttf.a - -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/extend -I$(LIBDIR)/$(ARCH) -I. - -# Note: The debugger uses non-ANSI functions to read the keyboard -# on OS/2 -- do not set the `-ansi flag here. -# -CFLAGS = -Wall -O0 -g $(INCDIRS) - - -SRC = fdebug.c common.c - -ALLSRC = $(SRC) -ALLOBJ = $(ALLSRC:.c=.o) - -# on OS/2, do not use the curses library -# -ifdef OS2_SHELL -EXE := fdebug.exe -OS := OS2 -EFENCE := -EXTRAFLAGS := -RM := del -else -EXE := fdebug -OS := UNIX -EFENCE := -lefence -RM := rm -f -# -# POSIX TERMIOS: Do not define if you use OLD U*ix like 4.2BSD. -# -EXTRAFLAGS := HAVE_POSIX_TERMIOS -endif - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< -D$(OS) -D$(EXTRAFLAGS) - -%.exe: - $(CC) $(CFLAGS) -o $@ $^ - - - -EXEFILES = $(EXE) - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -$(EXE): fdebug.o common.o $(LIBTTF) -$(EXE): - $(CC) $(CFLAGS) -o $@ $^ $(EFENCE) - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -$(RM) dep.end $(EXEFILES) core - -do_clean: - -$(RM) $(subst /,\,$(ALLOBJ)) - - -depend: $(ALLSRC) - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -MM $(INCDIRS) $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.emx diff --git a/Build/source/libs/freetype/test/arch/msdos/Makefile.BC b/Build/source/libs/freetype/test/arch/msdos/Makefile.BC deleted file mode 100644 index 1dc04a39d7c..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/Makefile.BC +++ /dev/null @@ -1,191 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for BC++ under MSDOS, large model. -# -# Tested with Borland C++ v.3.1, 4.02, 5.0 -# You will need Borland MAKE (v.3.6 and above should be OK, for oldest -# versions refer to the instructions below). -# -# -# Use this file while in the 'test' directory with the following statement: -# -# make -farch\msdos\Makefile.BC -# -# -# Debug versions can be obtained with -# -# make -DDEBUG -farch\msdos\Makefile.BC -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# make -DBIGFONTS -farch\msdos\Makefile.BC -# -# -# 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. - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.BC - -CC = bcc - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR);$(LIBDIR)\$(ARCH);.;$(LIBDIR)\extend -SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -w-pia - -# Credits go to Dave Hoo for pointing out that modern -# Borland compilers (from BC++ 3.1 on) can increase the limit of -# the length of identifiers. -!if ! $d(DEBUG) -CFLAGS = -ml -A -O2 -3 -i40 $(INCDIRS) $(SPURIOUS_WARNINGS) -LDFLAGS = -ml -!else -CFLAGS = -v -N -ml -A -i40 $(INCDIRS) $(SPURIOUS_WARNINGS) -LDFLAGS = -v -ml -!endif - - -# full-screen MSDOS driver -GDRIVER = $(ARCH)\.\gfs_dos.c - -DISPLAY = display.c - -G1SRC = gmain.c blitter.c $(GDRIVER) -GSRC = $(DISPLAY) $(G1SRC) - -GOBJ = $(GSRC:.c=.obj) -G1OBJ = $(G1SRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - $(CC) -c -o$* @&&| - $(CFLAGS) $< -| - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!if !$d(DEBUG) -# Skipped if DEBUG build -all: freetype $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -!if $d(BIGFONTS) -MAKEBIG = -DBIGFONTS -!endif - -freetype: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) $(MAKEBIG) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG $(MAKEBIG) debug - cd ..\test - - -# Borland C compilers are unable to include in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| - -.obj.exe: - $(CC) -e$* @&&| - $(LDFLAGS) $** -| - -# Borland versions of make are unable to use the $** variable inside -# implicit rules (like .obj.exe:). The job has to be done by hand. :-( -ftzoom.exe: $(G1OBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftzoom.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftview.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstring.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrtto.obj $(GOBJ) common.obj arabic.obj \ - $(LIBDIR)\libttf.lib - -fttimer.exe: $(G1OBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftlint.obj common.obj $(LIBDIR)\libttf.lib - -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftdump.obj common.obj $(LIBDIR)\libttf.lib - -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - -ftsbit.exe: $(TDOBJ) ftsbit.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftsbit.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -ftmetric.exe: $(TDOBJ) ftmetric.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftmetric.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - del time.h # clean the ugly hack for Turbo C... - -!include "$(ARCH)\depend.dos" - -# end of Makefile diff --git a/Build/source/libs/freetype/test/arch/msdos/Makefile.MS b/Build/source/libs/freetype/test/arch/msdos/Makefile.MS deleted file mode 100644 index f0e32a3da76..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/Makefile.MS +++ /dev/null @@ -1,152 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Microsoft C for MS-DOS, -# large model. It also works for Visual C++ 1.x 16-bits compiler, but -# you should instead use the Makefile customized for it, Makefile.VC. -# -# You will need NMAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake /f arch\msdos\Makefile.MS -# -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\msdos\Makefile.MS -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# nmake BIGFONTS=1 /f arch\msdos\Makefile.MS -# -# -# 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. - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.MS -FT_MAKE = $(MAKE) /nologo - -CC = cl /nologo - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I. -I$(LIBDIR)\extend - -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G2 $(INCDIRS) -LDFLAGS = /AL -!else -CFLAGS = /Zi /AL /Za /W2 /G2 $(INCDIRS) -LDFLAGS = /Zi /AL -!endif - - -# full-screen MSDOS driver -GDRIVER = $(ARCH)\gfs_dos.c - -GSRC = display.c gmain.c blitter.c $(GDRIVER) - -GOBJ = $(GSRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - @$(CC) /c /Fo$* @<< - $(CFLAGS) $< -<< - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skiped if DEBUG build -all: freetype $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -!ifdef BIGFONTS -MAKEBIG = BIGFONTS=1 -!endif - -freetype: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) $(MAKEBIG) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 $(MAKEBIG) debug - cd ..\test - -.obj.exe: - $(CC) /Fe$* @<< - $(LDFLAGS) $** -<< - -ftzoom.exe: $(GOBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib -fttimer.exe: $(GOBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib -ftsbit.exe: ftsbit.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -ftmetric.exe: ftmetric.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - - -!include "$(ARCH)\depend.dos" - -# end of Makefile.MS diff --git a/Build/source/libs/freetype/test/arch/msdos/Makefile.TC b/Build/source/libs/freetype/test/arch/msdos/Makefile.TC deleted file mode 100644 index 6640e577c0e..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/Makefile.TC +++ /dev/null @@ -1,267 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Turbo C under MSDOS, large model. -# -# You will need Borland MAKE. -# Tested with Turbo C v.1.5, v.2.0, Turbo C++ v.1.0, v.3.0 -# Turbo C v.1.0 (May '87) is too old (lack of structure assignment) -# to compile FreeType. Update your compiler. ;-) -# See below for notes regarding the various versions. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# make -farch\msdos\Makefile.TC -# -# -# Debug versions can be obtained (except for TC 1.5, see below) with -# -# make -DDEBUG -farch\msdos\Makefile.TC -# -# The main difference is with the compiler options, because due to size -# constraints, the modules of the library are always compiled separately. -# -# -# 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. -# -# -# -# Various notes about specific versions... -# -# The lack of space in the command line prevents us to turn off the -# -w-use warning (when TCC.CFG file had enabled it). -# -# Due to lack of space in the command line, we are not able to -# switch off all the irrelevant warnings for the demo program. -# Under the default settings, only one warning should be shown. -# If more of the ``verbose'' warnings are enabled, much more can -# appear. However, rest assured that any of them have been dealt -# with, and they are just that, warnings, not indicating real -# problems. -# -# NOTE: Turbo C++ v. 3.0 -# -# The Makefile.TC for this version is common with the older versions. -# Alternatively, you can consider using Makefile.BC instead, changing -# the name of the compiler from BCC to TCC! -# -# NOTE 2: Turbo C v. 2.0 -# -# This version lacks an ANSI compliant header, so it causes -# problems when compiling the demo program fttimer. We worked around -# this difficulty in a very hacky way. -# The detection is based on the version of make used, so if you use -# a more recent version, please take a closer look at the Makefile. -# -# NOTE 3: Turbo C v. 1.5 -# -# Yes, this old compiler is able to compile the FreeType library, even -# if it predates the ANSI standard by months! However, this is a -# huge piece for such a small compiler, and several things are not -# possible. First, as always with real-mode compilers, you need a lot -# of available memory, probably more than 512KB at the C> prompt. -# Also, compiling for debug is ardeous: both Makefile.TC assume the -# -v option, which was not available in this version. -# -# The hack for is used there too, as with v.2.0. - - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.TC - -CC = tcc - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR);$(LIBDIR)\$(ARCH);.;$(LIBDIR)\extend -SPURIOUS_WARNINGS = -w-pia -w-par -w-use -w-aus -w-rng - -!if ! $d(DEBUG) -CFLAGS_LEAN = -ml -A -O -Z -G -a $(INCDIRS) -# The lack of space in the command line prevents us to turn off the -# warnings, when the TCC.CFG file had enable it with -w. -# With the normal settings, it should not complain. -LDFLAGS = -ml -!else -# For Turbo C v.1.5, replace the -v option below by -y (2 occurences). -# You should have applied the same change in the lib Makefile, too. -CFLAGS_LEAN = -v -N -ml -w-pia -A $(INCDIRS) -LDFLAGS = -v -ml -!endif - -CFLAGS = $(CFLAGS_LEAN) $(SPURIOUS_WARNINGS) - - -# full-screen MSDOS driver -GDRIVER = $(ARCH)\.\gfs_dos.obj - -# the line below does not work with these old versions of make... -# GOBJ = $(GSRC:.c=.o) - -DISPLAY = display.obj - -G1OBJ = gmain.obj blitter.obj $(GDRIVER) -GOBJ = $(DISPLAY) $(G1OBJ) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = arabic.obj \ - common.obj \ - ftdump.obj \ - fterror.obj \ - ftlint.obj \ - ftmetric.obj \ - ftsbit.obj \ - ftstring.obj \ - ftstrpnm.obj \ - ftstrtto.obj \ - fttimer.obj \ - ftview.obj \ - ftzoom.obj - - -.c.obj: - $(CC) $(CFLAGS) -c -o$* $< - - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - - -!if !$d(DEBUG) -# Skipped if DEBUG build -all: freetype $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -freetype: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG debug - cd ..\test - - -# Borland C compilers are unable to include in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -# Furthermore, this line exceeds the 128-character limit of COMMAND.COM; -# as a result, we drop the warnings... -$(GDRIVER): - $(CC) $(CFLAGS_LEAN) -A- -c -o$* $*.c - - -# This old gr... make is unable to have a $ variable to name all the -# dependencies. :-( So the job have to be done by hand... -ftzoom.exe: $(G1OBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftzoom.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftview.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstring.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrtto.obj $(GOBJ) common.obj \ - arabic.obj $(LIBDIR)\libttf.lib - - -# fttimer.exe... Well, there is an additional problem here... - -!if $(__MAKE__) < 0x0300 - -# Also, Turbo C v.1.5 and v.2.0 are not fully ANSI compliant with regard to -# , particularly the clock() function. -# So we use an ugly hack here: a modified version of time.h, with the -# necessary machinery, is included in the arch\msdos directory. -time.h: $(ARCH)\time_tc.h - copy $(ARCH)\time_tc.h time.h - -# Below is the special rule for forcing recompilation of fttimer.obj -# using our , without using the rule that is pulled in by -# !include "$(ARCH)\depend.dos" at the end of the Makefile... -fttimer.exe: $(G1OBJ) fttimer.c time.h common.obj $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) -c -o$* $*.c - $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -# Yes, all of this is really dirty... - -!else -# Normal behaviour -fttimer.exe: $(G1OBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib -!endif - - - -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftlint.obj common.obj $(LIBDIR)\libttf.lib - -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftdump.obj common.obj $(LIBDIR)\libttf.lib - -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - -ftsbit.exe: $(TDOBJ) ftsbit.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftsbit.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -ftmetric.exe: $(TDOBJ) ftmetric.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftmetric.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - del time.h # clean the ugly hack for Turbo C... - -!include "$(ARCH)\depend.dos" - -# end of Makefile diff --git a/Build/source/libs/freetype/test/arch/msdos/Makefile.VC b/Build/source/libs/freetype/test/arch/msdos/Makefile.VC deleted file mode 100644 index 60d03fff311..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/Makefile.VC +++ /dev/null @@ -1,153 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Microsoft Visual C++ 1.x -# and Microsoft C/C++ v.7.0 16-bit compilers for MS-DOS, large model. -# -# You will need NMAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake /f arch\msdos\Makefile.VC -# -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\msdos\Makefile.VC -# -# A special version enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# nmake BIGFONTS=1 /f arch\msdos\Makefile.VC -# -# -# 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. - -ARCH = arch\msdos -FT_MAKEFILE = $(ARCH)\Makefile.VC -FT_MAKE = $(MAKE) /nologo - -CC = cl /nologo - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I. -I$(LIBDIR)\extend - -# One can also consider using "set MSC_CMD_FLAGS=/Gr /Op- /Gy /YX". -# With Microsoft C/C++ 7.0, use /G2 instead of /G3. -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G3 $(INCDIRS) -LDFLAGS = /AL -!else -CFLAGS = /Zi /Ge /AL /Za /W2 /G3 $(INCDIRS) -LDFLAGS = /Zi /AL -!endif - - -# full-screen MSDOS driver -GDRIVER = $(ARCH)\gfs_dos.c - -GSRC = display.c gmain.c blitter.c $(GDRIVER) - -GOBJ = $(GSRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - @$(CC) /c /Fo$* @<< - $(CFLAGS) $< -<< - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skiped if DEBUG build -all: freetype $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -!ifdef BIGFONTS -MAKEBIG = BIGFONTS=1 -!endif - -freetype: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) $(MAKEBIG) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 $(MAKEBIG) debug - cd ..\test - -.obj.exe: - $(CC) /Fe$* @<< - $(LDFLAGS) $** -<< - -ftzoom.exe: $(GOBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib -fttimer.exe: $(GOBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib -ftsbit.exe: ftsbit.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -ftmetric.exe: ftmetric.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - - -!include "$(ARCH)\depend.dos" - -# end of Makefile.VC diff --git a/Build/source/libs/freetype/test/arch/msdos/Makefile.dm b/Build/source/libs/freetype/test/arch/msdos/Makefile.dm deleted file mode 100644 index cce7c9e9368..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/Makefile.dm +++ /dev/null @@ -1,156 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc and djgpp under MSDOS. -# -# You will need dmake. -# -# Use this file while in the 'test' directory with the following statement: -# -# dmake -r -f arch/msdos/Makefile.dm -# -# -# 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. - -ARCH = arch/msdos -FT_MAKEFILE = $(ARCH)/Makefile.dm -FT_MAKE = dmake -r - -.IMPORT: COMSPEC -SHELL := $(COMSPEC) -SHELLFLAGS := /c -GROUPSHELL := $(SHELL) -GROUPFLAGS := $(SHELLFLAGS) -GROUPSUFFIX := .bat -SHELLMETAS := *"?<>&| - -CC = gcc - -LIBDIR = ../lib -LIBDIR_DOS = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -CFLAGS = -Wall -ansi -O2 -g $(INCDIRS) -# CFLAGS = -ansi -Wall -O2 -s $(INCDIRS) - -# full-screen MSDOS driver -GDRIVER = $(ARCH)/gfs_dos.c - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -GSRC = gmain.c display.c blitter.c $(GDRIVER) -GOBJ = $(GSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -%.exe: - $(CC) $(CFLAGS) -o $@ @$(mktmp $(&:t"\n")\n) - - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean do_distclean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -freetype: -[ - cd $(LIBDIR_DOS) - $(FT_MAKE) -f $(FT_MAKEFILE) all - cd $(MAKEDIR) -] - -freetype_debug: -[ - cd $(LIBDIR_DOS) - $(FT_MAKE) -f $(FT_MAKEFILE) debug - cd $(MAKEDIR) -] - -ftzoom.exe: $(GOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean -[ - cd $(LIBDIR_DOS) - $(FT_MAKE) -f $(FT_MAKEFILE) clean - cd $(MAKEDIR) -] - -distclean: do_clean do_distclean -[ - cd $(LIBDIR_DOS) - $(FT_MAKE) -f $(FT_MAKEFILE) distclean - cd $(MAKEDIR) -] - -do_distclean: --[ - del dep.end - del *.exe - del core -] - -do_clean: --[ - del *.o - del $(ARCH)\gfs_dos.o -] - -#depend: $(SRC) $(GSRC) -#[ -# cd $(LIBDIR_DOS) -# $(FT_MAKE) -f $(FT_MAKEFILE) depend -# cd $(MAKEDIR) -# $(CC) -E -M $(INCDIRS) @$(mktmp $(<:t"\n")\n) > dep.end -#] -# -#ifeq (dep.end,$(wildcard dep.end)) -# include dep.end -#endif - -# end of Makefile.dm diff --git a/Build/source/libs/freetype/test/arch/msdos/Makefile.gcc b/Build/source/libs/freetype/test/arch/msdos/Makefile.gcc deleted file mode 100644 index 64a9dd35279..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/Makefile.gcc +++ /dev/null @@ -1,151 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc and djgpp under MSDOS. -# -# You will need a recent GNU make DOS port. -# -# Use this file while in the 'test' directory with the following statements: -# -# make -f arch/msdos/Makefile.gcc depend -# make -f arch/msdos/Makefile.gcc -# -# -# If you have the GNU gettext package installed with DJGPP, you can also try -# -# make -f arch/msdos/Makefile.gcc HAVE_GETTEXT -# -# Note that this version takes in account new versions of GNU gettext, -# which in turn requires the iconv library. If you have an old version -# of gettext and don't have the iconv library, just erase the `-l iconv'. -# -# Also take a look at the lib Makefile (at ../lib/arch/msdos/Makefile.gcc), -# about the need to have the path to the *.mo files correct. -# -# -# Copyright 1996-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. - -ARCH = arch/msdos -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -LIBDIR = ../lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -ifndef GETTEXT -GETTEXT=NO_GETTEXT -endif - -CFLAGS = -Wall -ansi -O2 -g $(INCDIRS) -D$(GETTEXT) -# CFLAGS = -ansi -Wall -O2 -s $(INCDIRS) -D$(GETTEXT) - - -# full-screen MSDOS driver -GDRIVER = $(ARCH)/gfs_dos.c $(ARCH)/gmain_dj.c - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -GSRC = display.c blitter.c $(GDRIVER) -GOBJ = $(GSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - - -ifeq ($(GETTEXT),HAVE_GETTEXT) -%.exe: - $(CC) $(CFLAGS) -o $@ $^ -lintl -liconv -# Remove `-l iconv' above if you have an old version -# of GNU gettext (like 0.10.35) and no iconv library. -else -%.exe: - $(CC) $(CFLAGS) -o $@ $^ -endif - - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -HAVE_GETTEXT: - $(MAKE) -f $(FT_MAKEFILE) GETTEXT=HAVE_GETTEXT all - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - -ftzoom.exe: $(GOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -fterror.exe: fterror.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -del dep.end - -del *.exe - -del core - -do_clean: - -del *.o - -del response - -del $(ARCH)\gfs_dos.o - -depend: $(SRC) $(GSRC) - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -MM $(INCDIRS) $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/test/arch/msdos/depend.dos b/Build/source/libs/freetype/test/arch/msdos/depend.dos deleted file mode 100644 index 09809f45f38..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/depend.dos +++ /dev/null @@ -1,76 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various MS-DOS compilers -# has been generated automatically with the script `makedep' on -# 2002-02-19. - -arabic.obj: arabic.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h -blitter.obj: blitter.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -common.obj: common.c common.h -display.obj: display.c display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gmain.h -fdebug.obj: fdebug.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\tttypes.h ..\lib\ttconfig.h \ - ..\lib\arch\msdos\ft_conf.h ..\lib\ttdebug.h \ - ..\lib\ttobjs.h ..\lib\ttengine.h \ - ..\lib\ttmutex.h ..\lib\ttcache.h \ - ..\lib\tttables.h ..\lib\ttcmap.h -ftdump.obj: ftdump.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxcmap.h ..\lib\extend\ftxopen.h \ - ..\lib\extend\ftxgdef.h ..\lib\extend\ftxgsub.h \ - ..\lib\extend\ftxgpos.h ..\lib\extend\ftxsbit.h \ - ..\lib\ttobjs.h ..\lib\ttconfig.h \ - ..\lib\arch\msdos\ft_conf.h ..\lib\ttengine.h \ - ..\lib\tttypes.h ..\lib\ttmutex.h \ - ..\lib\ttcache.h ..\lib\tttables.h \ - ..\lib\ttcmap.h ..\lib\ttmemory.h -fterror.obj: fterror.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxerr18.h \ - ..\lib\arch\msdos\ft_conf.h -ftlint.obj: ftlint.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\arch\msdos\ft_conf.h -ftmetric.obj: ftmetric.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\msdos\ft_conf.h -ftsbit.obj: ftsbit.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\msdos\ft_conf.h -ftstring.obj: ftstring.c common.h display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gevents.h \ - gdriver.h gmain.h -ftstrpnm.obj: ftstrpnm.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -ftstrtto.obj: ftstrtto.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h \ - blitter.h common.h display.h ..\lib\extend\ftxkern.h \ - ..\lib\extend\ftxsbit.h gdriver.h gevents.h gmain.h \ - ..\lib\ttmemory.h ..\lib\ttconfig.h \ - ..\lib\arch\msdos\ft_conf.h ..\lib\tttypes.h -fttimer.obj: fttimer.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gdriver.h \ - gevents.h gmain.h -ftview.obj: ftview.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h common.h \ - display.h ..\lib\extend\ftxsbit.h gdriver.h gevents.h \ - gmain.h -ftzoom.obj: ftzoom.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxpost.h gdriver.h gevents.h gmain.h -gmain.obj: gmain.c gdriver.h gmain.h -textdisp.obj: textdisp.c textdisp.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -arch\msdos\gfs_dos.obj: arch\msdos\gfs_dos.c gdriver.h gevents.h gmain.h diff --git a/Build/source/libs/freetype/test/arch/msdos/gfs_dos.c b/Build/source/libs/freetype/test/arch/msdos/gfs_dos.c deleted file mode 100644 index ce61c526796..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/gfs_dos.c +++ /dev/null @@ -1,374 +0,0 @@ -/******************************************************************* - * - * gfs_dos.c graphics utility fullscreen Dos driver. 1.0 - * - * This is the driver for fullscreen Dos display, used by the - * graphics utility of the FreeType test suite. - * - * Copyright 1996-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 -#include -#if defined( __STDC__ ) || defined( __TURBOC__ ) -#include -#else -#include -#endif - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - -/* The following #ifdef are used to define the following macros : */ -/* */ -/* - int86 : function to call an interrupt */ -/* - reg_ax : the 'ax' register as stored in the REGS struct */ -/* */ - -/* ---- DJGPP dos compiler support --------------------------------------- */ - -#if defined( __DJGPP__ ) || defined( __DJGPP ) || defined( __GO32__ ) - -#undef __STRICT_ANSI__ -#ifndef DJGPP -#define DJGPP -#endif - -#include -#include -#include - -#if !defined( __DJGPP__ ) -/* DJGPP v1.x */ - -const int djgpp_use_nearpointers = 0; /* V.1 did not know about them */ - -#else -/* DJGPP v2.x */ - -#ifdef DJGPP_NEAR_POINTERS -#include -int djgpp_use_nearpointers = -1; /* to be tested if they works */ -#else -const int djgpp_use_nearpointers = 0; /* don't even try */ -#endif - -#endif /* DJGPP v.? */ - -#define int86( a, b, c ) int86( a, b, c ) -#define reg_ax regs.x.ax - -#endif - -/* ---- Microsoft C compilers support ------------------------------------ */ - -#if defined( M_I86 ) || defined( _M_I86 ) - -#include -#include - -#define reg_ax regs.x.ax - -#ifdef _M_I86 /* a recent compiler, which do not pollute name spaces */ -#define getch() _getch() -#define REGS _REGS -#define int86( a, b, c ) _int86( a, b, c ) -#else -#define int86( a, b, c ) int86( a, b, c ) -#endif - -#ifndef MK_FP -#ifdef _MK_FP -#define MK_FP( seg, ofs ) _MK_FP( seg, ofs ) -#else -#ifndef _M_I86 /* old versions */ -#define __far _far -#endif -#define MK_FP( seg, offset ) (void __far *)( ((unsigned long)seg << 16) + \ - (unsigned long)(unsigned)offset ) -#endif /* _MK_FP */ -#endif /* MK_FP */ - -#endif /* Microsoft compilers */ - -/* ---- Borland C compiler support --------------------------------------- */ - -#ifdef __TURBOC__ -#ifdef __STDC__ -#error "MK_FP is incompatible with ANSI mode. Use the `-A-' switch." -#endif - -#include /* Includes the declaration of int86 */ -#include /* for getch */ - -#define reg_ax regs.x.ax -#define int86( a, b, c ) int86( a, b, c ) - -#endif - -/* ---- Phar Lap 286|DOS extender support -------------------------------- */ - -#ifdef DOSX286 -/* The symbol DOSX286 must be specified on the command line. */ - -#include - -#ifndef FP_SEG -#define FP_SEG(fp) (*((unsigned __far *)&(fp) + 1)) -#endif - -#endif - -/* ---- EMX/Dos compiler support ----------------------------------------- */ - -#ifdef __EMX__ - -#include -#include -#include /* for getch */ - extern _read_kbd(); /* to avoid an ANSI warning during compilation */ - -#define int86 _int86 -#define reg_ax regs.x.ax - -#endif - -/* ---- WATCOM Dos/16 & Dos/32 support ----------------------------------- */ - -#ifdef __WATCOMC__ - -#include - -#define reg_ax regs.w.ax - -#ifdef __386__ -#define int86 int386 -#endif - -#endif - - -#if !defined( reg_ax ) || !defined( int86 ) -#error "Your compiler is not (yet) supported. Check the source file!" -#endif - - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - - /* Set Graphics Mode */ - - int Driver_Set_Graphics( int mode ) - { - union REGS regs; - - - switch ( mode ) - { - case Graphics_Mode_Mono: /* Standard VGA 640x480x16 mode */ - reg_ax = 0x12; - int86( 0x10, ®s, ®s ); - - vio_ScanLineWidth = 80; - vio_Width = 640; - vio_Height = 480; - break; - - case Graphics_Mode_Gray: /* Standard VGA 320x200x256 mode */ - reg_ax = 0x13; - int86( 0x10, ®s, ®s ); - - vio_ScanLineWidth = 320; - vio_Width = 320; - vio_Height = 200; - - /* default gray_palette takes the gray levels of the standard VGA */ - /* 256 colors mode */ - - gray_palette[0] = 0; - gray_palette[1] = 23; - gray_palette[2] = 27; - gray_palette[3] = 29; - gray_palette[4] = 31; - break; - - default: - return 0; /* failure */ - } - -#if defined( __EMX__ ) - Vio = _memaccess( 0xA0000, 0xAFFFF, 1 ); -#elif defined( DJGPP ) - Vio = (char *)0xA0000; -#elif defined( __WATCOMC__ ) && defined( __386__ ) - Vio = (char *)0xA0000; -#elif defined( DOSX286 ) - { - unsigned short sel; - - - if ( DosMapRealSeg( 0xA000, (long)vio_ScanLineWidth*vio_Height, &sel ) ) - return 0; /* failure */ - - Vio = (char*)MK_FP( sel, 0 ); - } -#else - Vio = (char*)MK_FP( 0xA000, 0 ); -#endif - - return 1; /* success */ - } - - - /* Revert to text mode */ - - int Driver_Restore_Mode() - { - union REGS regs; - - - reg_ax = 0x3; - int86( 0x10, ®s, ®s ); - -#ifdef DOSX286 - DosFreeSeg( FP_SEG( Vio ) ); -#endif - - return 1; /* success */ - } - - - int Driver_Display_Bitmap( char* buffer, int line, int col ) - { - int y, used_col; - char* target; - -#ifdef DJGPP - char cbuf = 0; - int i; -#endif - -#ifdef DJGPP_USE_NEAR_POINTERS - if( djgpp_use_nearpointers ) - if( ! __djgpp_nearptr_enable() ) - /* doesn't work, probably under some real OS like NT or dosemu! */ - djgpp_use_nearpointers = 0; - else - Vio += __djgpp_conventional_base; -#endif - -#ifdef DJGPP - if( !djgpp_use_nearpointers ) - for( i = 0; i < vio_Height*vio_ScanLineWidth; i++ ) - dosmemput( &cbuf, 1, (unsigned long) Vio+i ); - else - /*FALLTHROUGH*/ -#endif - memset( Vio, 0, vio_Height * vio_ScanLineWidth ); - - if ( line > vio_Height ) - line = vio_Height; - if ( col > vio_ScanLineWidth ) - used_col = vio_ScanLineWidth; - else - used_col = col; - - target = Vio + ( line - 1 ) * vio_ScanLineWidth; - - for ( y = 0; y < line; y++ ) - { -#ifdef DJGPP - if( !djgpp_use_nearpointers ) - dosmemput( buffer, used_col, (unsigned long)target ); - else - /*FALLTHROUGH*/ -#endif - memcpy( target, buffer, used_col ); - - target -= vio_ScanLineWidth; - buffer += col; - } - -#ifdef DJGPP_USE_NEAR_POINTERS - if( djgpp_use_nearpointers ) - { - Vio -= __djgpp_conventional_base; - __djgpp_nearptr_disable(); - } -#endif - - return 1; /* success */ - } - - - void Get_Event( TEvent* event ) - { - int i; - int c; - - - c = getch(); - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - event->what = trans[i].event_class; - event->info = trans[i].event_info; - return; - } - } - - /* unrecognized keystroke */ - - event->what = event_Keyboard; - event->info = (int)c; - return; - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/msdos/gmain_dj.c b/Build/source/libs/freetype/test/arch/msdos/gmain_dj.c deleted file mode 100644 index 01206cfb21c..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/gmain_dj.c +++ /dev/null @@ -1,470 +0,0 @@ -/******************************************************************* - * - * gmain_dj.c graphics utility main body, specific DJGPP version - * - * This file defines a specific implementation of the generic - * graphics utility used by the FreeType test programs. It is - * provided because the management of the video memory under DJGPP - * extender is rather specific... - * - * Copyright 1996-2002 by Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 "gdriver.h" -#include "gmain.h" - -#undef __STRICT_ANSI__ -#include - -#ifndef FAILURE -#define FAILURE 0 -#endif - -#ifndef SUCCESS -#define SUCCESS 1 -#endif - - char* Vio; /* pointer to VRAM or display buffer */ - - int vio_ScanLineWidth; /* scan line width in bytes */ - - int vio_Width; - int vio_Height; - - int gcursor_x = 0; - int gcursor_y = 0; - - int gwindow_width = 0; - int gwindow_height = 0; - - unsigned char gray_palette[5]; - - - typedef void TFunction_Print_8x8_Char( int x, - int y, - unsigned char c ); - - TFunction_Print_8x8_Char* Print_8x8_Char; - - /* font characters */ - - unsigned char font_8x8[2048] = - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E, - 0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, - 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, - 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, - 0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x92, 0x10, 0x7C, - 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C, - 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, - 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, - 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, - 0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78, - 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, - 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0, - 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0, - 0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99, - 0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00, - 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00, - 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, - 0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00, - 0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0x86, 0xFC, - 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, - 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF, - 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, - 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, - 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, - 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, - 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00, - 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, - 0x18, 0x7E, 0xC0, 0x7C, 0x06, 0xFC, 0x18, 0x00, - 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00, - 0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00, - 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00, - 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00, - 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, - 0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xC6, 0x7C, 0x00, - 0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00, - 0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00, - 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00, - 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00, - 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00, - 0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00, - 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00, - 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00, - 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, - 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, - 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00, - 0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00, - 0x7C, 0xC6, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00, - 0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00, - 0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00, - 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, - 0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00, - 0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00, - 0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3A, 0x00, - 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, - 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, - 0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00, - 0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, - 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00, - 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, - 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, - 0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0x7C, 0x0E, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00, - 0x7C, 0xC6, 0xE0, 0x78, 0x0E, 0xC6, 0x7C, 0x00, - 0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, - 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, - 0xC6, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0xC6, 0x00, - 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00, - 0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00, - 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00, - 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00, - 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, - 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00, - 0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0x38, 0x6C, 0x64, 0xF0, 0x60, 0x60, 0xF0, 0x00, - 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00, - 0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, - 0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00, - 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xD6, 0x00, - 0x00, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0, - 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E, - 0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0xF0, 0x00, - 0x00, 0x00, 0x7C, 0xC0, 0x70, 0x1C, 0xF8, 0x00, - 0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, - 0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, - 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00, - 0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00, - 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, - 0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00, - 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00, - 0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x0C, 0x06, 0x7C, - 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0x7E, 0x81, 0x3C, 0x06, 0x3E, 0x66, 0x3B, 0x00, - 0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x78, 0x0C, 0x38, - 0x7E, 0x81, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, - 0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x7C, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, - 0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0xC6, 0x10, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, - 0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00, - 0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00, - 0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00, - 0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00, - 0x78, 0x84, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x78, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00, - 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, - 0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18, - 0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00, - 0xCC, 0xCC, 0x78, 0x30, 0xFC, 0x30, 0xFC, 0x30, - 0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC3, - 0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70, - 0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xF8, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0x00, - 0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00, - 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, - 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, - 0x18, 0x00, 0x18, 0x18, 0x30, 0x66, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00, - 0xC6, 0xCC, 0xD8, 0x36, 0x6B, 0xC2, 0x84, 0x0F, - 0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6D, 0xCF, 0x03, - 0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x18, 0x00, - 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00, - 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00, - 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, - 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, - 0xDB, 0xF6, 0xDB, 0x6F, 0xDB, 0x7E, 0xD7, 0xED, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, - 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, - 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, - 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, - 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, - 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, - 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, - 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00, - 0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0, - 0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, - 0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, - 0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00, - 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00, - 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0, - 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00, - 0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC, - 0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00, - 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00, - 0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00, - 0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0, - 0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00, - 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, - 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, - 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00, - 0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00, - 0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00, - 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70, - 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, - 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C, - 0x58, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, - 0x70, 0x98, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - - void Print_8x8_Mono( int x, int y, unsigned char c ) - { - int offset, i; - unsigned char* bitm; - - if ( !Vio ) - return; - - offset = x + y * vio_ScanLineWidth * 8; - bitm = font_8x8 + (int)c * 8; - - for ( i = 0; i < 8; i++ ) - { - dosmemput( bitm, 1, (unsigned long)(Vio+offset) ); - bitm++; - offset += vio_ScanLineWidth; - } - } - - - void Print_8x8_Gray( int x, int y, unsigned char c ) - { - int offset, i, bit; - unsigned char * bitm, black = 0, white = 0xF; - - if ( !Vio ) - return; - - offset = x * 8 + y * vio_ScanLineWidth * 8; - bitm = font_8x8 + (int)c * 8; - - for ( i = 0; i < 8; i++ ) - { - bit = 0x80; - while ( bit > 0 ) - { - if ( bit & *bitm ) - dosmemput( &white, 1, (unsigned long)(Vio+offset) ); - else - dosmemput( &black, 1, (unsigned long)(Vio+offset) ); - - bit >>= 1; - offset++; - } - offset += vio_ScanLineWidth - 8; - bitm++; - } - } - - - int SetGraphScreen( int mode ) - { - gcursor_x = 0; - gcursor_y = 0; - - switch( mode ) - { - case Graphics_Mode_Mono: - if ( !Driver_Set_Graphics( mode ) ) - return FAILURE; - - gwindow_width = vio_ScanLineWidth; - gwindow_height = vio_Height / 8; - - Print_8x8_Char = Print_8x8_Mono; - break; - - case Graphics_Mode_Gray: - if ( !Driver_Set_Graphics( mode ) ) - return FAILURE; - - gwindow_width = vio_ScanLineWidth / 8; - gwindow_height = vio_Height / 8; - - Print_8x8_Char = Print_8x8_Gray; - break; - - default: - /* Invalid function call */ - return FAILURE; - } - - return SUCCESS; - } - - - /* restore previous (or text) video mode */ - - int RestoreScreen( void ) - { - gcursor_x = 0; - gcursor_y = 0; - gwindow_height = 0; - gwindow_height = 0; - - return Driver_Restore_Mode(); - } - - - void Display_Bitmap_On_Screen( char* buffer, int line, int col ) - { - Driver_Display_Bitmap( buffer, line, col ); - } - - - void Goto_XY( int x, int y ) - { - gcursor_x = x; - gcursor_y = y; - } - - - void Print_Str( char* string ) - { - if ( !string ) return; - - while ( *string ) - { - switch ( *string ) - { - case '\n': - gcursor_x = 0; - gcursor_y++; - if ( gcursor_y > gwindow_height ) gcursor_y = 0; - break; - - default: - (*Print_8x8_Char)( gcursor_x, gcursor_y, *string ); - - gcursor_x++; - - if ( gcursor_x >= gwindow_width ) - { - gcursor_x = 0; - gcursor_y++; - - if ( gcursor_y >= gwindow_height ) gcursor_y = 0; - } - } - string++; - } - } - - - void Print_XY( int x, int y, char* string ) - { - Goto_XY( x, y ); - Print_Str( string ); - } - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/msdos/makedep b/Build/source/libs/freetype/test/arch/msdos/makedep deleted file mode 100755 index cb1aabbaeb7..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/makedep +++ /dev/null @@ -1,35 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for older compilers -# on the MS-DOS platform. -# -# Copyright 1996-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. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various MS-DOS compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.dos - -(cd ../.. - gcc -MM -I../lib/arch/msdos -I../lib -I../lib/extend -I. *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.dos - -(cd ../.. - gcc -MM -I../lib/arch/msdos -I../lib -I../lib/extend -I. \ - -Dreg_ax -Dint86 arch/msdos/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\msdos\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.dos - -# eof diff --git a/Build/source/libs/freetype/test/arch/msdos/time_tc.h b/Build/source/libs/freetype/test/arch/msdos/time_tc.h deleted file mode 100644 index cef288aec2d..00000000000 --- a/Build/source/libs/freetype/test/arch/msdos/time_tc.h +++ /dev/null @@ -1,124 +0,0 @@ -/******************************************************************* - * - * time.h Replacement for buggy of old Turbo C compilers - * - * This file is a hack! It replaces when compiling with - * old versions of Borland Turbo C compilers that lack clock(), - * and provide its own version. - * - * Written by Antoine Leca - * Copyright 1999-2000 Antoine Leca, - * David Turner, Robert Wilhelm and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 !defined __TURBOC__ || !defined __MSDOS__ || __TURBOC__>0x220 -/* - * We are not running on a Borland compiler, or either on - * a recent version that does not need the hack. - * Certainly the user does not clean up the directory. - * Stop the compilation. - */ -#error Remove the file time.h in directory test - -#endif - -#ifndef _TIME_H_DEFINED -#define _TIME_H_DEFINED - -#if defined _TM_DEFINED || defined _TIME_T -#error Another version of seems to have been already included -#endif - -#ifndef __TIME_T -#define __TIME_T -typedef long time_t; -#endif - -#ifndef __CLOCK_T -#define __CLOCK_T -typedef long clock_t; -#define CLK_TCK 18.2 -#endif - -#define CLOCKS_PER_SEC CLK_TCK - -struct tm { - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - int tm_year; - int tm_wday; - int tm_yday; - int tm_isdst; -}; - - -clock_t clock (void); -double difftime(time_t time2, time_t time1); -time_t time (time_t *timer); - -char *asctime (const struct tm *tblock); -char *ctime (const time_t *time); -struct tm *gmtime (const time_t *timer); -struct tm *localtime(const time_t *timer); - - -#if __TURBOC__ <= 0x0150 - -/******************************************************************* - * - * Function : clock - * - * Description : Turbo C v.1.x lacks the clock() function that is - * needed for at least fttimer. - * So this is a replacement that does more or less - * the functionnality of clock(), using the BIOS. - * Since we do not know exactly when the process - * started (as clock() is supposed to do), we cheat - * a little here. - * - * Input : None - * - * Output : None - * - * Notes : Use two static objects. - * NEED_CLOCK_HERE is a macro that should be defined - * in only ONE module (otherwise, the linker will complain). - * - ******************************************************************/ - -extern long biostime(int cmd, long newtime); - -static long CountOfTicks; -static long DateOfReference = 0; - -clock_t clock (void) -{ - - if (DateOfReference == 0) /* this is the first call */ - { - DateOfReference = time(NULL) / 86400L; - CountOfTicks = biostime(0,0L) - CLOCKS_PER_SEC; - /* pretend we start one second ago */ - return CLOCKS_PER_SEC; /* to avoid returning 0 */ - } - - return (time(NULL) / 86400L - DateOfReference) * 0x1800B0L - + biostime(0,0L) - CountOfTicks; -} - -#endif /* Turbo C v.1.x */ - -#endif /* defined __TIME_H_DEFINED */ - - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/os2/Makefile.dm b/Build/source/libs/freetype/test/arch/os2/Makefile.dm deleted file mode 100644 index 9c5c0cce689..00000000000 --- a/Build/source/libs/freetype/test/arch/os2/Makefile.dm +++ /dev/null @@ -1,153 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc under OS/2 -# -# You will need dmake. -# -# Use this file while in the 'test' directory with the following statement: -# -# dmake -r -f arch/os2/Makefile.dm -# -# -# 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. - -ARCH = arch/os2 -FT_MAKEFILE = $(ARCH)/Makefile.dm -FT_MAKE = dmake -r - -.IMPORT: COMSPEC -SHELL := $(COMSPEC) -SHELLFLAGS := /c -GROUPSHELL := $(SHELL) -GROUPFLAGS := $(SHELLFLAGS) -GROUPSUFFIX := .cmd -SHELLMETAS := *"?<>&| - -CC = gcc - -LIBDIR = ../lib -LIBDIR_OS2 = $(subst,/,\ $(LIBDIR)) -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -# CFLAGS = -Wall -ansi -O2 -g $(INCDIRS) -CFLAGS = -ansi -Wall -O2 -s -Zcrtdll $(INCDIRS) - -# full-screen MSDOS driver -GFSDRIVER = $(ARCH)/gfs_os2.c -GPMDRIVER = $(ARCH)/gpm_os2.c -GPM_DEF = $(ARCH)/gpm_os2.def - -DISPLAY = display.c - -SRC = ftlint.c fttimer.c ftview.c ftzoom.c ftdump.c ftstring.c ftstrpnm.c \ - ftsbit.c common.c blitter.c ftmetric.c ftstrtto.c arabic.c textdisp.c - -GSRC = gmain.c display.c blitter.c -GFSSRC = $(GSRC) $(GFSDRIVER) -GPMSRC = $(GSRC) $(GPMDRIVER) - -GFSOBJ = $(GFSSRC:.c=.o) -GPMOBJ = $(GPMSRC:.c=.o) - -ALLSRC = $(SRC) $(GSRC) $(GFSDRIVER) $(GPMDRIVER) -ALLOBJ = $(ALLSRC:.c=.o) - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -%.exe: - $(CC) $(CFLAGS) -o $@ @$(mktmp $(&:t"\n")\n) - - -EXEFILES = ftview.exe ftviewfs.exe \ - ftlint.exe \ - fttimer.exe fttimefs.exe \ - ftdump.exe \ - ftstring.exe ftstrfs.exe \ - ftzoom.exe ftzoomfs.exe \ - ftstrpnm.exe \ - ftsbit.exe \ - ftmetric.exe \ - ftstrtto.exe ftstrtfs.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean do_distclean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - - -freetype: -[ - cd $(LIBDIR_OS2) - $(FT_MAKE) -f $(FT_MAKEFILE) all - cd $(MAKEDIR) -] - -freetype_debug: -[ - cd $(LIBDIR_OS2) - $(FT_MAKE) -f $(FT_MAKEFILE) debug - cd $(MAKEDIR) -] - -ftzoom.exe: $(GPMOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftzoomfs.exe: $(GFSOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GPMOBJ) ftview.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftviewfs.exe: $(GFSOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GPMOBJ) ftstring.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftstrfs.exe: $(GFSOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GPMOBJ) fttimer.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -fttimefs.exe: $(GFSOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GPMOBJ) ftstrtto.o common.o arabic.o \ - $(LIBDIR)/libttf.a $(GPM_DEF) -ftstrtfs.exe: $(GFSOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean -[ - cd $(LIBDIR_OS2) - $(FT_MAKE) -f $(FT_MAKEFILE) clean - cd $(MAKEDIR) -] - -distclean: do_clean do_distclean -[ - cd $(LIBDIR_OS2) - $(FT_MAKE) -f $(FT_MAKEFILE) distclean - cd $(MAKEDIR) -] - -do_distclean: - -+del dep.end $(EXEFILES) core - -do_clean: - -+del $(subst,/,\ $(ALLOBJ)) - -# depend: $(ALLSRC) -#[ -# cd $(LIBDIR_OS2) -# $(FT_MAKE) -f $(FT_MAKEFILE) depend -# cd $(MAKEDIR) -# $(CC) -E -M $(INCDIRS) @$(mktmp $(<:t"\n")\n) > dep.end -#] -# -# ifeq (dep.end,$(wildcard dep.end)) -# include dep.end -# endif - -# end of Makefile.dm diff --git a/Build/source/libs/freetype/test/arch/os2/Makefile.emx b/Build/source/libs/freetype/test/arch/os2/Makefile.emx deleted file mode 100644 index b7382f7d9a1..00000000000 --- a/Build/source/libs/freetype/test/arch/os2/Makefile.emx +++ /dev/null @@ -1,119 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for emx-gcc under OS/2. -# -# You will need GNU make. -# -# Use this file while in the 'test' directory with the following statements: -# -# make -f arch/os2/Makefile.emx depend -# make -f arch/os2/Makefile.emx -# -# -# Copyright 1996-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. - -ARCH = arch/os2 -FT_MAKEFILE = $(ARCH)/Makefile.emx - -CC = gcc - -LIBDIR = ../lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/extend -I$(LIBDIR)/$(ARCH) -I. - -CFLAGS = -Wall -ansi -O0 -g $(INCDIRS) -# CFLAGS = -ansi -Wall -O2 -s -Zcrtdll $(INCDIRS) - -GFSDRIVER = $(ARCH)/gfs_os2.c -GPMDRIVER = $(ARCH)/gpm_os2.c -GPM_DEF = $(ARCH)/gpm_os2.def - -SRC = fttimer.c ftview.c ftlint.c ftzoom.c ftdump.c ftstring.c ftstrpnm.c \ - ftsbit.c common.c blitter.c ftmetric.c ftstrtto.c arabic.c textdisp.o - -GSRC = gmain.c display.c blitter.c -GFSSRC = $(GSRC) $(GFSDRIVER) -GPMSRC = $(GSRC) $(GPMDRIVER) -GFSOBJ = $(GFSSRC:.c=.o) -GPMOBJ = $(GPMSRC:.c=.o) - -ALLSRC = $(SRC) $(GSRC) $(GFSDRIVER) $(GPMDRIVER) -ALLOBJ = $(ALLSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -%.exe: - $(CC) $(CFLAGS) -o $@ $^ - - -EXEFILES = ftview.exe ftviewfs.exe \ - fttimer.exe fttimefs.exe \ - ftlint.exe \ - ftstring.exe ftstrfs.exe \ - ftstrpnm.exe \ - ftzoom.exe ftzoomfs.exe \ - ftsbit.exe \ - ftdump.exe \ - ftmetric.exe \ - ftstrtto.exe ftstrtfs.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - -ftzoom.exe: $(GPMOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftzoomfs.exe: $(GFSOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GPMOBJ) ftview.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftviewfs.exe: $(GFSOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GPMOBJ) ftstring.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -ftstrfs.exe: $(GFSOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GPMOBJ) fttimer.o common.o $(LIBDIR)/libttf.a $(GPM_DEF) -fttimefs.exe: $(GFSOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GPMOBJ) ftstrtto.o common.o arabic.o \ - $(LIBDIR)/libttf.a $(GPM_DEF) -ftstrtfs.exe: $(GFSOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -del dep.end $(EXEFILES) core - -do_clean: - -del $(subst /,\,$(ALLOBJ)) - - -depend: $(ALLSRC) - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -MM $(INCDIRS) $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.emx diff --git a/Build/source/libs/freetype/test/arch/os2/Makefile.icc b/Build/source/libs/freetype/test/arch/os2/Makefile.icc deleted file mode 100644 index 8e772b475ed..00000000000 --- a/Build/source/libs/freetype/test/arch/os2/Makefile.icc +++ /dev/null @@ -1,157 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for IBM VisualAge C++ under OS/2. -# -# You will need nmake. -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake -f arch\os2\Makefile.icc -# -# -# 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. - -ARCH = arch\os2 -FT_MAKEFILE = $(ARCH)\Makefile.icc -FT_MAKE = $(MAKE) -nologo - -CC = icc - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\extend -I$(LIBDIR)\$(ARCH) -I. -CFLAGS = -O+ -Gd+ -Gn+ -Gl+ -Ti- -Tm- -Q+ -Wpro- -Wcnd- $(INCDIRS) - -# Fullscreen OS/2 driver -GFSDRIVER_SRC = $(ARCH)\gfs_os2.c -GFSDRIVER = $(ARCH)\gfs_os2.obj - -# PM OS/2 Driver -GPMDRIVER = $(ARCH)\gpm_os2.obj -GPMDRIVER_SRC = $(ARCH)\gpm_os2.c -GPM_DEF = $(ARCH)\gpm_os2.def - -SRC = gmain.c display.c common.c arabic.c textdisp.c \ - ftzoom.c ftview.c fttimer.c ftlint.c ftdump.c ftstring.c \ - ftstrpnm.c ftsbit.c ftmetric.c ftstrtto.c \ - $(GFSDRIVER_SRC) - -COMMON = common.obj -GFSOBJS = gmain.obj display.obj $(GFSDRIVER) $(COMMON) blitter.obj -GPMOBJS = gmain.obj display.obj $(GPMDRIVER) $(COMMON) blitter.obj -OBJ1 = ftzoom.obj -OBJ2 = fttimer.obj -OBJ3 = ftview.obj -OBJ4 = ftlint.obj -OBJ5 = ftdump.obj -OBJ6 = ftstring.obj -OBJ7 = ftstrpnm.obj -OBJ8 = ftsbit.obj -OBJ9 = ftmetric.obj -OBJ10 = ftstrtto.obj -OBJ11 = arabic.obj -OBJ12 = textdisp.obj - - -EXEFILES = fttimefs.exe fttimer.exe \ - ftzoom.exe ftzoomfs.exe \ - ftviewfs.exe ftview.exe \ - ftlint.exe \ - ftdump.exe \ - ftstring.exe ftstrfs.exe \ - ftstrpnm.exe \ - ftsbit.exe \ - ftmetric.exe \ - ftstrtto.exe ftstrtfs.exe - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - - -freetype: - cd $(LIBDIR) - $(FT_MAKE) -f $(FT_MAKEFILE) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) -f $(FT_MAKEFILE) debug - cd ..\test - -$(GFSDRIVER): $(GFSDRIVER_SRC) - $(CC) $(CFLAGS) /c /Fo$@ $** -I. - -$(GPMDRIVER): $(GPMDRIVER_SRC) - $(CC) $(CFLAGS) /c /Fo$@ $** -I. - -ftzoomfs.exe: $(GFSOBJS) $(OBJ1) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) /Fe$@ $** - -ftzoom.exe: $(GPMOBJS) $(OBJ1) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) $(GPM_DEF) /Fe$@ $** - -fttimefs.exe: $(GFSOBJS) $(OBJ2) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) /Fe$@ $** - -fttimer.exe: $(GPMOBJS) $(OBJ2) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) $(GPM_DEF) /Fe$@ $** - -ftviewfs.exe: $(GFSOBJS) $(OBJ3) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) /Fe$@ $** - -ftview.exe: $(GPMOBJS) $(OBJ3) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) $(GPM_DEF) /Fe$@ $** - -ftlint.exe: $(OBJ4) $(LIBDIR)\libttf.lib $(COMMON) - $(CC) $(CFLAGS) /Fe$@ $** - -ftdump.exe: $(OBJ5) $(LIBDIR)\libttf.lib $(COMMON) - $(CC) $(CFLAGS) /Fe$@ $** - -ftstrfs.exe: $(GFSOBJS) $(OBJ6) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) /Fe$@ $** - -ftstring.exe: $(GPMOBJS) $(OBJ6) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) $(GPM_DEF) /Fe$@ $** - -ftstrpnm.exe: $(OBJ7) $(LIBDIR)\libttf.lib $(COMMON) - $(CC) $(CFLAGS) /Fe$@ $** - -ftsbit.exe: $(OBJ8) $(OBJ12) $(LIBDIR)\libttf.lib $(COMMON) - $(CC) $(CFLAGS) /Fe$@ $** - -ftmetric.exe: $(OBJ9) $(OBJ12) $(LIBDIR)\libttf.lib $(COMMON) - $(CC) $(CFLAGS) /Fe$@ $** - -ftstrtfs.exe: $(GFSOBJS) $(OBJ10) $(OBJ11) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) /Fe$@ $** - -ftstrtto.exe: $(GPMOBJS) $(OBJ10) $(OBJ11) $(LIBDIR)\libttf.lib - $(CC) $(CFLAGS) $(GPM_DEF) /Fe$@ $** - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) -f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) -f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(GFSDRIVER) - -del $(GPMDRIVER) - -# end of Makefile.icc diff --git a/Build/source/libs/freetype/test/arch/os2/Makefile.wat b/Build/source/libs/freetype/test/arch/os2/Makefile.wat deleted file mode 100644 index 4b9fe07277c..00000000000 --- a/Build/source/libs/freetype/test/arch/os2/Makefile.wat +++ /dev/null @@ -1,172 +0,0 @@ -# This file is part of the FreeType project -# -# This builds the test programs with the Watcom compiler -# -# You'll need Watcom's wmake -# -# Invoke by "wmake -f arch\os2\Makefile.wat" when in the "test" directory -# -# -# 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 compiler did compile early versions of the FreeType package. -# While we tried our best to maintain the makefiles, the development team -# does not have currently access to a copy of this compiler, and we did not -# receive notices of successful builts since many years. So be prepared -# to have some problems; and if it works for you, or if you can upgrade the -# package in any way, please notify us! - -ARCH = arch\os2 -FT_MAKEFILE = $(ARCH)\Makefile.wat -FT_MAKE = wmake -h - -.EXTENSIONS: -.EXTENSIONS: .exe .obj .c .h -.obj:. -.c:. -.h:.;..\lib - -CC = wcl386 - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I$(LIBDIR)\extend -LIBFILE = $(LIBDIR)\libttf.lib - -LINK_OPTS = - -OBJ_CFLAGS = /c /otexanl+ /s /w4 /zq $(INCDIRS) - -CCFLAGS = /otexanl+ /s /w4 /zq $(INCDIRS) - -GFSDRIVER = $(ARCH)\gfs_os2.obj -GFSDRIVER_SRC = $(ARCH)\gfs_os2.c - -GPMDRIVER = $(ARCH)\gpm_os2.obj -GPMDRIVER_SRC = $(ARCH)\gpm_os2.c -GPMDRIVER_DEF = $(ARCH)\gpm_os2.def - -SRC = gmain.c display.c blitter.c textdisp.c & - fttimer.c ftview.c ftlint.c ftzoom.c ftdump.c ftstring.c & - ftstrpnm.c ftsbit.c ftmetric.c ftstrtto.c & - $(GPMDRIVER_SRC) $(GFSDRIVER_SRC) - -GFSOBJ = gmain.obj $(GFSDRIVER) blitter.obj display.obj -GPMOBJ = gmain.obj $(GPMDRIVER) blitter.obj display.obj - -PM = $(LIBFILE) $(GPMOBJ) common.obj -FS = $(LIBFILE) $(GFSOBJ) common.obj - - -# graphics utility and test driver - -EXEFILES = ftview.exe ftviewfs.exe & - fttimer.exe fttimefs.exe & - ftlint.exe & - ftdump.exe & - ftstring.exe ftstrfs.exe & - ftzoom.exe ftzoomfs.exe & - ftstrpnm.exe & - ftsbit.exe & - ftmetric.exe & - ftstrtto.exe ftstrtfs.exe - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - - -freetype: .symbolic - cd ..\lib - $(FT_MAKE) -f $(FT_MAKEFILE) all - cd ..\test - -freetype_debug: .symbolic - cd ..\lib - $(FT_MAKE) -f $(FT_MAKEFILE) debug - cd ..\test - -# implicit rules -# -.c.obj : - $(CC) $(OBJ_CFLAGS) $[* /fo=$[*.obj - - -# the full-screen graphics driver -# -$(GFSDRIVER): $(GFSDRIVER_SRC) - $(CC) $(OBJ_CFLAGS) $[*.c /fo=$[*.obj - -# the pm graphics driver -# -$(GPMDRIVER): $(GPMDRIVER_SRC) - $(CC) $(OBJ_CFLAGS) $[*.c /fo=$[*.obj - -ftzoom.exe : ftzoom.obj $(LIBFILE) $(PM) $(GPMDRIVER_DEF) - $(CC) $(CCFLAGS) -l=os2v2_pm $(PM) $[*.c /fe=$[*.exe - -ftzoomfs.exe : ftzoom.obj $(LIBFILE) $(FS) - $(CC) $(CCFLAGS) $(FS) $[@ /fe=ftzoomfs.exe - -ftview.exe : ftview.obj $(LIBFILE) $(PM) $(GPMDRIVER_DEF) - $(CC) $(CCFLAGS) -l=os2v2_pm $(PM) $[*.c /fe=$[*.exe - -ftviewfs.exe : ftview.obj $(LIBFILE) $(FS) - $(CC) $(CCFLAGS) $(FS) $[*.c /fe=ftviewfs.exe - -ftstring.exe : ftstring.obj $(LIBFILE) $(PM) $(GPMDRIVER_DEF) - $(CC) $(CCFLAGS) -l=os2v2_pm $(PM) $[*.c /fe=$[*.exe - -ftstrfs.exe : ftstring.obj $(LIBFILE) $(FS) - $(CC) $(CCFLAGS) $(FS) $[*.c /fe=ftstrfs.exe - -fttimer.exe: fttimer.obj $(LIBFILE) $(PM) $(GPMDRIVER_DEF) - $(CC) $(CCFLAGS) -l=os2v2_pm $(PM) $[*.c /fe=$[*.exe - -fttimefs.exe: fttimer.obj $(LIBFILE) $(FS) - $(CC) $(CCFLAGS) $(FS) $[*.c /fe=fttimefs.exe - -ftlint.exe: ftlint.obj $(LIBFILE) - $(CC) $(CCFLAGS) $(LIBFILE) common.obj $[*.c /fe=$[*.exe - -ftdump.exe: ftdump.obj $(LIBFILE) - $(CC) $(CCFLAGS) $(LIBFILE) common.obj $[*.c /fe=$[*.exe - -ftstrpnm.exe: ftstrpnm.obj $(LIBFILE) - $(CC) $(CCFLAGS) $(LIBFILE) common.obj $[*.c /fe=$[*.exe - -ftsbit.exe: ftsbit.obj textdisp.obj $(LIBFILE) - $(CC) $(CCFLAGS) $(LIBFILE) common.obj textdisp.obj $[*.c /fe=$[*.exe - -ftmetric.exe: ftmetric.obj textdisp.obj $(LIBFILE) - $(CC) $(CCFLAGS) $(LIBFILE) common.obj textdisp.obj $[*.c /fe=$[*.exe - -ftstrtto.exe : ftstrtto.obj arabic.obj $(LIBFILE) $(PM) $(GPMDRIVER_DEF) - $(CC) $(CCFLAGS) -l=os2v2_pm $(PM) $[*.c /fe=$[*.exe - -ftstrtfs.exe : ftstrtto.obj arabic.obj $(LIBFILE) $(FS) - $(CC) $(CCFLAGS) $(FS) $[*.c /fe=ftstrtfs.exe - - -clean: .symbolic - @-erase *.obj - @-erase $(ARCH)\*.obj - -distclean: .symbolic clean - @-erase *.exe - @-erase *.err - cd ..\lib - $(FT_MAKE) -f $(FT_MAKEFILE) distclean - cd ..\test - -new: .symbolic - @-wtouch *.c - -# end of Makefile.wat diff --git a/Build/source/libs/freetype/test/arch/os2/gfs_os2.c b/Build/source/libs/freetype/test/arch/os2/gfs_os2.c deleted file mode 100644 index 954cf1b06ae..00000000000 --- a/Build/source/libs/freetype/test/arch/os2/gfs_os2.c +++ /dev/null @@ -1,219 +0,0 @@ -/******************************************************************* - * - * gfs_os2.c graphics utility fullscreen OS/2 driver. 1.0 - * - * This is the driver for fullscreen OS/2 display, used by the - * graphics utility of the FreeType test suite. - * - * 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 -#include -#include - -#define INCL_SUB -#include - -#ifdef __EMX__ -#include -#endif - -#if defined(__EMX__)||defined(__IBMC__) -#include /* for getch */ - extern _read_kbd(); /* to avoid an ANSI warning during compilation */ -#endif - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - - static VIOMODEINFO OrgMode; - static long VioBufOfs; - - - /* BIOS video modes */ - - static VIOMODEINFO VioMode_640x480x16 = - { - sizeof ( VIOMODEINFO ), - VGMT_OTHER + VGMT_GRAPHICS, - COLORS_16, - 80, - 35, - 640, - 480 - }; - - static VIOMODEINFO VioMode_320x200x256 = - { - sizeof ( VIOMODEINFO ), - VGMT_OTHER + VGMT_GRAPHICS, - 8, - 40, - 25, - 320, - 200 - }; - - static VIOPHYSBUF VioBuf = - { - (void*)0xA0000L, - 64*1024 - }; - - - /* Restores screen to its original state */ - - int Driver_Restore_Mode() - { - VioSetMode( &OrgMode, 0 ); - return 1; - } - - - /* Sets graphics mode */ - - int Driver_Set_Graphics( int mode ) - { - int rc; - - - OrgMode.cb = sizeof ( VIOMODEINFO ); - VioGetMode( &OrgMode, 0 ); - - switch ( mode ) - { - case Graphics_Mode_Mono: - rc = VioSetMode( &VioMode_640x480x16, 0 ); - vio_ScanLineWidth = 80; - vio_Width = 640; - vio_Height = 480; - break; - - case Graphics_Mode_Gray: - rc = VioSetMode( &VioMode_320x200x256, 0 ); - vio_ScanLineWidth = 320; - vio_Width = 320; - vio_Height = 200; - - /* default gray_palette takes the gray levels of the standard VGA */ - /* 256 colors mode */ - - gray_palette[0] = 0; - gray_palette[1] = 23; - gray_palette[2] = 27; - gray_palette[3] = 29; - gray_palette[4] = 31; - break; - - default: - rc = -1; - break; - } - - if ( rc ) return 0; /* failure */ - - if ( VioGetPhysBuf( &VioBuf, 0 ) ) return 0; /* Could not access VRAM */ - - VioBufOfs = (long)MAKEP( VioBuf.asel[0], 0 ); - - memset( (void*)VioBufOfs, 0, 64 * 1024 ); - - Vio = (char*)VioBufOfs; - - return 1; /* success */ - } - - - int Driver_Display_Bitmap( char* buffer, int line, int col ) - { - int y; - char* target; - - target = Vio + ( line - 1 ) * vio_ScanLineWidth; - - for ( y = 0; y < line; y++ ) - { - memcpy( target, buffer, col ); - target -= vio_ScanLineWidth; - buffer += col; - } - - return 1; /* success */ - } - - - void Get_Event( TEvent* event ) - { - int i; - char c; - - - c = getch(); - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - event->what = trans[i].event_class; - event->info = trans[i].event_info; - return; - } - } - - /* unrecognized keystroke */ - - event->what = event_Keyboard; - event->info = (int)c; - return; - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/os2/gpm_os2.c b/Build/source/libs/freetype/test/arch/os2/gpm_os2.c deleted file mode 100644 index 22ed397363f..00000000000 --- a/Build/source/libs/freetype/test/arch/os2/gpm_os2.c +++ /dev/null @@ -1,654 +0,0 @@ -/******************************************************************* - * - * gpm_os2.c graphics OS/2 Presentation Manager Window driver. 0.2 - * - * This is the driver for windowed OS/2 display, used by the - * graphics utility of the FreeType test suite. - * - * written by Eric Olson (eolson@imag.net) - * - * Borrowing liberally from the other FreeType drivers. - * Some bitmap manipulations are derived from fastgpi.c, - * a sample program written by Donald Graft (dgraft@gate.net). - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 -#include -#include - -#define INCL_DOS -#define INCL_WIN -#define INCL_GPI -#define INCL_SUB - -#include - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - -#define VIO_WIDTH 640u /* these can be changed but VIO_WIDTH should remain */ -#define VIO_HEIGHT 360u /* for now a multiple of 32 to avoid padding issues */ -#define MAG_WIDTH VIO_WIDTH -#define MAG_HEIGHT 120u -#define MAX_MAG 16 /* should be less than Min(MAG_WIDTH, MAG_HEIGHT) */ - - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - - static HAB habt; - static HAB hab; - static HWND hwndFrame, hwndClient; - static HWND hwndTitle; - static HDC hdcMemory; - static HPS hpsMemory = (HPS) NULL; - - /* Threads and semaphores */ - TID MessageThread; - HMTX hmtxPSMemoryLock; - HEV hevKeyLock; - - /* Bitmap information */ - static PBITMAPINFO2 pbmi; - static HBITMAP hbm; - BYTE Bitmap[VIO_WIDTH * VIO_HEIGHT]; - BOOL ready = FALSE; - - /* Coordinates for the bitblt of whole graphic area */ - POINTL aptlFull[4] = {{ 0u, MAG_HEIGHT }, - { VIO_WIDTH, VIO_HEIGHT + MAG_HEIGHT }, - { 0u, 0u }, - { VIO_WIDTH, VIO_HEIGHT }}; - - /* Coordinates for the magnification bitblt */ - POINTL aptlMagd[4] = {{ 0u, 0u }, - { MAG_WIDTH, MAG_HEIGHT }, /* target */ - { 0u, 0u }, - { VIO_WIDTH, VIO_HEIGHT }}; /* source */ - - /* level of magnification and center of magnification window */ - static int magnification=1; - static POINTL view_target = {0, 0}; - static SIZEL mag_win_size; - - /* local event to pass on */ - TEvent ourevent = { event_Rotate_Glyph, 0 }; - - /* grayscale vs b/w mode */ - int Colourmode; - - /* array defined in the test programs */ - extern char Header[]; - - - void RunPMWindow( ULONG ); - MRESULT EXPENTRY Message_Process( HWND, ULONG, MPARAM, MPARAM ); - - - - /* restores screen to its original state */ - - int Driver_Restore_Mode() - { - /* PMWindow has probably already destroyed itself */ - if ( hwndFrame ) - WinDestroyWindow( hwndFrame ); - - WinReleasePS( hpsMemory ); - WinTerminate( habt ); - - return 1; - } - - - /* set graphics mode */ - - int Driver_Set_Graphics( int mode ) - { - LONG palette[5]; - int x; - POINTL coords; - SIZEL sizl = { 0, 0 }; - - PTIB thread_block; - PPIB process_block; - - /* XXX : This is a very nasty hack, it fools OS/2 and let the program */ - /* call PM functions, even though stdin/stdout/stderr are still */ - /* directed to the standard i/o streams.. */ - /* The program must be compiled with WINDOWCOMPAT */ - /* */ - /* Credits go to Michal for finding this !! */ - /* */ - DosGetInfoBlocks( &thread_block, &process_block ); - process_block->pib_ultype = 3; - - /* save mono vs grayscale status */ - Colourmode = mode; - - /* event semaphore to signal reraster event */ - DosCreateEventSem( NULL, &hevKeyLock, 0, TRUE ); - - /* mutex semaphore for access to the presentation space */ - DosCreateMutexSem( NULL, &hmtxPSMemoryLock, 0, FALSE ); - - /* Start thread with Presentation Manager window */ - DosCreateThread( &MessageThread, (PFNTHREAD)RunPMWindow, 0UL, 0UL, 32920 ); - - /* open anchor block to permit Gpi calls from this thread */ - habt = WinInitialize( 0 ); - - /* create device context and presentation space for our graphic */ - hdcMemory = DevOpenDC( hab, OD_MEMORY, (PSZ)"*", 0L, 0L, 0L ); - - DosRequestMutexSem( hmtxPSMemoryLock, SEM_INDEFINITE_WAIT ); - hpsMemory = GpiCreatePS( - habt, hdcMemory, &sizl, - PU_PELS | GPIT_MICRO | GPIA_ASSOC | GPIF_DEFAULT ); - GpiSetBackMix( hpsMemory, BM_OVERPAINT ); - - /* create bitmap for raster image of graphic */ - - /* find some memory for the bitmap header */ - DosAllocMem( (PPVOID)&pbmi, - sizeof ( BITMAPINFO2 ) + sizeof ( RGB2 ) * 256, - PAG_COMMIT | PAG_READ | PAG_WRITE); - /* 256 should really be 2 if not grayscale */ - - /* initialize the header to appropriate values */ - memset( pbmi, 0, sizeof ( BITMAPINFO2 ) + sizeof ( RGB2 ) * 256 ); - - pbmi->cbFix = sizeof ( BITMAPINFOHEADER2 ); - pbmi->cx = VIO_WIDTH; - pbmi->cy = VIO_HEIGHT; - pbmi->cPlanes = 1; - - switch ( mode ) - { - case Graphics_Mode_Mono: - pbmi->cBitCount = 1; - break; - - case Graphics_Mode_Gray: - pbmi->cBitCount = 8; - break; - } - - hbm = GpiCreateBitmap( hpsMemory, (PBITMAPINFOHEADER2)pbmi, - 0L, NULL, NULL ); - - /* associate it with the presentation space */ - GpiSetBitmap( hpsMemory, hbm ); - pbmi->cbFix = sizeof ( BITMAPINFOHEADER2 ); - GpiQueryBitmapInfoHeader( hbm, (PBITMAPINFOHEADER2) pbmi ); - - switch ( mode ) - { - case Graphics_Mode_Mono: - DosReleaseMutexSem( hmtxPSMemoryLock ); - - vio_ScanLineWidth = VIO_WIDTH / 8; - vio_Width = VIO_WIDTH; - vio_Height = VIO_HEIGHT; - - gray_palette[0] = 0; /* to avoid testing for grayscale... */ - break; - - case Graphics_Mode_Gray: - vio_ScanLineWidth = VIO_WIDTH; - vio_Width = VIO_WIDTH; - vio_Height = VIO_HEIGHT; - - /* set gray_palette by convoluted procedure */ - - /* create logical color palette */ - palette[0] = 0xffffffL; /* White */ - palette[1] = 0xbbbbbbL; - palette[2] = 0x777777L; /* Gray */ - palette[3] = 0x333333L; - palette[4] = 0L; /* Black */ - - GpiCreateLogColorTable( hpsMemory, (ULONG)LCOL_PURECOLOR, - (LONG)LCOLF_CONSECRGB, (LONG)0L, - (LONG)5L, (PLONG)palette ); - - /* plot to presentation space in all five gray shades */ - for (x = 0 ; x < 5 ; x++) - { - GpiSetColor( hpsMemory, (LONG)x ); - coords.x = x; - coords.y = 0; - GpiSetPel( hpsMemory, &coords ); - } - - /* retrieve the 5 pixels as gray_palette */ - GpiQueryBitmapInfoHeader( hbm, (PBITMAPINFOHEADER2) pbmi ); - GpiQueryBitmapBits( hpsMemory, 0L, (LONG)VIO_HEIGHT - 2, - &Bitmap[0], pbmi ); - for ( x = 0; x < 5; x++ ) - { - gray_palette[x] = Bitmap[x]; - } - - /* initialization in case we paint before Driver_Display is called */ - memset( &Bitmap[0], gray_palette[0], vio_Height * vio_ScanLineWidth ); - DosReleaseMutexSem( hmtxPSMemoryLock ); - break; - - default: - return 0; /* Unknown mode */ - } - - return 1; /* success even if windows were not setup right */ - } - - - int Driver_Display_Bitmap( char* buffer, int lines, int cols ) - { - int y, target; - - - /* copy the bitmap and blt to presentation space */ - if ( (lines == vio_Height) & (cols == vio_ScanLineWidth) ) - memcpy( &Bitmap[0], buffer, lines * cols ); - else - { - memset( &Bitmap[0], gray_palette[0], vio_Height * vio_ScanLineWidth ); - /* temporary hack to center any bitmap */ - target = ( vio_Height - lines ) / 2 * vio_ScanLineWidth + - ( vio_ScanLineWidth - cols ) / 2; - - for ( y = 0 ; y < lines ; y++ ) - { - memcpy( &Bitmap[target], buffer, cols ); - target += vio_ScanLineWidth; - buffer += cols; - } - } - - /* Get permission and write to in-memory ps */ - DosRequestMutexSem( hmtxPSMemoryLock, SEM_INDEFINITE_WAIT ); - GpiSetBitmapBits( hpsMemory, 0L, (LONG)VIO_HEIGHT - 2, &Bitmap[0], pbmi ); - DosReleaseMutexSem( hmtxPSMemoryLock ); - ready = TRUE; - - /* Invalidate and ask for redraw now */ - WinInvalidateRect( hwndClient, NULL, FALSE ); - WinUpdateWindow( hwndFrame ); - - return 1; /* success */ - } - - - void Get_Event( TEvent* event ) - { - ULONG ulRequestCount; - - - /* the Get_Event function blocks until there is an event to process */ - DosWaitEventSem( hevKeyLock, SEM_INDEFINITE_WAIT ); - DosQueryEventSem( hevKeyLock, &ulRequestCount ); - DosResetEventSem( hevKeyLock, &ulRequestCount ); - event->what = ourevent.what; - event->info = ourevent.info; - return; - } - - - void RunPMWindow( ULONG dummy ) - { - unsigned char classname[] = "DisplayClass"; - ULONG flClassFlags; - static HMQ hmq; - QMSG qmsg; - - - if ( (hab = WinInitialize( 0 )) == 0 ) - { - printf( "Error doing WinInitialize()\n" ); - return; - } - - if ( (hmq = WinCreateMsgQueue( hab, 0 )) == (HMQ)NULL ) - { - printf( "Error doing WinCreateMsgQueue()\n" ); - return; - } - - if ( !WinRegisterClass( hab, (PSZ)classname, (PFNWP)Message_Process, - CS_SIZEREDRAW, 0 ) ) - { - printf( "Error doing WinRegisterClass()\n" ); - return; - } - - flClassFlags = FCF_TITLEBAR | FCF_MINBUTTON | FCF_DLGBORDER | - FCF_TASKLIST | FCF_SYSMENU; - if ( (hwndFrame = WinCreateStdWindow( HWND_DESKTOP, - WS_VISIBLE, - &flClassFlags, - (PSZ)classname, - (PSZ)"FreeType PM Graphics", - WS_VISIBLE, - 0, 0, &hwndClient )) == 0 ) - { - printf( "Error doing WinCreateStdWindow()\n" ); - return; - } - - /* find the title window handle */ - hwndTitle = WinWindowFromID( hwndFrame, FID_TITLEBAR ); - - /* set Window size and position */ - WinSetWindowPos( - hwndFrame, 0L, - (SHORT)60, - (SHORT)WinQuerySysValue( HWND_DESKTOP, SV_CYSCREEN ) - - ( VIO_HEIGHT + MAG_HEIGHT + 100 ), - (SHORT)WinQuerySysValue( HWND_DESKTOP, SV_CYDLGFRAME ) * 2 + - VIO_WIDTH, - (SHORT)WinQuerySysValue( HWND_DESKTOP, SV_CYTITLEBAR ) + - WinQuerySysValue( HWND_DESKTOP, SV_CYDLGFRAME ) * 2 + - VIO_HEIGHT + MAG_HEIGHT, - SWP_SIZE | SWP_MOVE ) ; - - /* run the message queue till the end */ - while ( WinGetMsg( hab, &qmsg, (HWND)NULL, 0, 0 ) ) - WinDispatchMsg( hab, &qmsg ); - - /* clean-up */ - WinDestroyWindow( hwndFrame ); - hwndFrame = (HWND)NULL; - WinDestroyMsgQueue( hmq ); - WinTerminate( hab ); - - /* await death... */ - while ( 1 ) - DosSleep( 100 ); - } - - - void Adjust_Mag_Rectangle( void ) - { - SIZEL source, - target; - - - /* Step 1, find optimal source size for this mag and window size */ - source.cx = mag_win_size.cx / magnification; - if (source.cx > vio_Width) source.cx = vio_Width; - source.cy = mag_win_size.cy / magnification; - if (source.cy > vio_Height) source.cy = vio_Height; - - target.cx = source.cx * magnification; - target.cy = source.cy * magnification; - - aptlMagd[0].x = (mag_win_size.cx - target.cx) / 2; - aptlMagd[0].y = (mag_win_size.cy - target.cy) / 2; - aptlMagd[1].x = aptlMagd[0].x + target.cx - 1; - aptlMagd[1].y = aptlMagd[0].x + target.cy - 1; - - /* Step 2, try crosshairs point dependent coordinates */ - aptlMagd[2].x = view_target.x - source.cx / 2; - aptlMagd[2].y = view_target.y - source.cy / 2; - if (aptlMagd[2].x < 0 ) aptlMagd[2].x = 0; - if (aptlMagd[2].y < 0 ) aptlMagd[2].y = 0; - if (aptlMagd[2].x > vio_Width - source.cx) - aptlMagd[2].x = vio_Width - source.cx; - if (aptlMagd[2].y > vio_Height - source.cy) - aptlMagd[2].y = vio_Height - source.cy; - - aptlMagd[3].x = aptlMagd[2].x + source.cx - 1; - aptlMagd[3].y = aptlMagd[2].y + source.cy - 1; - - } /* End of Adjust_Mag_Rectangle; */ - - - /* Message processing for our PM Window class */ - MRESULT EXPENTRY Message_Process( HWND handle, ULONG mess, - MPARAM parm1, MPARAM parm2 ) - { - static HDC hdc; - static HPS hps; - static BOOL minimized; - - POINTL top_corner, bottom_corner; - SWP swp; - int i; - - - switch( mess ) - { - case WM_DESTROY: - /* warn the main thread to quit if it didn't know */ - ourevent.what = event_Quit; - ourevent.info = 0; - DosPostEventSem( hevKeyLock ); - break; - - case WM_CREATE: - /* set original magnification */ - magnification = 4; - minimized = FALSE; - - /* create Device Context and Presentation Space for screen. */ - /* could we use a cached one ? */ - hdc = WinOpenWindowDC( handle ); - mag_win_size.cx = 0; - mag_win_size.cy = 0; - hps = GpiCreatePS( hab, hdc, &mag_win_size, - PU_PELS | GPIT_MICRO | GPIA_ASSOC | GPIF_DEFAULT ); - - /* Set to size of magnifier window */ - mag_win_size.cx = MAG_WIDTH; - mag_win_size.cy = MAG_HEIGHT; - Adjust_Mag_Rectangle(); - - /* take the input focus */ - WinFocusChange( HWND_DESKTOP, handle, 0L ); - break; - - case WM_BUTTON1DOWN: - if ( MOUSEMSG( &mess )->y >= MAG_HEIGHT ) - { - view_target.x = MOUSEMSG( &mess )->x; - view_target.y = MOUSEMSG( &mess )->y - MAG_HEIGHT; - Adjust_Mag_Rectangle(); - WinInvalidateRect( hwndClient, NULL, FALSE ); - } - - return WinDefWindowProc( handle, mess, parm1, parm2 ); - break; - - case WM_MINMAXFRAME: - /* to update minimized if changed */ - swp = *((PSWP) parm1); - if ( swp.fl & SWP_MINIMIZE ) - minimized = TRUE; - if ( swp.fl & SWP_RESTORE ) - minimized = FALSE; - return WinDefWindowProc( handle, mess, parm1, parm2 ); - break; - - case WM_ERASEBACKGROUND: - case WM_PAINT: - /* reset the window title only if not minimized */ - if ( !minimized ) - WinSetWindowText( hwndTitle, Header ); - - /* copy the memory image of the screen out to the real screen */ - DosRequestMutexSem( hmtxPSMemoryLock, SEM_INDEFINITE_WAIT ); - WinBeginPaint( handle, hps, NULL ); - - /* main image and magnified picture */ - GpiBitBlt( hps, hpsMemory, 4L, aptlFull, ROP_SRCCOPY, BBO_AND ); - GpiBitBlt( hps, hpsMemory, 4L, aptlMagd, ROP_SRCCOPY, BBO_AND ); - - /* double-dash the magnifing bounding box. Paint the mag liner? */ - if ( magnification != 1 ) - { - GpiSetLineType( hps, LINETYPE_LONGDASH ); - - bottom_corner.x = aptlMagd[2].x - 1; - bottom_corner.y = aptlMagd[2].y + MAG_HEIGHT - 1; - top_corner.x = aptlMagd[3].x ; - top_corner.y = aptlMagd[3].y + MAG_HEIGHT; - - GpiMove( hps, &bottom_corner ); - GpiBox( hps, DRO_OUTLINE, &top_corner, 0L, 0L ); - -#if 0 - GpiSetClipRegion(); - GpiErase(); -#endif - } - - WinEndPaint( hps ); - DosReleaseMutexSem( hmtxPSMemoryLock ); - break; - - case WM_CHAR: - if ( CHARMSG( &mess )->fs & KC_KEYUP ) - break; - - switch ( CHARMSG( &mess )->vkey ) - { - case VK_ESC: - ourevent.what = event_Quit; - ourevent.info = 0; - DosPostEventSem( hevKeyLock ); - break; - - case VK_PAGEDOWN: - if ( magnification < MAX_MAG ) - { - magnification += 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_PAGEUP: - if ( magnification > 1 ) - { - magnification -= 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_LEFT: - if ( view_target.x > 0 ) - { - view_target.x -= 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_RIGHT: - if ( view_target.x < VIO_WIDTH - 1 ) - { - view_target.x += 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_DOWN: - if ( view_target.y > 0 ) - { - view_target.y -= 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_UP: - if ( view_target.y < VIO_HEIGHT - 1 ) - { - view_target.y += 1; - Adjust_Mag_Rectangle(); - WinInvalidateRect( handle, NULL, FALSE ); - } - break; - - case VK_F1: /* bring up help and about dialog window */ - break; - } - - if ( CHARMSG( &mess )->fs & KC_CHAR ) - { - char c = (CHAR)CHARMSG( &mess )->chr ; - - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - ourevent.what = trans[i].event_class; - ourevent.info = trans[i].event_info; - DosPostEventSem( hevKeyLock ); - return (MRESULT)TRUE; - } - } - - /* unrecognized keystroke */ - ourevent.what = event_Keyboard; - ourevent.info = (int)c; - DosPostEventSem( hevKeyLock ); - } - break; - - default: - return WinDefWindowProc( handle, mess, parm1, parm2 ); - } - - return (MRESULT) FALSE; - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/os2/gpm_os2.def b/Build/source/libs/freetype/test/arch/os2/gpm_os2.def deleted file mode 100644 index 4a77c632c03..00000000000 --- a/Build/source/libs/freetype/test/arch/os2/gpm_os2.def +++ /dev/null @@ -1,5 +0,0 @@ -NAME WINDOWCOMPAT - -DESCRIPTION 'FreeType Graphics' -HEAPSIZE 8192 -STACKSIZE 40888 diff --git a/Build/source/libs/freetype/test/arch/unix/.cvsignore b/Build/source/libs/freetype/test/arch/unix/.cvsignore deleted file mode 100644 index f3c7a7c5da6..00000000000 --- a/Build/source/libs/freetype/test/arch/unix/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/Build/source/libs/freetype/test/arch/unix/.cvsignore.delete b/Build/source/libs/freetype/test/arch/unix/.cvsignore.delete deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Build/source/libs/freetype/test/arch/unix/Makefile.in b/Build/source/libs/freetype/test/arch/unix/Makefile.in deleted file mode 100644 index 887ee57f2e8..00000000000 --- a/Build/source/libs/freetype/test/arch/unix/Makefile.in +++ /dev/null @@ -1,184 +0,0 @@ -# This file is part of the FreeType project. -# -# test/arch/unix/Makefile.in -# -# -# 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. - -ARCH = arch/unix - -top_builddir=.. - -VPATH = @srcdir@/../.. -srcdir = @srcdir@/../.. - -RM = @RM@ -RMF = @RM@ -f -RMDIR = @RMDIR@ - -INSTALL = @INSTALL@ -INSTALL_PROGRAM = @INSTALL_PROGRAM@ - -CC = @CC@ -CPP = @CPP@ - -LIBTOOL = $(top_builddir)/libtool -MKINSTALLDIRS = $(srcdir)/../mkinstalldirs - -include $(top_builddir)/MakeSub - -FT_LIBDIR = $(srcdir)/../lib -INCDIRS = -I. -I$(srcdir) -I$(top_builddir) \ - -I$(FT_LIBDIR) -I$(FT_LIBDIR)/extend - -CFLAGS = @CFLAGS@ @X_CFLAGS@ @XX_CFLAGS@ -CPPFLAGS = @CPPFLAGS@ -FT_CFLAGS = $(INCDIRS) $(CFLAGS) $(CPPFLAGS) -DX11 -DLOCALEDIR='"@LOCALEDIR@"' - -FT_LIBS = @X_LIBS@ @X_PRE_LIBS@ @X_EXTRA_LIBS@ @LIBS@ - -SRC = $(srcdir)/arabic.c \ - $(srcdir)/common.c \ - $(srcdir)/textdisp.c \ - $(srcdir)/ftdump.c \ - $(srcdir)/fterror.c \ - $(srcdir)/ftlint.c \ - $(srcdir)/ftmetric.c \ - $(srcdir)/ftsbit.c \ - $(srcdir)/ftstring.c \ - $(srcdir)/ftstrpnm.c \ - $(srcdir)/fttimer.c \ - $(srcdir)/ftview.c \ - $(srcdir)/ftzoom.c \ - $(srcdir)/ftstrtto.c \ - $(srcdir)/gmain.c \ - $(srcdir)/$(ARCH)/gwin_x11.c - -DISPOBJS = common.o gmain.o display.o gwin_x11.o blitter.o - -PROGRAMS = ftdump fterror ftlint ftmetric ftsbit ftstrpnm -X_PROGRAMS = ftstring ftstrtto fttimer ftview ftzoom - -ALL_PROGRAMS = $(PROGRAMS) @X_PROGRAMS@ - -# set this variable to nil if you don't need to use Electric-Fence -EFENCE = -#EFENCE = -lefence - - -# variables used to compile either with libtool or not -# -PROCESS = $(LIBTOOL) --mode=link $(CC) $(FT_CFLAGS) -#PROCESS = $(CC) $(FT_CFLAGS) - -LIBTTF = $(top_builddir)/lib/libttf.la -#LIBTTF =$(top_builddir)/lib/libttf.a - -.c.o: - $(CC) -c $(FT_CFLAGS) $< - - -all: $(ALL_PROGRAMS) - - -gwin_x11.o: $(srcdir)/$(ARCH)/gwin_x11.c - $(CC) -c $(FT_CFLAGS) $(srcdir)/$(ARCH)/gwin_x11.c - -ftzoom: ftzoom.o $(DISPOBJS) $(LIBTTF) - $(PROCESS) -o ftzoom ftzoom.o $(DISPOBJS) \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) -lX11 - -fttimer: fttimer.o $(DISPOBJS) $(LIBTTF) - $(PROCESS) -o fttimer fttimer.o $(DISPOBJS) \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) -lX11 - -ftview: ftview.o $(DISPOBJS) $(LIBTTF) - $(PROCESS) -o ftview ftview.o $(DISPOBJS) \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) -lX11 - -ftlint: ftlint.o common.o $(LIBTTF) - $(PROCESS) -o ftlint ftlint.o common.o \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) - -ftdump: ftdump.o common.o $(LIBTTF) - $(PROCESS) -o ftdump ftdump.o common.o \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) - -ftmetric: ftmetric.o common.o textdisp.o $(LIBTTF) - $(PROCESS) -o ftmetric ftmetric.o common.o textdisp.o \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) - -ftsbit: ftsbit.o common.o textdisp.o $(LIBTTF) - $(PROCESS) -o ftsbit ftsbit.o common.o textdisp.o \ - $(EFENCE) $(LIBTTF) - -ftstring: ftstring.o $(DISPOBJS) $(LIBTTF) - $(PROCESS) -o ftstring ftstring.o $(DISPOBJS) \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) -lX11 - -ftstrpnm: ftstrpnm.o common.o $(LIBTTF) - $(PROCESS) -o ftstrpnm ftstrpnm.o common.o \ - $(EFENCE) $(LIBTTF) - -fterror: fterror.o common.o $(LIBTTF) - $(PROCESS) -o fterror fterror.o common.o \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) - -ftstrtto: ftstrtto.o $(DISPOBJS) arabic.o $(LIBTTF) - $(PROCESS) -o ftstrtto ftstrtto.o $(DISPOBJS) arabic.o \ - $(EFENCE) $(LIBTTF) $(FT_LIBS) -lX11 - - -install: $(ALL_PROGRAMS) - $(MKINSTALLDIRS) $(bindir) - for P in $(ALL_PROGRAMS) ; do \ - $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$P $(bindir)/$$P ; \ - done - -uninstall: - -for P in $(ALL_PROGRAMS) ; do \ - $(LIBTOOL) --mode=uninstall $(RM) $(bindir)/$$P ; \ - done - -clean: do_clean - -distclean: do_clean - -$(RMF) $(ALL_PROGRAMS) - -$(RMF) *~ *.orig core *.core - -$(RMF) config.cache config.log config.status - -$(RMF) $(ARCH)/Makefile - -$(RMF) .libs/* - -$(RMDIR) .libs - -do_clean: - -$(RMF) *.o - -depend: - (echo '/^#.* PUT NO STUFF BELOW/,$$d' ; echo w ; echo q) | \ - ed - $(ARCH)/Makefile - echo '# Dependencies generated by make depend: PUT NO STUFF BELOW' \ - >> $(ARCH)/Makefile - for file in $(SRC) ; do \ - $(CPP) $(CPPFLAGS) $(INCDIRS) $$file | \ - sed -n -e 's|^# [1-9][0-9]* "\([^/].*\.h\)".*|\1|p' \ - -e 's|^# [1-9][0-9]* "\($(srcdir)/.*\.h\)".*|\1|p' | \ - sed -e 's|/\./|.|g' -e "s/^/`basename $$file .c`.o: /" ; \ - done | \ - sort -u | \ - awk '{ if (LINE == 1) \ - { line = last = $$1 } \ - else if ($$1 != last) \ - { print line ; line = last = $$1 } \ - line = line " " $$2 } \ - END { print line }' >> $(ARCH)/Makefile - -.PHONY: all install uninstall clean distclean do_clean depend - -# Dependencies generated by make depend: PUT NO STUFF BELOW diff --git a/Build/source/libs/freetype/test/arch/unix/gwin_x11.c b/Build/source/libs/freetype/test/arch/unix/gwin_x11.c deleted file mode 100644 index 965c1f60784..00000000000 --- a/Build/source/libs/freetype/test/arch/unix/gwin_x11.c +++ /dev/null @@ -1,451 +0,0 @@ -/******************************************************************* - * - * gwin_x11.c graphics utility X-Window driver. 1.0 - * - * This is the driver for windowed display under X11, used by the - * graphics utility of the FreeType test suite. - * - * 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 -#include -#include -#include -#include -#include - -#include "common.h" /* for Panic() */ -#include "freetype.h" - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - - /* Translator added to ease changes to control keys */ - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - /* End of translators addition. See Get_Event() below */ - - extern char Header[]; /* defined in the test programs */ - - static Window win; - static GC gcblack; - static XColor color[5]; - - Display* display; - static char* displayname = ""; - - static XImage* image; - - static Visual* visual; - static Colormap colormap; - static int depth; - static Bool gray; - - static Cursor idle; - static Cursor busy; - - static int win_origin_x, win_origin_y, - win_width, win_height; - static int image_width, image_height; - - long vioBufOfs; - - - - /* restore acreen to its original state */ - - int Driver_Restore_Mode( void ) - { - XUnmapWindow( display, win ); - XCloseDisplay( display ); - - return 1; /* success */ - } - - - /* set graphics mode */ - - void x11init( void ) - { - int screen_num, i; - XTextProperty xtp; - XSizeHints xsh; - XSetWindowAttributes xswa; - -#if 1 - unsigned short colors[5] = { 0, 16, 32, 48, 63 }; /* gamma = 1.0 */ -#else - unsigned short colors[5] = { 0, 34, 46, 55, 63 }; /* gamma = 2.2 */ -#endif - - - XrmInitialize(); - - if( !( display = XOpenDisplay( displayname ) ) ) - Panic( "ERROR: cannot open display\n" ); - - screen_num = DefaultScreen ( display ); - colormap = DefaultColormap( display, screen_num ); - depth = DefaultDepth ( display, screen_num ); - visual = DefaultVisual ( display, screen_num ); - - idle = XCreateFontCursor( display, XC_left_ptr ); - busy = XCreateFontCursor( display, XC_watch ); - - if ( gray ) - { - int count; - XPixmapFormatValues* formats; - - - formats = XListPixmapFormats( display, &count ); - vio_ScanLineWidth = 0; - - while ( count > 0 ) - { - --count; - if ( formats[count].depth == depth ) - { - int bits; - - bits = win_width * formats[count].bits_per_pixel; - if ( bits % formats[count].scanline_pad ) - { - bits -= bits % formats[count].scanline_pad; - bits += formats[count].scanline_pad; - } - - vio_ScanLineWidth = bits / 8; - break; - } - } - if ( !vio_ScanLineWidth ) - Panic( "ERROR: the display doesn't offer a suitable pixmap format\n" ); - - XFree( formats ); - } - - Vio = (char*)malloc( win_height * vio_ScanLineWidth ); - - if ( !Vio ) - Panic( "ERROR: cannot malloc display memory\n" ); - - xswa.border_pixel = BlackPixel( display, screen_num ); - xswa.background_pixel = WhitePixel( display, screen_num ); - xswa.cursor = busy; - - xswa.event_mask = KeyPressMask | ExposureMask; - - win = XCreateWindow( display, - RootWindow( display, screen_num ), - win_origin_x, - win_origin_y, - win_width, - win_height, - 10, - depth, - InputOutput, - visual, - CWBackPixel | CWBorderPixel | CWEventMask | CWCursor, - &xswa ); - - XMapWindow( display, win ); - - gcblack = XCreateGC( display, RootWindow( display, screen_num ), - 0L, NULL ); - XSetForeground( display, gcblack, BlackPixel( display, screen_num ) ); - XSetBackground( display, gcblack, WhitePixel( display, screen_num ) ); - - /* allocate colors */ - - if ( gray ) - for ( i = 0; i < 5; i++ ) - { - gray_palette[i] = i; - - color[i].red = - color[i].green = - color[i].blue = 65535 - ( colors[i] * 65535 ) / 63; - - if ( !XAllocColor( display, colormap, &color[i] ) ) - Panic( "ERROR: cannot allocate Color\n" ); - } - - image = XCreateImage( display, - visual, - gray ? depth : 1, - gray ? ZPixmap : XYBitmap, - 0, - (char*)Vio, - win_width, - win_height, - 8, - 0 ); - if ( !image ) - Panic( "ERROR: cannot create image\n" ); - - if ( !gray ) - { - image->byte_order = MSBFirst; - image->bitmap_bit_order = MSBFirst; - } - - /* make window manager happy :-) */ - xtp.value = (unsigned char*)"FreeType"; - xtp.encoding = 31; - xtp.format = 8; - xtp.nitems = strlen( (char*)xtp.value ); - - xsh.x = win_origin_x; - xsh.y = win_origin_y; - - xsh.width = win_width; - xsh.height = win_height; - xsh.flags = (PPosition | PSize); - xsh.flags = 0; - - XSetWMProperties( display, win, &xtp, &xtp, NULL, 0, &xsh, NULL, NULL ); - } - - - int Driver_Set_Graphics( int mode ) - { - if ( mode == Graphics_Mode_Gray ) - { - gray = 1; - vio_ScanLineWidth = 320; - - win_origin_x = 0; - win_origin_y = 0; - win_width = 320; - win_height = 200; - } - else if ( mode == Graphics_Mode_Mono ) - { - gray = 0; - vio_ScanLineWidth = 80; - - win_origin_x = 0; - win_origin_y = 0; - win_width = 640; - win_height = 450; - } - else - Panic( "ERROR: mode %d not supported\n", mode ); - - vio_Width = win_width; - vio_Height = win_height; - - x11init(); - - return 1; /* success */ - } - - - void Put_Image( int x, int y, int w, int h ) - { - XPutImage( display, win, gcblack, image, x, y, x, y, w, h ); - } - - - int Driver_Display_Bitmap( char* buffer, int line, int col ) - { - int z, y, used_col; - char* target; - - - XClearWindow( display, win ); - - /* this displays the Header string in the window title */ - XStoreName( display, win, Header ); - - if ( line > win_height ) - line = win_height; - - if ( !gray ) - { - if ( col > vio_ScanLineWidth ) - used_col = vio_ScanLineWidth; - else - used_col = col; - - target = Vio + ( line - 1 ) * vio_ScanLineWidth; - - for ( y = 0; y < line; y++ ) - { - memcpy( (char*)target, buffer, used_col ); - target -= vio_ScanLineWidth; - buffer += col; - } - - Put_Image( 0, 0, used_col * 8, line ); - image_width = used_col * 8; - image_height = line; - } - else - { - if ( col > win_width ) - used_col = win_width; - else - used_col = col; - - for ( y = line - 1; y >= 0; y-- ) - { - char* bufp; - - - bufp = buffer; - - for ( z = 0; z < used_col; z++ ) - { - int c; - - - c = *bufp++; - - if ( c < 0 || c >= 5 ) /* security check */ - { - /* Message( "weird grayshade: %d\n", c ); */ - c = 0; - } - XPutPixel( image, z, y, color[c].pixel ); - } - - buffer += col; - } - - Put_Image( 0, 0, used_col, line ); - image_width = used_col; - image_height = line; - } - - return 1; - } - - - /* This function maps X keystrokes into GEvents. Note that */ - /* currently only keystrokes events exit this function. */ - - void Get_Event( TEvent* event ) - { - static char key_buffer[10]; - static int key_cursor = 0; - static int key_number = 0; - static XEvent x_event; - KeySym key; - - int i, bool_exit; - char c; - - XComposeStatus compose; - - - bool_exit = key_cursor < key_number; - - XDefineCursor( display, win, idle ); - - while ( !bool_exit ) - { - XNextEvent( display, &x_event ); - - switch ( x_event.type ) - { - case KeyPress: - key_number = XLookupString( &x_event.xkey, - key_buffer, - sizeof ( key_buffer ), - &key, - &compose ); - key_cursor = 0; - - if ( key_number > 0 ) - bool_exit = 1; - break; - - case MappingNotify: - XRefreshKeyboardMapping( &x_event.xmapping ); - break; - - case Expose: -#if 0 - Put_Image( x_event.xexpose.x, - x_event.xexpose.y, - x_event.xexpose.width, - x_event.xexpose.height ); -#else - /* we always redraw the whole image */ - Put_Image( 0, 0, image_width, image_height ); -#endif - break; - - /* You should add more cases to handle mouse events, etc. */ - } - } - - XDefineCursor( display, win, busy ); - XFlush ( display ); - - c = key_buffer[key_cursor++]; - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - event->what = trans[i].event_class; - event->info = trans[i].event_info; - return; - } - } - - event->what = event_Keyboard; - event->info = (int)c; - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/win16/Makefile.BC b/Build/source/libs/freetype/test/arch/win16/Makefile.BC deleted file mode 100644 index 7eaf19811b6..00000000000 --- a/Build/source/libs/freetype/test/arch/win16/Makefile.BC +++ /dev/null @@ -1,222 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for BC++ for 16-bit Windows, -# using large model, and using Easy-Win to display console outputs. -# -# Tested with Borland C++ v.4.02, 5.0 -# You will need Borland MAKE (v.3.6 and above should be OK, for oldest -# versions refer to the instructions below). -# -# -# Use this file while in the 'test' directory with the following statement: -# -# make -farch\win16\Makefile.BC -# -# -# A DLL version of the library can be built and then used with -# -# make -DDLL -farch/win16/Makefile.BC dll -# -# (do not forget to define DLL, otherwise the link phase will fail). -# -# -# Debug versions can be obtained with -# -# make -DDEBUG -farch\win16\Makefile.BC -# -# Special versions enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# make -DBIGFONTS -farch\msdos\Makefile.BC -# -# -# 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. - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.BC -FT_DLL = ft15_16.dll - -CC = bcc - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR);$(LIBDIR)\$(ARCH);.;$(LIBDIR)\extend -SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -w-pia - -# Credits go to Dave Hoo for pointing out that modern -# Borland compilers (from BC++ 3.1 on) can increase the limit of -# the length of identifiers. -CFLAGS = -WSE -ml -A -i40 $(INCDIRS) $(SPURIOUS_WARNINGS) - -!if ! $d(DEBUG) -CFLAGS = $(CFLAGS) -O2 -3 -LDFLAGS = -ml -W -lC -!else -CFLAGS = $(CFLAGS) -v -N -LDFLAGS = -v -ml -W -lC -!endif - -!if $d(DLL) -CFLAGS = $(CFLAGS) -DFREETYPE_DLL -!endif - - -# Windows graphic driver -GDRIVER = $(ARCH)\gw_win16.c - -DISPLAY = display.c - -G1SRC = gmain.c blitter.c $(GDRIVER) -GSRC = $(DISPLAY) $(G1SRC) - -GOBJ = $(GSRC:.c=.obj) -G1OBJ = $(G1SRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - $(CC) -c -o$* @&&| - $(CFLAGS) $< -| - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!if !$d(DEBUG) -# Skipped if DEBUG build -all: freetype $(EXEFILES) - -dll: the_dll $(EXEFILES) - -!else -# Skipped if non-DEBUG build -default_target: debug -dll: the_debug_dll $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - - -!if $d(BIGFONTS) -MAKEBIG = -DBIGFONTS -!endif - -freetype: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) $(MAKEBIG) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG $(MAKEBIG) debug - cd ..\test - -the_dll: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDLL $(MAKEBIG) dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - -the_debug_dll: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG -DDLL $(MAKEBIG) dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - - -# C compilers are unable to include 16-bit in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| - - -# Borland versions of make are unable to use the $** variable inside -# implicit rules (like .obj.exe:). The job have to be done by hand. :-( -ftzoom.exe: $(G1OBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftzoom.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftview.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstring.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrtto.obj $(GOBJ) common.obj arabic.obj \ - $(LIBDIR)\libttf.lib - -fttimer.exe: $(G1OBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftlint.obj common.obj $(LIBDIR)\libttf.lib - -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftdump.obj common.obj $(LIBDIR)\libttf.lib - -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - -ftsbit.exe: $(TDOBJ) ftsbit.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftsbit.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -ftmetric.exe: $(TDOBJ) ftmetric.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftmetric.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -del *.dll - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - -!include "$(ARCH)\depend.win" - -# end of Makefile diff --git a/Build/source/libs/freetype/test/arch/win16/Makefile.MS b/Build/source/libs/freetype/test/arch/win16/Makefile.MS deleted file mode 100644 index d9dd2d107a4..00000000000 --- a/Build/source/libs/freetype/test/arch/win16/Makefile.MS +++ /dev/null @@ -1,155 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Microsoft C compilers -# for 16-bit Windows, large model, using QuickWin to display console -# outputs. It also works for Visual C++ 1.x 16-bits compiler, but -# you should instead use the Makefile customized for it, Makefile.VC. -# -# You will need NMAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake /f arch\win16\Makefile.MS -# -# -# A debug version can be obtained with -# -# nmake DEBUG=1 /f arch\win16\Makefile.MS -# -# -# 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. - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.MS -FT_MAKE = $(MAKE) /nologo - -CC = cl /nologo - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I. -I$(LIBDIR)\extend - -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G2 $(INCDIRS) -LDFLAGS = /AL -!else -CFLAGS = /Zi /AL /Za /W2 /G2 $(INCDIRS) -LDFLAGS = /Zi /AL -!endif - -CFLAGS = $(CFLAGS) /GA /Mq -LDFLAGS = $(LDFLAGS) /GA /Mq - - -# Windows graphic driver -GDRIVER = $(ARCH)\gw_win16.c - -GSRC = display.c gmain.c blitter.c $(GDRIVER) - -GOBJ = $(GSRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - @$(CC) /c /Fo$* @<< - $(CFLAGS) $< -<< - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skiped if DEBUG build -all: freetype $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -freetype: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 debug - cd ..\test - - -# C compilers are unable to include 16-bit in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - @$(CC) /c /Fo$* @<< - $(CFLAGS) /Ze $(GDRIVER) -<< - -.obj.exe: - $(CC) /Fe$* @<< - $(LDFLAGS) $** -<< - -ftzoom.exe: $(GOBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib -fttimer.exe: $(GOBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib -ftsbit.exe: ftsbit.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -ftmetric.exe: ftmetric.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - - -!include "$(ARCH)\depend.win" - -# end of Makefile.MS diff --git a/Build/source/libs/freetype/test/arch/win16/Makefile.VC b/Build/source/libs/freetype/test/arch/win16/Makefile.VC deleted file mode 100644 index 078c2ea3d8a..00000000000 --- a/Build/source/libs/freetype/test/arch/win16/Makefile.VC +++ /dev/null @@ -1,197 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Microsoft Visual C++ 1.x -# and Microsoft C/C++ v.7.0 compilers for 16-bit Windows, large model, -# using QuickWin to display console outputs. -# -# You will need NMAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake /f arch\win16\Makefile.VC -# -# A DLL version of the library can be built and then used with -# -# nmake DLL=1 /f arch\win16\Makefile.VC dll -# -# (do not forget to define DLL, otherwise the link phase will fail). -# -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\win16\Makefile.VC -# -# Special versions enabled to handle big fonts (with more than 16,384 -# glyphs) can be obtained with -# -# nmake BIGFONTS=1 /f arch\win16\Makefile.VC -# -# -# 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. - -ARCH = arch\win16 -FT_MAKEFILE = $(ARCH)\Makefile.VC -FT_MAKE = $(MAKE) /nologo -FT_DLL = ft15_16.dll - -CC = cl /nologo - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I. -I$(LIBDIR)\extend - -# One can also consider using "set MSC_CMD_FLAGS=/Gr /Op- /Gy /YX". -# With Microsoft C/C++ 7.0, use /G2 instead of /G3. -!ifndef DEBUG -CFLAGS = /Ox /AL /Za /W2 /G3 $(INCDIRS) -LDFLAGS = /AL -!else -CFLAGS = /Zi /Ge /AL /Za /W2 /G3 $(INCDIRS) -LDFLAGS = /Zi /AL -!endif - -CFLAGS = $(CFLAGS) /Mq -LDFLAGS = $(LDFLAGS) /Mq - -!ifdef DLL -CFLAGS = $(CFLAGS) /DFREETYPE_DLL -!endif - - -# Windows graphic driver -GDRIVER = $(ARCH)\gw_win16.c - -GSRC = display.c gmain.c blitter.c $(GDRIVER) - -GOBJ = $(GSRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - @$(CC) /c /Fo$* @<< - $(CFLAGS) $< -<< - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skiped if DEBUG build -all: freetype $(EXEFILES) - -dll: the_dll $(EXEFILES) - -!else -# Skipped if non-DEBUG build -default_target: debug -dll: the_debug_dll $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -!ifdef BIGFONTS -MAKEBIG = BIGFONTS=1 -!endif - -freetype: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) $(MAKEBIG) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 $(MAKEBIG) debug - cd ..\test - -the_dll: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DLL=1 $(MAKEBIG) dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - -the_debug_dll: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 DLL=1 $(MAKEBIG) dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - - -# C compilers are unable to include 16-bit in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - @$(CC) /c /Fo$* @<< - $(CFLAGS) /Ze $(GDRIVER) -<< - -.obj.exe: - $(CC) /Fe$* @<< - $(LDFLAGS) $** -<< - -ftzoom.exe: $(GOBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib -fttimer.exe: $(GOBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib -ftsbit.exe: ftsbit.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -ftmetric.exe: ftmetric.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -del *.dll - -del *.pdb - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - - -!include "$(ARCH)\depend.win" - -# end of Makefile.VC diff --git a/Build/source/libs/freetype/test/arch/win16/depend.win b/Build/source/libs/freetype/test/arch/win16/depend.win deleted file mode 100644 index facb75c19b5..00000000000 --- a/Build/source/libs/freetype/test/arch/win16/depend.win +++ /dev/null @@ -1,78 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script `makedep' on -# 2002-02-19. - -arabic.obj: arabic.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h -blitter.obj: blitter.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -common.obj: common.c common.h -display.obj: display.c display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gmain.h -fdebug.obj: fdebug.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\tttypes.h ..\lib\ttconfig.h \ - ..\lib\arch\win16\ft_conf.h ..\lib\ttdebug.h \ - ..\lib\ttobjs.h ..\lib\ttengine.h \ - ..\lib\ttmutex.h ..\lib\ttcache.h \ - ..\lib\tttables.h ..\lib\ttcmap.h -ftdump.obj: ftdump.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxcmap.h ..\lib\extend\ftxopen.h \ - ..\lib\extend\ftxgdef.h ..\lib\extend\ftxgsub.h \ - ..\lib\extend\ftxgpos.h ..\lib\extend\ftxsbit.h \ - ..\lib\ttobjs.h ..\lib\ttconfig.h \ - ..\lib\arch\win16\ft_conf.h ..\lib\ttengine.h \ - ..\lib\tttypes.h ..\lib\ttmutex.h \ - ..\lib\ttcache.h ..\lib\tttables.h \ - ..\lib\ttcmap.h ..\lib\ttmemory.h -fterror.obj: fterror.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxerr18.h \ - ..\lib\arch\win16\ft_conf.h -ftlint.obj: ftlint.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\arch\win16\ft_conf.h -ftmetric.obj: ftmetric.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\win16\ft_conf.h -ftsbit.obj: ftsbit.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\win16\ft_conf.h -ftstring.obj: ftstring.c common.h display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gevents.h \ - gdriver.h gmain.h -ftstrpnm.obj: ftstrpnm.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -ftstrtto.obj: ftstrtto.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h \ - blitter.h common.h display.h ..\lib\extend\ftxkern.h \ - ..\lib\extend\ftxsbit.h gdriver.h gevents.h gmain.h \ - ..\lib\ttmemory.h ..\lib\ttconfig.h \ - ..\lib\arch\win16\ft_conf.h ..\lib\tttypes.h -fttimer.obj: fttimer.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gdriver.h \ - gevents.h gmain.h -ftview.obj: ftview.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h common.h \ - display.h ..\lib\extend\ftxsbit.h gdriver.h gevents.h \ - gmain.h -ftzoom.obj: ftzoom.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxpost.h gdriver.h gevents.h gmain.h -gmain.obj: gmain.c gdriver.h gmain.h -textdisp.obj: textdisp.c textdisp.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -!ifndef __MAKE__ -arch\win16\gw_win16.obj: arch\win16\gw_win16.c gdriver.h gevents.h gmain.h -!endif diff --git a/Build/source/libs/freetype/test/arch/win16/gw_win16.c b/Build/source/libs/freetype/test/arch/win16/gw_win16.c deleted file mode 100644 index 33332203a37..00000000000 --- a/Build/source/libs/freetype/test/arch/win16/gw_win16.c +++ /dev/null @@ -1,431 +0,0 @@ -/******************************************************************* - * - * gw_win16.c graphics driver for 16-bit Windows platform. 0.1 - * - * This is the driver for displaying inside a window under 16-bit - * Microsoft Windows, used by the graphics utility of the - * FreeType test suite. - * - * Written by Antoine Leca. - * Copyright 1999-2001 by Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * Borrowing liberally from the other FreeType drivers. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 /* should be #included before everything else */ - /* because it #defines NULL in a peculiar way */ - -#include -#include -#include - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - -/* The following #ifdef are used to define the following macros : */ -/* */ -/* - hInst : variable containing the handle of the current instance. */ -/* - hPrev : variable containing the handle of the previous instance. */ -/* */ - -/* ---- Microsoft C compilers support ------------------------------------ */ - -#if defined( M_I86 ) || defined( _M_I86 ) - -extern HINSTANCE _hInstance, _hPrevInstance; -#define hInst _hInstance -#define hPrev _hPrevInstance - -#endif - -/* ---- Borland C compiler support --------------------------------------- */ - -#ifdef __TURBOC__ - -#pragma option -A- - -extern HINSTANCE _hInstance, _hPrev; -#define hInst _hInstance -#define hPrev _hPrev - -#endif - - -#if !defined ( hInst ) || !defined ( hPrev ) -#error Your compiler is not (yet) supported. Check the source file! -#endif - -/* ---- Common initialisations ------------------------------------------- */ - -/* Size of the window. */ -#define WIN_WIDTH 640u -#define WIN_HEIGHT 400u -/* The values will be divided by 2 for gray-scale rendering. */ - -/* These values can be changed, but WIN_WIDTH should remain for now a */ -/* multiple of 32 to avoid padding issues. */ - -/* Also, to avoid 16-bit overflowing issues, the product */ -/* WIN_WIDTH * WIN_HEIGHT should not excess 512K for monochrome */ -/* rendering, and 256K for gray-scale rendering. */ - - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - /* handle of the window. */ - static HWND hwndGraphic; - - /* bitmap information */ - static LPBITMAPINFO pbmi; - static HBITMAP hbm; - - /* local event to pass on */ - static TEvent ourevent = { event_Quit, 0 }; - static int eventToProcess = 0; - - /* array defined in the test programs */ - extern char Header[]; - - -/* restores screen to its original state */ - -int Driver_Restore_Mode() - { - /* The graphical window has perhaps already destroyed itself */ - if ( hwndGraphic ) { - DestroyWindow ( hwndGraphic ); - PostMessage ( hwndGraphic, WM_QUIT, 0, 0 ); - } - - if ( pbmi ) free ( pbmi ); - - return 1; - } - - -/* - * set graphics mode - * and create the window class and the message handling. - */ - -/* Declarations of the Windows-specific functions that are below. */ -static BOOL RegisterTheClass ( void ); -static BOOL CreateTheWindow ( int width, int height ); - - -int Driver_Set_Graphics ( int mode ) - { - int i; - static const RGBQUAD gray_scale[5] = { - { 0xFF, 0xFF, 0xFF, 0 }, /* white */ - { 0xC0, 0xC0, 0xC0, 0 }, - { 0x80, 0x80, 0x80, 0 }, - { 0x40, 0x40, 0x40, 0 }, - { 0, 0, 0, 0 } }; /* black */ - - if( ! RegisterTheClass() ) return 0; /* if already running, fails. */ - - /* find some memory for the bitmap header */ - if ( (pbmi = malloc ( sizeof ( BITMAPINFO ) + sizeof ( RGBQUAD ) * 256 ) ) - /* 256 should really be 2 if not grayscale */ - == NULL ) - /* lack of memory; fails the process */ - return 0; - - /* initialize the header to appropriate values */ - memset( pbmi, 0, sizeof ( BITMAPINFO ) + sizeof ( RGBQUAD ) * 256 ); - - switch ( mode ) - { - case Graphics_Mode_Mono: - pbmi->bmiHeader.biBitCount = 1; - pbmi->bmiColors[0] = gray_scale[0]; - pbmi->bmiColors[1] = gray_scale[4]; - - vio_ScanLineWidth = WIN_WIDTH / 8; - vio_Width = WIN_WIDTH; - vio_Height = WIN_HEIGHT; - - break; - - case Graphics_Mode_Gray: - pbmi->bmiHeader.biBitCount = 8; - pbmi->bmiHeader.biClrUsed = 5; - - memcpy ( &pbmi->bmiColors[0], gray_scale, sizeof gray_scale ); - - vio_ScanLineWidth = WIN_WIDTH / 2; - vio_Width = WIN_WIDTH / 2; - vio_Height = WIN_HEIGHT/ 2; - - for ( i = 0; i < 5; ++i ) - gray_palette[i] = i; - - break; - - default: - - free ( pbmi ); - return 0; /* Unknown mode */ - } - - pbmi->bmiHeader.biSize = sizeof ( BITMAPINFOHEADER ); - pbmi->bmiHeader.biWidth = vio_Width; - pbmi->bmiHeader.biHeight = vio_Height; - pbmi->bmiHeader.biPlanes = 1; - - if ( (long) vio_Height * vio_ScanLineWidth > 0xFFE0ul ) - /* too big to work on 16-bit; fails the process */ - { - free ( pbmi ); - return 0; - } - - if( ! CreateTheWindow ( vio_Width, vio_Height ) ) - { - free ( pbmi ); - return 0; - } - - return 1; /* success even if the window was not built. */ - } - - -int Driver_Display_Bitmap ( char* buffer, int lines, int cols ) - { - HDC hDC; - - if ( cols * 8 != pbmi->bmiHeader.biWidth * pbmi->bmiHeader.biBitCount ) - pbmi->bmiHeader.biWidth = cols * 8 / pbmi->bmiHeader.biBitCount; - - hDC = GetDC ( hwndGraphic ); - SetDIBits ( hDC, hbm, 0, lines, buffer, pbmi, DIB_RGB_COLORS ); - ReleaseDC ( hwndGraphic, hDC ); - - ShowWindow( hwndGraphic, SW_SHOW ); - InvalidateRect ( hwndGraphic, NULL, FALSE ); - UpdateWindow ( hwndGraphic ); - - return 1; /* success */ - } - - -void Get_Event( TEvent* event ) - { - MSG msg; - - if ( hwndGraphic ) - { - SetWindowText ( hwndGraphic, Header ); - } - - do { - while ( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) { - TranslateMessage ( &msg ); - DispatchMessage ( &msg ); - } - if ( ! eventToProcess ) - WaitMessage(); - } while ( ! eventToProcess ); - - event->what = ourevent.what; - event->info = ourevent.info; - eventToProcess = 0; - return; - } - - -/* ---- Windows-specific stuff ------------------------------------------- */ - -LRESULT CALLBACK Message_Process( HWND, UINT, WPARAM, LPARAM ); - -static -BOOL RegisterTheClass ( void ) - { - WNDCLASS ourClass = { - /* UINT style */ 0, - /* WNDPROC lpfnWndProc */ Message_Process, - /* int cbClsExtra */ 0, - /* int cbWndExtra */ 0, - /* HANDLE hInstance */ 0, - /* HICON hIcon */ 0, - /* HCURSOR hCursor */ 0, - /* HBRUSH hbrBackground*/ 0, - /* LPCTSTR lpszMenuName */ NULL, - /* LPCTSTR lpszClassName*/ "FreeTypeTestGraphicDriver16" - }; - - if( hPrev ) - /* There is another instance of the same program. */ - /* No need to register the class. */ - return 1; - - ourClass.hInstance = hInst; - ourClass.hIcon = LoadIcon(0, IDI_APPLICATION); - ourClass.hCursor = LoadCursor(0, IDC_ARROW); - ourClass.hbrBackground= GetStockObject(BLACK_BRUSH); - - return RegisterClass(&ourClass) != 0; /* return False if it fails. */ - } - -static -BOOL CreateTheWindow ( int width, int height ) - { - if ( ! (hwndGraphic = CreateWindow( - /* LPCSTR lpszClassName; */ "FreeTypeTestGraphicDriver16", - /* LPCSTR lpszWindowName; */ "FreeType Test Graphic Driver", - /* DWORD dwStyle; */ WS_OVERLAPPED | WS_SYSMENU, - /* int x; */ CW_USEDEFAULT, - /* int y; */ CW_USEDEFAULT, - /* int nWidth; */ width + 2*GetSystemMetrics(SM_CXBORDER), - /* int nHeight; */ height+ GetSystemMetrics(SM_CYBORDER) - + GetSystemMetrics(SM_CYCAPTION), - /* HWND hwndParent; */ HWND_DESKTOP, - /* HMENU hmenu; */ 0, - /* HINSTANCE hinst; */ hInst, - /* void FAR* lpvParam; */ NULL)) - ) - /* creation failed... */ - return 0; - - return 1; - } - - /* Message processing for our Windows class */ -LRESULT CALLBACK Message_Process( HWND handle, UINT mess, - WPARAM wParam, LPARAM lParam ) - { - - switch( mess ) - { - case WM_DESTROY: - /* warn the main thread to quit if it didn't know */ - ourevent.what = event_Quit; - ourevent.info = 0; - eventToProcess = 1; - hwndGraphic = 0; - PostQuitMessage ( 0 ); - DeleteObject ( hbm ); - break; - - case WM_CREATE: - { - HDC hDC; - - hDC = GetDC ( handle ); - hbm = CreateDIBitmap ( - /* HDC hdc; handle of device context */ hDC, - /* BITMAPINFOHEADER FAR* lpbmih; addr.of header*/ &pbmi->bmiHeader, - /* DWORD dwInit; CBM_INIT to initialize bitmap */ 0, - /* const void FAR* lpvBits; address of values */ NULL, - /* BITMAPINFO FAR* lpbmi; addr.of bitmap data */ pbmi, - /* UINT fnColorUse; RGB or palette indices */ DIB_RGB_COLORS); - ReleaseDC ( handle, hDC ); - break; - } - - case WM_PAINT: - { - HDC hDC, memDC; - HANDLE oldbm; - PAINTSTRUCT ps; - - hDC = BeginPaint ( handle, &ps ); - memDC = CreateCompatibleDC(hDC); - oldbm = SelectObject(memDC, hbm); - BitBlt ( hDC, 0, 0, vio_Width, vio_Height, memDC, 0, 0, SRCCOPY); - ReleaseDC ( handle, hDC ); - SelectObject ( memDC, oldbm ); - DeleteObject ( memDC ); - EndPaint ( handle, &ps ); - } - - case WM_KEYDOWN: - switch ( wParam ) - { - case VK_ESCAPE: - ourevent.what = event_Quit; - ourevent.info = 0; - eventToProcess = 1; - break; - - case VK_F1: /* bring up help and about dialog window */ - break; - } - break; - - case WM_CHAR: - { - char c = wParam ; - int i; - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - ourevent.what = trans[i].event_class; - ourevent.info = trans[i].event_info; - eventToProcess = 1; - return 0; - } - } - - /* unrecognized keystroke */ - ourevent.what = event_Keyboard; - ourevent.info = (int)c; - eventToProcess = 1; - } - break; - - default: - return DefWindowProc( handle, mess, wParam, lParam ); - } - - return 0; - } - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/win16/makedep b/Build/source/libs/freetype/test/arch/win16/makedep deleted file mode 100755 index 6e8812cb07a..00000000000 --- a/Build/source/libs/freetype/test/arch/win16/makedep +++ /dev/null @@ -1,43 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for older compilers -# on the Windows 16-bit platform. -# -# If you run this script under non-Windows operating systems, expect -# warnings that `windows.h' can't be found. -# -# Copyright 1996-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. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.win - -(cd ../.. - gcc -MM -I../lib/arch/win16 -I../lib -I../lib/extend -I. \ - *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.win - -echo "!ifndef __MAKE__" >> depend.win - -(cd ../.. - gcc -MM -I../lib/arch/win16 -I../lib -I../lib/extend -I. \ - -DhInst -DhPrev arch/win16/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\win16\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.win - -echo "!endif" >> depend.win - -# eof diff --git a/Build/source/libs/freetype/test/arch/win32/Makefile.BC b/Build/source/libs/freetype/test/arch/win32/Makefile.BC deleted file mode 100644 index 7e6ddd46b2f..00000000000 --- a/Build/source/libs/freetype/test/arch/win32/Makefile.BC +++ /dev/null @@ -1,207 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for BC++ for Win32. -# -# Tested with Borland C++ v.4.02, 5.0, and Borland C++ builder 4. -# You will need Borland MAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# make -farch\win32\Makefile.BC -# -# -# A DLL version of the library can be built and then used with -# -# make -DDLL -farch/win16/Makefile.BC dll -# -# (do not forget to define DLL, otherwise the link phase will fail). -# -# -# A debug version can be obtained with -# -# make -DDEBUG -farch\win32\Makefile.BC -# -# -# 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. - -ARCH = arch\win32 -FT_MAKEFILE = $(ARCH)\Makefile.BC -FT_DLL = ft15_32.dll - -CC = bcc32 - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR);$(LIBDIR)\$(ARCH);.;$(LIBDIR)\extend -SPURIOUS_WARNINGS = -w-nak -w-par -w-use -w-aus -w-stu -w-stv -w-cln -w-sig -w-pia -CFLAGS = -i64 $(INCDIRS) $(SPURIOUS_WARNINGS) - -!ifndef DEBUG -CFLAGS = $(CFLAGS) -O2 -A -LDFLAGS = -WC -!else -CFLAGS = $(CFLAGS) -v -LDFLAGS = -v -WC -!endif - -!ifdef DLL -CFLAGS = $(CFLAGS) -DFREETYPE_DLL -!endif - -# Windows graphic driver -GDRIVER = $(ARCH)\gw_win32.c - -DISPLAY = display.c - -G1SRC = gmain.c blitter.c $(GDRIVER) -GSRC = $(DISPLAY) $(G1SRC) - -GOBJ = $(GSRC:.c=.obj) -G1OBJ = $(G1SRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - $(CC) -c -o$* @&&| - $(CFLAGS) $< -| - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skipped if DEBUG build -all: freetype $(EXEFILES) - -dll: the_dll $(EXEFILES) - -!else -# Skipped if non-DEBUG build -default_target: debug -dll: the_debug_dll $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -freetype: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG debug - cd ..\test - -the_dll: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDLL dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - -the_debug_dll: - cd $(LIBDIR) - make -f$(FT_MAKEFILE) -DDEBUG -DDLL dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - - -# C compilers are unable to include in ANSI mode, -# because of the // comments... -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - $(CC) -c -o$* @&&| - $(CFLAGS) -A- $*.c -| - - -# Borland versions of make are unable to use the $** variable inside -# implicit rules (like .obj.exe:). The job have to be done by hand. :-( -ftzoom.exe: $(G1OBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftzoom.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftview.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstring.obj $(GOBJ) common.obj $(LIBDIR)\libttf.lib - -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrtto.obj $(GOBJ) common.obj arabic.obj \ - $(LIBDIR)\libttf.lib - -fttimer.exe: $(G1OBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fttimer.obj $(G1OBJ) common.obj $(LIBDIR)\libttf.lib - -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftlint.obj common.obj $(LIBDIR)\libttf.lib - -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftdump.obj common.obj $(LIBDIR)\libttf.lib - -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib - -ftsbit.exe: $(TDOBJ) ftsbit.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftsbit.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -ftmetric.exe: $(TDOBJ) ftmetric.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) ftmetric.obj textdisp.obj common.obj $(LIBDIR)\libttf.lib - -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - $(CC) $(LDFLAGS) fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - make -f$(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -del *.dll - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - -del *.tds - -!include "$(ARCH)\depend.win" - -# end of Makefile diff --git a/Build/source/libs/freetype/test/arch/win32/Makefile.CL b/Build/source/libs/freetype/test/arch/win32/Makefile.CL deleted file mode 100644 index 18d8477c3cf..00000000000 --- a/Build/source/libs/freetype/test/arch/win32/Makefile.CL +++ /dev/null @@ -1,185 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for Microsoft Visual C++. -# -# You will need NMAKE. -# -# -# Use this file while in the 'test' directory with the following statement: -# -# nmake /f arch\win32\Makefile.CL -# -# A DLL version of the library can be built and then used with -# -# nmake DLL=1 /f arch\win32\Makefile.CL dll -# -# (do not forget to define DLL, otherwise the link phase will fail). -# -# -# Debug versions can be obtained with -# -# nmake DEBUG=1 /f arch\win32\Makefile.CL -# -# -# 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. - -ARCH = arch\win32 -FT_MAKEFILE = $(ARCH)\Makefile.CL -FT_MAKE = $(MAKE) /nologo -FT_DLL = ft15_32.dll - -CC = cl /nologo - -LIBDIR = ..\lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)\$(ARCH) -I. -I$(LIBDIR)\extend - -CFLAGS_ANSI = /Za -!ifndef DEBUG -CFLAGS = /Ox /W2 $(INCDIRS) -LDFLAGS = -!else -CFLAGS = /Zi /Ge /W2 $(INCDIRS) -LDFLAGS = /Zi -!endif - -!ifdef DLL -CFLAGS = $(CFLAGS) /DEXPORT_DEF=__declspec(dllexport) /DFREETYPE_DLL -!endif - - -# Windows graphic driver -GDRIVER = $(ARCH)\gw_win32.c - -GSRC = display.c gmain.c blitter.c $(GDRIVER) - -GOBJ = $(GSRC:.c=.obj) - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -OBJ = $(SRC:.c=.obj) - - -.c.obj: - @$(CC) /c /Fo$* @<< - $(CFLAGS) $(CFLAGS_ANSI) $< -<< - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -!ifndef DEBUG -# Skiped if DEBUG build -all: freetype $(EXEFILES) - -dll: the_dll $(EXEFILES) - -!else -# Skipped if non-DEBUG build -default_target: debug -dll: the_debug_dll $(EXEFILES) - -!endif - -debug: freetype_debug $(EXEFILES) - -freetype: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) all - cd ..\test - -freetype_debug: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 debug - cd ..\test - -the_dll: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DLL=1 dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - -the_debug_dll: - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) DEBUG=1 DLL=1 dll - cd ..\test - -copy $(LIBDIR)\$(FT_DLL) - - -# C compilers are unable to include 32-bit in ANSI mode. -# So we have a special rule for this file, to build it outside ANSI. -$(GDRIVER:.c=.obj): - $(CC) /c /Fo$* @<< - $(CFLAGS) /Ze $(GDRIVER) -<< - -.obj.exe: - $(CC) /Fe$* @<< - $(LDFLAGS) $** GDI32.LIB USER32.LIB -<< - -ftzoom.exe: $(GOBJ) ftzoom.obj common.obj $(LIBDIR)\libttf.lib -ftview.exe: $(GOBJ) ftview.obj common.obj $(LIBDIR)\libttf.lib -ftstring.exe: $(GOBJ) ftstring.obj common.obj $(LIBDIR)\libttf.lib -ftstrtto.exe: $(GOBJ) ftstrtto.obj common.obj arabic.obj $(LIBDIR)\libttf.lib -fttimer.exe: $(GOBJ) fttimer.obj common.obj $(LIBDIR)\libttf.lib -ftlint.exe: ftlint.obj common.obj $(LIBDIR)\libttf.lib -ftdump.exe: ftdump.obj common.obj $(LIBDIR)\libttf.lib -ftstrpnm.exe: ftstrpnm.obj common.obj $(LIBDIR)\libttf.lib -ftsbit.exe: ftsbit.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -ftmetric.exe: ftmetric.obj common.obj textdisp.obj $(LIBDIR)\libttf.lib -fterror.exe: fterror.obj common.obj $(LIBDIR)\libttf.lib - - -clean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) clean - cd ..\test - -distclean: do_clean - cd $(LIBDIR) - $(FT_MAKE) /f $(FT_MAKEFILE) distclean - cd ..\test - -del *.exe - -del *.dll - -del *.pdb - -do_clean: - -del *.obj - -del $(ARCH)\*.obj - -del *.ilk - -del *.pch - -del *.exp - - -!include "$(ARCH)\depend.win" - -# end of Makefile.CL diff --git a/Build/source/libs/freetype/test/arch/win32/Makefile.Min b/Build/source/libs/freetype/test/arch/win32/Makefile.Min deleted file mode 100644 index 3e0552c7942..00000000000 --- a/Build/source/libs/freetype/test/arch/win32/Makefile.Min +++ /dev/null @@ -1,134 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for MinGW32 gcc under Win9x. -# -# You will need a port of GNU make; the MingW32 port works. -# -# Use this file while in the 'test' directory with the following statements: -# -# make -f arch/win32/Makefile.min depend -# make -f arch/win32/Makefile.min -# -# -# Copyright 1996-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. - -ARCH = arch/win32 -FT_MAKEFILE = $(ARCH)/Makefile.min - -CC = gcc - -LIBDIR = ../lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -ifdef DEBUG - -CFLAGS = -ansi -pedantic -Wall -O2 -g $(INCDIRS) -LDFLAGS = -g -luser32 -lgdi32 - -else - -CFLAGS = -ansi -pedantic -Wall -O2 -s $(INCDIRS) -LDFLAGS = -s -luser32 -lgdi32 - -endif - - -# graphic Windows driver -GDRIVER = $(ARCH)/gw_win32.c - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -GSRC = gmain.c display.c blitter.c $(GDRIVER) -GOBJ = $(GSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - - -%.exe: - $(CC) $(LDFLAGS) -o $@ $^ - - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - -ftzoom.exe: $(GOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -fterror.exe: fterror.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -del dep.end - -del *.exe - -del core - -do_clean: - -del *.o - -del response - -del $(subst /,\,$(GDRIVER:.c=.o)) - -depend: $(SRC) $(GSRC) - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -MM $(INCDIRS) $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/test/arch/win32/Makefile.gcc b/Build/source/libs/freetype/test/arch/win32/Makefile.gcc deleted file mode 100644 index 58b7eb22f79..00000000000 --- a/Build/source/libs/freetype/test/arch/win32/Makefile.gcc +++ /dev/null @@ -1,143 +0,0 @@ -# This file is part of the FreeType project. -# -# It builds the library and test programs for gcc under Win32. -# -# You will need GNU make. -# -# Use this file while in the 'test' directory with the following statements: -# -# make -f arch/win32/Makefile.gcc depend -# make -f arch/win32/Makefile.gcc -# -# -# If you have the GNU gettext package installed, you can also try -# -# make -f arch/win32/Makefile.gcc HAVE_GETTEXT -# -# -# Copyright 1996-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. - -ARCH = arch/win32 -FT_MAKEFILE = $(ARCH)/Makefile.gcc - -CC = gcc - -LIBDIR = ../lib -INCDIRS = -I$(LIBDIR) -I$(LIBDIR)/$(ARCH) -I. -I$(LIBDIR)/extend - -ifndef GETTEXT -GETTEXT=NO_GETTEXT -endif - -CFLAGS = -Wall -ansi -O2 -g $(INCDIRS) -# -D$(GETTEXT) -# CFLAGS = -ansi -Wall -O2 -s $(INCDIRS) -D$(GETTEXT) - - -# graphic Windows driver -GDRIVER = $(ARCH)/gw_win32.c - -SRC = arabic.c \ - common.c \ - textdisp.c \ - ftdump.c \ - fterror.c \ - ftlint.c \ - ftmetric.c \ - ftsbit.c \ - ftstring.c \ - ftstrpnm.c \ - ftstrtto.c \ - fttimer.c \ - ftview.c \ - ftzoom.c - -GSRC = gmain.c display.c blitter.c $(GDRIVER) -GOBJ = $(GSRC:.c=.o) - - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - - -ifeq ($(GETTEXT),HAVE_GETTEXT) -%.exe: - $(CC) $(CFLAGS) -o $@ $^ -lintl -else -%.exe: - $(CC) $(CFLAGS) -o $@ $^ -luser32 -lgdi32 -endif - - -EXEFILES = ftdump.exe \ - fterror.exe \ - ftlint.exe \ - ftmetric.exe \ - ftsbit.exe \ - ftstring.exe \ - ftstrpnm.exe \ - ftstrtto.exe \ - fttimer.exe \ - ftview.exe \ - ftzoom.exe - -.PHONY: all debug freetype freetype_debug \ - clean distclean do_clean depend - - -all: freetype $(EXEFILES) - -debug: freetype_debug $(EXEFILES) - -HAVE_GETTEXT: - $(MAKE) -f $(FT_MAKEFILE) GETTEXT=HAVE_GETTEXT all - -freetype: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) all - -freetype_debug: - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) debug - -ftzoom.exe: $(GOBJ) ftzoom.o common.o $(LIBDIR)/libttf.a -ftview.exe: $(GOBJ) ftview.o common.o $(LIBDIR)/libttf.a -ftlint.exe: ftlint.o common.o $(LIBDIR)/libttf.a -ftdump.exe: ftdump.o common.o $(LIBDIR)/libttf.a -fterror.exe: fterror.o common.o $(LIBDIR)/libttf.a -ftstring.exe: $(GOBJ) ftstring.o common.o $(LIBDIR)/libttf.a -fttimer.exe: $(GOBJ) fttimer.o common.o $(LIBDIR)/libttf.a -ftstrpnm.exe: ftstrpnm.o common.o $(LIBDIR)/libttf.a -ftsbit.exe: ftsbit.o common.o textdisp.o $(LIBDIR)/libttf.a -ftmetric.exe: ftmetric.o common.o textdisp.o $(LIBDIR)/libttf.a -ftstrtto.exe: $(GOBJ) ftstrtto.o common.o arabic.o $(LIBDIR)/libttf.a - - -clean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) clean - -distclean: do_clean - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) distclean - -del dep.end - -del *.exe - -del core - -do_clean: - -del *.o - -del response - -del $(GDRIVER:.c=.o) - -depend: $(SRC) $(GSRC) - $(MAKE) -C $(LIBDIR) -f $(FT_MAKEFILE) depend - $(CC) -E -MM $(INCDIRS) $^ > dep.end - -ifeq (dep.end,$(wildcard dep.end)) - include dep.end -endif - -# end of Makefile.gcc diff --git a/Build/source/libs/freetype/test/arch/win32/depend.win b/Build/source/libs/freetype/test/arch/win32/depend.win deleted file mode 100644 index 193f4af6d31..00000000000 --- a/Build/source/libs/freetype/test/arch/win32/depend.win +++ /dev/null @@ -1,78 +0,0 @@ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in `makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script `makedep' on -# 2002-02-19. - -arabic.obj: arabic.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h -blitter.obj: blitter.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -common.obj: common.c common.h -display.obj: display.c display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gmain.h -fdebug.obj: fdebug.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\tttypes.h ..\lib\ttconfig.h \ - ..\lib\arch\win32\ft_conf.h ..\lib\ttdebug.h \ - ..\lib\ttobjs.h ..\lib\ttengine.h \ - ..\lib\ttmutex.h ..\lib\ttcache.h \ - ..\lib\tttables.h ..\lib\ttcmap.h -ftdump.obj: ftdump.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxcmap.h ..\lib\extend\ftxopen.h \ - ..\lib\extend\ftxgdef.h ..\lib\extend\ftxgsub.h \ - ..\lib\extend\ftxgpos.h ..\lib\extend\ftxsbit.h \ - ..\lib\ttobjs.h ..\lib\ttconfig.h \ - ..\lib\arch\win32\ft_conf.h ..\lib\ttengine.h \ - ..\lib\tttypes.h ..\lib\ttmutex.h \ - ..\lib\ttcache.h ..\lib\tttables.h \ - ..\lib\ttcmap.h ..\lib\ttmemory.h -fterror.obj: fterror.c ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxerr18.h \ - ..\lib\arch\win32\ft_conf.h -ftlint.obj: ftlint.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\arch\win32\ft_conf.h -ftmetric.obj: ftmetric.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\win32\ft_conf.h -ftsbit.obj: ftsbit.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxsbit.h textdisp.h \ - ..\lib\arch\win32\ft_conf.h -ftstring.obj: ftstring.c common.h display.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gevents.h \ - gdriver.h gmain.h -ftstrpnm.obj: ftstrpnm.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -ftstrtto.obj: ftstrtto.c arabic.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxopen.h ..\lib\extend\ftxgdef.h \ - ..\lib\extend\ftxgsub.h ..\lib\extend\ftxgpos.h \ - blitter.h common.h display.h ..\lib\extend\ftxkern.h \ - ..\lib\extend\ftxsbit.h gdriver.h gevents.h gmain.h \ - ..\lib\ttmemory.h ..\lib\ttconfig.h \ - ..\lib\arch\win32\ft_conf.h ..\lib\tttypes.h -fttimer.obj: fttimer.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h gdriver.h \ - gevents.h gmain.h -ftview.obj: ftview.c blitter.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h common.h \ - display.h ..\lib\extend\ftxsbit.h gdriver.h gevents.h \ - gmain.h -ftzoom.obj: ftzoom.c common.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h \ - ..\lib\extend\ftxpost.h gdriver.h gevents.h gmain.h -gmain.obj: gmain.c gdriver.h gmain.h -textdisp.obj: textdisp.c textdisp.h ..\lib\freetype.h \ - ..\lib\fterrid.h ..\lib\ftnameid.h -!ifndef __MAKE__ -arch\win32\gw_win32.obj: arch\win32\gw_win32.c gdriver.h gevents.h gmain.h -!endif diff --git a/Build/source/libs/freetype/test/arch/win32/gw_win32.c b/Build/source/libs/freetype/test/arch/win32/gw_win32.c deleted file mode 100644 index e11c63ca1ff..00000000000 --- a/Build/source/libs/freetype/test/arch/win32/gw_win32.c +++ /dev/null @@ -1,378 +0,0 @@ -/******************************************************************* - * - * gw_win32.c graphics driver for Win32 platform. 0.1 - * - * This is the driver for displaying inside a window under Win32, - * used by the graphics utility of the FreeType test suite. - * - * Written by Antoine Leca. - * Copyright 1999-2000 Antoine Leca, - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * Borrowing liberally from the other FreeType drivers. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.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 -#include -#include - -#define WIN32_LEAN_AND_MEAN -#include - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - - -/* Size of the window. */ -#define WIN_WIDTH 640u -#define WIN_HEIGHT 450u - -/* These values can be changed, but WIN_WIDTH should remain for now a */ -/* multiple of 32 to avoid padding issues. */ - - - typedef struct _Translator - { - char key; - GEvent event_class; - int event_info; - } Translator; - -#define NUM_Translators 20 - - static const Translator trans[NUM_Translators] = - { - { (char)27, event_Quit, 0 }, - { 'q', event_Quit, 0 }, - - { 'x', event_Rotate_Glyph, -1 }, - { 'c', event_Rotate_Glyph, 1 }, - { 'v', event_Rotate_Glyph, -16 }, - { 'b', event_Rotate_Glyph, 16 }, - - { '{', event_Change_Glyph, -10000 }, - { '}', event_Change_Glyph, 10000 }, - { '(', event_Change_Glyph, -1000 }, - { ')', event_Change_Glyph, 1000 }, - { '9', event_Change_Glyph, -100 }, - { '0', event_Change_Glyph, 100 }, - { 'i', event_Change_Glyph, -10 }, - { 'o', event_Change_Glyph, 10 }, - { 'k', event_Change_Glyph, -1 }, - { 'l', event_Change_Glyph, 1 }, - - { '+', event_Scale_Glyph, 10 }, - { '-', event_Scale_Glyph, -10 }, - { 'u', event_Scale_Glyph, 1 }, - { 'j', event_Scale_Glyph, -1 } - }; - - /* handle of the window. */ - static HWND hwndGraphic; - - /* bitmap information */ - static LPBITMAPINFO pbmi; - static HBITMAP hbm; - - /* local event to pass on */ - static TEvent ourevent = { event_Quit, 0 }; - static int eventToProcess = 0; - - /* array defined in the test programs */ - extern char Header[]; - - -/* restores screen to its original state */ - -int Driver_Restore_Mode() - { - /* The graphical window has perhaps already destroyed itself */ - if ( hwndGraphic ) { - DestroyWindow ( hwndGraphic ); - PostMessage( hwndGraphic, WM_QUIT, 0, 0 ); - } - - if ( pbmi ) free ( pbmi ); - - return 1; - } - - -/* - * set graphics mode - * and create the window class and the message handling. - */ - -/* Declarations of the Windows-specific functions that are below. */ -static BOOL RegisterTheClass ( void ); -static BOOL CreateTheWindow ( int width, int height ); - - -int Driver_Set_Graphics ( int mode ) - { - int i; - static RGBQUAD gray_scale[5] = { - { 0xFF, 0xFF, 0xFF, 0 }, /* white */ - { 0xC0, 0xC0, 0xC0, 0 }, - { 0x80, 0x80, 0x80, 0 }, - { 0x40, 0x40, 0x40, 0 }, - { 0, 0, 0, 0 } }; /* black */ - - if( ! RegisterTheClass() ) return 0; /* if already running, fails. */ - - /* find some memory for the bitmap header */ - if ( (pbmi = malloc ( sizeof ( BITMAPINFO ) + sizeof ( RGBQUAD ) * 256 ) ) - /* 256 should really be 2 if not grayscale */ - == NULL ) - /* lack of memory; fails the process */ - return 0; - - /* initialize the header to appropriate values */ - memset( pbmi, 0, sizeof ( BITMAPINFO ) + sizeof ( RGBQUAD ) * 256 ); - - switch ( mode ) - { - case Graphics_Mode_Mono: - pbmi->bmiHeader.biBitCount = 1; - pbmi->bmiColors[0] = gray_scale[0]; - pbmi->bmiColors[1] = gray_scale[4]; - - vio_ScanLineWidth = WIN_WIDTH / 8; - vio_Width = WIN_WIDTH; - vio_Height = WIN_HEIGHT; - - break; - - case Graphics_Mode_Gray: - pbmi->bmiHeader.biBitCount = 8; - pbmi->bmiHeader.biClrUsed = 5; - - memcpy ( &pbmi->bmiColors[0], gray_scale, sizeof gray_scale ); - - vio_ScanLineWidth = WIN_WIDTH; - vio_Width = WIN_WIDTH; - vio_Height = WIN_HEIGHT; - - for ( i = 0; i < 5; ++i ) - gray_palette[i] = i; - - break; - - default: - free ( pbmi ); - return 0; /* Unknown mode */ - } - - pbmi->bmiHeader.biSize = sizeof ( BITMAPINFOHEADER ); - pbmi->bmiHeader.biWidth = vio_Width; - pbmi->bmiHeader.biHeight = vio_Height; - pbmi->bmiHeader.biPlanes = 1; - - if( ! CreateTheWindow(vio_Width, vio_Height) ) - { - free ( pbmi ); - return 0; - } - - return 1; /* success even if the window was not built. */ - } - - -int Driver_Display_Bitmap ( char* buffer, int lines, int cols ) - { - HDC hDC; - - if ( cols * 8 != pbmi->bmiHeader.biWidth * pbmi->bmiHeader.biBitCount ) - pbmi->bmiHeader.biWidth = cols * 8 / pbmi->bmiHeader.biBitCount; - - hDC = GetDC ( hwndGraphic ); - SetDIBits ( hDC, hbm, 0, lines, buffer, pbmi, DIB_RGB_COLORS ); - ReleaseDC ( hwndGraphic, hDC ); - - ShowWindow( hwndGraphic, SW_SHOW ); - InvalidateRect ( hwndGraphic, NULL, FALSE ); - UpdateWindow ( hwndGraphic ); - - return 1; /* success */ - } - - -void Get_Event( TEvent* event ) - { - MSG msg; - - if ( hwndGraphic ) - { - SetWindowText ( hwndGraphic, Header ); - } - - do { - while ( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) { - TranslateMessage ( &msg ); - DispatchMessage ( &msg ); - } - if ( ! eventToProcess ) - WaitMessage(); - } while ( ! eventToProcess ); - - event->what = ourevent.what; - event->info = ourevent.info; - eventToProcess = 0; - return; - } - - -/* ---- Windows-specific stuff ------------------------------------------- */ - -LRESULT CALLBACK Message_Process( HWND, UINT, WPARAM, LPARAM ); - -static -BOOL RegisterTheClass ( void ) - { - WNDCLASS ourClass = { - /* UINT style */ 0, - /* WNDPROC lpfnWndProc */ Message_Process, - /* int cbClsExtra */ 0, - /* int cbWndExtra */ 0, - /* HANDLE hInstance */ 0, - /* HICON hIcon */ 0, - /* HCURSOR hCursor */ 0, - /* HBRUSH hbrBackground*/ 0, - /* LPCTSTR lpszMenuName */ NULL, - /* LPCTSTR lpszClassName*/ "FreeTypeTestGraphicDriver" - }; - - ourClass.hInstance = GetModuleHandle( NULL ); - ourClass.hIcon = LoadIcon(0, IDI_APPLICATION); - ourClass.hCursor = LoadCursor(0, IDC_ARROW); - ourClass.hbrBackground= GetStockObject(BLACK_BRUSH); - - return RegisterClass(&ourClass) != 0; /* return False if it fails. */ - } - -static -BOOL CreateTheWindow ( int width, int height ) - { - - if ( ! (hwndGraphic = CreateWindow( - /* LPCSTR lpszClassName; */ "FreeTypeTestGraphicDriver", - /* LPCSTR lpszWindowName; */ "FreeType Test Graphic Driver", - /* DWORD dwStyle; */ WS_OVERLAPPED | WS_SYSMENU, - /* int x; */ CW_USEDEFAULT, - /* int y; */ CW_USEDEFAULT, - /* int nWidth; */ width + 2*GetSystemMetrics(SM_CXBORDER), - /* int nHeight; */ height+ GetSystemMetrics(SM_CYBORDER) - + GetSystemMetrics(SM_CYCAPTION), - /* HWND hwndParent; */ HWND_DESKTOP, - /* HMENU hmenu; */ 0, - /* HINSTANCE hinst; */ GetModuleHandle( NULL ), - /* void FAR* lpvParam; */ NULL)) - ) - /* creation failed... */ - return 0; - - return 1; - } - - /* Message processing for our Windows class */ -LRESULT CALLBACK Message_Process( HWND handle, UINT mess, - WPARAM wParam, LPARAM lParam ) - { - - switch( mess ) - { - case WM_DESTROY: - /* warn the main thread to quit if it didn't know */ - ourevent.what = event_Quit; - ourevent.info = 0; - eventToProcess = 1; - hwndGraphic = 0; - PostQuitMessage ( 0 ); - DeleteObject ( hbm ); - break; - - case WM_CREATE: - { - HDC hDC; - - hDC = GetDC ( handle ); - hbm = CreateDIBitmap ( - /* HDC hdc; handle of device context */ hDC, - /* BITMAPINFOHEADER FAR* lpbmih; addr.of header*/ &pbmi->bmiHeader, - /* DWORD dwInit; CBM_INIT to initialize bitmap */ 0, - /* const void FAR* lpvBits; address of values */ NULL, - /* BITMAPINFO FAR* lpbmi; addr.of bitmap data */ pbmi, - /* UINT fnColorUse; RGB or palette indices */ DIB_RGB_COLORS); - ReleaseDC ( handle, hDC ); - break; - } - - case WM_PAINT: - { - HDC hDC, memDC; - HANDLE oldbm; - PAINTSTRUCT ps; - - hDC = BeginPaint ( handle, &ps ); - memDC = CreateCompatibleDC(hDC); - oldbm = SelectObject(memDC, hbm); - BitBlt ( hDC, 0, 0, vio_Width, vio_Height, memDC, 0, 0, SRCCOPY); - ReleaseDC ( handle, hDC ); - SelectObject ( memDC, oldbm ); - DeleteObject ( memDC ); - EndPaint ( handle, &ps ); - } - - case WM_KEYDOWN: - switch ( wParam ) - { - case VK_ESCAPE: - ourevent.what = event_Quit; - ourevent.info = 0; - eventToProcess = 1; - break; - - case VK_F1: /* bring up help and about dialog window */ - break; - } - break; - - case WM_CHAR: - { - char c = wParam ; - int i; - - for ( i = 0; i < NUM_Translators; i++ ) - { - if ( c == trans[i].key ) - { - ourevent.what = trans[i].event_class; - ourevent.info = trans[i].event_info; - eventToProcess = 1; - return 0; - } - } - - /* unrecognized keystroke */ - ourevent.what = event_Keyboard; - ourevent.info = (int)c; - eventToProcess = 1; - } - break; - - default: - return DefWindowProc( handle, mess, wParam, lParam ); - } - - return 0; - } - -/* End */ diff --git a/Build/source/libs/freetype/test/arch/win32/makedep b/Build/source/libs/freetype/test/arch/win32/makedep deleted file mode 100755 index 7f3f19ffdc5..00000000000 --- a/Build/source/libs/freetype/test/arch/win32/makedep +++ /dev/null @@ -1,42 +0,0 @@ -# makedep -# -# This shell script creates a dependency file necessary for some compilers -# on the Windows 32-bit platform. -# -# If you run this script under non-Windows operating systems, expect -# warnings that `windows.h' can't be found. -# -# Copyright 1996-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. - -echo "\ -# This file is part of the FreeType project. -# Automatically generated, but you can customize to fit your needs. -# However, changes will be erased if not made in \`makedep'... -# -# This dependency file to be used with various Windows compilers -# has been generated automatically with the script \`makedep' on -# `date +%Y-%m-%d`. -" > depend.win - -(cd ../.. - gcc -MM -I../lib/arch/win32 -I../lib -I../lib/extend -I. *.c | \ - sed -e "s/\.o:/.obj:/" -e "s:/:\\\\:g") >> depend.win - -echo "!ifndef __MAKE__" >> depend.win - -(cd ../.. - gcc -MM -I../lib/arch/win32 -I../lib -I../lib/extend -I. \ - arch/win32/*.c | \ - sed -e "s/^\(.*\)\.o:/arch\\\\win32\\\\\1.obj:/" \ - -e "s:/:\\\\:g") >> depend.win - -echo "!endif" >> depend.win - -# eof diff --git a/Build/source/libs/freetype/test/blitter.c b/Build/source/libs/freetype/test/blitter.c deleted file mode 100644 index 66926e1ee46..00000000000 --- a/Build/source/libs/freetype/test/blitter.c +++ /dev/null @@ -1,492 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* blitter.c: Support for blitting of bitmaps with various depth. */ -/* */ -/****************************************************************************/ - -#include "blitter.h" - - - typedef struct TBlitter_ - { - int width; /* width in pixels of the written area */ - int height; /* height in pixels of the written area */ - - int xread; /* x position of start point in read area */ - int yread; /* y position of start point in read area */ - - int xwrite; /* x position of start point in write area */ - int ywrite; /* y position of start point in write area */ - - int right_clip; /* amount of right clip */ - - char* read; /* top left corner of source map */ - char* write; /* top left corner of target map */ - - int read_line; /* byte increment to go down one row in read area */ - int write_line; /* byte increment to go down one row in write area */ - - TT_Raster_Map source; - TT_Raster_Map target; - - int source_depth; - int target_depth; - - } TBlitter; - - - static - int compute_clips( TBlitter* blit, - int x_offset, - int y_offset ) - { - int xmin, ymin, xmax, ymax, width, height, target_width; - - - /* perform clipping and setup variables */ - width = blit->source.width; - height = blit->source.rows; - - switch ( blit->source_depth ) - { - case 1: - width = (width + 7) & -8; - break; - - case 4: - width = (width + 1) & -2; - break; - } - - xmin = x_offset; - ymin = y_offset; - xmax = xmin + width-1; - ymax = ymin + height-1; - - /* clip if necessary */ - if ( width == 0 || height == 0 || - xmax < 0 || xmin >= blit->target.width || - ymax < 0 || ymin >= blit->target.rows ) - return 1; - - /* set up clipping and cursors */ - blit->yread = 0; - if ( ymin < 0 ) - { - blit->yread -= ymin; - height += ymin; - blit->ywrite = 0; - } - else - blit->ywrite = ymin; - - if ( ymax >= blit->target.rows ) - height -= ymax - blit->target.rows + 1; - - blit->xread = 0; - if ( xmin < 0 ) - { - blit->xread -= xmin; - width += xmin; - blit->xwrite = 0; - } - else - blit->xwrite = xmin; - - target_width = blit->target.width; - - switch ( blit->target_depth ) - { - case 1: - target_width = (target_width + 7) & -8; - break; - case 4: - target_width = (target_width + 1) & -2; - break; - } - - blit->right_clip = xmax - target_width + 1; - if ( blit->right_clip > 0 ) - width -= blit->right_clip; - else - blit->right_clip = 0; - - blit->width = width; - blit->height = height; - - /* set read and write to the top-left corner of the the read */ - /* and write area before clipping. */ - - blit->read = (char*)blit->source.bitmap; - blit->write = (char*)blit->target.bitmap; - - if ( blit->source.flow == TT_Flow_Up ) - { - blit->read_line = -blit->source.cols; - blit->read += (blit->source.rows-1) * blit->source.cols; - } - else - blit->read_line = blit->source.cols; - - if ( blit->target.flow == TT_Flow_Up ) - { - blit->write_line = -blit->target.cols; - blit->write += (blit->target.rows-1) * blit->target.cols; - } - else - blit->write_line = blit->target.cols; - - /* now go to the start line. Note that we do not move the */ - /* x position yet, as this is dependent on the pixel format */ - blit->read += blit->yread * blit->read_line; - blit->write += blit->ywrite * blit->write_line; - - return 0; - } - - -/**************************************************************************/ -/* */ -/* blit_bitmap_to_bitmap */ -/* */ -/**************************************************************************/ - - static - void blit_bitmap_to_bitmap( TBlitter* blit ) - { - int shift, left_clip, x, y; - unsigned char* read; - unsigned char* write; - - - left_clip = ( blit->xread > 0 ); - shift = ( blit->xwrite - blit->xread ) & 7; - - read = (unsigned char*)blit->read + (blit->xread >> 3); - write = (unsigned char*)blit->write + (blit->xwrite >> 3); - - if ( shift == 0 ) - { - y = blit->height; - do - { - unsigned char* _read = read; - unsigned char* _write = write; - - - x = blit->width; - - do - { - *_write++ |= *_read++; - x -= 8; - } while ( x > 0 ); - - read += blit->read_line; - write += blit->write_line; - y--; - } while ( y > 0 ); - } - else - { - int first, last, count; - - - first = blit->xwrite >> 3; - last = (blit->xwrite + blit->width-1) >> 3; - - count = last - first; - - if ( blit->right_clip ) - count++; - - y = blit->height; - - do - { - unsigned char* _read = read; - unsigned char* _write = write; - unsigned char old; - int shift2 = (8-shift); - - - if ( left_clip ) - old = (*_read++) << shift2; - else - old = 0; - - x = count; - while ( x > 0 ) - { - unsigned char val; - - - val = *_read++; - *_write++ |= ( (val >> shift) | old ); - old = val << shift2; - x--; - } - - if ( !blit->right_clip ) - *_write |= old; - - read += blit->read_line; - write += blit->write_line; - y--; - - } while ( y > 0 ); - } - } - - -/**************************************************************************/ -/* */ -/* blit_bitmap_to_pixmap8 */ -/* */ -/**************************************************************************/ - - static - void blit_bitmap_to_pixmap8( TBlitter* blit, - unsigned char color ) - { - int x, y; - unsigned int left_mask; - unsigned char* read; - unsigned char* write; - - - read = (unsigned char*)blit->read + (blit->xread >> 3); - write = (unsigned char*)blit->write + blit->xwrite; - - left_mask = 0x80 >> (blit->xread & 7); - - y = blit->height; - do - { - unsigned char* _read = read; - unsigned char* _write = write; - unsigned int mask = left_mask; - unsigned int val = 0; - - - x = blit->width; - do - { - if ( mask == 0x80 ) - val = *_read++; - - if ( val & mask ) - *_write = (unsigned char)color; - - mask >>= 1; - if ( mask == 0 ) - mask = 0x80; - - _write++; - x--; - } while ( x > 0 ); - - read += blit->read_line; - write += blit->write_line; - y--; - } while ( y > 0 ); - } - - -/**************************************************************************/ -/* */ -/* blit_bitmap_to_pixmap4 */ -/* */ -/**************************************************************************/ - - static - void blit_bitmap_to_pixmap4( TBlitter* blit, - unsigned char color ) - { - int x, y, phase; - unsigned int left_mask; - unsigned char* read; - unsigned char* write; - - - color = color & 15; - - read = (unsigned char*)blit->read + (blit->xread >> 3); - write = (unsigned char*)blit->write + (blit->xwrite >> 1); - - /* now begin blit */ - left_mask = 0x80 >> (blit->xread & 7); - phase = blit->xwrite & 1; - - y = blit->height; - do - { - unsigned char* _read = read; - unsigned char* _write = write; - unsigned int mask = left_mask; - int _phase = phase; - unsigned int val = 0; - - x = blit->width; - do - { - if ( mask == 0x80 ) - val = *_read++; - - if ( val & mask ) - { - if ( _phase ) - *_write = (*_write & 0xF0) | color; - else - *_write = (*_write & 0x0F) | (color << 4); - } - - mask >>= 1; - if ( mask == 0 ) - mask = 0x80; - - _write += _phase; - _phase ^= 1; - x--; - } while ( x > 0 ); - - read += blit->read_line; - write += blit->write_line; - y--; - } while ( y > 0 ); - } - - -/**************************************************************************/ -/* */ -/* blit_bitmap_to_pixmap16 */ -/* */ -/**************************************************************************/ - - static - void blit_bitmap_to_pixmap16( TBlitter* blit, - unsigned short color ) - { - int x, y; - unsigned int left_mask; - unsigned char* read; - unsigned short* write; - - - read = (unsigned char*)blit->read + (blit->xread >> 3); - write = (unsigned short*)(blit->write + blit->xwrite*2); - - left_mask = 0x80 >> (blit->xread & 7); - - y = blit->height; - do - { - unsigned char* _read = read; - unsigned short* _write = write; - unsigned int mask = left_mask; - unsigned int val = 0; - - x = blit->width; - do - { - if ( mask == 0x80 ) - val = *_read++; - - if ( val & mask ) - *_write = color; - - mask >>= 1; - if ( mask == 0 ) - mask = 0x80; - - _write++; - x--; - } while ( x > 0 ); - - read += blit->read_line; - write += blit->write_line; - y--; - } while ( y > 0 ); - } - - - /* */ - /* Blit_Bitmap */ - /* */ - /* */ - /* blit a source bitmap to a target bitmap or pixmap */ - /* */ - /* */ - /* target :: target bitmap or pixmap */ - /* source :: source bitmap (depth must be 1) */ - /* target_depth :: pixel bit depth of target map */ - /* x_offset :: horizontal offset of source in target */ - /* y_offset :: vertical offset of source in target */ - /* color :: color to use when blitting to color pixmap */ - /* */ - /* */ - /* error code. 0 means success */ - /* */ - /* */ - /* an error occurs when the target bit depth isn't supported, or */ - /* if the source's bit depth isn't 1. */ - /* */ - /* the offsets are relative to the top-left corner of the target */ - /* map. Positive y are downwards. */ - /* */ - extern - int Blit_Bitmap( TT_Raster_Map* target, - TT_Raster_Map* source, - int target_depth, - int x_offset, - int y_offset, - int color ) - { - TBlitter blit; - - - if ( !target || !source ) - return -1; - - blit.source = *source; - blit.target = *target; - blit.source_depth = 1; - blit.target_depth = target_depth; - - /* set up blitter and compute clipping. Return immediately if needed */ - if ( compute_clips( &blit, x_offset, y_offset ) ) - return 0; - - /* now perform the blit */ - switch ( target_depth ) - { - case 1: - blit_bitmap_to_bitmap( &blit ); - break; - - case 4: - blit_bitmap_to_pixmap4( &blit, (unsigned char)color ); - break; - - case 8: - blit_bitmap_to_pixmap8( &blit, (unsigned char)color ); - break; - - case 16: - blit_bitmap_to_pixmap16( &blit, (unsigned short)color ); - break; - - default: - return -2; - } - - return 0; - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/blitter.h b/Build/source/libs/freetype/test/blitter.h deleted file mode 100644 index 9fe749afa34..00000000000 --- a/Build/source/libs/freetype/test/blitter.h +++ /dev/null @@ -1,52 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* blitter.h: Support for blitting of bitmaps with various depth. */ -/* */ -/****************************************************************************/ - -#ifndef BLITTER_H -#define BLITTER_H - -#include "freetype.h" - - /* */ - /* Blit_Bitmap */ - /* */ - /* */ - /* blit a source bitmap to a target bitmap or pixmap */ - /* */ - /* */ - /* target :: target bitmap or pixmap */ - /* source :: source bitmap (depth must be 1) */ - /* target_depth :: pixel bit depth of target map */ - /* x_offset :: horizontal offset of source in target */ - /* y_offset :: vertical offset of source in target */ - /* color :: color to use when blitting to color pixmap */ - /* */ - /* */ - /* error code. 0 means success */ - /* */ - /* */ - /* an error occurs when the target bit depth isn't supported, or */ - /* if the source's bit depth isn't 1. */ - /* */ - /* the offsets are relative to the top-left corner of the target */ - /* map. Positive y are downwards. */ - /* */ - extern - int Blit_Bitmap( TT_Raster_Map* target, - TT_Raster_Map* source, - int target_depth, - int x_offset, - int y_offset, - int color ); - -#endif - - -/* End */ diff --git a/Build/source/libs/freetype/test/common.c b/Build/source/libs/freetype/test/common.c deleted file mode 100644 index 9976293dac0..00000000000 --- a/Build/source/libs/freetype/test/common.c +++ /dev/null @@ -1,276 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* common.c: Various utility functions. */ -/* */ -/****************************************************************************/ - - -/* - * This is a cheap replacement for getopt() because that routine is not - * available on some platforms and behaves differently on other platforms. - * This code was written from scratch without looking at any other - * implementation. - * - * This code is hereby expressly placed in the public domain. - * mleisher@crl.nmsu.edu (Mark Leisher) - * 10 October 1997 - */ - -#ifndef lint -#ifdef __GNUC__ - static char rcsid[] __attribute__ ((unused)) = "$Id: common.c,v 1.16 2001/12/25 20:13:04 antoineL Exp $"; -#else - static char rcsid[] = "$Id: common.c,v 1.16 2001/12/25 20:13:04 antoineL Exp $"; -#endif -#endif - -#include -#include -#include -#include - -#include "common.h" - - /* - * Externals visible to programs. - */ - - int ft_opterr = 1; - int ft_optind = 1; - char* ft_optarg; - - /* - * Internal variables that are used to detect when the global values - * need to be reset. - */ - - static int cmdac; -#ifdef __STDC__ - static const char* cmdname; - static char* const* cmdav; -#else - static char* cmdname; - static char** cmdav; -#endif - - - int -#ifdef __STDC__ - ft_getopt( int ac, char* const* av, const char* pat ) -#else - ft_getopt( ac, av, pat ) - int ac; - char** av; - char* pat; -#endif - { - int opt; -#ifdef __STDC__ - const char* p; - const char* pp; -#else - char* p; - char* pp; -#endif - - - /* - * If there is no pattern, indicate the parsing is done. - */ - if ( pat == 0 || *pat == 0 ) - return -1; - - /* - * Always reset the option argument to NULL. - */ - ft_optarg = 0; - - /* - * If the number of arguments or argument list do not match the last - * values seen, reset the internal pointers and the globals. - */ - if ( ac != cmdac || av != cmdav ) - { - ft_optind = 1; - cmdac = ac; - cmdav = av; - - /* - * Determine the command name in case it is needed for warning - * messages. - */ - for ( cmdname = 0, p = av[0]; *p; p++ ) - { - if ( *p == '/' || *p == '\\' ) - cmdname = p; - } - - /* - * Skip the path separator if the name was assigned. - */ - if ( cmdname ) - cmdname++; - else - cmdname = av[0]; - } - - /* - * If the next index is greater than or equal to the number of - * arguments, then the command line is done. - */ - if ( ft_optind >= ac ) - return -1; - - /* - * Test the next argument for one of three cases: - * 1. The next argument does not have an initial '-'. - * 2. The next argument is '-'. - * 3. The next argument is '--'. - * - * In either of these cases, command line processing is done. - */ - if ( av[ft_optind][0] != '-' || - strcmp( av[ft_optind], "-" ) == 0 || - strcmp( av[ft_optind], "--" ) == 0 ) - return -1; - - /* - * Point at the next command line argument and increment the - * command line index. - */ - p = av[ft_optind++]; - - /* - * Look for the first character of the command line option. - */ - for ( opt = *(p + 1), pp = pat; *pp && *pp != opt; pp++ ) - ; - - /* - * If nothing in the pattern was recognized, then issue a warning - * and return a '?'. - */ - if ( *pp == 0 ) - { - if ( ft_opterr ) - fprintf( stderr, "%s: illegal option -- %c\n", cmdname, opt ); - return '?'; - } - - /* - * If the option expects an argument, get it. - */ - if ( *(pp + 1) == ':' && (ft_optarg = av[ft_optind]) == 0 ) - { - /* - * If the option argument is NULL, issue a warning and return a '?'. - */ - if ( ft_opterr ) - fprintf( stderr, "%s: option requires an argument -- %c\n", - cmdname, opt ); - opt = '?'; - } - else if ( ft_optarg ) - /* - * Increment the option index past the argument. - */ - ft_optind++; - - /* - * Return the option character. - */ - return opt; - } - - -/****************************************************************************/ -/* */ -/* ft_basename(): */ -/* */ -/* a stupid but useful function... */ -/* */ -/* rewritten by DavidT to get rid of GPLed programs in the FreeType engine. */ -/* */ -/****************************************************************************/ - - char* -#ifdef __STDC__ - ft_basename( const char* name ) -#else - ft_basename( name ) - char* name; -#endif - { -#ifdef __STDC__ - const char* base; - const char* current; -#else - char* base; - char* current; -#endif - char c; - - - base = name; - current = name; - - c = *current; - - while ( c ) - { - if ( c == '/' || c == '\\' ) - base = current + 1; - - current++; - c = *current; - } - - return (char*)base; - } - -/****************************************************************************/ - - void -#ifdef __STDC__ - Panic( const char* fmt, ... ) -#else - Panic( fmt ) - const char* fmt; -#endif - { - va_list ap; - - - va_start( ap, fmt ); - vprintf( fmt, ap ); - va_end( ap ); - - exit( EXIT_FAILURE ); - } - -/****************************************************************************/ - - void -#ifdef __STDC__ - separator_line( FILE* out, const int length ) -#else - separator_line( out, length ) - FILE* out; - int length; -#endif - { - int i; - - - for ( i = 0; i < length; i++ ) - fputc( '-', out ); - fprintf( out, "\n\n" ); - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/common.h b/Build/source/libs/freetype/test/common.h deleted file mode 100644 index 16e42416890..00000000000 --- a/Build/source/libs/freetype/test/common.h +++ /dev/null @@ -1,81 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* common.h: Various utility functions. */ -/* */ -/****************************************************************************/ - -#ifndef COMMON_H -#define COMMON_H - -#include - - -/* - * This is a cheap replacement for getopt() because that routine is not - * available on some platforms and behaves differently on other platforms. - * - * This code is hereby expressly placed in the public domain. - * mleisher@crl.nmsu.edu (Mark Leisher) - * 10 October 1997 - */ - -#ifdef __cplusplus - extern "C" { -#endif - - extern int ft_opterr; - extern int ft_optind; - extern char* ft_optarg; - - extern int ft_getopt( -#ifdef __STDC__ - int argc, - char* const* argv, - const char* pattern -#endif - ); - - -/****************************************************************************/ -/* */ -/* Stupid but useful functions... */ -/* */ -/* rewritten by DavidT to get rid of GPLed programs in the FreeType engine. */ - - - extern char* ft_basename( -#ifdef __STDC__ - const char* name -#endif - ); - - - /* print a message and exit */ - extern void Panic( -#ifdef __STDC__ - const char* fmt, ... -#endif - ); - - - extern void separator_line( -#ifdef __STDC__ - FILE* out, - const int length -#endif - ); - - -#ifdef __cplusplus - } -#endif - -#endif /* COMMON_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/test/display.c b/Build/source/libs/freetype/test/display.c deleted file mode 100644 index 7711b33ccdc..00000000000 --- a/Build/source/libs/freetype/test/display.c +++ /dev/null @@ -1,299 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* display.c: Display component used by all test programs. */ -/* */ -/* This file is used to display glyphs and strings in a target window */ -/* using the graphics drivers provided by gmain.c, gevents.h, etc. */ -/* */ -/* Its role is to be shared and heavely commented to let people understand */ -/* how we do the job... */ -/* */ -/****************************************************************************/ - -#include /* malloc() and free() */ -#include /* memset() */ - -#include "display.h" -#include "freetype.h" -#include "gmain.h" - - /* The target bitmap or pixmap -- covering the full display window/screen */ - TT_Raster_Map Bit; - - /* A smaller intermediate bitmap used to render individual glyphs when */ - /* font smoothing mode is activated. It is then or-ed to `Bit'. */ - TT_Raster_Map Small_Bit; - -/* The magic of or-ing gray-levels: */ -/* */ -/* When gray-level mode (a.k.a. font-smoothing) is on, `Bit' is an 8-bit */ -/* pixmap of the size of the display window or screen. */ -/* */ -/* The gray-level palette to use for display is system-dependent, and */ -/* given by the "gray_palette" variable defined in 'gmain.c'. It is */ -/* set up by the graphics driver, and we cannot assume anything about its */ -/* values. */ -/* */ -/* The function TT_Get_Glyph_Pixmap() can use any palette to render each */ -/* individual glyph, however we'll later need to "or" the glyph to */ -/* the display pixmap `Bit' to be able to form strings of text by */ -/* juxtaposing several glyphs together. */ -/* */ -/* If we use the gray_palette directly, we'll encounter trouble doing */ -/* the "or". Example: */ -/* */ -/* Suppose that gray_palette = { 0, 32, 64, 128, 255 } */ -/* */ -/* Let's render a glyph with this palette and "or" it to */ -/* the `Bit' pixmap. If, by chance, we superpose two distinct non-zero */ -/* colors, we will get strange results, like 32+64 = 96, which isn't in */ -/* our gray palette! */ -/* */ -/* There are two ways to solve this problem: */ -/* */ -/* - perform a "slow or" where we check all possible combinations */ -/* and solve conflicts. */ -/* */ -/* - render all pixmaps using a special "virtual" palette that eases */ -/* the "oring" process, then convert the whole display pixmap to */ -/* "display" colors at once. */ -/* */ -/* We choose the second solution, of course; this means that: */ -/* */ -/* - the virtual palette used is simply = { 0, 1, 2, 3, 4 }, defined in */ -/* the variable "palette" below. The `Bit' and `Small_Bit' pixmaps will */ -/* always contain pixels within these values, with the exception of */ -/* post-render display, where `Bit' will be converted to display values */ -/* by the Convert_To_Display_Palette() function. */ -/* */ -/* - as or-ing values between 0 and 4 will give us values between */ -/* 0 and 7, we use a second palette, called "bounding_palette" */ -/* to maintain all values within the virtual palette. */ -/* */ -/* in effect bounding_palette = { 0, 1, 2, 3, 4, 4, 4, 4 } */ -/* */ -/* which means that (3|4) == 7 => 4 after bounding */ -/* */ - - /* the virtual palette */ - unsigned char virtual_palette[5] = { 0, 1, 2, 3, 4 }; - - /* Or-ing the possible palette values gets us from 0 to 7 */ - /* We must bound check these... */ - unsigned char bounded_palette[8] = { 0, 1, 2, 3, 4, 4, 4, 4 }; - - - /* Clears the Bit bitmap/pixmap */ - void Clear_Display( void ) - { - memset( Bit.bitmap, 0, Bit.size ); - } - - - /* Clears the Small_Bit pixmap */ - void Clear_Small( void ) - { - memset( Small_Bit.bitmap, 0, Small_Bit.size ); - } - - - /* Initialize the display bitmap named Bit */ - int Init_Display( int font_smoothing ) - { - Bit.rows = vio_Height; /* the whole window */ - Bit.width = vio_Width; - Bit.flow = TT_Flow_Up; - - if ( font_smoothing ) - Bit.cols = (Bit.width+3) & -4; /* must be 32-bits aligned */ - else - Bit.cols = (Bit.width+7) >> 3; - - Bit.size = (long)Bit.cols * Bit.rows; - - if ( Bit.bitmap ) - free( Bit.bitmap ); - Bit.bitmap = malloc( (int)Bit.size ); - if ( !Bit.bitmap ) - return -1; - - Clear_Display(); - return 0; - } - - - /* Convert the display pixmap from virtual to display palette */ - void Convert_To_Display_Palette( void ) - { - unsigned char* p; - long i; - - p = Bit.bitmap; - for ( i = 0; i < Bit.size; i++ ) - { - *p = gray_palette[(int)*p]; - p++; - } - } - - - /* Init Small Bitmap */ - int Init_Small( int x_ppem, int y_ppem ) - { - if ( Small_Bit.bitmap ) - free( Small_Bit.bitmap ); - - Small_Bit.rows = y_ppem + 32; - Small_Bit.width = x_ppem + 32; - Small_Bit.cols = ( Small_Bit.width+3 ) & -4; /* pad to 32-bits */ - Small_Bit.flow = TT_Flow_Up; - Small_Bit.size = (long)Small_Bit.rows * Small_Bit.cols; - - Small_Bit.bitmap = malloc( (int)Small_Bit.size ); - if ( Small_Bit.bitmap ) - return -1; - - Clear_Small(); - return 0; - } - - - /* Render a single glyph into the display bit/pixmap */ - /* */ - /* Note that in b/w mode, we simply render the glyph directly into */ - /* the display map, as the scan-line converter or-es the glyph into */ - /* the target bitmap. */ - /* */ - /* In gray mode, however, the glyph is first rendered indivdually in */ - /* the Small_Bit map, then 'or-ed' with bounding into the display */ - /* pixmap. */ - /* */ - - TT_Error Render_Single_Glyph( int font_smoothing, - TT_Glyph glyph, - int x_offset, - int y_offset ) - { - if ( !font_smoothing ) - return TT_Get_Glyph_Bitmap( glyph, &Bit, - (long)x_offset*64, (long)y_offset*64 ); - else - { - TT_Glyph_Metrics metrics; - - TT_Error error; - TT_F26Dot6 x, y, xmin, ymin, xmax, ymax; - int ioff, iread; - char *off, *read, *_off, *_read; - - - /* font-smoothing mode */ - - /* we begin by grid-fitting the bounding box */ - TT_Get_Glyph_Metrics( glyph, &metrics ); - - xmin = metrics.bbox.xMin & -64; - ymin = metrics.bbox.yMin & -64; - xmax = (metrics.bbox.xMax+63) & -64; - ymax = (metrics.bbox.yMax+63) & -64; - - /* now render the glyph in the small pixmap */ - - /* IMPORTANT NOTE: the offset parameters passed to the function */ - /* TT_Get_Glyph_Bitmap() must be integer pixel values, i.e., */ - /* multiples of 64. HINTING WILL BE RUINED IF THIS ISN'T THE CASE! */ - /* This is why we _did_ grid-fit the bounding box, especially xmin */ - /* and ymin. */ - - Clear_Small(); - error = TT_Get_Glyph_Pixmap( glyph, &Small_Bit, -xmin, -ymin ); - if ( error ) - return error; - - /* Blit-or the resulting small pixmap into the biggest one */ - /* We do that by hand, and provide also clipping. */ - - xmin = (xmin >> 6) + x_offset; - ymin = (ymin >> 6) + y_offset; - xmax = (xmax >> 6) + x_offset; - ymax = (ymax >> 6) + y_offset; - - /* Take care of comparing xmin and ymin with signed values! */ - /* This was the cause of strange misplacements when Bit.rows */ - /* was unsigned. */ - - if ( xmin >= (int)Bit.width || - ymin >= (int)Bit.rows || - xmax < 0 || - ymax < 0 ) - return TT_Err_Ok; /* nothing to do */ - - /* Note that the clipping check is performed _after_ rendering */ - /* the glyph in the small bitmap to let this function return */ - /* potential error codes for all glyphs, even hidden ones. */ - - /* In exotic glyphs, the bounding box may be larger than the */ - /* size of the small pixmap. Take care of that here. */ - - if ( xmax-xmin + 1 > Small_Bit.width ) - xmax = xmin + Small_Bit.width - 1; - - if ( ymax-ymin + 1 > Small_Bit.rows ) - ymax = ymin + Small_Bit.rows - 1; - - /* set up clipping and cursors */ - - iread = 0; - if ( ymin < 0 ) - { - iread -= ymin * Small_Bit.cols; - ioff = 0; - ymin = 0; - } - else - ioff = ymin * Bit.cols; - - if ( ymax >= Bit.rows ) - ymax = Bit.rows-1; - - if ( xmin < 0 ) - { - iread -= xmin; - xmin = 0; - } - else - ioff += xmin; - - if ( xmax >= Bit.width ) - xmax = Bit.width - 1; - - _read = (char*)Small_Bit.bitmap + iread; - _off = (char*)Bit.bitmap + ioff; - - for ( y = ymin; y <= ymax; y++ ) - { - read = _read; - off = _off; - - for ( x = xmin; x <= xmax; x++ ) - { - *off = bounded_palette[*off | *read]; - off++; - read++; - } - _read += Small_Bit.cols; - _off += Bit.cols; - } - - return TT_Err_Ok; - } - } - - - -/* End */ diff --git a/Build/source/libs/freetype/test/display.h b/Build/source/libs/freetype/test/display.h deleted file mode 100644 index d4c00f87df5..00000000000 --- a/Build/source/libs/freetype/test/display.h +++ /dev/null @@ -1,73 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* display.h: Display component interface used by test programs */ -/* */ -/* This file is used to display glyphs and strings in a target window */ -/* using the graphics drivers provided by gmain.c, gevents.h, etc. */ -/* */ -/* Its role is to be shared and heavely commented to let people understand */ -/* how we do the job... */ -/* */ -/* See comments in display.c for a full description! */ -/* */ -/****************************************************************************/ - -#ifndef DISPLAY_H -#define DISPLAY_H - -#include "freetype.h" /* TT_Raster_Map */ - - /* The target bitmap or pixmap -- covering the full display window/screen */ - extern TT_Raster_Map Bit; - - /* A smaller intermediate bitmap used to render individual glyphs when */ - /* font smoothing mode is activated. It is then or-ed to `Bit'. */ - extern TT_Raster_Map Small_Bit; - - /* the virtual palette */ - extern unsigned char virtual_palette[5]; - - /* Or-ing the possible palette values gets us from 0 to 7 */ - /* We must bound check these... */ - extern unsigned char bounded_palette[8]; - - - /* Clears the Bit bitmap/pixmap */ - void Clear_Display( void ); - - /* Clears the Small_Bit pixmap */ - void Clear_Small( void ); - - /* Initialize the display bitmap named Bit */ - int Init_Display( int font_smoothing ); - - /* Initialize Small Bitmap */ - int Init_Small( int x_ppem, int y_ppem ); - - /* Convert the display pixmap from virtual to display palette */ - void Convert_To_Display_Palette( void ); - - /* Render a single glyph into the display bit/pixmap. */ - /* */ - /* Note that in b/w mode, we simply render the glyph directly into */ - /* the display map, as the scan-line converter or-es the glyph into */ - /* the target bitmap. */ - /* */ - /* In gray mode, however, the glyph is first rendered individually in */ - /* the Small_Bit map, then 'or-ed' with bounding into the display */ - /* pixmap. */ - /* */ - TT_Error Render_Single_Glyph( int font_smoothing, - TT_Glyph glyph, - int x_offset, - int y_offset ); - -#endif /* DISPLAY_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/test/fdebug.c b/Build/source/libs/freetype/test/fdebug.c deleted file mode 100644 index f2abd1ec904..00000000000 --- a/Build/source/libs/freetype/test/fdebug.c +++ /dev/null @@ -1,286 +0,0 @@ -/****************************************************************************} -{* *} -{* The FreeType project - a Free and Portable Quality TrueType Renderer. *} -{* *} -{* Copyright 1996-2001 by *} -{* D. Turner, R.Wilhelm, and W. Lemberg *} -{* *} -{* fdebug : A very simple TrueType bytecode debugger. *} -{* *} -{* NOTE : You must compile the interpreter with the DEBUG_INTERPRETER *} -{* macro defined in order to link this program! *} -{* *} -{****************************************************************************/ - -#include /* libc ANSI */ -#include -#include -#include - -#include "freetype.h" -#include "tttypes.h" -#include "ttdebug.h" -#include "ttobjs.h" - - -#ifdef UNIX -#ifndef HAVE_POSIX_TERMIOS -#include -#include -#else -#ifndef HAVE_TCGETATTR -#define HAVE_TCGETATTR -#endif /* HAVE_TCGETATTR */ -#ifndef HAVE_TCSETATTR -#define HAVE_TCSETATTR -#endif /* HAVE_TCSETATTR */ -#include -#endif /* HAVE_POSIX_TERMIOS */ -#endif - - /* MAGIC: This variable is only defined in ttinterp.c if the */ - /* macro DEBUG_INTERPRETER is set. It specifies the code */ - /* range to debug. By default, it is TT_CodeRange_Glyph. */ - /* */ - extern - int debug_coderange; - - -#define Font_Buff_Size 256000 /* this buffer holds all */ - /* font specific data. */ - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - TT_Error error; - - TT_Face_Properties properties; - - int num_glyphs; - int ptsize; - - Int Fail; - Int Num; - int mode = 2; - unsigned char autorun; - -/********************************************************************* - * - * Usage : print usage message - * - *********************************************************************/ - - static - void Usage( const char* execname ) - { - TT_Message( "fdebug: a simple TrueType bytecode debugger - part of the FreeType project\n" ); - TT_Message( "--------------------------------------------------------------------------\n\n"); - TT_Message( "Usage: %s glyphnum ppem fontname[.ttf]\n", execname ); - TT_Message( " or %s --cvt ppem fontname[.ttf]\n", execname ); - TT_Message( " or %s --font fontname[.ttf]\n\n", execname ); - exit( EXIT_FAILURE ); - } - - -/********************************************************************* - * - * Init_Keyboard : set the input file descriptor to char-by-char - * mode on Unix.. - * - *********************************************************************/ - -#ifdef UNIX - - struct termios old_termio; - - static - void Init_Keyboard( void ) - { - struct termios termio; - - -#ifndef HAVE_TCGETATTR - ioctl( 0, TCGETS, &old_termio ); -#else - tcgetattr( 0, &old_termio ); -#endif - - termio = old_termio; - - termio.c_lflag &= ~(ICANON+ECHO+ECHOE+ECHOK+ECHONL+ECHOKE); - -#ifndef HAVE_TCSETATTR - ioctl( 0, TCSETS, &termio ); -#else - tcsetattr( 0, TCSANOW, &termio ); -#endif - } - - static - void Reset_Keyboard( voi ) - { -#ifndef HAVE_TCSETATTR - ioctl( 0, TCSETS, &old_termio ); -#else - tcsetattr( 0, TCSANOW, &old_termio ); -#endif - - } - -#else - - static - void Init_Keyboard( void ) - { - } - - static - void Reset_Keyboard( voi ) - { - } - -#endif - - static - void Print_Banner( void ) - { - TT_Message( "fdebug - a simple TrueType bytecode debugger for FreeType\n" ); - TT_Message( "------------------------------------------------------------\n" ); - TT_Message( "type '?' for help - copyright 1996-2000 the FreeType Project\n\n" ); - } - - - static - void Error( const char* message, - const char* filename ) - { - static char tempstr[256]; - - sprintf( tempstr, "ERROR (%s): %s\n", filename, message ); - TT_Message( tempstr ); - - sprintf( tempstr, " code = 0x%04lx\n", error ); - TT_Message( tempstr ); - - Reset_Keyboard(); - exit( EXIT_FAILURE ); - } - - - static - void Init_Face( const char* filename ) - { - error = TT_Init_FreeType(&engine); - if (error) Error( "could not initialise FreeType", filename ); - - /* open face object */ - error = TT_Open_Face( engine, filename, &face ); - if (error) Error( "could not find or open file", filename ); - - /* get properties */ - TT_Get_Face_Properties( face, &properties ); - num_glyphs = properties.num_Glyphs; - - /* create instance */ - error = TT_New_Instance( face, &instance ); - if (error) Error( "could not create instance", filename ); - - error = TT_New_Glyph( face, &glyph ); - if (error) Error( "could not create glyph container", filename ); - - TT_Set_Instance_Resolutions( instance, 96, 96 ); - - error = TT_Set_Instance_CharSize( instance, ptsize << 6 ); - if (error) Error( "could not set text size", filename ); - } - - - int main( int argc, char** argv ) - { - int i; - char filename[128+4]; - char* execname; - - - execname = argv[0]; - if ( argc < 2 ) - Usage( execname ); - - if ( strcmp( argv[1], "--font" ) == 0 ) - { - debug_coderange = TT_CodeRange_Font; - mode = 0; - argc--; - argv++; - } - else if ( strcmp( argv[1], "--cvt" ) == 0 ) - { - debug_coderange = TT_CodeRange_Cvt; - argv++; - argc--; - mode = 1; - } - else if ( sscanf( argv[1], "%d", &Num ) == 1 ) - { - mode = 2; - argv++; - argc--; - } - else - Usage( execname ); - - /* read the point size for cvt and glyph modes */ - if (mode > 0) - { - if ( sscanf( argv[1], "%d", &ptsize ) != 1 ) - Usage( execname ); - argc--; - argv++; - } - - if ( argc != 2 ) - Usage(execname); - - i = strlen( argv[1] ); - while ( i > 0 && argv[1][i] != '\\' ) - { - if ( argv[1][i] == '.' ) - i = 0; - i--; - } - - filename[128] = 0; - - strncpy( filename, argv[1], 128 ); - if ( i >= 0 ) - strncpy( filename + strlen(filename), ".ttf", 4 ); - - Init_Keyboard(); - - if (mode == 2) - { - Init_Face( filename ); - Print_Banner(); - - error = TT_Load_Glyph( instance, glyph, Num, TTLOAD_DEFAULT ); - if (error) Error( "Error during bytecode execution", filename ); - } - else - { - Print_Banner(); - Init_Face( filename ); - } - - TT_Close_Face( face ); - TT_Done_FreeType(engine); - - Reset_Keyboard(); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/ftdump.c b/Build/source/libs/freetype/test/ftdump.c deleted file mode 100644 index 2ff73dc4d4c..00000000000 --- a/Build/source/libs/freetype/test/ftdump.c +++ /dev/null @@ -1,1146 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftdump: Simple TrueType font file resource profiler. */ -/* */ -/* This program dumps various properties of a given font file. */ -/* */ -/* */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include -#include -#include - -#include "common.h" -#include "freetype.h" -#include "ftxcmap.h" -#include "ftxopen.h" /* TrueType Open support */ -#include "ftxsbit.h" /* embedded bitmap support */ - -/* - * The following comment should be ignored. The "ttobjs.h" file does - * already include ft_conf.h. - * - * ------------------------------------------------------------------ - * - * IGNORE> Basically, an external program using FreeType shouldn't depend on an - * IGNORE> internal file of the FreeType library, especially not on ft_conf.h -- but - * IGNORE> to avoid another configure script which tests for the existence of the - * IGNORE> i18n stuff we include ft_conf.h here since we can be sure that our test - * IGNORE> programs use the same configuration options as the library itself. - */ - -#include "ttobjs.h" /* We're going to access internal tables directly */ -#include "ttmemory.h" /* We use FREE() to satisfy -DDEBUG_MEMORY */ - -#ifdef HAVE_LIBINTL_H - -#ifdef HAVE_LOCALE_H -#include -#endif - -#include "ftxerr18.h" -#include -#else -#define gettext( x ) ( x ) -#endif - - - TT_Error error; - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Instance_Metrics imetrics; - TT_Outline outline; - TT_Glyph_Metrics metrics; - - TT_Face_Properties properties; - - int num_glyphs; - int ptsize; - - int Fail; - int Num; - - int flag_memory = 1; - int flag_names = 1; - int flag_encodings = 1; - int flag_cmap = 1; - int flag_sbits = 1; - int flag_ttopen = 1; - -#if defined( FREETYPE_DLL ) || defined( TT_CONFIG_OPTION_THREAD_SAFE ) - - /* If the library is linked as a DLL, TTMemory_Allocated() */ - /* (which is not exported) cannot be accessed. */ - /* In this case, some compilers report an error because */ - /* they try to link against a non-existing symbol. */ - /* */ - /* We thus avoid the external reference on these compilers. */ - - #define TTMemory_Allocated 0L - -#else - extern long TTMemory_Allocated; -#endif - - long org_memory, old_memory, cur_memory; - - const char* Apple_Encodings[33] = - { - "Roman", "Japanese", "Chinese", "Korean", "Arabic", "Hebrew", - "Greek", "Russian", "RSymbol", "Devanagari", "Gurmukhi", - "Gujarati", "Oriya", "Bengali", "Tamil", "Telugu", "Kannada", - "Malayalam", "Sinhalese", "Burmese", "Khmer", "Tai", "Laotian", - "Georgian", "Armenian", "Maldivian/Simplif. Chinese", "Tibetan", - "Mongolian", "Geez", "Slavic", "Vietnamese", "Sindhi", "Uninterpreted" - }; - - struct - { - long initial_overhead; - long face_object; - long glyph_object; - long first_instance; - long second_instance; - - } memory_footprint; - - - /* We ignore error message strings with this function */ - -#ifndef HAVE_LIBINTL_H - static char* - TT_ErrToString18( TT_Error error ) - { - static char temp[32]; - - - sprintf( temp, "0x%04lx", error ); - return temp; - } -#endif - - - void - Save_Memory( long* var ) - { - *var = TTMemory_Allocated - old_memory; - old_memory += *var; - } - -#define FOOTPRINT( field ) Save_Memory( &memory_footprint.field ) - - - static void - Print_Mem( long val, char* string ) - { - printf( "%6ld Bytes (%4ld kByte): %s\n", - val, - ( val + 1023L ) / 1024, - string ); - } - -#define PRINT_MEM( field, string ) \ - Print_Mem( memory_footprint.field, string ) - - - /* Print the memory footprint */ - - void - Print_Memory( void ) - { - /* create glyph */ - error = TT_New_Glyph( face, &glyph ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create glyph container.\n" ) ); - goto Failure; - } - - FOOTPRINT( glyph_object ); - - /* create instance */ - error = TT_New_Instance( face, &instance ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create instance.\n" ) ); - goto Failure; - } - - FOOTPRINT( first_instance ); - - error = TT_New_Instance( face, &instance ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create second instance.\n" ) ); - goto Failure; - } - - FOOTPRINT( second_instance ); - - printf( gettext( "Memory footprint statistics:\n" ) ); - separator_line( stdout, 78 ); - - /* NOTE: In our current implementation, the face's execution */ - /* context object is created lazily with the first */ - /* instance. However, all later instances share the */ - /* the same context. */ - - PRINT_MEM( face_object, gettext( "face object" ) ); - PRINT_MEM( glyph_object, gettext( "glyph object" ) ); - PRINT_MEM( second_instance, gettext( "instance object" ) ); - - Print_Mem( memory_footprint.first_instance - - memory_footprint.second_instance, - gettext( "exec. context object" ) ); - - separator_line( stdout, 78 ); - - Print_Mem( memory_footprint.face_object + - memory_footprint.glyph_object + - memory_footprint.first_instance, - gettext( "total memory usage" ) ); - - printf( "\n" ); - - return; - - Failure: - fprintf( stderr, " " ); - Panic( gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - } - - - static char name_buffer[257]; - static int name_len = 0; - - - static char* - LookUp_Name( int index ) - { - unsigned short i, n; - - unsigned short platform, encoding, language, id; - char* string; - unsigned short string_len; - - int j, found; - - - n = properties.num_Names; - - for ( i = 0; i < n; i++ ) - { - TT_Get_Name_ID( face, i, &platform, &encoding, &language, &id ); - TT_Get_Name_String( face, i, &string, &string_len ); - - if ( id == index ) - { - - /* The following code was inspired from Mark Leisher's */ - /* ttf2bdf package */ - - found = 0; - - /* Try to find a Microsoft English name */ - - if ( platform == 3 ) - for ( j = 1; j >= 0; j-- ) - if ( encoding == j ) /* Microsoft ? */ - if ( (language & 0x3FF) == 0x009 ) /* English language */ - { - found = 1; - break; - } - - if ( !found && platform == 0 && language == 0 ) - found = 1; - - /* Found a Unicode Name. */ - - if ( found ) - { - if ( string_len > 512 ) - string_len = 512; - - name_len = 0; - - for ( i = 1; i < string_len; i += 2 ) - name_buffer[name_len++] = string[i]; - - name_buffer[name_len] = '\0'; - - return name_buffer; - } - } - } - - /* Not found */ - return NULL; - } - - - static void - Print_Names( void ) - { - printf( gettext( "font name table entries\n" ) ); - separator_line( stdout, 78 ); - - if ( LookUp_Name( 4 ) ) - printf( "%s - ", name_buffer ); - - if ( LookUp_Name( 5 ) ) - printf( "%s\n\n", name_buffer ); - - if ( LookUp_Name( 6 ) ) - printf( gettext( "PostScript name: %s\n\n" ), name_buffer ); - - if ( LookUp_Name( 0 ) ) - printf( "%s\n\n", name_buffer ); - - if ( LookUp_Name( 7 ) ) - printf( name_buffer ); - - printf( "\n" ); - separator_line( stdout, 78 ); - } - - - static void - Print_Encodings( void ) - { - unsigned short n, i; - unsigned short platform, encoding; - char* platStr, *encoStr; - - char tempStr[128]; - - - printf( gettext( "character map encodings\n" ) ); - separator_line( stdout, 78 ); - - n = properties.num_CharMaps; - if ( n == 0 ) - { - printf( gettext( - "The file doesn't seem to have any encoding table.\n" ) ); - return; - } - - printf( gettext( "There are %hu encodings:\n\n" ), n ); - - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - printf( gettext( "encoding %2u: " ), i ); - - platStr = encoStr = NULL; - - switch ( platform ) - { - case TT_PLATFORM_APPLE_UNICODE: - platStr = "Apple Unicode"; - switch ( encoding ) - { - case TT_APPLE_ID_DEFAULT: - encoStr = ""; - break; - - case TT_APPLE_ID_UNICODE_1_1: - encoStr = "(v.1.1)"; - break; - - case TT_APPLE_ID_ISO_10646: - encoStr = "(ISO 10646-1:1993)"; - break; - - case TT_APPLE_ID_UNICODE_2_0: - encoStr = "(v.2.0)"; - break; - - default: - sprintf( tempStr, gettext( "Unknown value %hu" ), encoding ); - encoStr = tempStr; - } - break; - - case TT_PLATFORM_MACINTOSH: - platStr = "Apple"; - if ( encoding > 32 ) - { - sprintf( tempStr, gettext( "Unknown value %hu" ), encoding ); - encoStr = tempStr; - } - else - encoStr = (char*)Apple_Encodings[encoding]; - break; - - case TT_PLATFORM_ISO: - platStr = "Iso"; - switch ( encoding ) - { - case TT_ISO_ID_7BIT_ASCII: - platStr = "Ascii"; - encoStr = "7-bit"; - break; - - case TT_ISO_ID_10646: - encoStr = "10646"; - break; - - case TT_ISO_ID_8859_1: - encoStr = "8859-1"; - break; - - default: - sprintf( tempStr, "%hu", encoding ); - encoStr = tempStr; - } - break; - - case TT_PLATFORM_MICROSOFT: - platStr = "Windows"; - switch ( encoding ) - { - case TT_MS_ID_SYMBOL_CS: - encoStr = "Symbol"; - break; - - case TT_MS_ID_UNICODE_CS: - encoStr = "Unicode"; - break; - - case TT_MS_ID_SJIS: - encoStr = "Shift-JIS"; - break; - - case TT_MS_ID_GB2312: - encoStr = "GB2312"; - break; - - case TT_MS_ID_BIG_5: - encoStr = "Big 5"; - break; - - case TT_MS_ID_WANSUNG: - encoStr = "WanSung"; - break; - - case TT_MS_ID_JOHAB: - encoStr = "Johab"; - break; - - case TT_MS_ID_UCS_4: - encoStr = "UCS-4"; - break; - - default: - sprintf( tempStr, gettext( "Unknown value %hu" ), encoding ); - encoStr = tempStr; - } - break; - - default: - sprintf( tempStr, "%hu - %hu", platform, encoding ); - platStr = gettext( "Unknown" ); - encoStr = tempStr; - } - - printf( "%s %s\n", platStr, encoStr ); - } - - printf( "\n" ); - separator_line( stdout, 78 ); - } - - - static void - Print_Cmap( void ) - { - TT_CharMap charmap; - TT_UShort glyph_index; - TT_Long char_index; - unsigned short n, i; - unsigned short platform, encoding; - - - printf( gettext( "ftxcmap test\n" ) ); - separator_line( stdout, 78 ); - - n = properties.num_CharMaps; - if ( n == 0 ) - { - printf( gettext( - "The file doesn't seem to have any encoding table.\n" ) ); - return; - } - - printf( gettext( "There are %hu encodings:\n\n" ), n ); - - for ( i = 0; i < n; i++ ) - { - - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - printf( gettext( "encoding %2u:\n" ), i ); - - TT_Get_CharMap( face, i, &charmap); - - char_index = TT_CharMap_First( charmap, &glyph_index ); - printf( gettext( "first: glyph index %hu, character code 0x%lx\n" ), - glyph_index, char_index ); - - char_index = TT_CharMap_Next( charmap, char_index, &glyph_index ); - printf( gettext( "next: glyph index %hu, character code 0x%lx\n" ), - glyph_index, char_index ); - - char_index = TT_CharMap_Last( charmap, &glyph_index ); - printf( gettext( "last: glyph index %hu, character code 0x%lx\n" ), - glyph_index, char_index ); - } - - printf( "\n" ); - separator_line( stdout, 78 ); - } - - - static void - Print_SBits( void ) - { - TT_EBLC eblc; - TT_Error error; - - - error = TT_Get_Face_Bitmaps( face, &eblc ); - if ( error == TT_Err_Table_Missing ) - return; - if ( error ) - { - fprintf( stderr, gettext( - "Error while retrieving embedded bitmaps table.\n" ) ); - goto Failure; - } - - printf( gettext( "embedded bitmap table\n" ) ); - separator_line( stdout, 78 ); - - printf( gettext( " version of embedded bitmap table: 0x%lx\n" ), - eblc.version ); - printf( gettext( " number of embedded bitmap strikes: %lu\n" ), - eblc.num_strikes ); - - { - TT_SBit_Strike* strike = eblc.strikes; - int count = 0; - - - for ( ; count < eblc.num_strikes; count++, strike++ ) - { - printf( gettext( " bitmap strike %hu/%lu: " ), - count + 1, eblc.num_strikes ); - - printf( gettext( "%hux%hu pixels, %hu-bit depth, glyphs [%hu..%hu]\n" ), - strike->x_ppem, strike->y_ppem, strike->bit_depth, - strike->start_glyph, strike->end_glyph ); - { - TT_SBit_Range* range = strike->sbit_ranges; - TT_SBit_Range* limit = range + strike->num_ranges; - - - for ( ; range < limit; range++ ) - printf( gettext( " range format (%hu:%hu) glyphs %hu..%hu\n" ), - range->index_format, - range->image_format, - range->first_glyph, - range->last_glyph ); - } - } - } - printf( "\n" ); - separator_line( stdout, 78 ); - - return; - - Failure: - fprintf( stderr, " " ); - Panic( gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - } - - -#define TAG2STRING( t, s ) s[0] = (char)(t >> 24), \ - s[1] = (char)(t >> 16), \ - s[2] = (char)(t >> 8), \ - s[3] = (char)(t ) - - - static void - Print_GSUB( void ) - { - TTO_GSUBHeader gsub; - TT_Error error; - - TT_UShort i; - TTO_Feature f; - TTO_Lookup* lo; - - TT_ULong *script_tag_list, *stl; - TT_ULong *language_tag_list, *ltl; - TT_ULong *feature_tag_list, *ftl; - - TT_UShort script_index, language_index, - feature_index, req_feature_index; - - char script_tag[4], language_tag[4], feature_tag[4]; - - - error = TT_Load_GSUB_Table( face, &gsub, NULL ); - if ( error == TT_Err_Table_Missing ) - return; - if ( error ) - { - fprintf( stderr, gettext( "Error while loading GSUB table.\n" ) ); - goto Failure; - } - - printf( gettext( "GSUB table\n" ) ); - separator_line( stdout, 78 ); - - error = TT_GSUB_Query_Scripts( &gsub, &script_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GSUB script list.\n" ) ); - goto Failure; - } - - stl = script_tag_list; - for ( ; *stl; stl++ ) - { - TAG2STRING( *stl, script_tag ); - - error = TT_GSUB_Select_Script( &gsub, *stl, &script_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GSUB script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - printf( gettext( " script `%4.4s' (index %hu):\n" ), - script_tag, script_index ); - - error = TT_GSUB_Query_Features( &gsub, script_index, 0xFFFF, - &feature_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GSUB default language system for script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - printf( gettext( " default language system:\n" ) ); - - ftl = feature_tag_list; - for ( ; *ftl; ftl++ ) - { - TAG2STRING( *ftl, feature_tag ); - - error = TT_GSUB_Select_Feature( &gsub, *ftl, - script_index, 0xFFFF, - &feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GSUB feature `%4.4s'\n" - "for default language system of script `%4.4s'.\n" ), - feature_tag, script_tag ); - goto Failure; - } - - printf( gettext( " feature `%4.4s' (index %hu; lookup " ), - feature_tag, feature_index ); - - f = gsub.FeatureList.FeatureRecord[feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - FREE( feature_tag_list ); - - error = TT_GSUB_Query_Languages( &gsub, script_index, - &language_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GSUB language list for script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - ltl = language_tag_list; - for ( ; *ltl; ltl++ ) - { - TAG2STRING( *ltl, language_tag ); - - error = TT_GSUB_Select_Language( &gsub, *ltl, - script_index, - &language_index, - &req_feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GSUB language `%4.4s' for script `%4.4s'.\n" ), - language_tag, script_tag ); - goto Failure; - } - - printf( gettext( " language `%4.4s' (index %hu):\n" ), - language_tag, language_index ); - - if ( req_feature_index != 0xFFFF ) - { - printf( gettext( " required feature index %hu (lookup " ), - req_feature_index ); - - f = gsub.FeatureList.FeatureRecord[req_feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - - error = TT_GSUB_Query_Features( &gsub, script_index, language_index, - &feature_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GSUB feature list\n" - "for script `%4.4s', language `%4.4s'.\n" ), - script_tag, language_tag ); - goto Failure; - } - - ftl = feature_tag_list; - for ( ; *ftl; ftl++ ) - { - TAG2STRING( *ftl, feature_tag ); - - error = TT_GSUB_Select_Feature( &gsub, *ftl, - script_index, language_index, - &feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GSUB feature `%4.4s'\n" - "for script `%4.4s', language `%4.4s'.\n" ), - feature_tag, script_tag, language_tag ); - goto Failure; - } - - printf( gettext( " feature `%4.4s' (index %hu; lookup " ), - feature_tag, feature_index ); - - f = gsub.FeatureList.FeatureRecord[feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - FREE( feature_tag_list ); - } - FREE( language_tag_list ); - } - FREE( script_tag_list ); - - printf( "\n" ); - - lo = gsub.LookupList.Lookup; - - printf( gettext( "Lookups:\n\n" ) ); - - for ( i = 0; i < gsub.LookupList.LookupCount; i++ ) - printf( gettext( " %hu: type %hu, flag 0x%x\n" ), - i, lo[i].LookupType, lo[i].LookupFlag ); - - printf( "\n" ); - separator_line( stdout, 78 ); - - return; - - Failure: - fprintf( stderr, " " ); - Panic( gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - } - - - static void - Print_GPOS( void ) - { - TTO_GPOSHeader gpos; - TT_Error error; - - TT_UShort i; - TTO_Feature f; - TTO_Lookup* lo; - - TT_ULong *script_tag_list, *stl; - TT_ULong *language_tag_list, *ltl; - TT_ULong *feature_tag_list, *ftl; - - TT_UShort script_index, language_index, - feature_index, req_feature_index; - - char script_tag[4], language_tag[4], feature_tag[4]; - - - error = TT_Load_GPOS_Table( face, &gpos, NULL ); - if ( error == TT_Err_Table_Missing ) - return; - if ( error ) - { - fprintf( stderr, gettext( "Error while loading GPOS table.\n" ) ); - goto Failure; - } - - printf( gettext( "GPOS table\n" ) ); - separator_line( stdout, 78 ); - - error = TT_GPOS_Query_Scripts( &gpos, &script_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GPOS script list.\n" ) ); - goto Failure; - } - - stl = script_tag_list; - for ( ; *stl; stl++ ) - { - TAG2STRING( *stl, script_tag ); - - error = TT_GPOS_Select_Script( &gpos, *stl, &script_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GPOS script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - printf( gettext( " script `%4.4s' (index %hu):\n" ), - script_tag, script_index ); - - error = TT_GPOS_Query_Features( &gpos, script_index, 0xFFFF, - &feature_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GPOS default language system for script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - printf( gettext( " default language system:\n" ) ); - - ftl = feature_tag_list; - for ( ; *ftl; ftl++ ) - { - TAG2STRING( *ftl, feature_tag ); - - error = TT_GPOS_Select_Feature( &gpos, *ftl, - script_index, 0xFFFF, - &feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GPOS feature `%4.4s'\n" - "for default language system of script `%4.4s'.\n" ), - feature_tag, script_tag ); - goto Failure; - } - - printf( gettext( " feature `%4.4s' (index %hu; lookup " ), - feature_tag, feature_index ); - - f = gpos.FeatureList.FeatureRecord[feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - FREE( feature_tag_list ); - - error = TT_GPOS_Query_Languages( &gpos, script_index, - &language_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GPOS language list for script `%4.4s'.\n" ), - script_tag ); - goto Failure; - } - - ltl = language_tag_list; - for ( ; *ltl; ltl++ ) - { - TAG2STRING( *ltl, language_tag ); - - error = TT_GPOS_Select_Language( &gpos, *ltl, - script_index, - &language_index, - &req_feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GPOS language `%4.4s' for script `%4.4s'.\n" ), - language_tag, script_tag ); - goto Failure; - } - - printf( gettext( " language `%4.4s' (index %hu):\n" ), - language_tag, language_index ); - - if ( req_feature_index != 0xFFFF ) - { - printf( gettext( " required feature index %hu (lookup " ), - req_feature_index ); - - f = gpos.FeatureList.FeatureRecord[req_feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - - error = TT_GPOS_Query_Features( &gpos, script_index, language_index, - &feature_tag_list ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while querying GPOS feature list\n" - "for script `%4.4s', language `%4.4s'.\n" ), - script_tag, language_tag ); - goto Failure; - } - - ftl = feature_tag_list; - for ( ; *ftl; ftl++ ) - { - TAG2STRING( *ftl, feature_tag ); - - error = TT_GPOS_Select_Feature( &gpos, *ftl, - script_index, language_index, - &feature_index ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while selecting GPOS feature `%4.4s'\n" - "for script `%4.4s', language `%4.4s'.\n" ), - feature_tag, script_tag, language_tag ); - goto Failure; - } - - printf( gettext( " feature `%4.4s' (index %hu; lookup " ), - feature_tag, feature_index ); - - f = gpos.FeatureList.FeatureRecord[feature_index].Feature; - - for ( i = 0; i < f.LookupListCount - 1; i++ ) - printf( "%hu, ", f.LookupListIndex[i] ); - printf( "%hu)\n", f.LookupListIndex[i] ); - } - FREE( feature_tag_list ); - } - FREE( language_tag_list ); - } - FREE( script_tag_list ); - - printf( "\n" ); - - lo = gpos.LookupList.Lookup; - - printf( gettext( "Lookups:\n\n" ) ); - - for ( i = 0; i < gpos.LookupList.LookupCount; i++ ) - printf( gettext( " %hu: type %hu, flag 0x%x\n" ), - i, lo[i].LookupType, lo[i].LookupFlag ); - - printf( "\n" ); - separator_line( stdout, 78 ); - - return; - - Failure: - fprintf( stderr, " " ); - Panic( gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - } - - - int - main( int argc, char** argv ) - { - int i; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - char* gt; - - -#ifdef HAVE_LIBINTL_H - setlocale( LC_ALL, "" ); - bindtextdomain( "freetype", LOCALEDIR ); - textdomain( "freetype" ); -#endif - - execname = argv[0]; - - if ( argc != 2 ) - { - gt = gettext( "ftdump: Simple TrueType Dumper -- part of the FreeType project" ); - fprintf( stderr, "%s\n", gt ); - separator_line( stderr, strlen( gt ) ); - - fprintf( stderr, gettext( "Usage: %s fontname[.ttf|.ttc]\n\n" ), - execname ); - - exit( EXIT_FAILURE ); - } - - i = strlen( argv[1] ); - while ( i > 0 && argv[1][i] != '\\' ) - { - if ( argv[1][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[1], 128 ); - strncpy( alt_filename, argv[1], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Initialize engine */ - - old_memory = 0; - - if ( (error = TT_Init_FreeType( &engine )) ) - { - fprintf( stderr, gettext( "Error while initializing engine.\n" ) ); - goto Failure; - } - - if ( (error = TT_Init_SBit_Extension( engine )) ) - { - fprintf( stderr, gettext( - "Error while initializing embedded bitmap extension.\n" ) ); - goto Failure; - } - - if ( (error = TT_Init_GSUB_Extension( engine )) ) - { - fprintf( stderr, gettext( - "Error while initializing GSUB extension.\n" ) ); - goto Failure; - } - - if ( (error = TT_Init_GPOS_Extension( engine )) ) - { - fprintf( stderr, gettext( - "Error while initializing GPOS extension.\n" ) ); - goto Failure; - } - - FOOTPRINT( initial_overhead ); - - /* Open and Load face */ - - error = TT_Open_Face( engine, filename, &face ); - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( gettext( "Could not find or open %s.\n" ), filename ); - if ( error ) - { - fprintf( stderr, gettext( "Error while opening %s.\n" ), filename ); - goto Failure; - } - - FOOTPRINT( face_object ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &properties ); - num_glyphs = properties.num_Glyphs; - - /* Now do various dumps */ - - if ( flag_names ) - Print_Names(); - - if ( flag_encodings ) - Print_Encodings(); - - if ( flag_cmap ) - Print_Cmap(); - - if ( flag_sbits ) - Print_SBits(); - - if ( flag_ttopen ) - { - Print_GSUB(); - Print_GPOS(); - } - -#ifndef FREETYPE_DLL /* the statistics are meaningless if we use a DLL. */ - if ( flag_memory ) - Print_Memory(); -#endif - - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - - Failure: - fprintf( stderr, " " ); - Panic( gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - - return 0; /* never reached */ -} - - -/* End */ diff --git a/Build/source/libs/freetype/test/fterror.c b/Build/source/libs/freetype/test/fterror.c deleted file mode 100644 index 017654d562a..00000000000 --- a/Build/source/libs/freetype/test/fterror.c +++ /dev/null @@ -1,107 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2002 by E. Dieterich, A.Leca, */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* fterror: test TT_ErrToString18 functionality. */ -/* */ -/* This program dumps locale-sensitive error messages. */ -/* */ -/****************************************************************************/ - -#include -#include - -#include "freetype.h" -#include "ftxerr18.h" - -/* - * Basically, an external program using FreeType shouldn't depend on an - * internal file of the FreeType library, especially not on ft_conf.h -- but - * to avoid another configure script which tests for the existence of the - * i18n stuff we include ft_conf.h here since we can be sure that our test - * programs use the same configuration options as the library itself. - */ - -#include "ft_conf.h" - - -#ifdef HAVE_LIBINTL_H - -#ifdef HAVE_LOCALE_H -#include -#endif - -#include - -#else /* HAVE_LIBINTL_H */ - -#define gettext( x ) ( x ) - -#endif /* HAVE_LIBINTL_H */ - - - static void - Usage( void ) - { - fprintf(stderr, gettext( "fterror: test TT_ErrToString18 functionality\n\n" ) ); - fprintf(stderr, gettext( " with an optional numerical argument, dumps the associated message.\n\n" ) ); - exit( EXIT_FAILURE ); - } - - - int - main( int argc, char** argv ) - { -#ifdef HAVE_LIBINTL_H - char* domain; - - - setlocale( LC_ALL, "" ); - bindtextdomain( "freetype", LOCALEDIR ); - domain = textdomain( "freetype" ); -#endif - - if( argc <= 1 ) - { - int i; -#if 0 - printf( "domain: %s\n", domain = textdomain( "" ) ); -#endif - printf( gettext( "Start of fterror.\n" ) ); - - for ( i = 0; i < 10; i++ ) - printf( "Code: %i, %s\n", i, TT_ErrToString18( i ) ); - -#if 0 - printf( "domain: %s\n", domain = textdomain( "" ) ); -#endif - printf( gettext( "End of fterror.\n" ) ); - } - else - { - int arg; - unsigned long cod; - char *end; - - - for ( arg = 1; arg < argc; ++arg ) - { - cod = strtoul(argv[arg], &end, 0); - - if( *end != '\0' || cod < 0 ) - Usage(); - printf( gettext( "Freetype error code 0x%04lX (%lu): %s\n" ), - cod, cod, TT_ErrToString18( cod ) ); - } - } - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/ftlint.c b/Build/source/libs/freetype/test/ftlint.c deleted file mode 100644 index ed240a5aea8..00000000000 --- a/Build/source/libs/freetype/test/ftlint.c +++ /dev/null @@ -1,296 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2000 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftlint: a simple TrueType instruction tester. */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include -#include -#include - -#include "common.h" -#include "freetype.h" - -/* - * Basically, an external program using FreeType shouldn't depend on an - * internal file of the FreeType library, especially not on ft_conf.h -- but - * to avoid another configure script which tests for the existence of the - * i18n stuff we include ft_conf.h here since we can be sure that our test - * programs use the same configuration options as the library itself. - */ - -#include "ft_conf.h" - - -#ifdef HAVE_LIBINTL_H - -#ifdef HAVE_LOCALE_H -#include -#endif - -#include -#include "ftxerr18.h" - -#else /* !HAVE_LIBINTL_H */ - -#define gettext( x ) ( x ) - - /* We ignore error message strings with this function */ - - static char* - TT_ErrToString18( TT_Error error ) - { - static char temp[32]; - - - sprintf( temp, "0x%04lx", error ); - return temp; - } - -#endif /* !HAVE_LIBINTL_H */ - - - TT_Error error; - - TT_Engine engine; - - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Outline outline; - TT_Glyph_Metrics metrics; - - TT_Face_Properties properties; - - unsigned int num_glyphs; - int ptsize; - - int Fail; - int Num; - - - static TT_Error - LoadTrueTypeChar( int idx ) - { - return TT_Load_Glyph( instance, glyph, idx, TTLOAD_DEFAULT ); - } - - - static void - Usage( char* name ) - { - char* gt; - - - gt = gettext( "ftlint: Simple TrueType instruction tester -- part of the FreeType project" ); - fprintf( stderr, "%s\n", gt ); - separator_line( stderr, strlen( gt ) ); - - fprintf( stderr, gettext( - "Usage: %s ppem fontname[.ttf|.ttc] [fontname2..]\n\n" ), name ); - - exit( EXIT_FAILURE ); - } - - - int - main( int argc, char** argv ) - { - int i, file_index; - unsigned int id; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - char* fname; - - -#ifdef HAVE_LIBINTL_H - setlocale( LC_ALL, "" ); - bindtextdomain( "freetype", LOCALEDIR ); - textdomain( "freetype" ); -#endif - - execname = argv[0]; - - if ( argc < 3 ) - Usage( execname ); - - if ( sscanf( argv[1], "%d", &ptsize ) != 1 ) - Usage( execname ); - - /* Initialize engine */ - if ( (error = TT_Init_FreeType( &engine )) ) - { - fprintf( stderr, - gettext( "Error while initializing engine.\n" ) ); - goto Failure; - } - - /* Now check all files */ - for ( file_index = 2; file_index < argc; file_index++ ) - { - fname = argv[file_index]; - i = strlen( fname ); - while ( i > 0 && fname[i] != '\\' && fname[i] != '/' ) - { - if ( fname[i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, fname, 128 ); - strncpy( alt_filename, fname, 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Load face */ - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - i = strlen( filename ); - fname = filename; - - while ( i >= 0 ) - if ( filename[i] == '/' || filename[i] == '\\' ) - { - fname = filename + i + 1; - i = -1; - } - else - i--; - - fprintf( stderr, "%s: ", fname ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - fprintf( stderr, gettext( "Could not find or open %s.\n" ), - filename ); - goto Fail_Face; - } - if ( error ) - { - fprintf( stderr, gettext( "Error while opening %s.\n" ), filename ); - goto Fail_Face; - } - - /* get face properties */ - - TT_Get_Face_Properties( face, &properties ); - num_glyphs = properties.num_Glyphs; - - /* create glyph */ - error = TT_New_Glyph( face, &glyph ); - if ( error ) - { - fprintf( stderr, - gettext( "Could not create glyph container.\n" ) ); - goto Fail_Glyph; - } - - /* create instance */ - error = TT_New_Instance( face, &instance ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create instance.\n" ) ); - goto Fail_Instance; - } - - error = TT_Set_Instance_PixelSizes( instance, - ptsize, - ptsize, - ptsize*3/4 ); - if ( error ) - { - fprintf( stderr, - gettext( "Could not set point size to %d.\n" ), - ptsize ); - goto Fail_Set; - } - - Fail = 0; - - for ( id = 0; id < num_glyphs; id++ ) - { - if ( (error = LoadTrueTypeChar( id )) ) - { - if ( Fail < 10 ) - { - fprintf( stderr, !Fail ? gettext( "Error with\n " ) : " " ); - fprintf( stderr, gettext( "glyph %4u: %s\n" ), - id, TT_ErrToString18( error ) ); - } - Fail++; - } - } - - if ( Fail == 0 ) - fprintf( stderr, "OK.\n" ); - else - { - fprintf( stderr, " " ); - if ( Fail == 1 ) - fprintf( stderr, gettext( "1 fail.\n" ) ); - else - fprintf( stderr, gettext( "%d fails.\n" ), Fail ); - } - - /* hush complaints at the end of the loop */ - error = 0; - - Fail_Set: - TT_Done_Instance( instance ); - Fail_Instance: - TT_Done_Glyph( glyph ); - Fail_Glyph: - TT_Close_Face( face ); - Fail_Face: - ; - - - if ( error ) - { - fprintf( stderr, " " ); - fprintf( stderr, gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - } - } - - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - - Failure: - fprintf( stderr, " " ); - fprintf( stderr, gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - - exit( EXIT_FAILURE ); - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/ftmetric.c b/Build/source/libs/freetype/test/ftmetric.c deleted file mode 100644 index 58c98e32fee..00000000000 --- a/Build/source/libs/freetype/test/ftmetric.c +++ /dev/null @@ -1,399 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1999-2001 by */ -/* Yamano'uchi H. and W. Lemberg */ -/* */ -/* ftmetric: dump metrics and a glyph. */ -/* */ -/* NOTE: This is just a test program that is used to debug */ -/* the current engine. */ -/* */ -/****************************************************************************/ - -#include -#include -#include - -#include "common.h" -#include "freetype.h" -#include "ftxsbit.h" - -#include "textdisp.h" - -/* - * Basically, an external program using FreeType shouldn't depend on an - * internal file of the FreeType library, especially not on ft_conf.h -- but - * to avoid another configure script which tests for the existence of the - * i18n stuff we include ft_conf.h here since we can be sure that our test - * programs use the same configuration options as the library itself. - */ - -#include "ft_conf.h" - - -#ifdef HAVE_LIBINTL_H - -#ifdef HAVE_LOCALE_H -#include -#endif - -#include -#include "ftxerr18.h" - -#else /* !HAVE_LIBINTL_H */ - -#define gettext( x ) ( x ) - - /* We ignore error message strings with this function */ - - static char* - TT_ErrToString18( TT_Error error ) - { - static char temp[32]; - - - sprintf( temp, "0x%04lx", error ); - return temp; - } - -#endif /* !HAVE_LIBINTL_H */ - - static void - usage( char* execname ) - { - char* gt; - - - fprintf( stderr, "\n" ); - gt = gettext( "ftmetric: Simple TTF metrics/glyph dumper -- part of the FreeType project" ); - fprintf( stderr, "%s\n", gt ); - separator_line( stderr, strlen( gt ) ); - fprintf( stderr, gettext( - "Usage: %s [options below] point fontname[.ttf|.ttc]\n" - "\n" - " -B show sbit's metrics (default: none)\n" - " -c C use C'th font index of TrueType collection (default: 0)\n" - " -i index glyph index (default: 0)\n" - " -r R use resolution R dpi (default: 72)\n" - "\n" ), execname ); - - exit( EXIT_FAILURE ); - } - - - static void - Show_Metrics( TT_Big_Glyph_Metrics metrics, - char* title ) - { - int show_advance = 1; - - - printf("%s: xMin %d, xMax %d, yMin %d, yMax %d", - title, - (int)(metrics.bbox.xMin / 64), - (int)(metrics.bbox.xMax / 64), - (int)(metrics.bbox.yMin / 64), - (int)(metrics.bbox.yMax / 64)); - - - if ( show_advance ) - printf( ", advance width %d", (int)(metrics.horiAdvance / 64) ); - - printf("\n"); - return; - } - - - int - main( int argc, char** argv ) - { - int i, orig_ptsize, file; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - int option; - - int ptsize; - int num_Faces = 0; - int glyph_index = 0; - int load_flags = TTLOAD_DEFAULT; - - int force_sbit = 0; - - TT_Engine engine; - - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Raster_Map map; - - TT_Big_Glyph_Metrics metrics; - TT_Face_Properties properties; - TT_Instance_Metrics imetrics; - - TT_EBLC eblc; - TT_SBit_Image* bitmap = NULL; - - TT_Error error; - - - int res = 72; - -#ifdef HAVE_LIBINTL_H - setlocale( LC_ALL, "" ); - bindtextdomain( "freetype", LOCALEDIR ); - textdomain( "freetype" ); -#endif - - execname = ft_basename( argv[0] ); - - while ( 1 ) - { - option = ft_getopt( argc, argv, "c:r:i:B" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'r': - res = atoi( ft_optarg ); - if ( res < 1 ) - usage( execname ); - break; - - case 'c': - num_Faces = atoi( ft_optarg ); - if ( num_Faces < 0 ) - usage( execname ); - break; - - case 'i': - glyph_index = atoi( ft_optarg ); - if ( glyph_index < 0 ) - usage( execname ); - break; - - case 'B': - force_sbit = 1; - break; - - default: - usage( execname ); - break; - } - } - - argc -= ft_optind; - argv += ft_optind; - - if ( argc <= 1 ) - usage( execname ); - - if ( sscanf( argv[0], "%d", &orig_ptsize ) != 1 ) - orig_ptsize = 64; - - file = 1; - - ptsize = orig_ptsize; - - i = strlen( argv[file] ); - while ( i > 0 && argv[file][i] != '\\' && argv[file][i] != '/' ) - { - if ( argv[file][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[file], 128 ); - strncpy( alt_filename, argv[file], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Initialize engine */ - - error = TT_Init_FreeType( &engine ); - if ( error ) - { - fprintf( stderr, gettext( "Error while initializing engine.\n" ) ); - goto Failure; - } - - error = TT_Init_SBit_Extension( engine ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while initializing embedded bitmap extension.\n" ) ); - goto Failure; - } - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( gettext( "Could not find or open %s.\n" ), filename ); - if ( error ) - { - fprintf( stderr, gettext( "Error while opening %s.\n" ), - filename ); - goto Failure; - } - - TT_Get_Face_Properties( face, &properties ); - - printf( gettext( "There are %d fonts in this collection.\n" ), - (int)(properties.num_Faces) ); - - if ( num_Faces >= properties.num_Faces ) - Panic( gettext( - "There is no collection with index %d in this font file.\n" ), - num_Faces ); - - TT_Close_Face( face ); - - error = TT_Open_Collection( engine, filename, num_Faces, &face ); - - /* get face properties and eblc */ - - TT_Get_Face_Properties( face, &properties ); - if ( force_sbit ) - { - error = TT_Get_Face_Bitmaps( face, &eblc ); - if ( error == TT_Err_Table_Missing ) - Panic( gettext( "There is no embedded bitmap data in the font.\n" ) ); - if ( error ) - { - fprintf( stderr, gettext( - "Error while retrieving embedded bitmaps table.\n" ) ); - goto Failure; - } - } - - /* create glyph */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create glyph container.\n" ) ); - goto Failure; - } - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create instance.\n" ) ); - goto Failure; - } - - error = TT_Set_Instance_Resolutions( instance, res, res ); - if ( error ) - { - fprintf( stderr, gettext( "Could not set device resolutions.\n" ) ); - goto Failure; - } - - error = TT_Set_Instance_CharSize( instance, ptsize*64 ); - if ( error ) - { - fprintf( stderr, gettext( "Could not reset instance.\n" ) ); - goto Failure; - } - - TT_Get_Instance_Metrics( instance, &imetrics ); - - printf( gettext( "Instance metrics: ppemX %d, ppemY %d\n" ), - imetrics.x_ppem, - imetrics.y_ppem ); - - if ( force_sbit ) - { - error = TT_New_SBit_Image( &bitmap ); - if ( error ) - { - fprintf( stderr, gettext( - "Could not allocate glyph bitmap container.\n" ) ); - goto Failure; - } - - error = TT_Load_Glyph_Bitmap( face, instance, glyph_index, bitmap ); - if ( error ) - { - fprintf( stderr, gettext( - "Can't load bitmap for glyph %d.\n" ), glyph_index ); - goto Failure; - } - - Show_Metrics( bitmap->metrics, "SBit's metrics" ); - - printf( "SBit glyph:\n" ); - Show_Single_Glyph( &bitmap->map ); - } - else - { - TT_Load_Glyph( instance, glyph, glyph_index, load_flags ); - TT_Get_Glyph_Big_Metrics( glyph, &metrics ); - - map.width = ( metrics.bbox.xMax - metrics.bbox.xMin ) / 64; - map.rows = ( metrics.bbox.yMax - metrics.bbox.yMin ) / 64; - map.cols = ( map.width + 7 ) / 8; - map.size = map.cols * map.rows; - map.bitmap = malloc( map.size ); - map.flow = TT_Flow_Down; - - memset( map.bitmap, 0, map.size ); - - error = TT_Get_Glyph_Bitmap( glyph, &map, - -metrics.bbox.xMin, - -metrics.bbox.yMin ); - - Show_Metrics( metrics, gettext( "Outline's metrics" ) ); - - printf( gettext( "Outline glyph\n" ) ); - Show_Single_Glyph( &map ); - } - - free( map.bitmap ); - - if ( bitmap ) - TT_Done_SBit_Image( bitmap ); - - TT_Done_Instance( instance ); - TT_Done_Glyph( glyph ); - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - - Failure: - fprintf( stderr, " " ); - fprintf( stderr, gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - - exit( EXIT_FAILURE ); - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/ftsbit.c b/Build/source/libs/freetype/test/ftsbit.c deleted file mode 100644 index be3af357d0d..00000000000 --- a/Build/source/libs/freetype/test/ftsbit.c +++ /dev/null @@ -1,295 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftsbit: a _very_ simple embedded bitmap dumper for FreeType 1.x. */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include -#include -#include - -#include "common.h" -#include "freetype.h" -#include "ftxsbit.h" - -#include "textdisp.h" - -/* - * Basically, an external program using FreeType shouldn't depend on an - * internal file of the FreeType library, especially not on ft_conf.h -- but - * to avoid another configure script which tests for the existence of the - * i18n stuff we include ft_conf.h here since we can be sure that our test - * programs use the same configuration options as the library itself. - */ - -#include "ft_conf.h" - - -#ifdef HAVE_LIBINTL_H - -#ifdef HAVE_LOCALE_H -#include -#endif - -#include -#include "ftxerr18.h" - -#else /* !HAVE_LIBINTL_H */ - -#define gettext( x ) ( x ) - - /* We ignore error message strings with this function */ - - static char* TT_ErrToString18( TT_Error error ) - { - static char temp[32]; - - - sprintf( temp, "0x%04lx", error ); - return temp; - } - -#endif /* !HAVE_LIBINTL_H */ - - - TT_Error error; - - TT_Engine engine; - - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Outline outline; - TT_Glyph_Metrics metrics; - - TT_Face_Properties properties; - TT_EBLC eblc; - TT_SBit_Image* bitmap; - - unsigned int num_glyphs; - int ptsize; - - int Fail; - int Num; - - - static void Usage( char* name ) - { - char* gt; - - - gt = gettext( "ftsbit: Simple TrueType `sbit' dumper -- part of the FreeType project" ); - fprintf( stderr, "%s\n", gt ); - separator_line( stderr, strlen( gt ) ); - - fprintf( stderr, gettext( - "Usage: %s ppem fontname[.ttf|.ttc] glyph_index [glyph_index2..]\n\n" ), name ); - - exit( EXIT_FAILURE ); - } - - - int main( int argc, char** argv ) - { - int i; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - char* fname; - - -#ifdef HAVE_LIBINTL_H - setlocale( LC_ALL, "" ); - bindtextdomain( "freetype", LOCALEDIR ); - textdomain( "freetype" ); -#endif - - execname = argv[0]; - - if ( argc < 3 ) - Usage( execname ); - - if ( sscanf( argv[1], "%d", &ptsize ) != 1 ) - Usage( execname ); - - /* Initialize engine */ - if ( (error = TT_Init_FreeType( &engine )) ) - { - fprintf( stderr, gettext( "Error while initializing engine.\n" ) ); - goto Failure; - } - - if ( (error = TT_Init_SBit_Extension( engine )) ) - { - fprintf( stderr, gettext( - "Error while initializing embedded bitmap extension.\n" ) ); - goto Failure; - } - - /* Now check all files */ - fname = argv[2]; - i = strlen( fname ); - while ( i > 0 && fname[i] != '\\' && fname[i] != '/' ) - { - if ( fname[i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, fname, 128 ); - strncpy( alt_filename, fname, 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Load face */ - error = TT_Open_Face( engine, filename, &face ); - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - i = strlen( filename ); - fname = filename; - - while ( i >= 0 ) - if ( filename[i] == '/' || filename[i] == '\\' ) - { - fname = filename + i + 1; - i = -1; - } - else - i--; - - if ( error ) - { - fprintf( stderr, gettext( "Could not find or open %s.\n" ), - filename ); - goto Failure; - } - if ( error ) - { - fprintf( stderr, gettext( "Error while opening %s.\n" ), filename ); - goto Failure; - } - - /* get face properties */ - TT_Get_Face_Properties( face, &properties ); - num_glyphs = properties.num_Glyphs; - - error = TT_Get_Face_Bitmaps( face, &eblc ); - if ( error == TT_Err_Table_Missing ) - { - fprintf( stderr, gettext( - "Could not find embedded bitmaps in this font.\n" ) ); - goto Failure; - } - if ( error ) - { - fprintf( stderr, gettext( - "Error while loading embedded bitmaps.\n" ) ); - goto Failure; - } - - /* create instance */ - error = TT_New_Instance( face, &instance ); - if ( error ) - { - fprintf( stderr, gettext( "Could not create instance.\n" ) ); - goto Failure; - } - - error = TT_Set_Instance_PixelSizes( instance, - ptsize, - ptsize, - ptsize*3/4 ); - if ( error ) - { - fprintf( stderr, - gettext( "Could not set point size to %d.\n" ), - ptsize ); - goto Failure; - } - - error = TT_New_SBit_Image( &bitmap ); - if ( error ) - { - fprintf( stderr, gettext( - "Could not allocate glyph bitmap container.\n" ) ); - goto Failure; - } - - for ( i = 3; i < argc; i++ ) - { - unsigned short glyph_index; - - - /* we use %i to allow the prefixes `0x' and `0' */ - if ( sscanf( argv[i], "%hi", &glyph_index ) != 1 ) - Usage( execname ); - - error = TT_Load_Glyph_Bitmap( face, instance, glyph_index, bitmap ); - - if ( error == TT_Err_Invalid_Glyph_Index ) - { - fprintf( stderr, gettext( - " no bitmap for glyph %d.\n" ), glyph_index ); - continue; - } - if ( error ) - { - fprintf( stderr, gettext( - "Can't load bitmap for glyph %d.\n" ), glyph_index ); - goto Failure; - } - - /* Dump the resulting bitmap */ - { - printf( gettext( "glyph index %d = %dx%d pixels, " ), - glyph_index, bitmap->map.rows, bitmap->map.width ); - - printf( gettext( "advance = %ld, minBearing = [%ld,%ld]\n" ), - (long)(bitmap->metrics.horiAdvance / 64), - (long)(bitmap->metrics.horiBearingX / 64), - (long)(bitmap->metrics.horiBearingY / 64)); - - Show_Single_Glyph( &bitmap->map ); - } - } - - TT_Done_SBit_Image( bitmap ); - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - - Failure: - fprintf( stderr, " " ); - fprintf( stderr, gettext( "FreeType error message: %s\n" ), - TT_ErrToString18( error ) ); - - exit( EXIT_FAILURE ); - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/ftstring.c b/Build/source/libs/freetype/test/ftstring.c deleted file mode 100644 index b60e81187e8..00000000000 --- a/Build/source/libs/freetype/test/ftstring.c +++ /dev/null @@ -1,484 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftstring: Making string text from individual glyph information. */ -/* */ -/* Keys: */ -/* */ -/* + : fast scale up */ -/* - : fast scale down */ -/* u : fine scale down */ -/* j : fine scale up */ -/* */ -/* h : toggle hinting */ -/* */ -/* ESC : exit */ -/* */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include -#include -#include - -#include "common.h" -#include "display.h" -#include "freetype.h" - -#include "gevents.h" -#include "gdriver.h" -#include "gmain.h" - -#define Pi 3.1415926535 - -#define MAXPTSIZE 500 /* dtp */ -#define Center_X ( Bit.width / 2 ) /* dtp */ -#define Center_Y ( Bit.rows / 2 ) /* dtp */ - - TT_Engine engine; - - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - TT_CharMap char_map; - - TT_Glyph_Metrics metrics; - TT_Face_Properties properties; - TT_Instance_Metrics imetrics; - - int num_glyphs; - - int ptsize; - int hinted; - - char Header[128]; - int Fail; - int Num; - - int gray_render; - - short glyph_code[128]; - int num_codes; - - -/* Convert an ASCII string to a string of glyph indexes. */ -/* */ -/* IMPORTANT NOTE: */ -/* */ -/* There is no portable way to convert from any system's char. code */ -/* to Unicode. This function simply takes a char. string as argument */ -/* and "interprets" each character as a Unicode char. index with no */ -/* further check. */ -/* */ -/* This mapping is only valid for the ASCII character set (i.e., */ -/* codes 32 to 127); all other codes (like accentuated characters) */ -/* will produce more or less random results, depending on the system */ -/* being run. */ - - static void CharToUnicode( char* source ) - { - unsigned short i, n; - unsigned short platform, encoding; - - /* First, look for a Unicode charmap */ - - n = properties.num_CharMaps; - - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - if ( (platform == 3 && encoding == 1 ) || - (platform == 0 && encoding == 0 ) ) - { - TT_Get_CharMap( face, i, &char_map ); - i = n + 1; - } - } - - if ( i == n ) - Panic( "Sorry, but this font doesn't contain any Unicode mapping table\n" ); - - for ( n = 0; n < 128 && source[n]; n++ ) -#if 1 - glyph_code[n] = TT_Char_Index( char_map, (short)source[n] ); -#else - /* Note, if you have a function, say ToUnicode(), to convert from */ - /* char codes to Unicode, use the following line instead: */ - - glyph_code[n] = TT_Char_Index( char_map, ToUnicode( source[n] ) ); -#endif - - num_codes = n; - } - - - static TT_Error Reset_Scale( int pointSize ) - { - TT_Error error; - - - if ( (error = TT_Set_Instance_PointSize( instance, pointSize )) ) - { - RestoreScreen(); - fprintf( stderr, "Error = 0x%x.\n", (unsigned)error ); - Panic( "Could not reset instance.\n" ); - } - - TT_Get_Instance_Metrics( instance, &imetrics ); - - /* now re-allocates the small bitmap */ - if ( gray_render ) - { - Init_Small( imetrics.x_ppem, imetrics.y_ppem ); - Clear_Small(); - } - - return TT_Err_Ok; - } - - - static TT_Error LoadTrueTypeChar( int idx, int hint ) - { - int flags; - - - flags = TTLOAD_SCALE_GLYPH; - if ( hint ) - flags |= TTLOAD_HINT_GLYPH; - - return TT_Load_Glyph( instance, glyph, idx, flags ); - } - - - static TT_Error Render_All( void ) - { - TT_F26Dot6 x, y, z, minx, miny, maxx, maxy; - int i; - - TT_Error error; - - - /* On the first pass, we compute the compound bounding box */ - - x = y = 0; - - minx = miny = maxx = maxy = 0; - - for ( i = 0; i < num_codes; i++ ) - { - if ( !(error = LoadTrueTypeChar( glyph_code[i], hinted )) ) - { - TT_Get_Glyph_Metrics( glyph, &metrics ); - - z = x + metrics.bbox.xMin; - if ( minx > z ) - minx = z; - - z = x + metrics.bbox.xMax; - if ( maxx < z ) - maxx = z; - - z = y + metrics.bbox.yMin; - if ( miny > z ) - miny = z; - - z = y + metrics.bbox.yMax; - if ( maxy < z ) - maxy = z; - - x += metrics.advance & -64; - } - else - Fail++; - } - - /* We now center the bbox inside the target bitmap */ - - minx = ( minx & -64 ) >> 6; - miny = ( miny & -64 ) >> 6; - - maxx = ( (maxx+63) & -64 ) >> 6; - maxy = ( (maxy+63) & -64 ) >> 6; - - maxx -= minx; - maxy -= miny; - - minx = (Bit.width - maxx)/2; - miny = (Bit.rows + miny)/2; - - maxx += minx; - maxy += maxy; - - /* On the second pass, we render each glyph to its centered position. */ - /* This is slow, because we reload each glyph to render it! */ - - x = minx; - y = miny; - - for ( i = 0; i < num_codes; i++ ) - { - if ( !(error = LoadTrueTypeChar( glyph_code[i], hinted )) ) - { - TT_Get_Glyph_Metrics( glyph, &metrics ); - - Render_Single_Glyph( gray_render, glyph, (int)x, (int)y ); - - x += metrics.advance/64; - } - } - - return TT_Err_Ok; - } - - - static int Process_Event( TEvent* event ) - { - switch ( event->what ) - { - case event_Quit: /* ESC or q */ - return 0; - - case event_Keyboard: - if ( event->info == 'h' ) /* Toggle hinting */ - hinted = !hinted; - break; - - case event_Rotate_Glyph: - break; - - case event_Scale_Glyph: - ptsize += event->info; - if ( ptsize < 1 ) ptsize = 1; - if ( ptsize > MAXPTSIZE ) ptsize = MAXPTSIZE; - break; - - case event_Change_Glyph: - break; - } - - return 1; - } - - - static void usage( char* execname ) - { - fprintf( stderr, - "\n" - "ftstring: simple String Test Display -- part of the FreeType project\n" - "--------------------------------------------------------------------\n" - "\n" - "Usage: %s [options below] ppem fontname[.ttf|.ttc] [string]\n", - execname ); - fprintf( stderr, - "\n" - " -g gray-level rendering (default: none)\n" - " -r R use resolution R dpi (default: 96)\n" - "\n" ); - - exit( EXIT_FAILURE ); - } - - - int main( int argc, char** argv ) - { - int i, old_ptsize, orig_ptsize, file; - int XisSetup = 0; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - int option; - int res = 96; - - TT_Error error; - TEvent event; - - - execname = ft_basename( argv[0] ); - - while ( 1 ) - { - option = ft_getopt( argc, argv, "gr:" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'g': - gray_render = 1; - break; - - case 'r': - res = atoi( ft_optarg ); - if ( res < 1 ) - usage( execname ); - break; - - default: - usage( execname ); - break; - } - } - - argc -= ft_optind; - argv += ft_optind; - - if ( argc <= 1 ) - usage( execname ); - - if ( sscanf( argv[0], "%d", &orig_ptsize ) != 1 ) - orig_ptsize = 64; - - file = 1; - - /* Initialize engine */ - - if ( (error = TT_Init_FreeType( &engine )) ) - Panic( "Error while initializing engine, code = 0x%x.\n", error ); - - ptsize = orig_ptsize; - hinted = 1; - - i = strlen( argv[file] ); - while ( i > 0 && argv[file][i] != '\\' && argv[file][i] != '/' ) - { - if ( argv[file][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[file], 128 ); - strncpy( alt_filename, argv[file], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open %s.\n", filename ); - else if (error) - Panic( "Error while opening %s, error code = 0x%x.\n", - filename, error ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &properties ); - - num_glyphs = properties.num_Glyphs; - - /* create glyph */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - Panic( "Could not create glyph container.\n" ); - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - Panic( "Could not create instance for %s.\n", filename ); - - error = TT_Set_Instance_Resolutions( instance, res, res ); - if ( error ) - Panic( "Could not set device resolutions." ); - - if ( !XisSetup ) - { - XisSetup = 1; - - if ( gray_render ) - { - if ( !SetGraphScreen( Graphics_Mode_Gray ) ) - Panic( "Could not set up grayscale graphics mode.\n" ); - - TT_Set_Raster_Gray_Palette( engine, virtual_palette ); - } - else - { - if ( !SetGraphScreen( Graphics_Mode_Mono ) ) - Panic( "Could not set up mono graphics mode.\n" ); - } - } - - Init_Display( gray_render ); - - Reset_Scale( ptsize ); - - old_ptsize = ptsize; - - Fail = 0; - Num = 0; - - CharToUnicode( ( argv[2] ? argv[2] : - "The quick brown fox jumps over the lazy dog" ) ); - - for ( ;; ) - { - Clear_Display(); - Render_All(); - if ( gray_render ) - Convert_To_Display_Palette(); - - sprintf( Header, "%s: ptsize: %4d hinting: %s", - ft_basename( filename ), ptsize, - hinted ? "on" : "off" ); - - Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols ); - -#ifndef X11 -#ifndef OS2 - Print_XY( 0, 0, Header ); -#endif -#endif - - Get_Event( &event ); - if ( !( Process_Event( &event ) ) ) - goto End; - - if ( ptsize != old_ptsize ) - { - if ( Reset_Scale( ptsize ) ) - Panic( "Could not resize font.\n" ); - - old_ptsize = ptsize; - } - } - - End: - RestoreScreen(); - - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - printf( "Execution completed successfully.\n" ); - printf( "Fails = %d.\n", Fail ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ -} - - -/* End */ diff --git a/Build/source/libs/freetype/test/ftstrpnm.c b/Build/source/libs/freetype/test/ftstrpnm.c deleted file mode 100644 index 73b42ea1c1e..00000000000 --- a/Build/source/libs/freetype/test/ftstrpnm.c +++ /dev/null @@ -1,534 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftstrpnm: convert text to image (in PGM or PBM format) */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#define PROGNAME "ftstrpnm" - -#include -#include -#include - -#include "common.h" -#include "freetype.h" - -#define TT_VALID( handle ) ( ( handle ).z != NULL ) - - - /* Global variables */ - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - - TT_Face_Properties properties; - - TT_Raster_Map bit; - TT_Raster_Map small_bit; /* used when font-smoothing is enabled */ - - int pnm_width, pnm_height; - int pnm_x_shift, pnm_y_shift; - - - /* Loaded glyphs for all characters */ - - TT_Glyph *glyphs = NULL; - - - /* Options */ - - int dpi = 96; - int ptsize = 12; - int hinted = 1; - int smooth = 0; - int border = 0; - - /* color for text in RGB format */ - unsigned short int textclr[3] = { 0, 0, 0 }; - - /* raster map management */ - - static void Init_Raster_Map( TT_Raster_Map* bit, int width, int height ) - { - bit->rows = height; - bit->width = ( width + 3 ) & -4; - bit->flow = TT_Flow_Down; - - if ( smooth ) - { - bit->cols = bit->width; - bit->size = bit->rows * bit->width; - } - else - { - bit->cols = ( bit->width + 7 ) / 8; /* convert to # of bytes */ - bit->size = bit->rows * bit->cols; /* number of bytes in buffer */ - } - - bit->bitmap = (void *) malloc( bit->size ); - if ( !bit->bitmap ) - Panic( "Not enough memory to allocate bitmap!\n" ); - } - - - static void Done_Raster_Map( TT_Raster_Map *bit ) - { - free( bit->bitmap ); - bit->bitmap = NULL; - } - - - static void Clear_Raster_Map( TT_Raster_Map* bit ) - { - memset( bit->bitmap, 0, bit->size ); - } - - - static void Blit_Or( TT_Raster_Map* dst, TT_Raster_Map* src, - int x_off, int y_off ) - { - int x, y; - int x1, x2, y1, y2; - char *s, *d; - - - /* clipping */ - - x1 = x_off < 0 ? -x_off : 0; - y1 = y_off < 0 ? -y_off : 0; - - x2 = (int)dst->cols - x_off; - if ( x2 > src->cols ) - x2 = src->cols; - - y2 = (int)dst->rows - y_off; - if ( y2 > src->rows ) - y2 = src->rows; - - if ( x1 >= x2 ) - return; - - /* do the real work now */ - - for ( y = y1; y < y2; ++y ) - { - s = ( (char*)src->bitmap ) + y * src->cols + x1; - d = ( (char*)dst->bitmap ) + ( y + y_off ) * dst->cols + x1 + x_off; - - for ( x = x1; x < x2; ++x ) - *d++ |= *s++; - } - } - - - static void Dump_Raster_Map( TT_Raster_Map* bit, FILE* file ) - { - /* kudos for this code snippet go to Norman Walsh */ - - char* bmap; - int i, j; - unsigned short int colors[3][5]; - - bmap = (char *)bit->bitmap; - - if ( smooth ) /* anti-aliasing */ - { - fprintf( file, "P6\n%d %d\n255\n", pnm_width, pnm_height ); - - /* calculate colors for anti-aliasing */ - for (i = 0; i < 3; i++ ) - for (j = 0; j < 5; j++) - colors[i][j] = (255 - textclr[i]) * j / 4 + textclr[i]; - - for ( i = 0; i < bit->size; i++ ) /* iterate pixels */ - bmap[i] = bmap[i] > 4 ? 0 : 4 - bmap[i]; - - for ( i = pnm_height; i > 0; i--, bmap += bit->cols ) - for ( j = 0; j < pnm_width; j++ ) - fprintf( file, "%c%c%c", colors[0][(unsigned int) bmap[j]],\ - colors[1][(unsigned int) bmap[j]],\ - colors[2][(unsigned int) bmap[j]]); - } - else /* no anti-aliasing */ - { - fprintf( file, "P6\n%d %d\n255\n", pnm_width, pnm_height ); - - for ( i = 0; i < pnm_height; i++, bmap += bit->cols ) /* iterate rows */ - for ( j = 0; j < pnm_width; j++ ) /* iterate bits(=columns) in row */ - if ( bmap[j / 8] >> ( 7 - j % 8 ) & 1 ) /* bit set? */ - fprintf( file, "%c%c%c", textclr[0], textclr[1], textclr[2] ); - else - fprintf( file, "%c%c%c", 255, 255, 255 ); - } - fflush( file ); - } - - - /* glyph management */ - - static void Load_Glyphs( char* txt, int txtlen ) - { - unsigned short i, n, code, load_flags; - unsigned short num_glyphs = 0, no_cmap = 0; - unsigned short platform, encoding; - TT_Error error; - TT_CharMap char_map; - - - /* First, look for a Unicode charmap */ - - n = properties.num_CharMaps; - - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - if ( (platform == 3 && encoding == 1 ) || - (platform == 0 && encoding == 0 ) ) - { - TT_Get_CharMap( face, i, &char_map ); - break; - } - } - - if ( i == n ) - { - TT_Face_Properties properties; - - - TT_Get_Face_Properties( face, &properties ); - - no_cmap = 1; - num_glyphs = properties.num_Glyphs; - } - - - /* Second, allocate the array */ - - glyphs = (TT_Glyph*)malloc( 256 * sizeof ( TT_Glyph ) ); - memset( glyphs, 0, 256 * sizeof ( TT_Glyph ) ); - - /* Finally, load the glyphs you need */ - - load_flags = TTLOAD_SCALE_GLYPH; - if ( hinted ) - load_flags |= TTLOAD_HINT_GLYPH; - - for ( i = 0; i < txtlen; ++i ) - { - unsigned char j = txt[i]; - - - if ( TT_VALID( glyphs[j] ) ) - continue; - - if ( no_cmap ) - { - code = (j - ' ' + 1) < 0 ? 0 : (j - ' ' + 1); - if ( code >= num_glyphs ) - code = 0; - } - else - code = TT_Char_Index( char_map, j ); - - (void)( - ( error = TT_New_Glyph( face, &glyphs[j] ) ) || - ( error = TT_Load_Glyph( instance, glyphs[j], code, load_flags ) ) - ); - - if ( error ) - Panic( "Cannot allocate and load glyph: error 0x%x.\n", error ); - } - } - - - static void Done_Glyphs( void ) - { - int i; - - - if ( !glyphs ) - return; - - for ( i = 0; i < 256; ++i ) - TT_Done_Glyph( glyphs[i] ); - - free( glyphs ); - - glyphs = NULL; - } - - - /* face & instance management */ - - static void Init_Face( const char* filename ) - { - TT_Error error; - - - /* load the typeface */ - - error = TT_Open_Face( engine, filename, &face ); - if ( error ) - { - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open %s.\n", filename ); - else - Panic( "Error while opening %s, error code = 0x%x.\n", - filename, error ); - } - - TT_Get_Face_Properties( face, &properties ); - - /* create and initialize instance */ - - (void) ( - ( error = TT_New_Instance( face, &instance ) ) || - ( error = TT_Set_Instance_Resolutions( instance, dpi, dpi ) ) || - ( error = TT_Set_Instance_PointSize( instance, ptsize ) ) - ); - - if ( error ) - Panic( "Could not create and initialize instance: error 0x%x.\n", - error ); - } - - - static void Done_Face( void ) - { - TT_Done_Instance( instance ); - TT_Close_Face( face ); - } - - - /* rasterization stuff */ - - static void Init_Raster_Areas( const char* txt, int txtlen ) - { - int i, upm, ascent, descent; - TT_Face_Properties properties; - TT_Instance_Metrics imetrics; - TT_Glyph_Metrics gmetrics; - - - /* allocate the large bitmap */ - - TT_Get_Face_Properties( face, &properties ); - TT_Get_Instance_Metrics( instance, &imetrics ); - - upm = properties.header->Units_Per_EM; - ascent = ( properties.horizontal->Ascender * imetrics.y_ppem ) / upm; - descent = ( properties.horizontal->Descender * imetrics.y_ppem ) / upm; - - pnm_width = 2 * border; - pnm_height = 2 * border + ascent - descent; - - for ( i = 0; i < txtlen; ++i ) - { - unsigned char j = txt[i]; - - - if ( !TT_VALID( glyphs[j] ) ) - continue; - - TT_Get_Glyph_Metrics( glyphs[j], &gmetrics ); - pnm_width += gmetrics.advance / 64; - } - - Init_Raster_Map( &bit, pnm_width, pnm_height ); - Clear_Raster_Map( &bit ); - - pnm_x_shift = border; - pnm_y_shift = border - descent; - - /* allocate the small bitmap if you need it */ - - if ( smooth ) - Init_Raster_Map( &small_bit, imetrics.x_ppem + 32, pnm_height ); - } - - - static void Done_Raster_Areas( void ) - { - Done_Raster_Map( &bit ); - if ( smooth ) - Done_Raster_Map( &small_bit ); - } - - - static void Render_Glyph( TT_Glyph glyph, - int x_off, int y_off, - TT_Glyph_Metrics* gmetrics ) - { - if ( !smooth ) - TT_Get_Glyph_Bitmap( glyph, &bit, x_off * 64L, y_off * 64L); - else - { - TT_F26Dot6 xmin, ymin, xmax, ymax; - - - /* grid-fit the bounding box */ - - xmin = gmetrics->bbox.xMin & -64; - ymin = gmetrics->bbox.yMin & -64; - xmax = (gmetrics->bbox.xMax + 63) & -64; - ymax = (gmetrics->bbox.yMax + 63) & -64; - - /* now render the glyph in the small pixmap */ - /* and blit-or the resulting small pixmap into the biggest one */ - - Clear_Raster_Map( &small_bit ); - TT_Get_Glyph_Pixmap( glyph, &small_bit, -xmin, -ymin ); - Blit_Or( &bit, &small_bit, xmin/64 + x_off, -ymin/64 - y_off ); - } - } - - - static void Render_All_Glyphs( char* txt, int txtlen ) - { - int i; - TT_F26Dot6 x, y, adjx; - TT_Glyph_Metrics gmetrics; - - - x = pnm_x_shift; - y = pnm_y_shift; - - for ( i = 0; i < txtlen; i++ ) - { - unsigned char j = txt[i]; - - if ( !TT_VALID( glyphs[j] ) ) - continue; - - TT_Get_Glyph_Metrics( glyphs[j], &gmetrics ); - - adjx = x; /* ??? lsb */ - Render_Glyph( glyphs[j], adjx, y, &gmetrics ); - - x += gmetrics.advance / 64; - } - } - - - static void usage( void ) - { - printf( "\n" ); - printf( "%s: simple text to image converter -- part of the FreeType project\n", PROGNAME ); - printf( "\n" ); - printf( "Usage: %s [options below] filename [string]\n", PROGNAME ); - printf( "\n" ); - printf( " -g gray-level rendering (default: off)\n" ); - printf( " -h hinting off (default: on)\n" ); - printf( " -r X resolution X dpi (default: 96)\n" ); - printf( " -p X pointsize X pt (default: 12)\n" ); - printf( " -b X border X pixels wide (default: 0)\n" ); - printf( " -c X textcolor X in RRGGBB hexadecimal format (default: 00000 (=black))\n" ); - printf( "\n" ); - - exit( EXIT_FAILURE ); - } - - - int main( int argc, char** argv ) - { - int option, txtlen; - long int hexvalue; - char *txt, *filename; - TT_Error error; - - - /* Parse options */ - - while ( 1 ) - { - option = ft_getopt( argc, argv, "ghr:p:b:c:" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'g': - smooth = 1; - break; - case 'h': - hinted = 0; - break; - case 'r': - dpi = atoi( ft_optarg ); - break; - case 'p': - ptsize = atoi( ft_optarg ); - break; - case 'b': - border = atoi( ft_optarg ); - break; - case 'c': - sscanf( ft_optarg, "%lx", &hexvalue ); - textclr[0] = hexvalue>>16 & 0xFF; - textclr[1] = hexvalue>> 8 & 0xFF; - textclr[2] = hexvalue>> 0 & 0xFF; - break; - - default: - usage(); - break; - } - } - - argc -= ft_optind; - argv += ft_optind; - - if ( argc <= 0 || argc > 2 || dpi <= 0 || ptsize <= 0 || border < 0 ) - usage(); - - filename = argv[0]; - - if ( argc > 1 ) - txt = argv[1]; - else - txt = "The quick brown fox jumps over the lazy dog"; - - txtlen = strlen( txt ); - - /* Initialize engine and other stuff */ - - error = TT_Init_FreeType( &engine ); - if ( error ) - Panic( "Error while initializing engine, code = 0x%x.\n", error ); - - Init_Face( filename ); - Load_Glyphs( txt, txtlen ); - Init_Raster_Areas( txt, txtlen ); - - /* Do the real work now */ - - Render_All_Glyphs( txt, txtlen ); - Dump_Raster_Map( &bit, stdout ); - - /* Clean up */ - - Done_Raster_Areas(); - Done_Glyphs(); - Done_Face(); - - /* That's all, folks! */ - - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ -} - - -/* End */ diff --git a/Build/source/libs/freetype/test/ftstrtto.c b/Build/source/libs/freetype/test/ftstrtto.c deleted file mode 100644 index 823632ddbd9..00000000000 --- a/Build/source/libs/freetype/test/ftstrtto.c +++ /dev/null @@ -1,1476 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftstrtto: Making string text from individual glyph information, using */ -/* TrueType Open features. */ -/* */ -/* Keys: */ -/* */ -/* + : fast scale up */ -/* - : fast scale down */ -/* u : fine scale down */ -/* j : fine scale up */ -/* */ -/* h : toggle hinting */ -/* K : toggle kerning */ -/* B : toggle sbit */ -/* S : toggle GSUB */ -/* P : toggle GPOS */ -/* */ -/* q : */ -/* ESC : exit */ -/* */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include -#include -#include - -#include "arabic.h" -#include "blitter.h" -#include "common.h" -#include "display.h" - -#include "freetype.h" -#include "ftxkern.h" -#include "ftxopen.h" -#include "ftxsbit.h" - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - -/* we want to use FREE() to make a compilation with DEBUG_MEMORY happy */ - -#include "ttmemory.h" - -#define MAXPTSIZE 500 /* dtp */ -#define Center_X ( Bit.width / 2 ) /* dtp */ -#define Center_Y ( Bit.rows / 2 ) /* dtp */ - -#define FEATURE_init MAKE_TT_TAG( 'i', 'n', 'i', 't' ) -#define FEATURE_medi MAKE_TT_TAG( 'm', 'e', 'd', 'i' ) -#define FEATURE_fina MAKE_TT_TAG( 'f', 'i', 'n', 'a' ) -#define FEATURE_isol MAKE_TT_TAG( 'i', 's', 'o', 'l' ) - - - char Header[128]; - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - TT_CharMap char_map; - TT_Kerning directory; - - TTO_GSUBHeader gsub_; - TTO_GSUBHeader* gsub; - TTO_GPOSHeader gpos_; - TTO_GPOSHeader* gpos; - TTO_GDEFHeader gdef_; - TTO_GDEFHeader* gdef; - - TT_Big_Glyph_Metrics metrics; - TT_Outline outline; - TT_Face_Properties face_properties; - TT_Instance_Metrics imetrics; - - TT_SBit_Image* sbit; - - int pt_size; - int ttc_index; - TT_Bool hinted; - TT_Bool gray_render; - TT_Bool r2l; - TT_Bool vertical; - - TT_Bool has_kern; - TT_Bool use_kern; - TT_Bool has_gdef; - TT_Bool has_gsub; - TT_Bool use_gsub; - TT_Bool has_gpos; - TT_Bool use_gpos; - TT_Bool has_sbit; - TT_Bool use_sbit; - TT_Bool glyph_has_sbit; - - TT_Bool default_language_system; - - int Fail; - - char* char_string; - - TT_UShort glyph_code_array[129]; - TT_ULong char_code[128]; - TT_UShort properties[128]; - - TT_UShort* glyph_code; - int num_glyphs; - - TT_ULong script_tag; - char* script_tag_string; - TT_UShort gsub_script_index; - TT_UShort gpos_script_index; - - TT_ULong language_tag; - char* language_tag_string; - TT_UShort gsub_language_index; - TT_UShort gpos_language_index; - TT_UShort gsub_req_feature_index = 0xFFFF; - TT_UShort gpos_req_feature_index = 0xFFFF; - - TT_ULong* feature_tags; - char** feature_tag_strings; - TT_UShort* gsub_feature_indices; - TT_UShort* gpos_feature_indices; - int num_features; - - - static void Select_CMap( void ) - { - TT_UShort i, n; - TT_UShort platform, encoding; - - - n = face_properties.num_CharMaps; - - /* try pid/eid (3,10) before (3,1) */ - - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - if ( platform == 3 && encoding == 10 ) - { - TT_Get_CharMap( face, i, &char_map ); - break; - } - } - - if ( i == n ) - { - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - if ( platform == 3 && encoding == 1 ) - { - TT_Get_CharMap( face, i, &char_map ); - break; - } - } - } - - /* we try only pid/eid (0,0) if no (3,1) map is found -- many Windows - fonts have only rudimentary (0,0) support. */ - - if ( i == n ) - { - for ( i = 0; i < n; i++ ) - { - TT_Get_CharMap_ID( face, i, &platform, &encoding ); - if ( platform == 0 && encoding == 0 ) - { - TT_Get_CharMap( face, i, &char_map ); - break; - } - } - - if ( i == n ) - Panic( "Sorry, but this font doesn't contain" - " any Unicode mapping table.\n" ); - } - } - - - /* Convert a Latin 1 string to a string of glyph indexes. */ - /* */ - /* IMPORTANT NOTE: */ - /* */ - /* There is no portable way to convert from any system's char. code */ - /* to Unicode. This function simply takes a char. string as argument */ - /* and `interprets' each character as a Unicode char. index with no */ - /* further check. */ - /* */ - /* We interpret the command line string as Unicode with the high byte */ - /* set to zero. This is equivalent to Latin-1. */ - - static void Latin1Char_To_Glyph( char* source ) - { - TT_UShort n; - - - glyph_code = glyph_code_array + 1; /* we want to make glyph_code[-1] */ - glyph_code[-1] = 0; /* possible. */ - - for ( n = 0; n < 128 && source[n]; n++ ) - { - char_code[n] = (TT_ULong)( (unsigned char)source[n] ); - glyph_code[n] = TT_Char_Index( char_map, char_code[n] ); - } - - num_glyphs = n; - } - - - static void UTF8Char_To_Glyph( char* source ) - { - TT_UShort in, out, in_code; - TT_ULong out_code; - TT_UShort count, limit; - - - glyph_code = glyph_code_array + 1; /* we want to make glyph_code[-1] */ - glyph_code[-1] = 0; /* possible. */ - - for ( in = out = 0, count = limit = 1, in_code = out_code = 0; - in < 128 && source[in]; in++ ) - { - in_code = (TT_UShort)( (unsigned char)source[in] ); - - if ( in_code >= 0xC0 ) - { - limit = 1; - count = 1; - - if ( in_code < 0xE0 ) /* U+0080 - U+07FF */ - { - limit = 2; - out_code = in_code & 0x1F; - } - else if ( in_code < 0xF0 ) /* U+0800 - U+FFFF */ - { - limit = 3; - out_code = in_code & 0x0F; - } - else if ( in_code < 0xF8 ) /* U+10000 - U+1FFFFF */ - { - limit = 4; - out_code = in_code & 0x07; - } - continue; - } - else if ( in_code >= 0x80 ) - { - count++; - - if ( count <= limit ) - { - out_code <<= 6; - out_code += in_code & 0x3F; - } - if ( count != limit ) - continue; - } - else - out_code = in_code; - - char_code[out] = out_code; - glyph_code[out++] = TT_Char_Index( char_map, out_code ); - } - - num_glyphs = out; - } - - - static TT_Error Reset_Scale( int pointSize ) - { - TT_Error error; - - - error = TT_Set_Instance_CharSize( instance, pointSize * 64L ); - if ( error ) - { - RestoreScreen(); - Panic( "Could not reset instance, code = 0x%x.\n", error ); - } - - TT_Get_Instance_Metrics( instance, &imetrics ); - - /* now re-allocate the small bitmap */ - if ( gray_render ) - { - Init_Small( imetrics.x_ppem, imetrics.y_ppem ); - Clear_Small(); - } - - return TT_Err_Ok; - } - - - static TT_Error Load_TrueType_Char( TT_UShort idx, - TT_Bool hint ) - { - int flags; - TT_Error error; - - - glyph_has_sbit = 0; - - error = TT_Load_Glyph_Bitmap( face, instance, idx, sbit ); - if ( error == TT_Err_Ok ) - { - has_sbit = 1; - glyph_has_sbit = 1; - } - - if ( glyph_has_sbit && use_sbit ) - return TT_Err_Ok; - - flags = TTLOAD_SCALE_GLYPH; - if ( hint ) - flags |= TTLOAD_HINT_GLYPH; - - return TT_Load_Glyph( instance, glyph, idx, flags ); - } - - - static TT_Error Get_Kern_Values( TT_UShort idx, - TT_Pos* x, - TT_Pos* y ) - { - TT_UShort i; - TT_Kern_Subtable table; - TT_Kern_0_Pair* pairs_0; - - TT_UShort min, max, new_min, new_max, middle; - TT_Long target_idx, current_idx; - - - *x = 0; - *y = 0; - - for ( i = 0; i < directory.nTables; i++ ) - { - table = directory.tables[i]; - - /* handle only horizontal kerning tables */ - - if ( table.coverage & 0x0001 ) - { - switch ( table.format ) - { - case 0: - pairs_0 = table.t.kern0.pairs; - target_idx = ( glyph_code[idx - 1] << 16 ) + glyph_code[idx]; - - /* binary search */ - - new_min = 0; - new_max = table.t.kern0.nPairs - 1; - - do - { - min = new_min; - max = new_max; - middle = max - ( ( max - min ) >> 1 ); - - current_idx = ( pairs_0[middle].left << 16 ) + - pairs_0[middle].right; - - if ( target_idx == current_idx ) - { - *x += pairs_0[middle].value; - break; - } - else if ( target_idx < current_idx ) - { - if ( middle == min ) - break; - new_max = middle - 1; - } - else - { - if ( middle == max ) - break; - new_min = middle + 1; - } - } while ( min < max ); - - break; - - /* we currently ignore format 2 kerning tables */ - - case 2: - break; - } - } - } - - /* scaling */ - - *x = *x * imetrics.x_scale / 0x10000; - *y = *y * imetrics.y_scale / 0x10000; - - return TT_Err_Ok; - } - - - /* for testing purposes, we always select the last available alternate - glyph, not using the `data' field. */ - - static TT_UShort alternate_function( TT_ULong pos, - TT_UShort glyphID, - TT_UShort num_alternates, - TT_UShort* alternates, - void* data ) - { - return num_alternates - 1; - } - - - static TT_Error Render_All( void ) - { - TT_Pos x, y, z, min_x, min_y, max_x, max_y; - TT_Pos kern_x, kern_y; - TT_Pos back_x, back_y; - TT_Pos* X; - TT_Pos* Y; - int i, n, back; - TT_UShort* gc; - TT_UShort glyph_property = 0; - - TT_Error error; - - TTO_GSUB_String in, out; - TTO_GPOS_Data* gd = NULL; - TTO_GPOS_Data* curr_gd; - TTO_GPOS_Data empty_gd = {0, 0, 0, 0, 0, 0}; - - - /* On the first pass, we compute the compound bounding box */ - - x = y = 0; - kern_x = kern_y = 0; - min_x = min_y = max_x = max_y = 0; - - in.length = num_glyphs; - in.pos = 0; - in.string = glyph_code; - in.properties = properties; - in.components = NULL; - in.ligIDs = NULL; - - out.pos = 0; - out.allocated = 0; - out.string = NULL; - out.properties = NULL; - out.components = NULL; - out.ligIDs = NULL; - - if ( has_gsub && use_gsub ) - { - error = TT_GSUB_Apply_String( gsub, &in, &out ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - else - out = in; - - if ( has_gpos && use_gpos ) - { - error = TT_GPOS_Apply_String( instance, glyph, gpos, - hinted ? TTLOAD_HINT_GLYPH : 0, - &out, &gd, 0, r2l ); - if ( error && error != TTO_Err_Not_Covered ) - return error; - } - - n = out.length; - gc = out.string; - - /* we save the glyph positions for future reference as needed - for mark glyphs attached to base glyphs in TTO_GPOS_Data */ - - X = (TT_Pos*)malloc( n * sizeof ( TT_Pos ) ); - Y = (TT_Pos*)malloc( n * sizeof ( TT_Pos ) ); - if ( !X || !Y ) - Panic( "Can't allocate position arrays.\n" ); - - has_sbit = 0; - curr_gd = &empty_gd; - - for ( i = 0; i < n; i++ ) - { - X[i] = x; - Y[i] = y; - - error = Load_TrueType_Char( gc[i], hinted ); - if ( error == TT_Err_Ok ) - { - if ( glyph_has_sbit && use_sbit ) - metrics = sbit->metrics; - else - TT_Get_Glyph_Big_Metrics( glyph, &metrics ); - if ( has_kern && use_kern ) - Get_Kern_Values( i, &kern_x, &kern_y ); - - if ( gd ) - { - curr_gd = &gd[i]; - - /* search the base glyph */ - - back_x = gd[i].x_pos; - back_y = gd[i].y_pos; - back = i - gd[i].back; - - while ( gd[back].back ) - { - back_x += gd[back].x_pos; - back_y += gd[back].y_pos; - back -= gd[back].back; - } - } - else - { - back_x = back_y = 0; - back = i; - } - - z = X[back] + metrics.bbox.xMin + kern_x + back_x; - if ( min_x > z ) - min_x = z; - - z = X[back] + metrics.bbox.xMax + kern_x + back_x; - if ( max_x < z ) - max_x = z; - - z = Y[back] + metrics.bbox.yMin + kern_y + back_y; - if ( min_y > z ) - min_y = z; - - z = Y[back] + metrics.bbox.yMax + kern_y + back_y; - if ( max_y < z ) - max_y = z; - - if ( has_gdef ) - { - error = TT_GDEF_Get_Glyph_Property( gdef, gc[i], &glyph_property ); - if ( error ) - return error; - } - - /* advance only if it is not a mark glyph */ - - if ( !( glyph_property & TTO_MARK ) ) - { - if ( vertical ) - y += kern_y + curr_gd->y_advance + - ( curr_gd->new_advance ? 0 : metrics.vertAdvance ); - else - x += kern_x + curr_gd->x_advance + - ( curr_gd->new_advance ? 0 : metrics.horiAdvance ); - } - } - else - Fail++; - } - - /* We now center the bbox inside the target bitmap */ - - min_x = min_x & -64; - min_y = min_y & -64; - - max_x = ( max_x + 63 ) & -64; - max_y = ( max_y + 63 ) & -64; - - max_x -= min_x; - max_y -= min_y; - - min_x = ( ( Bit.width << 6 ) - max_x ) / 2; - min_y = ( ( Bit.rows << 6 ) - max_y ) / 2; - - max_x += min_x; - max_y += min_y; - - /* On the second pass, we render each glyph to its centered position. */ - /* This is slow, because we reload each glyph to render it! Using a */ - /* cache (for glyphs, metrics, properties, and kern values) could */ - /* speed this up significantly in real applications. */ - - x = vertical ? min_x : ( r2l ? max_x : min_x ); - y = vertical ? ( r2l ? min_y : max_y ) : min_y; - - for ( i = 0; i < n; i++ ) - { - error = Load_TrueType_Char( gc[i], hinted ); - if ( error == TT_Err_Ok ) - { - if ( glyph_has_sbit && use_sbit ) - metrics = sbit->metrics; - else - TT_Get_Glyph_Big_Metrics( glyph, &metrics ); - if ( has_kern && use_kern ) - Get_Kern_Values( i, &kern_x, &kern_y ); - - if ( gd ) - curr_gd = &gd[i]; - - if ( has_gdef ) - (void)TT_GDEF_Get_Glyph_Property( gdef, gc[i], &glyph_property ); - - if ( !( glyph_property & TTO_MARK ) ) - { - if ( r2l ) - { - if ( vertical ) - y += curr_gd->y_advance + - ( curr_gd->new_advance ? 0 : metrics.vertAdvance ); - else - x -= curr_gd->x_advance + - ( curr_gd->new_advance ? 0 : metrics.horiAdvance ); - } - else - { - if ( vertical ) - y -= kern_y; - else - x += kern_x; - } - } - - /* We must specify the upper left corner of the bitmap, but the - lower left corner for the outline. Another complication is that - Blit_Bitmap() assumes that increasing y values means moving - downwards. - - For vertical layout, the origin of the horizontal and vertical - bearings of embedded bitmaps is the top, thus we shift the - outline glyphs down. - - Now we finally round all values to integer pixels. */ - - if ( glyph_has_sbit && use_sbit ) - { - if ( !curr_gd->back ) - { - X[i] = ( ( ( x + curr_gd->x_pos + - vertical ? metrics.vertBearingX : - metrics.horiBearingX ) - + 32 ) & -64 ) >> 6; - Y[i] = Bit.rows - - ( ( ( ( y + curr_gd->y_pos + - vertical ? metrics.vertBearingY : - metrics.horiBearingY ) - + 32 ) & -64 ) >> 6 ); - Blit_Bitmap( &Bit, - &sbit->map, - gray_render ? 8 : 1, - X[i], Y[i], gray_palette[4] ); - } - else - { - /* search the base glyph */ - - back_x = gd[i].x_pos; - back_y = gd[i].y_pos; - back = i - gd[i].back; - - while ( gd[back].back ) - { - back_x += gd[back].x_pos; - back_y += gd[back].y_pos; - back -= gd[back].back; - } - - Blit_Bitmap( &Bit, - &sbit->map, - gray_render ? 8 : 1, - X[back] + ( ( ( back_x + 32 ) & -64 ) >> 6 ), - Y[back] + ( ( ( back_y + 32 ) & -64 ) >> 6 ), - gray_palette[4] ); - } - } - else - { - if ( !curr_gd->back ) - { - X[i] = ( ( x + curr_gd->x_pos + 32 ) & -64 ) >> 6; - Y[i] = ( ( y + curr_gd->y_pos - - ( vertical ? - metrics.vertBearingY + metrics.bbox.yMax : - 0 ) - + 32 ) & -64 ) >> 6; - Render_Single_Glyph( gray_render, - glyph, - X[i], Y[i] ); - } - else - { - /* search the base glyph */ - - back_x = gd[i].x_pos; - back_y = gd[i].y_pos; - back = i - gd[i].back; - - while ( gd[back].back ) - { - back_x += gd[back].x_pos; - back_y += gd[back].y_pos; - back -= gd[back].back; - } - - Render_Single_Glyph( - gray_render, - glyph, - X[back] + ( ( ( back_x + 32 ) & -64 ) >> 6 ), - Y[back] + ( ( ( back_y + 32 ) & -64 ) >> 6 ) ); - } - } - - if ( !( glyph_property & TTO_MARK ) ) - { - if ( r2l ) - { - if ( vertical ) - y += kern_y; - else - x -= kern_x; - } - else - { - if ( vertical ) - y -= curr_gd->y_advance + - ( curr_gd->new_advance ? 0 : metrics.vertAdvance ); - else - x += curr_gd->x_advance + - ( curr_gd->new_advance ? 0 : metrics.horiAdvance ); - } - } - } - } - - if ( has_gsub && use_gsub ) - { - if ( out.string ) { - FREE( out.string ); - FREE( out.components ); - FREE( out.ligIDs ); - } - if ( out.properties ) - FREE( out.properties ); - } - - if ( has_gpos && use_gpos ) - FREE( gd ); - - return TT_Err_Ok; - } - - - static int Process_Event( TEvent* event ) - { - switch ( event->what ) - { - case event_Quit: /* ESC or q */ - return 0; - - case event_Keyboard: - if ( event->info == 'h' ) /* Toggle hinting */ - hinted = !hinted; - else if ( event->info == 'K' ) /* Toggle kerning */ - use_kern = !use_kern; - else if ( event->info == 'B' ) /* Toggle sbit */ - use_sbit = !use_sbit; - else if ( event->info == 'S' ) /* Toggle gsub */ - use_gsub = !use_gsub; - else if ( event->info == 'P' ) /* Toggle gpos */ - use_gpos = !use_gpos; - break; - - case event_Rotate_Glyph: - break; - - case event_Scale_Glyph: - pt_size += event->info; - if ( pt_size < 1 ) pt_size = 1; - if ( pt_size > MAXPTSIZE ) pt_size = MAXPTSIZE; - break; - - case event_Change_Glyph: - break; - } - - return 1; - } - - - static void Usage( char* execname ) - { - fprintf( stderr, - "\n" - "ftstrtto: TrueType Open String Test Display -- part of the FreeType project\n" - "---------------------------------------------------------------------------\n" - "\n" - "Usage: %s [options below] ptsize fontname[.ttf|.ttc] [string|-]\n" - "\n" - " -c C use font with index C in TrueType collection (default: 0)\n" - " -f F use feature F (can be specified more than once)\n" - " -g gray-level rendering\n" - " -l L use language L\n" - " -r R use resolution R dpi (default: 96)\n" - " -s S use script S\n" - " -u interpret input data as UTF8-encoded\n" - " -v display string vertically\n" - " -x display string from right to left\n" - "\n" - " F, L, and S must be specified as 4-character tags.\n" - " Specifying only F and S selects default language system of S.\n" - " Specifying only L and S selects the req. feature of L only (if any).\n" - "\n" - " If `-' is specified as input string, stdin is read instead.\n" - "\n", execname ); - - exit( EXIT_FAILURE ); - } - - - static TT_ULong Make_Tag( char* tag_string ) - { - char t1 = ' ', t2 = ' ', t3 = ' ', t4 = ' '; - - - if ( !tag_string ) - return 0; - - t1 = tag_string[0]; - if ( tag_string[1] ) - t2 = tag_string[1]; - if ( tag_string[2] ) - t3 = tag_string[2]; - if ( tag_string[3] ) - t4 = tag_string[3]; - - return MAKE_TT_TAG( t1, t2, t3, t4 ); - } - - - int main( int argc, - char** argv ) - { - int i, old_pt_size, orig_pt_size, file; - - int graphics_initialized = 0; - - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - - int option; - int res = 96; - int utf8 = 0; - - TT_Error error; - TEvent event; - - - execname = argv[0]; - - while ( 1 ) - { - option = ft_getopt( argc, argv, "c:f:gl:r:s:uvx" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'c': - ttc_index = atoi( ft_optarg ); - if ( ttc_index < 0 ) - Usage( execname ); - break; - - case 'f': - num_features++; - feature_tag_strings = (char**) - realloc( feature_tag_strings, - num_features * sizeof ( char* ) ); - feature_tags = (TT_ULong*) - realloc( feature_tags, - num_features * sizeof ( TT_ULong ) ); - if ( !feature_tag_strings || !feature_tags ) - Panic( "Can't allocate feature tag arrays.\n" ); - - feature_tag_strings[num_features - 1] = ft_optarg; - if ( !(feature_tags[num_features - 1] = Make_Tag( ft_optarg ) ) ) - Usage( execname ); - break; - - case 'g': - gray_render = 1; - break; - - case 'l': - language_tag_string = ft_optarg; - if ( !(language_tag = Make_Tag( ft_optarg ) ) ) - Usage( execname ); - break; - - case 'r': - res = atoi( ft_optarg ); - if ( res < 1 ) - Usage( execname ); - break; - - case 's': - script_tag_string = ft_optarg; - if ( !(script_tag = Make_Tag( ft_optarg ) ) ) - Usage( execname ); - break; - - case 'u': - utf8 = 1; - break; - - case 'v': - vertical = 1; - break; - - case 'x': - r2l = 1; - break; - - default: - Usage( execname ); - break; - } - } - - argc -= ft_optind; - argv += ft_optind; - - if ( argc <= 1 ) - Usage( execname ); - - if ( sscanf( argv[0], "%d", &orig_pt_size ) != 1 ) - orig_pt_size = 64; - - file = 1; - - /* Initialize engine */ - - error = TT_Init_FreeType( &engine ); - if ( error ) - Panic( "Error while initializing engine, code = 0x%x.\n", error ); - - error = TT_Init_Kerning_Extension( engine ); - if ( error ) - Panic( "Error while initializing kerning extension, code = 0x%x.\n", - error ); - - error = TT_Init_SBit_Extension( engine ); - if ( error ) - Panic( "Error while initializing sbit extension, code = 0x%x.\n", - error ); - - error = TT_Init_GDEF_Extension( engine ); - if ( error ) - Panic( "Error while initializing GDEF extension, code = 0x%x.\n", - error ); - - error = TT_Init_GSUB_Extension( engine ); - if ( error ) - Panic( "Error while initializing GSUB extension, code = 0x%x.\n", - error ); - - error = TT_Init_GPOS_Extension( engine ); - if ( error ) - Panic( "Error while initializing GPOS extension, code = 0x%x.\n", - error ); - - pt_size = orig_pt_size; - hinted = 1; - use_gsub = 1; - use_gpos = 1; - use_kern = 1; - use_sbit = 1; - - i = strlen( argv[file] ); - while ( i > 0 && argv[file][i] != '\\' && argv[file][i] != '/' ) - { - if ( argv[file][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[file], 128 ); - strncpy( alt_filename, argv[file], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open `%s'.\n", filename ); - else if ( error ) - Panic( "Error while opening `%s', code = 0x%x.\n", - filename, error ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &face_properties ); - - /* open font in collection */ - - if ( ttc_index >= face_properties.num_Faces ) - Panic( "There is no collection with index %d in this font file.\n", - ttc_index ); - - TT_Close_Face( face ); - - error = TT_Open_Collection( engine, filename, ttc_index, &face ); - if ( error ) - Panic( "Error while opening collection %d in `%s', code = 0x%x.\n", - ttc_index, filename, error ); - - /* create glyph object */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - Panic( "Could not create glyph container, code = 0x%x.\n", error ); - - /* create sbit slot */ - - error = TT_New_SBit_Image( &sbit ); - if ( error ) - Panic( "Could not create sbit slot, code = 0x%x.\n" , error); - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - Panic( "Could not create instance for `%s', code = 0x%x.\n", - filename, error ); - - error = TT_Set_Instance_Resolutions( instance, res, res ); - if ( error ) - Panic( "Could not set device resolutions, code = 0x%x.\n", error ); - - error = TT_Get_Kerning_Directory( face, &directory ); - if ( error ) - Panic( "Could not get kerning directory, code = 0x%x.\n", error ); - - /* load all kerning tables */ - - for ( i = 0; i < directory.nTables; i++ ) - { - error = TT_Load_Kerning_Table( face, i ); - if ( error ) - Panic( "Could not load kerning table, code = 0x%x.\n", error ); - } - - if ( directory.nTables ) - has_kern = 1; - - Select_CMap(); - - /* GDEF support */ - - gdef = &gdef_; - - error = TT_Load_GDEF_Table( face, gdef ); - if ( !error ) - has_gdef = 1; - else if ( error != TT_Err_Table_Missing ) - Panic( "Error while loading GDEF table, code = 0x%x.\n", error ); - - /* we assign glyph properties in case no GDEF table is available */ - - if ( !has_gdef ) - { - Build_Arabic_Glyph_Properties( char_map, face_properties.num_Glyphs, - &gdef ); - if ( gdef ) - has_gdef = 1; - } - - /* GSUB and GPOS support */ - - gsub = &gsub_; - gpos = &gpos_; - - error = TT_Load_GSUB_Table( face, gsub, gdef ); - if ( !error ) - { - if ( script_tag && feature_tags ) - has_gsub = 1; - if ( script_tag && language_tag ) - has_gsub = 1; - } - else if ( error != TT_Err_Table_Missing ) - Panic( "Error while loading GSUB table, code = 0x%x.\n", error ); - - error = TT_Load_GPOS_Table( face, gpos, gdef ); - if ( !error ) - { - if ( script_tag && feature_tags ) - has_gpos = 1; - if ( script_tag && language_tag ) - has_gpos = 1; - } - else if ( error != TT_Err_Table_Missing ) - Panic( "Error while loading GPOS table, code = 0x%x.\n", error ); - - TT_GSUB_Clear_Features( gsub ); - TT_GPOS_Clear_Features( gpos ); - - if ( ( has_gsub || has_gpos ) && !language_tag ) - default_language_system = 1; - - /* we allocate one element more to always have a non-zero value - for malloc */ - gsub_feature_indices = (TT_UShort*) - malloc( ( num_features + 1 ) * - sizeof ( TT_UShort ) ); - gpos_feature_indices = (TT_UShort*) - malloc( ( num_features + 1 ) * - sizeof ( TT_UShort ) ); - if ( !gsub_feature_indices || !gpos_feature_indices ) - Panic( "Can't allocate feature index arrays.\n" ); - - if ( has_gsub ) - { - error = TT_GSUB_Select_Script( gsub, - script_tag, - &gsub_script_index ); - if ( error ) - { - gsub_script_index = 0xFFFF; - goto try_gpos; - } - - if ( default_language_system ) - { - for ( i = 0; i < num_features; i++ ) - { - error = TT_GSUB_Select_Feature( gsub, - feature_tags[i], - gsub_script_index, 0xFFFF, - &gsub_feature_indices[i] ); - if ( error ) - gsub_feature_indices[i] = 0xFFFF; - } - } - else - { - error = TT_GSUB_Select_Language( gsub, - language_tag, - gsub_script_index, - &gsub_language_index, - &gsub_req_feature_index ); - if ( error ) - { - gsub_language_index = 0xFFFF; - goto try_gpos; - } - - for ( i = 0; i < num_features; i++ ) - { - error = TT_GSUB_Select_Feature( gsub, - feature_tags[i], - gsub_script_index, - gsub_language_index, - &gsub_feature_indices[i] ); - if ( error ) - gsub_feature_indices[i] = 0xFFFF; - } - } - - if ( gsub_req_feature_index != 0xFFFF ) - TT_GSUB_Add_Feature( gsub, gsub_req_feature_index, ALL_GLYPHS ); - else if ( !num_features ) - has_gsub = 0; - - for ( i = 0; i < num_features; i++ ) - { - if ( gsub_feature_indices[i] != 0xFFFF ) - { - if ( feature_tags[i] == FEATURE_init ) - TT_GSUB_Add_Feature( gsub, gsub_feature_indices[i], initial ); - else if ( feature_tags[i] == FEATURE_medi ) - TT_GSUB_Add_Feature( gsub, gsub_feature_indices[i], medial ); - else if ( feature_tags[i] == FEATURE_fina ) - TT_GSUB_Add_Feature( gsub, gsub_feature_indices[i], final ); - else if ( feature_tags[i] == FEATURE_isol ) - TT_GSUB_Add_Feature( gsub, gsub_feature_indices[i], isolated ); - else - TT_GSUB_Add_Feature( gsub, gsub_feature_indices[i], ALL_GLYPHS ); - } - } - - TT_GSUB_Register_Alternate_Function( gsub, alternate_function, NULL ); - } - - try_gpos: - - if ( has_gpos ) - { - error = TT_GPOS_Select_Script( gpos, - script_tag, - &gpos_script_index ); - if ( error ) - { - gpos_script_index = 0xFFFF; - goto check; - } - - if ( default_language_system ) - { - for ( i = 0; i < num_features; i++ ) - { - error = TT_GPOS_Select_Feature( gpos, - feature_tags[i], - gpos_script_index, 0xFFFF, - &gpos_feature_indices[i] ); - if ( error ) - gpos_feature_indices[i] = 0xFFFF; - } - } - else - { - error = TT_GPOS_Select_Language( gpos, - language_tag, - gpos_script_index, - &gpos_language_index, - &gpos_req_feature_index ); - if ( error ) - { - gpos_language_index = 0xFFFF; - goto check; - } - - for ( i = 0; i < num_features; i++ ) - { - error = TT_GPOS_Select_Feature( gpos, - feature_tags[i], - gpos_script_index, - gpos_language_index, - &gpos_feature_indices[i] ); - if ( error ) - gpos_feature_indices[i] = 0xFFFF; - } - } - - if ( gpos_req_feature_index != 0xFFFF ) - TT_GPOS_Add_Feature( gpos, gpos_req_feature_index, ALL_GLYPHS ); - else if ( !num_features ) - has_gpos = 0; - - for ( i = 0; i < num_features; i++ ) - { - if ( gpos_feature_indices[i] != 0xFFFF ) - { - if ( feature_tags[i] == FEATURE_init ) - TT_GPOS_Add_Feature( gpos, gpos_feature_indices[i], initial ); - else if ( feature_tags[i] == FEATURE_medi ) - TT_GPOS_Add_Feature( gpos, gpos_feature_indices[i], medial ); - else if ( feature_tags[i] == FEATURE_fina ) - TT_GPOS_Add_Feature( gpos, gpos_feature_indices[i], final ); - else if ( feature_tags[i] == FEATURE_isol ) - TT_GPOS_Add_Feature( gpos, gpos_feature_indices[i], isolated ); - else - TT_GPOS_Add_Feature( gpos, gpos_feature_indices[i], ALL_GLYPHS ); - } - } - } - - check: - - if ( has_gsub || has_gpos ) - { - if ( gsub_script_index == 0xFFFF && gpos_script_index == 0xFFFF ) - Panic( "Requested script `%-4.4s' not found.\n", - script_tag_string ); - - if ( default_language_system ) - { - for ( i = 0; i < num_features; i++ ) - { - if ( gsub_feature_indices[i] == 0xFFFF && - gpos_feature_indices[i] == 0xFFFF ) - Panic( "Requested feature `%-4.4s'\n" - "for default language system of script `%-4.4s' not found.\n", - feature_tag_strings[i], script_tag_string ); - } - } - else - { - if ( gsub_language_index == 0xFFFF && gpos_language_index == 0xFFFF ) - Panic( "Requested language `%-4.4s'\n" - "for script `%-4.4s' not found.\n", - language_tag_string, script_tag_string ); - - for ( i = 0; i < num_features; i++ ) - { - if ( gsub_feature_indices[i] == 0xFFFF && - gpos_feature_indices[i] == 0xFFFF ) - Panic( "Requested feature `%-4.4s'\n" - "for script `%-4.4s', language `%-4.4s' not found.\n", - feature_tag_strings[i], script_tag_string, - language_tag_string ); - } - } - } - - if ( !graphics_initialized ) - { - graphics_initialized = 1; - - if ( gray_render ) - { - if ( !SetGraphScreen( Graphics_Mode_Gray ) ) - Panic( "Could not set up grayscale graphics mode.\n" ); - - TT_Set_Raster_Gray_Palette( engine, virtual_palette ); - } - else - { - if ( !SetGraphScreen( Graphics_Mode_Mono ) ) - Panic( "Could not set up mono graphics mode.\n" ); - } - } - - Init_Display( gray_render ); - - Reset_Scale( pt_size ); - - old_pt_size = pt_size; - - Fail = 0; - - /* get string to display, if any */ - - if ( argv[2] ) - { - if ( argv[2][0] == '-' ) - { - int ch; - char* p; - - - char_string = (char*)malloc( 128 * sizeof ( char ) ); - if ( !char_string || !gpos_feature_indices ) - Panic( "Can't allocate character string.\n" ); - p = char_string; - - for ( i = 0; i < 128; i++ ) - { - ch = getchar(); - if ( ch == '\n' || ch == EOF ) - { - *p = '\0'; - break; - } - - *p++ = (char)ch; - } - - *p = '\0'; - } - else - char_string = argv[2]; - } - else - char_string = "The quick brown fox jumps over the lazy dog"; - - if ( utf8 ) - UTF8Char_To_Glyph( char_string ); - else - Latin1Char_To_Glyph( char_string ); - - /* we assign Arabic script features (e.g. `initial' or `final') */ - - Assign_Arabic_Properties( char_code, properties, num_glyphs ); - - /* the main loop */ - - for ( ;; ) - { - int key; - - - Clear_Display(); - - error = Render_All(); - if ( error ) - Panic( "Error while rendering string, code = 0x%x.\n", error ); - - if ( gray_render ) - Convert_To_Display_Palette(); - - sprintf( Header, - "%s: %ddpi, %dpt, %dppem hinting: %s%s%s%s%s%s%s%s%s", - ft_basename( filename ), - res, - pt_size, - imetrics.x_ppem, - hinted ? "on" : "off", - has_kern ? " kerning: " : "", - has_kern ? ( use_kern ? "on" : "off" ) : "", - has_sbit ? " sbit: " : "", - has_sbit ? ( use_sbit ? "on" : "off" ) : "", - has_gsub ? " GSUB: " : "", - has_gsub ? ( use_gsub ? "on" : "off" ) : "", - has_gpos ? " GPOS: " : "", - has_gpos ? ( use_gpos ? "on" : "off" ) : "" ); - - Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols ); - -#ifndef X11 -#ifndef OS2 - Print_XY( 0, 0, Header ); -#endif -#endif - - Get_Event( &event ); - if ( !( key = Process_Event( &event ) ) ) - goto Fin; - - if ( pt_size != old_pt_size ) - { - if ( Reset_Scale( pt_size ) ) - Panic( "Could not resize font.\n" ); - - old_pt_size = pt_size; - } - } - - Fin: - RestoreScreen(); - - TT_Done_SBit_Image( sbit ); - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - printf( "Execution completed successfully.\n" ); - printf( "Fails = %d.\n", Fail ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ -} - - -/* End */ diff --git a/Build/source/libs/freetype/test/fttimer.c b/Build/source/libs/freetype/test/fttimer.c deleted file mode 100644 index c1e3b9156b5..00000000000 --- a/Build/source/libs/freetype/test/fttimer.c +++ /dev/null @@ -1,455 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project - a Free and Portable Quality TrueType Renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* fttimer: A simple performance benchmark. Now with graylevel rendering */ -/* with the '-g' option. */ -/* */ -/* Be aware that the timer program benchmarks different things */ -/* in each release of the FreeType library. Thus, performance */ -/* should only be compared between similar release numbers. */ -/* */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. In no way does it shows the final */ -/* high-level interface that client applications will use. */ -/* */ -/****************************************************************************/ - -#include -#include -#include - -#include "common.h" -#include "freetype.h" - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - -#ifndef __USE_MISC -#define __USE_MISC /* MkLinux needs this to get a definition of - CLOCKS_PER_SEC */ -#endif - -#include /* for clock() */ - -/* SunOS 4.1.* does not define CLOCKS_PER_SEC, so include */ -/* to get the HZ macro which is the equivalent. */ -#if defined(__sun__) && !defined(SVR4) && !defined(__SVR4) -#include -#define CLOCKS_PER_SEC HZ -#endif - -#define MAX_GLYPHS 512 /* Maximum number of glyphs rendered at one time */ - - char Header[128]; - - TT_Error error; - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Outline outline; - TT_Glyph_Metrics metrics; - - TT_Face_Properties properties; - - TT_F26Dot6* cur_x; - TT_F26Dot6* cur_y; - - unsigned short* cur_endContour; - unsigned char* cur_touch; - - TT_Outline outlines[MAX_GLYPHS]; - - int num_glyphs; - int tab_glyphs; - int cur_glyph; - int cur_point; - unsigned short cur_contour; - - extern TT_Raster_Map Bit; - - int Fail; - int Num; - - short visual; /* display glyphs while rendering */ - short gray_render; /* smooth fonts with gray levels */ - - - static void Clear_Buffer( void ); - - -/*******************************************************************/ -/* */ -/* Get_Time: */ -/* */ -/* Returns the current time in milliseconds. */ -/* */ -/*******************************************************************/ - - long Get_Time( void ) - { - return clock() * 1000 / CLOCKS_PER_SEC; - } - - -/*******************************************************************/ -/* */ -/* Init_Engine: */ -/* */ -/* Allocates bitmap, render pool and other structs... */ -/* */ -/*******************************************************************/ - - void Init_Engine( void ) - { - Bit.rows = vio_Height; /* The whole window */ - Bit.width = vio_Width; - - if ( gray_render ) - { - Bit.cols = Bit.width; - Bit.flow = TT_Flow_Up; - Bit.size = Bit.rows * Bit.width; - } - else - { - Bit.cols = (Bit.width + 7) / 8; /* convert to # of bytes */ - Bit.flow = TT_Flow_Up; - Bit.size = Bit.rows * Bit.cols; /* number of bytes in buffer */ - } - - Bit.bitmap = (void*)malloc( Bit.size ); - if ( !Bit.bitmap ) - Panic( "ERROR: not enough memory to allocate bitmap!\n" ); - - Clear_Buffer(); - } - - -/*******************************************************************/ -/* */ -/* Clear_Buffer: */ -/* */ -/* Clears current bitmap. */ -/* */ -/*******************************************************************/ - - static void Clear_Buffer( void ) - { - if ( gray_render ) - memset( Bit.bitmap, gray_palette[0], Bit.size ); - else - memset( Bit.bitmap, 0, Bit.size ); - } - - -/*******************************************************************/ -/* */ -/* LoadTrueTypeChar: */ -/* */ -/* Loads a glyph into memory. */ -/* */ -/*******************************************************************/ - - TT_Error LoadTrueTypeChar( int idx ) - { - error = TT_Load_Glyph( instance, glyph, idx, TTLOAD_DEFAULT ); - if ( error ) - return error; - - TT_Get_Glyph_Outline( glyph, &outline ); - - outline.second_pass = 0; - outline.high_precision = 0; - outline.dropout_mode = 0; - - /* debugging */ -#if 0 - if ( idx == 0 && !visual ) - { - printf( "points = %d\n", outline.points ); - for ( j = 0; j < outline.points; j++ ) - printf( "%02x (%01hx,%01hx)\n", - j, outline.xCoord[j], outline.yCoord[j] ); - printf( "\n" ); - } -#endif - - /* create a new outline */ - TT_New_Outline( outline.n_points, - outline.n_contours, - &outlines[cur_glyph] ); - - /* copy the glyph outline into it */ - outline.high_precision = 0; - outline.second_pass = 0; - TT_Copy_Outline( &outline, &outlines[cur_glyph] ); - - /* translate it */ - TT_Translate_Outline( &outlines[cur_glyph], - vio_Width * 16, - vio_Height * 16 ); - cur_glyph++; - - return TT_Err_Ok; - } - - -/*******************************************************************/ -/* */ -/* ConvertRaster: */ -/* */ -/* Performs scan conversion. */ -/* */ -/*******************************************************************/ - - TT_Error ConvertRaster( int index ) - { - outlines[index].second_pass = 0; - outlines[index].high_precision = 0; - - if ( gray_render ) - return TT_Get_Outline_Pixmap( engine, &outlines[index], &Bit ); - else - return TT_Get_Outline_Bitmap( engine, &outlines[index], &Bit ); - } - - - int main( int argc, char** argv ) - { - int i, total, mode, base, rendered_glyphs; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - - long t, t0, tz0; - - - execname = argv[0]; - - gray_render = 0; - visual = 0; - - while ( argc > 1 && argv[1][0] == '-' ) - { - switch ( argv[1][1] ) - { - case 'g': - gray_render = 1; - break; - - case 'v': - visual = 1; - break; - - default: - Panic( "Unknown argument '%s'!\n", argv[1] ); - } - argc--; - argv++; - } - - if ( argc != 2 ) - { - fprintf( stderr, "fttimer: simple performance timer -- part of the FreeType project\n" ); - fprintf( stderr,"-----------------------------------------------------------------\n\n" ); - fprintf( stderr,"Usage: %s [-g] [-v] fontname[.ttf|.ttc]\n\n", execname ); - fprintf( stderr," where '-g' asks for gray-levels rendering\n" ); - fprintf( stderr," '-v' displays while rendering (slower)\n" ); - - exit( EXIT_FAILURE ); - } - - i = strlen( argv[1] ); - while ( i > 0 && argv[1][i] != '\\' ) - { - if ( argv[1][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[1], 128 ); - strncpy( alt_filename, argv[1], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Initialize engine */ - - if ( (error = TT_Init_FreeType( &engine )) ) - Panic( "Error while initializing engine, code = 0x%x.\n", error ); - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open %s.\n", filename ); - else if ( error ) - Panic( "Error while opening %s, error code = 0x%x.\n", - filename, error ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &properties ); - - num_glyphs = properties.num_Glyphs; - - tab_glyphs = MAX_GLYPHS; - if ( tab_glyphs > num_glyphs ) - tab_glyphs = num_glyphs; - - /* create glyph */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - Panic( "Could not create glyph container.\n" ); - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - Panic( "Could not create instance for %s.\n", filename ); - - error = TT_Set_Instance_CharSize( instance, 400*64 ); - if ( error ) - Panic( "Could not reset instance for %s.\n", filename ); - - if ( gray_render ) - mode = Graphics_Mode_Gray; - else - mode = Graphics_Mode_Mono; - - if ( visual ) - { - if ( !SetGraphScreen( mode ) ) - Panic( "Could not set graphics mode.\n" ); - TT_Set_Raster_Gray_Palette( engine, gray_palette ); - } - else - { - /* This is the default bitmap size used */ - vio_Width = 640; - vio_Height = 450; - } - - Init_Engine(); - - Num = 0; - Fail = 0; - - total = num_glyphs; - base = 0; - - rendered_glyphs = 0; - - t0 = 0; /* Initial time */ - - tz0 = Get_Time(); - - while ( total > 0 ) - { - /* First, preload 'tab_glyphs' in memory */ - - cur_glyph = 0; - cur_point = 0; - cur_contour = 0; - - printf( "loading %d glyphs", tab_glyphs ); - - for ( Num = 0; Num < tab_glyphs; Num++ ) - { - error = LoadTrueTypeChar( base + Num ); - if ( error ) - Fail++; - - total--; - } - - base += tab_glyphs; - - if ( tab_glyphs > total ) - tab_glyphs = total; - - printf( ", rendering... " ); - - /* Now, render the loaded glyphs */ - - t = Get_Time(); - - for ( Num = 0; Num < cur_glyph; Num++ ) - { - if ( (error = ConvertRaster( Num )) ) - Fail++; - else - { - rendered_glyphs ++; - - if ( visual ) - { - sprintf( Header, "Glyph: %5d", Num ); - Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols ); - - Clear_Buffer(); - } - } - } - - t = Get_Time() - t; - if ( t < 0 ) - t += 100L * 60 * 60; - - printf( " = %f s\n", (double)t / 1000 ); - t0 += t; - - /* Now free all loaded outlines */ - for ( Num = 0; Num < cur_glyph; Num++ ) - TT_Done_Outline( &outlines[Num] ); - } - - tz0 = Get_Time() - tz0; - - if ( visual ) - RestoreScreen(); - - TT_Close_Face( face ); - - printf( "\n" ); - printf( "rendered glyphs = %d\n", rendered_glyphs ); - printf( "render time = %f s\n", (double)t0 / 1000 ); - printf( "fails = %d\n", Fail ); - printf( "average glyphs/s = %f\n", - (double)rendered_glyphs / t0 * 1000 ); - - printf( "total timing = %f s\n", (double)tz0 / 1000 ); - printf( "Fails = %d\n", Fail ); - - TT_Done_FreeType( engine ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/ftview.c b/Build/source/libs/freetype/test/ftview.c deleted file mode 100644 index 71ca0d87a28..00000000000 --- a/Build/source/libs/freetype/test/ftview.c +++ /dev/null @@ -1,539 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftview: A simple font viewer. Supports hinting and grayscaling. */ -/* */ -/* */ -/* Keys: */ -/* */ -/* x : fine counter-clockwise rotation */ -/* c : fine clockwise rotation */ -/* */ -/* v : fast counter-clockwise rotation */ -/* b : fast clockwise rotation */ -/* */ -/* + : fast scale up */ -/* - : fast scale down */ -/* u : fine scale down */ -/* j : fine scale up */ -/* */ -/* l : go to next glyph */ -/* k : go to previous glyph */ -/* */ -/* o : go to tenth next glyph */ -/* i : go to tenth previous glyph */ -/* */ -/* 0 : go to hundredth next glyph */ -/* 9 : go to hundredth previous glyph */ -/* */ -/* ) : go to 1000th next glyph */ -/* ( : go to 1000th previous glyph */ -/* */ -/* } : go to 10000th next glyph */ -/* { : go to 10000th previous glyph */ -/* */ -/* n : go to next (or last) .ttf file */ -/* p : go to previous (or first) .ttf file */ -/* */ -/* h : toggle hinting */ -/* */ -/* B : toggle sbit */ -/* */ -/* ESC : exit */ -/* */ -/* */ -/* NOTE: This is just a test program that is used to show off and */ -/* debug the current engine. */ -/* */ -/****************************************************************************/ - -#include -#include -#include - -#include "blitter.h" -#include "common.h" -#include "display.h" -#include "freetype.h" -#include "ftxsbit.h" - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - -#define Pi 3.1415926535 - -#define MAXPTSIZE 500 /* dtp */ -#define Center_X ( Bit.width / 2 ) /* dtp */ -#define Center_Y ( Bit.rows / 2 ) /* dtp */ - -/* - * If Ignore_Err_Not_SBit is not defined, - * "Fail" increase when the glyph does not have sbit and - * sbit_flag is 1. - */ -#define Ignore_Err_Not_SBit 1 - - TT_Engine engine; - - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - - TT_Big_Glyph_Metrics metrics; - TT_Outline outline; - TT_Face_Properties properties; - TT_Instance_Metrics imetrics; - - TT_SBit_Image* sbit; - - int num_glyphs; - - int ptsize; - int hinted; - - char Header[128]; - - int Rotation; - int Fail; - int Num; - - int gray_render; - unsigned int sbit_flag; /* 0 if to display outlines - * 1 if to use embedded bitmaps - * 2 if to show sbit and outline glyphs - */ - - int glyph_has_sbit; - - - - static TT_Error Reset_Scale( int pointSize ) - { - TT_Error error; - TT_SBit_Strike strike; - - - if ( (error = TT_Set_Instance_PointSize( instance, pointSize )) ) - { - RestoreScreen(); - fprintf( stderr, "Error = 0x%x.\n", (unsigned)error ); - Panic( "Could not reset instance.\n" ); - } - TT_Get_Instance_Metrics( instance, &imetrics ); - - /* now re-allocates the small bitmap */ - if ( gray_render ) - { - Init_Small( imetrics.x_ppem, imetrics.y_ppem ); - Clear_Small(); - } - - if ( TT_Get_SBit_Strike( face, instance, &strike ) ) - glyph_has_sbit = 0; - else - glyph_has_sbit = 1; - - return TT_Err_Ok; - } - - - static TT_Error LoadTrueTypeChar( int idx, int hint ) - { - int flags; - - - flags = TTLOAD_SCALE_GLYPH; - if ( hint ) - flags |= TTLOAD_HINT_GLYPH; - - return TT_Load_Glyph( instance, glyph, idx, flags ); - } - - - static TT_Error Render_All( int first_glyph, int ptsize ) - { - TT_F26Dot6 start_x, start_y, step_y, x, y; - int i; - - TT_Error error = 0; - - - start_x = 4; - start_y = vio_Height - ( ( ptsize * 96 + 36 ) / 72 + 10 ); - - step_y = imetrics.y_ppem + 10; - - x = start_x; - y = start_y; - - i = first_glyph; - - while ( i < num_glyphs ) - { - if ( ( glyph_has_sbit ) && - ( ( sbit_flag + 1 ) & 2 ) && - !(error = TT_Load_Glyph_Bitmap( face, instance, i, sbit )) ) - { - Blit_Bitmap( &Bit, - &sbit->map, - gray_render ? 8 : 1, - (int)x + (int)(sbit->metrics.horiBearingX/64), - Bit.rows - (int)y - (int)(sbit->metrics.horiBearingY/64), - gray_palette[4] ); - metrics = sbit->metrics; - goto Step; - } - - if ( ( ( !glyph_has_sbit ) || - ( ( sbit_flag + 1 ) & 1 ) ) && - !(error = LoadTrueTypeChar( i, hinted )) ) - { - TT_Get_Glyph_Outline( glyph, &outline ); - TT_Get_Glyph_Big_Metrics( glyph, &metrics ); - - Render_Single_Glyph( gray_render, glyph, (int)x, (int)y ); - } - else - { -#ifdef Ignore_Err_Not_SBit - if (!(( glyph_has_sbit ) && - ( sbit_flag == 1 ) && - ( error == TT_Err_Invalid_Glyph_Index ))) -#endif - Fail++; - } - Step: - x += ( metrics.horiAdvance / 64 ) + 1; - - if ( x + imetrics.x_ppem > vio_Width ) - { - x = start_x; - y -= step_y; - - if ( y < 10 ) - return TT_Err_Ok; - } - i++; - } - return TT_Err_Ok; - } - - - static int Process_Event( TEvent* event ) - { - switch ( event->what ) - { - case event_Quit: /* ESC or q */ - return 0; - - case event_Keyboard: - if ( event->info == 'n' ) /* Next file */ - return 'n'; - if ( event->info == 'p' ) /* Previous file */ - return 'p'; - if ( event->info == 'h' ) /* Toggle hinting */ - hinted = !hinted; - if ( ( event->info == 'B' ) && ( glyph_has_sbit ) ) /* Toggle sbit */ - sbit_flag = ( sbit_flag + 1 ) % 3; - break; - - case event_Rotate_Glyph: - Rotation = ( Rotation + event->info ) & 1023; - break; - - case event_Scale_Glyph: - ptsize += event->info; - if ( ptsize < 1 ) ptsize = 1; - if ( ptsize > MAXPTSIZE ) ptsize = MAXPTSIZE; - break; - - case event_Change_Glyph: - Num += event->info; - if ( Num < 0 ) Num = 0; - if ( Num >= num_glyphs ) Num = num_glyphs - 1; - break; - } - - return 1; - } - - - static void usage( char* execname ) - { - fprintf( stderr, - "\n" - "ftview: simple TrueType interpreter tester -- part of the FreeType project\n" - "--------------------------------------------------------------------------\n" - "\n" - "Usage: %s [options below] ppem fontname[.ttf|.ttc] ...\n", - execname ); - fprintf( stderr, - "\n" - " -g gray-level rendering (default: none)\n" - " -r R use resolution R dpi (default: 96)\n" - " -B use embedded bitmaps (default: none)\n" - "\n" ); - - exit( EXIT_FAILURE ); - } - - - int main( int argc, char** argv ) - { - int i, old_ptsize, orig_ptsize, file; - int XisSetup = 0; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - int option; - int res = 96; - - TT_Error error; - TEvent event; - - TT_EBLC eblc_table; - - - execname = ft_basename( argv[0] ); - - while ( 1 ) - { - option = ft_getopt( argc, argv, "gr:B" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'g': - gray_render = 1; - sbit_flag = 0; - break; - - case 'r': - res = atoi( ft_optarg ); - if ( res < 1 ) - usage( execname ); - break; - - case 'B': - if (!gray_render) -#if 0 - sbit_flag = 1; -#else - sbit_flag = 2; -#endif - break; - - default: - usage( execname ); - break; - } - } - - argc -= ft_optind; - argv += ft_optind; - - if ( argc <= 1 ) - usage( execname ); - - if ( sscanf( argv[0], "%d", &orig_ptsize ) != 1 ) - orig_ptsize = 64; - - file = 1; - - /* Initialize engine */ - - if ( (error = TT_Init_FreeType( &engine )) ) - Panic( "Error while initializing engine, code = 0x%x.\n", error ); - - if ( (error = TT_Init_SBit_Extension( engine )) ) - Panic( "Error while initializing sbit extention, code = 0x%x.\n", error ); - - NewFile: - ptsize = orig_ptsize; - hinted = 1; - - i = strlen( argv[file] ); - while ( i > 0 && argv[file][i] != '\\' && argv[file][i] != '/' ) - { - if ( argv[file][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[file], 128 ); - strncpy( alt_filename, argv[file], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open %s.\n", filename ); - else if ( error ) - Panic( "Error while opening %s, error code = 0x%x.\n", - filename, error ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &properties ); - - num_glyphs = properties.num_Glyphs; - - glyph_has_sbit = 0; - - error = TT_Get_Face_Bitmaps( face, &eblc_table ); - if ( error == TT_Err_Ok ) - glyph_has_sbit = 1; - if ( sbit_flag && !glyph_has_sbit ) - Panic( "%s does not have embedded bitmap glyphs.\n", filename ); - - /* create glyph */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - Panic( "Could not create glyph container.\n" ); - - error = TT_New_SBit_Image( &sbit ); - if ( error ) - Panic( "Could not create sbit slot.\n" ); - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - Panic( "Could not create instance for %s.\n", filename ); - - error = TT_Set_Instance_Resolutions( instance, res, res ); - if ( error ) - Panic( "Could not set device resolutions." ); - - if ( !XisSetup ) - { - XisSetup = 1; - - if ( gray_render ) - { - if ( !SetGraphScreen( Graphics_Mode_Gray ) ) - Panic( "Could not set up grayscale graphics mode.\n" ); - - TT_Set_Raster_Gray_Palette( engine, virtual_palette ); - } - else - { - if ( !SetGraphScreen( Graphics_Mode_Mono ) ) - Panic( "Could not set up mono graphics mode.\n" ); - } - } - - Init_Display( gray_render ); - - Reset_Scale( ptsize ); - - old_ptsize = ptsize; - - Fail = 0; - Num = 0; - - for ( ;; ) - { - int key; - char* sbit_string; - static char* sbit_messages[4] = - { "off", "on", " if available", "NONE" }; - - sbit_string = sbit_messages[3]; - if ( glyph_has_sbit ) - { - if (sbit_flag >= 0 && sbit_flag < 3) - sbit_string = sbit_messages[sbit_flag]; - } - - Clear_Display(); - Render_All( Num, ptsize ); - if ( gray_render ) - Convert_To_Display_Palette(); - - sprintf( Header, "%s: Glyph: %4d ptsize: %4d hinting: %s sbit: %s", - ft_basename( filename ), Num, ptsize, - hinted ? "on" : "off", - sbit_string ); - Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols ); - -#ifndef X11 -#ifndef OS2 - Print_XY( 0, 0, Header ); -#endif -#endif - - Get_Event( &event ); - if ( !( key = Process_Event( &event ) ) ) - goto End; - - if ( key == 'n' ) - { - TT_Close_Face( face ); - - if ( file < argc - 1 ) - file++; - - goto NewFile; - } - - if ( key == 'p' ) - { - TT_Close_Face( face ); - - if ( file > 1 ) - file--; - - goto NewFile; - } - - if ( ptsize != old_ptsize ) - { - if ( Reset_Scale( ptsize ) ) - Panic( "Could not resize font.\n" ); - - old_ptsize = ptsize; - } - } - - End: - RestoreScreen(); - - TT_Done_SBit_Image( sbit ); - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - printf( "Execution completed successfully.\n" ); - printf( "Fails = %d\n", Fail ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ -} - - -/* End */ diff --git a/Build/source/libs/freetype/test/ftzoom.c b/Build/source/libs/freetype/test/ftzoom.c deleted file mode 100644 index 228f8895610..00000000000 --- a/Build/source/libs/freetype/test/ftzoom.c +++ /dev/null @@ -1,682 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project - a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* ftzoom : A simple glyph viewer. Now supports graylevel rendering */ -/* with the '-g' option. */ -/* */ -/* Use `-p ' together with `-e ' to */ -/* select a cmap. */ -/* */ -/* Keys: */ -/* */ -/* x : fine counter_clockwise rotation */ -/* c : fine clockwise rotation */ -/* */ -/* v : fast counter_clockwise rotation */ -/* b : fast clockwise rotation */ -/* */ -/* + : fast scale up */ -/* - : fast scale down */ -/* u : fine scale down */ -/* j : fine scale up */ -/* */ -/* l : go to next glyph */ -/* k : go to previous glyph */ -/* */ -/* o : go to tenth next glyph */ -/* i : go to tenth previous glyph */ -/* */ -/* 0 : go to hundredth next glyph */ -/* 9 : go to hundredth previous glyph */ -/* */ -/* ) : go to 1000th next glyph */ -/* ( : go to 1000th previous glyph */ -/* */ -/* } : go to 10000th next glyph */ -/* { : go to 10000th previous glyph */ -/* */ -/* q : */ -/* ESC : exit */ -/* */ -/* */ -/* NOTE 1: This is just a test program that is used to show off and */ -/* debug the current engine. In no way does it show the final */ -/* high-level interface that client applications will use. */ -/* */ -/* NOTE 2: The `post' engine is used to display the PS glyph names. */ -/* Use the `-n' switch if you don't want that. */ -/* */ -/****************************************************************************/ - -#include -#include -#include -#include - -#include "common.h" -#include "freetype.h" -#include "ftxpost.h" - -#include "gdriver.h" -#include "gevents.h" -#include "gmain.h" - -#ifdef DEBUG_LEVEL_TRACE -#include "ttdebug.h" -#endif - - -#define Pi 3.1415926535 - -#define MAXPTSIZE 5000 /* dtp */ - - char Header[128]; - - TT_Engine engine; - TT_Face face; - TT_Instance instance; - TT_Glyph glyph; - TT_CharMap char_map; - - TT_Glyph_Metrics metrics; - TT_Outline outline; - TT_Face_Properties properties; - TT_Instance_Metrics imetrics; - - int num_glyphs; - int xcenter_upem; - int ycenter_upem; - int units_per_em; - - int ptsize; - int old_ptsize; - int rotation; - int old_rotation; - - TT_Matrix matrix; - TT_Matrix zoom_matrix; - int apply_matrix; - int xcenter; - int ycenter; - int xoffset; - int yoffset; - - extern TT_Raster_Map Bit; - - int Fail; - int Num; - int Code; - - int gray_render = 0; - int hinted = 1; - int use_cmap = 0; - int zoom_factor = 1; - int grid = 0; - int use_post = 1; - - char palette[5] = { 0, 1, 2, 3, 4 }; - - - static void ClearData( void ) - { - if ( gray_render ) - memset( Bit.bitmap, gray_palette[0], Bit.size ); - else - memset( Bit.bitmap, 0, Bit.size ); - } - - - void Init_Raster_Area( void ) - { - Bit.rows = vio_Height; /* The whole window */ - Bit.width = vio_Width; - Bit.flow = TT_Flow_Up; - - if ( gray_render ) - { - Bit.cols = Bit.width; - Bit.size = Bit.rows * Bit.width; - } - else - { - Bit.cols = ( Bit.width + 7 ) / 8; /* convert to # of bytes */ - Bit.size = Bit.rows * Bit.cols; /* number of bytes in buffer */ - } - - Bit.bitmap = (void*)malloc( (int)Bit.size ); - if ( !Bit.bitmap ) - Panic( "Not enough memory to allocate bitmap!\n" ); - - ClearData(); - } - - - static TT_Error Reset_PtSize( int pointSize ) - { - TT_Error error; - - - if ( (error = TT_Set_Instance_PointSize( instance, pointSize )) ) - { - RestoreScreen(); - printf( "Error = 0x%x.\n", (int)error ); - Panic( "Could not reset instance.\n" ); - } - - TT_Get_Instance_Metrics( instance, &imetrics ); - - xcenter = imetrics.x_ppem * xcenter_upem / units_per_em / 4; - ycenter = imetrics.y_ppem * ycenter_upem / units_per_em / 4; - - xoffset = vio_Width/2 - xcenter; - yoffset = vio_Height/2 - ycenter; - - return TT_Err_Ok; - } - - - static TT_Error Reset_Rotation( int rotation ) - { - if ( rotation ) - { - float angle; - - - TT_Set_Instance_Transform_Flags( instance, 1, 0 ); - - angle = rotation * Pi / 512; - - matrix.xx = (TT_Fixed)(cos( angle ) * (1L<<16)); - matrix.xy = (TT_Fixed)(sin( angle ) * (1L<<16)); - matrix.yx = -matrix.xy; - matrix.yy = matrix.xx; - - apply_matrix = 1; - } - else - apply_matrix = 0; - - if ( zoom_factor != 1 ) - { - zoom_matrix.xx = zoom_matrix.yy = zoom_factor * (1L<<16); - zoom_matrix.xy = zoom_matrix.yx = 0; - } - - return TT_Err_Ok; - } - - - static TT_Error LoadTrueTypeChar( int idx, int hint ) - { - TT_Error error; - int flags; - - - flags = TTLOAD_SCALE_GLYPH; - if ( hint ) - flags |= TTLOAD_HINT_GLYPH; - - error = TT_Load_Glyph( instance, glyph, idx, flags ); - if ( error ) - return error; - - if ( apply_matrix || zoom_factor != 1 ) - { - TT_Get_Glyph_Outline( glyph, &outline ); - TT_Translate_Outline( &outline, -xcenter*64L, -ycenter*64L ); - if ( apply_matrix ) - TT_Transform_Outline( &outline, &matrix ); - if ( zoom_factor != 1 ) - TT_Transform_Outline( &outline, &zoom_matrix ); - TT_Translate_Outline( &outline, xcenter*64L, ycenter*64L ); - } - - return error; - } - - - static TT_Error ConvertRaster( void ) - { - if ( gray_render ) - return TT_Get_Glyph_Pixmap( glyph, &Bit, xoffset*64L, yoffset*64L ); - else - return TT_Get_Glyph_Bitmap( glyph, &Bit, xoffset*64L, yoffset*64L ); - } - - - static void DrawGrid( void ) - { - char *bmap, mask; - int x, y, shift, toggle; - - - bmap = (char *)Bit.bitmap; - - for ( y = 0; y < Bit.rows; ++y ) - { - if ( ( y - xoffset ) % zoom_factor == 0 ) - { - if ( gray_render ) - for ( x = y & 1; x < Bit.cols; x += 2 ) - bmap[x] = 4 - bmap[x]; - else { - mask = y & 1 ? 0x55 : 0xAA; - for ( x = 0; x < Bit.cols; ++x ) - bmap[x] ^= mask; - } - } - else - { - toggle = y & 1; - - if ( gray_render ) - { - for ( x = xoffset % zoom_factor; x < Bit.cols; x += zoom_factor ) - if ( ( x & 1 ) == toggle ) - bmap[x] = 4 - bmap[x]; - } - else - { - /* tricky business */ - shift = xoffset % zoom_factor; - for ( x = 0; x < Bit.cols; ++x ) - { - for ( mask = 0; shift < 8; shift += zoom_factor ) - if ( ( shift & 1 ) == toggle ) - mask |= 0x80 >> shift; - bmap[x] ^= mask; - shift -= 8; - } - } - } - bmap += Bit.cols; - } - } - - - static int Process_Event( TEvent* event ) - { - switch ( event->what ) - { - case event_Quit: /* ESC or q */ - return 0; - - case event_Keyboard: - if ( event->info == 'h' ) /* Toggle hinting */ - hinted = !hinted; - break; - - case event_Rotate_Glyph: - rotation = ( rotation + event->info ) & 1023; - break; - - case event_Scale_Glyph: - ptsize += event->info; - if ( ptsize < 1 ) - ptsize = 1; - if ( ptsize > MAXPTSIZE / zoom_factor ) - ptsize = MAXPTSIZE / zoom_factor; - break; - - case event_Change_Glyph: - if ( use_cmap ) - { - if ( event->info < 0 ) - { - if ( Code > -event->info ) - Code += event->info; - else - Code = 0; - - for ( ; Code >= 0; Code-- ) - { - Num = TT_Char_Index( char_map, Code ); - if ( Num > 0 ) - break; - } - } - else - { - if ( Code < 65536 - event->info - 1 ) - Code += event->info; - else - Code = 65536 - 1; - - for ( ; Code < 65536; Code++ ) - { - Num = TT_Char_Index( char_map, Code ); - if ( Num > 0 ) - break; - } - } - } - else - { - if ( event->info < 0 ) - { - if ( Num > -event->info ) - Num += event->info; - else - Num = 0; - } - else - { - if ( Num < num_glyphs - event->info - 1 ) - Num += event->info; - else - Num = num_glyphs - 1; - } - } - break; - } - - return 1; - } - - - void usage( char* execname ) - { - printf( "\n" ); - printf( "ftzoom: simple TrueType glyph viewer -- part of the FreeType project\n" ); - printf( "--------------------------------------------------------------------\n" ); - printf( "\n" ); - printf( "Usage: %s [options below] fontname[.ttf|.ttc]\n", execname ); - printf( "\n" ); - printf( " -g gray-level rendering (default: none)\n" ); - printf( " -r R use resolution R dpi (default: 96)\n" ); - printf( " -z Z Z:1 magnification (default: 1:1)\n" ); - printf( " -p id platform id (default: none)\n" ); - printf( " -e id encoding id (default: none)\n" ); - printf( " -n don't use the `post' table\n" ); - printf( " If either -p or -e is not set, no cmap will be used.\n" ); - printf( "\n" ); - - exit( EXIT_FAILURE ); - } - - - /* stack check dtp */ - - int main( int argc, char** argv ) - { - int i; - int platform = -1, encoding = -1; - char filename[128 + 4]; - char alt_filename[128 + 4]; - char* execname; - int option; - int res = 96; - TT_Error error; - TT_Post post; - - TEvent event; - - - execname = argv[0]; - gray_render = 0; - - -#ifdef DEBUG_LEVEL_TRACE - - set_tt_trace_levels( trace_raster, 7 ); - set_tt_trace_levels( trace_gload, 7 ); - -#endif - - - while ( 1 ) - { - option = ft_getopt( argc, argv, "e:gnp:r:z:" ); - - if ( option == -1 ) - break; - - switch ( option ) - { - case 'e': - encoding = atoi( ft_optarg ); - break; - - case 'g': - gray_render = 1; - break; - - case 'n': - use_post = 0; - break; - - case 'p': - platform = atoi( ft_optarg ); - break; - - case 'r': - res = atoi( ft_optarg ); - if ( res < 1 ) - usage( execname ); - break; - - case 'z': - zoom_factor = atoi( ft_optarg ); - if ( zoom_factor < 1 || zoom_factor > 16 ) - usage( execname ); - if ( zoom_factor > 4 ) - grid = 1; - break; - - default: - usage( execname ); - break; - } - } - - if ( ft_optind == argc ) - usage( execname ); - - i = strlen( argv[ft_optind] ); - while ( i > 0 && argv[ft_optind][i] != '\\' && argv[ft_optind][i] != '/' ) - { - if ( argv[ft_optind][i] == '.' ) - i = 0; - i--; - } - - filename[128] = '\0'; - alt_filename[128] = '\0'; - - strncpy( filename, argv[ft_optind], 128 ); - strncpy( alt_filename, argv[ft_optind], 128 ); - - if ( i >= 0 ) - { - strncpy( filename + strlen( filename ), ".ttf", 4 ); - strncpy( alt_filename + strlen( alt_filename ), ".ttc", 4 ); - } - - if ( platform >= 0 || encoding >= 0 ) - use_cmap = 1; - - /* Initialization */ - TT_Init_FreeType( &engine ); - - /* Initialization of the post extension */ - if ( use_post ) - TT_Init_Post_Extension( engine ); - - /* Load face */ - - error = TT_Open_Face( engine, filename, &face ); - - if ( error == TT_Err_Could_Not_Open_File ) - { - strcpy( filename, alt_filename ); - error = TT_Open_Face( engine, alt_filename, &face ); - } - - if ( error == TT_Err_Could_Not_Open_File ) - Panic( "Could not find/open %s.\n", filename ); - else if ( error ) - Panic( "Error while opening %s, error code = 0x%x.\n", - filename, error ); - - /* get face properties and allocate preload arrays */ - - TT_Get_Face_Properties( face, &properties ); - - num_glyphs = properties.num_Glyphs; - xcenter_upem = (properties.header->xMax - properties.header->xMin) / 2; - ycenter_upem = (properties.header->yMax - properties.header->yMin) / 2; - units_per_em = properties.header->Units_Per_EM; - - /* load full post table */ - if ( use_post ) - { - error = TT_Load_PS_Names( face, &post ); - if ( error ) - Panic( "Could not load PS names.\n" ); - } - - /* create glyph */ - - error = TT_New_Glyph( face, &glyph ); - if ( error ) - Panic( "Could not create glyph container.\n" ); - - /* create instance */ - - error = TT_New_Instance( face, &instance ); - if ( error ) - Panic( "Could not create instance for %s.\n", filename ); - - error = TT_Set_Instance_Resolutions( instance, res, res ); - if ( error ) - Panic( "Could not set device resolutions." ); - - if ( gray_render ) - { - if ( !SetGraphScreen( Graphics_Mode_Gray ) ) - Panic( "Could not set up grayscale graphics mode.\n" ); - - TT_Set_Raster_Gray_Palette( engine, gray_palette ); - } - else - { - if ( !SetGraphScreen( Graphics_Mode_Mono ) ) - Panic( "Could not set up mono graphics mode.\n" ); - } - - Init_Raster_Area(); - - old_ptsize = ptsize = 150 / zoom_factor; - old_rotation = rotation = 0; - - Reset_PtSize ( ptsize ); - Reset_Rotation( rotation ); - - if ( use_cmap ) - { - unsigned short num_cmap; - unsigned short cmap_plat; - unsigned short cmap_enc; - - - num_cmap = properties.num_CharMaps; - for ( i = 0; i < num_cmap; i++ ) - { - error = TT_Get_CharMap_ID( face, i, &cmap_plat, &cmap_enc ); - if ( error ) - Panic( "Cannot query cmap, error = 0x%x.\n", error ); - if ( cmap_plat == platform && cmap_enc == encoding ) - break; - } - - if ( i == num_cmap ) - Panic( "Invalid platform and/or encoding ID.\n" ); - - error = TT_Get_CharMap( face, i, &char_map ); - if ( error ) - Panic( "Cannot load cmap, error = 0x%x.\n", error ); - - num_glyphs = (1L << 16) - 1; - } - - Code = 0; - Num = 0; - Fail = 0; - - for ( ;; ) - { - char *glyphname; - - - glyphname = NULL; - - ClearData(); - - if ( ptsize != old_ptsize ) - { - Reset_PtSize( ptsize ); - old_ptsize = ptsize; - } - - if ( rotation != old_rotation ) - { - Reset_Rotation( rotation ); - old_rotation = rotation; - } - - if ( (error = LoadTrueTypeChar( Num, hinted )) == TT_Err_Ok ) - { - ConvertRaster(); - if ( grid ) - DrawGrid(); - - if ( use_post ) - (void)TT_Get_PS_Name(face, Num, &glyphname); - - if ( use_cmap ) - sprintf( Header, "\"%s\": index = %3d, code = 0x%x, hinting = %s", - use_post ? glyphname : "", Num, Code, - hinted ? "ON" : "OFF" ); - else - sprintf( Header, "\"%s\": index = %3d, hinting = %s", - use_post ? glyphname : "", Num, hinted ? "ON" : "OFF" ); - } - else { - Fail++; - sprintf( Header, "\"%s\": index = %3d, hinting = %s (ERROR 0x%lx)", - glyphname ? glyphname : "", Num, - hinted ? "ON" : "OFF", error ); - } - - Display_Bitmap_On_Screen( Bit.bitmap, Bit.rows, Bit.cols ); - -#ifndef X11 -#ifndef OS2 - Print_XY( 0, 0, Header ); -#endif -#endif - - Get_Event( &event ); - if ( !Process_Event( &event ) ) goto End; - } - - End: - - RestoreScreen(); - - TT_Close_Face( face ); - TT_Done_FreeType( engine ); - - printf( "Fails = %d.\n", Fail ); - - exit( EXIT_SUCCESS ); /* for safety reasons */ - - return 0; /* never reached */ - } - - -/* End */ diff --git a/Build/source/libs/freetype/test/gdriver.h b/Build/source/libs/freetype/test/gdriver.h deleted file mode 100644 index e57ffbc0342..00000000000 --- a/Build/source/libs/freetype/test/gdriver.h +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************* - * - * gdriver.h : Graphics utility driver generic interface 1.1 - * - * Generic interface for all drivers of the graphics utility used - * by the FreeType test programs. - * - * 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. - * - ******************************************************************/ - -#ifndef GDRIVER_H -#define GDRIVER_H - - /* Note that we now support an event based model, even with */ - /* full-screen modes. It is the responsability of the driver */ - /* to map its events to the TEvent structure when called */ - /* through Get_Event. */ - - /* The event classes are defined in the file 'gevents.h' included */ - /* by the test programs, not by the graphics utility. */ - - typedef struct _TEvent - { - int what; /* event class */ - int info; /* event parameter */ - } TEvent; - - - /* Get last event. In full-screen modes, a keystroke must be */ - /* translated to an event class with a parameter. */ - void Get_Event( TEvent* event ); - - /* A call to this function must set the graphics mode, the Vio */ - /* variable, as well as the values vio_ScanLineWidth, vio_Width */ - /* and vio_Height. */ - int Driver_Set_Graphics( int mode ); - - /* Restore previous mode or release display buffer/window */ - int Driver_Restore_Mode( void ); - - /* display bitmap on screen */ - int Driver_Display_Bitmap( char* buffer, int line, int col ); - -#endif /* GDRIVER_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/test/gevents.h b/Build/source/libs/freetype/test/gevents.h deleted file mode 100644 index 8f7f977a451..00000000000 --- a/Build/source/libs/freetype/test/gevents.h +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************* - * - * gevents.h test programs events definition 1.1 - * - * This file defines the events used by the FreeType test programs - * It is _not_ included by 'gmain.c'. This file is also used by the - * drivers to translate their own events in GEvents. - * - * Not a very good design, but we're not rewriting X... - * - * 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. - * - ******************************************************************/ - -#ifndef GEVENTS_H -#define GEVENTS_H - - typedef enum _GEvent - { - event_None, - event_Quit, /* Quit program */ - - event_Keyboard, /* unknown keystroke */ - - event_Change_Glyph, - event_Rotate_Glyph, - event_Scale_Glyph, - - event_Change_ScanType, - event_Change_Instructions - } GEvent; - -#endif /* GEVENTS_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/test/gmain.c b/Build/source/libs/freetype/test/gmain.c deleted file mode 100644 index f8eefc7aef3..00000000000 --- a/Build/source/libs/freetype/test/gmain.c +++ /dev/null @@ -1,475 +0,0 @@ -/******************************************************************* - * - * gmain.c graphics utility main body 1.1 - * - * This file defines a common implementation of the graphics - * utility used by the FreeType test programs. It relies on - * system-specific drivers, like 'gfs_os.c', which interface is - * described in the file 'gdriver.h'. - * - * 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 "gdriver.h" -#include "gmain.h" - -#ifndef FAILURE -#define FAILURE 0 -#endif - -#ifndef SUCCESS -#define SUCCESS 1 -#endif - - char* Vio; /* pointer to VRAM or display buffer */ - - int vio_ScanLineWidth; /* scan line width in bytes */ - - int vio_Width; - int vio_Height; - - int gcursor_x = 0; - int gcursor_y = 0; - - int gwindow_width = 0; - int gwindow_height = 0; - - unsigned char gray_palette[5]; - - - typedef void TFunction_Print_8x8_Char( int x, - int y, - unsigned char c ); - - TFunction_Print_8x8_Char* Print_8x8_Char; - - /* font characters */ - - unsigned char font_8x8[2048] = - { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E, - 0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E, - 0x6C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38, 0x10, 0x00, - 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00, - 0x38, 0x7C, 0x38, 0xFE, 0xFE, 0x92, 0x10, 0x7C, - 0x00, 0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x7C, - 0x00, 0x00, 0x18, 0x3C, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xFF, 0xE7, 0xC3, 0xC3, 0xE7, 0xFF, 0xFF, - 0x00, 0x3C, 0x66, 0x42, 0x42, 0x66, 0x3C, 0x00, - 0xFF, 0xC3, 0x99, 0xBD, 0xBD, 0x99, 0xC3, 0xFF, - 0x0F, 0x07, 0x0F, 0x7D, 0xCC, 0xCC, 0xCC, 0x78, - 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E, 0x18, - 0x3F, 0x33, 0x3F, 0x30, 0x30, 0x70, 0xF0, 0xE0, - 0x7F, 0x63, 0x7F, 0x63, 0x63, 0x67, 0xE6, 0xC0, - 0x99, 0x5A, 0x3C, 0xE7, 0xE7, 0x3C, 0x5A, 0x99, - 0x80, 0xE0, 0xF8, 0xFE, 0xF8, 0xE0, 0x80, 0x00, - 0x02, 0x0E, 0x3E, 0xFE, 0x3E, 0x0E, 0x02, 0x00, - 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x7E, 0x3C, 0x18, - 0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00, - 0x7F, 0xDB, 0xDB, 0x7B, 0x1B, 0x1B, 0x1B, 0x00, - 0x3E, 0x63, 0x38, 0x6C, 0x6C, 0x38, 0x86, 0xFC, - 0x00, 0x00, 0x00, 0x00, 0x7E, 0x7E, 0x7E, 0x00, - 0x18, 0x3C, 0x7E, 0x18, 0x7E, 0x3C, 0x18, 0xFF, - 0x18, 0x3C, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x00, - 0x18, 0x18, 0x18, 0x18, 0x7E, 0x3C, 0x18, 0x00, - 0x00, 0x18, 0x0C, 0xFE, 0x0C, 0x18, 0x00, 0x00, - 0x00, 0x30, 0x60, 0xFE, 0x60, 0x30, 0x00, 0x00, - 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xFE, 0x00, 0x00, - 0x00, 0x24, 0x66, 0xFF, 0x66, 0x24, 0x00, 0x00, - 0x00, 0x18, 0x3C, 0x7E, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0x7E, 0x3C, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x3C, 0x3C, 0x18, 0x18, 0x00, 0x18, 0x00, - 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00, - 0x18, 0x7E, 0xC0, 0x7C, 0x06, 0xFC, 0x18, 0x00, - 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00, - 0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00, - 0x30, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00, - 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00, - 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00, - 0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00, - 0x7C, 0xCE, 0xDE, 0xF6, 0xE6, 0xC6, 0x7C, 0x00, - 0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00, - 0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00, - 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00, - 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00, - 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00, - 0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00, - 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00, - 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00, - 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30, - 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00, - 0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00, - 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00, - 0x3C, 0x66, 0x0C, 0x18, 0x18, 0x00, 0x18, 0x00, - 0x7C, 0xC6, 0xDE, 0xDE, 0xDC, 0xC0, 0x7C, 0x00, - 0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00, - 0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00, - 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00, - 0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00, - 0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00, - 0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3A, 0x00, - 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00, - 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00, - 0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00, - 0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00, - 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00, - 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00, - 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, - 0x7C, 0xC6, 0xC6, 0xC6, 0xD6, 0x7C, 0x0E, 0x00, - 0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00, - 0x7C, 0xC6, 0xE0, 0x78, 0x0E, 0xC6, 0x7C, 0x00, - 0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00, - 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, - 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, - 0xC6, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0xC6, 0x00, - 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00, - 0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00, - 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00, - 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00, - 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00, - 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, - 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00, - 0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0x38, 0x6C, 0x64, 0xF0, 0x60, 0x60, 0xF0, 0x00, - 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00, - 0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x0C, 0x00, 0x1C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, - 0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00, - 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xD6, 0x00, - 0x00, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, - 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0, - 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E, - 0x00, 0x00, 0xDC, 0x76, 0x62, 0x60, 0xF0, 0x00, - 0x00, 0x00, 0x7C, 0xC0, 0x70, 0x1C, 0xF8, 0x00, - 0x10, 0x30, 0xFC, 0x30, 0x30, 0x34, 0x18, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00, - 0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00, - 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00, - 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00, - 0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00, - 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00, - 0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00, - 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00, - 0x7C, 0xC6, 0xC0, 0xC6, 0x7C, 0x0C, 0x06, 0x7C, - 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x1C, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0x7E, 0x81, 0x3C, 0x06, 0x3E, 0x66, 0x3B, 0x00, - 0xCC, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0xE0, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x30, 0x30, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x00, 0x00, 0x7C, 0xC6, 0xC0, 0x78, 0x0C, 0x38, - 0x7E, 0x81, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00, - 0xCC, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0xE0, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00, - 0xCC, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x7C, 0x82, 0x38, 0x18, 0x18, 0x18, 0x3C, 0x00, - 0xE0, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0xC6, 0x10, 0x7C, 0xC6, 0xFE, 0xC6, 0xC6, 0x00, - 0x30, 0x30, 0x00, 0x78, 0xCC, 0xFC, 0xCC, 0x00, - 0x1C, 0x00, 0xFC, 0x60, 0x78, 0x60, 0xFC, 0x00, - 0x00, 0x00, 0x7F, 0x0C, 0x7F, 0xCC, 0x7F, 0x00, - 0x3E, 0x6C, 0xCC, 0xFE, 0xCC, 0xCC, 0xCE, 0x00, - 0x78, 0x84, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0xCC, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0xE0, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x78, 0x84, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xE0, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xCC, 0x00, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8, - 0xC3, 0x18, 0x3C, 0x66, 0x66, 0x3C, 0x18, 0x00, - 0xCC, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x00, - 0x18, 0x18, 0x7E, 0xC0, 0xC0, 0x7E, 0x18, 0x18, - 0x38, 0x6C, 0x64, 0xF0, 0x60, 0xE6, 0xFC, 0x00, - 0xCC, 0xCC, 0x78, 0x30, 0xFC, 0x30, 0xFC, 0x30, - 0xF8, 0xCC, 0xCC, 0xFA, 0xC6, 0xCF, 0xC6, 0xC3, - 0x0E, 0x1B, 0x18, 0x3C, 0x18, 0x18, 0xD8, 0x70, - 0x1C, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00, - 0x38, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00, - 0x00, 0x1C, 0x00, 0x78, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x1C, 0x00, 0xCC, 0xCC, 0xCC, 0x76, 0x00, - 0x00, 0xF8, 0x00, 0xB8, 0xCC, 0xCC, 0xCC, 0x00, - 0xFC, 0x00, 0xCC, 0xEC, 0xFC, 0xDC, 0xCC, 0x00, - 0x3C, 0x6C, 0x6C, 0x3E, 0x00, 0x7E, 0x00, 0x00, - 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C, 0x00, 0x00, - 0x18, 0x00, 0x18, 0x18, 0x30, 0x66, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0xFC, 0xC0, 0xC0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFC, 0x0C, 0x0C, 0x00, 0x00, - 0xC6, 0xCC, 0xD8, 0x36, 0x6B, 0xC2, 0x84, 0x0F, - 0xC3, 0xC6, 0xCC, 0xDB, 0x37, 0x6D, 0xCF, 0x03, - 0x18, 0x00, 0x18, 0x18, 0x3C, 0x3C, 0x18, 0x00, - 0x00, 0x33, 0x66, 0xCC, 0x66, 0x33, 0x00, 0x00, - 0x00, 0xCC, 0x66, 0x33, 0x66, 0xCC, 0x00, 0x00, - 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, 0x22, 0x88, - 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, - 0xDB, 0xF6, 0xDB, 0x6F, 0xDB, 0x7E, 0xD7, 0xED, - 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x36, 0x36, 0x36, 0x36, 0xF6, 0x36, 0x36, 0x36, - 0x00, 0x00, 0x00, 0x00, 0xFE, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xF8, 0x18, 0xF8, 0x18, 0x18, 0x18, - 0x36, 0x36, 0xF6, 0x06, 0xF6, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xFE, 0x06, 0xF6, 0x36, 0x36, 0x36, - 0x36, 0x36, 0xF6, 0x06, 0xFE, 0x00, 0x00, 0x00, - 0x36, 0x36, 0x36, 0x36, 0xFE, 0x00, 0x00, 0x00, - 0x18, 0x18, 0xF8, 0x18, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xF8, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x1F, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x18, 0x18, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x37, 0x30, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3F, 0x30, 0x37, 0x36, 0x36, 0x36, - 0x36, 0x36, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x36, 0x36, 0xF7, 0x00, 0xF7, 0x36, 0x36, 0x36, - 0x18, 0x18, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0x36, 0x36, 0x36, 0x36, 0xFF, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0x3F, 0x00, 0x00, 0x00, - 0x18, 0x18, 0x1F, 0x18, 0x1F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x1F, 0x18, 0x1F, 0x18, 0x18, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x36, 0x36, 0x36, - 0x36, 0x36, 0x36, 0x36, 0xFF, 0x36, 0x36, 0x36, - 0x18, 0x18, 0xFF, 0x18, 0xFF, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x1F, 0x18, 0x18, 0x18, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x76, 0xDC, 0xC8, 0xDC, 0x76, 0x00, - 0x00, 0x78, 0xCC, 0xF8, 0xCC, 0xF8, 0xC0, 0xC0, - 0x00, 0xFC, 0xCC, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, - 0x00, 0x00, 0xFE, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, - 0xFC, 0xCC, 0x60, 0x30, 0x60, 0xCC, 0xFC, 0x00, - 0x00, 0x00, 0x7E, 0xD8, 0xD8, 0xD8, 0x70, 0x00, - 0x00, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x60, 0xC0, - 0x00, 0x76, 0xDC, 0x18, 0x18, 0x18, 0x18, 0x00, - 0xFC, 0x30, 0x78, 0xCC, 0xCC, 0x78, 0x30, 0xFC, - 0x38, 0x6C, 0xC6, 0xFE, 0xC6, 0x6C, 0x38, 0x00, - 0x38, 0x6C, 0xC6, 0xC6, 0x6C, 0x6C, 0xEE, 0x00, - 0x1C, 0x30, 0x18, 0x7C, 0xCC, 0xCC, 0x78, 0x00, - 0x00, 0x00, 0x7E, 0xDB, 0xDB, 0x7E, 0x00, 0x00, - 0x06, 0x0C, 0x7E, 0xDB, 0xDB, 0x7E, 0x60, 0xC0, - 0x38, 0x60, 0xC0, 0xF8, 0xC0, 0x60, 0x38, 0x00, - 0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x00, - 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, - 0x18, 0x18, 0x7E, 0x18, 0x18, 0x00, 0x7E, 0x00, - 0x60, 0x30, 0x18, 0x30, 0x60, 0x00, 0xFC, 0x00, - 0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0xFC, 0x00, - 0x0E, 0x1B, 0x1B, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x18, 0x18, 0x18, 0x18, 0x18, 0xD8, 0xD8, 0x70, - 0x18, 0x18, 0x00, 0x7E, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x76, 0xDC, 0x00, 0x76, 0xDC, 0x00, 0x00, - 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, - 0x0F, 0x0C, 0x0C, 0x0C, 0xEC, 0x6C, 0x3C, 0x1C, - 0x58, 0x6C, 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, - 0x70, 0x98, 0x30, 0x60, 0xF8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - }; - - - void Print_8x8_Mono( int x, int y, unsigned char c ) - { - int offset, i; - unsigned char* bitm; - - if ( !Vio ) - return; - - offset = x + y * vio_ScanLineWidth * 8; - bitm = font_8x8 + (int)c * 8; - - for ( i = 0; i < 8; i++ ) - { - Vio[offset] = *bitm; - bitm++; - offset += vio_ScanLineWidth; - } - } - - - void Print_8x8_Gray( int x, int y, unsigned char c ) - { - int offset, i, bit; - unsigned char* bitm; - - if ( !Vio ) - return; - - offset = x * 8 + y * vio_ScanLineWidth * 8; - bitm = font_8x8 + (int)c * 8; - - for ( i = 0; i < 8; i++ ) - { - bit = 0x80; - while ( bit > 0 ) - { - if ( bit & *bitm ) - Vio[offset] = (char)0x0f; - else - Vio[offset] = 0x00; - - bit >>= 1; - offset++; - } - offset += vio_ScanLineWidth - 8; - bitm++; - } - } - - - int SetGraphScreen( int mode ) - { - gcursor_x = 0; - gcursor_y = 0; - - switch( mode ) - { - case Graphics_Mode_Mono: - if ( !Driver_Set_Graphics( mode ) ) - return FAILURE; - - gwindow_width = vio_ScanLineWidth; - gwindow_height = vio_Height / 8; - - Print_8x8_Char = Print_8x8_Mono; - break; - - case Graphics_Mode_Gray: - if ( !Driver_Set_Graphics( mode ) ) - return FAILURE; - - gwindow_width = vio_ScanLineWidth / 8; - gwindow_height = vio_Height / 8; - - Print_8x8_Char = Print_8x8_Gray; - break; - - default: - /* Invalid function call */ - return FAILURE; - } - - return SUCCESS; - } - - - /* restore previous (or text) video mode */ - - int RestoreScreen( void ) - { - gcursor_x = 0; - gcursor_y = 0; - gwindow_height = 0; - gwindow_height = 0; - - return Driver_Restore_Mode(); - } - - - void Display_Bitmap_On_Screen( char* buffer, int line, int col ) - { - Driver_Display_Bitmap( buffer, line, col ); - } - - - void Goto_XY( int x, int y ) - { - gcursor_x = x; - gcursor_y = y; - } - - - void Print_Str( char* string ) - { - if ( !string ) return; - - while ( *string ) - { - switch ( *string ) - { - case '\n': - gcursor_x = 0; - gcursor_y++; - if ( gcursor_y > gwindow_height ) gcursor_y = 0; - break; - - default: - (*Print_8x8_Char)( gcursor_x, gcursor_y, *string ); - - gcursor_x++; - - if ( gcursor_x >= gwindow_width ) - { - gcursor_x = 0; - gcursor_y++; - - if ( gcursor_y >= gwindow_height ) gcursor_y = 0; - } - } - string++; - } - } - - - void Print_XY( int x, int y, char* string ) - { - Goto_XY( x, y ); - Print_Str( string ); - } - - - - - - - - - -/* End */ diff --git a/Build/source/libs/freetype/test/gmain.h b/Build/source/libs/freetype/test/gmain.h deleted file mode 100644 index 3b40440b672..00000000000 --- a/Build/source/libs/freetype/test/gmain.h +++ /dev/null @@ -1,71 +0,0 @@ -/******************************************************************* - * - * gmain.h graphics utility main interface 1.1 - * - * This file defines a common interface, implemented in the body - * file 'gmain.c'. It relies on system dependent driver files, - * like 'gfs_os.c', whose interface is described in 'gdriver.h'. - * - * 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 GMAIN_H -#define GMAIN_H - -#ifdef __cplusplus -extern "C" { -#endif - -/* Graphics mode definitions */ - -#define Graphics_Mode_Mono 1 /* monochrome graphics mode */ -#define Graphics_Mode_Gray 2 /* 8-bit palette graphics mode */ - - extern char* Vio; /* Pointer to VRAM or display buffer */ - - extern int vio_ScanLineWidth; /* Scan Line width in bytes */ - - extern int vio_Width; - extern int vio_Height; - - extern unsigned char gray_palette[5]; /* standard gray_palette */ - - - /* set a graphics mode, chosen from the Graphics_Mode_xxx list */ - int SetGraphScreen( int mode ); - - /* restore previous (or text) video mode */ - int RestoreScreen( void ); - - /* display a bitmap of 'line' lines, and 'col' columns (each */ - /* column made of 8 bits) */ - void Display_Bitmap_On_Screen( char* buffer, int line, int col ); - - void Goto_XY( int x, int y ); - - - extern int gcursor_x; - extern int gcursor_y; - - extern int gwindow_width; - extern int gwindow_height; - - void Print_Str( char* string ); - void Print_XY ( int x, int y, char* string ); - -#ifdef __cplusplus -} -#endif - -#endif /* GMAIN_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/test/textdisp.c b/Build/source/libs/freetype/test/textdisp.c deleted file mode 100644 index c6ac8df860f..00000000000 --- a/Build/source/libs/freetype/test/textdisp.c +++ /dev/null @@ -1,47 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* textdisp.c: Text-mode display component used by some test programs. */ -/* */ -/* This file is used to display glyphs using only text, with ' ' and '*'. */ -/* */ -/****************************************************************************/ - -#include - -#include "textdisp.h" - - void - Show_Single_Glyph( const TT_Raster_Map* map ) - { - int y; - - unsigned char* line = map->bitmap; - - - for ( y = 0; y < map->rows; y++, line += map->cols ) - { - unsigned char* ptr = line; - int x; - unsigned char mask = 0x80; - - - for ( x = 0; x < map->width; x++ ) - { - printf( "%c", (ptr[0] & mask) ? '*' : '.' ); - mask >>= 1; - if ( mask == 0 ) - { - mask = 0x80; - ptr++; - } - } - printf( "\n" ); - } - } - -/* End */ diff --git a/Build/source/libs/freetype/test/textdisp.h b/Build/source/libs/freetype/test/textdisp.h deleted file mode 100644 index 829fc164804..00000000000 --- a/Build/source/libs/freetype/test/textdisp.h +++ /dev/null @@ -1,32 +0,0 @@ -/****************************************************************************/ -/* */ -/* The FreeType project -- a free and portable quality TrueType renderer. */ -/* */ -/* Copyright 1996-2001 by */ -/* D. Turner, R.Wilhelm, and W. Lemberg */ -/* */ -/* textdisp.h: Text-mode display component used by some test programs. */ -/* */ -/* This file is used to display glyphs using only text, with ' ' and '*'. */ -/* */ -/****************************************************************************/ - -#ifndef TEXTDISP_H -#define TEXTDISP_H - -#include "freetype.h" /* TT_Raster_Map */ - -#ifdef __cplusplus - extern "C" { -#endif - - void Show_Single_Glyph( const TT_Raster_Map* map ); - -#ifdef __cplusplus - } -#endif - -#endif /* TEXTDISP_H */ - - -/* End */ diff --git a/Build/source/libs/freetype/withenable.ac b/Build/source/libs/freetype/withenable.ac deleted file mode 100644 index 90f783d00e7..00000000000 --- a/Build/source/libs/freetype/withenable.ac +++ /dev/null @@ -1,10 +0,0 @@ -AC_ARG_WITH(system_freetype, - [ --with-system-freetype use installed freetype library]) - -AC_ARG_WITH(freetype_libdir, -[ --with-freetype-libdir=DIR - Specify directory where the libfreetype resides.]) - -AC_ARG_WITH(freetype_include, -[ --with-freetype-include=DIR - Specify the freetype header files location.]) diff --git a/Build/source/libs/ncurses/ANNOUNCE b/Build/source/libs/ncurses/ANNOUNCE deleted file mode 100644 index 513234e33ca..00000000000 --- a/Build/source/libs/ncurses/ANNOUNCE +++ /dev/null @@ -1,493 +0,0 @@ - - Announcing ncurses 5.4 - - The ncurses (new curses) library is a free software emulation of - curses in System V Release 4.0, and more. It uses terminfo format, - supports pads and color and multiple highlights and forms characters - and function-key mapping, and has all the other SYSV-curses - enhancements over BSD curses. - - In mid-June 1995, the maintainer of 4.4BSD curses declared that he - considered 4.4BSD curses obsolete, and is encouraging the keepers of - Unix releases such as BSD/OS, freeBSD and netBSD to switch over to - ncurses. - - The ncurses code was developed under GNU/Linux. It has been in use for - some time with OpenBSD as the system curses library, and on FreeBSD - and NetBSD as an external package. It should port easily to any - ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp! - - The distribution includes the library and support utilities, including - a terminfo compiler tic(1), a decompiler infocmp(1), clear(1), - tput(1), tset(1), and a termcap conversion tool captoinfo(1). Full - manual pages are provided for the library and tools. - - The ncurses distribution is available via anonymous FTP at the GNU - distribution site [1]ftp://ftp.gnu.org/gnu/ncurses/ . - It is also available at [2]ftp://invisible-island.net/ncurses/ . - - Release Notes - - This release is designed to be upward compatible from ncurses 5.0 and - 5.3; very few applications will require recompilation, depending on - the platform. These are the highlights from the change-log since - ncurses 5.3 release. - - Interface changes: - * add the remaining functions for X/Open curses wide-character - support. - + pecho_wchar() - + slk_wset() - These are only available if the library is configured using the - --enable-widec option. - * write getyx() and related 2-return macros in terms of getcury(), - getcurx(), etc. - * simplify ifdef for bool declaration in curses.h - * modify ifdef's in curses.h that disabled use of __attribute__() - for g++, since recent versions implement the cases which ncurses - uses. - * add key_defined() function, to tell which keycode a string is - bound to. - - New features and improvements: - * library - + implement logic in lib_mouse.c to handle position reports - which are generated when XFree86 xterm is initialized with - private modes 1002 or 1003. These are returned to the - application as the REPORT_MOUSE_POSITION mask, which was not - implemented. - + modify soft-key initialization to use A_REVERSE if A_STANDOUT - would not be shown when colors are used, i.e., if ncv#1 is - set in the terminfo as is done in "screen". - + add configure option for FreeBSD sysmouse, --with-sysmouse, - and implement library support for that. - * programs: - + tack: - o allow it to run from fallback terminfo data. - o reset colors after each color test, correct a place - where exit_standout_mode was used instead of - exit_attribute_mode. - o improve bce test by making it set colors other than - black on white. - + tic: - o handle a case where an entry has no description, and - capabilities begin on the same line as the entry name. - o allow a terminfo entry with a leading 2-character name. - o improved warnings when suppressing items to fit in - termcap's 1023-byte limit. - o add check for multiple "tc=" clauses in a termcap. - o correct logic for resolving "use=" clauses allow infocmp - and tic to show cancelled capabilities. - o check for incomplete line-drawing character mapping. - o check for missing/empty/illegal terminfo name. - + tput: - o modify tput to use the same parameter analysis as - tparm() does, to provide for user-defined strings, e.g., - for xterm title, a corresponding capability might be - title=\E]2;%p1%s^G, - + tset: - o use the system's default values for CKILL and other - default control characters. - o correct interchanged defaults for kill and interrupt - characters, which caused it to report unnecessarily. - - Major bug fixes: - * prevent recursion in wgetch() via wgetnstr() if the connection - cannot be switched between cooked/raw modes because it is not a - TTY. - * correct a case in _nc_remove_string(), used by define_key(), to - avoid infinite loop if the given string happens to be a substring - of other strings which are assigned to keys. - * modify logic of acsc to use the original character if no mapping - is defined, rather than a null. - * several improvements for handling multi-cell display of wide - characters. - + modify setcchar() to allow converting control characters to - complex characters. - + correct handling of multibyte characters in waddch_literal() - which force wrapping because they are started too late on the - line. - + modify setcchar() to allow for wchar_t input strings that - have more than one spacing character. - * other fixes for wide-character support: - + rewrote lib_acs.c to allow PutAttrChar() to decide how to - render alternate-characters, i.e., to work with Linux console - and UTF-8 locale. - + implement a workaround so that line-drawing works with - screen's crippled UTF-8 support (tested with 3.9.13). This - only works with the wide-character support (--enable-widec); - the normal library will simply suppress line-drawing when - running in a UTF-8 locale in screen. - + corrections to lib_get_wstr.c: - o null-terminate buffer passed to setcchar(), which - occasionally failed. - o map special characters such as erase- and - kill-characters into key-codes so those will work as - expected even if they are not mentioned in the terminfo. - * modify setupterm() to check if the terminfo and terminal-modes - have already been read. This ensures that it does not reinvoke - def_prog_mode() when an application calls more than one function, - such as tgetent() and initscr(). - * fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, - REQ_DEL_CHAR, REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure - the cursor was at the editing position before making - modifications. - * correct keybound(), which reported definitions in the wrong table, - i.e., the list of definitions which are disabled by keyok(). - * fixes related to safe_sprintf.c: - + correct an allocation size in safe_sprintf.c for the "*" - format code. - + correct safe_sprintf.c to not return a null pointer if the - format happens to be an empty string. - + make return value from _nc_printf_string() consistent. - Before, depending on whether --enable-safe-sprintf was used, - it might not be cached for reallocating. - * other low-level improvements to the optimization code include: - + if the output is a socket or other non-tty device, use 1 - millisecond for the cost in mvcur; previously it was 9 - milliseconds because the baudrate was not known. - + modify lib_getch.c to avoid recursion via wgetnstr() when the - input is not a tty and consequently mode-changes do not work. - + fix several places in tack/pad.c which tested and used the - parameter- and parameterless strings inconsistently. - + change several tputs() calls in scrolling code to use putp(), - to enable padding which may be needed for some terminals. - + improve mvcur() by checking if it is safe to move when video - attributes are set (msgr), and if not, reset/restore - attributes within that function rather than doing it - separately in the GoTo() function in tty_update.c. - + use tputs() rather than putp() in a few cases in tty_update.c - since the corresponding delays are proportional to the number - of lines affected: repeat_char, clr_eos, - change_scroll_region. - * correct line/column reference in adjust_window(), needed to make - special windows such as curscr track properly when resizing. - * fix a potential recursion between napms() and _nc_timed_wait() - * rewrote lib_insch.c, combining it with lib_insstr.c so both handle - tab and other control characters consistently. - * do not try to open gpm mouse driver if standard output is not a - tty; the gpm library does not make this check. - - Portability: - * configure script: - + new options: - - --with-abi-version option. - addresses platforms where packagers have diverged - from ncurses ABI numbering. - - --with-manpage-format=catonly - addresses behavior of BSDI, allow install of - man+cat files on NetBSD, whose behavior has - diverged by requiring both to be present. - - --with-manpage-aliases - extends "--with-manpage-aliases" to provide the - option of generating ".so" files rather than - symbolic links for manpage aliases. - - --with-rel-version - workaround to force libtool on Darwin generate the - "same" library names as with the "--with-shared" - option. The Darwin ld program does not work well - with a zero as the minor-version value. - - --with-trace - simplifies defining TRACE to incorporate trace() in - libraries. - - + fixes/improvements for cross-compiling: - o allow BUILD_CC and related configure script variables to - be overridden from the environment. - o use AC_CHECK_TOOL to get proper values for AR and LD for - cross compiling. - o use $cross_compiling variable in configure script rather - than comparing $host_alias and $target alias, since - "host" is traditionally misused in autoconf to refer to - the target platform. - o modify run_tic.in to avoid using wrong shared libraries - when cross-compiling. - + fixes for Mac OS X: - o fix a redefinition of $RANLIB in the configure script - when libtool is used. - o modify MKlib_gen.sh to avoid passing "#" tokens through - the C preprocessor. This works around Mac OS X's - preprocessor, which insists on adding a blank on each - side of the token. - + workarounds for broken tools: - o add configure check for wchar_t and wint_t types, rather - than rely on preprocessor definitions. Also work around - for gcc fixinclude bug which creates a shadow copy of - curses.h if it sees these symbols apparently typedef'd. - o modify configure script to omit -Winline for gcc 3.3, - since that feature is broken. - o several script fixes to work around the ironically named - POSIXLY_CORRECT feature of GNU sed 4.0. - o modify configure script to avoid using "head -1", which - does not work if POSIXLY_CORRECT (sic) is set. - o update configure script to reflect fix for - AC_PROG_GCC_TRADITIONAL, which is broken in autoconf - 2.5x for Mac OS X 10.2.3. - o repair check for missing C++ compiler, which is broken - in autoconf 2.5x by hardcoding it to g++. - + corrected ifdef's relating to configure check for wchar_t, - etc. - + remove configure script check to allow -Wconversion for older - versions of gcc - + modify configure script to accommodate libtool 1.5, as well - as add an parameter to the "--with-libtool" option which can - specify the pathname of libtool. - + change several sed scripts to avoid using "\+" since it is - not a BRE (basic regular expression). One instance caused - terminfo.5 to be misformatted on FreeBSD. - + use '%' as sed substitute delimiter in run_tic script to - avoid problems with pathname delimiters such as ':' and '@'. - + add -D_XOPEN_SOURCE=500 if needed when configuring with - "--enable-widec", to get mbstate_t declaration on HPUX 11.11. - * library: - + adjust include-options in CF_ETIP_DEFINES to avoid missing - ncurses_dll.h, fixing special definitions that may be needed - for etip.h. - + modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use - a ".so" suffix. - + improve ifdef's to guard against redefinition of wchar_t and - wint_t in curses.h. - + remove an #undef for KEY_EVENT from curses.tail used in the - experimental NCURSES_WGETCH_EVENTS feature. The #undef - confuses Debian dpkg's build script. - - Features of Ncurses - - The ncurses package is fully compatible with SVr4 (System V Release 4) - curses: - * All 257 of the SVr4 calls have been implemented (and are - documented). - * Full support for SVr4 curses features including keyboard mapping, - color, forms-drawing with ACS characters, and automatic - recognition of keypad and function keys. - * An emulation of the SVr4 panels library, supporting a stack of - windows with backing store, is included. - * An emulation of the SVr4 menus library, supporting a uniform but - flexible interface for menu programming, is included. - * An emulation of the SVr4 form library, supporting data collection - through on-screen forms, is included. - * Binary terminfo entries generated by the ncurses tic(1) - implementation are bit-for-bit-compatible with the entry format - SVr4 curses uses. - * The utilities have options to allow you to filter terminfo entries - for use with less capable curses/terminfo versions such as the - HP/UX and AIX ports. - - The ncurses package also has many useful extensions over SVr4: - * The API is 8-bit clean and base-level conformant with the X/OPEN - curses specification, XSI curses (that is, it implements all BASE - level features, but not all EXTENDED features). Most - EXTENDED-level features not directly concerned with wide-character - support are implemented, including many function calls not - supported under SVr4 curses (but portability of all calls is - documented so you can use the SVr4 subset only). - * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost - corner of the screen if your terminal has an insert-character - capability. - * Ada95 and C++ bindings. - * Support for mouse event reporting with X Window xterm and OS/2 - console windows. - * Extended mouse support via Alessandro Rubini's gpm package. - * The function wresize() allows you to resize windows, preserving - their data. - * The function use_default_colors() allows you to use the terminal's - default colors for the default color pair, achieving the effect of - transparent colors. - * The functions keyok() and define_key() allow you to better control - the use of function keys, e.g., disabling the ncurses KEY_MOUSE, - or by defining more than one control sequence to map to a given - key code. - * Support for 16-color terminals, such as aixterm and XFree86 xterm. - * Better cursor-movement optimization. The package now features a - cursor-local-movement computation more efficient than either BSD's - or System V's. - * Super hardware scrolling support. The screen-update code - incorporates a novel, simple, and cheap algorithm that enables it - to make optimal use of hardware scrolling, line-insertion, and - line-deletion for screen-line movements. This algorithm is more - powerful than the 4.4BSD curses quickch() routine. - * Real support for terminals with the magic-cookie glitch. The - screen-update code will refrain from drawing a highlight if the - magic- cookie unattributed spaces required just before the - beginning and after the end would step on a non-space character. - It will automatically shift highlight boundaries when doing so - would make it possible to draw the highlight without changing the - visual appearance of the screen. - * It is possible to generate the library with a list of pre-loaded - fallback entries linked to it so that it can serve those terminal - types even when no terminfo tree or termcap file is accessible - (this may be useful for support of screen-oriented programs that - must run in single-user mode). - * The tic(1)/captoinfo utility provided with ncurses has the ability - to translate many termcaps from the XENIX, IBM and AT&T extension - sets. - * A BSD-like tset(1) utility is provided. - * The ncurses library and utilities will automatically read terminfo - entries from $HOME/.terminfo if it exists, and compile to that - directory if it exists and the user has no write access to the - system directory. This feature makes it easier for users to have - personal terminfo entries without giving up access to the system - terminfo directory. - * You may specify a path of directories to search for compiled - descriptions with the environment variable TERMINFO_DIRS (this - generalizes the feature provided by TERMINFO under stock System - V.) - * In terminfo source files, use capabilities may refer not just to - other entries in the same source file (as in System V) but also to - compiled entries in either the system terminfo directory or the - user's $HOME/.terminfo directory. - * A script (capconvert) is provided to help BSD users transition - from termcap to terminfo. It gathers the information in a TERMCAP - environment variable and/or a ~/.termcap local entries file and - converts it to an equivalent local terminfo tree under - $HOME/.terminfo. - * Automatic fallback to the /etc/termcap file can be compiled in - when it is not possible to build a terminfo tree. This feature is - neither fast nor cheap, you don't want to use it unless you have - to, but it's there. - * The table-of-entries utility toe makes it easy for users to see - exactly what terminal types are available on the system. - * The library meets the XSI requirement that every macro entry point - have a corresponding function which may be linked (and will be - prototype-checked) if the macro definition is disabled with - #undef. - * An HTML "Introduction to Programming with NCURSES" document - provides a narrative introduction to the curses programming - interface. - - State of the Package - - Numerous bugs present in earlier versions have been fixed; the library - is far more reliable than it used to be. Bounds checking in many - `dangerous' entry points has been improved. The code is now type-safe - according to gcc -Wall. The library has been checked for malloc leaks - and arena corruption by the Purify memory-allocation tester. - - The ncurses code has been tested with a wide variety of applications - including (versions starting with those noted): - - cdk - Curses Development Kit - [3]http://invisible-island.net/cdk/ - [4]http://www.vexus.ca/products/CDK/ - - ded - directory-editor - [5]http://invisible-island.net/ded/ - - dialog - the underlying application used in Slackware's setup, and the - basis for similar applications on GNU/Linux. - [6]http://invisible-island.net/dialog/ - - lynx - the character-screen WWW browser - [7]http://lynx.isc.org/release/ - - Midnight Commander - file manager - [8]http://www.ibiblio.org/mc/ - - mutt - mail utility - [9]http://www.mutt.org/ - - ncftp - file-transfer utility - [10]http://www.ncftp.com/ - - nvi - New vi versions 1.50 are able to use ncurses versions 1.9.7 and - later. - [11]http://www.bostic.com/vi/ - - pinfo - Lynx-like info browser. - [12]http://dione.ids.pl/~pborys/software/pinfo/ - - tin - newsreader, supporting color, MIME [13]http://www.tin.org/ - - vh-1.6 - Volks-Hypertext browser for the Jargon File - [14]http://www.debian.org/Packages/unstable/text/vh.html - - as well as some that use ncurses for the terminfo support alone: - - minicom - terminal emulator - [15]http://www.netsonic.fi/~walker/minicom.html - - vile - vi-like-emacs - [16]http://invisible-island.net/vile/ - - The ncurses distribution includes a selection of test programs - (including a few games). - -Who's Who and What's What - - Zeyd Ben-Halim started it from a previous package pcurses, written by - Pavel Curtis. Eric S. Raymond continued development. Jürgen Pfeifer - wrote most of the form and menu libraries. Ongoing work is being done - by [17]Thomas Dickey. Thomas Dickey acts as the maintainer for the - Free Software Foundation, which holds the copyright on ncurses. - Contact the current maintainers at [18]bug-ncurses@gnu.org. - - To join the ncurses mailing list, please write email to - bug-ncurses-request@gnu.org containing the line: - subscribe @ - - This list is open to anyone interested in helping with the development - and testing of this package. - - Beta versions of ncurses and patches to the current release are made - available at [19]ftp://invisible-island.net/ncurses/ . - -Future Plans - - * Extended-level XPG4 conformance, with internationalization - support. - * Ports to more systems, including DOS and Windows. - - We need people to help with these projects. If you are interested in - working on them, please join the ncurses list. - -Other Related Resources - - The distribution provides a newer version of the terminfo-format - terminal description file maintained by [20]Eric Raymond . Unlike the - older version, the termcap and terminfo data are provided in the same - file. - - You can find lots of information on terminal-related topics not - covered in the terminfo file at [21]Richard Shuford's archive . - -References - - 1. ftp://ftp.gnu.org/gnu/ncurses/ - 2. ftp://invisible-island.net/ncurses/ - 3. http://invisible-island.net/cdk/ - 4. http://www.vexus.ca/products/CDK/ - 5. http://invisible-island.net/ded/ - 6. http://invisible-island.net/dialog/ - 7. http://lynx.isc.org/release/ - 8. http://www.ibiblio.org/mc/ - 9. http://www.mutt.org/ - 10. http://www.ncftp.com/ - 11. http://www.bostic.com/vi/ - 12. http://dione.ids.pl/~pborys/software/pinfo/ - 13. http://www.tin.org/ - 14. http://www.debian.org/Packages/unstable/text/vh.html - 15. http://www.netsonic.fi/~walker/minicom.html - 16. http://invisible-island.net/vile/ - 17. mailto:dickey@invisible-island.net - 18. mailto:bug-ncurses@gnu.org - 19. ftp://invisible-island.net/ncurses/ - 20. http://www.catb.org/~esr/terminfo/ - 21. http://www.cs.utk.edu/~shuford/terminal_index.html diff --git a/Build/source/libs/ncurses/INSTALL b/Build/source/libs/ncurses/INSTALL deleted file mode 100644 index 9a3a39210b3..00000000000 --- a/Build/source/libs/ncurses/INSTALL +++ /dev/null @@ -1,1245 +0,0 @@ --- $Id: INSTALL,v 1.79 2004/10/09 16:56:33 tom Exp $ ---------------------------------------------------------------------- - How to install Ncurses/Terminfo on your system ---------------------------------------------------------------------- - - ************************************************************ - * READ ALL OF THIS FILE BEFORE YOU TRY TO INSTALL NCURSES. * - ************************************************************ - -You should be reading the file INSTALL in a directory called ncurses-d.d, where -d.d is the current version number. There should be several subdirectories, -including `c++', `form', `man', `menu', 'misc', `ncurses', `panel', `progs', -and `test'. See the README file for a roadmap to the package. - -If you are a Linux or FreeBSD or NetBSD distribution integrator or packager, -please read and act on the section titled IF YOU ARE A SYSTEM INTEGRATOR -below. - -If you are converting from BSD curses and do not have root access, be sure -to read the BSD CONVERSION NOTES section below. - -If you are trying to build applications using gpm with ncurses, -read the USING NCURSES WITH GPM section below. - -If you are running over the Andrew File System see the note below on -USING NCURSES WITH AFS. - -If you are cross-compiling, see the note below on BUILDING NCURSES WITH A -CROSS-COMPILER. - -If you want to build the Ada95 binding, go to the Ada95 directory and -follow the instructions there. The Ada95 binding is not covered below. - -If you are using anything but (a) Linux, or (b) one of the 4.4BSD-based -i386 Unixes, go read the Portability section in the TO-DO file before you -do anything else. - - -REQUIREMENTS: ------------- - -You will need the following to build and install ncurses under UNIX: - - * ANSI C compiler (gcc, for instance) - * sh (bash will do) - * awk (mawk or gawk will do) - * sed - * BSD or System V style install (a script is enclosed) - -Ncurses has been also built in the OS/2 EMX environment. - - -INSTALLATION PROCEDURE: ----------------------- - -1. First, decide whether you want ncurses to replace your existing library (in - which case you'll need super-user privileges) or be installed in parallel - with it. - - The --prefix option to configure changes the root directory for installing - ncurses. The default is normally in subdirectories of /usr/local, except - for systems where ncurses is normally installed as a system library, e.g., - Linux, the various BSD systems and Cygwin. Use --prefix=/usr to replace - your default curses distribution. - - The package gets installed beneath the --prefix directory as follows: - - In $(prefix)/bin: tic, infocmp, captoinfo, tset, - reset, clear, tput, toe - In $(prefix)/lib: libncurses*.* libcurses.a - In $(prefix)/share/terminfo: compiled terminal descriptions - In $(prefix)/include: C header files - Under $(prefix)/man: the manual pages - - Note that the configure script attempts to locate previous installation of - ncurses, and will set the default prefix according to where it finds the - ncurses headers. - - Do not use commands such as - - make install prefix=XXX - - to change the prefix after configuration, since the prefix value is used - for some absolute pathnames such as TERMINFO. Instead do this - - make install DESTDIR=XXX - - See also the discussion of --with-install-prefix. - -2. Type `./configure' in the top-level directory of the distribution to - configure ncurses for your operating system and create the Makefiles. - Besides --prefix, various configuration options are available to customize - the installation; use `./configure --help' to list the available options. - - If your operating system is not supported, read the PORTABILITY section in - the file ncurses/README for information on how to create a configuration - file for your system. - - The `configure' script generates makefile rules for one or more object - models and their associated libraries: - - libncurses.a (normal) - - libcurses.a (normal, a link to libncurses.a) - This gets left out if you configure with --disable-overwrite. - - libncurses.so (shared) - - libncurses_g.a (debug) - - libncurses_p.a (profile) - - libncurses.la (libtool) - - If you configure using the --enable-widec option, a "w" is appended to the - library names (e.g., libncursesw.a), and the resulting libraries support - wide-characters, e.g., via a UTF-8 locale. The corresponding header files - are compatible with the non-wide-character configuration; wide-character - features are provided by ifdef's in the header files. The wide-character - library interfaces are not binary-compatible with the non-wide-character - version. Building and running the wide-character code relies on a fairly - recent implementation of libiconv. We have built this configuration on - Linux using libiconv, sometimes requiring libutf8. - - If you do not specify any models, the normal and debug libraries will be - configured. Typing `configure' with no arguments is equivalent to: - - ./configure --with-normal --with-debug --enable-overwrite - - Typing - - ./configure --with-shared - - makes the shared libraries the default, resulting in - - ./configure --with-shared --with-normal --with-debug --enable-overwrite - - If you want only shared libraries, type - - ./configure --with-shared --without-normal --without-debug - - Rules for generating shared libraries are highly dependent upon the choice - of host system and compiler. We've been testing shared libraries on Linux - and SunOS with gcc, but more work needs to be done to make shared libraries - work on other systems. - - If you have libtool installed, you can type - - ./configure --with-libtool - - to generate the appropriate static and/or shared libraries for your - platform using libtool. - - You can make curses and terminfo fall back to an existing file of termcap - definitions by configuring with --enable-termcap. If you do this, the - library will search /etc/termcap before the terminfo database, and will - also interpret the contents of the TERM environment variable. See the - section BSD CONVERSION NOTES below. - -3. Type `make'. Ignore any warnings, no error messages should be produced. - This should compile the ncurses library, the terminfo compiler tic(1), - captoinfo(1), infocmp(1), toe(1), clear(1) tset(1), reset(1), and tput(1) - programs (see the manual pages for explanation of what they do), some test - programs, and the panels, menus, and forms libraries. - -4. Run ncurses and several other test programs in the test directory to - verify that ncurses functions correctly before doing an install that - may overwrite system files. Read the file test/README for details on - the test programs. - - NOTE: You must have installed the terminfo database, or set the - environment variable $TERMINFO to point to a SVr4-compatible terminfo - database before running the test programs. Not all vendors' terminfo - databases are SVr4-compatible, but most seem to be. Exceptions include - DEC's Digital Unix (formerly known as OSF/1). - - If you run the test programs WITHOUT installing terminfo, ncurses may - read the termcap file and cache that in $HOME/.terminfo, which will - thereafter be used instead of the terminfo database. See the comments - on "--enable-getcap-cache", to see why this is a Bad Thing. - - It is possible to configure ncurses to use other terminfo database formats. - A few are provided as examples in the include-directory (see --with-caps). - - The ncurses program is designed specifically to test the ncurses library. - You can use it to verify that the screen highlights work correctly, that - cursor addressing and window scrolling works OK, etc. - -5. Once you've tested, you can type `make install' to install libraries, - the programs, the terminfo database and the manual pages. Alternately, you - can type `make install' in each directory you want to install. In the - top-level directory, you can do a partial install using these commands: - - 'make install.progs' installs tic, infocmp, etc... - 'make install.includes' installs the headers. - 'make install.libs' installs the libraries (and the headers). - 'make install.data' installs the terminfo data. (Note: `tic' must - be installed before the terminfo data can be - compiled). - 'make install.man' installs the manual pages. - - ############################################################################ - # CAVEAT EMPTOR: `install.data' run as root will NUKE any existing # - # terminfo database. If you have any custom or unusual entries SAVE them # - # before you install ncurses. I have a file called terminfo.custom for # - # this purpose. Don't forget to run tic on the file once you're done. # - ############################################################################ - - The terminfo(5) manual page must be preprocessed with tbl(1) before - being formatted by nroff(1). Modern man(1) implementations tend to do - this by default, but you may want to look at your version's manual page - to be sure. You may also install the manual pages after preprocessing - with tbl(1) by specifying the configure option --with-manpage-tbl. - - If the system already has a curses library that you need to keep using - you'll need to distinguish between it and ncurses. See the discussion of - --disable-overwrite. If ncurses is installed outside the standard - directories (/usr/include and /usr/lib) then all your users will need to - use the -I option to compile programs and -L to link them. - - If you have another curses installed in your system and you accidentally - compile using its curses.h you'll end up with a large number of - undefined symbols at link time. - - IF YOU DO NOT HAVE ROOT: Change directory to the `progs' subdirectory - and run the `capconvert' script. This script will deduce various things - about your environment and use them to build you a private terminfo tree, - so you can use ncurses applications. - - If more than one user at your site does this, the space for the duplicate - trees is wasted. Try to get your site administrators to install a system- - wide terminfo tree instead. - - See the BSD CONVERSION NOTES section below for a few more details. - -6. The c++ directory has C++ classes that are built on top of ncurses and - panels. You must have c++ (and its libraries) installed before you can - compile and run the demo. - - Use --without-cxx-binding to tell configure to not build the C++ bindings - and demo. - - If you do not have C++, you must use the --without-cxx option to tell - the configure script to not attempt to determine the type of 'bool' - which may be supported by C++. IF YOU USE THIS OPTION, BE ADVISED THAT - YOU MAY NOT BE ABLE TO COMPILE (OR RUN) NCURSES APPLICATIONS WITH C++. - - -SUMMARY OF CONFIGURE OPTIONS: ----------------------------- - - The configure script provides a short list of its options when you type - - ./configure --help - - The --help and several options are common to all configure scripts that are - generated with autoconf. Those are all listed before the line - - --enable and --with options recognized: - - The other options are specific to this package. We list them in alphabetic - order. - - --disable-assumed-color - With ncurses 5.1, we introduced a new function, assume_default_colors() - which allows applications to specify what the default foreground and - background color are assumed to be. Most color applications use - full-screen color; but a few do not color the background. While the - assumed values can be overridden by invoking assume_default_colors(), - you may find it useful to set the assumed values to the pre-5.1 - convention, using this configure option. - - --disable-big-core - Assume machine has little memory. The configure script attempts to - determine if your machine has enough memory (about 6Mb) to compile the - terminfo database without writing portions to disk. Some allocators - return deceptive results, so you may have to override the configure - script. Or you may be building tic for a smaller machine. - - --disable-database - Use only built-in data. The ncurses libraries normally read terminfo - and termcap data from disk. You can configure ncurses to have a - built-in database, aka "fallback" entries. Embedded applications may - have no need for an external database. Some, but not all of the - programs are useful in this configuration, e.g., reset and tput versus - infocmp and tic. - - --disable-ext-funcs - Disable function-extensions. Configure ncurses without the functions - that are not specified by XSI. See ncurses/modules for the exact - list of library modules that would be suppressed. - - --disable-hashmap - Compile without hashmap scrolling-optimization code. This algorithm is - the default. - - --disable-home-terminfo - The $HOME/.terminfo directory is normally added to ncurses' search - list for reading/writing terminfo entries, since that directory is - more likely writable than the system terminfo database. Use this - option to disable the feature altogether. - - --disable-leaks - For testing, compile-in code that frees memory that normally would not - be freed, to simplify analysis of memory-leaks. - - --disable-macros - For testing, use functions rather than macros. The program will run - more slowly, but it is simpler to debug. This makes a header file - "nomacros.h". See also the --enable-expanded option. - - --disable-overwrite - If you are installing ncurses on a system which contains another - development version of curses, or which could be confused by the loader - for another version, we recommend that you leave out the link to - -lcurses. The ncurses library is always available as -lncurses. - Disabling overwrite also causes the ncurses header files to be - installed into a subdirectory, e.g., /usr/local/include/ncurses, - rather than the include directory. This makes it simpler to avoid - compile-time conflicts with other versions of curses.h - - --disable-root-environ - Compile with environment restriction, so certain environment variables - are not available when running as root, or via a setuid/setgid - application. These are (for example $TERMINFO) those that allow the - search path for the terminfo or termcap entry to be customized. - - --disable-scroll-hints - Compile without scroll-hints code. This option is ignored when - hashmap scrolling is configured, which is the default. - - --enable-assertions - For testing, compile-in assertion code. This is used only for a few - places where ncurses cannot easily recover by returning an error code. - - --enable-broken_linker - A few platforms have what we consider a broken linker: it cannot link - objects from an archive solely by referring to data objects in those - files, but requires a function reference. This configure option - changes several data references to functions to work around this - problem. - - NOTE: With ncurses 5.1, this may not be necessary, since we are - told that some linkers interpret uninitialized global data as a - different type of reference which behaves as described above. We have - explicitly initialized all of the global data to work around the - problem. - - --enable-bsdpad - Recognize BSD-style prefix padding. Some ancient BSD programs (such as - nethack) call tputs("50") to implement delays. - - --enable-colorfgbg - Compile with experimental $COLORFGBG code. That environment variable - is set by some terminal emulators as a hint to applications, by - advertising the default foreground and background colors. During - initialization, ncurses sets color pair 0 to match this. - - --enable-const - The curses interface as documented in XSI is rather old, in fact - including features that precede ANSI C. The prototypes generally do - not make effective use of "const". When using stricter compilers (or - gcc with appropriate warnings), you may see warnings about the mismatch - between const and non-const data. We provide a configure option which - changes the interfaces to use const - quieting these warnings and - reflecting the actual use of the parameters more closely. The ncurses - library uses the symbol NCURSES_CONST for these instances of const, - and if you have asked for compiler warnings, will add gcc's const-qual - warning. There will still be warnings due to subtle inconsistencies - in the interface, but at a lower level. - - NOTE: configuring ncurses with this option may detract from the - portability of your applications by encouraging you to use const in - places where the XSI curses interface would not allow them. Similar - issues arise when porting to SVr4 curses, which uses const in even - fewer places. - - --enable-echo - Use the option --disable-echo to make the build-log less verbose by - suppressing the display of the compile and link commands. This makes - it easier to see the compiler warnings. (You can always use "make -n" - to see the options that are used). - - --enable-expanded - For testing, generate functions for certain macros to make them visible - as such to the debugger. See also the --disable-macros option. - - --enable-getcap - Use the 4.4BSD getcap code if available, or a bundled version of it to - fetch termcap entries. Entries read in this way cannot use (make - cross-references to) the terminfo tree, but it is faster than reading - /etc/termcap. - - --enable-getcap-cache - Cache translated termcaps under the directory $HOME/.terminfo - - NOTE: this sounds good - it makes ncurses run faster the second time. - But look where the data comes from - an /etc/termcap containing lots of - entries that are not up to date. If you configure with this option and - forget to install the terminfo database before running an ncurses - application, you will end up with a hidden terminfo database that - generally does not support color and will miss some function keys. - - --enable-hard-tabs - Compile-in cursor-optimization code that uses hard-tabs. We would make - this a standard feature except for the concern that the terminfo entry - may not be accurate, or that your stty settings have disabled the use - of tabs. - - --enable-no-padding - Compile-in support for the $NCURSES_NO_PADDING environment variable, - which allows you to suppress the effect of non-mandatory padding in - terminfo entries. This is the default, unless you have disabled the - extended functions. - - --enable-rpath - Use rpath option when generating shared libraries, and with some - restrictions when linking the corresponding programs. This applies - mainly to systems using the GNU linker (read the manpage). - - --enable-safe-sprintf - Compile with experimental safe-sprintf code. You may consider using - this if you are building ncurses for a system that has neither - vsnprintf() or vsprintf(). It is slow, however. - - --enable-sigwinch - Compile support for ncurses' SIGWINCH handler. If your application has - its own SIGWINCH handler, ncurses will not use its own. The ncurses - handler causes wgetch() to return KEY_RESIZE when the screen-size - changes. This option is the default, unless you have disabled the - extended functions. - - --enable-symlinks - If your system supports symbolic links, make tic use symbolic links - rather than hard links to save diskspace when writing aliases in the - terminfo database. - - --enable-tcap-names - Compile-in support for user-definable terminal capabilities. Use the - -x option of tic and infocmp to treat unrecognized terminal - capabilities as user-defined strings. This option is the default, - unless you have disabled the extended functions. - - --enable-termcap - Compile in support for reading terminal descriptions from termcap if no - match is found in the terminfo database. See also the --enable-getcap - and --enable-getcap-cache options. - - --enable-warnings - Turn on GCC compiler warnings. There should be only a few. - - --enable-widec - Compile with wide-character code. This makes a different version of - the libraries (e.g., libncursesw.so), which stores characters as - wide-characters, - - NOTE: applications compiled with this configuration are not compatible - with those built for 8-bit characters. You cannot simply make a - symbolic link to equate libncurses.so with libncursesw.so - - NOTE: the Ada95 binding may be built against either version of the the - ncurses library, but you must decide which: the binding installs the - same set of files for either version. Currently (2002/6/22) it does - not use the extended features from the wide-character code, so it is - probably better to not install the binding for that configuration. - - --enable-xmc-glitch - Compile-in support experimental xmc (magic cookie) code. - - --with-abi-version=NUM - Override the ABI version, which is used in shared library filenames. - Normally this is the same as the release version; some ports have - special requirements for compatibility. - - --with-ada-compiler=CMD - Specify the Ada95 compiler command (default "gnatmake") - - --with-ada-include=DIR - Tell where to install the Ada includes (default: - PREFIX/lib/ada/adainclude) - - --with-ada-objects=DIR - Tell where to install the Ada objects (default: PREFIX/lib/ada/adalib) - - --with-bool=TYPE - If --without-cxx is specified, override the type used for the "bool" - declared in curses.h (normally the type is automatically chosen to - correspond with that in , or defaults to platform-specific - sizes). - - --with-build-cc=XXX - If cross-compiling, specify a host C compiler, which is needed to - compile a few utilities which generate source modules for ncurses. - If you do not give this option, the configure script checks if the - $BUILD_CC variable is set, and otherwise defaults to gcc or cc. - - --with-build-cflags=XXX - If cross-compiling, specify the host C compiler-flags. You might need - to do this if the target compiler has unusual flags which confuse the - host compiler. - - --with-build-cppflags=XXX - If cross-compiling, specify the host C preprocessor-flags. You might - need to do this if the target compiler has unusual flags which confuse - the host compiler. - - --with-build-ldflags=XXX - If cross-compiling, specify the host linker-flags. You might need to - do this if the target linker has unusual flags which confuse the host - compiler. - - --with-build-libs=XXX - If cross-compiling, the host libraries. You might need to do this if - the target environment requires unusual libraries. - - --with-caps=XXX - Specify an alternate terminfo capabilities file, which makes the - configure script look for "include/Caps.XXX". A few systems, e.g., - AIX 4.x use the same overall file-format as ncurses for terminfo - data, but use different alignments within the tables to support - legacy applications. For those systems, you can configure ncurses - to use a terminfo database which is compatible with the native - applications. - - --with-database=XXX - Specify the terminfo source file to install. Usually you will wish - to install ncurses' default (misc/terminfo.src). Certain systems - have special requirements, e.g, OS/2 EMX has a customized terminfo - source file. - - --with-dbmalloc - For testing, compile and link with Conor Cahill's dbmalloc library. - - --with-debug - Generate debug-libraries (default). These are named by adding "_g" - to the root, e.g., libncurses_g.a - - --with-default-terminfo-dir=XXX - Specify the default terminfo database directory. This is normally - DATADIR/terminfo, e.g., /usr/share/terminfo. - - --with-develop - Enable experimental/development options. This does not count those - that change the interface, such as --enable-widec. - - --with-dmalloc - For testing, compile and link with Gray Watson's dmalloc library. - - --with-fallbacks=XXX - Specify a list of fallback terminal descriptions which will be - compiled into the ncurses library. See CONFIGURING FALLBACK ENTRIES. - - --with-gpm - use Alessandro Rubini's GPM library to provide mouse support on the - Linux console. - - --with-install-prefix=XXX - Allows you to specify an alternate location for installing ncurses - after building it. The value you specify is prepended to the "real" - install location. This simplifies making binary packages. The - makefile variable DESTDIR is set by this option. It is also possible - to use - make install DESTDIR=XXX - since the makefiles pass that variable to subordinate makes. - - NOTE: a few systems build shared libraries with fixed pathnames; this - option probably will not work for those configurations. - - --with-libtool[=XXX] - Generate libraries with libtool. If this option is selected, then it - overrides all other library model specifications. Note that libtool - must already be installed, uses makefile rules dependent on GNU make, - and does not promise to follow the version numbering convention of - other shared libraries on your system. However, if the --with-shared - option does not succeed, you may get better results with this option. - - If a parameter value is given, it must be the full pathname of the - particular version of libtool, e.g., - /usr/bin/libtool-1.2.3 - - --with-manpage-aliases - Tell the configure script you wish to create entries in the - man-directory for aliases to manpages which list them, e.g., the - functions in the panel manpage. This is the default. You can disable - it if your man program does this. You can also disable - --with-manpage-symlinks to install files containing a ".so" command - rather than symbolic links. - - --with-manpage-format=XXX - Tell the configure script how you would like to install man-pages. The - option value must be one of these: gzip, compress, BSDI, normal, - formatted. If you do not give this option, the configure script - attempts to determine which is the case. - - --with-manpage-renames=XXX - Tell the configure script that you wish to rename the manpages while - installing. Currently the only distribution which does this is - the Linux Debian. The option value specifies the name of a file - that lists the renamed files, e.g., $srcdir/man/man_db.renames - - --with-manpage-symlinks - Tell the configure script that you wish to make symbolic links in the - man-directory for aliases to the man-pages. This is the default, but - can be disabled for systems that provide this automatically. Doing - this on systems that do not support symbolic links will result in - copying the man-page for each alias. - - --with-manpage-tbl - Tell the configure script that you with to preprocess the manpages - by running them through tbl to generate tables understandable by - nroff. - - --with-ospeed=TYPE - Override type of ospeed variable, which is part of the termcap - compatibility interface. In termcap, this is a 'short', which works - for a wide range of baudrates because ospeed is not the actual speed - but the encoded value, e.g., B9600 would be a small number such as 13. - However the encoding scheme originally allowed for values "only" up to - 38400bd. A newer set of definitions past 38400bd is not encoded as - compactly, and is not guaranteed to fit into a short (see the function - cfgetospeed(), which returns a speed_t for this reason). In practice, - applications that required knowledge of the ospeed variable, i.e., - those using termcap, do not use the higher speeds. Your application - (or system, in general) may or may not. - - --with-normal - Generate normal (i.e., static) libraries (default). - - --with-profile - Generate profile-libraries These are named by adding "_p" to the root, - e.g., libncurses_p.a - - --with-rcs-ids - Compile-in RCS identifiers. Most of the C files have an identifier. - - --with-rel-version=NUM - Override the release version, which may be used in shared library - filenames. This consists of a major and minor version number separated - by ".". Normally the major version number is the same as the ABI - version; some ports have special requirements for compatibility. - - --with-shared - Generate shared-libraries. The names given depend on the system for - which you are building, typically using a ".so" suffix, along with - symbolic links that refer to the release version. - - NOTE: Unless you override the configure script by setting the $CFLAGS - environment variable, these will not be built with the -g debugging - option. - - --with-shlib-version=XXX - Specify whether to use the release or ABI version for shared libraries. - This is normally chosen automatically based on the type of system - which you are building on. We use it for testing the configure script. - - --with-sysmouse - use FreeBSD sysmouse interface provide mouse support on the console. - - --with-system-type=XXX - For testing, override the derived host system-type which is used to - decide things such as the linker commands used to build shared - libraries. This is normally chosen automatically based on the type of - system which you are building on. We use it for testing the configure - script. - - --with-terminfo-dirs=XXX - Specify a search-list of terminfo directories which will be compiled - into the ncurses library (default: DATADIR/terminfo) - - --with-termlib[=XXX] - When building the ncurses library, organize this as two parts: the - curses library (libncurses) and the low-level terminfo library - (libtinfo). This is done to accommodate applications that use only - the latter. The terminfo library is about half the size of the total. - - If an option value is given, that overrides the name of the terminfo - library. For instance, if the wide-character version is built, the - terminfo library would be named libtinfow. But the libtinfow interface - is upward compatible from libtinfo, so it would be possible to overlay - libtinfo.so with a "wide" version of libtinfow.so by renaming it with - this option. - - --with-termpath=XXX - Specify a search-list of termcap files which will be compiled into the - ncurses library (default: /etc/termcap:/usr/share/misc/termcap) - - --with-trace - Configure the trace() function as part of the all models of the ncurses - library. Normally it is part of the debug (libncurses_g) library only. - - --without-ada - Suppress the configure script's check for Ada95, do not build the - Ada95 binding and related demo. - - --without-curses-h - Don't install the ncurses header with the name "curses.h". Rather, - install as "ncurses.h" and modify the installed headers and manpages - accordingly. - - --without-cxx - XSI curses declares "bool" as part of the interface. C++ also declares - "bool". Neither specifies the size and type of booleans, but both - insist on the same name. We chose to accommodate this by making the - configure script check for the size and type (e.g., unsigned or signed) - that your C++ compiler uses for booleans. If you do not wish to use - ncurses with C++, use this option to tell the configure script to not - adjust ncurses bool to match C++. - - --without-cxx-binding - Suppress the configure script's check for C++, do not build the - C++ binding and related demo. - - --without-progs - Tell the configure script to suppress the build of ncurses' application - programs (e.g., tic). The test applications will still be built if you - type "make", though not if you simply do "make install". - - --without-xterm-new - Tell the configure script to use "xterm-old" for the entry used in - the terminfo database. This will work with variations such as - X11R5 and X11R6 xterm. - - -COMPATIBILITY WITH OLDER VERSIONS OF NCURSES: --------------------------------------------- - - Because ncurses implements the X/Open Curses Specification, its interface - is fairly stable. That does not mean the interface does not change. - Changes are made to the documented interfaces when we find differences - between ncurses and X/Open or implementations which they certify (such as - Solaris). We add extensions to those interfaces to solve problems not - addressed by the original curses design, but those must not conflict with - the X/Open documentation. - - Here are some of the major interface changes, and related problems which - you may encounter when building a system with different versions of - ncurses: - - 5.4 (February 8, 2004) - Interface changes: - - + add the remaining functions for X/Open curses wide-character support. - These are only available if the library is configured using the - --enable-widec option. - pecho_wchar() - slk_wset() - - + write getyx() and related 2-return macros in terms of getcury(), - getcurx(), etc. - - + simplify ifdef for bool declaration in curses.h - - + modify ifdef's in curses.h that disabled use of __attribute__() for - g++, since recent versions implement the cases which ncurses uses. - - + change some interfaces to use const: - define_key() - mvprintw() - mvwprintw() - printw() - vw_printw() - winsnstr() - wprintw() - - Added extensions: - key_defined() - Added internal functions: - _nc_get_locale() - _nc_insert_ch() - _nc_is_charable() wide - _nc_locale_breaks_acs() - _nc_pathlast() - _nc_to_char() wide - _nc_to_widechar() wide - _nc_tparm_analyze() - _nc_trace_bufcat() debug - _nc_unicode_locale() - Removed internal functions: - _nc_outstr() - _nc_sigaction() - Modified internal functions: - _nc_remove_string() - _nc_retrace_chtype() - - 5.3 (October 12, 2002) - Interface changes: - - + change type for bool used in headers to NCURSES_BOOL, which usually - is the same as the compiler's definition for 'bool'. - - + add all but two functions for X/Open curses wide-character support. - These are only available if the library is configured using the - --enable-widec option. Missing functions are - pecho_wchar() - slk_wset() - - + add environment variable $NCURSES_ASSUMED_COLORS to modify the - assume_default_colors() extension. - - Added extensions: - is_term_resized() - resize_term() - Added internal functions: - _nc_altcharset_name() debug - _nc_reset_colors() - _nc_retrace_bool() debug - _nc_retrace_unsigned() debug - _nc_rootname() - _nc_trace_ttymode() debug - _nc_varargs() debug - _nc_visbufn() debug - _nc_wgetch() - Removed internal functions: - _nc_background() - Modified internal functions: - _nc_freeall() debug - - 5.2 (October 21, 2000) - Interface changes: - - + revert termcap ospeed variable to 'short' (see discussion of the - --with-ospeed configure option). - - 5.1 (July 8, 2000) - Interface changes: - - + made the extended terminal capabilities - (configure --enable-tcap-names) a standard feature. This should - be transparent to applications that do not require it. - - + removed the trace() function and related trace support from the - production library. - - + modified curses.h.in, undef'ing some symbols to avoid conflict - with C++ STL. - - Added extensions: assume_default_colors(). - - 5.0 (October 23, 1999) - Interface changes: - - + implemented the wcolor_set() and slk_color() functions. - - + move macro winch to a function, to hide details of struct ldat - - + corrected prototypes for slk_* functions, using chtype rather than - attr_t. - - + the slk_attr_{set,off,on} functions need an additional void* - parameter according to XSI. - - + modified several prototypes to correspond with 1997 version of X/Open - Curses: [w]attr_get(), [w]attr_set(), border_set() have different - parameters. Some functions were renamed or misspelled: - erase_wchar(), in_wchntr(), mvin_wchntr(). Some developers have used - attr_get(). - - Added extensions: keybound(), curses_version(). - - Terminfo database changes: - - + change translation for termcap 'rs' to terminfo 'rs2', which is - the documented equivalent, rather than 'rs1'. - - The problems are subtler in recent releases. - - a) This release provides users with the ability to define their own - terminal capability extensions, like termcap. To accomplish this, - we redesigned the TERMTYPE struct (in term.h). Very few - applications use this struct. They must be recompiled to work with - the 5.0 library. - - a) If you use the extended terminfo names (i.e., you used configure - --enable-tcap-names), the resulting terminfo database can have some - entries which are not readable by older versions of ncurses. This - is a bug in the older versions: - - + the terminfo database stores booleans, numbers and strings in - arrays. The capabilities that are listed in the arrays are - specified by X/Open. ncurses recognizes a number of obsolete and - extended names which are stored past the end of the specified - entries. - - + a change to read_entry.c in 951001 made the library do an lseek() - call incorrectly skipping data which is already read from the - string array. This happens when the number of strings in the - terminfo data file is greater than STRCOUNT, the number of - specified and obsolete or extended strings. - - + as part of alignment with the X/Open final specification, in the - 990109 patch we added two new terminfo capabilities: - set_a_attributes and set_pglen_inch). This makes the indices for - the obsolete and extended capabilities shift up by 2. - - + the last two capabilities in the obsolete/extended list are memu - and meml, which are found in most terminfo descriptions for xterm. - - When trying to read this terminfo entry, the spurious lseek() - causes the library to attempt to read the final portion of the - terminfo data (the text of the string capabilities) 4 characters - past its starting point, and reads 4 characters too few. The - library rejects the data, and applications are unable to - initialize that terminal type. - - FIX: remove memu and meml from the xterm description. They are - obsolete, not used by ncurses. (It appears that the feature was - added to xterm to make it more like hpterm). - - This is not a problem if you do not use the -x option of tic to - create a terminfo database with extended names. Note that the - user-defined terminal capabilities are not affected by this bug, - since they are stored in a table after the older terminfo data ends, - and are invisible to the older libraries. - - c) Some developers did not wish to use the C++ binding, and used the - configure --without-cxx option. This causes problems if someone - uses the ncurses library from C++ because that configure test - determines the type for C++'s bool and makes ncurses match it, since - both C++ and curses are specified to declare bool. Calling ncurses - functions with the incorrect type for bool will cause execution - errors. In 5.0 we added a configure option "--without-cxx-binding" - which controls whether the binding itself is built and installed. - - 4.2 (March 2, 1998) - Interface changes: - - + correct prototype for termattrs() as per XPG4 version 2. - - + add placeholder prototypes for color_set(), erasewchar(), - term_attrs(), wcolor_set() as per XPG4 version 2. - - + add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in - SVr4 headers. - - New extensions: keyok() and define_key(). - - Terminfo database changes: - - + corrected definition in curses.h for ACS_LANTERN, which was 'I' - rather than 'i'. - - 4.1 (May 15, 1997) - - We added these extensions: use_default_colors(). Also added - configure option --enable-const, to support the use of const where - X/Open should have, but did not, specify. - - The terminfo database content changed the representation of color for - most entries that use ANSI colors. SVr4 curses treats the setaf/setab - and setf/setb capabilities differently, interchanging the red/blue - colors in the latter. - - 4.0 (December 24, 1996) - - We bumped to version 4.0 because the newly released dynamic loader - (ld.so.1.8.5) on Linux did not load shared libraries whose ABI and REL - versions were inconsistent. At that point, ncurses ABI was 3.4 and the - REL was 1.9.9g, so we made them consistent. - - 1.9.9g (December 1, 1996) - - This fixed most of the problems with 1.9.9e, and made these interface - changes: - - + remove tparam(), which had been provided for compatibility with - some termcap. tparm() is standard, and does not conflict with - application's fallback for missing tparam(). - - + turn off hardware echo in initscr(). This changes the sense of the - echo() function, which was initialized to echoing rather than - nonechoing (the latter is specified). There were several other - corrections to the terminal I/O settings which cause applications to - behave differently. - - + implemented several functions (such as attr_on()) which were - available only as macros. - - + corrected several typos in curses.h.in (i.e., the mvXXXX macros). - - + corrected prototypes for delay_output(), - has_color, immedok() and idcok(). - - + corrected misspelled getbkgd(). Some applications used the - misspelled name. - - + added _yoffset to WINDOW. The size of WINDOW does not impact - applications, since they use only pointers to WINDOW structs. - - These changes were made to the terminfo database: - - + removed boolean 'getm' which was available as an extended name. - - We added these extensions: wresize(), resizeterm(), has_key() and - mcprint(). - - 1.9.9e (March 24, 1996) - - not recommended (a last-minute/untested change left the forms and - menus libraries unusable since they do not repaint the screen). - Foreground/background colors are combined incorrectly, working properly - only on a black background. When this was released, the X/Open - specification was available only in draft form. - - Some applications (such as lxdialog) were "fixed" to work with the - incorrect color scheme. - - -IF YOU ARE A SYSTEM INTEGRATOR: ------------------------------- - - Configuration and Installation: - - On platforms where ncurses is assumed to be installed in /usr/lib, - the configure script uses "/usr" as a default: - - Linux, FreeBSD, NetBSD, OpenBSD, Cygwin - - For other platforms, the default is "/usr/local". See the discussion - of the "--disable-overwrite" option. - - The location of the terminfo is set indirectly by the "--datadir" - configure option, e.g., /usr/share/terminfo, given a datadir of - /usr/share. You may want to override this if you are installing - ncurses libraries in nonstandard locations, but wish to share the - terminfo database. - - Normally the ncurses library is configured in a pure-terminfo mode; - that is, with the --disable-termcap option. This makes the ncurses - library smaller and faster. The ncurses library includes a termcap - emulation that queries the terminfo database, so even applications that - use raw termcap to query terminal characteristics will win (providing - you recompile and relink them!). - - If you must configure with termcap fallback enabled, you may also wish - to use the --enable-getcap option. This speeds up termcap-based - startups, at the expense of not allowing personal termcap entries to - reference the terminfo tree. See comments in - ncurses/tinfo/read_termcap.c for further details. - - Note that if you have $TERMCAP set, ncurses will use that value - to locate termcap data. In particular, running from xterm will - set $TERMCAP to the contents of the xterm's termcap entry. - If ncurses sees that, it will not examine /etc/termcap. - - Keyboard Mapping: - - The terminfo file assumes that Shift-Tab generates \E[Z (the ECMA-48 - reverse-tabulation sequence) rather than ^I. Here are the loadkeys -d - mappings that will set this up: - - keycode 15 = Tab Tab - alt keycode 15 = Meta_Tab - shift keycode 15 = F26 - string F26 ="\033[Z" - - Naming the Console Terminal - - In various systems there has been a practice of designating the system - console driver type as `console'. Please do not do this! It - complicates peoples' lives, because it can mean that several different - terminfo entries from different operating systems all logically want to - be called `console'. - - Please pick a name unique to your console driver and set that up - in the /etc/inittab table or local equivalent. Send the entry to the - terminfo maintainer (listed in the misc/terminfo file) to be included - in the terminfo file, if it's not already there. See the - term(7) manual page included with this distribution for more on - conventions for choosing type names. - - Here are some recommended primary console names: - - linux -- Linux console driver - freebsd -- FreeBSD - netbsd -- NetBSD - bsdos -- BSD/OS - - If you are responsible for integrating ncurses for one of these - distribution, please either use the recommended name or get back - to us explaining why you don't want to, so we can work out nomenclature - that will make users' lives easier rather than harder. - - -RECENT XTERM VERSIONS: ---------------------- - - The terminfo database file included with this distribution assumes you - are running a modern xterm based on XFree86 (i.e., xterm-new). The - earlier X11R6 entry (xterm-r6) and X11R5 entry (xterm-r5) is provided - as well. See the --without-xterm-new configure script option if you - are unable to update your system. - - -CONFIGURING FALLBACK ENTRIES: ----------------------------- - - In order to support operation of ncurses programs before the terminfo - tree is accessible (that is, in single-user mode or at OS installation - time) the ncurses library can be compiled to include an array of - pre-fetched fallback entries. - - These entries are checked by setupterm() only when the conventional - fetches from the terminfo tree and the termcap fallback (if configured) - have been tried and failed. Thus, the presence of a fallback will not - shadow modifications to the on-disk entry for the same type, when that - entry is accessible. - - By default, there are no entries on the fallback list. After you - have built the ncurses suite for the first time, you can change - the list (the process needs infocmp(1)). To do so, use the script - MKfallback.sh. A configure script option --with-fallbacks does this - (it accepts a comma-separated list of the names you wish, and does - not require a rebuild). - - If you wanted (say) to have linux, vt100, and xterm fallbacks, you - would use the commands - - cd ncurses; - MKfallback.sh linux vt100 xterm >fallback.c - - Then just rebuild and reinstall the library as you would normally. - You can restore the default empty fallback list with - - MKfallback.sh >fallback.c - - The overhead for an empty fallback list is one trivial stub function. - Any non-empty fallback list is const-ed and therefore lives in sharable - text space. You can look at the comment trailing each initializer in - the generated ncurses/fallback.c file to see the core cost of the - fallbacks. A good rule of thumb for modern vt100-like entries is that - each one will cost about 2.5K of text space. - - -BSD CONVERSION NOTES: --------------------- - - If you need to support really ancient BSD programs, you probably - want to configure with the --enable-bsdpad option. What this does - is enable code in tputs() that recognizes a numeric prefix on a - capability as a request for that much trailing padding in milliseconds. - There are old BSD programs that do things like tputs("50"). - - (If you are distributing ncurses as a support-library component of - an application you probably want to put the remainder of this section - in the package README file.) - - The following note applies only if you have configured ncurses with - --enable-termcap. - -------------------------------- CUT HERE -------------------------------- - -If you are installing this application privately (either because you -have no root access or want to experiment with it before doing a root -installation), there are a couple of details you need to be aware of. -They have to do with the ncurses library, which uses terminfo rather -than termcap for describing terminal characteristics. - -Though the ncurses library is terminfo-based, it will interpret your -TERMCAP variable (if present), any local termcap files you reference -through it, and the system termcap file. However, in order to avoid -slowing down your application startup, it will only do this once per -terminal type! - -The first time you load a given terminal type from your termcap -database, the library initialization code will automatically write it -in terminfo format to a subdirectory under $HOME/.terminfo. After -that, the initialization code will find it there and do a (much -faster) terminfo fetch. - -Usually, all this means is that your home directory will silently grow -an invisible .terminfo subdirectory which will get filled in with -terminfo descriptions of terminal types as you invoke them. If anyone -ever installs a global terminfo tree on your system, this will quietly -stop happening and your $HOME/.terminfo will become redundant. - -The objective of all this logic is to make converting from BSD termcap -as painless as possible without slowing down your application (termcap -compilation is expensive). - -If you don't have a TERMCAP variable or custom personal termcap file, -you can skip the rest of this dissertation. - -If you *do* have a TERMCAP variable and/or a custom personal termcap file -that defines a terminal type, that definition will stop being visible -to this application after the first time you run it, because it will -instead see the terminfo entry that it wrote to $HOME/terminfo the -first time around. - -Subsequently, editing the TERMCAP variable or personal TERMCAP file -will have no effect unless you explicitly remove the terminfo entry -under $HOME/terminfo. If you do that, the entry will be recompiled -from your termcap resources the next time it is invoked. - -To avoid these complications, use infocmp(1) and tic(1) to edit the -terminfo directory directly. - -------------------------------- CUT HERE -------------------------------- - -USING NCURSES WITH AFS: - AFS treats each directory as a separate logical filesystem, you - can't hard-link across them. The --enable-symlinks option copes - with this by making tic use symbolic links. - -USING NCURSES WITH GPM: - Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse) - which is used on Linux console. Be aware that GPM is commonly - installed as a shared library which contains a wrapper for the curses - wgetch() function (libcurses.o). Some integrators have simplified - linking applications by combining all or part of libcurses.so (the BSD - curses) into the libgpm.so file, producing symbol conflicts with - ncurses (specifically the wgetch function). You may be able to work - around this problem by linking as follows: - - cc -o foo foo.o -lncurses -lgpm -lncurses - - but the linker may not cooperate, producing mysterious errors. - See the FAQ: - - http://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib - -BUILDING NCURSES WITH A CROSS-COMPILER - Ncurses can be built with a cross-compiler. Some parts must be built - with the host's compiler since they are used for building programs - (e.g., ncurses/make_hash and ncurses/make_keys) that generate tables - that are compiled into the ncurses library. You should set the - BUILD_CC environment variable to your host's compiler, and run the - configure script configuring for the cross-compiler. - - Note that all of the generated source-files which are part of ncurses - will be made if you use - - make sources - - This would be useful in porting to an environment which has little - support for the tools used to generate the sources, e.g., sed, awk and - Bourne-shell. - -BUGS: - Send any feedback to the ncurses mailing list at - bug-ncurses@gnu.org. To subscribe send mail to - bug-ncurses-request@gnu.org with body that reads: - subscribe ncurses - - The Hacker's Guide in the doc directory includes some guidelines - on how to report bugs in ways that will get them fixed most quickly. diff --git a/Build/source/libs/ncurses/MANIFEST b/Build/source/libs/ncurses/MANIFEST deleted file mode 100644 index 1d89d287bbe..00000000000 --- a/Build/source/libs/ncurses/MANIFEST +++ /dev/null @@ -1,997 +0,0 @@ -./ANNOUNCE -./Ada95/Makefile.in -./Ada95/README -./Ada95/TODO -./Ada95/gen/Makefile.in -./Ada95/gen/gen.c -./Ada95/gen/html.m4 -./Ada95/gen/normal.m4 -./Ada95/gen/table.m4 -./Ada95/gen/terminal_interface-curses-aux.ads.m4 -./Ada95/gen/terminal_interface-curses-forms-field_types.ads.m4 -./Ada95/gen/terminal_interface-curses-forms-field_user_data.ads.m4 -./Ada95/gen/terminal_interface-curses-forms-form_user_data.ads.m4 -./Ada95/gen/terminal_interface-curses-forms.ads.m4 -./Ada95/gen/terminal_interface-curses-menus-item_user_data.ads.m4 -./Ada95/gen/terminal_interface-curses-menus-menu_user_data.ads.m4 -./Ada95/gen/terminal_interface-curses-menus.ads.m4 -./Ada95/gen/terminal_interface-curses-mouse.ads.m4 -./Ada95/gen/terminal_interface-curses-panels-user_data.ads.m4 -./Ada95/gen/terminal_interface-curses-panels.ads.m4 -./Ada95/gen/terminal_interface-curses-trace.ads.m4 -./Ada95/gen/terminal_interface-curses.ads.m4 -./Ada95/samples/Makefile.in -./Ada95/samples/README -./Ada95/samples/explain.txt -./Ada95/samples/ncurses.adb -./Ada95/samples/ncurses2-acs_and_scroll.adb -./Ada95/samples/ncurses2-acs_and_scroll.ads -./Ada95/samples/ncurses2-acs_display.adb -./Ada95/samples/ncurses2-acs_display.ads -./Ada95/samples/ncurses2-attr_test.adb -./Ada95/samples/ncurses2-attr_test.ads -./Ada95/samples/ncurses2-color_edit.adb -./Ada95/samples/ncurses2-color_edit.ads -./Ada95/samples/ncurses2-color_test.adb -./Ada95/samples/ncurses2-color_test.ads -./Ada95/samples/ncurses2-demo_forms.adb -./Ada95/samples/ncurses2-demo_forms.ads -./Ada95/samples/ncurses2-demo_pad.adb -./Ada95/samples/ncurses2-demo_pad.ads -./Ada95/samples/ncurses2-demo_panels.adb -./Ada95/samples/ncurses2-demo_panels.ads -./Ada95/samples/ncurses2-flushinp_test.adb -./Ada95/samples/ncurses2-flushinp_test.ads -./Ada95/samples/ncurses2-genericputs.adb -./Ada95/samples/ncurses2-genericputs.ads -./Ada95/samples/ncurses2-getch.ads -./Ada95/samples/ncurses2-getch_test.adb -./Ada95/samples/ncurses2-getch_test.ads -./Ada95/samples/ncurses2-getopt.adb -./Ada95/samples/ncurses2-getopt.ads -./Ada95/samples/ncurses2-m.adb -./Ada95/samples/ncurses2-m.ads -./Ada95/samples/ncurses2-menu_test.adb -./Ada95/samples/ncurses2-menu_test.ads -./Ada95/samples/ncurses2-overlap_test.adb -./Ada95/samples/ncurses2-overlap_test.ads -./Ada95/samples/ncurses2-slk_test.adb -./Ada95/samples/ncurses2-slk_test.ads -./Ada95/samples/ncurses2-test_sgr_attributes.adb -./Ada95/samples/ncurses2-test_sgr_attributes.ads -./Ada95/samples/ncurses2-trace_set.adb -./Ada95/samples/ncurses2-trace_set.ads -./Ada95/samples/ncurses2-util.adb -./Ada95/samples/ncurses2-util.ads -./Ada95/samples/ncurses2.ads -./Ada95/samples/rain.adb -./Ada95/samples/rain.ads -./Ada95/samples/sample-curses_demo-attributes.adb -./Ada95/samples/sample-curses_demo-attributes.ads -./Ada95/samples/sample-curses_demo-mouse.adb -./Ada95/samples/sample-curses_demo-mouse.ads -./Ada95/samples/sample-curses_demo.adb -./Ada95/samples/sample-curses_demo.ads -./Ada95/samples/sample-explanation.adb -./Ada95/samples/sample-explanation.ads -./Ada95/samples/sample-form_demo-aux.adb -./Ada95/samples/sample-form_demo-aux.ads -./Ada95/samples/sample-form_demo-handler.adb -./Ada95/samples/sample-form_demo-handler.ads -./Ada95/samples/sample-form_demo.adb -./Ada95/samples/sample-form_demo.ads -./Ada95/samples/sample-function_key_setting.adb -./Ada95/samples/sample-function_key_setting.ads -./Ada95/samples/sample-header_handler.adb -./Ada95/samples/sample-header_handler.ads -./Ada95/samples/sample-helpers.adb -./Ada95/samples/sample-helpers.ads -./Ada95/samples/sample-keyboard_handler.adb -./Ada95/samples/sample-keyboard_handler.ads -./Ada95/samples/sample-manifest.ads -./Ada95/samples/sample-menu_demo-aux.adb -./Ada95/samples/sample-menu_demo-aux.ads -./Ada95/samples/sample-menu_demo-handler.adb -./Ada95/samples/sample-menu_demo-handler.ads -./Ada95/samples/sample-menu_demo.adb -./Ada95/samples/sample-menu_demo.ads -./Ada95/samples/sample-my_field_type.adb -./Ada95/samples/sample-my_field_type.ads -./Ada95/samples/sample-text_io_demo.adb -./Ada95/samples/sample-text_io_demo.ads -./Ada95/samples/sample.adb -./Ada95/samples/sample.ads -./Ada95/samples/status.adb -./Ada95/samples/status.ads -./Ada95/samples/tour.adb -./Ada95/samples/tour.ads -./Ada95/src/Makefile.in -./Ada95/src/terminal_interface-curses-aux.adb -./Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb -./Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads -./Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb -./Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads -./Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb -./Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads -./Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb -./Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads -./Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb -./Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads -./Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb -./Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads -./Ada95/src/terminal_interface-curses-forms-field_types-numeric.adb -./Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads -./Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb -./Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads -./Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb -./Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads -./Ada95/src/terminal_interface-curses-forms-field_types-user.adb -./Ada95/src/terminal_interface-curses-forms-field_types-user.ads -./Ada95/src/terminal_interface-curses-forms-field_types.adb -./Ada95/src/terminal_interface-curses-forms-field_user_data.adb -./Ada95/src/terminal_interface-curses-forms-form_user_data.adb -./Ada95/src/terminal_interface-curses-forms.adb -./Ada95/src/terminal_interface-curses-menus-item_user_data.adb -./Ada95/src/terminal_interface-curses-menus-menu_user_data.adb -./Ada95/src/terminal_interface-curses-menus.adb -./Ada95/src/terminal_interface-curses-mouse.adb -./Ada95/src/terminal_interface-curses-panels-user_data.adb -./Ada95/src/terminal_interface-curses-panels.adb -./Ada95/src/terminal_interface-curses-putwin.adb -./Ada95/src/terminal_interface-curses-putwin.ads -./Ada95/src/terminal_interface-curses-termcap.adb -./Ada95/src/terminal_interface-curses-termcap.ads -./Ada95/src/terminal_interface-curses-terminfo.adb -./Ada95/src/terminal_interface-curses-terminfo.ads -./Ada95/src/terminal_interface-curses-text_io-aux.adb -./Ada95/src/terminal_interface-curses-text_io-aux.ads -./Ada95/src/terminal_interface-curses-text_io-complex_io.adb -./Ada95/src/terminal_interface-curses-text_io-complex_io.ads -./Ada95/src/terminal_interface-curses-text_io-decimal_io.adb -./Ada95/src/terminal_interface-curses-text_io-decimal_io.ads -./Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb -./Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads -./Ada95/src/terminal_interface-curses-text_io-fixed_io.adb -./Ada95/src/terminal_interface-curses-text_io-fixed_io.ads -./Ada95/src/terminal_interface-curses-text_io-float_io.adb -./Ada95/src/terminal_interface-curses-text_io-float_io.ads -./Ada95/src/terminal_interface-curses-text_io-integer_io.adb -./Ada95/src/terminal_interface-curses-text_io-integer_io.ads -./Ada95/src/terminal_interface-curses-text_io-modular_io.adb -./Ada95/src/terminal_interface-curses-text_io-modular_io.ads -./Ada95/src/terminal_interface-curses-text_io.adb -./Ada95/src/terminal_interface-curses-text_io.ads -./Ada95/src/terminal_interface-curses-trace.adb_p -./Ada95/src/terminal_interface-curses.adb -./Ada95/src/terminal_interface.ads -./INSTALL -./MANIFEST -./Makefile.in -./Makefile.os2 -./NEWS -./README -./README.emx -./TO-DO -./aclocal.m4 -./announce.html.in -./c++/Makefile.in -./c++/NEWS -./c++/PROBLEMS -./c++/README-first -./c++/cursesapp.cc -./c++/cursesapp.h -./c++/cursesf.cc -./c++/cursesf.h -./c++/cursesm.cc -./c++/cursesm.h -./c++/cursesmain.cc -./c++/cursesp.cc -./c++/cursesp.h -./c++/cursespad.cc -./c++/cursesw.cc -./c++/cursesw.h -./c++/cursslk.cc -./c++/cursslk.h -./c++/demo.cc -./c++/edit_cfg.sh -./c++/etip.h.in -./c++/headers -./c++/internal.h -./c++/modules -./config.guess -./config.sub -./configure -./configure.in -./convert_configure.pl -./dist.mk -./doc/hackguide.doc -./doc/html/Ada95.html -./doc/html/ada/files.htm -./doc/html/ada/files/T.htm -./doc/html/ada/funcs.htm -./doc/html/ada/funcs/A.htm -./doc/html/ada/funcs/B.htm -./doc/html/ada/funcs/C.htm -./doc/html/ada/funcs/D.htm -./doc/html/ada/funcs/E.htm -./doc/html/ada/funcs/F.htm -./doc/html/ada/funcs/G.htm -./doc/html/ada/funcs/H.htm -./doc/html/ada/funcs/I.htm -./doc/html/ada/funcs/K.htm -./doc/html/ada/funcs/L.htm -./doc/html/ada/funcs/M.htm -./doc/html/ada/funcs/N.htm -./doc/html/ada/funcs/O.htm -./doc/html/ada/funcs/P.htm -./doc/html/ada/funcs/Q.htm -./doc/html/ada/funcs/R.htm -./doc/html/ada/funcs/S.htm -./doc/html/ada/funcs/T.htm -./doc/html/ada/funcs/U.htm -./doc/html/ada/funcs/V.htm -./doc/html/ada/funcs/W.htm -./doc/html/ada/index.htm -./doc/html/ada/main.htm -./doc/html/ada/table.html -./doc/html/ada/terminal_interface-curses-aux__adb.htm -./doc/html/ada/terminal_interface-curses-aux__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm -./doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm -./doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm -./doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm -./doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm -./doc/html/ada/terminal_interface-curses-forms__adb.htm -./doc/html/ada/terminal_interface-curses-forms__ads.htm -./doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm -./doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm -./doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm -./doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm -./doc/html/ada/terminal_interface-curses-menus__adb.htm -./doc/html/ada/terminal_interface-curses-menus__ads.htm -./doc/html/ada/terminal_interface-curses-mouse__adb.htm -./doc/html/ada/terminal_interface-curses-mouse__ads.htm -./doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm -./doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm -./doc/html/ada/terminal_interface-curses-panels__adb.htm -./doc/html/ada/terminal_interface-curses-panels__ads.htm -./doc/html/ada/terminal_interface-curses-putwin__adb.htm -./doc/html/ada/terminal_interface-curses-putwin__ads.htm -./doc/html/ada/terminal_interface-curses-termcap__adb.htm -./doc/html/ada/terminal_interface-curses-termcap__ads.htm -./doc/html/ada/terminal_interface-curses-terminfo__adb.htm -./doc/html/ada/terminal_interface-curses-terminfo__ads.htm -./doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm -./doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm -./doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm -./doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm -./doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm -./doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm -./doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm -./doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm -./doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm -./doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm -./doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm -./doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm -./doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm -./doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm -./doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm -./doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm -./doc/html/ada/terminal_interface-curses-text_io__adb.htm -./doc/html/ada/terminal_interface-curses-text_io__ads.htm -./doc/html/ada/terminal_interface-curses-trace__adb.htm -./doc/html/ada/terminal_interface-curses-trace__ads.htm -./doc/html/ada/terminal_interface-curses__adb.htm -./doc/html/ada/terminal_interface-curses__ads.htm -./doc/html/ada/terminal_interface__ads.htm -./doc/html/announce.html -./doc/html/hackguide.html -./doc/html/index.html -./doc/html/man/captoinfo.1m.html -./doc/html/man/clear.1.html -./doc/html/man/curs_add_wch.3x.html -./doc/html/man/curs_add_wchstr.3x.html -./doc/html/man/curs_addch.3x.html -./doc/html/man/curs_addchstr.3x.html -./doc/html/man/curs_addstr.3x.html -./doc/html/man/curs_addwstr.3x.html -./doc/html/man/curs_attr.3x.html -./doc/html/man/curs_beep.3x.html -./doc/html/man/curs_bkgd.3x.html -./doc/html/man/curs_bkgrnd.3x.html -./doc/html/man/curs_border.3x.html -./doc/html/man/curs_border_set.3x.html -./doc/html/man/curs_clear.3x.html -./doc/html/man/curs_color.3x.html -./doc/html/man/curs_delch.3x.html -./doc/html/man/curs_deleteln.3x.html -./doc/html/man/curs_extend.3x.html -./doc/html/man/curs_get_wch.3x.html -./doc/html/man/curs_get_wstr.3x.html -./doc/html/man/curs_getcchar.3x.html -./doc/html/man/curs_getch.3x.html -./doc/html/man/curs_getstr.3x.html -./doc/html/man/curs_getyx.3x.html -./doc/html/man/curs_in_wch.3x.html -./doc/html/man/curs_in_wchstr.3x.html -./doc/html/man/curs_inch.3x.html -./doc/html/man/curs_inchstr.3x.html -./doc/html/man/curs_initscr.3x.html -./doc/html/man/curs_inopts.3x.html -./doc/html/man/curs_ins_wch.3x.html -./doc/html/man/curs_ins_wstr.3x.html -./doc/html/man/curs_insch.3x.html -./doc/html/man/curs_insstr.3x.html -./doc/html/man/curs_instr.3x.html -./doc/html/man/curs_inwstr.3x.html -./doc/html/man/curs_kernel.3x.html -./doc/html/man/curs_mouse.3x.html -./doc/html/man/curs_move.3x.html -./doc/html/man/curs_outopts.3x.html -./doc/html/man/curs_overlay.3x.html -./doc/html/man/curs_pad.3x.html -./doc/html/man/curs_print.3x.html -./doc/html/man/curs_printw.3x.html -./doc/html/man/curs_refresh.3x.html -./doc/html/man/curs_scanw.3x.html -./doc/html/man/curs_scr_dump.3x.html -./doc/html/man/curs_scroll.3x.html -./doc/html/man/curs_slk.3x.html -./doc/html/man/curs_termattrs.3x.html -./doc/html/man/curs_termcap.3x.html -./doc/html/man/curs_terminfo.3x.html -./doc/html/man/curs_touch.3x.html -./doc/html/man/curs_trace.3x.html -./doc/html/man/curs_util.3x.html -./doc/html/man/curs_window.3x.html -./doc/html/man/default_colors.3x.html -./doc/html/man/define_key.3x.html -./doc/html/man/form.3x.html -./doc/html/man/form_cursor.3x.html -./doc/html/man/form_data.3x.html -./doc/html/man/form_driver.3x.html -./doc/html/man/form_field.3x.html -./doc/html/man/form_field_attributes.3x.html -./doc/html/man/form_field_buffer.3x.html -./doc/html/man/form_field_info.3x.html -./doc/html/man/form_field_just.3x.html -./doc/html/man/form_field_new.3x.html -./doc/html/man/form_field_opts.3x.html -./doc/html/man/form_field_userptr.3x.html -./doc/html/man/form_field_validation.3x.html -./doc/html/man/form_fieldtype.3x.html -./doc/html/man/form_hook.3x.html -./doc/html/man/form_new.3x.html -./doc/html/man/form_new_page.3x.html -./doc/html/man/form_opts.3x.html -./doc/html/man/form_page.3x.html -./doc/html/man/form_post.3x.html -./doc/html/man/form_requestname.3x.html -./doc/html/man/form_userptr.3x.html -./doc/html/man/form_win.3x.html -./doc/html/man/infocmp.1m.html -./doc/html/man/infotocap.1m.html -./doc/html/man/key_defined.3x.html -./doc/html/man/keybound.3x.html -./doc/html/man/keyok.3x.html -./doc/html/man/menu.3x.html -./doc/html/man/menu_attributes.3x.html -./doc/html/man/menu_cursor.3x.html -./doc/html/man/menu_driver.3x.html -./doc/html/man/menu_format.3x.html -./doc/html/man/menu_hook.3x.html -./doc/html/man/menu_items.3x.html -./doc/html/man/menu_mark.3x.html -./doc/html/man/menu_new.3x.html -./doc/html/man/menu_opts.3x.html -./doc/html/man/menu_pattern.3x.html -./doc/html/man/menu_post.3x.html -./doc/html/man/menu_requestname.3x.html -./doc/html/man/menu_spacing.3x.html -./doc/html/man/menu_userptr.3x.html -./doc/html/man/menu_win.3x.html -./doc/html/man/mitem_current.3x.html -./doc/html/man/mitem_name.3x.html -./doc/html/man/mitem_new.3x.html -./doc/html/man/mitem_opts.3x.html -./doc/html/man/mitem_userptr.3x.html -./doc/html/man/mitem_value.3x.html -./doc/html/man/mitem_visible.3x.html -./doc/html/man/ncurses.3x.html -./doc/html/man/panel.3x.html -./doc/html/man/resizeterm.3x.html -./doc/html/man/term.5.html -./doc/html/man/term.7.html -./doc/html/man/terminfo.5.html -./doc/html/man/tic.1m.html -./doc/html/man/toe.1m.html -./doc/html/man/tput.1.html -./doc/html/man/tset.1.html -./doc/html/man/wresize.3x.html -./doc/html/ncurses-intro.html -./doc/ncurses-intro.doc -./form/Makefile.in -./form/READ.ME -./form/fld_arg.c -./form/fld_attr.c -./form/fld_current.c -./form/fld_def.c -./form/fld_dup.c -./form/fld_ftchoice.c -./form/fld_ftlink.c -./form/fld_info.c -./form/fld_just.c -./form/fld_link.c -./form/fld_max.c -./form/fld_move.c -./form/fld_newftyp.c -./form/fld_opts.c -./form/fld_pad.c -./form/fld_page.c -./form/fld_stat.c -./form/fld_type.c -./form/fld_user.c -./form/form.h -./form/form.priv.h -./form/frm_cursor.c -./form/frm_data.c -./form/frm_def.c -./form/frm_driver.c -./form/frm_hook.c -./form/frm_opts.c -./form/frm_page.c -./form/frm_post.c -./form/frm_req_name.c -./form/frm_scale.c -./form/frm_sub.c -./form/frm_user.c -./form/frm_win.c -./form/fty_alnum.c -./form/fty_alpha.c -./form/fty_enum.c -./form/fty_int.c -./form/fty_ipv4.c -./form/fty_num.c -./form/fty_regex.c -./form/headers -./form/llib-lform -./form/llib-lformw -./form/modules -./include/Caps -./include/Caps.aix4 -./include/Caps.hpux11 -./include/Caps.keys -./include/Caps.osf1r5 -./include/Caps.uwin -./include/MKhashsize.sh -./include/MKkey_defs.sh -./include/MKncurses_def.sh -./include/MKparametrized.sh -./include/MKterm.h.awk.in -./include/Makefile.in -./include/capdefaults.c -./include/curses.h.in -./include/curses.tail -./include/curses.wide -./include/edit_cfg.sh -./include/headers -./include/nc_alloc.h -./include/nc_panel.h -./include/ncurses_cfg.hin -./include/ncurses_defs -./include/ncurses_dll.h -./include/term_entry.h -./include/termcap.h.in -./include/tic.h -./include/unctrl.h.in -./install-sh -./man/MKterminfo.sh -./man/Makefile.in -./man/captoinfo.1m -./man/clear.1 -./man/curs_add_wch.3x -./man/curs_add_wchstr.3x -./man/curs_addch.3x -./man/curs_addchstr.3x -./man/curs_addstr.3x -./man/curs_addwstr.3x -./man/curs_attr.3x -./man/curs_beep.3x -./man/curs_bkgd.3x -./man/curs_bkgrnd.3x -./man/curs_border.3x -./man/curs_border_set.3x -./man/curs_clear.3x -./man/curs_color.3x -./man/curs_delch.3x -./man/curs_deleteln.3x -./man/curs_extend.3x -./man/curs_get_wch.3x -./man/curs_get_wstr.3x -./man/curs_getcchar.3x -./man/curs_getch.3x -./man/curs_getstr.3x -./man/curs_getyx.3x -./man/curs_in_wch.3x -./man/curs_in_wchstr.3x -./man/curs_inch.3x -./man/curs_inchstr.3x -./man/curs_initscr.3x -./man/curs_inopts.3x -./man/curs_ins_wch.3x -./man/curs_ins_wstr.3x -./man/curs_insch.3x -./man/curs_insstr.3x -./man/curs_instr.3x -./man/curs_inwstr.3x -./man/curs_kernel.3x -./man/curs_mouse.3x -./man/curs_move.3x -./man/curs_outopts.3x -./man/curs_overlay.3x -./man/curs_pad.3x -./man/curs_print.3x -./man/curs_printw.3x -./man/curs_refresh.3x -./man/curs_scanw.3x -./man/curs_scr_dump.3x -./man/curs_scroll.3x -./man/curs_slk.3x -./man/curs_termattrs.3x -./man/curs_termcap.3x -./man/curs_terminfo.3x -./man/curs_touch.3x -./man/curs_trace.3x -./man/curs_util.3x -./man/curs_window.3x -./man/default_colors.3x -./man/define_key.3x -./man/form.3x -./man/form_cursor.3x -./man/form_data.3x -./man/form_driver.3x -./man/form_field.3x -./man/form_field_attributes.3x -./man/form_field_buffer.3x -./man/form_field_info.3x -./man/form_field_just.3x -./man/form_field_new.3x -./man/form_field_opts.3x -./man/form_field_userptr.3x -./man/form_field_validation.3x -./man/form_fieldtype.3x -./man/form_hook.3x -./man/form_new.3x -./man/form_new_page.3x -./man/form_opts.3x -./man/form_page.3x -./man/form_post.3x -./man/form_requestname.3x -./man/form_userptr.3x -./man/form_win.3x -./man/infocmp.1m -./man/infotocap.1m -./man/key_defined.3x -./man/keybound.3x -./man/keyok.3x -./man/make_sed.sh -./man/man_db.renames -./man/manlinks.sed -./man/menu.3x -./man/menu_attributes.3x -./man/menu_cursor.3x -./man/menu_driver.3x -./man/menu_format.3x -./man/menu_hook.3x -./man/menu_items.3x -./man/menu_mark.3x -./man/menu_new.3x -./man/menu_opts.3x -./man/menu_pattern.3x -./man/menu_post.3x -./man/menu_requestname.3x -./man/menu_spacing.3x -./man/menu_userptr.3x -./man/menu_win.3x -./man/mitem_current.3x -./man/mitem_name.3x -./man/mitem_new.3x -./man/mitem_opts.3x -./man/mitem_userptr.3x -./man/mitem_value.3x -./man/mitem_visible.3x -./man/ncurses.3x -./man/panel.3x -./man/resizeterm.3x -./man/term.5 -./man/term.7 -./man/terminfo.head -./man/terminfo.tail -./man/tic.1m -./man/toe.1m -./man/tput.1 -./man/tset.1 -./man/wresize.3x -./menu/Makefile.in -./menu/READ.ME -./menu/eti.h -./menu/headers -./menu/llib-lmenu -./menu/llib-lmenuw -./menu/m_attribs.c -./menu/m_cursor.c -./menu/m_driver.c -./menu/m_format.c -./menu/m_global.c -./menu/m_hook.c -./menu/m_item_cur.c -./menu/m_item_nam.c -./menu/m_item_new.c -./menu/m_item_opt.c -./menu/m_item_top.c -./menu/m_item_use.c -./menu/m_item_val.c -./menu/m_item_vis.c -./menu/m_items.c -./menu/m_new.c -./menu/m_opts.c -./menu/m_pad.c -./menu/m_pattern.c -./menu/m_post.c -./menu/m_req_name.c -./menu/m_scale.c -./menu/m_spacing.c -./menu/m_sub.c -./menu/m_userptr.c -./menu/m_win.c -./menu/menu.h -./menu/menu.priv.h -./menu/mf_common.h -./menu/modules -./misc/Makefile.in -./misc/chkdef.cmd -./misc/cleantic.cmd -./misc/cmpdef.cmd -./misc/csort -./misc/emx.src -./misc/form.def -./misc/form.ref -./misc/gen_edit.sh -./misc/jpf-indent -./misc/makedef.cmd -./misc/makellib -./misc/menu.def -./misc/menu.ref -./misc/ncu-indent -./misc/ncurses.def -./misc/ncurses.ref -./misc/panel.def -./misc/panel.ref -./misc/run_tic.in -./misc/shlib -./misc/tabset/std -./misc/tabset/stdcrt -./misc/tabset/vt100 -./misc/tabset/vt300 -./misc/tdlint -./misc/terminfo.src -./mk-0th.awk -./mk-1st.awk -./mk-2nd.awk -./mkinstalldirs -./ncurses/Makefile.in -./ncurses/README -./ncurses/README.IZ -./ncurses/SigAction.h -./ncurses/base/MKkeyname.awk -./ncurses/base/MKlib_gen.sh -./ncurses/base/MKunctrl.awk -./ncurses/base/README -./ncurses/base/define_key.c -./ncurses/base/key_defined.c -./ncurses/base/keybound.c -./ncurses/base/keyok.c -./ncurses/base/lib_addch.c -./ncurses/base/lib_addstr.c -./ncurses/base/lib_beep.c -./ncurses/base/lib_bkgd.c -./ncurses/base/lib_box.c -./ncurses/base/lib_chgat.c -./ncurses/base/lib_clear.c -./ncurses/base/lib_clearok.c -./ncurses/base/lib_clrbot.c -./ncurses/base/lib_clreol.c -./ncurses/base/lib_color.c -./ncurses/base/lib_colorset.c -./ncurses/base/lib_delch.c -./ncurses/base/lib_delwin.c -./ncurses/base/lib_dft_fgbg.c -./ncurses/base/lib_echo.c -./ncurses/base/lib_endwin.c -./ncurses/base/lib_erase.c -./ncurses/base/lib_flash.c -./ncurses/base/lib_freeall.c -./ncurses/base/lib_getch.c -./ncurses/base/lib_getstr.c -./ncurses/base/lib_hline.c -./ncurses/base/lib_immedok.c -./ncurses/base/lib_inchstr.c -./ncurses/base/lib_initscr.c -./ncurses/base/lib_insch.c -./ncurses/base/lib_insdel.c -./ncurses/base/lib_insnstr.c -./ncurses/base/lib_instr.c -./ncurses/base/lib_isendwin.c -./ncurses/base/lib_leaveok.c -./ncurses/base/lib_mouse.c -./ncurses/base/lib_move.c -./ncurses/base/lib_mvwin.c -./ncurses/base/lib_newterm.c -./ncurses/base/lib_newwin.c -./ncurses/base/lib_nl.c -./ncurses/base/lib_overlay.c -./ncurses/base/lib_pad.c -./ncurses/base/lib_printw.c -./ncurses/base/lib_redrawln.c -./ncurses/base/lib_refresh.c -./ncurses/base/lib_restart.c -./ncurses/base/lib_scanw.c -./ncurses/base/lib_screen.c -./ncurses/base/lib_scroll.c -./ncurses/base/lib_scrollok.c -./ncurses/base/lib_scrreg.c -./ncurses/base/lib_set_term.c -./ncurses/base/lib_slk.c -./ncurses/base/lib_slkatr_set.c -./ncurses/base/lib_slkatrof.c -./ncurses/base/lib_slkatron.c -./ncurses/base/lib_slkatrset.c -./ncurses/base/lib_slkattr.c -./ncurses/base/lib_slkclear.c -./ncurses/base/lib_slkcolor.c -./ncurses/base/lib_slkinit.c -./ncurses/base/lib_slklab.c -./ncurses/base/lib_slkrefr.c -./ncurses/base/lib_slkset.c -./ncurses/base/lib_slktouch.c -./ncurses/base/lib_touch.c -./ncurses/base/lib_ungetch.c -./ncurses/base/lib_vline.c -./ncurses/base/lib_wattroff.c -./ncurses/base/lib_wattron.c -./ncurses/base/lib_winch.c -./ncurses/base/lib_window.c -./ncurses/base/memmove.c -./ncurses/base/nc_panel.c -./ncurses/base/resizeterm.c -./ncurses/base/safe_sprintf.c -./ncurses/base/sigaction.c -./ncurses/base/tries.c -./ncurses/base/version.c -./ncurses/base/vsscanf.c -./ncurses/base/wresize.c -./ncurses/curses.priv.h -./ncurses/fifo_defs.h -./ncurses/llib-lncurses -./ncurses/llib-lncursesw -./ncurses/modules -./ncurses/tinfo/MKcaptab.awk -./ncurses/tinfo/MKfallback.sh -./ncurses/tinfo/MKkeys_list.sh -./ncurses/tinfo/MKnames.awk -./ncurses/tinfo/README -./ncurses/tinfo/access.c -./ncurses/tinfo/add_tries.c -./ncurses/tinfo/alloc_entry.c -./ncurses/tinfo/alloc_ttype.c -./ncurses/tinfo/captoinfo.c -./ncurses/tinfo/comp_error.c -./ncurses/tinfo/comp_expand.c -./ncurses/tinfo/comp_hash.c -./ncurses/tinfo/comp_parse.c -./ncurses/tinfo/comp_scan.c -./ncurses/tinfo/doalloc.c -./ncurses/tinfo/free_ttype.c -./ncurses/tinfo/getenv_num.c -./ncurses/tinfo/home_terminfo.c -./ncurses/tinfo/init_keytry.c -./ncurses/tinfo/lib_acs.c -./ncurses/tinfo/lib_baudrate.c -./ncurses/tinfo/lib_cur_term.c -./ncurses/tinfo/lib_data.c -./ncurses/tinfo/lib_has_cap.c -./ncurses/tinfo/lib_kernel.c -./ncurses/tinfo/lib_longname.c -./ncurses/tinfo/lib_napms.c -./ncurses/tinfo/lib_options.c -./ncurses/tinfo/lib_print.c -./ncurses/tinfo/lib_raw.c -./ncurses/tinfo/lib_setup.c -./ncurses/tinfo/lib_termcap.c -./ncurses/tinfo/lib_termname.c -./ncurses/tinfo/lib_tgoto.c -./ncurses/tinfo/lib_ti.c -./ncurses/tinfo/lib_tparm.c -./ncurses/tinfo/lib_tputs.c -./ncurses/tinfo/lib_ttyflags.c -./ncurses/tinfo/make_keys.c -./ncurses/tinfo/name_match.c -./ncurses/tinfo/parse_entry.c -./ncurses/tinfo/read_entry.c -./ncurses/tinfo/read_termcap.c -./ncurses/tinfo/setbuf.c -./ncurses/tinfo/strings.c -./ncurses/tinfo/write_entry.c -./ncurses/trace/README -./ncurses/trace/lib_trace.c -./ncurses/trace/lib_traceatr.c -./ncurses/trace/lib_tracebits.c -./ncurses/trace/lib_tracechr.c -./ncurses/trace/lib_tracedmp.c -./ncurses/trace/lib_tracemse.c -./ncurses/trace/trace_buf.c -./ncurses/trace/trace_tries.c -./ncurses/trace/trace_xnames.c -./ncurses/trace/varargs.c -./ncurses/trace/visbuf.c -./ncurses/tty/MKexpanded.sh -./ncurses/tty/hardscroll.c -./ncurses/tty/hashmap.c -./ncurses/tty/lib_mvcur.c -./ncurses/tty/lib_tstp.c -./ncurses/tty/lib_twait.c -./ncurses/tty/lib_vidattr.c -./ncurses/tty/tty_display.h -./ncurses/tty/tty_input.h -./ncurses/tty/tty_update.c -./ncurses/widechar/charable.c -./ncurses/widechar/lib_add_wch.c -./ncurses/widechar/lib_box_set.c -./ncurses/widechar/lib_cchar.c -./ncurses/widechar/lib_erasewchar.c -./ncurses/widechar/lib_get_wch.c -./ncurses/widechar/lib_get_wstr.c -./ncurses/widechar/lib_hline_set.c -./ncurses/widechar/lib_in_wch.c -./ncurses/widechar/lib_in_wchnstr.c -./ncurses/widechar/lib_ins_wch.c -./ncurses/widechar/lib_inwstr.c -./ncurses/widechar/lib_pecho_wchar.c -./ncurses/widechar/lib_slk_wset.c -./ncurses/widechar/lib_unget_wch.c -./ncurses/widechar/lib_vid_attr.c -./ncurses/widechar/lib_vline_set.c -./ncurses/widechar/lib_wacs.c -./ncurses/widechar/lib_wunctrl.c -./panel/Makefile.in -./panel/headers -./panel/llib-lpanel -./panel/llib-lpanelw -./panel/modules -./panel/p_above.c -./panel/p_below.c -./panel/p_bottom.c -./panel/p_delete.c -./panel/p_hidden.c -./panel/p_hide.c -./panel/p_move.c -./panel/p_new.c -./panel/p_replace.c -./panel/p_show.c -./panel/p_top.c -./panel/p_update.c -./panel/p_user.c -./panel/p_win.c -./panel/panel.c -./panel/panel.h -./panel/panel.priv.h -./progs/MKtermsort.sh -./progs/Makefile.in -./progs/capconvert -./progs/clear.c -./progs/clear.sh -./progs/dump_entry.c -./progs/dump_entry.h -./progs/infocmp.c -./progs/modules -./progs/progs.priv.h -./progs/tic.c -./progs/toe.c -./progs/tput.c -./progs/tset.c -./tack/COPYING -./tack/HISTORY -./tack/Makefile.in -./tack/README -./tack/ansi.c -./tack/charset.c -./tack/color.c -./tack/control.c -./tack/crum.c -./tack/edit.c -./tack/fun.c -./tack/init.c -./tack/menu.c -./tack/modes.c -./tack/modules -./tack/output.c -./tack/pad.c -./tack/scan.c -./tack/sync.c -./tack/sysdep.c -./tack/tack.1 -./tack/tack.c -./tack/tack.h -./tar-copy.sh -./test/Makefile.in -./test/README -./test/aclocal.m4 -./test/background.c -./test/blue.c -./test/bs.6 -./test/bs.c -./test/cardfile.c -./test/cardfile.dat -./test/color_set.c -./test/configure -./test/configure.in -./test/demo_defkey.c -./test/demo_forms.c -./test/demo_keyok.c -./test/demo_menus.c -./test/demo_panels.c -./test/ditto.c -./test/dots.c -./test/edit_field.c -./test/edit_field.h -./test/filter.c -./test/firework.c -./test/firstlast.c -./test/gdc.6 -./test/gdc.c -./test/hanoi.c -./test/hashtest.c -./test/ins_wide.c -./test/inserts.c -./test/keynames.c -./test/knight.c -./test/linux-color.dat -./test/listused.sh -./test/lrtest.c -./test/modules -./test/ncurses.c -./test/ncurses_tst.hin -./test/newdemo.c -./test/railroad.c -./test/rain.c -./test/tclock.c -./test/test.priv.h -./test/testaddch.c -./test/testcurs.c -./test/testscanw.c -./test/tracemunch -./test/view.c -./test/worm.c -./test/xmas.c -./test/xterm-16color.dat diff --git a/Build/source/libs/ncurses/Makefile.in b/Build/source/libs/ncurses/Makefile.in deleted file mode 100644 index 09156279e28..00000000000 --- a/Build/source/libs/ncurses/Makefile.in +++ /dev/null @@ -1,97 +0,0 @@ -# $Id: Makefile.in,v 1.23 2004/07/11 14:22:55 tom Exp $ -############################################################################## -# Copyright (c) 1998 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996,1997 -# -# Master Makefile for ncurses library. - -SHELL = /bin/sh - -DESTDIR=@DESTDIR@ -CF_MFLAGS = @cf_cv_makeflags@ DESTDIR="$(DESTDIR)" - -@SET_MAKE@ - -NCURSES_MAJOR = @NCURSES_MAJOR@ -NCURSES_MINOR = @NCURSES_MINOR@ -NCURSES_PATCH = @NCURSES_PATCH@ - -prefix = @prefix@ -exec_prefix = @exec_prefix@ - -bindir = @bindir@ -ticdir = @TERMINFO@ -includedir = @includedir@ -libdir = @libdir@ -mandir = @mandir@ - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -DIRS_TO_MAKE = @DIRS_TO_MAKE@ - -all :: $(DIRS_TO_MAKE) - -$(DIRS_TO_MAKE) : - mkdir $@ - -preinstall : - @ echo '' - @ echo '** Configuration summary for NCURSES $(NCURSES_MAJOR).$(NCURSES_MINOR) $(NCURSES_PATCH):' - @ echo '' - @ echo ' extended funcs: '`test @NCURSES_EXT_FUNCS@ != 0 && echo yes || echo no` - @ echo ' xterm terminfo: '@WHICH_XTERM@ - @ echo '' - @ echo ' bin directory: '$(bindir) - @ echo ' lib directory: '$(libdir) - @ echo ' include directory: '$(includedir) - @ echo ' man directory: '$(mandir) -@MAKE_TERMINFO@ @ echo ' terminfo directory: '$(ticdir) - @ echo '' - -@ test "$(includedir)" = "$(prefix)/include" || \ - echo '** Include-directory is not in a standard location' - -@ test ! -f $(includedir)/termcap.h || \ - fgrep NCURSES_VERSION $(includedir)/termcap.h >/dev/null || \ - echo '** Will overwrite non-ncurses termcap.h' - -@ test ! -f $(includedir)/curses.h || \ - fgrep NCURSES_VERSION $(includedir)/curses.h >/dev/null || \ - echo '** Will overwrite non-ncurses curses.h' - -install :: - -# Put the common rules here so that we can easily construct the list of -# directories to visit. -all \ -clean \ -distclean \ -mostlyclean \ -realclean \ -depend \ -sources \ -uninstall :: diff --git a/Build/source/libs/ncurses/Makefile.os2 b/Build/source/libs/ncurses/Makefile.os2 deleted file mode 100644 index 167ff657e0f..00000000000 --- a/Build/source/libs/ncurses/Makefile.os2 +++ /dev/null @@ -1,234 +0,0 @@ -################################################################################ -# Wrapper Makefile for ncurses library under OS/2. -################################################################################ -# $Id: Makefile.os2,v 1.10 2000/10/09 23:53:57 Ilya.Zakharevich Exp $ -# -# Author: Juan Jose Garcia Ripoll . -# Webpage: http://www.arrakis.es/~worm/ -################################################################################ -# -# Notes (from I Zakharevich) -# ~~~~~~~~~~~~~~~~~~~~~~~~~~ -# I could build the library with the following sequence of commands: -# -# touch Makefile -# make -f Makefile.os2 config -# make -f Makefile.os2 CC=gcc HOSTCC=gcc CXX=gcc -# -# Ignoring the following errors: -# Invalid configuration `os2'... -# ... ac_maketemp="make": not found -# ... syntax error: `done' unexpected -# No rule to make target `lib/ncurses4.dll' -# -# You may need to run -# -# rm make.defs -# make -f Makefile.os2 make.defs -# -# if the build of misc/panel.def fails. -# -# If you do not have perl, the configuration will fail. Use autoconf to -# generate the EMX-specific configure script (see README.emx), and run the -# configure script to generate the makefiles. Then, run -# -# make -f Makefile.os2 make.dlls -# -# Notes (from J J G Ripoll) -# ~~~~~~~~~~~~~~~~~~~~~~~~~ -# The `make.defs' rule creates the new '.def' files and outputs a diagnostic -# about symbols that disappear from one release to the other, as well as -# checks about the new '.def' consistency. If there were no problems, the -# maintainer is free to replace the `.ref' files with the newer ones using the -# `save.defs' rule. So, the only tough work is ensuring that the symbols that -# disappear are not essential. -# -# I first thought about killing '_nc_*' symbols, but it seems that some of -# them --_nc_panel_hook, _nc_ada*, etc-- are needed outside ncurses.dll. -# However, the whole size of the export table will not be larger than 1k or -# so. -# -# [installation] -# -# The way things are handled in misc/Makefile is not well suited for OS/2, -# where only emx.src is needed. Thus, I've written a few wrapper rules in -# Makefile.os2 that handle installation/deinstallation. -# -# [distribution] -# -# There's also a new rule that configures and builds a sort of binary -# distribution, much like the one I prepared for 1.9.9e. It's `os2dist'. -# -################################################################################ - -all :: config - -# This is for configuring - -# What is a useful value for this? -CONFIG_OPTS = --enable-termcap -WWWGET = lynx -source -MV_F = mv -f -DLL_LN_OPTS = -Zcrtdll -Zdll -Zomf -Zmt - -config: config.cache - -config.cache: configure.cmd configure - -$(MV_F) $@ $@.ref - configure.cmd $(CONFIG_OPTS) - -configure.cmd: configure convert_configure.pl - perl convert_configure.pl configure > $@ - -convert_configure.pl: - $(WWWGET) ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2/$@ > $@ - -install :: - echo *** - echo *** Do not use this command. Use install.os2 instead. - echo *** - exit 2 - -install.os2 : install.emxdata install.libs install.progs - -include ./Makefile - -all :: make.dlls - -# -# DLLs and that stuff -# - -LIBRARIES = ncurses form menu panel - -DLL_TAG = $(NCURSES_MAJOR) -LIB_TAG = _s - -DLL_ROOTS = $(addsuffix $(DLL_TAG), $(LIBRARIES)) -DLLS = $(addsuffix .dll, $(addprefix ./lib/, $(DLL_ROOTS))) - -LIB_ROOTS = $(addsuffix $(LIB_TAG), $(LIBRARIES)) -LIBS = $(addsuffix .lib, $(addprefix ./lib/, $(LIB_ROOTS))) - -LIBS_AOUT = $(addsuffix .a, $(addprefix ./lib/, $(LIB_ROOTS))) - -DEFS = $(addsuffix .def, $(addprefix ./misc/, $(LIBRARIES))) - -DLL_SIGNATURE = NCurses-$(NCURSES_MAJOR)-$(NCURSES_MINOR)-$(NCURSES_PATCH) - -./lib/%$(LIB_TAG).lib : ./misc/%.def - emximp -o $@ $< - -./lib/%$(LIB_TAG).a : ./misc/%.def - emximp -o $@ $< - -./lib/%$(DLL_TAG).dll : ./lib/%.a - emxomf -o ./lib/$*$(DLL_TAG).lib $< - if [ "$*" = "ncurses" ]; then \ - gcc $(LDFLAGS) $(DLL_LN_OPTS) ./lib/$*$(DLL_TAG).lib \ - ./misc/$*.def -o $@; \ - else \ - gcc $(LDFLAGS) $(DLL_LN_OPTS) ./lib/$*$(DLL_TAG).lib \ - ./lib/ncurses$(LIB_TAG).lib ./misc/$*.def -o $@; \ - fi - -rm -f ./lib/$*$(DLL_TAG).lib - -make.dlls : $(DEFS) $(LIBS) $(DLLS) $(LIBS_AOUT) - -$(DEFS) : make.defs - -LIBDIR = $(DESTDIR)$(libdir) -$(LIBDIR) : - mkdir -p $@ - -install.libs :: $(LIBS) $(DLLS) $(LIBDIR) - @for i in $(DLL_ROOTS); do \ - echo installing ./lib/$$i.dll as $(LIBDIR)/$$i.dll; \ - $(INSTALL_DATA) ./lib/$$i.dll $(LIBDIR)/$$i.dll; done - @for i in $(LIB_ROOTS); do \ - echo installing ./lib/$$i.lib as $(LIBDIR)/$$i.lib; \ - $(INSTALL_DATA) ./lib/$$i.lib $(LIBDIR)/$$i.lib; done - -uninstall.libs :: - -@for i in $(DLL_ROOTS); do \ - echo uninstalling $(LIBDIR)/$$i.dll; \ - rm -f $(LIBDIR)/$$i.dll; done - -@for i in $(LIB_ROOTS); do \ - echo uninstalling $(LIBDIR)/$$i.lib; \ - rm -f $(LIBDIR)/$$i.lib; done - -make.defs : - for i in $(LIBRARIES); do \ - echo LIBRARY $${i}$(DLL_TAG) INITINSTANCE TERMINSTANCE > ./misc/$$i.def; \ - echo DESCRIPTION \"$(DLL_SIGNATURE), module $$i\" >> ./misc/$$i.def; \ - echo CODE LOADONCALL >> ./misc/$$i.def; \ - echo DATA LOADONCALL NONSHARED MULTIPLE >> ./misc/$$i.def; \ - echo EXPORTS >> ./misc/$$i.def; \ - echo Creating $$i.def; \ - (cmd /C ".\\misc\\makedef.cmd ./lib/$$i.a ./misc/$$i.ref >> ./misc/$$i.def" \ - && cmd /C ".\\misc\\chkdef.cmd ./misc/$$i.def") \ - || exit 1; \ - done - touch make.defs - -save.defs : - for i in $(LIBRARIES); do \ - test -f ./misc/$$i.def && cp ./misc/$$i.def ./misc/$$i.ref; \ - done - -clean \ -os2clean :: - -rm -f $(DLLS) $(LIBS) - -realclean :: - -rm -f $(addprefix ./misc/, $(addsuffix .def, $(LIBRARIES))) - -# -# This is a simplified version of misc/Makefile -# - -TICDIR = $(DESTDIR)$(datadir)/terminfo -TABSETDIR = $(DESTDIR)$(datadir)/tabset - -$(TICDIR) : - mkdir -p $@ - -install \ -install.emxdata :: $(TICDIR) - -@rm -fr $(TICDIR)/* - echo Building terminfo database, please wait... - set TERMINFO=$(TICDIR); ./progs/tic ./misc/emx.src - echo Installing the terminfo cleaner and the sources... - cp ./misc/emx.src ./misc/cleantic.cmd $(TICDIR) - ./misc/cleantic.cmd $(TICDIR) - -uninstall \ -uninstall.emxdata :: - -cd $(TICDIR) && rm -rf * - -cd $(TABSETDIR) && rm -rf * - -# -# This is for preparing binary distributions -# - -OS2NAME=ncurses-$(NCURSES_MAJOR).$(NCURSES_MINOR)-emx - -# -# FIXME: this assumes that we can rerun the configure script, changing only -# the install-prefix. That means we cannot provide "interesting" options -# when building. -# -os2dist : - $(MAKE) -f Makefile.os2 os2clean - ./configure --without-debug --with-install-prefix=`pwd|sed -e 's@^.:@@'`/$(OS2NAME) - $(MAKE) -f Makefile.os2 $(CF_MFLAGS) install.os2 - -rm -f $(OS2NAME).zip - echo NCurses-$(NCURSES_MAJOR).$(NCURSES_MINOR)-$(NCURSES_PATCH) for emx > $(OS2NAME)/FILE_ID.DIZ - echo Binary release. >> $(OS2NAME)/FILE_ID.DIZ - zip -r $(OS2NAME).zip ./$(OS2NAME) - -clean \ -os2clean :: - -rm -rf $(OS2NAME) - -rm -f $(OS2NAME).zip - diff --git a/Build/source/libs/ncurses/NEWS b/Build/source/libs/ncurses/NEWS deleted file mode 100644 index d71c1d693dc..00000000000 --- a/Build/source/libs/ncurses/NEWS +++ /dev/null @@ -1,6894 +0,0 @@ --- $Id: NEWS,v 1.842 2004/10/16 21:56:58 tom Exp $ - -This is a log of changes that ncurses has gone through since Zeyd started -working with Pavel Curtis' original work, pcurses, in 1992. - -Changes through 1.9.9e are recorded by Zeyd M. Ben-Halim. -Changes since 1.9.9e are recorded by Thomas Dickey. - -20041016 - + minor fixes for traces. - + add SP->_screen_acs_map[], used to ensure that mapping of missing - line-drawing characters is handled properly. For example, ACS_DARROW - is absent from xterm-new, and it was coincidentally displayed the - same as ACS_BTEE. - -20041009 - + amend 20021221 workaround for broken acs to reset the sgr, rmacs - and smacs strings as well. Also modify the check for screen's - limitations in that area to allow the multi-character shift-in - and shift-out which seem to work. - + change GPM initialization, using dl library to load it dynamically - at runtime (Debian #110586). - -20041002 - + correct logic for color pair in setcchar() and getcchar() (patch by - Marcin 'Qrczak' Kowalczyk). - + add t/T commands to ncurses b/B tests to allow a different color to - be tested for the attrset part of the test than is used in the - background color. - -20040925 - + fix to make setcchar() to work when its wchar_t* parameter is - pointing to a string which contains more data than can be converted. - + modify wget_wstr() and example in ncurses.c to work if wchar_t and - wint_t are different sizes (report by Marcin 'Qrczak' Kowalczyk). - -20040918 - + remove check in wget_wch() added to fix an infinite loop, appears to - have been working around a transitory glibc bug, and interferes - with normal operation (report by Marcin 'Qrczak' Kowalczyk). - + correct wadd_wch() and wecho_wch(), which did not pass the rendition - information (report by Marcin 'Qrczak' Kowalczyk). - + fix aclocal.m4 so that the wide-character version of ncurses gets - compiled as libncursesw.5.dylib, instead of libncurses.5w.dylib - (adapted from patch by James J Ramsey). - + change configure script for --with-caps option to indicate that it - is no longer experimental. - + change configure script to reflect the fact that --enable-widec has - not been "experimental" since 5.3 (report by Bruno Lustosa). - -20040911 - + add 'B' test to ncurses.c, to exercise some wide-character functions. - -20040828 - + modify infocmp -i option to match 8-bit controls against its table - entries, e.g., so it can analyze the xterm-8bit entry. - + add morphos terminfo entry, improve amiga-8bit entry (Pavel Fedin). - + correct translation of "%%" in terminfo format to termcap, e.g., - using "tic -C" (Redhat Bugzilla #130921). - + modified configure script CF_XOPEN_SOURCE macro to ensure that if - it defines _POSIX_C_SOURCE, that it defines it to a specific value - (comp.os.stratus newsgroup comment). - -20040821 - + fixes to build with Ada95 binding with gnat 3.4 (all warnings are - fatal, and gnat does not follow the guidelines for pragmas). - However that did find a coding error in Assume_Default_Colors(). - + modify several terminfo entries to ensure xterm mouse and cursor - visibility are reset in rs2 string: hurd, putty, gnome, - konsole-base, mlterm, Eterm, screen (Debian #265784, #55637). The - xterm entries are left alone - old ones for compatibility, and the - new ones do not require this change. -TD - -20040814 - + fake a SIGWINCH in newterm() to accommodate buggy terminal emulators - and window managers (Debian #265631). - > terminfo updates -TD - + remove dch/dch1 from rxvt because they are implemented inconsistently - with the common usage of bce/ech - + remove khome from vt220 (vt220's have no home key) - + add rxvt+pcfkeys - -20040807 - + modify test/ncurses.c 'b' test, adding v/V toggles to cycle through - combinations of video attributes so that for instance bold and - underline can be tested. This made the legend too crowded, added - a help window as well. - + modify test/ncurses.c 'b' test to cycle through default colors if - the -d option is set. - + update putty terminfo entry (Robert de Bath). - -20040731 - + modify test/cardfile.c to allow it to read more data than can be - displayed. - + correct logic in resizeterm.c which kept it from processing all - levels of window hierarchy (reports by Folkert van Heusden, - Chris Share). - -20040724 - + modify "tic -cv" to ignore delays when comparing strings. Also - modify it to ignore a canceled sgr string, e.g., for terminals which - cannot properly combine attributes in one control sequence. - + corrections for gnome and konsole entries (Redhat Bugzilla #122815, - patch by Hans de Goede) - > terminfo updates -TD - + make ncsa-m rmacs/smacs consistent with sgr - + add sgr, rc/sc and ech to syscons entries - + add function-keys to decansi - + add sgr to mterm-ansi - + add sgr, civis, cnorm to emu - + correct/simplify cup in addrinfo - -20040717 - > terminfo updates -TD - + add xterm-pc-fkeys - + review/update gnome and gnome-rh90 entries (prompted by Redhat - Bugzilla #122815). - + review/update konsole entries - + add sgr, correct sgr0 for kterm and mlterm - + correct tsl string in kterm - -20040711 - + add configure option --without-xterm-new - -20040710 - + add check in wget_wch() for printable bytes that are not part of a - multibyte character. - + modify wadd_wchnstr() to render text using window's background - attributes. - + improve tic's check to compare sgr and sgr0. - + fix c++ directory's .cc.i rule. - + modify logic in tgetent() which adjusts the termcap "me" string - to work with ISO-2022 string used in xterm-new (cf: 20010908). - + modify tic's check for conflicting function keys to omit that if - converting termcap to termcap format. - + add -U option to tic and infocmp. - + add rmam/smam to linux terminfo entry (Trevor Van Bremen) - > terminfo updates -TD - + minor fixes for emu - + add emu-220 - + change wyse acsc strings to use 'i' map rather than 'I' - + fixes for avatar0 - + fixes for vp3a+ - -20040703 - + use tic -x to install terminfo database -TD - + add -x to infocmp's usage message. - + correct field used for comparing O_ROWMAJOR in set_menu_format() - (report/patch by Tony Li). - + fix a missing nul check in set_field_buffer() from 20040508 changes. - > terminfo updates -TD - + make xterm-xf86-v43 derived from xterm-xf86-v40 rather than - xterm-basic -TD - + align with xterm patch #192's use of xterm-new -TD - + update xterm-new and xterm-8bit for cvvis/cnorm strings -TD - + make xterm-new the default "xterm" entry -TD - -20040626 - + correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow - cross-compiling from a separate directory tree (report/patch by - Dan Engel). - + modify is_term_resized() to ensure that window sizes are nonzero, - as documented in the manpage (report by Ian Collier). - + modify CF_XOPEN_SOURCE configure macro to make Hurd port build - (Debian #249214, report/patch by Jeff Bailey). - + configure-script mods from xterm, e.g., updates to CF_ADD_CFLAGS - + update config.guess, config.sub - > terminfo updates -TD - + add mlterm - + add xterm-xf86-v44 - + modify xterm-new aka xterm-xfree86 to accommodate luit, which - relies on G1 being used via an ISO-2022 escape sequence (report by - Juliusz Chroboczek) - + add 'hurd' entry - -20040619 - + reconsidered winsnstr(), decided after comparing other - implementations that wrapping is an X/Open documentation error. - + modify test/inserts.c to test all flavors of insstr(). - -20040605 - + add setlocale() calls to a few test programs which may require it: - demo_forms.c, filter.c, ins_wide.c, inserts.c - + correct a few misspelled function names in ncurses-intro.html (report - by Tony Li). - + correct internal name of key_defined() manpage, which conflicted with - define_key(). - -20040529 - + correct size of internal pad used for holding wide-character - field_buffer() results. - + modify data_ahead() to work with wide-characters. - -20040522 - + improve description of terminfo if-then-else expressions (suggested - by Arne Thomassen). - + improve test/ncurses.c 'd' test, allow it to use external file for - initial palette (added xterm-16color.dat and linux-color.dat), and - reset colors to the initial palette when starting/ending the test. - + change limit-check in init_color() to allow r/g/b component to - reach 1000 (cf: 20020928). - -20040516 - + modify form library to use cchar_t's rather than char's in the - wide-character configuration for storing data for field buffers. - + correct logic of win_wchnstr(), which did not work for more than - one cell. - -20040508 - + replace memset/memcpy usage in form library with for-loops to - simplify changing the datatype of FIELD.buf, part of wide-character - changes. - + fix some inconsistent use of #if/#ifdef (report by Alain Guibert). - -20040501 - + modify menu library to account for actual number of columns used by - multibyte character strings, in the wide-character configuration - (adapted from patch by Philipp Tomsich). - + add "-x" option to infocmp like tic's "-x", for use in "-F" - comparisons. This modifies infocmp to only report extended - capabilities if the -x option is given, making this more consistent - with tic. Some scripts may break, since infocmp previous gave this - information without an option. - + modify termcap-parsing to retain 2-character aliases at the beginning - of an entry if the "-x" option is used in tic. - -20040424 - + minor compiler-warning and test-program fixes. - -20040417 - + modify tic's missing-sgr warning to apply to terminfo only. - + free some memory leaks in tic. - + remove check in post_menu() that prevented menus from extending - beyond the screen (request by Max J. Werner). - + remove check in newwin() that prevents allocating windows - that extend beyond the screen. Solaris curses does this. - + add ifdef in test/color_set.c to allow it to compile with older - curses. - + add napms() calls to test/dots.c to make it not be a CPU hog. - -20040403 - + modify unctrl() to return null if its parameter does not correspond - to an unsigned char. - + add some limit-checks to guard isprint(), etc., from being used on - values that do not fit into an unsigned char (report by Sami Farin). - -20040328 - + fix a typo in the _nc_get_locale() change. - -20040327 - + modify _nc_get_locale() to use setlocale() to query the program's - current locale rather than using getenv(). This fixes a case in tin - which relies on legacy treatment of 8-bit characters when the locale - is not initialized (reported by Urs Jansen). - + add sgr string to screen's and rxvt's terminfo entries -TD. - + add a check in tic for terminfo entries having an sgr0 but no sgr - string. This confuses Tru64 and HPUX curses when combined with - color, e.g., making them leave line-drawing characters in odd places. - + correct casts used in ABSENT_BOOLEAN, CANCELLED_BOOLEAN, matches the - original definitions used in Debian package to fix PowerPC bug before - 20030802 (Debian #237629). - -20040320 - + modify PutAttrChar() and PUTC() macro to improve use of - A_ALTCHARSET attribute to prevent line-drawing characters from - being lost in situations where the locale would otherwise treat the - raw data as nonprintable (Debian #227879). - -20040313 - + fix a redefinition of CTRL() macro in test/view.c for AIX 5.2 (report - by Jim Idle). - + remove ".PP" after ".SH NAME" in a few manpages; this confuses - some apropos script (Debian #237831). - -20040306 - + modify ncurses.c 'r' test so editing commands, like inserted text, - set the field background, and the state of insert/overlay editing - mode is shown in that test. - + change syntax of dummy targets in Ada95 makefiles to work with pmake. - + correct logic in test/ncurses.c 'b' for noncolor terminals which - did not recognize a quit-command (cf: 20030419). - -20040228 - + modify _nc_insert_ch() to allow for its input to be part of a - multibyte string. - + split out lib_insnstr.c, to prepare to rewrite it. X/Open states - that this function performs wrapping, unlike all of the other - insert-functions. Currently it does not wrap. - + check for nl_langinfo(CODESET), use it if available (report by - Stanislav Ievlev). - + split-out CF_BUILD_CC macro, actually did this for lynx first. - + fixes for configure script CF_WITH_DBMALLOC and CF_WITH_DMALLOC, - which happened to work with bash, but not with Bourne shell (report - by Marco d'Itri via tin-dev). - -20040221 - + some changes to adapt the form library to wide characters, incomplete - (request by Mike Aubury). - + add symbol to curses.h which can be used to suppress include of - stdbool.h, e.g., - #define NCURSES_ENABLE_STDBOOL_H 0 - #include - (discussion on XFree86 mailing list). - -20040214 - + modify configure --with-termlib option to accept a value which sets - the name of the terminfo library. This would allow a packager to - build libtinfow.so renamed to coincide with libtinfo.so (discussion - with Stanislav Ievlev). - + improve documentation of --with-install-prefix, --prefix and - $(DESTDIR) in INSTALL (prompted by discussion with Paul Lew). - + add configure check if the compiler can use -c -o options to rename - its output file, use that to omit the 'cd' command which was used to - ensure object files are created in a separate staging directory - (prompted by comments by Johnny Wezel, Martin Mokrejs). - -20040208 5.4 release for upload to ftp.gnu.org - + update TO-DO. - -20040207 pre-release - + minor fixes to _nc_tparm_analyze(), i.e., do not count %i as a param, - and do not count %d if it follows a %p. - + correct an inconsistency between handling of codes in the 128-255 - range, e.g., as illustrated by test/ncurses.c f/F tests. In POSIX - locale, the latter did not show printable results, while the former - did. - + modify MKlib_gen.sh to compensate for broken C preprocessor on Mac - OS X, which alters "%%" to "% % " (report by Robert Simms, fix - verified by Scott Corscadden). - -20040131 pre-release - + modify SCREEN struct to align it between normal/wide curses flavors - to simplify future changes to build a single version of libtinfo - (patch by Stanislav Ievlev). - + document handling of carriage return by addch() in manpage. - + document special features of unctrl() in manpage. - + documented interface changes in INSTALL. - + corrected control-char test in lib_addch.c to account for locale - (Debian #230335, cf: 971206). - + updated test/configure.in to use AC_EXEEXT and AC_OBJEXT. - + fixes to compile Ada95 binding with Debian gnat 3.15p-4 package. - + minor configure-script fixes for older ports, e.g., BeOS R4.5. - -20040125 pre-release - + amend change to PutAttrChar() from 20030614 which computed the number - of cells for a possibly multi-cell character. The 20030614 change - forced the cell to a blank if the result from wcwidth() was not - greater than zero. However, wcwidth() called for parameters in the - range 128-255 can give this return value. The logic now simply - ensures that the number of cells is greater than zero without - modifying the displayed value. - -20040124 pre-release - + looked good for 5.4 release for upload to ftp.gnu.org (but see above) - + modify configure script check for ranlib to use AC_CHECK_TOOL, since - that works better for cross-compiling. - -20040117 pre-release - + modify lib_get_wch.c to prefer mblen/mbtowc over mbrlen/mbrtowc to - work around core dump in Solaris 8's locale support, e.g., for - zh_CN.GB18030 (report by Saravanan Bellan). - + add includes for and in configure script macro - to make check work with Tru64 4.0d. - + add terminfo entry for U/Win -TD - + add terminfo entries for SFU aka Interix aka OpenNT (Federico - Bianchi). - + modify tput's error messages to prefix them with the program name - (report by Vincent Lefevre, patch by Daniel Jacobowitz, Debian - #227586). - + correct a place in tack where exit_standout_mode was used instead of - exit_attribute_mode (patch by Jochen Voss, Debian #224443). - + modify c++/cursesf.h to use const in the Enumeration_Field method. - + remove an ambiguous (actually redundant) method from c++/cursesf.h - + make $HOME/.terminfo update optional (suggested by Stanislav Ievlev). - + improve sed script which extracts libtool's version in the - CF_WITH_LIBTOOL macro. - + add ifdef'd call to AC_PROG_LIBTOOL to CF_WITH_LIBTOOL macro (to - simplify local patch for Albert Chin-A-Young).. - + add $(CXXFLAGS) to link command in c++/Makefile.in (adapted from - patch by Albert Chin-A-Young).. - + fix a missing substitution in configure.in for "$target" needed for - HPUX .so/.sl case. - + resync CF_XOPEN_SOURCE configure macro with lynx; fixes IRIX64 and - NetBSD 1.6 conflicts with _XOPEN_SOURCE. - + make check for stdbool.h more specific, to ensure that including it - will actually define/declare bool for the configured compiler. - + rewrite ifdef's in curses.h relating NCURSES_BOOL and bool. The - intention of that is to #define NCURSES_BOOL as bool when the - compiler declares bool, and to #define bool as NCURSES_BOOL when it - does not (reported by Jim Gifford, Sam Varshavchik, cf: 20031213). - -20040110 pre-release - + change minor version to 4, i.e., ncurses 5.4 - + revised/improved terminfo entries for tvi912b, tvi920b (Benjamin C W - Sittler). - + simplified ncurses/base/version.c by defining the result from the - configure script rather than using sprintf (suggested by Stanislav - Ievlev). - + remove obsolete casts from c++/cursesw.h (reported by Stanislav - Ievlev). - + modify configure script so that when configuring for termlib, programs - such as tic are not linked with the upper-level ncurses library - (suggested by Stanislav Ievlev). - + move version.c from ncurses/base to ncurses/tinfo to allow linking - of tic, etc., using libtinfo (suggested by Stanislav Ievlev). - -20040103 - + adjust -D's to build ncursesw on OpenBSD. - + modify CF_PROG_EXT to make OS/2 build with EXEEXT. - + add pecho_wchar(). - + remove include from lib_slk_wset.c which is not needed (or - available) on older platforms. - -20031227 - + add -D's to build ncursew on FreeBSD 5.1. - + modify shared library configuration for FreeBSD 4.x/5.x to add the - soname information (request by Marc Glisse). - + modify _nc_read_tic_entry() to not use MAX_ALIAS, but PATH_MAX only - for limiting the length of a filename in the terminfo database. - + modify termname() to return the terminal name used by setupterm() - rather than $TERM, without truncating to 14 characters as documented - by X/Open (report by Stanislav Ievlev, cf: 970719). - + re-add definition for _BSD_TYPES, lost in merge (cf: 20031206). - -20031220 - + add configure option --with-manpage-format=catonly to address - behavior of BSDI, allow install of man+cat files on NetBSD, whose - behavior has diverged by requiring both to be present. - + remove leading blanks from comment-lines in manlinks.sed script to - work with Tru64 4.0d. - + add screen.linux terminfo entry (discussion on mutt-users mailing - list). - -20031213 - + add a check for tic to flag missing backslashes for termcap - continuation lines. ncurses reads the whole entry, but termcap - applications do not. - + add configure option "--with-manpage-aliases" extending - "--with-manpage-aliases" to provide the option of generating ".so" - files rather than symbolic links for manpage aliases. - + add bool definition in include/curses.h.in for configurations with no - usable C++ compiler (cf: 20030607). - + fix pathname of SigAction.h for building with --srcdir (reported by - Mike Castle). - -20031206 - + folded ncurses/base/sigaction.c into includes of ncurses/SigAction.h, - since that header is used only within ncurses/tty/lib_tstp.c, for - non-POSIX systems (discussion with Stanislav Ievlev). - + remove obsolete _nc_outstr() function (report by Stanislav Ievlev - ). - + add test/background.c and test/color_set.c - + modify color_set() function to work with color pair 0 (report by - George Andreou ). - + add configure option --with-trace, since defining TRACE seems too - awkward for some cases. - + remove a call to _nc_free_termtype() from read_termtype(), since the - corresponding buffer contents were already zeroed by a memset (cf: - 20000101). - + improve configure check for _XOPEN_SOURCE and related definitions, - adding special cases for Solaris' __EXTENSIONS__ and FreeBSD's - __BSD_TYPES (reports by Marc Glisse ). - + small fixes to compile on Solaris and IRIX64 using cc. - + correct typo in check for pre-POSIX sort options in MKkey_defs.sh - (cf: 20031101). - -20031129 - + modify _nc_gettime() to avoid a problem with arithmetic on unsigned - values (Philippe Blain). - + improve the nanosleep() logic in napms() by checking for EINTR and - restarting (Philippe Blain). - + correct expression for "%D" in lib_tgoto.c (Juha Jarvi - ). - -20031122 - + add linux-vt terminfo entry (Andrey V Lukyanov ). - + allow "\|" escape in terminfo; tic should not warn about this. - + save the full pathname of the trace-file the first time it is opened, - to avoid creating it in different directories if the application - opens and closes it while changing its working directory. - + modify configure script to provide a non-empty default for - $BROKEN_LINKER - -20031108 - + add DJGPP to special case of DOS-style drive letters potentially - appearing in TERMCAP environment variable. - + fix some spelling in comments (reports by jmc, Jonathon Gray). - + update config.guess, config.sub - -20031101 - + fix a memory leak in error-return from setupterm() (report by - Stanislav Ievlev ). - + use EXEEXT and OBJEXT consistently in makefiles. - + amend fixes for cross-compiling to use separate executable-suffix - BUILD_EXEEXT (cf: 20031018). - + modify MKkey_defs.sh to check for sort utility that does not - recognize key options, e.g., busybox (report by Peter S Mazinger - ). - + fix potential out-of-bounds indexing in _nc_infotocap() (found by - David Krause using some of the new malloc debugging features - under OpenBSD, patch by Ted Unangst). - + modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use a - ".so" suffix (patch by Jonathan Ward ). - -20031025 - + update terminfo for xterm-xfree86 -TD - + add check for multiple "tc=" clauses in a termcap to tic. - + check for missing op/oc in tic. - + correct _nc_resolve_uses() and _nc_merge_entry() to allow infocmp and - tic to show cancelled capabilities. These functions were ignoring - the state of the target entry, which should be untouched if cancelled. - + correct comment in tack/output.c (Debian #215806). - + add some null-pointer checks to lib_options.c (report by Michael - Bienia). - + regenerated html documentation. - + correction to tar-copy.sh, remove a trap command that resulted in - leaving temporary files (cf: 20030510). - + remove contact/maintainer addresses for Juergen Pfeifer (his request). - -20031018 - + updated test/configure to reflect changes for libtool (cf: 20030830). - + fix several places in tack/pad.c which tested and used the parameter- - and parameterless strings inconsistently, i.e., in pad_rin(), - pad_il(), pad_indn() and pad_dl() (Debian #215805). - + minor fixes for configure script and makefiles to cleanup executables - generated when cross-compiling for DJGPP. - + modify infocmp to omit check for $TERM for operations that do not - require it, e.g., "infocmp -e" used to build fallback list (report by - Koblinger Egmont). - -20031004 - + add terminfo entries for DJGPP. - + updated note about maintainer in ncurses-intro.html - -20030927 - + update terminfo entries for gnome terminal. - + modify tack to reset colors after each color test, correct a place - where exit_standout_mode was used instead of exit_attribute_mode. - + improve tack's bce test by making it set colors other than black - on white. - + plug a potential recursion between napms() and _nc_timed_wait() - (report by Philippe Blain). - -20030920 - + add --with-rel-version option to allow workaround to allow making - libtool on Darwin generate the "same" library names as with the - --with-shared option. The Darwin ld program does not work well - with a zero as the minor-version value (request by Chris Zubrzycki). - + modify CF_MIXEDCASE_FILENAMES macro to work with cross-compiling. - + modify tack to allow it to run from fallback terminfo data. - > Philippe Blain: - + improve PutRange() by adjusting call to EmitRange() and corresponding - return-value to not emit unchanged characters on the end of the - range. - + improve a check for changed-attribute by exiting a loop when the - change is found. - + improve logic in TransformLine(), eliminating a duplicated comparison - in the clr_bol logic. - -20030913 - > Philippe Blain: - + in ncurses/tty/lib_mvcur.c, - move the label 'nonlocal' just before the second gettimeofday() to - be able to compute the diff time when 'goto nonlocal' used. - Rename 'msec' to 'microsec' in the debug-message. - + in ncurses/tty/lib_mvcur.c, - Use _nc_outch() in carriage return/newline movement instead of - putchar() which goes to stdout. Move test for xold>0 out of loop. - + in ncurses/tinfo/setbuf.c, - Set the flag SP->_buffered at the end of operations when all has been - successful (typeMalloc can fail). - + simplify NC_BUFFERED macro by moving check inside _nc_setbuf(). - -20030906 - + modify configure script to avoid using "head -1", which does not - work if POSIXLY_CORRECT (sic) is set. - + modify run_tic.in to avoid using wrong shared libraries when - cross-compiling (Dan Kegel). - -20030830 - + alter configure script help message to make it clearer that - --with-build-cc does not specify a cross-compiler (suggested by Dan - Kegel ). - + modify configure script to accommodate libtool 1.5, as well as add an - parameter to the "--with-libtool" option which can specify the - pathname of libtool (report by Chris Zubrzycki). We note that - libtool 1.5 has more than one bug in its C++ support, so it is not - able to install libncurses++, for instance, if $DESTDIR or the option - --with-install-prefix is used. - -20030823 - > Philippe Blain: - + move assignments to SP->_cursrow, SP->_curscol into online_mvcur(). - + make baudrate computation in delay_output() consistent with the - assumption in _nc_mvcur_init(), i.e., a byte is 9 bits. - -20030816 - + modify logic in waddch_literal() to take into account zh_TW.Big5 - whose multibyte sequences may contain "printable" characters, e.g., - a "g" in the sequence "\247g" (Debian #204889, cf: 20030621). - + improve storage used by _nc_safe_strcpy() by ensuring that the size - is reset based on the initialization call, in case it were called - after other strcpy/strcat calls (report by Philippe Blain). - > Philippe Blain: - + remove an unused ifdef for REAL_ATTR & WANT_CHAR - + correct a place where _cup_cost was used rather than _cuu_cost - -20030809 - + fix a small memory leak in _nc_free_termtype(). - + close trace-file if trace() is called with a zero parameter. - + free memory allocated for soft-key strings, in delscreen(). - + fix an allocation size in safe_sprintf.c for the "*" format code. - + correct safe_sprintf.c to not return a null pointer if the format - happens to be an empty string. This applies to the "configure - --enable-safe-sprintf" option (Redhat #101486). - -20030802 - + modify casts used for ABSENT_BOOLEAN and CANCELLED_BOOLEAN (report by - Daniel Jacobowitz). - > Philippe Blain: - + change padding for change_scroll_region to not be proportional to - the size of the scroll-region. - + correct error-return in _nc_safe_strcat(). - -20030726 - + correct limit-checks in _nc_scroll_window() (report and test-case by - Thomas Graf cf: 20011020). - + re-order configure checks for _XOPEN_SOURCE to avoid conflict with - _GNU_SOURCE check. - -20030719 - + use clr_eol in preference to blanks for bce terminals, so select and - paste will have fewer trailing blanks, e.g., when using xterm - (request by Vincent Lefevre). - + correct prototype for wunctrl() in manpage. - + add configure --with-abi-version option (discussion with Charles - Wilson). - > cygwin changes from Charles Wilson: - + aclocal.m4: on cygwin, use autodetected prefix for import - and static lib, but use "cyg" for DLL. - + include/ncurses_dll.h: correct the comments to reflect current - status of cygwin/mingw port. Fix compiler warning. - + misc/run_tic.in: ensure that tic.exe can find the uninstalled - DLL, by adding the lib-directory to the PATH variable. - + misc/terminfo.src (nxterm|xterm-color): make xterm-color - primary instead of nxterm, to match XFree86's xterm.terminfo - usage and to prevent circular links. - (rxvt): add additional codes from rxvt.org. - (rxvt-color): new alias - (rxvt-xpm): new alias - (rxvt-cygwin): like rxvt, but with special acsc codes. - (rxvt-cygwin-native): ditto. rxvt may be run under XWindows, or - with a "native" MSWin GUI. Each takes different acsc codes, - which are both different from the "normal" rxvt's acsc. - (cygwin): cygwin-in-cmd.exe window. Lots of fixes. - (cygwinDBG): ditto. - + mk-1st.awk: use "cyg" for the DLL prefix, but "lib" for import - and static libs. - -20030712 - + update config.guess, config.sub - + add triples for configuring shared libraries with the Debian - GNU/FreeBSD packages (patch by Robert Millan ). - -20030705 - + modify CF_GCC_WARNINGS so it only applies to gcc, not g++. Some - platforms have installed g++ along with the native C compiler, which - would not accept gcc warning options. - + add -D_XOPEN_SOURCE=500 when configuring with --enable-widec, to - get mbstate_t declaration on HPUX 11.11 (report by David Ellement). - + add _nc_pathlast() to get rid of casts in _nc_basename() calls. - + correct a sign-extension in wadd_wch() and wecho_wchar() from - 20030628 (report by Tomohiro KUBOTA). - + work around omission of btowc() and wctob() from wide-character - support (sic) in NetBSD 1.6 using mbtowc() and wctomb() (report by - Gabor Z Papp). - + add portability note to curs_get_wstr.3x (Debian #199957). - -20030628 - + rewrite wadd_wch() and wecho_wchar() to call waddch() and wechochar() - respectively, to avoid calling waddch_noecho() with wide-character - data, since that function assumes its input is 8-bit data. - Similarly, modify waddnwstr() to call wadd_wch(). - + remove logic from waddnstr() which transformed multibyte character - strings into wide-characters. Rewrite of waddch_literal() from - 20030621 assumes its input is raw multibyte data rather than wide - characters (report by Tomohiro KUBOTA). - -20030621 - + write getyx() and related 2-return macros in terms of getcury(), - getcurx(), etc. - + modify waddch_literal() in case an application passes bytes of a - multibyte character directly to waddch(). In this case, waddch() - must reassemble the bytes into a wide-character (report by Tomohiro - KUBOTA ). - -20030614 - + modify waddch_literal() in case a multibyte value occupies more than - two cells. - + modify PutAttrChar() to compute the number of character cells that - are used in multibyte values. This fixes a problem displaying - double-width characters (report/test by Mitsuru Chinen - ). - + add a null-pointer check for result of keyname() in _tracechar() - + modify _tracechar() to work around glibc sprintf bug. - -20030607 - + add a call to setlocale() in cursesmain.cc, making demo display - properly in a UTF-8 locale. - + add a fallback definition in curses.priv.h for MB_LEN_MAX (prompted - by discussion with Gabor Z Papp). - + use macros NCURSES_ACS() and NCURSES_WACS() to hide cast needed to - appease -Wchar-subscript with g++ 3.3 (Debian #195732). - + fix a redefinition of $RANLIB in the configure script when libtool - is used, which broke configure on Mac OS X (report by Chris Zubrzycki - ). - + simplify ifdef for bool declaration in curses.h.in (suggested by - Albert Chin-A-Young). - + remove configure script check to allow -Wconversion for older - versions of gcc (suggested by Albert Chin-A-Young). - -20030531 - + regenerated html manpages. - + modify ifdef's in curses.h.in that disabled use of __attribute__() - for g++, since recent versions implement the cases which ncurses uses - (Debian #195230). - + modify _nc_get_token() to handle a case where an entry has no - description, and capabilities begin on the same line as the entry - name. - + fix a typo in ncurses_dll.h reported by gcc 3.3. - + add an entry for key_defined.3x to man_db.renames. - -20030524 - + modify setcchar() to allow converting control characters to complex - characters (report/test by Mitsuru Chinen ). - + add tkterm entry -TD - + modify parse_entry.c to allow a terminfo entry with a leading - 2-character name (report by Don Libes). - + corrected acsc in screen.teraterm, which requires a PC-style mapping. - + fix trace statements in read_entry.c to use lseek() rather than - tell(). - + fix signed/unsigned warnings from Sun's compiler (gcc should give - these warnings, but it is unpredictable). - + modify configure script to omit -Winline for gcc 3.3, since that - feature is broken. - + modify manlinks.sed to add a few functions that were overlooked since - they return function pointers: field_init, field_term, form_init, - form_term, item_init, item_term, menu_init and menu_term. - -20030517 - + prevent recursion in wgetch() via wgetnstr() if the connection cannot - be switched between cooked/raw modes because it is not a TTY (report - by Wolfgang Gutjahr ). - + change parameter of define_key() and key_defined() to const (prompted - by Debian #192860). - + add a check in test/configure for ncurses extensions, since there - are some older versions, etc., which would not compile with the - current test programs. - + corrected demo in test/ncurses.c of wgetn_wstr(), which did not - convert wchar_t string to multibyte form before printing it. - + corrections to lib_get_wstr.c: - + null-terminate buffer passed to setcchar(), which occasionally - failed. - + map special characters such as erase- and kill-characters into - key-codes so those will work as expected even if they are not - mentioned in the terminfo. - + modify PUTC() and Charable() macros to make wide-character line - drawing work for POSIX locale on Linux console (cf: 20021221). - -20030510 - + make typography for program options in manpages consistent (report - by Miloslav Trmac ). - + correct dependencies in Ada95/src/Makefile.in, so the builds with - "--srcdir" work (report by Warren L Dodge). - + correct missing definition of $(CC) in Ada95/gen/Makefile.in - (reported by Warren L Dodge ). - + fix typos and whitespace in manpages (patch by jmc - ). - -20030503 - + fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, REQ_DEL_CHAR, - REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure the cursor was at - the editing position before making modifications. - + add test/demo_forms and associated test/edit_field.c demos. - + modify test/configure.in to use test/modules for the list of objects - to compile rather than using the list of programs. - -20030419 - + modify logic of acsc to use the original character if no mapping is - defined, noting that Solaris does this. - + modify ncurses 'b' test to avoid using the acs_map[] array since - 20021231 changes it to no longer contain information from the acsc - string. - + modify makefile rules in c++, progs, tack and test to ensure that - the compiler flags (e.g., $CFLAGS or $CCFLAGS) are used in the link - command (report by Jose Luis Rico Botella ). - + modify soft-key initialization to use A_REVERSE if A_STANDOUT would - not be shown when colors are used, i.e., if ncv#1 is set in the - terminfo as is done in "screen". - -20030412 - + add a test for slk_color(), in ncurses.c - + fix some issues reported by valgrind in the slk_set() and slk_wset() - code, from recent rewrite. - + modify ncurses 'E' test to use show previous label via slk_label(), - as in 'e' test. - + modify wide-character versions of NewChar(), NewChar2() macros to - ensure that the whole struct is initialized. - -20030405 - + modify setupterm() to check if the terminfo and terminal-modes have - already been read. This ensures that it does not reinvoke - def_prog_mode() when an application calls more than one function, - such as tgetent() and initscr() (report by Olaf Buddenhagen). - -20030329 - + add 'E' test to ncurses.c, to exercise slk_wset(). - + correct handling of carriage-return in wgetn_wstr(), used in demo of - slk_wset(). - + first draft of slk_wset() function. - -20030322 - + improved warnings in tic when suppressing items to fit in termcap's - 1023-byte limit. - + built a list in test/README showing which externals are being used - by either programs in the test-directory or via internal library - calls. - + adjust include-options in CF_ETIP_DEFINES to avoid missing - ncurses_dll.h, fixing special definitions that may be needed for - etip.h (reported by Greg Schafer ). - -20030315 - + minor fixes for cardfile.c, to make it write the updated fields to - a file when ^W is given. - + add/use _nc_trace_bufcat() to eliminate some fixed buffer limits in - trace code. - -20030308 - + correct a case in _nc_remove_string(), used by define_key(), to avoid - infinite loop if the given string happens to be a substring of other - strings which are assigned to keys (report by John McCutchan). - + add key_defined() function, to tell which keycode a string is bound - to (discussion with John McCutchan ). - + correct keybound(), which reported definitions in the wrong table, - i.e., the list of definitions which are disabled by keyok(). - + modify demo_keydef.c to show the details it changes, and to check - for errors. - -20030301 - + restructured test/configure script, make it work for libncursesw. - + add description of link_fieldtype() to manpage (report by - L Dee Holtsclaw ). - -20030222 - + corrected ifdef's relating to configure check for wchar_t, etc. - + if the output is a socket or other non-tty device, use 1 millisecond - for the cost in mvcur; previously it was 9 milliseconds because the - baudrate was not known. - + in _nc_get_tty_mode(), initialize the TTY buffer on error, since - glibc copies uninitialized data in that case, as noted by valgrind. - + modify tput to use the same parameter analysis as tparm() does, to - provide for user-defined strings, e.g., for xterm title, a - corresponding capability might be - title=\E]2;%p1%s^G, - + modify MKlib_gen.sh to avoid passing "#" tokens through the C - preprocessor. This works around Mac OS X's preprocessor, which - insists on adding a blank on each side of the token (report/analysis - by Kevin Murphy ). - -20030215 - + add configure check for wchar_t and wint_t types, rather than rely - on preprocessor definitions. Also work around for gcc fixinclude - bug which creates a shadow copy of curses.h if it sees these symbols - apparently typedef'd. - + if database is disabled, do not generate run_tic.sh - + minor fixes for memory-leak checking when termcap is read. - -20030208 - + add checking in tic for incomplete line-drawing character mapping. - + update configure script to reflect fix for AC_PROG_GCC_TRADITIONAL, - which is broken in autoconf 2.5x for Mac OS X 10.2.3 (report by - Gerben Wierda ). - + make return value from _nc_printf_string() consistent. Before, - depending on whether --enable-safe-sprintf was used, it might not be - cached for reallocating. - -20030201 - + minor fixes for memory-leak checking in lib_tparm.c, hardscroll.c - + correct a potentially-uninitialized value if _read_termtype() does - not read as much data as expected (report by Wolfgang Rohdewald - ). - + correct several places where the aclocal.m4 macros relied on cache - variable names which were incompatible (as usual) between autoconf - 2.13 and 2.5x, causing the test for broken-linker to give incorrect - results (reports by Gerben Wierda and Thomas Esser - ). - + do not try to open gpm mouse driver if standard output is not a tty; - the gpm library does not make this check (from bug report for dialog - by David Oliveira ). - -20030125 - + modified emx.src to correspond more closely to terminfo.src, added - emx-base to the latter -TD - + add configure option for FreeBSD sysmouse, --with-sysmouse, and - implement support for that in lib_mouse.c, lib_getch.c - -20030118 - + revert 20030105 change to can_clear_with(), does not work for the - case where the update is made on cells which are blanks with - attributes, e.g., reverse. - + improve ifdef's to guard against redefinition of wchar_t and wint_t - in curses.h (report by Urs Jansen). - -20030111 - + improve mvcur() by checking if it is safe to move when video - attributes are set (msgr), and if not, reset/restore attributes - within that function rather than doing it separately in the GoTo() - function in tty_update.c (suggested by Philippe Blain). - + add a message in run_tic.in to explain more clearly what does not - work when attempting to create a symbolic link for /usr/lib/terminfo - on OS/2 and other platforms with no symbolic links (report by John - Polterak). - + change several sed scripts to avoid using "\+" since it is not a BRE - (basic regular expression). One instance caused terminfo.5 to be - misformatted on FreeBSD (from a FreeBSD bug report by Kazuo Horikawa - ). - + correct misspelled 'wint_t' in curs_get_wch.3x (Michael Elkins). - -20030105 - + improve description of terminfo operators, especially static/dynamic - variables (comments by Mark I Manning IV ). - + demonstrate use of FIELDTYPE by modifying test/ncurses 'r' test to - use the predefined TYPE_ALPHA field-type, and by defining a - specialized type for the middle initial/name. - + fix MKterminfo.sh, another workaround for POSIXLY_CORRECT misfeature - of sed 4.0 - > Philippe Blain: - + optimize can_clear_with() a little by testing first if the parameter - is indeed a "blank". - + simplify ClrBottom() a little by allowing it to use clr_eos to clear - sections as small as one line. - + improve ClrToEOL() by checking if clr_eos is available before trying - to use it. - + use tputs() rather than putp() in a few cases in tty_update.c since - the corresponding delays are proportional to the number of lines - affected: repeat_char, clr_eos, change_scroll_region. - -20021231 - + rewrite of lib_acs.c conflicts with copying of SCREEN acs_map to/from - global acs_map[] array; removed the lines that did the copying. - -20021228 - + change some overlooked tputs() calls in scrolling code to use putp() - (report by Philippe Blain). - + modify lib_getch.c to avoid recursion via wgetnstr() when the input - is not a tty and consequently mode-changes do not work (report by - ). - + rewrote lib_acs.c to allow PutAttrChar() to decide how to render - alternate-characters, i.e., to work with Linux console and UTF-8 - locale. - + correct line/column reference in adjust_window(), needed to make - special windows such as curscr track properly when resizing (report - by Lucas Gonze ). - > Philippe Blain: - + correct the value used for blank in ClrBottom() (broken in 20000708). - + correct an off-by-one in GoTo() parameter in _nc_scrolln(). - -20021221 - + change several tputs() calls in scrolling code to use putp(), to - enable padding which may be needed for some terminals (patch by - by Philippe Blain). - + use '%' as sed substitute delimiter in run_tic script to avoid - problems with pathname delimiters such as ':' and '@' (report by John - Polterak). - + implement a workaround so that line-drawing works with screen's - crippled UTF-8 support (tested with 3.9.13). This only works with - the wide-character support (--enable-widec); the normal library will - simply suppress line-drawing when running in a UTF-8 locale in screen. - -20021214 - + allow BUILD_CC and related configure script variables to be - overridden from the environment. - + make build-tools variables in ncurses/Makefile.in consistent with - the configure script variables (report by Maciej W Rozycki). - + modify ncurses/modules to allow - configure --disable-leaks --disable-ext-funcs - to build (report by Gary Samuelson). - + fix a few places in configure.in which lacked quotes (report by - Gary Samuelson ). - + correct handling of multibyte characters in waddch_literal() which - force wrapping because they are started too late on the line (report - by Sam Varshavchik). - + small fix for CF_GNAT_VERSION to ignore the help-message which - gnatmake adds to its version-message. - > Maciej W Rozycki : - + use AC_CHECK_TOOL to get proper values for AR and LD for cross - compiling. - + use $cross_compiling variable in configure script rather than - comparing $host_alias and $target alias, since "host" is - traditionally misused in autoconf to refer to the target platform. - + change configure --help message to use "build" rather than "host" - when referring to the --with-build-XXX options. - -20021206 - + modify CF_GNAT_VERSION to print gnatmake's version, and to allow for - possible gnat versions such as 3.2 (report by Chris Lingard - ). - + modify #define's for CKILL and other default control characters in - tset to use the system's default values if they are defined. - + correct interchanged defaults for kill and interrupt characters - in tset, which caused it to report unnecessarily (Debian #171583). - + repair check for missing C++ compiler, which is broken in autoconf - 2.5x by hardcoding it to g++ (report by Martin Mokrejs). - + update config.guess, config.sub (2002-11-30) - + modify configure script to skip --with-shared, etc., when the - --with-libtool option is given, since they would be ignored anyway. - + fix to allow "configure --with-libtool --with-termlib" to build. - + modify configure script to show version number of libtool, to help - with bug reports. libtool still gets confused if the installed - ncurses libraries are old, since it ignores the -L options at some - point (tested with libtool 1.3.3 and 1.4.3). - + reorder configure script's updating of $CPPFLAGS and $CFLAGS to - prevent -I options in the user's environment from introducing - conflicts with the build -I options (may be related to reports by - Patrick Ash and George Goffe). - + rename test/define_key.c to test/demo_defkey.c, test/keyok.c to - test/demo_keyok.c to allow building these with libtool. - -20021123 - + add example program test/define_key.c for define_key(). - + add example program test/keyok.c for keyok(). - + add example program test/ins_wide.c for wins_wch() and wins_wstr(). - + modify wins_wch() and wins_wstr() to interpret tabs by using the - winsch() internal function. - + modify setcchar() to allow for wchar_t input strings that have - more than one spacing character. - -20021116 - + fix a boundary check in lib_insch.c (patch by Philippe Blain). - + change type for *printw functions from NCURSES_CONST to const - (prompted by comment by Pedro Palhoto Matos , - but really from a note on X/Open's website stating that either is - acceptable, and the latter will be used in a future revision). - + add xterm-1002, xterm-1003 terminfo entries to demonstrate changes in - lib_mouse.c (20021026) -TD - + add screen-bce, screen-s entries from screen 3.9.13 (report by - Adam Lazur ) -TD - + add mterm terminfo entries -TD - -20021109 - + split-out useful fragments in terminfo for vt100 and vt220 numeric - keypad, i.e., vt100+keypad, vt100+pfkeys, vt100+fnkeys and - vt220+keypad. The last as embedded in various entries had ka3 and - kb2 interchanged (report/discussion with Leonard den Ottolander - ). - + add check in tic for keypads consistent with vt100 layout. - + improve checks in tic for color capabilities - -20021102 - + check for missing/empty/illegal terminfo name in _nc_read_entry() - (report by Martin Mokrejs, where $TERM was set to an empty string). - + rewrote lib_insch.c, combining it with lib_insstr.c so both handle - tab and other control characters consistently (report by Philippe - Blain). - + remove an #undef for KEY_EVENT from curses.tail used in the - experimental NCURSES_WGETCH_EVENTS feature. The #undef confuses - dpkg's build script (Debian #165897). - + fix MKlib_gen.sh, working around the ironically named POSIXLY_CORRECT - feature of GNU sed 4.0 (reported by Ervin Nemeth ). - -20021026 - + implement logic in lib_mouse.c to handle position reports which are - generated when XFree86 xterm is initialized with private modes 1002 - or 1003. These are returned to the application as the - REPORT_MOUSE_POSITION mask, which was not implemented. Tested both - with ncurses 'a' menu (prompted by discussion with Larry Riedel - ). - + modify lib_mouse.c to look for "XM" terminfo string, which allows - one to override the escape sequence used to enable/disable mouse - mode. In particular this works for XFree86 xterm private modes - 1002 and 1003. If "XM" is missing (note that this is an extended - name), lib_mouse uses the conventional private mode 1000. - + correct NOT_LOCAL() macro in lib_mvcur.c to refer to screen_columns - where it used screen_lines (report by Philippe Blain). - + correct makefile rules for the case when both --with-libtool and - --with-gpm are given (report by Mr E_T ). - + add note to terminfo manpage regarding the differences between - setaf/setab and setf/setb capabilities (report by Pavel Roskin). - -20021019 - + remove redundant initialization of TABSIZE in newterm(), since it is - already done in setupterm() (report by Philippe Blain). - + add test/inserts.c, to test winnstr() and winsch(). - + replace 'sort' in dist.mk with script that sets locale to POSIX. - + update URLs in announce.html.in (patch by Frederic L W Meunier). - + remove glibc add-on files, which are no longer needed (report by - Frederic L W Meunier). - -20021012 5.3 release for upload to ftp.gnu.org - + modify ifdef's in etip.h.in to allow the etip.h header to compile - with gcc 3.2 (patch by Dimitar Zhekov ). - + add logic to setupterm() to make it like initscr() and newterm(), - by checking for $NCURSES_TRACE environment variable and enabling - the debug trace in that case. - + modify setupterm() to ensure that it initializes the baudrate, for - applications such as tput (report by Frank Henigman). - + modify definition of bits used for command-line and library debug - traces to avoid overlap, using new definition TRACE_SHIFT to relate - the two. - + document tput's interpretation of parameterized strings according to - whether parameters are given, etc. (discussion with Robert De Bath). - -20021005 pre-release - + correct winnwstr() to account for non-character cells generated when - a double-width character is added (report by Michael Bienia - ). - + modify _nc_viswbuf2n() to provide better results using wctomb(). - + correct logic in _nc_varargs() which broke tracing of parameters for - formats such as "%.*s". - + correct scale factor in linux-c and linux-c-nc terminfo entries - (report Floyd Davidson). - + change tic -A option to -t, add the same option to infocmp for - consistency. - + correct "%c" implementation in lib_tparm.c, which did not map a null - character to a 128 (cf: 980620) (patch by Frank Henigman - ). - -20020928 pre-release - + modify MKkey_defs.sh to check for POSIX sort -k option, use that if - it is found, to accommodate newer utility which dropped the - compatibility support for +number options (reported by Andrey A - Chernov). - + modify linux terminfo entry to use color palette feature from - linux-c-nc entry (comments by Tomasz Wasiak and Floyd Davidson). - + restore original color definitions in endwin() if init_color() was - used, and resume those colors on the next doupdate() or refresh() - (report by Tomasz Wasiak ). - + improve debug-traces by modifying MKlib_gen.sh to generate calls - to returnBool() and returnAttr(). - + add/use _nc_visbufn() and _nc_viswbufn() to limit the debug trace - of waddnstr() and similar functions to match the parameters as used. - + add/use _nc_retrace_bool() and _nc_retrace_unsigned(). - + correct type used by _nc_retrace_chtype(). - + add debug traces to some functions in lib_mouse.c - + modify lib_addch.c to handle non-spacing characters. - + correct parameter of RemAttr() in lib_bkgd.c, which caused the c++ - demo's boxes to lose the A_ALTCHARSET flag (broken in 20020629). - + correct width computed in _tracedump(), which did not account for - the attributes (broken in 20010602). - + modify test/tracemunch to replace addresses for windows other than - curscr, newscr and stdscr with window0, window1, etc. - -20020921 pre-release - + redid fix for edit_man.sed path. - + workaround for Cygwin bug which makes subprocess writes to stdout - result in core dump. - + documented getbegx(), etc. - + minor fixes to configure script to use '%' consistently as a sed - delimiter rather than '@'. - > Philippe Blain: - + add check in lib_overlay.c to ensure that the windows to be merged - actually overlap, and in copywin(), limit the area to be touched - to the lines given for the destination window. - -20020914 pre-release - + modified curses.h so that if the wide-character version is installed - overwriting /usr/include/curses.h, and if it relied on libutf8.h, - then applications that use that header for wide-character support - must define HAVE_LIBUTF8_H. - + modify putwin(), getwin() and dupwin() to allow them to operate on - pads (request by Philippe Blain). - + correct attribute-merging in wborder(), broken in 20020216 (report - by Tomasz Wasiak ). - > Philippe Blain: - + corrected pop-counts in tparam_internal() to '!' and '~' cases. - + use sizeof(NCURSES_CH_T) in one place that used sizeof(chtype). - + remove some unused variables from mvcur test-driver. - -20020907 pre-release - + change configure script to allow install of widec-character - (ncursesw) headers to overwrite normal (ncurses) headers, since the - latter is a compatible subset of the former. - + fix path of edit_man.sed in configure script, needed to regenerate - html manpages on Debian. - + fix mismatched enums in vsscanf.c, which caused warning on Solaris. - + update README.emx to reflect current patch used for autoconf. - + change web- and ftp-site to invisible-island.net - > Philippe Blain: - + change case for 'P' in tparam_internal() to indicate that it pops - a variable from the stack. - + correct sense of precision and width in parse_format(), to avoid - confusion. - + modify lib_tparm.c, absorb really_get_space() into get_space(). - + modify getwin() and dupwin() to copy the _notimeout, _idlok and - _idcok window fields. - + better fix for _nc_set_type(), using typeMalloc(). - -20020901 pre-release - + change minor version to 3, i.e., ncurses 5.3 - + update config.guess, config.sub - + retest build with each configure option; minor ifdef fixes. - + make keyname() return a null pointer rather than "UNKNOWN STRING" to - match XSI. - + modify handling of wide line-drawing character functions to use the - normal line-drawing characters when not in UTF-8 locale. - + add check/fix to comp_parse.c to suppress warning about missing acsc - string. This happens in configurations where raw termcap information - is processed; tic already does this and other checks. - + modify tic's check for ich/ich1 versus rmir/smir to only warn about - ich1, to match xterm patch #70 notes. - + moved information for ripped-off lines into SCREEN struct to allow - use in resizeterm(). - + add experimental wgetch_events(), ifdef'd with NCURSES_WGETCH_EVENTS - (adapted from patch by Ilya Zakharevich - see ncurses/README.IZ). - + amend check in kgetch() from 20020824 to look only for function-keys, - otherwise escape sequences are not resolved properly. - > Philippe Blain: - + removed redundant assignment to SP->_checkfd from newterm(). - + check return-value of setupterm() in restartterm(). - + use sizeof(NCURSES_CH_T) in a few places that used sizeof(chtype). - + prevent dupwin() from duplicating a pad. - + prevent putwin() from writing a pad. - + use typeRealloc() or typeMalloc() in preference to direct calls on - _nc_doalloc(). - -20020824 - + add a check in kgetch() for cooked characters in the fifo to avoid - calling fifo_push() when a KEY_RESIZE is available (report/analysis - by Sam Varshavchik ). - + fix an overlooked case for bugzilla #68199 (Philippe Blain). - + ensure clearerr() is called before using ferror() e.g., in - lib_screen.c (report by Philippe Blain). - -20020817 - + modify lib_screen.c and lib_newwin.c to maintain the SCREEN-specific - pointers for curscr/stdscr/newscr when scr_save() and scr_restore() - modify the global curscr/stdscr/newscr variables. Fixes Redhat - bugzilla #68199 dated 2002-07-07. - + add checks for null pointer in calls to tparm() and tgoto() based on - FreeBSD bug report. If ncurses were built with termcap support, and - the first call to tgoto() were a zero-length string, the result would - be a null pointer, which was not handled properly. - + correct a typo in terminfo.head, which gave the octal code for colon - rather than comma. - + remove the "tic -u" option from 20020810, since it did not account - for nested "tc=" clauses, and when that was addressed, was still - unsatisfactory. - -20020810 - + add tic -A option to suppress capabilities which are commented out - when translating to termcap. - + add tic -u option to provide older behavior of "tc=" clauses. - + modified tic to expand all but the final "tc=" clause in a termcap - entry, to accommodate termcap libraries which do not handle multiple - tc clauses. - + correct typo in curs_inopts.3x regarding CS8/CS7 usage (report by - Philippe Blain). - + remove a couple of redundant uses of A_ATTRIBUTES in expressions - using AttrOf(), which already incorporates that mask (report by - Philippe Blain). - + document TABSIZE variable. - + add NCURSES_ASSUMED_COLORS environment variable, to allow users to - override compiled-in default black-on-white assumption used in - assume_default_colors(). - + correct an off-by-one comparison against max_colors in COLORFGBG - logic. - + correct a use of uninitialized memory found by valgrind (reported by - Olaf Buddenhagen ). - + modified wresize() to ensure that a failed realloc will not corrupt - the window structure, and to make subwindows fit within the resized - window (completes Debian #87678, #101699) - -20020803 - + fix an off-by-one in lib_pad.c check for limits of pad (patch by - Philippe Blain). - + revise logic for BeOS in lib_twait.c altered in 20011013 to restore - logic used by lib_getch.c's support for GPM or EMX mouse (report by - Philippe Blain) - + remove NCURSES_CONST from several prototypes in curses.wide, to make - the --enable-const --enable-widec configure options to work together - (report by George Goffe ). - -20020727 - + finish no-leak checking in cardfile.c, using this for testing changes - to resizeterm(). - + simplify _nc_freeall() using delscreen(). - -20020720 - + check error-return from _nc_set_tty_mode() in _nc_initscr() and - reset_prog_mode() (report/patch by Philippe Blain). - + regenerate configure using patch for autoconf 2.52, to address - problem with identifying C++ bool type. - + correct/improve logic to produce an exit status for errors in tput, - which did not exit with an error when told to put a string not in the - current terminfo entry (report by David Gomez ). - + modify configure script AC_OUTPUT() call to work around defect in - autoconf 2.52 which adds an ifdef'd include to the generated - configure definitions. - + remove fstat() check from scr_init(), which also fixes a missing - include for from 20020713 (reported by David Ellement, - fix suggested by Philippe Blain). - + update curs_scanw.3x manpage to note that XSI curses differs from - SVr4 curses: return-values are incompatible. - + correct several prototypes in manpages which used const - inconsistently with the curses.h file, and removed spurious const's - in a few places from curses.h, e.g., for wbkgd() (report by Glenn - Maynard ). - + change internal type used by tparm() to long, to work with LP64 model. - + modify nc_alloc.h to allow building with g++, for testing. - -20020713 - + add resize-handling to cardfile.c test program. - + altered resizeterm() to avoid having it fail when a child window - cannot be resized because it would be larger than its parent. (More - work must be done on this, but it works well enough to integrate). - + improve a limit-check in lib_refresh.c - + remove check in lib_screen.c relating dumptime to file's modification - times, since that would not necessarily work for remotely mounted - filesystems. - + modify lrtest to simplify debugging changes to resizeterm, e.g., - t/T commands to enable/disable tracing. - + updated status of multibyte support in TO-DO. - + update contact info in source-files (patch by Juergen Pfeifer). - -20020706 - + add Caps.hpux11, as an example. - + modify version_filter(), used to implement -R option for tic and - infocmp, to use computed array offsets based on the Caps.* file which - is actually configured, rather than constants which correspond to - the Caps file. - + reorganized lib_raw.c to avoid updating SP and cur_term state if the - functions fail (reported by Philippe Blain). - + add -Wundef to gcc warnings, adjust a few ifdef's to accommodate gcc. - -20020629 - + correct parameters to setcchar() in ncurses.c (cf: 20020406). - + set locale in most test programs (view.c and ncurses.c were the - only ones). - + add configure option --with-build-cppflags (report by Maksim A - Nikulin ). - + correct a typo in wide-character logic for lib_bkgnd.c (Philippe - Blain). - + modify lib_wacs.c to not cancel the acsc, smacs, rmacs strings when - in UTF-8 locale. Wide-character functions use Unicode values, while - narrow-character functions use the terminfo data. - + fix a couple of places in Ada95/samples which did not compile with - gnat 3.14 - + modify mkinstalldirs so the DOS-pathname case is locale-independent. - + fix locale problem in MKlib_gen.sh by forcing related variables to - POSIX (C), using same approach as autoconf (set variables only if - they were set before). Update MKterminfo.sh and MKtermsort.sh to - match. - -20020622 - + add charset to generated html. - + add mvterm entry, adapted from a FreeBSD bug-report by Daniel Rudy - -TD - + add rxvt-16color, ibm+16color entries -TD - + modify check in --disable-overwrite option so that it is used by - default unless the --prefix/$prefix value is not /usr, in attempt to - work around packagers, e.g., for Sun's freeware, who do not read the - INSTALL notes. - -20020615 - + modify wgetch() to allow returning ungetch'd KEY_RESIZE as a function - key code in get_wch(). - + extended resize-handling in test/ncurses 'a' menu to the entire - stack of windows created with 'w' commands. - + improve $COLORFGBG feature by interpreting an out-of-range color - value as an SGR 39 or 49, for foreground/background respectively. - + correct a typo in configure --enable-colorfgbg option, and move it - to the experimental section (cf: 20011208). - -20020601 - + add logic to dump_entry.c to remove function-key definitions that do - not fit into the 1023-byte limit for generated termcaps. This makes - hds200 fit. - + more improvements to tic's warnings, including logic to ignore - differences between delay values in sgr strings. - + move definition of KEY_RESIZE into MKkeydefs.sh script, to - accommodate Caps.osf1r5 which introduced a conflicting definition. - -20020525 - + add simple resize-handling in test/ncurses.c 'a' menu. - + fixes in keyname() and _tracechar() to handle negative values. - + make tic's warnings about mismatches in sgr strings easier to follow. - + correct tic checks for number of parameters in smgbp and smglp. - + improve scoansi terminfo entry, and add scoansi-new entry -TD - + add pcvt25-color terminfo entry -TD - + add kf13-kf48 strings to cons25w terminfo entry (reported by Stephen - Hurd in newsgroup lucky.freebsd.bugs) -TD - + add entrypoint _nc_trace_ttymode(), use this to distinguish the - Ottyb and Nttyb members of terminal (aka cur_term), for tracing. - -20020523 - + correct and simplify logic for lib_pad.c change in 20020518 (reported - by Mike Castle). - -20020518 - + fix lib_pad.c for case of drawing a double-width character which - falls off the left margin of the pad (patch by Kriang Lerdsuwanakij - ) - + modify configure script to work around broken gcc 3.1 "--version" - option, which adds unnecessary trash to the requested information. - + adjust ifdef's in case SIGWINCH is not defined, e.g., with DJGPP - (reported by Ben Decker ). - -20020511 - + implement vid_puts(), vid_attr(), term_attrs() based on the narrow- - character versions as well. - + implement erasewchar(), killwchar() based on erasechar() and - killchar(). - + modify erasechar() and killchar() to return ERR if the value was - VDISABLE. - + correct a bug in wresize() in handling subwindows (based on patch by - Roger Gammans , report by Scott Beck - ). - + improve test/tclock.c by making the second-hand update more often - if gettimeofday() is available. - -20020429 - + workaround for Solaris sed with MKlib_gen.sh (reported by Andy - Tsouladze ). - -20020427 - + correct return-value from getcchar(), making it consistent with - Solaris and Tru64. - + reorder loops that generate makefile rules for different models vs - subsets so configure --with-termlib works again. This was broken by - logic added to avoid duplicate rules in changes to accommodate cygwin - dll's (reported by George.R.Goffe@seagate.com). - + update config.guess, config.sub - -20020421 - + modify ifdef's in write_entry.c to allow use of symbolic links on - platforms with no hard links, e.g., BeOS. - + modify a few includes to allow compile with BeOS, which has stdbool.h - with a conflicting definition for 'bool' versus its OS.h definition. - + amend MKlib_gen.sh to work with gawk, which defines 'func' as an - alias for 'function'. - -20020420 - + correct form of prototype for ripoffline(). - + modify MKlib_gen.sh to test that all functions marked as implemented - can be linked. - -20020413 - + add manpages: curs_get_wstr.3x, curs_in_wchstr.3x - + implement wgetn_wstr(). - + implement win_wchnstr(). - + remove redefinition of unget_wch() in lib_gen.c (reported by - Jungshik Shin ). - -20020406 - + modified several of the test programs to allow them to compile with - vendor curses implementations (Solaris, AIX). - -20020323 - + modified test/configure to allow configuring against ncursesw. - + change WACS_xxx definition to use address, to work like Tru64 curses. - -20020317 - + add 'e' and 'm' toggles to 'a', 'A' tests in ncurses.c to demonstrate - effect of echo/noecho and meta modes. - + add 'A' test to ncurses.c to demonstrate wget_wch() and related - functions. - + add manpage: curs_get_wch.3x - + implement unget_wch(). - + implement wget_wch(). - -20020310 - + regenerated html manpages. - + add manpages: curs_in_wch.3x, curs_ins_wch.3x, curs_ins_wstr.3x - + implement wins_wch(). - + implement win_wch(). - + implement wins_nwstr(), wins_wstr(). - -20020309 - + add manpages: curs_addwstr.3x, curs_winwstr.3x - + implement winnwstr(), winwstr(). - -20020223 - + add manpages: curs_add_wchstr.3x, curs_bkgrnd.3x - + document wunctrl, key_name. - + implement key_name(). - + remove const's in lib_box.c incorrectly leftover after splitting off - lib_box_set.c - + update llib-lncurses, llib-ncursesw, fix configure script related to - these. - -20020218 - + remove quotes on "SYNOPSIS" in man/curs_box_set.3x, which resulted - in spurious symlinks on install. - -20020216 - + implement whline_set(), wvline_set(), add manpage curs_border_set. - + add subtest 'b' to 'F' and 'f' in ncurses.c to demonstrate use of - box() and box_set() functions. - + add subtest 'u' to 'F' in ncurses.c, to demonstrate use of addstr() - given UTF-8 string equivalents of WACS_xxx symbols. - + minor fixes to several manpages based on groff -ww output. - + add descriptions of external variables of termcap interface to - the manpage (report by Bruce Evans ). - > patches by Bernhard Rosenkraenzer: - + correct configure option --with-bool, which was executed as - --with-ospeed. - + add quotes for parameters of --with-bool and --with-ospeed configure - options. - > patch by Sven Verdoolaege (report by Gerhard Haering - ): - + correct typos in definitions of several wide-character macros: - waddwstr, wgetbkgrnd, mvaddwstr, mvwadd_wchnstr, mvwadd_wchnstr, - mvwaddwstr. - + pass $(CPPFLAGS) to MKlib_gen.sh, thereby fixing a missing definition - of _XOPEN_SOURCE_EXTENDED, e.g., on Solaris - -20020209 - + implement wide-acs characters for UTF-8 locales. When in UTF-8 - locale, ignore narrow version of acs. Add 'F' test to test/ncurses.c - to demonstrate. - + correct prototype in keybound manpage (noted from a Debian mailing - list item). - -20020202 - + add several cases to the wscanw() example in testcurs.c, showing the - format. - + implement a simple vsscanf() fallback function which uses the %n - conversion to help parse the input data (prompted by discussion with - Albert Chin-A-Young). - + modify mk-1st.awk and test/Makefile.in to add $(LDFLAGS) when making - shared libraries, and to use $(CFLAGS) when linking test programs - (patch by Albert Chin-A-Young). - + add a call to _nc_keypad() in keypad() to accommodate applications - such as nvi, which use curses for output but not for input (fixes - Debian #131263, cf: 20011215). - + add entrypoints to resizeterm.c which provide better control over the - process: is_term_resized() and resize_term(). The latter restores - the original design of resizeterm() before KEY_RESIZE was added in - 970906. Do this to accommodate 20010922 changes to view.c, but allow - for programs with their own sigwinch handler, such as lynx (reported - by Russell Ruby ). - -20020127 - + fix a typo in change to mk-1st.awk, which broke the shared-library - makefile rules (reported by Martin Mokrejs). - -20020126 - + update config.guess, config.sub - + finish changes needed to build dll's on cygwin. - + fix a typo in mvwchat() macro (reported by Cy ). - + add configure check for mbstate_t, needed for wide-character - configuration. On some platforms we must include to - define this (reported by Daniel Jacobowitz). - + incorporate some of the changes needed to build dll's on cygwin. - -20020112a - + workaround for awk did not work with mawk, adjusted shell script. - -20020112 - + add Caps.osf1r5, as an example. - + modify behavior of can_clear_with() so that if an application is - running in a non-bce terminals with default colors enabled, it - returns true, allowing the user to select/paste text without picking - up extraneous trailing blanks (adapted from patch by Daniel - Jacobowitz ). - + modify generated curses.h to ifdef-out prototypes for extensions if - they are disabled, and to define curses_version() as a string in that - case. This is needed to make the programs such as tic build in that - configuration. - + modified generated headers.sh to remove a gzip'd version of the - target file if it exists, in case non-gzip'd manpages are installed - into a directory where gzip'd ones exist. In that case, the latter - would be found. - + corrected a redundant initialization of signal handlers from 20010922 - changes. - + clarified bug-reporting address in terminfo.src (report by John H - DuBois III ). - > several fixes from Robert Joop: - + do not use "-v" option of awk in MKkey_defs.sh because it does not - work with SunOS nawk. - + modify definitions for libutf8 in curses.h to avoid redefinition - warnings for mblen - + quoted references to compiler in shell command in misc/Makefile, in - case it uses multiple tokens. - -20011229 - + restore special case from 20010922 changes to omit SA_RESTART when - setting up SIGWINCH handler, which is needed to allow wgetch() to be - interrupted by that signal. - + update configure macro CF_WITH_PATHLIST, to omit some double quotes - not needed with autoconf 2.52 - + revert configure script to autoconf 2.13 patched with - autoconf-2.13-19990117.patch.gz (or later) - from - ftp://invisible-island.net/autoconf/ - because autoconf 2.52 macro AC_PROG_AWK does not work on HPUX 11.0 - (report by David Ellement ). This also fixes a - different problem configuring with Mac OS X (reported by Marc Smith - ). - -20011222 - + modify include/edit_cfg.h to eliminate BROKEN_LINKER symbol from - term.h - + move prototype for _nc_vsscanf() into curses.h.in to omit - HAVE_VSSCANF symbol from curses.h, which was dependent upon the - ncurses_cfg.h file which is not installed. - + use ACS_LEN rather than SIZEOF(acs_map) in trace code of lib_acs.c, - to work with broken linker configuration, e.g., cygwin (report by - Robert Joop ). - + make napms() call _nc_timed_wait() rather than poll() or select(), - to work around broken implementations of these on cygwin. - -20011218 - + drop configure macro CF_WIDEC_SHIFT, since that was rendered obsolete - by Sven Verdoolaege's rewrite of wide-character support. This makes - libncursesw incompatible again, but makes the header files almost the - same as in the narrow-character configuration. - + simplify definitions that combine wide/narrow versions of bkgd, etc., - to eliminate differences between the wide/narrow versions of curses.h - + correct typo in configure macro CF_FUNC_VSSCANF - + correct location of call to _nc_keypad() from 20011215 changes which - prevented keypad() from being disabled (reported by Lars Hecking). - -20011215 - + rewrote ncurses 'a' test to exercise wgetch() and keypad() functions - better, e.g., by adding a 'w' command to create new windows which - may have different keypad() settings. - + corrected logic of keypad() by adding internal screen state to track - whether the terminal's keypad-mode has been set. Use this in - wgetch() to update the keypad-mode according to whether the - associated window's keypad-mode has been set with keypad(). This - corrects a related problem restoring terminal state after handling - SIGTSTP (reported by Mike Castle). - + regenerate configure using patch for autoconf 2.52 - autoconf-2.52-patch.gz - at - ftp://invisible-island.net/autoconf/ - + update config.guess, config.sub from - http://subversions.gnu.org/cgi-bin/viewcvs/config/config/ - + minor changes to quoting in configure script to allow it to work - with autoconf 2.52 - -20011208 - + modify final checks in lib_setup.c for line and col values, making - them independent. - + modify acs_map[] if configure --broken-linker is specified, to make - it use a function rather than an array (prompted by an incorrect - implementation in cygwin package). - + correct spelling of configure option --enable-colorfgbg, which - happened to work if --with-develop was set (noted in cygwin package - for ncurses). - + modify ifdef for genericerror() to compile with SUNWspro Sun WorkShop - 6 update 1 C++ 5.2 (patch by Sullivan N Beck ). - + add configure checks to see if ncurses' fallback vsscanf() will - compile either of the special cases for FILE structs, and if not, - force it to the case which simply returns an error (report by - Sullivan N Beck indicates that Solaris 8 with - 64-bits does not allow access to FILE's fields). - + modify ifdef's for c++/cursesw.cc to use the fallback vsscanf() in - the ncurses library if no better substitute for this can be found - in the C++ runtime. - + modify the build to name dynamic libraries according to the - convention used on OS X and Darwin. Rather than something like - libncurses.dylib.5.2, Darwin would name it libncurses. 5.dylib. - There are a few additional minor fixes, such as setting the library - version and compatibility version numbers (patch by Jason Evans - ). - + use 'sh' to run mkinstalldirs, to work around problems with buggy - versions of 'make' on OS/2 (report by John Polterak ). - + correct typo in manpage description of curs_set() (Debian #121548). - + replace the configure script existence-check for mkstemp() by one - that checks if the function works, needed for older glibc and - AmigaOS. - -20011201 - + modify script that generates fallbacks.c to compile a temporary - copy of the terminfo source in case the host does not contain all of - the entries requested for fallbacks (request by Greg Roelofs). - + modify configure script to accommodate systems such as Mac OS X whose - header defines a 'bool' type inconsistent with ncurses, - which normally makes 'bool' consistent with C++. Include - from curses.h to force consistent usage, define a new type - NCURSES_BOOL and related that to the exported 'bool' as either a - typedef or definition, according to whether is present - (based on a bug report for tin 1.5.9 by Aaron Adams ). - -20011124 - + added/updated terminfo entries for M$ telnet and KDE konsole -TD - -20011117 - + updated/expanded Apple_Terminal and Darwin PowerPC terminfo entries - (Benjamin C W Sittler). - + add putty terminfo entry -TD - + if configuring for wide-curses, define _XOPEN_SOURCE_EXTENDED, since - this may not otherwise be defined to make test/view.c compile. - -20011110 - + review/correct several missing/generated items in curses.wide, sorted - the lists to make subsequent diff's easier to track. - -20011103 - + add manual pages for add_wch(), echo_wchar(), getcchar(), - mvadd_wch(), mvwadd_wch(), setcchar(), wadd_wch() and wecho_wchar(). - + implement wecho_wchar() - + modify _tracedump() to handle wide-characters by mapping them to '?' - and control-characters to '.', to make the trace file readable. Also - dynamically allocate the buffer used by _tracedump() for formatting - the results. - + modify T_CALLED/T_RETURN macros to ease balancing call/return lines - in a trace by using curly braces. - + implement _nc_viscbuf(), for tracing cchar_t arrays. - + correct trace-calls in setcchar() and getcchar() functions, which - traced the return values but not the entry to each function. - + correct usage message in test/view.c, which still mentioned -u flag. - -20011027 - + modify configure script to allow building with termcap only, or with - fallbacks only. In this case, we do not build tic and toe. - + add configure --with-termpath option, to override default TERMPATH - value of /etc/termcap:/usr/share/misc/termcap. - + cosmetic change to tack: make menu descriptions agree with menu - titles. - -20011020 - + rewrote limit-checks in wscrl() and associated _nc_scroll_window(), - to ensure that if the parameter of wscrl() is larger than the size of - the scrolling region, then the scrolling region will be cleared - (report by Ben Kohlen ). - + add trace/varargs.c, using this to trace parameters in lib_printw.c - + implement _tracecchar_t2() and _tracecchar_t(). - + split-out trace/visbuf.c - + correct typo in lib_printw.c changes from 20010922 (report by Mike - Castle). - -20011013 - + modify run_tic.sh to check if the build is a cross-compile. In that - case, do not use the build's tic to install the terminfo database - (report by Rafael Rodriguez Velilla ). - + modify mouse click resolution so that mouseinterval(-1) will disable - it, e.g., to handle touchscreens via a slow connection (request by - Byron Stanoszek ). - + correct mouseinterval() default value shown in curs_mouse.3x - + remove conflicting definition of mouse_trafo() (reported by Lars - Hecking, using gcc 2.95.3). - -20011001 - + simpler fix for signal_name(), to replace the one overlooked in - 20010929 (reported by Larry Virden). - -20010929 - + add -i option to view.c, to test ncurses' check for non-default - signal handler for SIGINT, etc. - + add cases for shared-libraries on Darwin/OS X (patch by Rob Braun - ). - + modify tset to restore original I/O modes if an error is encountered. - Also modify to use buffered stderr consistently rather than mixing - with write(). - + change signal_name() function to use if-then-else rather than case - statement, since signal-values aren't really integers (reported by - Larry Virden). - + add limit checks in wredrawln(), fixing a problem where lynx was - repainting a pad which was much larger than the screen. - -20010922 - + fix: PutRange() was counting the second part of a wide character as - part of a run, resulting in a cursor position that was one too far - (patch by Sven Verdoolaege). - + modify resizeterm() to not queue a KEY_RESIZE if there was no - SIGWINCH, thereby separating the two styles of SIGWINCH handling - in test/view.c - + simplified lib_tstp.c, modify it to use SA_RESTART flag for SIGWINCH. - + eliminate several static buffers in the terminfo compiler, using - allocated buffers. - + modify MKkeyname.awk so that keyname() does not store its result into - a static buffer that is overwritten by the next call. - + reorganize the output of infocmp -E and -e options to compile cleanly - with gcc -Wwrite-strings warnings. - + remove redefinition of chgat/wchgat/mvwchgat from curses.wide - -20010915 - + add label to test/view.c, showing the name of the last key or signal - that made the screen repaint, to make it clearer when a sigwinch - does this. - + use ExitProgram() consistently in the test-programs to make it - simpler to test leaks with dmalloc, etc. - + move hashtab static data out of hashmap.c into SCREEN struct. - + make NO_LEAK code compile with revised WINDOWLIST structs. - -20010908 - + modify tgetent() to check if exit_attribute_mode resets the alternate - character set, and if so, attempt to adjust the copy of the termcap - "me" string which it will return to eliminate that part. In - particular, 'screen' would lose track of line-drawing characters - (report by Frederic L W Meunier <0@pervalidus.net>, analysis by - Michael Schroeder). - -20010901 - + specify DOCTYPE in html manpages. - + add missing macros for several "generated" functions: attr_get(), - attr_off(), attr_on(), attr_set(), chgat(), mvchgat(), mvwchgat() and - mouse_trafo(). - + modify view.c to agree with non-experimental status of ncurses' - sigwinch handler: - + change the sense of the -r option, making it default to ncurses' - sigwinch handler. - + add a note explaining what functions are unsafe in a signal - handler. - + add a -c option, to set color display, for testing. - + unset $data variable in MKterminfo.sh script, to address potential - infinite loop if shell malfunction (report by Samuel Mikes - , for bash 2.05.0 on a Linux 2.0.36 system). - + change kbs in mach terminfo entries to ^? (Marcus Brinkmann - ). - + correct logic for COLORFGBG environment variable: if rxvt is compiled - with xpm support, the variable has three fields, making it slightly - incompatible with itself. In either case, the background color is - the last field. - -20010825 - + move calls to def_shell_mode() and def_prog_mode() before loop with - callbacks in lib_set_term.c, since the c++ demo otherwise initialized - the tty modes before saving them (patch by John David Anglin - ). - + duplicate logic used to initialize trace in newterm(), in initscr() - to avoid confusing trace of initscr(). - + simplify allocation of WINDOW and WINDOWLIST structs by making the - first a part of the second rather than storing a pointer. This saves - a call to malloc for each window (discussion with Philippe Blain). - + remove unused variable 'used_ncv' from lib_vidattr.c (Philippe - Blain). - + modify c++/Makefile.in to accommodate archive programs that are - different for C++ than for C, and add cases for vendor's C++ - compilers on Solaris and IRIX (report by Albert Chin-A-Young). - + correct manpage description of criteria for deciding if the terminal - supports xterm mouse controls. - + add several configure script options to aid with cross-compiling: - --with-build-cc, --with-build-cflags, --with-build-ldflags, and - --with-build-libs (request by Greg Roelofs). - + change criteria for deciding if configure is cross-compiling from - host/build mismatch to host/target mismatch (request by Greg Roelofs - ). - + correct logic for infocmp -e and -E options which writes the data for - the ext_Names[] array. This is needed if one constructs a fallback - table for a terminfo entry which uses extended termcap names, e.g., - AX in a color xterm. - + fix undefined NCURSES_PATHSEP when configure --disable-database - option is given. - -20010811 - + fix for VALID_BOOLEAN() macro when char is not signed. - + modify 'clean' rule for C++ binding to work with Sun compiler, which - caches additional information in a subdirectory of the objects. - + added llib-ncursesw. - -20010804 - + add Caps.keys example for experimental extended function keys - (adapted from a patch by Ilya Zakharevich). - + correct parameter types of vidputs() and vidattr() to agree with - header files (report by William P Setzer). - + fix typos in several man-pages (patch by William P Setzer). - + remove unneeded ifdef for __GNUG__ in CF_CPP_VSCAN_FUNC configure - macro, which made ncurses C++ binding fail to build with other - C++ compilers such as HPUX 11.x (report by Albert Chin-A-Young). - + workaround for bug in HPUX 11.x C compiler: add a blank after - NCURSES_EXPORT macro in form.h (report by Albert Chin-A-Young) - + ignore blank lines in Caps* files in MKkey_defs.sh script (report by - Albert Chin-A-Young). - + correct definition of key_end in Caps.aix4, which left KEY_END - undefined (report by Albert Chin-A-Young). - + remove a QNX-specific fallback prototype for vsscanf(), which is - obsolete with QNX RTP. - + review/fix some of the T() and TR() macro calls, having noticed that - there was no data for delwin() in a trace of dialog because there was - no returnVoid call for wtimeout(). Also, traces in lib_twait.c are - now selected under TRACE_IEVENT rather than TRACE_CALLS. - -20010728 - + add a _nc_access() check before opening files listed via $TERMPATH. - + using modified man2html, regenerate some of the html manpages to fix - broken HREF's where the link was hyphenated. - -20010721 - + add some limit/pointer checks to -S option of tputs. - + updated/expanded Apple_Terminal and Darwin PowerPC terminfo entries - (Benjamin C W Sittler). - + add a note in curs_termcap.3x regarding a defect in the XSI - description of tgetent (based on a discussion with Urs Jansen - regarding the HPUX 11.x implementation, whose termcap interface is - not compatible with existing termcap programs). - + modify manhtml rule in dist.mk to preserve copyright notice on the - generated files, as well as to address HTML style issues reported by - tidy and weblint. Regenerated/updated corresponding html files. - + comment out use of Protected_Character and related rarely used - attributes in ncurses Ada95 test/demo to compile with wide-character - configuration. - -20010714 - + implement a simple example in C++ demo to test scanw(). - + corrected stdio function used to implement scanw() in cursesw.cc - + correct definition of RemAttr() macro from 20010602 changes, which - caused C++ SillyDemo to not show line-drawing characters. - + modify C++ binding, adding getKey() which can be overridden by user - to substitute functions other than getch() for keyboard processing - of forms and menus (patch by Juergen Pfeifer). - -20010707 - + fix some of the trace calls which needed modification to work with - new wide-character structures. - + modify magic-cookie code in tty_update.c to compile with new - wide-character structures (report by ). - + ensure that _XOPEN_SOURCE_EXTENDED is defined in curses.priv.h if - compiling for wide-character configuration. - + make addwnstr() handle non-spacing characters (patch by Sven - Verdoolaege). - -20010630 - + add configure check to define _GNU_SOURCE, needed to prop up glibc - header files. - + split-out include/curses.wide to solve spurious redefinitions caused - by defining _GNU_SOURCE, and move includes for before - to work around misdefinition of ERR in glibc 2.1.3 header - file. - + extended ospeed change to NetBSD and OpenBSD -TD - + modify logic in lib_baudrate.c for ospeed, for FreeBSD to make it - work properly for termcap applications (patch by Andrey A Chernov). - -20010623 - + correct an overlooked CharOf/UChar instance (reports by Eugene Lee - , Sven Verdoolaege). - + correct unneeded ifdef for wunctrl() (reported by Sven Verdoolaege) - -20010618 - + change overlooked several CharOf/UChar instances. - > several patches from Sven Verdoolaege: - + correct a typo in wunctrl(), which made it appear that botwc() was - needed (no such function: use btowc()). - + reimplement wide-character demo in test/view.c, using new functions. - + implement getcchar(), setcchar(), wadd_wchnstr() and related macros. - + fix a syntax problem with do/if/while in PUTC macro (curses.priv.h). - -20010616 - + add parentheses in macros for malloc in test.priv.h, fixes an - expression in view.c (report by Wolfgang Gutjahr ). - + add Caps.uwin, as an example. - + change the way curses.h is generated, making the list of function - key definitions extracted from the Caps file. - + add #undef's before possible redefinition of ERR and OK in curses.h - + modify logic in tic, toe, tput and tset which checks for basename of - argv[0] to work properly on systems such as OS/2 which have - case-independent filenames and/or program suffixes, e.g., ".ext". - -20010609 - + add a configure check, if --enable-widec is specified, for putwc(), - which may be in libutf8. - + remove some unnecessary text from curs_extend.3x and - default_colors.3x which caused man-db to make incorrect symbolic - links (Debian bug report #99550). - + add configure check if cast for _IO_va_list is needed to compile - C++ vscan code (Debian bug report #97945). - > several patches from Sven Verdoolaege: - + correct code that used non-standard auto-initialization of a struct, - which gcc allows (report by Larry Virden). - + use putwc() in PUTC() macro. - + make addstr() work for the special case where the codeset is - non-stateful (eg. UTF-8), as well as stateful codesets. - -20010603 - + correct loop expression in NEXT_CHAR macro for lib_addstr.c changes - from 20010602 (report by Mike Castle). - -20010602 - + modify mvcur() to avoid emitting newline characters when nonl() mode - is set. Normally this is not a problem since the actual terminal - mode is set to suppress nl/crlf translations, however it is useful to - allow the caller to manipulate the terminal mode to avoid staircasing - effects after spawning a process which writes messages (for lynx - 2.8.4) -TD - > several patches from Sven Verdoolaege : - + remove redundant type-conversion in fifo_push() - + correct definition of addwstr() macro in curses.h.in - + remove _nc_utf8_outch() - + rename most existing uses of CharOf() to UChar(), e.g., where it is - used to prevent sign-extension in ctype macros. - + change some chtype's to attr_t's where the corresponding variables - are used to manipulate attributes. - + UpdateAttr() was applied to both attributes (attr_t) and characters - (chtype). Modify macro and calls to it to make these distinct. - + add CharEq() macro, use in places where wide-character configuration - implementation uses a struct for cchar_t. - + moved struct ldat into curses.priv.h, to hide implementation details. - + change CharOf() macro to use it for masking A_CHARTEXT data from - chtype's. - + add L() macro to curses.priv.h, for long-character literals. - + replace several assignments from struct ldat entries to chtype or - char values with combinations of CharOf() and AttrOf() macros. - + add/use intermediate ChAttrOf() and ChCharOf() macros where we know - we are using chtype data. - + add/use lowlevel attribute manipulation macros AddAttr(), RemAttr() - and SetAttr(). - + add/use SetChar() macro, to change a cchar_t based on a character and - attributes. - + convert most internal use of chtype to NCURSES_CH_T, to simplify use - of cchar_t for wide-character configuration. Similarly, use ARG_CH_T - where a pointer would be more useful. - + add stubs for tracing cchar_t values. - + add/use macro ISBLANK() - + add/use constructors for cchar_t's: NewChar(), NewChar2(). - + add/use macros CHREF(), CHDEREF(), AttrOfD(), CharOfD() to facilitate - passing cchar_t's by address. - + add/use PUTC_DATA, PUTC() macros. - + for wide-character configuration, move the window background data to - the end of the WINDOW struct so that whether _XOPEN_SOURCE_EXTENDED - is defined or not, the offsets in the struct will not change. - + modify addch() to work with wide-characters. - + mark several wide-character functions as generated in curses.h.in - + implement wunctrl(), wadd_wch(), wbkgrndset(), wbkgrnd(), - wborder_set() and waddnwstr(). - -20010526 - + add experimental --with-caps=XXX option to customize to similar - terminfo database formats such as AIX 4.x - + add Caps.aix4 as an example. - + modify Caps to add columns for the the KEY_xxx symbols. - + modify configure --with-widec to suppress overwrite of libcurses.so - and curses.h - + add checks to toe.c to avoid being confused by files and directories - where we would expect the reverse, e.g., source-files in the - top-level terminfo levels as is the case for AIX. - -20010519 - + add top-level 'depend' rule for the C sources, assuming that the - makedepend program is available. As a side-effect, this makes - the generated sources, as in "make sources" (prompted by a report - by Mike Castle that "make -j" fails because the resulting parallel - processes race to generate ncurses/names.c). - + modify configure script so that --disable-overwrite option's action - to add a symbolic link for libcurses applies to the static library as - well as the shared library when both are configured (report by Felix - Natter ). - + add ELKS terminfo entries (Federico Bianchi - ) - + add u6 (CSR) to Eterm (Michael Jennings). - -20010512 - + modify test/ncurses.c to work with xterm-256color, which has fewer - color pairs than colors*colors (report by David Ellement - ). - -20010505 - + corrected screen.xterm-xfree86 entry. - + update comment in Caps regarding IBM (AIX) function-key definitions. - -20010421 - + modify c++/Makefile.in to link with libncurses++w.a when configured - for wide-characters (patch by Sven Verdoolaege). - + add check in _nc_trace_buf() to refrain from freeing a null pointer. - + improve CF_PROG_INSTALL macro using CF_DIRNAME. - + update config.guess, config.sub from autoconf 2.49e (alpha). - -20010414 - + add secondary check in tic.c, similar_sgr() to see if the reason - for mismatch was that the individual capabilities used a time-delay - while sgr did not. Used this to cleanup mismatches, e.g., in vt100, - and remove time-delay from Apple_Terminal entries. - + add Apple_Terminal terminfo entries (Benjamin C W Sittler - ). - + correct definitions of shifted editing keys for xterm-xfree86 -TD - + fix a bug in test/bs.c from 20010407 (patch by Erik Sigra). - + prevent relative_move() from doing an overwrite if it detects 8-bit - characters when configured for UTF-8 (reported by Sven Verdoolaege - ). - -20010407 - + add configure checks for strstream.h vscan function, and similar - stdio-based function which may be used in C++ binding for gcc 3.0 - (reports by George Goffe, Lars Hecking, Mike Castle). - + rewrite parts of configure.in which used changequote(). That feature - is broken in the latest autoconf alphas (e.g., 2.49d). - + add a missing pathname for ncurses_dll.h, needed when building in - a directory outside the source tree (patch by Sven Verdoolaege - ). - > fix 2 bugs in test/bs.c (patch by Erik Sigra ): - + no ships were ever placed in the last row or in the last column. - This made the game very easy to win, because you never had to waste - any shots there, but the computer did. - + the squares around a sunken ship that belonged to the player were not - displayed as already hit by the computer, like it does for the - player. - -20010331 - + add some examples of customizing screen's terminfo: - screen.xterm-xfree86, screen.xterm-r6, screen.teraterm -TD - + modify screen's terminfo entry to match the khome/kend in screen - 3.09.08 (Debian bug report #92215). - + correct a memory leak in forms library (report by Stefan Vogtner - , patch by Juergen Pfeifer). - -20010324 - + change symbols used to guard against repeated includes to begin - consistently with "NCURSES_" rather than a leading underscore. There - are other symbols defined in the header files which begin with a - leading underscore, but they are part of the legacy interface. - + reorder includes in c++ binding so that rcs identifiers can be - compiled-in. - + add .cc.ii rule to c++ makefile, to get preprocessor output for - debugging. - + correct configure script handling of @keyword@ substitutions when the - --with-manpage-renames option is given (cf: 20000715, fixes Debian - bug #89939). - + report stack underflow/overflow in tparm() when tic -cv option is - given. - + remove spurious "%|" operator from xterm-xfree86 terminfo entry, - (reported by Adam Costello , Debian bug #89222). - -20010310 - + cleanup of newdemo.c, fixing some ambiguous expressions noted by gcc - 2.95.2, and correcting some conflicting color pair initializations. - + add missing copyright notice for cursesw.h - + review, make minor fixes for use of '::' for referring to C-language - interface from C++ binding. - + modify configure check for g++ library slightly to accommodate - nonstandard version number, e.g., -2.7 (report by Ronald Ho - ). - + add configure check for c++ header, replace hardcoded - ifdef. - + workaround for pre-release of gcc 3.0 libstdc++, which has dropped - vscan from strstreambuf to follow standard, use wrapper for C vscanf - instead (report by George Goffe and Matt Taggart - , fixes Debian . - -20010303 - + modify interface of _nc_get_token() to pass 'silent' parameter to it, - to make quieter loading of /etc/termcap (patch by Todd C Miller). - + correct a few typos in curs_slk.3x and curs_outopts.3x manpages - (patch by Todd C Miller). - -20010224 - + compiler-warning fixes (reported by Nelson Beebe). - -20010210 - + modify screen terminfo entry to use new 3.9.8 feature allowing xterm - mouse controls -TD - -20010203 - + broaden patterns used to match OS/2 EMX in configure script to cover - variant used in newer config.guess/config.sub - + remove changequote() calls from configure script, since this feature - is broken in the autoconf 2.49c alpha, maintainers decline to fix. - + remove macro callPutChar() from tty_update.c, since this is no longer - needed (reported by Philippe Blain). - + add a null-pointer check in tic.c to handle the case when the input - file is really empty. Modify the next_char() function in comp_scan.c - to allow arbitrarily long lines, and incidentally supply a newline to - files that do not end in a newline. These changes improve tic's - recovery from attempts to read binary files, e.g., its output from - the terminfo database (reported by Bernhard Rosenkraenzer). - -20010127 - + revert change to c++/demo.cc from 20001209, which changed definition - of main() apparently to accommodate cygwin linker, but broke the demo - program. - + workaround for broken egcs 2.91.66 which calls member functions - (i.e., lines() and colors() of NCursesWindow before calling its - constructor. Add calls to initialize() in a few constructors which - did not do this already. - + use the GNAT preprocessor to make the necessary switch between TRACE - and NO_TRACE configurations (patch by Juergen Pfeifer). - > patches by Bernhard Rosenkraenzer: - + modify kterm terminfo entry to use SCS sequence to support alternate - character set (it does not work with SI/SO). - + --with-ospeed=something didn't work. configure.in checked for a - $enableval where it should check for $withval. Also, - ncurses/llib-lncurses still had a hardcoded short. - -20010114 - + correction to my merge of Tom Riddle's patch that broke tic in some - conditions (reported by Enoch Wexler ) -TD - -20010113 - + modify view.c to test halfdelay(). Like other tests, this recognizes - the 's' and space commands for stopping/starting polled input, shows - a freerunning clock in the header. If given a parameter to 's', that - makes view.c use halfdelay() with that parameter rather than - nodelay(). - + fix to allow compile with the experimental configure option - --disable-hashmap. - + modify postprocess_termcap() to avoid overwriting key_backspace, - key_left, key_down when processing a non-base entry (report/patch by - Tom Riddle). - + modify _nc_wrap_entry(), adding option to reallocate the string - table, needed in _nc_merge_entry() when merging termcap entries. - (adapted from report/patch by Tom Riddle ). - + modify a few configure script macros to keep $CFLAGS used only for - compiler options, preprocessor options in $CPPFLAGS. - -20001230 - + correct marker positions in lrtest.c after receiving a sigwinch. - + fix ifdef's in ncurses.c to build against pre-5.2 for testing. - + fixes to tclock for resizing behavior, redundant computation (report - and patch by A M Kuchling ). - -20001216 - + improved scoansi terminfo entry -TD - + modify configure script and makefile in Ada95/src to compile a stub - for the trace functions when ncurses does not provide those. - -20001209 - + add ncurses_dll.h and related definitions to support generating DLL's - with cygwin (adapted from a patch by Charles Wilson - , changed NCURSES_EXPORT macro to make it - work with 'indent'). - -20001202 - + correct prototypes for some functions in curs_termcap.3x, matching - termcap.h, which matches X/Open. - > patch by Juergen Pfeifer: - + a revised version of the Ada enhancements sent in by "H. - Nanosecond", aka Eugene V Melaragno . This - patch includes - - small fixes to the existing ncurses binding - - addition of some more low-level functions to the binding, including - termcap and terminfo functions - - An Ada implementation of the "ncurses" test application originally - written in C. - -20001125 - + modify logic in lib_setup.c to allow either lines or columns value - from terminfo to be used if the screen size cannot be determined - dynamically rather than requiring both (patch by Ehud Karni - ). - + add check in lib_tgoto.c's is_termcap() function to reject null or - empty strings (reported by Valentin Nechayev to - freebsd-bugs). - + add definition from configure script that denotes the path-separator, - which is normally a colon. The path-separator is a semicolon on - OS/2 EMX and similar systems which may use a colon within pathnames. - + alter logic to set default for --disable-overwrite option to set it - to 'yes' if the --prefix/$prefix value is not /usr/local, thereby - accommodating the most common cause of problems: gcc's nonstandard - search rules. Other locations such as /usr/local/ncurses will - default to overwriting (report by Lars Hecking ). - -20001118 - + modify default for --disable-overwrite configure option to disable - if the --prefix or $prefix value is not /usr. - + add cygwin to systems for which ncurses is installed by default into - /usr rather than /usr/local. - -20001111 - + minor optimization in comp_error.c and lib_termname.c, using - strncat() to replace strncpy() (patch by Solar Designer). - + add a use_terminfo_vars() check for $HOME/.termcap, and check for - geteuid() to use_terminfo_vars() (patch by Solar Designer - ). - + improved cygwin terminfo entry, based on patch by - . - + modify _nc_write_entry() to allow for the possibility that linking - aliases on a filesystem that ignores case would not succeed because - the source and destination differ only by case, e.g., NCR260VT300WPP0 - on cygwin (report by Neil Zanella). - + fix a typo in the curs_deleteln.3x man page (patch by Bernhard - Rosenkraenzer ). - -20001104 - + add configure option --with-ospeed to assist packagers in transition - to 5.3 change to ospeed type. - + add/use CharOf() macro to suppress sign-extension of char type on - platforms where this is a problem in ctype macros, e.g., Solaris. - + change trace output to binary format. - + correct a missing quote adjustment in CF_PATH_SYNTAX autoconf - macro, for OS/2 EMX configuration. - + rearrange a few configure macros, moving preprocessor options to - $CPPFLAGS (a now-obsolete version of autoconf did not consistently - use $CPPFLAGS in both the compile and preprocessor checks). - + add a check in relative_move() to guard against buffer overflow in - the overwrite logic. - -20001028 - + add message to configure script showing g++ version. - + resync config.guess, config.sub - + modify lib_delwin.c, making it return ERR if the window did not exist - (suggested by Neil Zanella). - + add cases for FreeBSD 3.1 to tdlint and makellib scripts, used this - to test/review ncurses library. (Would use lclint, but it doesn't - work). - + reorganized knight.c to avoid forward references. Correct screen - updates when backtracking, especially to the first cell. Add F/B/a - commands. - -20001021 5.2 release for upload to ftp.gnu.org - + update generated html files from manpages. - + modify dist.mk to use edit_man.sh to substitute autoconf'd variables - in html manpages. - + fix an uninitialized pointer in read_termcap.c (report by Todd C - Miller, from report/patch by Philip Guenther ). - + correct help-message and array limit in knight.c (patch by Brian - Raiter ). - > patch by Juergen Pfeifer: - + fix to avoid warning by GNAT-3.13p about use of inconsistent casing - for some identifiers defined in the standard package. - + cosmetic change to forms/fty_enum.c - -20001014 - + correct an off-by-one position in test/railroad.c which could cause - wrapping at the right margin. - + test/repair some issues with libtool configuration. Make - --disable-echo force libtool --silent. (Libtool does not work for - OS/2 EMX, works partly for SCO - libtool is still very specific to - gcc). - + change default of --with-manpage-tbl to "no", since for most of the - platforms which do have tbl installed, the system "man" program - understands how to run tbl automatically. - + minor improvement to force_bar() in comp_parse.c (Bernhard - Rosenkraenzer ). - + modify lib_tparm.c to use get_space() before writing terminating - null character, both for consistency as well as to ensure that if - save_char() was called immediately before, that the allocated memory - is enough (patch by Sergei Ivanov). - + add note about termcap ML capability which is duplicated between two - different capabilities: smgl and smglr (reported by Sergei Ivanov - ). - + correct parameter counts in include/Caps for dclk as well as some - printer-specific capabilities: csnm, defc, scs, scsd, smgtp, smglp. - > patch by Johnny C Lam : - + add support for building with libtool (apparently version 1.3.5, - since old versions do not handle -L../lib), using new configure - option --with-libtool. - + add configure option --with-manpage-tbl, which causes the manpages to - be preprocessed by tbl(1) prior to installation, - + add configure option --without-curses-h, which causes the - installation process to install curses.h as ncurses.h and make - appropriate changes to headers and manpages. - -20001009 - + correct order of options/parameters in run_tic.in invocation of tic, - which did not work with standard getopt() (reported by Ethan - Butterfield ). - + correct logic for 'reverse' variable in lib_vidattr.c, which was - setting it true without checking if newmode had A_REVERSE set, e.g., - using $TERM=ansi on OS/2 EMX (see 20000917). - > patch by Todd Miller: - + add a few missing use_terminfo_vars() and fixes up _nc_tgetent(). - Previously, _nc_cgetset() would still get called on cp so the - simplest thing is to set cp to NULL if !use_terminfo_vars(). - + added checks for an empty $HOME environment variable. - > patches by Ilya Zakharevich for OS/2 EMX: - + modify convert_configure.pl to support INSTALL. Change compiler - options in that script to use multithreading, needed for the mouse. - + modify OS/2 mouse support, retrying as a 2-button mouse if code fails - to set up a 3-button mouse. - + improve code for OS/2 mouse support, using _nc_timed_wait() to - replace select() call. - -20001007 - + change type of ospeed variable back to short to match its use in - legacy applications (reported by Andrey A Chernov). - + add case to configure script for --enable-rpath on IRIX (patch by - Albert Chin-A-Young). - + minor fix to position_check() function, to ensure it gets the whole - cursor report before decoding. - + add configure option --disable-assumed-color, to allow pre-5.1 - convention of default colors used for color-pair 0 to be configured - (see assume_default_colors()). - + rename configure option --enable-hashmap --disable-hashmap, and - reorder the configure options, splitting the experimental and - development - + add configure option --disable-root-environ, which tells ncurses to - disregard $TERMINFO and similar environment variables if the current - user is root, or running setuid/setgid (based on discussion with - several people). - + modified misc/run_tic.in to use tic -o, to eliminate dependency on - $TERMINFO variable for installs. - + add table entry for plab_norm to tput, so it passes in strings - for that capability. - + modify parse_format() in lib_tparm.c to ignore precision if it is - longer than 10000 (report by Jouko Pynnonen). - + rewrote limit checks in lib_mvcur.c using new functions - _nc_safe_strcat(), etc. Made other related changes to check lengths - used for strcat/strcpy (report by Jouko Pynnonen - ). - -20000930 - + modify several descriptions, including those for setaf, setab, in - include/Caps to indicate that the entries are parameterized. This - information is used to tell which strings are translated when - converting to termcap. Fixes a problem where the generated termcap - would contain a spurious "%p1" for the terminfo "%p1%d". - + modify ld -rpath options (e.g., Linux, and Solaris) to use an - absolute pathname for the build tree's lib directory (prompted by - discussion with Albert Chin-A-Young). - + modify "make install.man" and "make uninstall.man" to include tack's - man-page. - + various fixes for install scripts used to support configure --srcdir - and --with-install-prefix (reported by Matthew Clarke - ). - + make configure script checks on variables $GCC and $GXX consistently - compare against 'yes' rather than test if they are nonnull, since - either may be set to the corresponding name of the C or C++ compiler - (report/patch by Albert Chin-A-Young). - -20000923 - + modify rs2 capability in xterm-r6 and similar where cursor - save/restore bracketed the sequence for resetting video attributes. - The cursor restore would undo that (from a NetBSD bug report by John - Hawkinson ). - + using parameter check added to tic, corrected 27 typos in - terminfo.src -TD - + modify tic to verify that its inputs are really files, in case - someone tries to read a directory (or /dev/zero). - + add a check for empty buffers returned by fgets() in comp_scan.c - next_char() function, in case tic is run on a non-text file (fixes - a core dump reported by Aaron Campbell ). - + add to railroad.c some code exercising tgoto(), providing an - alternate form of display if the terminal supports cursor addressing. - + split-out tgoto() again, this time into new file lib_tgoto.c, and - implement a conventional BSD-style tgoto() which is used if the - capability string does not contain terminfo-style padding or - parameters (requested by Andrey A Chernov). - + add check to tic which reports capabilities that do not reference - the expected number of parameters. - + add error checking to infocmp's -v and -m options to ensure that - the option value is indeed a number. - + some cleanup of logic in _nc_signal_handler() to verify if SIGWINCH - handler is setup. Separated the old/new sigaction data for SIGTSTP - from the other signals. - -20000917 - + add S0, E0 extensions to screen's terminfo entry, which is another - way to solve the misconfiguration issue -TD - + completed special case for tgoto from 20000916 - -20000916 - + update xterm terminfo entries to match XFree86 xterm patch #146 -TD - + add Matrix Orbital terminfo entries (from Eric Z Ayers - ). - + add special case to lib_tparm.c to allow 'screen' program to use a - termcap-style parameter "%." to tgoto() for switching character sets. - + use LN_S substitution in run_tic.in, to work on OS/2 EMX which has - no symbolic links. - + updated notes in README.emx regarding autoconf patches. - + replace a lookup table in lib_vidattr.c used to decode no_color_video - with a logic expression (suggested by Philippe Blain). - + add a/A toggle to ncurses.c 'b' test, which clears/sets alternate - character set attribute from the displayed text. - + correct inequality in parameter analysis of rewritten lib_tparm.c - which had the effect of ignoring p9 in set_attributes (sgr), breaking - alternate character set (reported by Piotr Majka ). - + correct ifdef'ing for GCC_PRINTF, GCC_SCANF which would not compile - with Sun WorkShop compilers since these tokens were empty (cf: - 20000902, reported by Albert Chin-A-Young). - -20000909 - + correct an uninitialized parameter to open_tempfile() in tic.c which - made "tic -I" give an ambiguous error message about tmpnam. - + add special case in lib_vidattr.c to reset underline and standout for - devices that have no sgr0 defined (patch by Don Lewis - ). Note that this will not work for bold - mode, since there is no exit-bold-mode capability. - + improved patch for Make_Enum_Type (patch by Juergen Pfeifer). - + modify tparm to disallow arithmetic on strings, analyze the varargs - list to read strings as strings and numbers as numbers. - + modify tparm's internal function spop() to treat a null pointer as - an empty string. - + modify tput program so it can be renamed or invoked via a link as - 'reset' or 'init', producing the same effect as 'tput reset' or 'tput - init'. - + add private entrypoint _nc_basename(), use to consolidate related - code in progs, as well as accommodating OS/2 EMX pathnames. - + remove NCURSES_CONST line from edit_cfg.sh to compensate for its - removal (except via AC_SUBST) from configure.in, making - --enable-const work again (reported by Juergen Pfeifer). - + regen'd configure to pick up "hpux*" change from 20000902. - -20000902 - + modify tset.c to check for transformed "reset" program name, if any. - + add a check for null pointer in Make_Enum_Type() (reported by Steven - W Orr ). - + change functions _nc_parse_entry() and postprocess_termcap() to avoid - using strtok(), because it is non-reentrant (reported by Andrey A - Chernov ). - + remove "hpux10.*" case from CF_SHARED_OPTS configure script macro. - This differed from the "hpux*" case by using reversed symbolic - links, which made the 5.1 version not match the configuration of - 5.0 shared libraries (reported by Albert Chin-A-Young). - + correct a dependency in Ada95/src/Makefile.in which prevented - building with configure --srcdir (patch by H Nanosecond - ). - + modify ifdef's in curses.h.in to avoid warning if GCC_PRINTF or - GCC_SCANF was not previously defined (reported by Pavel Roskin - ). - + add MKncurses_def.sh to generate fallback definitions for - ncurses_cfg.h, to quiet gcc -Wundef warnings, modified ifdef's in - code to consistently use "#if" rather than "#ifdef". - -20000826 - + add QNX qansi entries to terminfo -TD - + add os2 entry to misc/emx.src (). - + add configure option --with-database to allow specifying a different - terminfo source-file to install. On OS/2 EMX, this defaults to - misc/emx.src - + change misc/run_tic.sh to derive it from misc/run_tic.in, to simplify - setting .exe extension on OS/2 EMX. - + add .exe extension in Ada95/gen/Makefile.in, - Ada95/samples/Makefile.in, for OS/2 EMX (reported by - ). - + add configure check for filesystems (such as OS/2 EMX) which do not - distinguish between upper/lowercase filenames, use this to fix tags - rules in makefiles. - + initialize fds[] array to 0's in _nc_timed_wait(); apparently poll() - only sets the revents members of that array when there is activity - corresponding to the related file (report by Glenn Cooper - , using Purify on Solaris 5.6). - + change configure script to use AC_CANONICAL_SYSTEM rather than - AC_CANONICAL_HOST, which means that configure --target will set - a default program-prefix. - + add note on cross-compiling to INSTALL (which does not rely on the - AC_CANONICAL_* macros). - -20000819 - + add cases for EMX OS/2 to config.guess, config.sub - + new version of config.guess, config.sub from lynx 2.8.4dev.7 - + add definitions via transform.h to allow tic and tput to check for - the transformed aliases rather than the original infotocap, etc. - + simplify transform-expressions in progs/Makefile.in, make the - uninstall rule work for transformed program names. - + change symbol used by --install-prefix configure option from - INSTALL_PREFIX to DESTDIR (the latter has become common usage - although the name is misleading). - + modify programs to use curses_version() string to report the version - of ncurses with which they are compiled rather than the - NCURSES_VERSION string. The function returns the patch level in - addition to the major and minor version numbers. - -20000812 - + modify CF_MAN_PAGES configure macro to make transformed program names - a parameter to that macro rather than embedding them in the macro. - + newer config.guess, config.sub (reference version used in lynx - 2.8.4dev.7). - + add configure option --with-default-terminfo-dir=DIR to allow - specifying the default terminfo database directory (request by Albert - Chin-A-Young). - + minor updates for terminfo.src from FreeBSD termcap change-history. - + correct notes in README and INSTALL regarding documentation files - that were moved from misc directory to doc (report by Rich Kulawiec - ). - + change most remaining unquoted parameters of 'test' in configure - script to use quotes, for instance fixing a problem in the - --disable-database option (reported by Christian Mondrup - ). - + minor adjustments to work around some of the incompatibilities/bugs - in autoconf 2.29a alpha. - + add -I/usr/local/include when --with-ncurses option is used in - test/configure script. - + correct logic in adjust_cancels(), which did not check both - alternatives when reclassifying an extended name between boolean, - number and string, causing an infinite loop in tic. - -20000730 - + correct a missing backslash in curses.priv.h - -20000729 - + change handling of non_dest_scroll_region in tty_update.c to clear - text after it is shifted in rather than before shifting out. Also - correct row computation (reported by Ruediger Kuhlmann - ). - + add/use new trace function to display chtype values from winch() and - getbkgd(). - + add trace mask TRACE_ATTRS, alter several existing _tracef calls that - trace attribute changes under TRACE_CALLS to use this. - + modify MKlib_gen.sh so that functions returning chtype will call - returnChar(). - + add returnChar() trace, for functions returning chtype. - + change indent.pro to line up parenthesis. - -20000722 - + fix a heap problem with the c++ binding (report by - , patch by Juergen Pfeifer). - + minor adjustment to ClrToEOL() to handle an out-of-bounds parameter. - + modify the check for big-core to force a couple of memory accesses, - which may work as needed for older/less-capable machines (if not, - there's still the explicit configure option). - > fixes based on diff's for Amiga and BeOS found at - http://www.mathematik.uni-karlsruhe.de/~kuhlmann/cross/ncurses/ - + alter definition of NCURSES_CONST to make it non-empty. - + add amiga-vnc terminfo entry. - + redefine 'TEXT' in menu.h for AMIGA, since it is reported to have - an (unspecified) symbol conflict. - + replaced case-statement in _nc_tracebits() for CSIZE with a table to - simplify working around implementations that define random - combinations of the related macros to zero. - + modify configure test for tcgetattr() to allow for old - implementations, e.g., on BeOS, which only defined it as a macro. - > patches by Bruno Haible: - + when checking LC_ALL/LC_CTYPE/LANG environment variables for UTF-8 - locale, ignore those which are set to an empty value, as per SUSV2. - + encode 0xFFFD in UTF-8 with 3 bytes, not 2. - + modify _nc_utf8_outch() to avoid sign-extension when checking for - out-of-range value. - -20000715 - + correct manlinks.sed script to avoid using ERE "\+", which is not - understood by older versions of sed (patch by Albert Chin-A-Young). - + implement configure script options that transform installed program - names, e.g., --program-prefix, including the manpage names and cross - references (patch by Albert Chin-A-Young ). - + correct several mismatches between manpage filename and ".TH" - directives, renaming dft_fgbg.3x to default_colors.3x and - menu_attribs.3x to menu_attributes.3x (report by Todd C Miller). - + correct missing includes for in several places, including - the C++ binding. This is not noted by gcc unless we use the - -fno-builtin option (reported by Igor Schein ). - + modified progs/tset.c and tack/sysdep.c to build with sgttyb - interface if neither termio or termios is available. Tested this - with FreeBSD 2.1.5 (which does have termios - but the sgttyb does - work). - -20000708 5.1 release for upload to ftp.gnu.org - + document configure options in INSTALL. - + add man-page for ncurses trace functions. - + correct return value shown in curs_touch.3x for is_linetouched() and - is_wintouched(), in curs_initscr.3x for isendwin(), and in - curs_termattr.3x for has_ic() and has_il(). - + add prototypes for touchline() and touchwin(), adding them to the - list of generated functions. - + modify fifo_push() to put ERR into the fifo just like other values to - return from wgetch(). It was returning without doing that, making - end-of-file condition incorrectly return a 0 (reported by Todd C - Miller). - + uncomment CC_SHARED_OPTS for progs and tack (see 971115), since they - are needed for SCO OpenServer. - + move _nc_disable_period from free_ttype.c to comp_scan.c to appease - dynamic loaders on SCO and IRIX64. - + add "-a" option to test/ncurses.c to invoke assume_default_colors() - for testing. - + correct assignment in assume_default_colors() which tells ncurses - whether to use default colors, or the assumed ones (reported by Gary - Funck ). - + review/correct logic in mk-1st.awk for making symbolic links for - shared libraries, in particular for FreeBSD, etc. - + regenerate misc/*.def files for OS/2 EMX dll's. - + correct quoting of values for CC_SHARED_OPTS in aclocal.m4 for - cases openbsd2*, openbsd*, freebsd* and netbsd* (patch by Peter - Wemm) (err in 20000610). - + minor updates to release notes, as well as adding/updating URLs for - examples cited in announce.html - > several fixes from Philippe Blain : - + correct placement of ifdef for NCURSES_XNAMES in function - _nc_free_termtype(), fixes a memory leak. - + add a call to _nc_synchook() to the end of function whline() like - that in wvline() (difference was in 1.9.4). - + make ClearScreen() a little faster by moving two instances of - UpdateAttr() out of for-loops. - + simplify ClrBottom() by eliminating the tstLine data, using for-loops - (cf: 960428). - -20000701 pre-release - + change minor version to 1, i.e., ncurses 5.1 - + add experimental configure option --enable-colorfgbg to check for - $COLORTERM variable as set by rxvt/aterm/Eterm. - + add Eterm terminfo entry (Michael Jennings ). - + modify manlinks.sed to pick aliases from the SYNOPSIS section, and - several manpages so manlinks.sed can find aliases for creating - symbolic links. - + add explanation to run_tic.sh regarding extended terminal - capabilities. - + change message format for edit_cfg.sh, since some people interpret - it as a warning. - + correct unescaped '$' in sysv5uw7*|unix_sv* rule for CF_SHARED_OPTS - configure macro (report by Thanh Ma ). - + correct logic in lib_twait.c as used by lib_mouse.c for GPM mouse - support when poll() is used rather than select() (prompted by - discussion with David Allen ). - -20000624 pre-release - + modify TransformLine() to check for cells with different color pairs - that happen to render the same display colors. - + apply $NCURSES_NO_PADDING to cost-computation in mvcur(). - + improve cost computation in PutRange() by accounting for the use - of parm_right_cursor in mvcur(). - + correct cost computation in EmitRange(), which was not using the - normalized value for cursor_address. - + newer config.guess, config.sub (reference version used in TIN 1.5.6). - -20000617 - + update config.guess, config.sub (reference version used in PCRE 3.2). - + resync changes to gnathtml against version 1.22, regenerated html - files under doc/html/ada using this (1.22.1.1). - + regenerated html files under doc/html/man after correcting top and - bottom margin options for man2html in dist.mk - + minor fixes to test programs ncurses 'i' and testcurs program to make - the subwindow's background color cover the subwindow. - + modify configure script so AC_MSG_ERROR is temporarily defined to a - warning in AC_PROG_CXX to make it recover from a missing C++ compiler - without requiring user to add --without-cxx option (from comment by - Akim Demaille to autoconf mailing list). - + modify headers.sh to avoid creating temporary files in the build - directory when installing headers (reported by Sergei Pokrovsky - ) - -20000610 - + regenerated the html files under doc/html/ada/files and - doc/html/ada/funcs with a slightly-improved gnathtml. - + add kmous capability to linux terminfo entry to allow it to use - xterm-style events provided by gpm patch by Joerg Schoen. - + make the configure macro CF_SHARED_OPTS a little smarter by testing - if -fPIC is supported by gcc rather than -fpic. The former option - allows larger symbol tables. - + update config.guess and config.sub (patches by - Kevin Buettner for elf64_ia64 - Bernd Kuemmerlen and MacOS X). - + add warning for 'tic -cv' about use of '^?' in terminfo source, which - is an extension. - -20000527 - + modify echo() behavior of getch() to match Solaris curses for - carriage return and backspace (reported by Neil Zanella). - + change _nc_flush() to a function. - + modify delscreen() to check if the output stream has been closed, and - if so, free the buffer allocated for setbuf (this provides an - ncurses-specific way to avoid a memory leak when repeatedly calling - newterm reported by Chipp C ). - + correct typo in curs_getch.3x manpage regarding noecho (reported by - David Malone ). - + add a "make libs" rule. - + make the Ada95 interface build with configure --enable-widec. - + if the configure --enable-widec option is given, append 'w' to names - of the generated libraries (e.g., libncursesw.so) to avoid conflict - with existing ncurses libraries. - -20000520 - + modify view.c to make a rudimentary viewer of UTF-8 text if ncurses - is configured with the experimental wide-character support. - + add a simple UTF-8 output driver to the experimental wide-character - support. If any of the environment variables LC_ALL, LC_CTYPE or - LANG contain the string "UTF-8", this driver will be used to - translate the output to UTF-8. This works with XFree86 xterm. - + modify configure script to allow building shared libraries on BeOS - (from a patch by by Valeriy E Ushakov). - + modify lib_addch.c to allow repeated update to the lower-right - corner, rather than displaying only the first character written until - the cursor is moved. Recent versions of SVr4 curses can update the - lower-right corner, and behave this way (reported by Neil Zanella). - + add a limit-check in _nc_do_color(), to avoid using invalid color - pair value (from bug report by Brendan O'Dea ). - -20000513 - + the tack program knows how to use smcup and rmcup but the "show caps - that can be tested" feature did not reflect this knowledge. Correct - the display in the menu tack/test/edit/c (patch by Daniel Weaver). - + xterm-16color does allow bold+colors, removed ncv#32 from that - terminfo entry. - -20000506 - + correct assignment to SP->_has_sgr_39_49 in lib_dft_fgbg.c, which - broke check for screen's AX capability (reported by Valeriy E Ushakov - ). - + change man2html rule in dist.mk to workaround bug in some - man-programs that ignores locale when rendering hyphenation. - + change web- and ftp-site to dickey.his.com - -20000429 - + move _nc_curr_token from parse_entry.c to comp_scan.c, to work around - problem linking tack on MacOS X DP3. - + include in lib_napms.c to compile on MacOS X DP3 - (reported by Gerben Wierda ). - + modify lib_vidattr.c to check for ncv fixes when pair-0 is not - default colors. - + add -d option to ncurses.c, to turn on default-colors for testing. - + add a check to _nc_makenew() to ensure that newwin() and newpad() - calls do not silently fail by passing too-large limits. - + add symbol NCURSES_SIZE_T to use rather than explicit 'short' for - internal window and pad sizes. Note that since this is visible in - the WINDOW struct, it would be an ABI change to make this an 'int' - (prompted by a question by Bastian Trompetter - , who attempted to create a 96000-line pad). - -20000422 - + add mgterm terminfo entry from NetBSD, minor adjustments to sun-ss5, - aixterm entries -TD - + modify tack/ansi.c to make it more tolerant of bad ANSI replies. An - example of an illegal ANSI resonse can be found using Microsoft's - Telnet client. A correct display can be found using a VT-4xx - terminal or XFree86 xterm with: - XTerm*VT100*decTerminalID: 450 - (patch by Daniel Weaver). - + modify gdc.c to recognize 'q' for quit, 's' for single-step and ' ' - for resume. Add '-n' option to force gdc's standard input to - /dev/null, to both illustrate the use of newterm() for specifying - alternate inputs as well as for testing signal handling. - + minor fix for configure option --with-manpage-symlinks, for target - directories that contain a period ('.') (reported by Larry Virden). - -20000415 - + minor additions to beterm entry (feedback from Rico Tudor) -TD - + corrections/updates for some IBM terminfo entries -TD - + modify _nc_screen_wrap() so that when exiting curses mode with - non-default colors, the last line on the screen will be cleared to - the screen's default colors (request by Alexander Lukyanov). - + modify ncurses.c 'r' example to set nonl(), allowing control/M to be - read for demonstrating the REQ_NEW_LINE operation (prompted by a - question by Tony L Keith" ). - + modify ncurses.c 'r' example of field_info() to work on Solaris 2.7, - documented extension of ncurses which allows a zero pointer. - + modify fmt_complex() to avoid buffer overflow in case of excess - recursion, and to recognize "%e%?" as a synonym for else-if, which - means that it will not recur for that special case. - + add logic to support $TERMCAP variable in case the USE_GETCAP symbol - is defined (patch by Todd C Miller). - + modify one of the m4 files used to generate the Ada95 sources, - to avoid using the token "symbols" (patch by Juergen Pfeifer). - -20000408 - + add terminfo entries bsdos-pc-m, bsdos-pc-mono (Jeffrey C Honig) - + correct spelling error in terminfo entry name: bq300-rv was given as - bg300-rv in esr's version. - + modify redrawwin() macro so its parameter is fully parenthesized - (fixes Debian bug report #61088). - + correct formatting error in dump_entry() which set incorrect column - value when no newline trimming was needed at the end of an entry, - before appending "use=" clauses (cf: 960406). - -20000401 - + add configure option --with-manpage-symlinks - + change unctrl() to render C1 characters (128-159) as ~@, ~A, etc. - + change makefiles so trace() function is provided only if TRACE is - defined, e.g., in the debug library. Modify related calls to - _tracechar() to use unctrl() instead. - -20000325 - + add screen's AX capability (for ECMA SGR 39 and 49) to applicable - terminfo entries, use presence of this as a check for a small - improvement in setting default colors. - + improve logic in _nc_do_color() implementing assume_default_colors() - by passing in previous color pair info to eliminate redundant call to - set_original_colors(). (Part of this is from a patch by Alexander - Lukyanov). - + modify warning in _nc_trans_string() about a possibly too-long string - to do this once only rather than for each character past the - threshold (600). Change interface of _nc_trans_string() to allow - check for buffer overflow. - + correct use of memset in _nc_read_entry_source() to initialize ENTRY - struct each time before reading new data into it, rather than once - per loop (cf: 990301). This affects multi-entry in-core operations - such as "infocmp -Fa". - -20000319 - + remove a spurious pointer increment in _nc_infotocap() changes from - 20000311. Add check for '.' in format of number, since that also - is not permitted in termcap. - + correct typo in rxvt-basic terminfo from temporary change made while - integrating 20000318. - -20000318 - + revert part of the vt220 change (request by Todd C Miller). - + add ansi-* terminfo entries from Eric's version. - + add -a option to tic and infocmp, which retains commented-out - capabilities during source translation/comparison, e.g., captoinfo - and infotocap. - + modify cardfile.c to display an empty card if no input data file is - found, fixes a core dump in that case (reported by Bruno Haible). - + correct bracketing in CF_MATH_LIB configure macro, which gave wrong - result for OS/2 EMX. - + supply required parameter for _nc_resolve_uses() call in - read_termcap.c, overlooked in 20000311 (reported by Todd C Miller). - > patches by Bruno Haible : - + fix a compiler warning in fty_enum.c - + correct LIB_PREFIX expression for DEPS_CURSES in progs, tack - makefiles, which resulted in redundant linking (cf: 20000122). - -20000311 - + make ifdef's for BROKEN_LINKER consistent (patch by Todd C Miller). - + improved tack/README (patch by Daniel Weaver). - + modify tput.c to ensure that unspecified parameters are passed to - tparm() as 0's. - + add a few checks in infocmp to guard against buffer overflow when - displaying string capabilities. - + add check for zero-uses in infocmp's file_comparison() function - before calling _nc_align_termtype(). Otherwise one parameter is - indexed past the end of the uses-array. - + add an option -q to infocmp to specify the less verbose output, - keeping the existing format as the default, though not retaining the - previous behavior that made the -F option compare each entry to - itself. - + adapted patch by Eric Raymond to make infocmp -F less verbose - (the submitted patch was unusable because it did not compile - properly): - + modify write_entry.c to ensure that absent or cancelled booleans - are written as FALSE, for consistency with infocmp which now - assumes this. Note that for the small-core configuration, tic - may not produce the same result as before. - + change some private library interfaces used by infocmp, e.g., - _nc_resolve_uses(). - + add a check in _nc_infotocap() to ensure that cm-style capabilities - accept only %d codes when converting the format from terminfo to - termcap. - + modify ENTRY struct to separate the data in 'parent' into the name - and link values (the original idea to merge both into 'parent' was - not good). - + discard repair_acsc(tterm); - > patch by Juergen Pfeifer: - + drop support for gnat 3.10 - + move generated documentation and html files under ./doc directory, - adding makefile rules for this to dist.mk - -20000304 - + correct conflicting use of tparm() in 20000226 change to tic, which - made it check only one entry at a time. - + fix errors in ncurses-intro.html and hackguide.html shown by Dave - Raggett's tidy. - + make the example in ncurses-intro.html do something plausible, and - corrected misleading comment (reported by Neil Zanella). - + modify pnoutrefresh() to set newscr->_leaveok as wnoutrefresh() does, - to fix a case where the cursor position was not updated as in - Solaris (patch by David Mosberger ). - + add a limit-check for wresize() to ensure that a subwindow does not - address out of bounds. - + correct offsets used for subwindows in wresize() (patch by Michael - Andres ). - + regenerate html'ized manual pages with man2html 3.0.1 (patch by - Juergen Pfeifer). This generated a file with a space in its name, - which I removed. - + fix a few spelling errors in tack. - + modify tack/Makefile.in to match linker options of progs/Makefile.in; - otherwise it does not build properly for older HPUX shared library - configurations. - + add several terminfo entries from esr's "11.0". - -20000226 - + make 'tput flash' work properly for xterm by flushing output in - delay_output() when using napms(), and modifying xterm's terminfo to - specify no padding character. Otherwise, xterm's reported baud rate - can mislead ncurses into producing too few padding characters - (Debian #58530). - + add a check to tic for consistency between sgr and the separate - capabilities such as smso, use this to check/correct several - terminfo entries (Debian #58530). - + add a check to tic if cvvis is the same as cnorm, adjusted several - terminfo entries to remove the conflict (Debian #58530). - + correct prototype shown in attr_set()/wattr_set() manpages (fixes - Debian #53962). - + minor clarification for curs_set() and leaveok() manpages. - + use mkstemp() for creating temporary file for tic's processing of - $TERMCAP contents (fixes Debian #56465). - + correct two errors from integrating Alexander's changes: did not - handle the non-bce case properly in can_erase_with() (noted by - Alexander), and left fg/bg uninitialized in the pair-zero case of - _nc_do_color() (reported by Dr Werner Fink and - Ismael Cordeiro ). - -20000219 - + store default-color code consistently as C_MASK, even if given as - -1 for convenience (adapted from patches by Alexander Lukyanov). - > patches by Alexander Lukyanov: - + change can_clear_with() macro to accommodate logic for - assume_default_colors(), making most of the FILL_BCE logic - unnecessary. Made can_clear_with() an inline function to make it - simpler to read. - -20000212 - + corrected form of recent copyright dates. - + minor corrections to xterm-xf86-v333 terminfo entry -TD - > patches by Alexander Lukyanov: - + reworded dft_fgbg.3x to avoid assuming that the terminal's default - colors are white on black. - + fix initialization of tstLine so that it is filled with current blank - character in any case. Previously it was possible to have it filled - with old blank. The wrong over-optimization was introduced in 991002 - patch. (it is not very critical as the only bad effect is not using - clr_eos for clearing if blank has changed). - -20000205 - + minor corrections/updates to several terminfo entries: rxvt-basic, - vt520, vt525, ibm5151, xterm-xf86-v40 -TD - + modify ifdef's for poll() to allow it to use , thereby - allowing poll() to be used on Linux. - + add CF_FUNC_POLL macro to check if poll() is able to select from - standard input. If not we will not use it, preferring select() - (adapted from patch by Michael Pakovic ). - + update CF_SHARED_OPTS macro for SCO Unixware 7.1 to allow building - shared libraries (reported/tested by Thanh ). - + override $LANGUAGE in build to avoid incorrect ordering of keynames. - + correct CF_MATH_LIB parameter, must be sin(x), not sqrt(x). - -20000122 - + resync CF_CHECK_ERRNO and CF_LIB_PREFIX macros from tin and xterm. - + modify CF_MATH_LIB configure macro to parameterize the test function - used, for reuse in dialog and similar packages. - + correct tests for file-descriptors in OS/2 EMX mouse support. A - negative value could be used by FD_SET, causing the select() call - to wait indefinitely. - -20000115 - + additional fixes for non-bce terminals (handling of delete_character) - to work when assume_default_colors() is not specified. - + modify warning message from _nc_parse_entry() regarding extended - capability names to print only if tic/infocmp/toe have the -v flag - set, and not at all in ordinary user applications. Otherwise, this - warning would be shown for screen's extended capabilities in programs - that use the termcap interface (reported by Todd C Miller). - + modify use of _nc_tracing from programs such as tic so their debug - level is not in the same range as values set by trace() function. - + small panel header cleanup (patch by Juergen Pfeifer). - + add 'railroad' demo for termcap interface. - + modify 'tic' to write its usage message to stderr (patch by Todd C - Miller). - -20000108 - + add prototype for erase() to curses.h.in, needed to make test - programs build with c++/g++. - + add .c.i and .c.h suffix rules to generated makefiles, for debugging. - + correct install rule for tack.1; it assumed that file was in the - current directory (reported by Mike Castle ). - + modify terminfo/termcap translation to suppress acsc before trying - sgr if the entry would be too large (patch by Todd C Miller). - + document a special case of incompatiblity between ncurses 4.2 and - 5.0, add a section for this in INSTALL. - + add TRACE_DATABASE flag for trace(). - -20000101 - + update mach, add mach-color terminfo entries based on Debian diffs - for ncurses 5.0 -TD - + add entries for xterm-hp, xterm-vt220, xterm-vt52 and xterm-noapp - terminfo entries -TD - + change OTrs capabilities to rs2 in terminfo.src -TD - + add obsolete and extended capabilities to 'screen' terminfo -TD - + corrected conversion from terminfo rs2 to termcap rs (cf: 980704) - + make conversion to termcap ug (underline glitch) more consistently - applied. - + fix out-of-scope use of 'personal[]' buffer in 'toe' (this error - was in the original pre-1.9.7 version, when $HOME/.terminfo was - introduced). - + modify 'toe' to ignore terminfo directories to which it has no - permissions. - + modify read_termtype(), fixing 'toe', which could dump core when it - found an incomplete entry such as "dumb" because it did not - initialize its buffer for _nc_read_file_entry(). - + use -fPIC rather than -fpic for shared libraries on Linux, not - needed for i386 but some ports (from Debian diffs for 5.0). - + use explicit VALID_NUMERIC() checks in a few places that had been - overlooked, and add a check to ensure that init_tabs is nonzero, - to avoid divide-by-zero (reported by Todd C Miller). - + minor fix for CF_ANSI_CC_CHECK configure macro, for HPUX 10.x (from - tin). - -19991218 - + reorder tests during mouse initialization to allow for gpm to run in - xterm, or for xterm to be used under OS/2 EMX. Also drop test for - $DISPLAY in favor of kmous=\E[M or $TERM containing "xterm" (report - by Christian Weisgerber ). - + modify raw() and noraw() to clear/restore IEXTEN flag which affects - stty lnext on systems such as FreeBSD (report by Bruce Evans - , via Jason Evans ). - + fix a potential (but unlikely) buffer overflow in failed() function - of tset.c (reported by Todd C Miller). - + add manual-page for ncurses extensions, documented curses_version(), - use_extended_names(). - -19991211 - + treat as untranslatable to termcap those terminfo strings which - contain non-decimal formatting, e.g., hexadecimal or octal. - + correct commented-out capabilities that cannot be translated to - termcap, which did not check if a colon must be escaped. - + correct termcap translation for "%>" and "%+", which did not check - if a colon must be escaped, for instance. - + use save_string/save_char for _nc_captoinfo() to eliminate fixed - buffer (originally for _nc_infotocap() in 960301 -TD). - + correct expression used for terminfo equivalent of termcap %B, - adjust regent100 entry which uses this. - + some cleanup and commenting of ad hoc cases in _nc_infotocap(). - + eliminate a fixed-buffer in tic, used for translating comments. - + add manpage for infotocap - -19991204 - + add kvt and gnome terminfo entries -TD - + correct translation of "%%" by infotocap, which was emitted as "%". - + add "obsolete" termcap strings to terminfo.src - + modify infocmp to default to showing obsolete capabilities rather - than terminfo only. - + modify write_entry.c so that if extended names (i.e., configure - --enable-tcap-names) are active, then tic will also write "obsolete" - capabilities that are present in the terminfo source. - + modify tic so that when running as captoinfo or infotocap, it - initializes the output format as in -C and -I options, respectively. - + improve infocmp and tic -f option by splitting long strings that do - not have if-then-else construct, but do have parameters, e.g., the - initc for xterm-88color. - + refine MKtermsort.sh slightly by using bool for the *_from_termcap - arrays. - -19991127 - + additional fixes for non-bce terminals (handling of clear_screen, - clr_eol, clr_eos, scrolling) to work when assume_default_colors() is - not specified. - + several small changes to xterm terminfo entries -TD. - + move logic for _nc_windows in lib_freeall.c inside check for nonnull - SP, since it is part of that struct. - + remove obsolete shlib-versions, which was unintentionally re-added - in 970927. - + modify infocmp -e, -E options to ensure that generated fallback.c - type for Booleans agrees with term.h (reported by Eric Norum - ). - + correct configure script's use of $LIB_PREFIX, which did not work - for installing the c++ directory if $libdir did not end with "/lib" - (reported by Huy Le ). - + modify infocmp so -L and -f options work together. - + modify the initialization of SP->_color_table[] in start_color() so - that color_content() will return usable values for COLORS greater - than 8. - + modify ncurses 'd' test in case COLORS is greater than 16, e.g., for - xterm-88color, to limit the displayed/computed colors to 16. - > patch by Juergen Pfeifer: - + simplify coding of the panel library according to suggestions by - Philippe Blain. - + improve macro coding for a few macros in curses.priv.h - -19991113 - + modify treatment of color pair 0 so that if ncurses is configured - to support default colors, and they are not active, then ncurses - will set that explicitly, not relying on orig_colors or orig_pair. - + add new extension, assume_default_colors() to provide better control - over the use of default colors. - + modify test programs to use more-specific ifdef's for existence of - wresize(), resizeterm() and use_default_colors(). - + modify configure script to add specific ifdef's for some functions - that are included when --enable-ext-funcs is in effect, so their - existence can be ifdef'd in the test programs. - + reorder some configure options, moving those extensions that have - evolved from experimental status into a new section. - + change configure --enable-tcap-names to enable this by default. - -19991106 - + install tack's manpage (reported by Robert Weiner - ) - + correct worm.c's handling of KEY_RESIZE (patch by Frank Heckenbach). - + modify curses.h.in, undef'ing some symbols to avoid conflict with C++ - STL (reported by Matt Gerassimoff ) - -19991030 - + modify linux terminfo entry to indicate that dim does not mix with - color (reported by Klaus Weide ). - + correct several typos in terminfo entries related to missing '[' - in CSI's -TD - + fix several compiler warnings in c++ binding (reported by Tim - Mooney for alphaev56-dec-osf4.0f - + rename parameter of _nc_free_entries() to accommodate lint. - + correct lint rule for tack, used incorrect list of source files. - + add case to config.guess, config.sub for Rhapsody. - + improve configure tests for libg++ and libstdc++ by omitting the - math library (which is missing on Rhapsody), and improved test for - the math library itself (adapted from path by Nelson H. F. Beebe). - + explicitly initialize to zero several data items which were - implicitly initialized, e.g., cur_term. If not explicitly - initialized, their storage type is C (common), and causes problems - linking on Rhapsody 5.5 using gcc 2.7.2.1 (reported by Nelson H. F. - Beebe). - + modify Ada95 binding to not include the linker option for Ada - bindings in the Ada headers, but in the Makefiles instead (patch by - Juergen Pfeifer). - -19991023 5.0 release for upload to ftp.gnu.org - + effective with release of 5.0, change NCURSES_VERSION_PATCH to - 4-digit year. - + add function curses_version(), to return ncurses library version - (request by Bob van der Poel). - + remove rmam, smam from cygwin terminfo entry. - + modify FreeBSD cons25 terminfo entry to add cnorm and cvvis, as well - as update ncv to indicate that 'dim' conflicts with colors. - + modify configure script to use symbolic links for FreeBSD shared - libraries by default. - + correct ranf() function in rain and worm programs to ensure it does - not return 1.0 - + hide the cursor in hanoi.c if it is running automatically. - + amend lrtest.c to account for optimizations that exploit margin - wrapping. - + add a simple terminfo demo, dots.c - + modify SIGINT/SIGQUIT handler to set a flag used in _nc_outch() to - tell it to use write() rather than putc(), since the latter is not - safe in a signal handler according to POSIX. - + add/use internal macros _nc_flush() and NC_OUTPUT to hide details - of output-file pointer in ncurses library. - + uncomment CC_SHARED_OPTS (see 971115), since they are needed for SCO - OpenServer. - + correct CC_SHARED_OPTS for building shared libraries for SCO - OpenServer. - + remove usleep() from alternatives in napms(), since it may interact - with alarm(), causing a process to be interrupted by SIGALRM (with - advice from Bela Lubkin). - + modify terminal_interface-curses-forms.ads.m4 to build/work with - GNAT 3.10 (patch by Juergen Pfeifer). - + remove part of CF_GPP_LIBRARY configure-script macro, which did not - work with gcc 2.7.2.3 - + minor fix to test/tclock.c to avoid beeping more than once per second - + add 's' and ' ' decoding to test/rain.c - -991016 pre-release - + corrected BeOS code for lib_twait.c, making nodelay() function work. - -991009 pre-release - + correct ncurses' value for cursor-column in PutCharLR(), which was - off-by-one in one case (patch by Ilya Zakharevich). - + fix some minor errors in position_check() debugging code, found while - using this to validate the PutCharLR() patch. - + modify firework, lrtest, worm examples to be resizable, and to - recognize 'q' for quit, 's' for single-step and ' ' for resume. - + restore reverted change to terminal_interface-curses-forms.ads.m4, - add a note on building with gnat 3.10p to Ada95/TODO. - + add a copy of the standalone configure script for the test-directory - to simplify testing on SCO and Solaris. - -991002 pre-release - + minor fixes for _nc_msec_cost(), color_content(), pair_content(), - _nc_freewin(), ClrBottom() and onscreen_mvcur() (analysis by Philippe - Blain, comments by Alexander Lukyanov). - + simplify definition of PANEL and eliminate internal functions - _nc_calculate_obscure(), _nc_free_obscure() and _nc_override(), - (patch by Juergen Pfeifer, based on analysis by Philippe Blain - )). - + change renaming of dft_fgbg.3x to use_default_colors.3ncurses in - man_db.renames, since Debian is not concerned with 14-character - filename limitation (from Debian bug report by Josip Rodin - ). - + corrected scoansi terminfo entry by testing with scoterm and console. - + revert change from 990614 to terminal_interface-curses-forms.ads.m4, - since this does not work for gnat 3.10p - + modify tclock example to be resizable (if ncurses' sigwinch handler - is used), and in color. - + use $(CC) rather than 'gcc' in MK_SHARED_LIB symbols, used for Linux - shared library rules. - -990925 pre-release - + add newer NetBSD console terminfo entries - + add amiga-8bit terminfo entry (from Henning 'Faroul' Peters - ) - + remove -lcurses -ltermcap from configure script's check for the gpm - library, since they are not really necessary (a properly configured - gpm library has no dependency on any curses library), and if the - curses library is not installed, this would cause the test to fail. - + modify tic's -C option so that terminfo "use=" clauses are translated - to "tc=" clauses even when running it as captoinfo. - + modify CF_STDCPP_LIBRARY configure macro to perform its check only - for GNU C++, since that library conflicts with SGI's libC on IRIX-6.2 - + modify CF_SHARED_OPTS configure macro to support build on NetBSD with - ELF libraries (patch by Bernd Ernesti ). - + correct a problem in libpanel, where the _nc_top_panel variable was - not set properly when bottom_panel() is called to hide a panel which - is the only one on the stack (report/analysis by Michael Andres - , patch by Juergen Pfeifer). - -990918 pre-release - + add acsc string to HP 70092 terminfo entry (patch by Joerg Wunsch - ). - + add top-level uninstall.data and uninstall.man makefile rules. - + correct logic of CF_LINK_FUNCS configure script, from BeOS changes so - that hard-links work on Unix again. - + change default value of cf_cv_builtin_bool to 1 as suggested by - Jeremy Buhler, making it less likely that a conflicting declaration - of bool will be seen when compiling with C++. - -990911 pre-release - + improved configure checks for builtin.h - + minor changes to C++ binding (remove static initializations, and make - configure-test for parameter initializations) for features not - allowed by vendor's C++ compilers (reported by Martin Mokrejs, this - applies to SGI, though I found SCO has the same characteristics). - + corrected quoting of ETIP_xxx definitions which support old versions - of g++, e.g., those using -lg++ - + remove 'L' code from safe_sprintf.c, since 'long double' is not - widely portable. safe_sprintf.c is experimental, however, and - exists mainly as a fallback for systems without snprintf (reported - by Martin Mokrejs , for IRIX 6.2) - + modify definition of _nc_tinfo_fkeys in broken-linker configuration - so that it is not unnecessarily made extern (Jeffrey C Honig). - -990904 pre-release - + move definition for builtin.h in configure tests to specific check - for libg++, since qt uses the same filename incompatibly. - + correct logic of lib_termcap.c tgetstr function, which did not copy - the result to the buffer parameter. Testing shows Solaris does - update this, though of course tgetent's buffer is untouched (from - mpc.lists.freebsd.current newsgroup item by Peter Edwards - ). - + corrected beterm terminfo entry, which lists some capabilities which - are not actually provided by the BeOS Terminal. - + add special logic to replace select() calls on BeOS, whose select() - function works only for sockets. - + correct missing escape in mkterm.h.awk.in, which caused part - of the copyright noticed to be omitted (reported by Peter - Wemm ). - > several small changes to make the c++ binding and demo work on OS/2 - EMX (related to a clean reinstall of EMX): - + correct library-prefix for c++ binding; none is needed. - + add $x suffix to make_hash and make_keys so 'make distclean' works. - + correct missing $x suffix for tack, c++ demo executables. - + split CF_CXX_LIBRARY into CF_GPP_LIBRARY (for -lg++) and - CF_STDCPP_LIBRARY (for -lstdc++) - -990828 pre-release - + add cygwin terminfo entry -TD - + modify CF_PROG_EXT configure macro to set .exe extension for cygwin. - + add configure option --without-cxx-binding, modifying the existing - --without-cxx option to check only for the C++ compiler - characteristics. Whether or not the C++ binding is needed, the - configure script checks for the size/type of bool, to make ncurses - match. Otherwise C++ applications cannot use ncurses. - -990821 pre-release - + updated configure macros CF_MAKEFLAGS, CF_CHECK_ERRNO - + minor corrections to beterm terminfo entry. - + modify lib_setup.c to reject values of $TERM which have a '/' in - them. - + add ifdef's to guard against CS5, CS6, CS7, CS8 being zero, as more - than one is on BeOS. That would break a switch statement. - + add configure macro CF_LINK_FUNCS to detect and work around BeOS's - nonfunctional link(). - + improved configure macros CF_BOOL_DECL and CF_BOOL_SIZE to detect - BeOS's bool, which is declared as an unsigned char. - -990814 pre-release - + add ms-vt100 terminfo entry -TD - + minor fixes for misc/emx.src, based on testing with tack. - + minor fix for test/ncurses.c, test 'a', in case ncv is not set. - -990731 pre-release - + minor correction for 'screen' terminfo entry. - + clarify description of errret values for setupterm in manpage. - + modify tput to allow it to emit capabilities for hardcopy terminals - (patch by Goran Uddeborg ). - + modify the 'o' (panel) test in ncurses.c to show the panels in color - or at least in bold, to test Juergen's change to wrefresh(). - > patches by Juergen Pfeifer: - + Fixes a problem using wbkgdset() with panels. It has actually - nothing to with panels but is a problem in the implementation of - wrefresh(). Whenever a window changes its background attribute to - something different than newscr's background attribute, the whole - window is touched to force a copy to newscr. This is an unwanted - side-effect of wrefresh() and it is actually not necessary. A - changed background attribute affects only further outputs of - background it doesn't mean anything to the current content of the - window. So there is no need to force a copy. (reported by Frank - Heckenbach ). - + an upward compatible enhancement of the NCursesPad class in the C++ - binding. It allows one to add a "viewport" window to a pad and then - to use panning to view the pad through the viewport window. - -990724 pre-release - + suppress a call to def_prog_mode() in the SIGTSTP handler if the - signal was received while not in curses mode, e.g., endwin() was - called in preparation for spawning a shell command (reported by Frank - Heckenbach ) - + corrected/enhanced xterm-r5, xterm+sl, xterm+sl-twm terminfo entries. - + change test for xterm mouse capability: it now checks only if the - user's $DISPLAY variable is set in conjunction with the kmous - capability being present in the terminfo. Before, it checked if any - of "xterm", "rxvt" or "kterm" were substrings of the terminal name. - However, some emulators which are incompatible with xterm in other - ways do support the xterm mouse capability. - + reviewed and made minor changes in ncurses to quiet g++ warnings - about shadowed or uninitialized variables. g++ incorrectly warns - about uninitialized variables because it does not take into account - short-circuit expression evaluation. - + change ncurses 'b' test to start in color pair 0 and to show in the - right margin those attributes which are suppressed by no_color_video, - i.e., "(NCV)". - + modify ifdef's in curses.h so that __attribute__ is not redefined - when compiling with g++, but instead disabled the macros derived for - __attribute__ since g++ does not consistently recognize the same - keywords as gcc (reported by Stephan K Zitz ). - + update dependencies for term.h in ncurses/modules (reported by - Ilya Zakharevich). - -990710 pre-release - + modify the form demo in ncurses.c to illustrate how to manipulate the - field appearance, e.g, for highlighting or translating the field - contents. - + correct logic in write_entry from split-out of home_terminfo in - 980919, which prevented update of $HOME/.terminfo (reported by Philip - Spencer ). - -990703 pre-release - + modify linux terminfo description to make use of kernel 2.2.x mods - that support cursor style, e.g., to implement cvvis (patch by Frank - Heckenbach ) - + add special-case in setupterm to retain previously-saved terminal - settings in cur_term, which happens when curses and termcap calls are - mixed (from report by Bjorn Helgaas ). - + suppress initialization of key-tries in _nc_keypad() if we are only - disabling keypad mode, e.g., in endwin() called when keypad() was - not. - + modify the Ada95 makefile to ensure that always the Ada files from - the development tree are used for building and not the eventually - installed ones (patch by Juergen Pfeifer). - -990626 pre-release - + use TTY definition in tack/sysdep.c rather than struct termios - (reported by Philippe De Muyter). - + add a fallback for strstr, used in lib_mvcur.c and tack/edit.c, - not present on sysV68 (reported by Philippe De Muyter). - + correct definition in comp_hash.c to build with configure - --with-rcs-ids option. - -990619 pre-release - + modified ifdef's for sigaction and sigvec to ensure we do not try to - handle SIGTSTP if neither is available (from report by Philippe De - Muyter). - > patch by Philippe De Muyter: - + in tic.c, use `unlink' if `remove' is not available. - + use only `unsigned' as fallback value for `speed_t'. Some files used - `short' instead. - -990616 pre-release - + fix some compiler warnings in tack. - + add a check for predefined bool type in CC, based on report that - BeOS predefines a bool type. - + correct logic for infocmp -e option (i.e., the configure - --with-fallbacks option), which I'd not updated when implementing - extended names (cf: 990301). The new implementation adds a -E - option to infocmp. - > patch by Juergen Pfeifer: - + introduce the private type Curses_Bool in the Ada95 binding - implementation. This is to clearly represent the use of "bool" also - in the binding. It should have no effect on the generated code. - + improve the man page for field_buffer() to tell the people, that the - whole buffer including leading/trailing spaces is returned. This is - a common source of confusion, so it's better to document it clearly. - -990614 pre-release - > patch by Juergen Pfeifer: - + use pragma PreElaborate in several places. - + change a few System.Address uses to more specific types. - + change interface version-number to 1.0 - + regenerate Ada95 HTML files. - -990612 pre-release - + modify lib_endwin.c to avoid calling reset_shell_mode(), return ERR - if it appears that curses was never initialized, e.g., by initscr(). - For instance, this guards against setting the terminal modes to - strange values if endwin() is called after setupterm(). In the same - context, Solaris curses will dump core. - + modify logic that avoids a conflict in lib_vidattr.c between sgr0 and - equivalent values in rmso or rmul by ensuring we do not modify the - data which would be returned by the terminfo or termcap interfaces - (reported by Brad Pepers , cf: 960706). - + add a null-pointer check for SP in lib_vidattr.c to logic that checks - for magic cookies. - + improve fallback declaration of 'bool' when the --without-cxx option - is given, by using a 'char' on i386 and related hosts (from - discussion with Alexander Lukyanov). - -990605 pre-release - + include time.h in lib_napms.c if nanosleep is used (patch by - R Lindsay Todd ). - + add an "#undef bool" to curses.h, in case someone tries to define it, - e.g., perl. - + add check to tparm to guard against divide by zero (reported by Aaron - Campbell ). - -990516 pre-release - + minor fix to build tack on CLIX (mismatched const). - > patch by Juergen Pfeifer: - + change Juergen's old email address with new one in the files where it - is referenced. The Ada95 HTML pages are regenerated. - + update MANIFEST to list the tack files. - -990509 pre-release - + minor fixes to make 'tack' build/link on NeXT (reported by Francisco - A. Tomei Torres). - -990417 pre-release - + add 'tack' program (which is GPL'd), updating it to work with the - modified TERMTYPE struct and making a fix to support setaf/setab - capabilities. Note that the tack program is not part of the - ncurses libraries, but an application which can be distributed with - ncurses. The configure script will ignore the directory if it is - omitted, however. - + modify gpm mouse support so that buttons 2 and 3 are used for - select/paste only when shift key is pressed, making them available - for use by an application (patch by Klaus Weide). - + add complete list of function keys to scoansi terminfo entry - TD - -990410 pre-release - + add a simple test program cardfile.c to illustrate how to read form - fields, and showing forms within panels. - + change shared-library versioning for the Hurd to be like Linux rather - than *BSD (patch by Mark Kettenis ). - + add linux-lat terminfo entry. - + back-out _nc_access check in read_termcap.c (both incorrect and - unnecessary, except to guard against a small window where the file's - ownership may change). - -990403 pre-release - + remove conflicting _nc_free_termtype() function from test module - lib_freeall.c - + use _nc_access check in read_termcap.c for termpaths[] array (noted - by Jeremy Buhler, indicating that Alan Cox made a similar patch). - > patch by Juergen Pfeifer: - + modify menu creation to not inherit status flag from the default menu - which says that the associated marker string has been allocated and - should be freed (bug reported by Marek Paliwoda" - ) - -990327 pre-release (alpha.gnu.org:/gnu/ncurses-5.0-beta1.tar.gz) - + minor fixes to xterm-xfree86 terminfo entry - TD. - + split up an expression in configure script check for ldconfig to - workaround limitation of BSD/OS sh (reported by Jeff Haas - ). - + correct a typo in man/form_hook.3x (Todd C Miller). - -990318 pre-release - + parenthesize and undef 'index' symbol in c++ binding and demo, to - accommodate its definition on NeXT (reported by Francisco A. Tomei - Torres). - + add sigismember() to base/sigaction.c compatibility to link on NeXT - (reported by Francisco A. Tomei Torres). - + further refinements to inequality in hashmap.c to cover a case with - ^U in nvi (patch by Alexander Lukyanov). - -990316 pre-release - + add fallback definition for getcwd, to link on NeXT. - + add a copy of cur_term to tic.c to make it link properly on NeXT - (reported by Francisco A. Tomei Torres). - + change inequality in hashmap.c which checks the distance traveled by - a chunk so that ^D command in nvi (scrolls 1/2 screen) will use - scrolling logic (patch by Alexander Lukyanov, reported by Jeffrey - C Honig). - -990314 pre-release - + modify lib_color.c to handle a special case where the curscr - attributes have been made obsolete (patch by Alexander Lukyanov). - + update BSD/OS console terminfo entries to use klone+sgr and - klone+color (patch by Jeffrey C Honig). - + update glibc addon configure script for extended capabilities. - + correct a couple of warnings in the --enable-const configuration. - + make comp_hash build properly with _nc_strdup(), on NeXT (reported by - Francisco A. Tomei Torres ). - -990313 pre-release - + correct typos in linux-c initc string - TD - + add 'crt' terminfo entry, update xterm-xfree86 entry - TD - + remove a spurious argument to tparm() in lib_sklrefr.c (patch by - Alexander Lukyanov). - -990307 pre-release - + back-out change to wgetch because it causes a problem with ^Z - handling in lynx (reported by Kim DeVaughn). - -990306 pre-release - + add -G option to tic and infocmp, to reverse the -g option. - + recode functions in name_match.c to avoid use of strncpy, which - caused a 4-fold slowdown in tic (cf: 980530). - + correct a few warnings about sign-extension in recent changes. - > patch by Juergen Pfeifer: - + fixes suggested by Jeff Bradbury : - + improved parameter checking in new_fieldtype(). - + fixed a typo in wgetch() timeout handling. - + allow slk_init() to be called per newterm call. The internal SLK - state is stored in the SCREEN struct after every newterm() and then - reset for the next newterm. - + fix the problem that a slk_refresh() refreshes stdscr if the - terminal has true SLKs. - + update HTML documentation for Ada binding. - -990301 pre-release - + remove 'bool' casts from definitions of TRUE/FALSE so that statements - such as "#if TRUE" work. This was originally done to allow for a C++ - compiler which would warn of implicit conversions between enum and - int, but is not needed for g++ (reported by Kim DeVaughn). - + add use_extended_names() function to allow applications to suppress - read of the extended capabilities. - + add configure option --enable-tcap-names to support logic which - allows ncurses' tic to define new (i.e., extended) terminal - capabilities. This is activated by the tic -x switch. The infocmp - program automatically shows or compares extended capabilities. - Note: This changes the Strings and similar arrays in the TERMTYPE - struct so that applications which manipulate it must be recompiled. - + use macros typeMalloc, typeCalloc and typeRealloc consistently - throughout ncurses library. - + add _nc_strdup() to doalloc.c. - + modify define_key() to allow multiple strings to be bound to the - same keycode. - + correct logic error in _nc_remove_string, from 990220. - > patch by Juergen Pfeifer, for Ada95 binding: - + regenerate some of the html documentation - + minor cleanup in terminal_interface-curses.adb - -990220 pre-release - + resolve ambiguity of kend/kll/kslt and khome/kfnd/kich1 strings in - xterm and ncsa terminfo entries by removing the unneeded ones. Note - that some entries will return kend & khome versus kslt and kfnd, for - PC-style keyboards versus strict vt220 compatiblity - TD - + add function keybound(), which returns the definition associated with - a given keycode. - + modify define_key() to undefine the given string when no keycode is - given. - + modify keyok() so it works properly if there is more than one string - defined for a keycode. - + add check to tic to warn about terminfo descriptions that contain - more than one key assigned to the same string. This is shown only if - the verbose (-v) option is given. Moved related logic (tic -v) from - comp_parse.c into the tic program. - + add/use _nc_trace_tries() to show the function keys that will be - recognized. - + rename init_acs to _nc_init_acs (request by Alexander Lukyanov). - > patch by Juergen Pfeifer, for Ada95 binding: - + remove all the *_adabind.c from ncurses, menu and form projects. - Those little helper routines have all been implemented in Ada and are - no longer required. - + The option handling routines in menu and form have been made more - save. They now make sure that the unused bits in options are always - zero. - + modify configuration scripts to - + use gnatmake as default compiler name. This is a safer choice than - gcc, because some GNAT implementations use other names for the - compilerdriver to avoid conflicts. - + use new default installation locations for the Ada files according - to the proposed GNU Ada filesystem standard (for Linux). - + simplify the Makefiles for the Ada binding - + rename ada_include directory to src. - -990213 - + enable sigwinch handler by default. - + disable logic that allows setbuf to be turned off/on, because some - implementations will overrun the buffer after it has been disabled - once. - -990206 - + suppress sc/rc capabilities from terminal description if they appear - in smcup/rmcup. This affects only scrolling optimization, to fix a - problem reported by several people with xterm's alternate screen, - though the problem is more general. - > patch by Juergen Pfeifer, for Ada95 binding: - + removed all pragma Preelaborate() stuff, because the just released - gnat-3.11p complains on some constructs. - + fixed some upper/lower case notations because gnat-3.11p found - inconsistent use. - + used a new method to generate the HTML documentation of the Ada95 - binding. This invalidates nearly the whole ./Ada95/html subtree. - Nearly all current files in this subtree are removed - -990130 - + cache last result from _nc_baudrate, for performance (suggested by - Alexander Lukyanov). - + modify ClrUpdate() function to workaround a problem in nvi, which - uses redrawwin in SIGTSTP handling. Jeffrey C Honig reported that - ncurses repainted the screen with nulls before resuming normal - operation (patch by Alexander Lukyanov). - + generalize is_xterm() function a little by letting xterm/rxvt/kterm - be any substring rather than the prefix. - + modify lib_data.c to initialize SP. Some linkers, e.g., IBM's, will - not link a module if the only symbols exported from the module are - uninitialized ones (patch by Ilya Zakharevich, who says that he has - seen messages claiming this behaviour conforms to the standard.) - + move call on _nc_signal_handler past _nc_initscr, to avoid a small - window where Nttyb hasn't yet been filled (reported by Klaus Weide). - + modify lib_tstp.c to block SIGTTOU when handling SIGTSTP, fixes a - problem where ncurses applications which were run via a shell script - would hang when given a ^Z. Also, check if the terminal's process - group is consistent, i.e., a shell has not taken ownership of it, - before deciding to save the current terminal settings in the SIGTSTP - handler (patch by Klaus Weide). - + correct spelling of ACS_ names in curs_border.3x (reported by Bob van - der Poel ). - + correct a couple of typos in the macros supporting the configure - --with-shlib-version option. - -990123 - + modify fty_regex.c to compile on HAVE_REGEXPR_H_FUNCS machine (patch - by Kimio Ishii ). - + rename BSDI console terminfo entries: bsdos to bsdos-pc-nobold, and - bsdos-bold to bsdos-pc (patch by Jeffrey C Honig). - + modify tput to accept termcap names as an alternative to terminfo - names (patch by Jeffrey C Honig). - + correct a typo in term.7 (Todd C Miller). - + add configure --with-shlib-version option to allow installing shared - libraries named according to release or ABI versions. This - parameterizes some existing logic in the configure script, and is - intended for compatiblity upgrades on Digital Unix, which used - versioned libraries in ncurses 4.2, but no longer does (cf: 980425). - + resync configure script against autoconf 2.13 + patches - + minor improvements for teraterm terminfo entry based on the program's - source distribution. - -990116 - + change default for configure --enable-big-core to assume machines do - have enough memory to resolve terminfo.src in-memory. - + correct name of ncurses library in TEST_ARGS when configuring with - debug library. - + minor fixes to compile ncurses library with broken-linker with g++. - + add --enable-broken-linker configure option, default to environment - variable $BROKEN_LINKER (request by Jeffrey C Honig). - + change key_names[] array to static since it is not part of the curses - interface (reported by Jeffrey C Honig ). - -990110 - + add Tera Term terminfo entry - TD - -990109 - + reviewed/corrected macros in curses.h as per XSI document. - + provide support for termcap PC variable by copying it from terminfo - data and using it as the padding character in tputs (reported by - Alexander Lukyanov). - + corrected iris-ansi and iris-ansi-ap terminfo entries for kent and - kf9-kf12 capabilities, as well as adding kcbt. - + document the mouse handling mechanism in menu_driver and make a small - change in menu_driver's return codes to provide more consistency - (patch by Juergen Pfeifer). - + add fallback definition for NCURSES_CONST to termcap.h.in (reported - by Uchiyama Yasushi ). - + move lib_restart.c to ncurses/base, since it uses curses functions - directly, and therefore cannot be used in libtinfo.so - + rename micro_char_size to micro_col_size, adding #define to retain - old name. - + add set_a_attributes and set_pglen_inch to terminfo structure, as per - XSI and Solaris 2.5. - + minor makefile files to build ncurses test_progs - + update html files in misc directory to reflect changes since 4.2 - -990102 - + disable scroll hints when hashmap is enabled (patch by Alexander - Lukyanov). - + move logic for tic's verify of -e option versus -I and -C so that the - terminfo data is not processed if we cannot handle -e (reported by - Steven Schwartz . - + add test-driver traces to terminfo and termcap functions. - + provide support for termcap ospeed variable by copying it from the - internal cur_term member, and using ospeed as the baudrate reference - for the delay_output and tputs functions. If an application does not - set ospeed, the library behaves as before, except that _nc_timed_wait - is no longer used, or needed, since ospeed always has a value. But - the application can modify ospeed to adjust the output of padding - characters (from a bug report for screen 3.7.6 and email from Michael - Schroeder ). - + removed some unused ifdef's as part of Alexander's restructuring. - + reviewed/updated curses.h, term.h against X/Open Curses Issue 4 - Version 2. This includes making some parameters NCURSES_CONST - rather than const, e.g., in termcap.h. - + change linux terminfo entry to use ncv#2, since underline does not - work with color - -981226 - + miscellaneous corrections for curses.h to match XSI. - + change --enable-no-padding configure option to be normally enabled. - + add section to ncurses manpage for environment variables. - + investigated Debian bug report that pertains to screen 3.7.4/3.7.6 - changes, found no sign of problems on Linux (or on SunOS, Solaris) - running screen built with ncurses. - + check if tmp_fp is opened in tic.c before closing it (patch by Pavel - Roskin ). - + correct several font specification typos in man-pages. - -981220 - + correct default value for BUILD_CC (reported by Larry Virden). - -981219 - + modify _nc_set_writedir() to set a flag in _nc_tic_dir() to prevent - it from changing the terminfo directory after chdir'ing to it. - Otherwise, a relative path in $TERMINFO would confuse tic (from a - Debian bug report). - + correct/update ncsa terminfo entry (report by Larry Virden). - + update xterm-xfree86 terminfo to current (patch 90), smcur/rmcur - changes - + add Mathew Vernon's mach console entries to terminfo.src - + more changes, moving functions, as part of Alexander's restructuring. - + modify configure script for GNU/Hurd share-library support, introduce - BUILD_CC variable for cross compiling (patch by Uchiyama Yasushi - ) - -981212 - + add environment variable NCURSES_NO_SETBUF to allow disabling the - setbuf feature, for testing purposes. - + correct ifdef's for termcap.h versus term.h that suppress redundant - declarations of prototypes (reported by H.J.Lu). - + modify Makefile.os2 to add linker flags which allow multiple copies - of an application to coexist (reported by Ilya Zakharevich). - + update Makefile.glibc and associated configure script so that ncurses - builds as a glibc add-on with the new directory configuration - (reported by H.J.Lu). - -981205 - + modify gen_reps() function in gen.c to work properly on SunOS - (sparc), which is a left-to-right architecture. - + modify relative_move and tputs to avoid an interaction with the - BSD-style padding. The relative_move function could produce a string - to replace on the screen which began with a numeric character, which - was then interpreted by tputs as padding. Now relative_move will not - generate a string with a leading digit in that case (overwrite). - Also, tputs will only interpret padding if the string begins with a - digit; as coded it permitted a string to begin with a decimal point - or asterisk (reported by Larry Virden). - > patches by Juergen Pfeifer: - + fix a typo in m_driver.c mouse handling and improves the error - handling. - + fix broken mouse handling in the Ada95 binding - + make the Ada95 sample application menus work with the new menu mouse - support - + improve the mouse handling introduced by Ilya; it now handles menus - with spacing. - + repair a minor bug in the menu_driver code discovered during this - rework. - + add new function wmouse_trafo() to hide implementation details of - _yoffset member of WINDOW struct needed for mouse coordinate - transformation. - -981128 - + modify Ada95/gen/gen.c to avoid using return-value of sprintf, since - some older implementations (e.g., SunOS 4.x) return the buffer - address rather than its length. - > patch by Rick Ohnemus: - + modify demo.cc to get it to compile with newer versions of egcs. - + trim a space that appears at the end of the table preprocessor lines - ('\" t). This space prevents some versions of man from displaying - the pages - changed to remove all trailing whitespace (TD) - + finally, 'make clean' does not remove panel objects. - > patches by Ilya Zakharevich: - + allow remapping of OS/2 mouse buttons using environment variable - MOUSE_BUTTONS_123 with the default value 132. - + add mouse support to ncurses menus. - -981121 - + modify misc/makedef.cmd to report old-style .def file symbols, and to - generate the .def files sorted by increasing names rather than the - reverse. - + add misc/*.ref which are J.J.G.Ripoll's dll definition files (renamed - from misc/*.old), and updated based on the entrypoint coding he used - for an older version of ncurses. - + add README.emx, to document how to build on OS/2 EMX. - + updates for config.guess, config.sub from Lynx - > patches by Ilya Zakharevich: - + minor fixes for mouse handling mode: - a) Do not initialize mouse if the request is to have no mouse; - b) Allow switching of OS/2 VIO mouse on and off. - + modify Makefile.os2 to support alternative means of generating - configure script, by translating Unix script with Perl. - > patches by Juergen Pfeifer: - + Updates MANIFEST to reflect changes in source structure - + Eliminates a problem introduced with my last patch for the C++ - binding in the panels code. It removes the update() call done in the - panel destructor. - + Changes in the Ada95 binding to better support systems where - sizeof(chtype)!=sizeof(int) (e.g. DEC Alpha). - -981114 - + modify install-script for manpages to skip over .orig and .rej files - (request by Larry Virden). - > patches/discussion by Alexander Lukyanov: - + move base-library sources into ncurses/base and tty (serial terminal) - sources into ncurses/tty, as part of Alexander Lukyanov's proposed - changes to ncurses library. - + copy _tracemouse() into ncurses.c so that lib_tracemse.c need not - be linked into the normal ncurses library. - + move macro winch to a function, to hide details of struct ldat - > patches by Juergen Pfeifer: - + fix a potential compile problem in cursesw.cc - + some Ada95 cosmetics - + fix a gen.c problem when compiling on 64-Bit machines - + fix Ada95/gen/Makefile.in "-L" linker switch - + modify Ada95 makefiles to use the INSTALL_PREFIX setting. - -981107 - + ifdef'd out lib_freeall.c when not configured. - + rename _tracebits() to _nc_tracebits(). - + move terminfo-library sources into ncurses/tinfo, and trace-support - functions into ncurses/trace as part of Alexander Lukyanov's proposed - changes to ncurses library. - + modify generated term.h to always specify its own definitions for - HAVE_TERMIOS_H, etc., to guard against inclusion by programs with - broken configure scripts. - -981031 - + modify terminfo parsing to accept octal and hexadecimal constants, - like Solaris. - + remove an autoconf 2.10 artifact from the configure script's check - for "-g" compiler options. (Though harmless, this confused someone - at Debian, who recently issued a patch that results in the opposite - effect). - + add configure option --with-ada-compiler to accommodate installations - that do not use gcc as the driver for GNAT (patch by Juergen - Pfeifer). - -981017 - + ensure ./man exists in configure script, needed when configuring - with --srcdir option. - + modify infocmp "-r" option to remove limit on formatted termcap - output, which makes it more like Solaris' version. - + modify captoinfo to treat no-argument case more like Solaris' - version, which uses the contents of $TERMCAP as the entry to format. - + modify mk-2nd.awk to handle subdirectories, e.g., ncurses/tty - (patch by Alexander V Lukyanov). - -981010 - + modify --with-terminfo-dirs option so that the default value is the - ${datadir} value, unless $TERMINFO_DIRS is already set. This gets - rid of a hardcoded list of candidate directories in the configure - script. - + add some error-checking to _nc_read_file_entry() to ensure that - strings are properly terminated (Todd C Miller). - + rename manpage file curs_scr_dmp.3x to curs_scr_dump.3x, to - correspond with contents (reported by Neil Zanella - ). - + remove redundant configure check for C++ which did not work when $CXX - was specified with a full pathname (reported by Andreas Jaeger). - + corrected bcopy/memmove check; the macro was not standalone. - -981003 - + remove unnecessary portion of OS/2 EMX mouse change from - check_pending() (reported by Alexander V Lukyanov). - -980926 - + implement mouse support for OS/2 EMX (adapted from patch against - 4.2(?) by Ilya Zakharevich). - + add configure-check for bcopy/memmove, for 980919 changes to hashmap. - + merge Data General terminfo from Hasufin - TD - + merge AIX 3.2.5 terminfo descriptions for IBM terminals, replaces - some older entries - TD - + modify tic to compile into %'char' form in preference to %{number}, - since that is a little more efficient. - + minor correction to infocmp to avoid displaying "difference" between - two capabilities that are rendered in equivalent forms. - + add -g option to tic/infocmp to force character constants to be - displayed in quoted form. Otherwise their decimal values are shown. - + modify setupterm so that cancelled strings are treated the same as - absent strings, cancelled and absent booleans false (does not affect - tic, infocmp). - + modify tic, infocmp to discard redundant i3, r3 strings when output - to termcap format. - > patch by Alexander V Lukyanov: - + improve performance of tparm, now it takes 19% instead of 25% when - profiling worm. - + rename maxlen/minlen to prec/width for better readability. - + use format string for printing strings. - + use len argument correctly in save_text, and pass it to save_number. - -980919 - + make test_progs compile (but hashmap does not function). - + correct NC_BUFFERED macro, used in lib_mvcur test-driver, modify - associated logic to avoid freeing the SP->_setbuf data. - + add modules home_terminfo and getenv_num to libtinfo. - + move write_entry to libtinfo, to work with termcap caching. - + minor fixes to blue.c to build with atac. - + remove softscroll.c module; no longer needed for testing. - > patches by Todd C Miller: - + use strtol(3) instead of atoi(3) when parsing env variables so we can - detect a bogus (non-numeric) value. - + check for terminal names > MAX_NAME_SIZE in a few more places when - dealing with env variables again. - + fix a MAX_NAME_SIZE that should be MAX_NAME_SIZE+1 - + use sizeof instead of strlen(3) on PRIVATE_INFO since it is a fixed - string #define (compile time vs runtime). - + when setting errno to ENOMEM, set it right before the return, not - before code that could, possibly, set errno to a different value. - > patches by Alexander V Lukyanov: - + use default background in update_cost_from_blank() - + disable scroll-hints when hashmap is configured. - + improve integration of hashmap scrolling code, by adding oldhash and - newhash data to SP struct. - + invoke del_curterm from delscreen. - + modify del_curterm to set cur_term to null if it matches the - function's parameter which is deleted. - + modify lib_doupdate to prefer parm_ich to the enter_insert_mode and - exit_insert_mode combination, adjusting InsCharCost to check - enter_insert_mode, exit_insert_mode and insert_padding. Add - insert_padding in insert mode after each char. This adds new costs - to the SP struct. - -980912 - + modify test-driver in lib_mvcur.s to use _nc_setbuffer, for - consistent treatment. - + modify ncurses to restore output to unbuffered on endwin, and resume - buffering in refresh (see lib_set_term.c and NC_BUFFERED macro). - + corrected HTML version numbers (according to the W3C validator, they - never were HTML 2.0-compliant, but are acceptable 3.0). - -980905 - + modify MKterminfo.sh to generate terminfo.5 with tables sorted by - capability name, as in SVr4. - + modified term.h, termcap.h headers to avoid redundant declarations. - + change 'u_int' type in tset.c to unsigned, making this compile on - Sequent PRX 4.1 (reported by Michael Sterrett ). - -980829 - + corrections to mailing addresses, and moving the magic line that - causes the man program to invoke tbl to the first line of each - manpage (patch by Rick Ohnemus ). - + add Makefile.os2 and supporting scripts to generate dll's on OS/2 EMX - (from J.J.G.Ripoll, with further integration by TD). - + correct a typo in icl6404 terminfo entry. - + add xtermm and xtermc terminfo entries. - > from esr's terminfo version: - + Added Francesco Potorti's tuned Wyse 99 entries. - + dtterm enacs correction from Alexander V Lukyanov. - + Add ncsa-ns, ncsa-m-ns and ncsa-m entries from esr version. - -980822 - + document AT&T acs characters in terminfo.5 manpage. - + use EMX _scrsize() function if terminfo and environment do not - declare the screen size (reported by Ilya Zakharevich - ). - + remove spurious '\' characters from eterm and osborne terminfo - entries (prompted by an old Debian bug report). - + correct reversed malloc/realloc calls in _nc_doalloc (reported by - Hans-Joachim Widmaier ). - + correct misplaced parenthesis which caused file-descriptor from - opening termcap to be lost, from 980725 changes (reported by Andreas - Jaeger). - -980815 - + modify lib_setup.c to eliminate unneeded include of - when termios is not used (patch by Todd C Miller). - + add function _nc_doalloc, to ensure that failed realloc calls do not - leak memory (reported by Todd C Miller). - + improved ncsa-telnet terminfo entry. - -980809 - + correct missing braces around a trace statement in read_entry.c, - from 980808 (reported by Kim DeVaughn and Liviu - Daia). - -980808 - + fix missing include in ditto.c (reported by Bernhard - Rosenkraenzer ) - + add NCSA telnet terminfo entries from Francesco Potorti - , from Debian bug reports. - + make handling of $LINES and $COLUMNS variables more compatible with - Solaris by allowing them to individually override the window size - as obtained via ioctl. - -980801 - + modify lib_vidattr.c to allow for terminal types (e.g., xterm-color) - which may reset all attributes in the 'op' capability, so that colors - are set before turning on bold and other attributes, but still after - turning attributes off. - + add 'ditto.c' to test directory to illustrate use of newterm for - initializing multiple screens. - + modify _nc_write_entry() to recover from failed attempt to link alias - for a terminfo on a filesystem which does not preserve character case - (reported by Peter L Jordan ). - -980725 - + updated versions of config.guess and config.sub based on automake 1.3 - + change name-comparisons in lib_termcap to compare no more than 2 - characters (gleaned from Debian distribution of 1.9.9g-8.8, verified - with Solaris curses). - + fix typo in curs_insstr.3x (patch by Todd C Miller) - + use 'access()' to check if ncurses library should be permitted to - open or modify files with fopen/open/link/unlink/remove calls, in - case the calling application is running in setuid mode (request by - Cristian Gafton , responding to Duncan Simpson - ). - + arm100 terminfo entries from Dave Millen ). - + qnxt2 and minitel terminfo entries from esr's version. - -980718 - + use -R option with ldconfig on FreeBSD because otherwise it resets - the search path to /usr/lib (reported by Dan Nelson). - + add -soname option when building shared libraries on OpenBSD 2.x - (request by QingLong). - + add configure options --with-manpage-format and - --with-manpage-renames (request by QingLong). - + correct conversion of CANCELLED_NUMERIC in write_object(), which was - omitting the high-order byte, producing a 254 in the compiled - terminfo. - + modify return-values of tgetflag, tgetnum, tgetstr, tigetflag, - tigetnum and tigetstr to be compatible with Solaris (gleaned from - Debian distribution of 1.9.9g-8.8). - + modify _nc_syserr_abort to abort only when compiled for debugging, - otherwise simply exit with an error. - -980711 - + modify Ada95 'gen' program to use appropriate library suffix (e.g., - "_g" for a debug build). - + update Ada95 'make clean' rule to include generics .ali files - + add a configure test to ensure that if GNAT is found, that it can - compile/link working Ada95 program. - + flush output in beep and flash functions, fixing a problem with - getstr (patch by Alexander V Lukyanov) - + fix egcs 1.0.2 warning for etip.h (patch by Chris Johns). - + correct ifdef/brace nesting in lib_sprintf.c (patch by Bernhard - Rosenkraenzer ). - + correct typo in wattr_get macro from 980509 fixes (patch by Dan - Nelson). - -980704 - + merge changes from current XFree86 xterm terminfo descriptions. - + add configure option '--without-ada'. - + add a smart-default for termcap 'ac' to terminfo 'acs_chars' which - corresponds to vt100. - + change translation for termcap 'rs' to terminfo 'rs2', which is - the documented equivalent, rather than 'rs1'. - -980627 - + slow 'worm' down a little, for very fast machines. - + corrected firstchar/lastchar computation in lib_hline.c - + simplify some expressions with CHANGED_CELL, CHANGED_RANGE and - CHANGED_TO_EOL macros. - + modify init_pair so that if a color-pair is reinitialized, we will - repaint the areas of the screen whose color changes, like SVr4 curses - (reported by Christian Maurer ). - + modify getsyx/setsyx macros to comply with SVr4 man-page which - says that leaveok() affects their behavior (report by Darryl Miles, - patch by Alexander V Lukyanov). - -980620 - + review terminfo.5 against Solaris 2.6 curses version, corrected - several minor errors/omissions. - + implement tparm %l format. - + implement tparm printf-style width and precision for %s, %d, %x, %o - as per XSI. - + implement tparm dynamic variables (reported by Xiaodan Tang). - -980613 - + update man-page for for wattr_set, wattr_get (cf: 980509) - + correct limits in hashtest, which would cause nonprinting characters - to be written to large screens. - + correct configure script, when --without-cxx was specified: the - wrong variable was used for cf_cv_type_of_bool. Compilers up to gcc - 2.8 tolerated the missing 'int'. - + remove the hardcoded name "gcc" for the GNU Ada compiler. The - compiler's name might be something like "egcs" (patch by Juergen - Pfeifer). - + correct curs_addch.3x, which implied that echochar could directly - display control characters (patch by Alexander V Lukyanov). - + fix typos in ncurses-intro.html (patch by Sidik Isani - ) - -980606 - + add configure test for conflicting use of exception in math.h and - other headers. - + minor optimization to 'hash()' function in hashmap.c, reduces its - time by 10%. - + correct form of LD_SHARED_OPTS for HP-UX 10.x (patch by Tim Mooney). - + fix missing quotes for 'print' in MKunctrl.awk script (reported by - Mihai Budiu ). - > patch by Alexander V Lukyanov: - + correct problem on Solaris (with poll() function) where getch could - hang indefinitely even if timeout(x) was called. This turned out to - be because milliseconds was not updated before 'goto retry' in - _nc_timed_wait. - + simplified the function _nc_timed_wait and fixed another bug, which - was the assumption of !GOOD_SELECT && HAVE_GETTIMEOFDAY in *timeleft - assignment. - + removed the cycle on EINTR, as it seems to be useless. - -980530 - + add makefile-rule for test/keynames - + modify run_tic.sh and shlib to ensure that user's .profile does not - override the $PATH used to run tic (patch by Tim Mooney). - + restore LD_SHARED_OPTS to $(LD_SHARED_FLAGS) when linking programs, - needed for HP-UX shared-library path (recommended by Tim Mooney). - + remove special case of HP-UX -L options, use +b options to embed - $(libdir) in the shared libraries (recommended by Tim Mooney). - + add checks for some possible buffer overflows and unchecked - malloc/realloc/calloc/strdup return values (patch by Todd C Miller - ) - -980523 - + correct maxx/maxy expression for num_columns/num_lines in derwin - (patch by Alexander V Lukyanov). - + add /usr/share/lib/terminfo and /usr/lib/terminfo as compatibilty - fallbacks to _nc_read_entry(), along with --with-terminfo-dirs - configure option (suggested by Mike Hopkirk). - + modify config.guess to recognize Unixware 2.1 and 7 (patch by Mike - Hopkirk ). - + suppress definition of CC_SHARED_OPTS in LDFLAGS_SHARED in c++ - Makefile.in, since this conflicts when g++ is used with HP-UX - compiler (reported by Tim Mooney). - + parenthesize 'strcpy' calls in c++ binding to workaround redefinition - in some C++ implementations (reported by several people running - egcs with glibc 2.0.93, analysis by Andreas Jaeger. - -980516 - + modify write_entry.c so that it will not attempt to link aliases - with embedded '/', but give only a warning. - + put -L$(libdir) first when linking programs, except for HP-UX. - + modify comp_scan.c to handle SVr4 terminfo description for att477, - which contains a colon in the description field. - + modify configure script to support SCO osr5.0.5 shared libraries - (from comp.unix.sco.programmer newsgroup item by Mike Hopkirk - ). - + eliminate extra GoTo call in lib_doupdate.c (patch by Alexander V. - Lukyanov). - + minor adjustments of const/NCURSES_CONST from IRIX compile. - + add updates based on esr's 980509 version of terminfo.src. - -980509 - + correct macros for wattr_set, wattr_get, separate wattrset macro from - these to preserve behavior that allows attributes to be combined with - color pair numbers. - + add configure option --enable-no-padding, to allow environment - variable $NCURSES_NO_PADDING to eliminate non-mandatory padding, - thereby making terminal emulators (e.g., for vt100) a little more - efficient (request by Daniel Eisenbud ). - + modify configure script to embed ABI in shared libraries for HP-UX - 10.x (detailed request by Tim Mooney). - + add test/example of the 'filter()' function. - + add nxterm and xterm-color terminfo description (request by Cristian - Gafton ). - + modify rxvt terminfo description to clear alternate screen before - switching back to normal screen, for compatibility with applications - which use xterm (reported by Manoj Kasichainula ). - + modify linux terminfo description to reset color palette (reported - by Telford Tendys ). - + correction to doupdate, for case where terminal does not support - insert/delete character. The logic did not check that there was a - difference in alignment of changes to old/new screens before - repainting the whole non-blank portion of the line. Modified to fall - through into logic that reduces by the portion which does not differ - (reported by Daniel Eisenbud ). - + minor performance improvement to wnoutrefresh by moving some - comparisons out of inner loop. - -980425 - + modify configure script to substitute NCURSES_CONST in curses.h - + updated terminfo entries for xterm-xf86-v40, xterm-16color, - xterm-8bit to correspond to XFree86 3.9Ag. - + remove restriction that forces ncurses to use setaf/setab if the - number of colors is greater than 8. (see 970524 for xterm-16color). - + change order of -L options (so that $(libdir) is searched first) when - linking tic and other programs, to workaround HP's linker. - Otherwise, the -L../lib is embedded when linking against shared - libraries and the installed program does not run (reported by Ralf - Hildebrandt). - + modify configuration of shared libraries on Digital Unix so that - versioning is embedded in the library, rather than implied by - links (patch by Tim Mooney). - -980418 - + modify etip.h to avoid conflict with math.h on HP-UX 9.03 with gcc - 2.8.1 which redefines 'exception' (reported by Ralf Hildebrandt - ). - + correct configure tests in CF_SHARED_OPTS which used $CC value to - check for gcc, rather than autoconf's $GCC value. This did not - work properly if the full pathname of the compiler were given - (reported by Michael Yount ). - + revise check for compiler options to force ANSI mode since repeating - an option such as -Aa causes HP's compiler to fail on its own headers - (reported by Clint Olsen ). - -980411 - + ifdef'd has_key() and mcprint() as extended functions. - + modified several prototypes to correspond with 1997 version of - X/Open Curses (affects ABI since developers have used attr_get). - + remove spurious trailing blanks in glibc addon-scripts (patch by - H.J.Lu). - + insert a few braces at locations where gcc-2.8.x asks to use them to - avoid ambigous else's, use -fpic rather than -fPIC for Linux (patch - by Juergen Pfeifer). - -980404 - + split SHLIB_LIST into SHLIB_DIRS/SHLIB_LIST to keep -L options - before -l to accommodate Solaris' linker (reported by Larry Virden). - -980328 - + modify lib_color.c to eliminate dependency on orig_colors and - orig_pair, since SVr4 curses does not require these either, but - uses them when they are available. - + add detailed usage-message to infocmp. - + correct a typo in att6386 entry (a "%?" which was "?"). - + add -f option to infocmp and tic, which formats the terminfo - if/then/else/endif so that they are readable (with newlines and - tabs). - + fixes for glibc addon scripts (patch by H.J.Lu). - -980321 - + revise configure macro CF_SPEED_TYPE so that termcap.h has speed_t - declared (from Adam J. Richter ) - + remove spurious curs_set() call from leaveok() (J.T.Conklin). - + corrected handling leaveok() in doupdate() (patch by Alexander V. - Lukyanov). - + improved version of wredrawln (patch by Alexander V. Lukyanov). - + correct c++/Makefile.in so install target do not have embedded ../lib - to confuse it (patch by Thomas Graf ). - + add warning to preinstall rule which checks if the installer would - overwrite a curses.h or termcap.h that is not derived from ncurses. - (The recommended configuration for developers who need both is to - use --disable-overwrite). - + modify preinstall rule in top-level Makefile to avoid implicit - use of 'sh', to accommodate Ultrix 4.4 (reported by Joao Palhoto - Matos , patch by Thomas Esser - ) - + refine ifdef's for TRACE so that libncurses has fewer dependencies - on libtinfo when TRACE is disabled. - + modify configure script so that if the --with-termlib option is used - to generate a separate terminfo library, we chain it to the ncurses - library with a "-l" option (reported by Darryl Miles and Ian T. - Zimmerman). - -980314 - + correct limits and window in wredrawln function (reported/analysis by - Alexander V. Lukyanov). - + correct sed expression in configure script for --with-fallback - option (patch by Jesse Thilo). - + correct some places in configure script where $enableval was used - rather than $withval (patch by Darryl Miles ). - + modify some man-pages so no '.' or '..' falls between TH and SH - macros, to accommodate man_db program (reported by Ian T. Zimmerman - ). - + terminfo.src 10.2.1 from Eric's webpage. - > several changes by Juergen Pfeifer: - + add copyright notices (and rcs id's) on remaining man-pages. - + corrected prototypes for slk_* functions, using chtype rather than - attr_t. - + implemented the wcolor_set() and slk_color() functions - + the slk_attr_{set,off,on} functions need an additional void* - parameter according to XSI. - + fix the C++ and Ada95 binding as well as the man pages to - reflect above enhancements. - -980307 - + use 'stat()' rather than 'access()' in toe.c to check for the - existence of $HOME/.terminfo, since it may be a file. - + suppress configure CF_CXX_LIBRARY check if we are not using g++ - 2.7.x, since this is not needed with g++ 2.8 or egcs (patch by - Juergen Pfeifer). - + turn on hashmap scrolling code by default, intend to remedy defects - by 4.3 release. - + minor corrections to terminfo.src changelog. - -980302 4.2 release for upload to prep.ai.mit.edu - + correct Florian's email address in ncurses-intro.html - + terminfo.src 10.2.0 from Eric. - -980228 pre-release - + add linux-koi8r replace linux-koi8, which is not KOI8 (patch by - QingLong ). - + minor documentation fixes (patch by Juergen Pfeifer). - + add setlocale() call to ncurses.c (reported by Claes G. Lindblad - ). - + correct sign-extension in lib_insstr.c (reported by Sotiris - Vassilopoulos ) - -980221 pre-release - + regenerated some documentation overlooked in 980214 patch - (ncurses-intro.doc, curs_outopts.3x.html) - + minor ifdef change to C++ binding to work with gcc 2.8.0 (patch by - Juergen Pfeifer). - + change maintainer's mailing address to florian@gnu.org, change - tentative mailing list address to bug-ncurses-request@gnu.org (patch - by Florian La Roche). - + add definition of $(REL_VERSION) to c++/Makefile.in (reported by Gran - Hasse ). - + restore version numbers to Ada95 binding, accidentally deleted by - copyright patch (patch by Juergen Pfeifer). - -980214 pre-release - + remove ncurses.lsm from MANIFEST so that it won't be used in FSF - distributions, though it is retained in development. - + correct scaling of milliseconds to nanoseconds in lib_napms.c (patch - by Jeremy Buhler). - + update mailing-list information (bug-ncurses@gnu.org). - + update announcement for upcoming 4.2 release. - + modify -lm test to check for 'sin()' rather than 'floor()' - + remove spurious commas from terminfo.src descriptions. - + change copyright notices to Free Software Foundation - -980207 - + minor fixes for autoconf macros CF_ERRNO, CF_HELP_MESSAGE and - CF_SIZECHANGE - + modify Makefile.glibc so that $(objpfx) is defined (H.J.Lu). - + ifdef-out true-return from _nc_mouse_inline() which depends on - merge of QNX patch (pending 4.2 release). - > patch by J.T.Conklin, to split off seldom-used modules in ncurses - (reduces size by up to 2.6kb): - + move functionality of _nc_usleep into napms, add configuration case - for nanosleep(). - + moved wchgat() from lib_addch.c to lib_chgat.c - + moved clearok(), immedok(), leaveok(), and scrollok() from - lib_options.c to lib_clearok.c, lib_immedok.c, lib_leaveok.c and - lib_scrollok.c. - + moved napms() from lib_kernel.c to lib_napms.c - + moved echo() and noecho() from lib_raw.c to lib_echo.c - + moved nl() and nonl() from lib_raw.c to lib_nl.c - -980131 - + corrected conversion in tclock.c (cf: 971018). - + updates to Makefile.glibc and associated Linux configure script - (patch by H.J.Lu). - + workaround a quoting problem on SunOS with tar-copy.sh - + correct init_pair() calls in worm.c to work when use_default_colors() - is not available. - + include in CF_SYS_TIME_SELECT to work with FreeBSD - 2.1.5 - + add ncv capability to FreeBSD console (cons25w), making reverse - work with color. - + correct sense of configure-test for sys/time.h inclusion with - sys/select.h - + fixes for Ada95/ada_include/Makefile.in to work with --srcdir option. - + remove unused/obsolete test-program rules from progs/Makefile.in - (the rules in ncurses/Makefile.in work). - + remove shared-library loader flags from test/Makefile.in, etc. - + simplify test/configure.in using new version of autoconf to create - test/ncurses_cfg.h - + suppress suffix rules in test/Makefile.in, provide explicit - dependency to work with --srcdir option and less capable 'make' - programs. - > adapted from patch for QNX by Xiaodan Tang: - + initialize %P and %g variables set/used in tparm, and also ensure - that empty strings don't return a null result from tparam_internal - + add QNX-specific prototype for vsscanf() - + move initialization of SP->_keytry from init_keytry() to newterm() to - avoid resetting it via a keyok() call by mouse_activate(). - + reorganized some functions in lib_mouse() to use case-statements. - + remove sgr string from qnx terminfo entry since it is reported to - turn off attributes inconsistently. - -980124 - + add f/F/b/B commands to ncurses 'b' test to toggle colors, providing - test for no_color_video. - + adjusted emx.src to use no_color_video, now works with ncurses 'b' - and 'k' tests. - + implement no_color_video attribute, and as a special case, reverse - colors when the reverse attribute cannot be combined with color. - + check for empty string in $TERM variable (reported by Brett Michaels - ). - > from reports by Fred Fish: - + add configure-test for isascii - + add configure-test for -lm library. - + modify CF_BOOL_SIZE to check if C++ bool types are unsigned. - > patches by J.J.G.Ripoll - + add configure/makefile variables to support .exe extension on - OS/2 EMX (requires additional autoconf patches). - + explicitly initialize variables in lib_data.c to appease OS/2 linker - > patches by Fred Fish - + misc/Makefile.in (install.data): Avoid trying to install the CVS - directory. - + aclocal.m4 (install.includes): Remove files in the include directory - where we are going to install new ones, not the original source - files. - + misc/terminfo.src: Add entry for "beterm", derived from termcap - distributed with BeOS PR2 using captoinfo. - + aclocal.m4: Wrap $cf_cv_type_of_bool with quotes (contains space) - + aclocal.m4: Assume bool types are unsigned. - + progs/infocmp.c: workaround mwcc 32k function data limit - -980117 - + correct initialization of color-pair (from 970524) in xmas.c, which - was using only one color-pair for all colors (reported by - J.J.G.Ripoll). - + add multithread options for objects build on EMX, for compatibility - with XFree86. - + split up an expression in MKlib_gen.sh to work around a problem on - OS/2 EMX, with 'ash' (patch by J.J.G.Ripoll). - + change terminfo entries xterm (xterm-xf86-v40), xterm-8bit rs1 to use - hard reset. - + rename terminfo entry xterm-xf86-v39t to xterm-xf86-v40 - + remove bold/underline from sun console entries since they're not - implemented. - + correct _tracef calls in _tracedump(), which did not separate format - from parameters. - + correct getopt string for tic "-o" option, and add it to man-page - synopsis (reported by Darren Hiebert ). - + correct typo in panel/Makefile.in, reversed if-statement in scrolling - optimization (Alexander V. Lukyanov). - + test for 'remove()', use 'unlink() if not found (patch by Philippe De - Muyter ). - > patches by Juergen Pfeifer: - + Improve a feature of the forms driver. For invisible fields - (O_VISIBLE off) only the contents but not the attributes are cleared. - We now clear both. (Reported by Javier Kohan - ) - + The man page form_field_opts.3x makes now clear, that invisible - fields are also always inactive. - + adjust ifdef's to compile the C++ binding with the just released - gcc-2.8.0 c++ and the corresponding new C++ libraries. - -980110 - + correct "?" command in ncurses.c; it was performing non-screen writes - while the program was in screen mode. (It "worked" in 1.9.9e because - that version sets OPOST and OCRNL incorrectly). - + return error from functions in lib_kernel, lib_raw and lib_ti if - cur_term is null, or if underlying I/O fails. - + amend change to tputs() so that it does not return an error if - cur_term is null, since some applications depend on being able to use - tputs without initializing the terminal (reported by Christian J. - Robinson ). - -980103 - + add a copy of emx.src from J.J.G.Ripoll's OS/2 EMX version of ncurses - 1.9.9e, together with fixes/additions for the "ansi" terminal type. - + add tic check for save/restore cursor if change_scroll_region is - defined (from O'Reilly book). - + modify read_termcap.c to handle EMX-style pathnames (reported by - J.J.G.Ripoll). - + modify lib_raw.c to use EMX's setmode (from J.J.G.Ripoll, who says - EMX's curses does this). - + modify _nc_tic_expand() to generate \0 rather than \200. - + move/revise 'expand()' from dump_entry.c to ncurses library as - _nc_tic_expand(), for use by tack. - + decode \a as \007 for terminfo, as per XSI. - + correct translation of terminfo "^@", to \200, like \0. - + modify next_char() to treat the same as , for - cross-platform compatibility. - + use new version of autoconf (971230) to work around limited - environment on CLIX, due to the way autoconf builds --help message. - > patch by Juergen Pfeifer: - + check that the Ada95 binding runs against the correct version of - ncurses. - + insert constants about the library version into the main spec-file of - the Ada95 binding. - -971227 - + modify open/fopen calls to use binary mode, needed for EMX. - + modify configure script to work with autoconf 2.10 mods for OS/2 - EMX from J.J.G.Ripoll. - + generated ncurses_cfg.h with patch (971222) to autoconf 2.12 which - bypasses limited sed buffer length. - > several changes from Juan Jose Garcia Ripoll - (J.J.G.Ripoll) to support OS/2 EMX: - + add a _scrolling flag to SP, to set when we encounter a terminal - that simply cannot scroll. - + corrected logic in _nc_add_to_try(), by ensuring that strings with - embedded \200 characters are matched. - + don't assume the host has 'link()' function, for linking terminfo - entries. - -971220 - + if there's no ioctl's to support sigwinch handler, disable it. - + add configure option --disable-ext-funcs to remove the extended - functions from the build. - + add configure option --with-termlib to generate the terminfo - functions as a separate library. - + add 'sources' rule to facilitate cross-compiling. - + review/fix order of mostlyclean/clean/distclean rules. - + modify install-rule for headers to first remove old header, in - case there was a symbolic link that confuses the install script. - + corrected substitution for NCURSES_CONST in term.h (cf: 971108) - + add null pointer checks in wnoutrefresh(), overlap() (patch by - Xiaodan Tang ) - + correct tputs(), which could dereference a null cur_term if invoked - before terminal is initialized (patch by Christopher Seawood - ) - > patch by Juergen Pfeifer: - + makes better use of "pragma Inline" in the Ada95 binding - + resynchronizes the generated html manpages - -971213 - + additional fixes for man-pages section-references - + add (for debugging) a check for ich/ich1 conflict with smir/rmir - to tic, etc. - + remove hpa/vpa from rxvt terminal description because they are not - implemented correctly, added sgr0. - + change ncurses 's' to use raw mode, so ^Q works (reported by Rudolf - Leitgeb ) - -971206 - + modify protection when installing libraries to (normally) not - executable. HP-UX shared libraries are an exception. - + add configure check for 'tack'. - + implement script for renaming section-references in man-page install, - for Debian configuration. - + add validity-check for SP in trace code in baudrate() (reported by - Daniel Weaver). - > patch by Alexander V. Lukyanov (fixes to match sol25 curses) - + modify 'overlay()' so that copy applies target window background to - characters. - + correct 'mvwin()' so that it does not clear the previous locations. - + correct lib_acs.c so that 8-bit character is not sign expanded in - case of wide characters in chtype. - + correct control-char test in lib_addch.c for use with wide chars - + use attribute in the chtype when adding a control character in - lib_addch.c control char was added with current attribute - -971129 - + save/restore errno in _tracef() function - + change treatment of initialize_color to use a range of 0..1000 - (recommended by Daniel Weaver). - + set umask in mkinstalldirs, fixing problems reported by users who - have set root's umask to 077. - + correct bug in tic that caused capabilities to be reprinted at the - end of output when they had embedded comments. - + rewrote wredrawln to correspond to XSI, and split-out since it is - not often used (from report by Alexander V. Lukyanov, 970825) - + rewrote Dan Nelson's change to make it portable, as well as to - correct logic for handling backslashes. - + add code to _nc_tgetent() to make it work more like a real tgetent(). - It removes all empty fields, and removes all but the first in a group - of duplicate caps. The code was pulled from the BSD libtermcap code - in termcap.c (patch by Dan Nelson - + don't include --enable-widec in the --with-develop configure option, - since it is not binary-compatible with 4.1 (noted by Alexander V. - Lukyanov) - > patch by Juergen Pfeifer: - + further improvements of the usage of elaboration pragmas in the Ada95 - binding - + enhanced Ada95 sample to use the user_data mechanism for panels. - + a fix for the configuration script to make gnat-3.10 the required - version. - + resync of the html version of the manpages - -971122 - > fixes/updates for terminfo.src: - + add vt220-js, pilot, rbcomm, datapoint entries from esr's 27-jun-97 - version. - + add hds200 description (Walter Skorski) - + add EMX 0.9b descriptions - + correct rmso/smso capabilities in wy30-mc and wy50-mc (Daniel Weaver) - + rename xhpterm back to hpterm. - > patch by Juergen Pfeifer: - + Improves the usage of elaboration pragmas for the Ada95 binding. - + Adds a translation of the test/rain.c into Ada95 to the samples. - This has been contributed to the project by Laurent Pautet - (pautet@gnat.com) - -971115 - + increase MAX_NAME_SIZE to 512 to handle extremely long alias list - in HP-UX terminfo. - + correction & simplification of delay computation in tputs, based on - comments from Daniel Weaver. - + replace test for SCO with more precise header tests. - + add configure test for unsigned literals, use in NCURSES_BITS macro. - + comment-out the -PIC, etc., flags from c++, progs and test makefiles - since they probably are not needed, and are less efficient (noted by. - Ju"rgen Fluk) - + add -L$(libdir) to loader options, after -L../lib so that loaders - that record this information will tend to do the right thing if - the programs are moved around after installing them (suggested by. - Ju"rgen Fluk). - + add -R option to loader options for programs for Solaris if the - --enable-rpath option is specified for the libraries. - -971112 - + correct installed filename for shared libraries on *BSD (reported by - Ju"rgen Fluk). - -971108 - + cleanup logic for deciding when tputs() should call delay_output(), - based on comments from Daniel Weaver. - + modified tputs() to avoid use of float. - + correct use of trailpad in tputs(), which used the wrong variable - in call to delay_output(). - + correct inverted expression for null-count in delay_output() - (analysis by Daniel Weaver). - + apply --enable-rpath option to Solaris (requested by Larry Virden). - + correct substitution of EXTRA_CFLAGS for gcc 2.6.3 - + correct check for error-return by _nc_tgetent(), which returns 0 - for success. - + add configure test for BSD 4.4 cgetent() function, modify - read_termcap.c to use the host's version of that if found, using the - terminal database on FreeBSD (reported by Peter Wemm). - + add u8, u9 strings to sun-il description for Daniel Weaver. - + use NCURSES_CONST in panel's user-pointer. - + modify edit_cfg.sh and MKterm.h.awk.in to substitute NCURSES_CONST - so that will work on NeXT. - + use _nc_set_screen() rather than assignments to SP to fix port to - NeXT (reported by Francisco A. Tomei Torres). - -971101 - + force mandatory padding in bell and flash_screen, as specified in - XSI. - + don't allow padding_baud_rate to override mandatory delays (reported - by Daniel Weaver). - + modify delay_output() to use _nc_timed_wait() if no baudrate has been - defined, or if the cur_term pointer is not initialized. XSI treats - this as unspecified. (requested by Daniel Weaver). - + change getcap-cache ifdef's to eliminate unnecessary chdir/mkdir - when that feature is not configured. - + remove _nc_err_abort() calls when write_entry.c finds a directory but - cannot write to it, e.g., when translating part/all of /etc/termcap - (reported by Andreas Jaeger ). - (this dates back to 951102, in 1.9.7a). - + minor ifdef fixes to compile with atac and glibc 2.0.5c - + add check for -lgen when configuring regexpr.h - + modify Solaris shared-library option "-d y" to "-dy" to workaround - incompatibility of gcc 2.7.2 vs vendor's tools. - -971026 - + correct ifdef's for struct winsize vs struct ttysize in lib_setup.c - to compile on SCO. - + remove dangling backslash in panel/Makefile.in - + modify MKkeyname.awk to work with SCO's nawk, which dumps core in the - length() function. - + correct length of allocation in _nc_add_to_try(), to allow for - trailing null. - + correct logic in _nc_remove_key(), which was discarding too many - nodes (patch by Alexander V. Lukyanov) - -971025 - + add definition for $(REL_VERSION) to test/Makefile.in, so *BSD - shared libraries link properly (see 970524). - + modify Linux shared-library generation to include library - dependencies (e.g., -lncurses and -lgpm) in the forms, menu and - panel libraries (suggested by Juergen Pfeifer). - + modify configure script to use config.guess and config.sub rather - than uname, which is unreliable on some systems. - + updated Makefile.glibc, test-built with glibc 2.0.5c - + modify keyname() to return values consistent with SVr4 curses (patch - by Ju"rgen Fluk). - > changes requested by Daniel Weaver: - + modify delay_output() so that it uses the same output function as - tputs() if called from that function. - + move _baudrate from SCREEN to TERMINAL so that low-level use of - tputs works when SP is not set. - > patch by Juergen Pfeifer: - + factor lib_menu and lib_form into smaller modules - + clean up the interface between panel and SCREEN - + minor changes to the Ada95 mouse support implemenation - + minor bugfix in C++ binding to ripoff windows - + fix a few Ada95 html documentation pages - -971018 - + split-out lib_ungetch.c, make runtime link to resizeterm() to - decouple those modules from lib_restart.c - + add xterm-xf86-v39t description to terminfo.src - + reset SP->_endwin in lib_tstp.c cleanup() function after calling - endwin() to avoid unnecessary repainting if the application has - established an atexit function, etc. Encountered this problem in - the c++ demo, whose destructors repaint the screen. - + combine _nc_get_screensize() and resizeterm() calls as new function - _nc_update_screensize(). - + minor fixes to allow compile with g++ (suggested by Nelson H. F. - Beebe). - + implement install-rules for Ada95 makefiles. - + use screen_lines or MAXLINES as needed where LINES was coded, - as well as screen_columns for COLS, in the ncurses library. - > patch by Alexander V. Lukyanov: - + modify logic for ripped-off lines to handle several SCREENs. - > patch by Juergen Pfeifer: - + factors lib_slk.c into some smaller modules - + factors panel.c into some smaller modules - + puts the static information about the current panel stack into the - SCREEN structure to allow different panel stacks on different - screens. - + preliminary fix for an error adjusting LINES to account for - ripped-off lines. - -971011 - + move _nc_max_click_interval and other mouse interface items to SCREEN - struct so that they are associated with a single terminal, and also - save memory when the application does not need a mouse (roughly 3k vs - 0.5k on Linux). - + modify mouseinterval() so that a negative parameter queries the - click-interval without modifying it. - + modify ncurses 'i' test to work with ncurses' apparent extension from - SVr4, i.e., allows nocbreak+noecho (analysis by Alexander V. - Lukyanov). - + add configure options --with-ada-includes and --with-ada-objects, - to drive Ada95 binding install (not yet implemented). - + install C++ binding as -lncurses++ and associated headers with the - other ncurses headers. - + fix header uninstall if configure --srcdir is used. - > minor interface changes (request by Daniel Weaver , - to support 'tack' program): - + export functions _nc_trans_string() and _nc_msec_cost(). - + add variable _nc_nulls_sent, to record the number of padding - characters output in delay_output(). - + move tests for generic_type and hard_copy terminals in setupterm() - to the end of that function so that the library will still be - initialized, though not generally useful for curses programs. - > patches by Alexander V. Lukyanov: - + modify ClrBottom() to avoid using clr_eos if there is only one line - to erase. - + typo in configure --help. - > patch by J.T.Conklin (with minor resync against Juergen's changes) - + split-out lib_flash.c from lib_beep.c - + split-out lib_hline.c and lib_vline.c from lib_box.c - + split-out lib_wattron.c, lib_wattroff.c from lib_addch.c - -971005 - > patch by Juergen Pfeifer: - + correct source/target of c++/edit_cfg.sh - -971004 - + add color, mouse support to kterm terminfo entry. - + modify lib_mouse.c to recognize rxvt, kterm, color_xterm also as - providing "xterm"-style mouse. - + updated rxvt's terminfo description to correspond to 2.21b, with - fixes for the acsc (the box1 capability is incorrect, ech1 does not - work). - + fix logic in parse_entry.c that discarded acsc when 'synthesizing' - an entry from equivalents in XENIX or AIX. This lets ncurses handle - the distribution copy of rxvt's terminfo. - + modify acsc capability for linux and linux-koi8 terminfo descriptions - (from Pavel Roskin ). - + corrected definition in curses.h for ACS_LANTERN, which was 'I' - rather than 'i' (see 970802). - + updated terminfo.src with reformatted acsc entries, and repaired the - trashed entries with spurious '\' characters that this exposed. - + add logic to dump_entry.c to reformat acsc entries into canonical - form (sorted, unique mapping). - + add configure script to generate c++/etip.h - + add configure --with-develop option, to enable by default most of the - experimental options (requested by Alexander V. Lukyanov). - + rename 'deinstall' to 'uninstall', following GNU convention - (suggested by Alexander V. Lukyanov). - > patches by Alexander V. Lukyanov: - + modify tactics 2 and 5 in onscreen_mvcur(), to allow them on the last - line of the screen, since carriage return will not cause a newline. - + remove clause from PutCharLR() that would try to use - eat_newline_glitch since that apparently does not work on some - terminals (e.g., M$ telnet). - + correct a limit check in scroll_csr_backward() - > patches by Juergen Pfeifer: - + adds dummy implementations of methods above() and below() to the - NCursesPanel class. - + fixes missing returncode in NCursesWindow::ripoffline() - + fixes missing returncode in TestApplication::run() in demo.cc - + We should at least give a comment in etip.h why it is currently a - problem to install the C++ binding somewhere - + makes the WINDOW* argument of wenclose() a const. - + modifies several of the routines in lib_adabind.c to use a const - WINDOW* argument. - -970927 - + add 'deinstall' rules. - + use explicit assignments in configure --without-progs option to - work around autoconf bug which doesn't always set $withval. - + check for ldconfig, don't try to run it if not found. - + implement simple/unoptimized case in lib_doupdate.c to handle - display with magic cookie glitch, tested with ncurses.c program. - + correct missing _tracef in getmouse(), to balance the returnCode - macro. - + simplify show_attr() in ncurses.c using termattrs(). - > patches by Juergen Pfeifer: - + provides missing inlines for mvw[hv]line in cursesw.h of the C++ - binding - + fixes a typo in a comment of frm_driver.c - + Enhances Ada95 Makefiles to fulfill the requirement of GNAT-3.10 that - generics should be compiled. Proper fixes to the configuration - scripts are also provided. - -970920 - + several modifications to the configure script (requested by Ward - Horner): - + add configure options --without-progs, to suppress the build of the - utility programs, e.g., for cross-compiling. - + add $(HOSTCCFLAGS) and $(HOSTLDFLAGS) symbols to ncurses - Makefile.in, to simplify setup for cross compiling. - + add logic in configure script to recognize "--target=vxworks", and - generate load/install actions for VxWorks objects. - + move typedef for sigaction_t into SigAction.h to work around problem - generating lint library. - + modify fty_regex.c to reflect renaming of ifdef's for regular - expressions. - + simplify ifdef in lib_setup.c for TIOCGWINSZ since that symbol may - reside in . - + merge testcurs.c with version from PDCurses 2.3, clarifying some of - the more obscure tests, which rely upon color. - + use macros getbegyx() and getmaxyx() in newdemo.c and testcurs.c - + modify ncurses.c to use getbegyx() and getmaxyx() macros to cover up - implementation difference wrt SVr4 curses, allow 's' test to work. - + add missing endwin() to testscanw.c program (reported by Fausto - Saporito ). - + fixes/updates for Makefile.glibc and related files under sysdeps - (patch by H.J.Lu). - > patches by Juergen Pfeifer: - + add checks for null pointers, especially WINDOW's throughout the - ncurses library. - + solve a problem with wrong calculation of panel overlapping (reported - by Ward Horner): - + make sure that a panel's window isn't a pad. - + do more error checking in module lib_touch.c - + missing files for Ada95 binding from the last patch - + synch. of generated html pages (RCS-Id's were wrong in html files) - + support for Key_Resize in Ada binding - + changed documentation style in ./c++/cursesm.h - > patches by Alexander V. Lukyanov: - + undo attempt to do recursive inlining for PutChar(), noting that it - did not improve timing measurably, but inflated the size of - lib_doupdate.o - -970913 - + modify rain.c to use color. - + correct scroll_csr_backward() to match scroll_csr_forward(). - + minor adjustment to llib-lncurses, to work with Solaris 2.5.1 - + minor fixes to sysdeps/unix/sysv/linux/configure to reflect renaming - of configure cache variables in 970906. - + correct logic involving changes to O_VISIBLE option in - Synchronize_Options function in frm_driver.c (Tony Hoffmann - ) - + add $(HOSTCC) symbol to ncurses Makefile.in, to simplify setup for - cross compiling (suggested by Chris Johns). - + modify ifdef in lib_setup.c to only include if we can - use it to support screen-size calculation (reported by Chris Johns). - + #undef unctrl to avoid symbol conflict in port to RTEMS (reported by - Chris Johns ) - > patches by Juergen Pfeifer: - + simplified, made minor corrections to Ada95 binding to form - fieldtype. - + The C++ binding has been enhanced: - + Improve NCursesWindow class: added additional methods to cover - more ncurses functionality. Make refresh() and noutrefresh() - virtual members to allow different implementation in the - NCursesPanel class. - + CAUTION: changed order of parameters in vline() and hline() of - NCursesWindow class. - + Make refresh() in NCursesPanel non-static, it is now a - reimplementation of refresh() in the base class. Added - noutrefresh() to NCursesPanel. - + Added NCursesForm and related classes to support libform - functionality. - + Moved most of configuration related stuff from cursesw.h to etip.h - + Added NCursesApplication class to support easy configuration of - menu and forms related attributes as well as ripped of title lines - and Soft-Label-Keys for an application. - + Support of Auto-Cleanup for a menu's fieldlist. - + Change of return type for current_item() and operator[] for menus. - + Enhanced demo. - + Fixed a bug in form/fld_def.c: take into account that copyarg and - freearg for a fieldtype may be NULL, makearg must not be NULL - + Fixed a bug in form/fld_type.c: in set_fieldtype_arg() makearg must - not be NULL, copyarg and freearg may be NULL. - + Fixed a bug in form/frm_def.c: Allow Disconnect_Fields() if it is - already disconnected. - + Enhance form/frm_driver.c: Allow growth of dynamic fields also on - navigation requests. - + Fixed a bug in form/fty_enum.c: wrong position of postincrement in - case-insensitiva comparision routine. - + Enhanced form/lib_adabind.c with function _nc_get_field() to get a - forms field by index. - + Enhanced menu/m_adabind.c with function _nc_get_item() to get a menus - item by index. - + Fixed in curses.h.in: make chtype argument for pechochar() constant. - Mark wbkgdset() as implemented, remove wbkgdset macro, because it was - broken (didn't handle colors correctly). - + Enhanced lib_mouse.c: added _nc_has_mouse() function - + Added _nc_has_mouse() prototype to curses.priv.h - + Modified lib_bkgd.c: hopefully correct implementation of wbkgdset(); - streamlined implementation of wbkgd() - + Modified lib_mvwin.c: Disable move of a pad. Implement (costly) - move of subwindows. Fixed update behaviour of movements of regular - windows. - + Fixed lib_pad.c: make chtype argument of pechochar() const. - + Fixed lib_window.c: dupwin() is not(!) in every bit a really clone - of the original. Subwindows become regular windows by doing a - dupwin(). - + Improved manpage form_fieldtype.3x - > patches by Alexander V. Lukyanov: - + simplify the PutChar() handling of exit_am_mode, because we already - know that auto_right_margin is true. - + add a check in PutChar() for ability to insert to the case of - shifting character to LR corner. - + in terminal initialization by _nc_screen_resume(), make sure that - terminal right margin mode is known. - + move logic that invokes touchline(), or does the equivalent, into - _nc_scroll_window(). - + modify scrolling logic use of insert/delete line capability, assuming - that they affect the screen contents only within the current - scrolling region. - + modify rain.c to demonstrate SIGWINCH handler. - + remove logic from getch() that would return an ERR if the application - called getch() when the cursor was at the lower-right corner of the - physical screen, and the terminal does not have insert-character - ability. - + change view.c so that it breaks out of getch() loop if a KEY_RESIZE - is read, and modify logic in getch() so this fix will yield the - desired behavior, i.e., the screen is repainted automatically when - the terminal window is resized. - -970906 - + add configure option --enable-sigwinch - + modify view.c to test KEY_RESIZE logic, with "-r" option. - + modify testcurs.c to eliminate misleading display wrt cursor type - by testing if the terminal supports cnorm, civis, cvvis. - + several fixes for m68k/NeXT 4.0, to bring cur_term, _nc_curr_line and - _nc_curr_col variables into linked programs: move these variables, - making new modules lib_cur_term and trace_buf (reported by Francisco - Alberto Tomei Torres ). - > patches by Alexander V. Lukyanov: - + add pseudo-functionkey KEY_RESIZE which is returned by getch() when - the SIGWINCH handler has been called since the last call to - doupdate(). - + modify lib_twait.c to hide EINTR only if HIDE_EINTR is defined. - + add SIGWINCH handler to ncurses library which is used if there is no - application SIGWINCH handler in effect when the screen is - initialized. - + make linked list of all SCREEN structures. - + move curses.h include before definition of SCREEN to use types in - that structure. - + correction to ensure that wgetstr uses only a newline to force a - scroll (970831). - -970831 - + add experimental configure option --enable-safe-sprintf; the normal - mode now allocates a buffer as large as the screen for the - lib_printw.c functions. - + modify wgetch to refresh screen when reading ungetch'd characters, - since the application may require this - SVr4 does this. - + refine treatment of newline in wgetstr to echo only when this would - force the screen to scroll. - -970830 - + remove override in wgetstr() that forces keypad(), since SVr4 does - not do this. - + correct y-reference for erasure in wgetstr() when a wrap forces a - scroll. - + correct x-position in waddch() after a wrap forces a scroll. - + echo newline in wgetstr(), making testscanw.c scroll properly when - scanw is done. - + modify vwscanw() to avoid potential buffer overflow. - + rewrote lib_printw.c to eliminate fixed-buffer limits. - > patches by Alexander V. Lukyanov: - + correct an error in handling cooked mode in wgetch(); processing - was in the wrong order. - + simplified logic in wgetch() that handles backspace, etc., by using - wechochar(). - + correct wechochar() so that it interprets the output character as - in waddch(). - + modify pechochar() to use prefresh() rather than doupdate(), since - the latter does not guarantee immediate refresh of the pad. - + modify pechochar() so that if called with a non-pad WINDOW, will - invoke wechochar() instead. - + modify fifo indices to allow fifo to be longer than 127 bytes. - -970823 - + add xterm-8bit to terminfo.src - + moved logic for SP->_fifohold inside check_pending() to make it - work properly when we add calls to that function. - + ensure that bool functions return only TRUE or FALSE, and TRUE/FALSE - are assigned to bool values (patch by H.J.Lu). - > patches by Alexander V. Lukyanov: - + several fixes to getch: - 1. Separate cooked and raw keys in fifo - 2. Fix the case of ungetch'ed KEY_MOUSE - 3. wrap the code for hiding EINTR with ifdef HIDE_EINTR - 4. correctly handle input errors (i.e., EINTR) without loss of raw - keys - 5. recognize ESC KEY_LEFT and similar - 6. correctly handle the case of receiption of KEY_MOUSE from gpm - + correct off-by-one indexing error in _nc_mouse_parse(), that caused - single mouse events (press/release) to be ignored in favor of - composed events (click). Improves on a fix from integrating gpm - support in 961229. - + add another call to check_pending, before scrolling, for - line-breakout optimization - + improve hashmap.c by - 1. fixed loop condition in grow_hunks() - 2. not marking lines with offset 0 - 3. fixed condition of 'too far' criteria, thus one-line hunks are - ignored and two lines interchanged won't pass. - + rewrote/simplified _nc_scroll_optimize() by separating into two - passes, forward/backward, looking for chunks moving only in the given - direction. - + move logic that emits sgr0 when initializing the screen to - _nc_screen_init(), now invoked from newterm. - + move cursor-movement cleanup from endwin() into _nc_mvcur_wrap() - function and screen cleanup (i.e., color) into _nc_screen_wrap() - function. - + add new functions _nc_screen_init(), _nc_screen_resume() and - _nc_screen_wrap(). - + rename _nc_mvcur_scrolln() to _nc_scrolln(). - + add a copy of acs_map[] to the SCREEN structure, where it can be - stored/retrieved via set_term(). - + move variables _nc_idcok, _nc_idlok, _nc_windows into the SCREEN - structure. - -970816 - + implement experimental _nc_perform_scroll(). - + modify newterm (actually _nc_setupscreen()) to emit an sgr0 when - initializing the screen, as does SVr4 (reported by Alexander V. - Lukyanov). - + added test_progs rule to ncurses/Makefile. - + modify test/configure.in to check if initscr is already in $LIBS - before looking for (n)curses library. - + correct version-number in configure script for OSF1 shared-library - options (patch by Tim Mooney). - + add -DNDEBUG to CPPFLAGS for --enable-assertions (as Juergen - originally patched) since the c++ demo files do not necessarily - include ncurses_cfg.h - + supply default value for --enable-assertions option in configure - script (reported by Kriang Lerdsuwanakij ). - > patches by Alexander V. Lukyanov: - + correct/simplify logic of werase(), wclrtoeol() and wclrbot(). See - example firstlast.c - + optimize waddch_literal() and waddch_nosync() by factoring out - common subexpressions. - + correct sense of NDEBUG ifdef for CHECK_POSITION macro. - + corrections to render_char(), to make handling of colored blanks - match SVr4 curses, as well as to correct a bug that xor'd space - against the background character. - + replaced hash function with a faster one (timed it) - + rewrote the hashmap algorithm to be one-pass, this avoids multiple - cost_effective() calls on the same lines. - + modified cost_effective() so it is now slightly more precise. - > patches by H.J.Lu for glibc integration: - + add modules define_key, keyok, name_match, tries - + add makefile rules for some of the unit tests in ncurses (mvcur, - captoinfo, hardscroll, hashmap). - + update Linux configure-script for wide-character definitions. - -970809 - + modify _tracebits() to show the character size (e.g., CS8). - + modify tparm() to emit '\200' where the generated string would have a - null (reported by From: Ian Dall for - terminal type ncr7900). - + modify install process so that ldconfig is not invoked if the - package is built with an install-prefix. - + correct test program for chtype size (reported by Tim Mooney). - + add configure option --disable-scroll-hints, using this to ifdef the - logic that computes indices for _nc_scroll_optimize(). - + add module ncurses/softscroll.c, to perform single-stage computation - of scroll indices used in _nc_scroll_optimize(). This is faster than - the existing scrolling algorithm, but tends to make too-small hunks. - + eliminate fixed buffer size in _nc_linedump(). - + minor fixes to lib_doupdate.c to add tradeoff between clr_eol (el) - and clr_bol (el1), refine logic in ClrUpdate() and ClrBottom() (patch - by Alexander V. Lukyanov). - + add test/testaddch.c, from a pending patch by Alexander V. Lukyanov. - + correct processing of "configure --enable-assertions" option (patch - by Juergen Pfeifer). - -970802 - + add '-s' (single-step) option too test/hashtest.c, correct an error - in loop limit for '-f' (footer option), toggle scrollok() when - writing footer to avoid wrap at lower-right corner. - + correct behavior of clrtoeol() immediately after wrapping cursor, - which was not clearing the line at the cursor position (reported by - Liviu Daia ). - + corrected mapping for ACS_LANTERN, which was 'I' rather than 'i' - (reported by Klaus Weide ). - + many corrections to make progs/capconvert work, as well as make it - reasonably portable and integrated with ncurses 4.1 (reported by Dave - Furstenau ). - -970726 - + add flag SP->_fifohold, corresponding logic to modify the behavior of - the line breakout logic so that if the application does not read - input, refreshes will not be stopped, but only slowed. - + generate slk_attr_off(), slk_attr_on(), slk_attr_set(), vid_attr(), - ifdef'd for wide-character support, since ncurses' WA_xxx attribute - masks are identical with the A_xxx masks. - + modify MKlib_gen.sh to generate ifdef'd functions to support optional - configuration of wide-characters. - + modify tset to behave more like SVr4's tset, which does not modify - the settings of intr, quit or erase unless they are given as command - options (reported by Nelson H. F. Beebe ). - + modify tset to look in /etc/ttys or /etc/ttytype if the configuration - does not have getttynam(). - + extend baudrate table in tset.c to match baudrate() function. - + add table entries for 230400 and 460800 bd to baudrate() function. - + improve breakout logic by allowing it before the first line updated, - which is what SVr4 curses does (patch by Alexander V. Lukyanov). - + correct initialization of vcost in relative_move(), for cursor-down - case (patch by Alexander V. Lukyanov). - > nits gleaned from Debian distribution of 1.9.9g-3: - + install symbolic link for intotocap. - + reference libc directly when making shared libraries. - + correct renaming of curs_scr_dmp.3x in man_db.renames. - + guard tgetflag() and other termcap functions against null cur_term - pointer. - -970719 - + corrected initial state of software echo (error in 970405, reported - by Alexander V. Lukyanov). - + reviewed/added messages to configure script, so that all non-test - options should be accompanied by a message. - + add configure check for long filenames, using this to determine if - it is safe to allow long aliases for terminal descriptions as does - SVr4. - + add configure options for widec (wide character), hashmap (both - experimental). - > patch by Alexander V. Lukyanov: - + hashmap.c - improved by heuristic, so that scroll test works much - better when csr is not available. - + hardscroll.c - patched so that it continues to scroll other chunks - after failure to scroll one. - + lib_doupdate.c - _nc_mvcur_scrolln extended to handle more cases; csr - is avoided as it is relative costly. Fixed wrong coordinates in one - case and wrong string in TRACE. - > patch by Juergen Pfeifer: - + modify C++ binding to compile on AIX 4.x with the IBM C-SET++ - compiler. - -970712 - + remove alternate character set from kterm terminfo entry; it uses the - shift-out control for a purpose incompatible with curses, i.e., font - switching. - + disentangle 'xterm' terminfo entry from some derived entries that - should be based on xterm-r6 instead. - + add cbt to xterm-xf86-xv32 terminfo entry; I added the emulation for - XFree86 3.1.2F, but overlooked its use in terminfo then - T.Dickey. - + correct logic in lib_mvcur.c that uses back_tab. - -970706 - + correct change from 970628 to ClrUpdate() in lib_doupdate.c so that - contents of curscr are saved in newscr before clearing the screen. - This is needed to make repainting work with the present logic of - TransformLine(). - + use napms() rather than sleep() in tset.c to avoid interrupting I/O. - -970705 - + add limit checks to _nc_read_file_entry() to guard against overflow - of buffer when reading incompatible terminfo format, e.g, from OSF/1. - + correct some loop-variable errors in xmc support in lib_doupdate.c - + modify ncurses 'b' test to add gaps, specified by user, to allow - investigation of interaction with xmc (magic cookie) code. - + correct typo in 970524 mods to xmas.c, had omitted empty parameter - list from has_colors(), which gcc ignores, but SVr4 does not - (reported by Larry Virden). - + correct rmso capability in wy50-mc description. - + add configure option "--enable-hard-tabs", renamed TABS_OK ifdef to - USE_HARD_TABS. - > patch by Juergen Pfeifer: - + Add bindings for keyok() and define_key() to the Ada95 packages. - + Improve man pages menu_post.3x and menu_format.3x - + Fix the HTML pages in the Ada95/html directory to reflect the above - changes. - -970628 - + modify change from 970101 to ClrUpdate() in lib_doupdate.c so that - pending changes to both curscr and newscr are flushed properly. - This fixes a case where the first scrolling operation in nvi would - cause the screen to be cleared unnecessarily and repainted before - doing the indexing, i.e., by repeatedly pressing 'j' (reported by - Juergen Pfeifer). - + correct error in trans_string() which added embedded newlines in a - terminfo description to the stored strings. - + remove spurious newlines from sgr in wyse50 (and several other) - terminfo descriptions. - + add configure option for experimental xmc (magic cookie) code, - "--enable-xmc-glitch". When disabled (the default), attributes that - would store a magic cookie are suppressed in vidputs(). The magic - cookie code is far from workable at this stage; the configuration - option is a stopgap. - + move _nc_initscr() from lib_initscr.c to lib_newterm.c - + correct path for invoking make_keys (a missing "./"). - -970621 - + correct sign-extension problem with "infocmp -e", which corrupted - acsc values computed for linux fallback data. - + correct dependency on ncurses/names.c (a missing "./"). - + modify configure script to use '&&' even for cd'ing to existing - directories to work around broken shell interpreters. - + correct a loop-limit in _nc_hash_map() (patch by Alexander V. - Lukyanov). - -970615 - + restore logic in _nc_scroll_optimize() which marks as touched the - lines in curscr that are shifted. - + add new utility 'make_keys' to compute keys.tries as a table rather - than a series of function calls. - + correct include-dependency for tic.h used by name_match - + removed buffer-allocation for name and description from m_item_new.c, - since this might result in incompatibilities with SVr4. Also fixed - the corresponding Ada95 binding module (patch by Juergen Pfeifer, - from report by Avery Pennarun ) - + removed the mechanism to timestamp the generated Ada95 sources. This - resulted always in generating patches for the HTML doc, even when - nothing really changed (patch by Juergen Pfeifer). - + improve man page mitem_new.3x (patch by Juergen Pfeifer). - -970614 - + remove ech capability from rxvt description because it does not work. - + add missing case logic for infocmp -I option (reported by Lorenzo M. - Catucci ) - + correct old bug in pnoutrefresh() unmasked by fix in 970531; this - caused glitches in the ncurses 'p' test since the area outside the - pad was not compared when setting up indices for _nc_scroll_optimize. - + rewrote tracebits() to workaround misdefinition of TOSTOP on Ultrix - 4.4, as well as to eliminate fixed-size buffer (reported by Chris - Tanner ) - + correct prototype for termattrs() as per XPG4 version 2. - + add placeholder prototypes for color_set(), erasewchar(), - term_attrs(), wcolor_set() as per XPG4 version 2. - + correct attribution for progs/progs.priv.h and lib_twait.c - + improve line-breakout logic by checking based on changed lines rather - than total lines (patch by Alexander V. Lukyanov). - + correct loop limits for table-lookup of enumerated value in form - (patch by Juergen Pfeifer). - + improve threshhold computation for determining when to call ClrToEOL - (patch by Alexander V. Lukyanov). - -970531 - + add configure option --disable-database to force the library to - use only the fallback data. - + add configure option --with-fallbacks, to specify list of fallback - terminal descriptions. - + add a symbolic link for ncurses.h during install; too many programs - still assume there's an ncurses.h - + add new terminfo.src entry for xterm-xf86-v33. - + restore terminfo.src entry for emu to using setf/setb, since it is - not, after all, generating ANSI sequences. Corrected missing comma - that caused setf/setb entries to merge. - + modify mousemask() to use keyok() to enable/disable KEY_MOUSE, so - that applications can disable ncurses' mouse and supply their own - handler. - + add extensions keyok() and define_key(). These are designed to allow - the user's application better control over the use of function keys, - e.g., disabling the ncurses KEY_MOUSE. (The define_key idea was from - a mailing-list thread started by kjahds@kjahds.com Nov'1995). - + restore original behavior in ncurses 'g' test, i.e., explicitly - set the keypad mode rather than use the default, since it confuses - people. - + rewrote the newdemo banner so it's readable (reported by Hugh - Daniel). - + tidy up exit from hashtest (reported by Hugh Daniel). - + restore check for ^Q in ncurses 'g' test broken in 970510 (reported - by Hugh Daniel) - + correct tput program, checking return-value of setupterm (patch by - Florian La Roche). - + correct logic in pnoutrefresh() and pechochar() functions (reported - by Kriang Lerdsuwanakij ). The computation - of 'wide' date to eric's #283 (1.9.9), and the pechochar bug to the - original implementation (1.9.6). - + correct typo in vt102-w terminfo.src entry (patch by Robert Wuest - ) - + move calls of _nc_background() out of various loops, as its return - value will be the same for the whole window being operated on (patch - by J.T.Conklin). - + add macros getcur[xy] getbeg[xy] getpar[xy], which are defined in - SVr4 headers (patch by J.T.Conklin ) - + modify glibc addon-configure scripts (patch by H.J.Lu). - + correct a bug in hashmap.c: the size used for clearing the hashmap - table was incorrect, causing stack corruption for large values of - LINES, e.g., >MAXLINES/2 (patch by Alexander V. Lukyanov). - + eric's terminfo 9.13.23 & 9.13.24 changes: replaced minitel-2 entry, - added MGR, ansi-nt (note: the changes described for 9.13.24 have not - been applied). - > several changes by Juergen Pfeifer: - + correct a missing error-return in form_driver.c when wrapping of a - field is not possible. - + correct logic in form_driver.c for configurations that do not have - memccpy() (reported by Sidik Isani ) - + change several c++ binding functions to inline. - + modify c++ menu binding to inherit from panels, for proper - initialization. - + correct freeing of menu items in c++ binding. - + modify c++ binding to reflect removal of const from user data pointer - in forms/menus libraries. - -970524 - + add description of xterm-16color. - + modify name of shared-library on *BSD to end with $(REL_VERSION) - rather than $(ABI_VERSION) to match actual convention on FreeBSD - (cf: 960713). - + add OpenBSD to shared-library case, same as NetBSD and FreeBSD - (reported by Hugh Daniel ). - + corrected include-dependency in menu/Makefile so that "make install" - works properly w/o first doing "make". - + add fallback definition for isascii, used in infocmp. - + modify xmas to use color, and to exit right away when a key is - pressed. - + modify gdc so that the scrolled digits function as described (there - was no time delay between the stages, and the digits overwrote the - bounding box without tidying up). - + modify lib_color.c to use setaf/setab only for the ANSI color codes - 0 through 7. Using 16 colors requires setf/setb. - + modify ncurses 'c' test to work with 16 colors, as well as the normal - 8 colors. - + remove const qualifier from user data pointer in forms and menus - libraries (patch by Juergen Pfeifer). - + rewrote 'waddchnstr()' to avoid using the _nc_waddch_nosync() - function, thereby not interpreting tabs, etc., as per spec (patch by - Alexander V. Lukyanov). - -970517 - + suppress check for pre-existing ncurses header if the --prefix - option is specified. - + add configure options "--with-system-type" and - "--with-system-release" to assist in checking the generated - makefiles. - + add configure option "--enable-rpath" to allow installers to specify - that programs linked against shared libraries will have their library - path embedded, allowing installs into nonstandard locations. - + add flags to OSF1 shared-library options to specify version and - symbol file (patch by Tim Mooney ) - + add missing definition for ABI_VERSION to c++/Makefile.in (reported - by Satoshi Adachi ). - + modify link flags to accommodate HP-UX linker which embeds absolute - pathnames in executables linked against shared libraries (reported by - Jason Evans , solved by Alan Shutko - ). - + drop unnecessary check for attribute-change in onscreen_mvcur() since - mvcur() is the only caller within the library, and that check in turn - is exercised only from lib_doupdate.c (patch by Alexander V. - Lukyanov). - + add 'blank' parameter to _nc_scroll_window() so _nc_mvcur_scrolln() - can use the background of stdscr as a parameter to that function - (patch by Alexander V. Lukyanov). - + moved _nc_mvcur_scrolln() from lib_mvcur.c to lib_doupdate.c, to use - the latter's internal functions, as well as to eliminate unnecessary - cursor save/restore operations (patch by Alexander V. Lukyanov). - + omit parameter of ClrUpdate(), since it is called only for newscr, - further optimized/reduced by using ClearScreen() and TransformLine() - to get rid of duplicate code (patch by Alexander V. Lukyanov). - + modify scrolling algorithm in _nc_scroll_optimize() to reject hunks - that are smaller than the distance to be moved (patch by Alexander V. - Lukyanov). - + correct a place where the panel library was not ifdef'd in ncurses.c - (Juergen Pfeifer) - + documentation fixes (Juergen Pfeifer) - -970515 4.1 release for upload to prep.ai.mit.edu - + re-tag changes since 970505 as 4.1 release. - -970510 - + modify ncurses 'g' test to allow mouse input - + modify default xterm description to include mouse. - + modify configure script to add -Wwrite-strings if gcc warnings are - enabled while configuring --enable-const (and fixed related - warnings). - + add toggle, status display for keypad mode to ncurses 'g' test to - verify that keypad and scrollok are not inherited from parent window - during a call to newwin. - + correction to MKexpanded.sh to make it work when configure --srcdir - is used (reported by H.J.Lu). - + revise test for bool-type, ensuring that it checks if builtin.h is - available before including it, adding test for sizeof(bool) equal - to sizeof(short), and warning user if the size cannot be determined - (reported by Alexander V. Lukyanov). - + add files to support configuration of ncurses as an add-on library - for GNU libc (patch by H.J.Lu ) - -970506 - + correct buffer overrun in lib_traceatr.c - + modify change to lib_vidattr.c to avoid redundant orig_pair. - + turn on 'echo()' in hanoi.c, since it is initially off. - + rename local 'errno' variable in etip.h to avoid conflict with global - (H.J.Lu). - + modify configure script to cache LD, AR, AR_OPTS (patch by H.J.Lu - ) - -970505 4.1 pre-release - + regenerate the misc directory html dumps without the link list, which - is not useful. - + correct dependency in form directory makefile which caused - unnecessary recompiles. - + correct substitution for ABI_VERSION in test-makefile - + modify install rules for shared-library targets to remove the target - before installing, since some install programs do not properly handle - overwrite of symbolic links. - + change order of top-level targets so that 'include' immediate - precedes the 'ncurses' directory, reducing the time between new - headers and new libraries (requested by Larry Virden). - + modify lib_vidattr.c so that colors are turned off only before - modifying other attributes, turned on after others. This makes the - hanoi.c program display correctly on FreeBSD console. - + modify debug code in panel library to print user-data addresses - rather than the strings which they (may) point to. - + add check to ensure that C++ binding and demo are not built with g++ - versions below 2.7, since the binding uses templates. - + modify c++ binding and demo to build and run with SGI's c++ compiler. - (It also compiles with the Sun SparcWorks compiler, but the demo does - not link, due to a vtbl problem). - + corrections to demo.cc, to fix out-of-scope variables (Juergen - Pfeifer). - -970503 - + correct memory leak in _nc_trace_buf(). - + add configure test for regexpr.h, for Unixware 1.x. - + correct missing "./" prefixing names of generated files in ncurses - directory. - + use single-quotes in configure scripts assignments for MK_SHARED_LIB - to workaround shell bug on FreeBSD 2.1.5 - + remove tabs from intermediate #define's for GCC_PRINTF, GCC_SCANF - that caused incorrect result in ncurses_cfg.h - + correct initialization in lib_trace.c, which omitted version info. - + remove ech, el1 attributes from cons25w description; they appear to - malfunction in FreeBSD 2.1.5 - + correct color attributes in terminfo.src and lib_color.c to match - SVr4 behavior by interchanging codes 1,4, 3,6 in the setf/setb - capabilities. - + use curs_set() rather than checks via tigetstr() for test programs - that hide the cursor: firework, rain, worm. - + ensure that if the terminal lacks change_scroll_region, parm_index - and parm_rindex are used only to scroll the whole screen (patch by - Peter Wemm). - + correct curs_set() logic, which did not return ERR if the requested - attributes did not exist, nor did it assume an unknown initial state - for the cursor (patch by Alexander V. Lukyanov). - + combine IDcTransformLine and NoIDcTransformLine to new TransformLine - function in lib_doupdate.c (patch by Alexander V. Lukyanov). - + correct hashmap.c, which did not update index information (patch by - Alexander V. Lukyanov). - + patch by Juergen Pfeifer for C++ binding and demo (see c++/NEWS) - + correct index in lib_instr.c (Juergen Pfeifer). - + correct typo in 970426 patch from Tom's cleanup of lib_overlay.c - (Juergen Pfeifer). - -970426 - + corrected cost computation in PutRange(), which was using - milliseconds compared to characters by adding two new members to the - SCREEN struct, _hpa_ch_cost and _cup_ch_cost. - + drop ncurses/lib_unctrl.c, add ncurses/MKunctrl.awk to generate a - const array of strings (suggested by Alexander V. Lukyanov, though - with a perl script 970118). - + rewrote ncurses 'b' test to better exercise magic-cookie (xmc), as - well as noting the attributes that are not supported by a terminal. - + trace the computation of cost values in lib_mvcur.c - + modify _nc_visbuf() to use octal rather than hex, corrected sign - extension bug in that function that caused buffer overflow. - + modify trace in lib_acs.c to use _nc_visbuf(). - + suppress trace within _traceattr2(). - + correct logic of _tracechtype2(), which did not account for repeats - or redefinition within an acsc string. - + modify debug-library version baudrate() to use environment variable - $BAUDRATE to override speed computation. This is needed for - regression testing. - + correct problems shown by "weblint -pedantic". - + update mailing-list information (now ncurses@bsdi.com). - -970419 - + Improve form_field_validation.3x manpage to better describe the - precision parameter for TYPE_NUMERIC and TYPE_INTEGER. Provide more - precise information how the range checking can be avoided. (patch by - Juergen Pfeifer, reported by Bryan Henderson) - + change type of min/max value of form types TYPE_INTEGER to long to - match SVr4 documentation. - + set the form window to stdscr in set_form_win() so that form_win() - won't return null (patch by Juergen Pfeifer, reported by Bryan - Henderson ). - -970412 - + corrected ifdef'ing of inline (from 970321) for TRACE vs C++. - + corrected toggle_attr_off() macro (patch by Andries.Brouwer). - + modify treatment of empty token in $MANPATH to /usr/man (reported by - ) - + modify traces that record functions-called so that chtype and attr_t - values are expressed symbolically, to simplify reuse of generated - test-scripts on SVr4 regression testing. - + add new trace functions _traceattr2() and _tracechtype2() - -970405 - + add configure option --enable-const, to support the use of 'const' - where XSI should have, but did not, specify. This defines - NCURSES_CONST, which is an empty token otherwise, for strict - compatibility. - + make processing of configure options more verbose by echoing the - --enable/--with values. - + add configure option --enable-big-core - + set initial state of software echo off as per XSI. - + check for C++ builtin.h header - + correct computation of absolute-path for $INSTALL that dropped "-c" - parameter from the expression. - + rename config.h to ncurses_cfg.h to avoid naming-conflict when - ncurses is integrated into larger systems (from diffs by H.J.Lu for - libc). - + correct inequality in lib_doupdate.c that caused a single-char to not - be updated when the char on the right-margin was not blank, idcok() - was true (patch by Alexander V. Lukyanov 970124, also reported by - Kriang Lerdsuwanakij 970329). - + modify 'clean' rule in include/Makefile so that files created by - configure script are removed in 'distclean' rule instead. - -970328 - + correct array limit in tparam_internal(), add case to interpret "%x" - (patch by Andreas Schwab) - + rewrote number-parsing in ncurses.c 'd' test; it did not reset the - value properly when non-numeric characters were given (reported by - Andreas Schwab ) - -970321 - + move definition of __INTERNAL_CAPS_VISIBLE before include for - progs.priv.h (patch by David MacKenzie). - + add configuration summary, reordered check for default include - directory to better accommodate a case where installer is configuring - a second copy of ncurses (reported by Klaus Weide - ) - + moved the #define for 'inline' as an empty token from the - $(CFLAGS_DEBUG) symbol into config.h, to avoid redefinition warning - (reported by Ward Horner). - + modify test for bool builtin type to use 'unsigned' rather than - 'unknown' when cross-compiling (reported by Ward Horner). - -970315 - + add header dependencies so that "make install.libs" will succeed - even if "make all" is not done first. - + moved some macros from lib_doupdate.c to curses.priv.h to use in - expanded functions with ATAC. - + correct implementation of lib_instr.c; both XSI and SVr4 agree that - the winnstr functions can return more characters than will fit on one - line. - -970308 - + modify script that generates lib_gen.c to support traces of called & - return. - + add new configure option "--disable-macros", for testing calls within - lib_gen.c - + corrected logic that screens level-checking of called/return traces. - -970301 - + use new configure macro NC_SUBST to replace AC_PATH_PROG, better - addressing request by Ward Horner. - + check for cross-compiling before trying to invoke the autoconf - AC_FUNC_SETVBUF_REVERSED macro (reported by Ward Horner) - + correct/simplify loop in _nc_visbuf(), 970201 changes omitted - a pointer-increment. - + eliminate obsolete symbol SHARED_ABI from dist.mk (noted by - Florian La Roche). - -970215 - + add configure option --enable-expanded, together with code that - implements an expanded form of certain complex macros, for testing - with ATAC. - + disable CHECK_POSITION unless --with-assertions is configured - (Alexander Lukyanov pointed out that this is redundant). - + use keyname() to show traced chtype values where applicable rather - than _tracechar(), which truncates the value to 8-bits. - + minor fixes to TRACE_ICALLS, added T_CREATE, TRACE_CCALLS macros. - + modify makefiles in progs and test directories to avoid using C - preprocessor options on link commands (reported by Ward Horner) - + correct ifdef/include-order for nc_alloc.h vs lib_freeall.c (reported - by Ward Horner) - + modify ifdef's to use configure-defined symbols consistently - (reported by Ward Horner) - + add/use new makefile symbols AR, AR_OPTS and LD to assist in non-UNIX - ports (reported by Ward Horner ) - + rename struct try to struct tries, to avoid name conflict with C++ - (reported by Gary Johnson). - + modify worm.c to hide cursor while running. - + add -Wcast-qual to gcc warnings, fix accordingly. - + use PutChar rather than PutAttrChar in ClrToEOL to properly handle - wrapping (Alexander Lukyanov). - + correct spurious echoing of input in hanoi.c from eric's #291 & #292 - patches (reported by Vernon C. Hoxie ). - + extend IRIX configuration to IRIX64 - + supply missing install.libs rule needed after restructuring - test/Makefile.in - -970208 - + modify "make mostlyclean" to leave automatically-generated source - in the ncurses directory, for use in cross-compiles. - + autogenerated object-dependencies for test directory - + add configure option --with-rcs-ids - + modify configuration scripts to generate major/minor/patch versions - (suggested by Alexander Lukyanov). - + supply missing va_end's in lib_scanw.c - + use stream I/O for trace-output, to eliminate fixed-size buffer - + add TRACE_ICALLS definition/support to lib_trace.c - + modify Ada95 binding to work with GNAT 3.09 (Juergen Pfeifer). - -970201 - + add/modify traces for called/return values to simplify extraction - for test scripts. - + changed _nc_visbuf to quote its result, and to dynamically allocate - the returned buffer. - + invoke ldconfig after installing shared library - + modify install so that overwrite applies to shared library -lcurses - in preference to static library (reported by Zeyd 960928). - + correct missing ';' in 961221 mod to overwrite option use of $(LN_S). - + fixes to allow "make install" to work without first doing a "make - all" (suggested by Larry Virden). - -970125 - + correct order of #ifdef for TABS_OK. - + instrumented toe.c to test memory-leaks. - + correct memory-deallocation in toe.c (patch by Jesse Thilo). - + include in configuration test for regex.h (patch by - Andreas Schwab) - + make infocmp recognize -I option, for SVr4 compatibility (reported by - Andreas Schwab ) - -970118 - + add extension 'use_default_colors()', modified test applications that - use default background (firework, gdc, hanoi, knight, worm) to - demonstrate. - + correct some limit checks in lib_doupdate.c exposed while running - worm. - + use typeCalloc macro for readability. - + add/use definition for CONST to accommodate testing with Solaris - (SVr4) curses, which doesn't use 'const' in its prototypes. - + modify ifdef's in test/hashtest.c and test/view.c to compile with - Solaris curses. - + modify _tracedump() to pad pad colors & attrs lines to match change - in 970101 showing first/last changes. - + corrected location of terminating null on dynamically allocated forms - fields (patch by Per Foreby). - -970111 - + added headers to make view.c compile on SCO with the resizeterm() - code (i.e., struct winsize) - though this compiles, I don't have a - suitable test configuration since SIGWINCH doesn't pass my network to - that machine - T.Dickey. - + update test/configure.in to supply some default substitutions. - + modify configure script to add -lncurses after -lgpm to fix problem - linking against static libraries. - + add a missing noraw() to test/ncurses.c (places noted by Jeremy - Buhler) - + add a missing wclear() to test/testcurs.c (patch by Jeremy Buhler - ) - + modify headers to accommodate compilers that don't allow duplicate - "#define" lines for NCURSES_VERSION (reported by Larry W. Virden - ) - + fix formatting glitch in curs_getch.3x (patch by Jesse Thilo). - + modify lib_doupdate to make el, el1 and ed optimization use the - can_clear_with macro, and change EmitRange to allow leaving cursor at - the middle of interval, rather than always at the end (patch by - Alexander Lukyanov originally 960929, resync 970106). - -970104 - + workaround defect in autoconf 2.12 (which terminates configuration - if no C++ compiler is found) by adding an option --without-cxx. - + modify several man-pages to use tbl, where .nf/.fi was used (reported - by Jesse Thilo). - + correct font-codes in some man-pages (patch by Jesse Thilo - ) - + use configure script's knowledge of existence of g++ library for the - c++ Makefile (reported by Paul Jackson). - + correct misleading description of --datadir configuration option - (reported by Paul Jackson ) - -970101 - + several corrections to _nc_mvcur_scrolln(), prompted by a bug report - from Peter Wemm: - > the logic for non_dest_scroll_region was interchanged between the - forward & reverse scrolling cases. - > multiple returns from the function allowed certain conditions to do - part of an operation before discovering that it couldn't be - completed, returning an error without restoring the cursor. - > some returns were ERR, where the function had completed the - operation, because the insert/delete line logic was improperly - tested (this was probably the case Peter saw). - > contrary to comments, some scrolling cases were tested after the - insert/delete line method. - + modify _tracedump() to show first/last changes. - + modify param of ClrUpdate() in lib_doupdate.c to 'newscr', fixes - refresh problem (reported by Peter Wemm) that caused nvi to not show - result of ":r !ls" until a ^L was typed. - -961229 (internal alpha) - + correct some of the writable-strings warnings (reported by Gary - Johnson ). Note that most of the remaining ones - are part of the XSI specification, and can't be "fixed". - + improve include-dependencies in form, menu, panel directories. - + correct logic of delay_output(), which would return early if - there is data on stdin. - + modify interface & logic of _nc_timed_wait() to support 2 file - descriptors, needed for GPM. - + integrate patch by Andrew Kuchling for GPM (mouse) - support, correcting logic in wgetch() and _nc_mouse_parse() which - prevented patch from working properly. - + improve performance of panel algorithm (Juergen Pfeifer 961203). - + strip RCS id's from generated .html files in Ada95 subtree. - + resync with generated .html files (Juergen Pfeifer 961223). - + terminfo.src 10.1.0 from Eric. - -961224 4.0 release - + release as 4.0 to accommodate Linux ld.so.1.8.5 - + correct syntax/spelling, regenerated .doc files from .html using - lynx 2.5 - + refined forms/menus makefiles (Juergen Pfeifer 961223). - -961221 - snapshot - + remove logic in read_entry.c that attempts to refine errno by using - 'access()' for the directory (from patch by Florian La Roche). - + correct configure test/substitution that inhibits generating - include-path to /usr/include if gcc is used (reported by Florian La - Roche). - + modify setupterm() to allocate new TERMINAL for each call, just as - solaris' curses does (Alexander Lukyanov 960829). - + corrected memory leaks in read_entry.c - + add configure options --with-dbmalloc, --with-dmalloc, and - --disable-leaks, tested by instrumenting infocmp, ncurses programs. - + move #include's for stdlib.h and string.h to *.priv.h to accommodate - use of dbmalloc. - + modify use of $(LN_S) to follow recommendation in autoconf 2.12, - i.e., set current directory before linking. - + split-out panel.priv.h, improve dependencies for forms, menus - (Juergen Pfeifer 961204). - + modify _nc_freewin() to reset globals curscr/newscr/stdscr when - freeing the corresponding WINDOW (Purify). - + modify delwin() to return ERR if the window to be deleted has - subwindows, needed as a side-effect of resizeterm() (Purify). Tested - and found that SVr4 curses behaves this way. - + implement logic for _nc_freeall(), bringing stub up to date. - -961215 - + modify wbkgd() so that it doesn't set nulls in the rendered text, - even if its argument doesn't specify a character (fixes test case by - Juergen Pfeifer for bug-report). - + set window-attributes in wbkgd(), to simplify comparison against - Solaris curses, which does this. - -961214 - snapshot - + replace most constants in ncurses 'o' test by expressions, making it - work with wider range of screen sizes. - + add options to ncurses.c to specify 'e' test softkey format, and the - number of header/footer lines to rip-off. - + add ^R (repaint after resize), ^L (refresh) commands to ncurses 'p' - test. - + add shell-out (!) command to ncurses 'p' test to allow test of - resize between endwin/refresh. - + correct line-wrap case in mvcur() by emitting carriage return, - overlooked in 960928, but needed due to SVr4 compatibility changes to - terminal modes in 960907. - + correct logic in wresize that causes new lines to be allocated, - broken for the special case of increasing rows only in 960907's fix - for subwindows. - + modify configure script to generate $(LDFLAGS) with -L and -l options - in preference to explicit library filenames. (NOTE: this may - require further amending, since I vaguely recall a dynamic loader - that did not work properly without the full names, but it should be - handled as an exception to the rule, since some linkers do bulk - inclusion of libraries when given the full name - T.Dickey). - + modify configure script to allow user-supplied $CFLAGS to set the - debug-option in all libraries (requested by lots of people). - + use return consistently from main(), rather than exit (reported by - Florian La Roche). - + add --enable-getcap-cache option to configure, normally disabled - (requested by Florian La Roche). - + make configure test for gettimeofday() and possibly -lbsd more - efficient (requested by Florian La Roche florian@knorke.saar.de) - + minor adjustments to Ada95 binding (patches by Juergen Pfeifer) - + correct attributes after emitting orig_pair in lib_vidattr.c (patch - by lav@yars.free.net). - -961208 - + corrected README wrt Ada95 (Juergen Pfeifer) - -961207 - snapshot - + integrate resizeterm() into doupdate(), so that if screen size - changes between endwin/refresh, ncurses will resize windows to fit - (this needs additional testing with pads and softkeys). - + add, for memory-leak testing, _nc_freeall() entrypoint to free all - data used in ncurses library. - + initialize _nc_idcok, _nc_idlok statically to resolve discrepancy - between initscr() and newwin() initialization (reported by - lav@yars.free.net). - + test built VERSION=4.0, SHARED_ABI=4 with Linux ld.so.1.8.5 - (set beta versions to those values -- NOTE that subsequent pre-4.0 - beta may not be interchangeable). - + modify configure script to work with autoconf 2.12 - -961130 1.9.9g release - + add copyright notices to configuration scripts (written by Thomas - Dickey). - -961127 - > patch by Juergen Pfeifer (mostly for panel): - + cosmetic improvement for a few routines in the ncurses core library - to avoid warning messages. - + the panel overlap detection was broken - + the panel_window() function was not fool-proof. - + Some inlining... - + Cosmetic changes (also to avoid warning messages when compiling with - -DTRACE). - -961126 - > patch by Juergen Pfeifer: - + eliminates warning messages for the compile of libform. - + inserts Per Foreby's new field type TYPE_IPV4 into libform. - + Updates man page and the Ada95 binding to reflect this. - + Improves inlining in libmenu and libform. - -961120 - + improve the use of the "const" qualifier in the - panel library (Juergen Pfeifer) - + change set_panel_userptr() and panel_userptr() to use void* - (Juergen Pfeifer) - -961119 - + change ABI to 3.4 - + package with 961119 version of Ada95 binding (fixes for gnat-3.07). - (Juergen Pfeifer) - + correct initialization of the stdscr pseudo panel in panel library - (Juergen Pfeifer) - + use MODULE_ID (rcs keywords) in forms and menus libraries (Juergen - Pfeifer). - > patch #324 by Eric. - + typo in curs_termcap man page (reported by Hendrik Reichel - <106065.2344@compuserve.com>) - + change default xterm entry to xterm-r6. - + add entry for color_xterm - -961116 - snapshot - + lint found several functions that had only #define implementations - (e.g., attr_off), modified curses.h.in to generate them as per XSI - Curses requirement that every macro be available as a function. - + add check in infocmp.c to guard against string compare of - CANCELLED_STRING values. - + modify firework.c, rain.c to hide cursor while running. - + correct missing va_end in lib_tparm.c - + modify hanoi.c to work on non-color terminals, and to use timing - delays when in autoplay mode. - + correct 'echochar()' to refresh immediately (reported by Adrian - Garside 94ajg2@eng.cam.ac.uk) - > patch #322 by eric: - + reorganize terminfo.src entries for xterm. - -961109 - snapshot - + corrected error in line-breakout logic (lib_doupdate.c) - + modified newdemo to use wgetch(win) rather than getch() to eliminate - a spurious clear-screen. - + corrected ifdef's for 'poll()' configuration. - + added modules to ncurses, form, menu for Ada95 binding (Juergen - Pfeifer). - + modify set_field_buffer() to allow assignment of string longer than - the initial buffer length, and to return the complete string rather - than only the initial size (Juergen Pfeifer and Per Foreby - ). - -961102 - snapshot - + configure for 'poll()' in preference to 'select()', since older - systems are more likely to have a broken 'select()'. - + modified render_char() to avoid OR'ing colors. - + minor fixes to testcurs.c, newdemo.c test programs: ifdef'd out the - resize test, use wbkgd and corrected box() parameters. - + make flushinp() test work in ncurses.c by using napms() instead of - sleep(). - + undo Eric's changes to xterm-x11r6 (it no longer matched the X11R6.1 - distribution, as stated) - + terminfo 9.13.18 (resync by Eric) - + check for getenv("HOME") returning null (Eric). - + change buffer used to decode xterm-mouse commands to unsigned to - handle displays wider than 128 chars (Juergen Pfeifer). - + correct typo curs_outopts.3x (Juergen Pfeifer). - + correct limit-checking in wenclose() (Juergen Pfeifer). - + correction to Peter Wemm's newwin change (Thomas Fehr - ). - + corrections to logic that combines colors and attributes; they must - not be OR'd (Juergen Pfeifer, extending from report/patch by Rick - Marshall). - -961026 - snapshot - + reset flags in 'getwin()' that might cause refresh to attempt to - manipulate the non-existent parent of a window that is read from a - file (lib_screen.c). - + restructure _nc_timed_wait() to log more information, and to try to - recover from badly-behaved 'select()' calls (still testing this). - + move define for GOOD_SELECT into configure script. - + corrected extra '\' character inserted before ',' in comp_scan.c - + corrected expansion of %-format characters in dump_entry.c; some were - rendered as octal constants. - + modify dump_entry.c to make terminfo output more readable and like - SVr4, by using "\s" for spaces (leading/trailing only), "\," for - comma, "\^" and "\:" as well. - + corrected some memory leaks in ncurses.c, and a minor logic error - in the top-level command-parser. - + correction for label format 4 (PC style with info line), a - slk_clear(), slk_restore() sequence didn't redraw the info line - (Juergen Pfeifer). - + modified the slk window (if simulated) to inherit the background and - default character attributes from stdscr (Juergen Pfeifer). - + corrected limit-check in set_top_row (Juergen Pfeifer). - -961019 - snapshot - + correct loop-limit in wnoutrefresh(), bug exposed during pipe-testing - had '.lastchar' entry one beyond '._maxx'. - + modify ncurses test-program to work with data piped to it. - + corrected pathname computation in run_tic.sh, removing extra "../" - (reported by Tim Mooney). - + modified configure script to use previous install's location for - curses.h - + added NetBSD and FreeBSD to platforms that use --prefix=/usr as - a default. - -961013 - + revised xterm terminfo descriptions to reflect the several versions - that are available. - + corrected a pointer reference in dump_entry.c that didn't test if - the pointer was -1. - -961005 - snapshot - + correct _nc_mvcur_scrolln for terminals w/o scrolling region. - + add -x option to hashtest to control whether it allows writes to the - lower-right corner. - + ifdef'd (NCURSES_TEST) the logic for _nc_optimize_enable to make it - simpler to construct tests (for double-check of _nc_hash_map tests). - + correct ifdef's for c++ in curses.h - + change default xterm type to xterm-x11r6. - + correct quoting in configure that made man-pages installed with - $datadir instead of actual terminfo path. - + correct whitespace in include/Caps, which caused kf11, clr_eol and - clr_end to be omitted from terminfo.5 - + fix memory leaks in delscreen() (adapted from Alexander Lukyanov). - + improve appearance of marker in multi-selection menu (Juergen - Pfeifer) - + fix behaviour for forms with all fields inactive (Juergen - Pfeifer) - + document 'field_index()' (Juergen Pfeifer) - > patch #321 by eric: - + add some more XENIX keycap translations to include/Caps. - + modify newwin to set initial state of each line to 'touched' - (from patch by Peter Wemm ) - + in SET_TTY, replace TCSANOW with TCSADRAIN (Alexander Lukyanov). - -960928 - snapshot - + ifdef'd out _nc_hash_map (still slower) - + add graphic characters to vt52 description. - + use PutAttrChar in ClrToEOL to ensure proper background, position. - + simplify/correct logic in 'mvcur()' that does wrapping; it was - updating the position w/o actually moving the cursor, which broke - relative moves. - + ensure that 'doupdate()' sets the .oldindex values back to a sane - state; this was causing a spurious refresh in ncurses 'r'. - + add logic to configure (from vile) to guard against builders who - don't remove config.cache & config.status when doing new builds. - + corrected logic for 'repeat_char' in EmitRange (from #317), which - did not follow the 2-parameter scheme specified in XSI. - + corrected logic of wrefresh, wnoutrefresh broken in #319, making - clearok work properly (from report by Michael Elkins). - + corrected problem with endwin introduced by #314 (removing the - scrolling-region reset) that broke ncurses.c tests. - + corrected order of args in AC_CHECK_LIB (from report by Ami Fischman - ). - + corrected formatting of terminfo.5 tables (Juergen Ehling) - > patch 320 by eric: - + change ABI to 3.3 - + emit a carriage-return in 'endwin()' to workaround a kernel bug in - BSDI. (requested by Mike Karels ) - + reverse the default o configure --enable-termcap (consensus). - > patch 319 by eric: - + modified logic for clearok and related functions (from report by - Michael Elkins) - untested - > patch 318 by eric: - + correction to #317. - > patch 317 by eric: - + re-add _nc_hash_map - + modify EmitRange to maintain position as per original design. - + add hashtest.c, program to time the hashmap optimization. - > patch 316 by eric: - + add logic to deal with magic-cookie (how was this tested?) - (lib_doupdate.c). - + add ncurses.c driver for magic-cookie, some fixes to ncurses.c - > patch 315 by eric: - + merged A. Lukyanov's patch to use ech and rep - untested - (lib_doupdate.c). - + modified handling of interrupted system calls - untested - (lib_getch.c, lib_twait.c). - + new function _nc_mvcur_resume() - + fix return value for 'overlay()', 'overwrite()' - -960914 - snapshot - + implement subwindow-logic in wresize, minor fixes to ncurses 'g' - test. - + corrected bracketing of fallback.c (reported/suggested fix by Juergen - Ehling ). - + update xterm-color to reflect XFree86 3.1.3G release. - + correct broken dtterm description from #314 patch (e.g., spurious - newline. The 'pairs' change might work, but no one's tested it - either ;-) - + clarify the documentation for the builtin form fieldtypes (Juergen - Pfeifer) - > patch 314 by eric: - + Enhancement suggested by A. Lukyanov -- reset scroll region on - startup rather than at wrapup time. - + Fix suggested by A. Lukyanov, make storage of palette tables - and their size counts per-screen for multi-terminal applications. - + Improved error reporting for infotocap translation errors. - + Update terminfo.src to 9.13.14. - -960907 - snapshot - + rewrote wgetstr to make it erase control chars and also fix bogus use - of _nc_outstr which caused the display to not wrap properly (display - problem reported by John M. Flinchbaugh ) - + modify ncurses 'f' test to accommodate terminal responses to C1 codes - (and split up this screen to accommodate non-ANSI terminals). - + test enter_insert_mode and exit_insert_mode in has_ic(). - + removed bogus logic in mvcur that assumes nl/nonl set output modes - (XSI says they are input modes; SVr4 implements this). - + added macros SET_TTY, GET_TTY to term.h - + correct getstr() logic that altered terminal modes w/o restoring. - + disable ICRNL, etc., during initialization to match SVr4, removing - the corresponding logic from raw, cbreak, etc. - + disable ONLCR during initialization, to match SVr4 (this is needed - for cursor optimization when the cursor-down is a newline). - + replaced Eric's imitation of wresize with my original (his didn't - work). - -960831 - snapshot - + memory leaks (Alexander V. Lukyanov). - + modified pnoutrefresh() to be more tolerant of too-large screen - size (reported by Michael Elkins). - + correct handling of terminfo files with no strings (Philippe De - Muyter) - + correct "tic -s" to take into account -I, -C options. - + modify ncurses 'f' test to not print codes 80 through 9F, since they - are considered control codes by ANSI terminals. - -960824 - snapshot - + correct speed variable-type in 'tgetent()' (reported by Peter Wemm) - + make "--enable-getcap" configuration-option work (reported by - Peter Wemm ) - -960820 - + correct err in 960817 that changed return-value of tigetflag() - (reported by Alexander V. Lukyanov). - + modify infocmp to use library default search-path for terminfo - directory (Alexander V. Lukyanov). - -960817 - snapshot - + corrected an err in mvcur that broke resizing-behavior. - + correct fall-thru behavior of _nc_read_entry(), which was not finding - descriptions that existed in directories past the first one searched - (reported by Alexander V. Lukyanov) - + corrected typo in dtterm description. - > patch 313 by eric: - + add dtterm description - + clarify ncurses 'i' test (drop vscanf subtest) - -960810 - snapshot - + correct nl()/nonl() to work as per SVr4 & XSI. - + minor fixes to ncurses.c (use 'noraw()', mvscanw return-code) - + refine configure-test for -g option (Tim Mooney). - + correct interaction between O_BLANK and NEW_LINE request in form - library (Juergen Pfeifer) - -960804 - + revised fix to tparm; previous fix reversed parameter order. - > patch 312 by eric: - correct terminfo.src corrupted by #310 - > patch 311 by eric: - + fix idlok() and idcok() and the default of the idlok switch. - -960803 - snapshot - + corrected tparm to handle capability strings without explicit pop - (reported by William P Setzer) - + add fallback def for GCC_NORETURN, GCC_UNUSED for termcap users - (reported by Tim Mooney). - > patch 310 by eric: - + documentation and prototyping errors for has_color, immedok and idcok - (reported by William P Setzer ) - + updated qnx terminfo entry (by Michael Hunter) - -960730 - + eliminate quoted includes in ncurses subdirectory, ensure config.h - is included first. - + newterm initializes terminal settings the same as initscr (reported - by Tim Mooney). - -960727 - snapshot - + call cbreak() in initscr(), as per XSI & SVr4. - + turn off hardware echo in initscr() as per XSI & SVr4 - > patch 309 by eric: - + terminfo changes (9.3.10), from BRL - + add more checks to terminfo parser. - + add more symbols to infocmp. - -960720 - snapshot - + save previous-attribute in lib_vidattr.c if SP is null (reported by - Ju"rgen Fluk ) - + corrected calls on _nc_render so that background character is set - as per XSI. - + corrected wbkgdset macro (XSI allows background character to be - null), and tests that use it. - + more corrections to terminfo (xterm & rxvt) - + undid change to mcprint prototype (cannot use size_t in curses.h - because not all systems declare it in the headers that we can safely - include therein). - + move the ifdefs for errno into curses.priv.h - > patch 308 by eric: - + terminfo changes (9.3.8) - + modified logic of error-reporting in terminfo parser - -960713 - snapshot - + always check for since ISC needs it to declare - fd_set (Juergen Pfeifer) - + install shared-libraries on NetBSD/FreeBSD with ABI-version (reported - by several people: Juergen Pfeifer, Mike Long) - + add LOCAL_LDFLAGS2 symbol (Juergen Pfeifer) - + corrected prototype for delay_output() -- bump ABI to 3.2 - + terminfo patches #306/307 from Eric. - + moved logic that filters out rmul and rmso from setupterm to newterm - where it is less likely to interfere with termcap applications. - -960707 - + rollback Eric's #305 change to terminfo.src (it breaks existing - applications, e.g., 'less 290'). - + correct path of edit_man.sh, and fix typo that made all man-pages - preformatted. - + restore man/menu_requestname.3x omitted in Zeyd's resync (oops). - + auto-configure the GCC_PRINTFLIKE/GCC_SCANFLIKE macros (reported by - Philippe De Muyter). - -960706 - snapshot - + make lib_vidattr.c more readable using macros. - + filter out rmul, rmso that conflict with sgr0 when reading terminal - descriptions. - + added sanity-checking of various paired string attributes (Eric). - + work around autoconf bug, force $INSTALL to absolute path. - (reported by Zeyd). - + modify man-page install for BSDI to install preformatted .0 files - (reported by David MacKenzie). - + add/use gcc __attribute__ for printf and scanf in curses.h - + added SGR attributes test-case to ncurses - + revised ncurses 't' logic to show trace-disable effect in the menu. - + use getopt in ncurses program to process -s and -t options. - + make ncurses 'p' legend toggle with '?' - + disable scrollok during the ncurses 'p' test; if it is enabled the - stdscr will scroll when putting the box-corners in the lower-right - of the screen. - -960629 - snapshot - + check return code of _nc_mvcur_scrolln() in _nc_scroll_optimize() for - terminals with no scrolling-support (reported by Nikolay Shadrin - ) - + added ^S scrollok-toggle to ncurses 'g' test. - + added ^T trace-toggle to ncurses tests. - + modified ncurses test program to use ^Q or ESC consistently for - terminating tests (rather than ^D), and to use control keys rather - than function keys in 'g' test. - + corrected misplaced wclrtoeol calls in addch to accommodate wrapping - (reported by Philippe De Muyter). - + modify lib_doupdate.c to use effective costs to tradeoff between - delete-character/insert-character vs normal updating (reported by - David MacKenzie). - + compute effective costs for screen update operations (e.g., clr_eos, - delete_character). - + corrected error in knight.c exposed by wrap fixes in 960622; the - msgwin needed scrollok set. - + corrected last change to IDcTransformLine logic to avoid conflict - between PutRange and InsStr - + modified run_tic.sh to not use /usr/tmp (reported by David - MacKenzie), and further revised it and aclocal.m4 to use $TMPDIR if - set. - + corrected off-by-one in RoomFor call in read_entry.c - -960622 - snapshot - + modified logic that wraps cursor in addch to follow the XSI spec, - (implemented in SVr4) which states that the cursor position is - updated when wrapping. Renamed _NEED_WRAP to _WRAPPED to reflect the - actual semantics. - + added -s option to tic, to provide better diagnostics in run_tic.sh - + improved error-recovery for tabset install. - + change ABI to 3.1 (dropped tparam, corrected getbkgd(), added - _yoffset to WINDOW). - + modified initialization of SP->_ofp so that init_acs() is called with - the "right" file pointer (reported by Rick Marshall - + documentation fixes (Juergen Pfeifer). - + corrected, using new SCREEN and WINDOW members, the behavior of - ncurses if one uses ripoffline() to remove a line from the top of the - screen (Juergen Pfeifer). - + modified autoconf scripts to prepare for Ada95 (GNAT) binding to - ncurses (Juergen Pfeifer). - + incorrect buffer-size in _nc_read_entry, reported by Eric Raymond. - -960617 - + corrected two logic errors in read_entry.c, write_entry.c (called by - tic, the write/read of terminfo entries used inconsistent rules for - locating the entries; the $TERMINFO_DIRS code would find only the - first entry in a list). - + refined pathname computation in run_tic.sh and shlib. - + corrected initialization of $IP in misc/run_tic.sh - -960615 - snapshot - + ifdef'd out _nc_hash_map() call because it does not improve speed. - + display version of gcc if configure script identifies it. - + modify configure script to use /usr as Linux's default prefix. - + modify run_tic.sh to use shlib script, fixes some problems installing - with a shared-library configuration. - + adjusted configure script so that it doesn't run tests with the - warnings turned on, which makes config.log hard to read. - + added 'lint' rule to top-level Makefile. - + added configure option '--with-install-prefix' for use by system - builders to install into staging locations (from request by - charles@comm.polymtl.ca) - + corrected autoconfigure for Debian man program; it's not installed - as "man_db". - + set noecho in 'worm'; it was ifdef'd for debug only - + updated test/configure.in for timing-display in ncurses 'p' test - + corrected misspelled 'getbkgd()'. - + corrected wbkgdset to work like observed syvr4 (sets A_CHARTEXT part - to blank if no character given, copies attributes to window's - attributes). - + modified lib_doupdate.c to use lower-level SP's current_attr state - instead of curscr's state, since it is redundant. - + correction to IDcTransformLine logic which controls where InsStr is - invoked (refined by lav@yars.free.net). - > patches 303 by eric - + conditionally include Chris Torek's hash function _nc_hash_map(). - + better fix for nvi refresh-bug (Rick Marshall) - + fix for bug in handling of interrupted keystroke waits, - (Werner Fleck). - -960601 - snapshot - + auto-configure man-page compression-format and renames for Debian. - + corrected several typos in curses.h.in (i.e., the mvXXXX macros). - + re-order curses.priv.h for lint. - + added rules for lintlib, lint - + corrected ifdef for BROKEN_LINKER in MKnames.awk.in - + corrected missing INSTALL_DATA in misc/Makefile.in - + flush output when changing cursor-visibility (Rick Marshall) - + fix a minor bug in the _nc_ripoff() routine and improve error - checking when creating the label window (Juergen Pfeifer). - + enhancement to the control over the new PC-style soft key format. - allow caller now to select whether or not one wants to have - the index-line; see curs_slk.3x for documentation (Juergen Pfeifer). - + typos, don't use inline with -g (Philippe De Muyter) - + fixes for menus & wattr-, slk-functions (Juergen Pfeifer) - -960526 - snapshot - + removed --with-ticdir option altogether, maintain compatibility with - existing applications via symbolic link in run_tic.sh - + patch for termio.h, signal (Philippe De Muyter) - + auto-configure gcc warning options rather than infer from version. - + auto-configure __attribute__ for different gcc versions. - + corrected special use of clearok() in hardscroll.c by resetting flag - in wrefresh(). - + include stdlib.h before defs for EXIT_SUCCESS, for OSF/1. - + include sys/types.h in case stdlib.h does not declare size_t. - + fixes for makefile (Tim Mooney) - + fixes for menus & forms (Juergen.Pfeifer@T-Online.de) - -960518 - snapshot - + revised ncurses.c panner test, let pad abut all 4 sides of screen. - + refined case in lib_doupdate.c for ClrToEOL(). - + corrected prior change for PutRange (Alexander V. Lukyanov: - lav@yars.free.net). - + autoconf mods (Tim Mooney: mooney@dogbert.cc.ndsu.NoDak.edu). - + locale fix for forms (Philippe De Muyter: phdemuyt@ulb.ac.be) - + renamed "--with-datadir" option to "--with-ticdir" to avoid - confusion, and made this check for the /usr/lib/terminfo pre-existing - directory. - > patches 299-301 by eric: - + added hashmap.c - + mods to tracing, especially for ACS chars. - + corrected off-by-one in IDCtransform. - + corrected intermittent mouse bug by using return-value from read(). - + mods to parse_entry.c, for smarter defaults. - -960512 - + use getopt in 'tic'; added -L option and modified -e option to allow - list from a file. - -960511 - + don't use fixed buffer-size in tparm(). - + modified tic to create terminfo directory if it doesn't exist. - + added -T options to tic and infocmp (for testing/analysis) - + refined the length criteria for termcap and terminfo - + optimize lib_doupdate with memcpy, PutRange - > patches 297, 298 by eric - + implement TERMINFO_DIRS, and -o option of tic - + added TRACE_IEVENT - + removed boolean version of 'getm' - + added lib_print.c (for Rick Marshall) - + added has_key() - + added 't' to ncurses.c test. - + moved delay_output() to lib_tputs.c - + removed tparam() (was added in 1.9.9, but conflicts with emacs and - is not part of X/Open Curses). - + misc cursor & optimization fixes. - -960504 - snapshot - + modified ncurses 'p' test to allow full-screen range for panner size. - + fixes for locale (phdm@labauto1.ulb.ac.be) - + don't use fixed buffer-size in fmt_entry(). - + added usage-message to 'infocmp'. - + modified install.includes rules to prepend subdirectory-name to - "#include" if needed. - -960430 - + protect wrefresh, wnoutrefresh from invocation with pad argument. - + corrected default CCFLAGS in test/Makefile. - -960428 - snapshot - + implemented logic to support terminals with background color erase - (e.g., rxvt and the newer color xterm). - + improved screen update logic (off-by-one logic error; use clr_eos if - possible) - -960426 - snapshot - + change ncurses 'a' test to run in raw mode. - + make TIOCGWINSZ configure test less stringent, in case user - configures via terminal that cannot get screen size. - > patches 295, 296 by eric: - + new "-e" option of tic. - + fix for "infocmp -e". - + restore working-directory in read_termcap.c - + split lib_kernel.c, lib_setup.c and names.c in order to reduce - overhead for programs that use only termcap features. - -960418 - snapshot - + use autoconf 2.9 - + fix for AIX 3.2.5 (must define _POSIX_SOURCE to get termios struct - definitions via , modified macros in lib_raw.c to avoid - K&R-style substitution) - > patches 293, 294 by eric: - + mods to wgetch() in cooked mode - + corrected askuser() logic in tset - + correct interaction of endwin() with mouse processing - + added trace support for TTY flags - -960406 - + fixes for NeXT, ISC and HPUX auto-configure - + autogenerate development header-dependencies (config.h, *.priv.h) - + corrected single-column formatting of "use=" (e.g., in tic) - + modify tic to read full terminfo-names - + corrected divide-by-zero that caused hang (or worse) when redirecting - output - + modify tic to generate directories only as-needed (and corrected - instance of use of data from function that had already returned). - -### ncurses-1.9.8a -> 1.9.9e - -* fixed broken wsyncup()/wysncdown(), as a result wnoutrefresh() now has - copy-changed-lines behavior. -* added and documented wresize() function. -* more fixes to LOWER-RIGHT corner handling. -* changed the line-breakout optimization code to allow some lines to be - emitted before the first check. -* added option for tic to use symbolic instead of hard links (for AFS) -* fix to restore auto-wrap mode. -* trace level can be controlled by environment variable. -* better handling of NULs in terminal descriptions. -* improved compatibility with observed SVR4 behavior. -* the refresh behavior of over-lapping windows is now more efficient and - behaves like SVR4. -* use autoconf 2.7, which results in a working setup for SCO 5.0. -* support for ESCDELAY. -* small fixes for menu/form code. -* the test directory has its own configure. -* fixes to pads when optimizing scrolling. -* fixed several off-by-one bugs. -* fixes for termcap->terminfo translation; less restrictions more correct - behavior. - -### ncurses-1.9.7 -> 1.9.8a - -* teach infocmp -i to recognize ECMA highlight sequences -* infocmp now dumps all SVr4 termcaps (not just the SVr4 ones) on -C -* support infocmp -RBSD. -* satisfy XSI Curses requirement that every macro be available as a function. -* This represents the last big change to the public interface of ncurses. The - ABI_VERSION has now been set at 3.0 and should stay there barring any great - catastrophies or acts of God. -* The C++ has been cleaned up in reaction to the changes to satisfy XSI's - requirements. -* libncurses now gets linked to libcurses to help seamless emulation - (replacement) of a vendor's curses. --disable-overwrite turns this behavior - off. - -### ncurses-1.9.6 -> 1.9.7 - -* corrected return values of setupterm() -* Fixed some bugs in tput (it does padding now) -* fixed a bug in tic that made it do the wrong thing on entries with more than - one `use' capability. -* corrected the screen-size calculation at startup time to alter the - numeric capabilities as per SVr4, not just LINES and COLS. -* toe(1) introduced; does what infocmp -T used to. -* tic(1) can now translate AIX box1 and font[0123] capabilities. -* tic uses much less core, the dotic.sh kluge can go away now. -* fix read_entry() and write_entry() to pass through cancelled capabilities OK. -* Add $HOME/.terminfo as source/target directory for terminfo entries. -* termcap compilation now automatically dumps an entry to $HOME/.terminfo. -* added -h option to toe(1). -* added -R option to tic(1) and infocmp(1). -* added fallback-entry-list feature. -* added -i option to infocmp(1). -* do a better job at detecting if we're on SCO. - -### ncurses-1.9.5 -> 1.9.6 - -* handling of TERMCAP environment variables now works correctly. -* various changes to shorten termcap translations to less that 1024 chars. -* tset(1) added -* mouse support for xterm. -* most data tables are now const and accordingly live in shareable text space. -* Obey the XPG4/SVr4 practice that echo() is initally off. -* tic is much better at translating XENIX and AIX termcap entries now. -* tic can interpret ko capabilities now. -* integrated Juergen Pfeifer's forms library. -* taught write_entry() how not to write more than it needs to; this change - reduces the size of the terminfo tree by a full 26%! -* infocmp -T option added. -* better warnings about historical tic quirks from tic. - -### ncurses 1.9.4 -> 1.9.5 - -* menus library is now included with documentation. -* lib_mvcur has been carefully profiled and tuned. -* Fixed a ^Z-handling bug that was tanking lynx(1). -* HJ Lu's patches for ELF shared libraries under Linux -* terminfo.src 9.8.2 -* tweaks for compiling in seperate directories. -* Thomas Dickey's patches to support NeXT's brain-dead linker -* Eric Raymond's patches to fix problems with long termcap entries. -* more support for shared libraries under SunOS and IRIX. - -### ncurses 1.9.3 -> 1.9.4 - -* fixed an undefined-order-of-evaluation bug in lib_acs.c -* systematically gave non-API public functions and data an _nc_ prefix. -* integrated Juergen Pfeifer's menu code into the distribution. -* totally rewrote the knight test game's interface - -### ncurses 1.9.2c -> 1.9.3 - -* fixed the TERMCAP_FILE Support. -* fixed off-by-one errors in scrolling code -* added tracemunch to the test tools -* took steps to cut the running time of make install.data - -### ncurses 1.9.2c -> 1.9.2d - -* revised 'configure' script to produce libraries for normal, debug, - profile and shared object models. - -### ncurses 1.9.1 -> 1.9.2 - -* use 'autoconf' to implement 'configure' script. -* panels support added -* tic now checks for excessively long termcap entries when doing translation -* first cut at eliminating namespace pollution. - -### ncurses 1.8.9 -> 1.9 - -* cleanup gcc warnings for the following: use size_t where 'int' is not - appropriate, fixed some shadowed variables, change attr_t to compatible with - chtype, use attr_t in some places where it was confused with 'int'. -* use chtype/attr_t casts as appropriate to ensure portability of masking - operations. -* added-back waddchnstr() to lib_addstr.c (it had been deleted). -* supplied missing prototypes in curses.h -* include in lib_termcap.c to ensure that the prototypes - are consistent (they weren't). -* corrected prototype of tputs in -* rewrote varargs parsing in lib_tparm.c (to avoid referencing memory - that may be out of bounds on the stack) -- Purify found this. -* ensure that TRACE is defined in lib_trace.c (to solve prototype - warnings from gcc). -* corrected scrolling-region size in 'mvcur_wrap()' -* more spelling fixes -* use 'calloc()' to allocate WINDOW struct in lib_newwin.c (Purify). -* set default value for SP->_ofp in lib_set_term.c (otherwise SunOS dumps - core in init_acs()). -* include in write_entry.c (most "braindead" includes declare errno - in that file). - -### ncurses 1.8.8 -> 1.8.9 - -* compile (mostly) clean with gcc 2.5.8 -Wall -Wstrict-prototypes - -Wmissing-prototypes -Wconversion and using __attribute__ to flush out - non-portable use of "%x" for pointers, or for chtype data (which is declared - as a long). -* modified doupdate to ensure that typahead was turned on before attempting - select-call (otherwise, some implementations hang). -* added trace mask TRACE_FIFO, use this in lib_getch.c to allow finer - resolution of traces. -* improved bounds checking on several critical functions. -* the data directory has been replaced by the new master terminfo file. -* -F file-comparison option added to infocmp. -* compatibility with XSI Curses is now documented in the man bages. -* wsyncup/wsyncdown functions are reliable now; subwindow code in general - is much less flaky. -* capabilities ~msgr, tilde_glitch, insert_padding, generic_type, no_pad_char, - memory_above, memory_below, and hard_copy are now used properly. -* cursor-movement optimization has been completely rewritten. -* vertical-movement optimization now uses hardware scrolling, il, dl. - -### ncurses 1.8.7 -> 1.8.8 -* untic no longer exists, infocmp replaces it. -* tic can understand termcap now, especially if it is called captoinfo. -* The Linux Standard Console terminfo entry is called linux insead of console. - It also uses the kernel's new method of changing charsets. -* initscr() will EXIT upon error (as the docs say) This wil mostly happen if - you try to run on an undefined terminal. -* I can get things running on AIX but tic can't compile terminfo. I have to - compile entries on another machine. Volunteers to hunt this bug are welcome. -* wbkgd() and wbkgdset() can be used to set a windows background to color. - wclear()/werase() DO NOT use the current attribute to clear the screen. - This is the way SVR4 curses works. PDCurses 2.1 is broken in this respect, - though PDCurses 2.2 has been fixed. -* cleaned up the test/ directory. -* test/worm will segfault after quite a while. -* many spelling corrections courtesy of Thomas E. Dickey - -### ncurses 1.8.6 -> 1.8.7 -* cleaned up programs in test/ directory. -* fixed wbkgdset() macro. -* modified getstr() to stop it from advancing cursor in noecho mode. -* modified linux terminfo entry to work with the latest kernel to get - the correct alternate character set. -* also added a linux-mono entry for those running on monochrome screens. -* changed initscr() so that it behaves like the man page says it does. - this fixes the problem with programs in test/ crashing with SIGSEV if - a terminal is undefined. -* modified addch() to avoid using any term.h #define's -* removed duplicate tgoto() in lib_tparm.c -* modified dump_entry.c so that infocmp deals correctly with ',' in acsc -* modified delwin() to correctly handle deleting subwindows. -* fixed Makefile.dist to stop installing an empty curses.h -* fixed a couple of out-of-date notes in man pages. - -### ncurses 1.8.5 -> 1.8.6 -* Implemented wbkgd(), bkgd(), bkgdset(), and wbkgdset(). -* The handling of attributes has been improved and now does not turn off color - if other attributes are turned off. -* scrolling code is improved. Scrolling in subwindows is still broken. -* Fixes to several bugs that manifest them on platforms other than Linux. -* The default to meta now depends on the status of the terminal when ncurses - is started. -* The interface to the tracing facility has changed. Instead of the pair of - functions traceon() and traceoff(), there is just one function trace() which - takes a trace mask argument. The trace masks, defined in curses.h, are - as follows: - - #define TRACE_DISABLE 0x00 /* turn off tracing */ - #define TRACE_ORDINARY 0x01 /* ordinary trace mode */ - #define TRACE_CHARPUT 0x02 /* also trace all character outputs */ - #define TRACE_MAXIMUM 0x0f /* maximum trace level */ - - More trace masks may be added, or these may be changed, in future releases. -* The pad code has been improved and the pad test code in test/ncurses.c has - been improved. -* The prototype ansi entry has been changed to work with a wider variety - of emulators. -* Fix to the prototype ansi entry that enables it to work with PC emulators - that treat trailing ";m" in a highlight sequence as ";0m"; this doesn't - break operation with any emulators. -* There are now working infocmp, captoinfo, tput, and tclear utilities. -* tic can now compile entries in termcap syntax. -* Core-dump bug in pnoutrefresh fixed. -* We now recognize and compile all the nonstandard capabilities in Ross - Ridge's mytinfo package (rendering it obsolete). -* General cleanup and documentation improvements. -* Fixes and additions to the installation-documentation files. -* Take cursor to normal mode on endwin. - -### ncurses 1.8.4 -> 1.8.5 -* serious bugs in updating screen which caused erratic non-display, - fixed. -* fixed initialization for getch() related variable which cause - unpredictable results. -* fixed another doupdate bug which only appeared if you have - parm_char. -* implemented redrawln() and redrawwin(). -* implemented winsnstr() and related functions. -* cleaned up insertln() and deleteln() and implemented (w)insdeln(). -* changed Makefile.dist so that installation of man pages will - take note of the terminfo directory. -* fixed Configure (removed the mysterious 'X'). -* Eric S. Raymond fixed the script.* files so that they work with - stock awk. - -#### ncurses 1.8.3 -> 1.8.4 #### #### -* fixed bug in refreshing the screen after return from shell_mode. - There are still problems but they don't manifest themselves on - my machine (Linux 0.99.14f). -* added wgetnstr() and modified things accordingly. -* fixed the script.src script.test to work with awk not just gawk. -* Configure can now take an argument of the target system. -* added test/ncurses.c which replaces several other programs and - performs more testing. -[Thanks to Eric S Raymond for the last 4] -* more fixes to lib_overlay.c and added test/over.c to illustrate - how it works. -* fixed ungetch() to take int instead of ch. -* fixes to cure wgetch() if flushinp() is called. - -One note I forgot to mention in 1.8.3 is that tracing is off by -default starting in the version. If you want tracing output, put -traceon(); in your code and link with -ldcurses. - -#### ncurses 1.8.2 -> ncurses 1.8.3 #### #### -MAJOR CHANGES: -1) The order of capabilities has been changed in order to achieve -binary compatibility with SVR4 terminfo database. This has the -unfortunate effect of breaking application currently linked with -ncurses. To ensure correct behavior, recompile all such programs. -Most programs using color or newer capabilities will break, others -will probably continue to work ok. - -2) Pavel Curtis has renounced his copyright to the public domain. -This means that his original sources (posted to comp.sources.unix, -volume 1) are now in the public domain. The current sources are -NOT in the public domain, they are copyrighted by me. I'm -entertaining ideas on what the new terms ncurses is released under. - -3) Eric S. Raymond has supplied a complete set of man pages for -ncurses in ?roff format. They will eventually replace most of the -current docs. Both sets are included in this release. - -Other changes and notes from 1.8.2 include: -* SIGSEGV during scrolling no longer occurs. -* Other problems with scrolling and use of idl have been corrected. -* lib_getch.c has been re-written and should perform flawlessly. - please use test/getch.c and any other programs to test this. -* ripoffline() is implemented (Thanks to Eric) and slk_ functions - changed accordingly. -* I've added support for terminals that scroll if you write in the - bottom-right corner. -* fixed more bugs in pads code. If anybody has a program that uses - pads I'd love a copy. -* correct handling for terminal with back_color_erase capability - (such as Linux console, and most PC terminals) -* ^Z handling apparently didn't work (I should never trust code - sent me to me without extensive testing). It now seems to be - fixed. Let me know if you have problems. -* I've added support for Apollo and NeXT, but it may still be - incomplete, especially when dealing with the lack of POSIX - features. -* scrolling should be more efficient on terminals with idl - capabilities. Please see src/lib_scroll.c for more notes. -* The line drawing routines were offset by 1 at both ends. This - is now fixed. -* added a few missing prototypes and macros (e.g. setterm()) -* fixed code in src/lib_overlay.c which used to crash. -* added a few more programs in test/ The ones from the PDCurses - package are useful, especially if you have SVR4 proper. I'm - interested in the results you get on such a systems (Eric? ;-). - They already exposed certain bugs in ncurses. -* See src/README for porting notes. -* The C++ code should really replace ncurses.h instead of working - around it. It should avoid name-space clashes with nterm.h (use - rows instead of lines, etc.) -* The C++ should compile ok. I've added explicit rules to the - Makefile because no C++ defaults are documented on the suns. -* The docs say that echo() and nocbreak() are mutually exclusive. - At the moment ncurses will switch to cbreak() if the case above - occurs. Should it continue to do so? How about echo() and noraw()? -* PDCurses seem to assume that wclear() will use current attribute - when clearing the screen. According to Eric this is not the case - with SVR4. -* I have discovered, to my chagrin, SunOS 4.x (and probably other systems) - * doesn't have vsscanf and God knows what else! I've will do a vsscanf(). -* I've also found out that the src/script.* rely on gawk and will not - work with stock awk or even with nawk. Any changes are welcome. -* Linux is more tolerant of NULL dereferences than most systems. This - fact was exposed by hanoi. -* ncurses still seems inefficient in drawing the screen on a serial - link between Linux and suns. The padding may be the culprit. -* There seems to be one lingering problem with doupdate() after shelling - out. Despite the fact the it is sending out the correct information - to the terminal, nothing takes effect until you press ^L or another - refresh takes place. And yes, output does get flushed. - -#### ncurses 1.8.1 -> ncurses 1.8.2 #### Nov 28, 1993 #### - -* added support for SVR4 and BSDI's BSD/386. -* major update and fix to scrolling routine. -* MORE fixes to stuff in lib_getch.c. -* cleaned-up configuration options and can now generate - Config.* files through an awk script. -* changed setupterm() so it can be called more than once, - add added set_curterm(), del_curterm(). -* a few minor cleanups. -* added more prototypes in curses.h - -#### ncurses 1.8 -> ncurses 1.8.1 #### Nov 4, 1993 #### - -* added support for NeXTStep 3.0 -* added termcap emulation (not well tested). -* more complete C++ interface to ncurses. -* fixed overlay(), overwrite(), and added copywin(). -* a couple of bug fixes. -* a few code cleanups. - -#### ncurses 0.7.2/0.7.3 -> ncurses 1.8 #### Aug 31, 1993 #### - -* The annoying message "can't open file." was due to missing - terminfo entry for the used terminal. It has now been - replaced by a hopefully more helpful message. -* Problems with running on serial lines are now fixed. -* Added configuration files for SunOS, Linux, HP/UX, Ultrix, - 386bsd/BSDI (if you have others send'em to me) -* Cleaner Makefile. -* The documentation in manual.doc is now more uptodate. -* update optimization and support for hp terminals, and 386bsd - console driver(s). -* mvcur optimization for terminals without cursor addressing - (doesn't work on Linux) -* if cursor moved since last update, getch() will refresh the - screen before working. -* getch() & alarm() can now live together. in 0.7.3 a signal - interrupted getch() (bug or feature?) now the getch is - restarted. -* scanw() et all were sick, now fixed. -* support for 8-bit input (use meta()). -* added default screen size to all terminfos. -* added c++ Ncursesw class. -* several minor bug fixes. - -#### ncurses 0.7.2 -> ncurses 0.7.3 #### May 27, 1993 #### - -* Config file to cope with different platforms (386BSD, BSDI, Ultrix, SunOS) -* more fixes to lib_getch.c -* changes related to Config - -#### ncurses 0.7 -> ncurses 0.7.2 #### May 22, 1993 #### - -* docs updated slightly (color usage is now documented). -* yet another fix for getch(), this one fixes problems with ESC being swallowed - if another character is typed before the 1 second timeout. -* Hopefully, addstr() and addch() are 8-bit clean. -* fixed lib_tparm.c to use stdarg.h (should run on suns now) -* order of capabilities changed to reflect that specified in SYSV - this will allow for binary-compatibility with existing terminfo dbs. -* added halfdelay() -* fixed problems with asc_init() -* added A_PROTECT and A_INVIS -* cleaned up vidputs() -* general cleanup of the code -* more attention to portability to other systems -* added terminfos for hp70092 (wont work until changes to lib_update.c are - made) and 386BSD pcvt drivers. - -Thanks to Hellmuth Michaelis for his help. -optimization code is slated for the next major release, stay tuned! - -#### ncurses 0.6/0.61 -> ncurses 0.7 #### April 1, 1993 -Please note that the next release will be called 1.8. If you want to know about -the rationale drop me a line. - -Included are several test programs in test/. -I've split up the panels library, reversi, tetris, sokoban. They are now -available separately from netcom.com:pub/zmbenhal/ - -* color and ACS support is now fully compatible with SYSV at the terminfo - level. -* Capabilities now includes as many SYSV caps I could find. -* tigetflag,tigetnum,tigetstr functions added. -* boolnames, boolfnames, boolcodes numnames, numfnames, numcodes, - strnames, strfnames, strcodes arrays are now added. -* keyname() is added. -* All function keys can be defined in terminfo entries. -* fixed lin_tparm.c to behave properly. -* terminfo entries for vt* and xterm are included (improvements are welcome) -* more automation in handling caps and keys. -* included fixes from 0.6.1 -* added a few more missing functions. -* fixed a couple of minor bugs. -* updated docs JUST a little (still miles behind in documenting the newer - features). - -#### ncurses 0.6 -> ncurses 0.61 #### - -1) Included the missing data/console. - -2) allow attributes when drawing boxes. - -3) corrected usage of win->_delay value. - -4) fixed a bug in lib_getch.c. if it didn't recognize a sequence it would - simply return the last character in the sequence. The correct - behavior is to return the entire sequence one character at a time. - -#### ncurses0.5 -> ncurses0.6 #### March 1, 1993 #### -* removed _numchngd from struct _win_st and made appropriate changes. -* rewritten kgetch() to remove problems with interaction between alarm and - read(). It caused SIGSEGV every now and then. -* fixed a bug that miscounted the numbers of columns when updating. - (in lib_doupdate.c(ClrUpdate() -- iterate to columns not columns-1) -* fixed a bug that cause the lower-right corner to be incorrect. - (in lib_doupdate.c(putChar() -- check against columns not columns-1) -* made resize() and cleanup() static to lib_newterm.c -* added notimeout(). -* added timeout() define in curses.h -* added more function prototypes and fixed napms. -* added use_env(). -* moved screen size detection to lib_setup.c. -* fixed newterm() to confirm to prototype. -* removed SIGWINCH support as SYSV does not define its semantics. -* cleaned-up lib_touch.c -* added waddnstr() and relatives. -* added slk_* support. -* fixed a bug in wdeleteln(). -* added PANEL library. -* modified Makefile for smoother installation. -* terminfo.h is really term.h - -#### ncurses 0.4 -> ncurses 0.5 #### Feb 14, 1993 #### -* changed _win_st structure to allow support for missing functionality. -* Addition of terminfo support for all KEY_*. -* Support for nodelay(), timeout(), notimeout(). -* fixed a bug with the keypad char reading that did not return ESC until - another key is pressed. -* nl mapping no longer occur on output (as should be) - fixed bug '\n' no causing a LF. -* fixed bug that reset terminal colors regardless of whether we use color - or not. -* Better support for ACS (not quite complete). -* fixed bug in wvline(). -* added curs_set(). -* changed from signal() to sigaction(). -* re-included the contents of important.patch into source. - -#### ncurses 0.3 -> ncurses 0.4 #### Feb 3, 1993 #### -* Addition of more KEY_* definitions. -* Addition of function prototypes. -* Addition of several missing functions. -* No more crashes if screen size is undefined (use SIGWINCH handler). -* added a handler to cleanup after SIGSEGV (hopefully never needed). -* changed SRCDIR from /etc/term to /usr/lib/terminfo. -* renamed compile/dump to tic/untic. -* New scrolling code. -* fixed bug that reversed the sense of nl() and nonl(). - -#### ncurses 0.2 -> ncurses 0.3 #### Jan 20, 1993 #### -* more support for color and graphics see test/ for examples. -* fixed various files to allow correct update after shelling out. -* more fixes for updates. -* no more core dumps if you don't have a terminfo entry. -* support for LINES and COLUMNS environment variables. -* support for SIGWINCH signal. -* added a handler for SIGINT for clean exits. - -#### ncurses 0.1 -> ncurses 0.2 #### Aug 14, 1992 #### -* support for color. -* support for PC graphic characters. -* lib_trace.c updated to use stdarg.h and vprintf routines. -* added gdc.c (Great Digital Clock) as an example of using color. - -#### ncurses -> ncurses 0.1 #### Jul 31, 1992 #### -* replacing sgtty stuff by termios stuff. -* ANSIfication of some functions. -* Disabling cost analysis 'cause it's incorrect. -* A quick hack for a terminfo entry. diff --git a/Build/source/libs/ncurses/README b/Build/source/libs/ncurses/README deleted file mode 100644 index 37cb8d2b5c1..00000000000 --- a/Build/source/libs/ncurses/README +++ /dev/null @@ -1,183 +0,0 @@ --- $Id: README,v 1.22 2004/08/07 23:42:43 tom Exp $ -------------------------------------------------------------------------------- - README file for the ncurses package - -See the file ANNOUNCE for a summary of ncurses features and ports. -See the file INSTALL for instructions on how to build and install ncurses. -See the file NEWS for a release history and bug-fix notes. -See the file TO-DO for things that still need doing, including known bugs. - -Browse the file misc/ncurses-intro.html for narrative descriptions of how -to use ncurses and the panel, menu, and form libraries. - -Browse the file doc/html/hackguide.html for a tour of the package internals. - -ROADMAP AND PACKAGE OVERVIEW: - -You should be reading this file in a directory called: ncurses-d.d, where d.d -is the current version number (see the dist.mk file in this directory for -that). There should be a number of subdirectories, including `c++', `form', -`man', `menu', `misc', `ncurses', `panel', `progs', `test', 'tack' and `Ada95'. -(The 'tack' program may be distributed separately). - -A full build/install of this package typically installs several libraries, a -handful of utilities, and a database hierarchy. Here is an inventory of the -pieces: - -The libraries are: - - libncurses.a (normal) - libncurses.so (shared) - libncurses_g.a (debug and trace code enabled) - libncurses_p.a (profiling enabled) - - libpanel.a (normal) - libpanel.so (shared) - libpanel_g.a (debug and trace code enabled) - - libmenu.a (normal) - libmenu.so (shared) - libmenu_g.a (debug enabled) - - libform.a (normal) - libform.so (shared) - libform_g.a (debug enabled) - -If you configure using the --enable-widec option, a "w" is appended to the -library names (e.g., libncursesw.a), and the resulting libraries support -wide-characters, e.g., via a UTF-8 locale. The corresponding header files -are compatible with the non-wide-character configuration; wide-character -features are provided by ifdef's in the header files. The wide-character -library interfaces are not binary-compatible with the non-wide-character -version. - -The ncurses libraries implement the curses API. The panel, menu and forms -libraries implement clones of the SVr4 panel, menu and forms APIs. The source -code for these lives in the `ncurses', `panel', `menu', and `form' directories -respectively. - -In the `c++' directory, you'll find code that defines an interface to the -curses, forms, menus and panels library packaged as C++ classes, and a demo program in C++ -to test it. These class definition modules are not installed by the 'make -install.libs' rule as libncurses++. - -In the `Ada95' directory, you'll find code and documentation for an -Ada95 binding of the curses API, to be used with the GNAT compiler. -This binding is built by a normal top-level `make' if configure detects -an usable version of GNAT (3.11 or above). It is not installed automatically. -See the Ada95 directory for more build and installation instructions and -for documentation of the binding. - -To do its job, the ncurses code needs your terminal type to be set in the -environment variable TERM (normally set by your OS; under UNIX, getty(1) -typically does this, but you can override it in your .profile); and, it needs a -database of terminal descriptions in which to look up your terminal type's -capabilities. - -In older (V7/BSD) versions of curses, the database was a flat text file, -/etc/termcap; in newer (USG/USL) versions, the database is a hierarchy of -fast-loading binary description blocks under /usr/lib/terminfo. These binary -blocks are compiled from an improved editable text representation called -`terminfo' format (documented in man/terminfo.5). The ncurses library can use -either /etc/termcap or the compiled binary terminfo blocks, but prefers the -second form. - -In the `misc' directory, there is a text file terminfo.src, in editable -terminfo format, which can be used to generate the terminfo binaries (that's -what make install.data does). If the package was built with the ---enable-termcap option enabled, and the ncurses library cannot find a terminfo -description for your terminal, it will fall back to the termcap file supplied -with your system (which the ncurses package installation leaves strictly -alone). - -The utilities are as follows: - - tic -- terminfo source to binary compiler - infocmp -- terminfo binary to source decompiler/comparator - clear -- emits clear-screen for current terminal - tput -- shell-script access to terminal capabilities. - toe -- table of entries utility - tset -- terminal-initialization utility - -The first two (tic and infocmp) are used for manipulating terminfo -descriptions; the next two (clear and tput) are for use in shell scripts. The -last (tset) is provided for 4.4BSD compatibility. The source code for all of -these lives in the `progs' directory. - -Detailed documentation for all libraries and utilities can be found in the -`man' and `doc' directories. An HTML introduction to ncurses, panels, and -menus programming lives in the `doc/html' directory. Manpages in HTML format -are under `doc/html/man'. - -The `test' directory contains programs that can be used to verify or -demonstrate the functions of the ncurses libraries. See test/README for -descriptions of these programs. Notably, the `ncurses' utility is designed to -help you systematically exercise the library functions. - -AUTHORS: - -Pavel Curtis: - wrote the original ncurses - -Zeyd M. Ben-Halim: - port of original to Linux and many enhancements. - -Thomas Dickey (maintainer for 1.9.9g through 4.1, resuming with FSF's 5.0): - configuration scripts, porting, mods to adhere to XSI Curses in the - areas of background color, terminal modes. Also memory leak testing, - the wresize, default colors and key definition extensions and numerous - bug fixes (more than half of those enumerated in NEWS beginning with - the internal release 1.8.9). - -Florian La Roche (official maintainer for FSF's ncurses 4.2) - Beginning with release 4.2, ncurses is distributed under an MIT-style - license. - -Eric S. Raymond: - the man pages, infocmp(1), tput(1), clear(1), captoinfo(1), tset(1), - toe(1), most of tic(1), trace levels, the HTML intro, wgetnstr() and - many other entry points, the cursor-movement optimization, the - scroll-pack optimizer for vertical motions, the mouse interface and - xterm mouse support, and the ncurses test program. - -Juergen Pfeifer - The menu and form libraries, C++ bindings for ncurses, menus, forms and - panels, as well as the Ada95 binding. Ongoing support for panel. - -CONTRIBUTORS: - -Alexander V. Lukyanov - for numerous fixes and improvements to the optimization logic. - -David MacKenzie - for first-class bug-chasing and methodical testing. - -Ross Ridge - for the code that hacks termcap parameterized strings into terminfo. - -Warren Tucker and Gerhard Fuernkranz, - for writing and sending the panel library. - -Hellmuth Michaelis, - for many patches and testing the optimization code. - -Eric Newton, Ulrich Drepper, and Anatoly Ivasyuk: - the C++ code. - -Jonathan Ross, - for lessons in using sed. - -Keith Bostic (maintainer of 4.4BSD curses) - for help, criticism, comments, bug-finding, and being willing to - deep-six BSD curses for this one when it grew up. - -Richard Stallman, - for his commitment to making ncurses free software. - -Countless other people have contributed by reporting bugs, sending fixes, -suggesting improvements, and generally whining about ncurses :-) - -BUGS: - See the INSTALL file for bug and developer-list addresses. - The Hacker's Guide in the doc directory includes some guidelines - on how to report bugs in ways that will get them fixed most quickly. diff --git a/Build/source/libs/ncurses/README.emx b/Build/source/libs/ncurses/README.emx deleted file mode 100644 index 0605e67bd44..00000000000 --- a/Build/source/libs/ncurses/README.emx +++ /dev/null @@ -1,45 +0,0 @@ --- $Id: README.emx,v 1.6 2002/09/07 17:03:19 tom Exp $ --- Author: Thomas Dickey -------------------------------------------------------------------------------- - -You can build ncurses on OS/2 in the EMX environment. But you must build and -acquire tools. Not all of the tools distributed with EMX work properly, and -some additional ones are required. - -First, the configure script distributed with ncurses will not run as-is in EMX. -You can generate a new one if you have autoconf built for EMX. You will need -the EMX development tools, of course. Get these programs to start: - - GNU m4 program (version 1.4) - GNU autoconf (version 2.13). - GNU patch (version 2.5) - -Apply the autoconf patches from - - http://invisible-island.net/autoconf - ftp://invisible-island.net/autoconf - -These are ordered by date: - - autoconf-2.13-20020210.patch.gz - autoconf-2.13-20020210-emx.patch.gz - -I built my development environment for ncurses using EMX 0.9c at the end of -1997. Much of the EMX patch for autoconf was done originally by J.J.G.Ripoll, -using a similar environment (he prefers using the 'ash' shell). Newer versions -may fix these problems: - - + The pdksh program distributed at Hobbes and Leo (with a 1996 date) is - defective. It does not process "here documents" correctly (which - renders it useless for running the autoconf script). I built my own - copy of pdksh 5.2.13, which does have the bug corrected (documented - in the change log for pdksh). - - + I also built from sources (because the distributed binaries did not - work) the cmp, diff programs. - - Other required utilities such as ar, cat, chmod, cp, gawk, grep, mv, - ls, rm, mkdir, sed, sort and tr worked. - -Once you have autoconf patched and installed, run 'autoconf' from the top-level -directory of ncurses to generate the EMX-specific configure script. diff --git a/Build/source/libs/ncurses/TO-DO b/Build/source/libs/ncurses/TO-DO deleted file mode 100644 index 928689723e1..00000000000 --- a/Build/source/libs/ncurses/TO-DO +++ /dev/null @@ -1,173 +0,0 @@ --- $Id: TO-DO,v 1.44 2004/03/07 02:04:20 tom Exp $ - -SHORT-TERM TO-DO ITEMS: - -Known Problems: - -* The form/menu libraries do not use wide-character features. - -* libtool does not work with GNAT. - -* The screen optimization has been tested only in an ad hoc manner. We should - develop a good set of regression tests to cover lib_doupdate.c and - lib_mvcur.c. - -* Magic cookie support does not work, since the logic does not take into account - refresh. Also, the initial optimize does not adjust the current location - when a cookie is emitted. - -* Scrolling optimization has holes: for example, it forces repaints of the - screen between calls to refresh(). - -* SVr4 uses slightly different rules for determining when softkeys are shown. - For example, they are initially displayed (before the ncurses 'e' test - activates them), and a touchwin can apparently also force them to be - displayed. - -* The code departs from perfect 8-bit cleanness in one respect; you cannot - specify a character \200 as part of a capability string, because the terminfo - library interprets \200 as a request to embed NUL (\000) at that point. This - is a legacy terminfo property we can't mess with. - -* The window classes defined in the c++ subdirectory need documentation. - Some C++ programmer could earn a lot of good karma by doing this... - -* The resizeterm() function does not handle ripped-off lines such as that - done for the slk_XXX functions. - -Portability (or lack thereof): - -* Users of older System V UNIXes (but not Solaris, and probably not SVr4) - may trip over a known problem with the signal-handling code which causes - abrupt termination of ncurses applications following resume from a ^Z - suspend (this problem was first seen running lynx). You will not see - this problem if you are running Linux or one of the 4.4BSD derivatives - like FreeBSD, NetBSD, or BSDI. For details, see the analysis in the - header comment of ncurses/tty/lib_tstp.c . - -* In theory, vwprintw and vwscanf are supposed to use the older varargs.h - interface for handling variadic argument lists. Linux doesn't have - varargs.h, it has the newer X/Open-standard stdargs.h equivalent. So - these functions use stdargs instead. This is unlikely to be a problem - unless you're building ncurses on a System V old enough to only have - varargs.h. (Solaris 2.5.1 uses the stdarg.h binding as well). - -* If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to - have a native vsscanf(3) in its library, vwscanw() will not work. You lose. - (It should work on any System V, however). If you want to fix this, add - an implementation to ncurses/vsscanf.c. - -* The C++ binding fails to build with a few C++ compilers, mainly with - configure script problems with vsscanf(). - -* terminfo.5 does not format with the SunOS (and most other platform's) tbl - utility because it relies on a diversion for each table entry. Get the groff - package. - -Untested features: - -* The code for the HP color model using set_color_pair is untested. - -* The code for handling soft labels on a terminal type with built-in support - for them (num_labels > 0, label_height, label_width, label_format, label_off, - label_on, plab_norm, lab_f*) has not been tested. The label_format and - lab_f* capabilities aren't presently used. - -LONGER-TERM TO-DO ITEMS: - -1. Extended COSE conformance - -There is an XPG4 standard recently released which describes a superset -of the SVr4 API. The library is BASE conformant with this standard. -We would like to make ncurses fully conformant at the EXTENDED level -supporting internationalization. - -2. DOS port - -Only 16 of the 55 files in the library depend on the terminfo format. -It should be possible to further kernelize the package, then rewrite -a small number of core files to produce a functionally-compatible -port that would do updates to a memory-mapped screen area. The first -result of this would be a DOS port. - -3. X port - -It would be nice if ncurses could recognize when it was running under X and -maintain its own window. With this feature, all ncurses programs would -automatically become X programs. The challenge is to handle resize events -properly. - -4. Unused capabilities - -The currently unused capabilities fall naturally into several groups: - -A. Status-line capabilities: - - Booleans: has_status_line, status_line_esc_ok. - Numerics: width_status_line. - Strings: dis_status_line, from_status_line, to_status_line. - -System V Release 1 curses made no use of these at all. SVr4's use, if -any, is unknown. From the AT&T termcap file it looks like curses, in general, -shouldn't use them; terminal variants with status lines have their line count -decremented by 1, suggesting that curses is supposed to leave the status line -alone. - -B. Printer capabilities: - - Boolean: col_addr_glitch, cr_cancels_micro_mode, has_print_wheel, - row_addr_glitch, semi_auto_right_margin, cpi_changes_res, - lpi_changes_res. - Numeric: buffer_capacity, dot_horz_spacing, dot_vert_spacing, - max_micro_address, max_micro_jump, micro_col_size, - micro_line_size, number_of_pins, output_res_char, - output_res_line, output_res_horz_inch, print_rate, - wide_char_size, bit_image_entwining, bit_image_type. - String: down_half_line, form_feed, up_half_line, set_left_margin, - set_right_margin, clear_margins, change_char_pitch - ... set_page_length (all the SVr4 printer caps), - -Curses doesn't use these. - -C. Printer-control capabilities: - - Boolean: prtr_silent. - Strings: print_screen, prtr_on, prtr_off, prtr_non. - -Curses doesn't use these. - -D. Dialer strings: - - Strings: hangup, dial_phone, quick_dial, tone, pulse, flash_hook, - fixed_pause, wait_tone. - -Curses doesn't use these. - -E. Window and virtual-terminal capabilities: - - Numerics: maximum_windows, virtual_terminal. - Strings: req_for_input, create_window, goto_window, set_window. - -These seem to be fossils from some AT&T experiments on character-based -window systems that never escaped the lab. The virtual_terminal cap had -something to do with building terminal emulations into tty line disciplines. - -F. Unused VDT capabilities: - - Booleans: erase_overstrike, has_meta_key, insert_null_glitch, - move_insert, dest_tabs_magic_smso, transparent_underline, - needs_xon_xoff, hard_cursor. - Numerics: lines_of_memory, buttons. - Strings: pkey_key, pkey_local, pkey_xmit, underline_char, - enter_xon_mode, exit_xon_mode, xon_character, xoff_character, - display_clock, remove_clock, user[0-5], display_pc_char, - enter_scancode_mode, exit_scancode_mode, pc_term_options, - scancode_escape, alt_scancode_esc. - -These are the potentially important ones for ncurses. Notes: - - i) ncurses doesn't need move_insert; it never uses cup/hpa/vpa while - insert_mode is on. - - ii) We probably don't care about dest_tabs_magic_smso; only - Telerays used it and they're all long obsolete. diff --git a/Build/source/libs/ncurses/aclocal.m4 b/Build/source/libs/ncurses/aclocal.m4 deleted file mode 100644 index b91475c74ee..00000000000 --- a/Build/source/libs/ncurses/aclocal.m4 +++ /dev/null @@ -1,4022 +0,0 @@ -dnl*************************************************************************** -dnl Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -dnl * -dnl Permission is hereby granted, free of charge, to any person obtaining a * -dnl copy of this software and associated documentation files (the * -dnl "Software"), to deal in the Software without restriction, including * -dnl without limitation the rights to use, copy, modify, merge, publish, * -dnl distribute, distribute with modifications, sublicense, and/or sell * -dnl copies of the Software, and to permit persons to whom the Software is * -dnl furnished to do so, subject to the following conditions: * -dnl * -dnl The above copyright notice and this permission notice shall be included * -dnl in all copies or substantial portions of the Software. * -dnl * -dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * -dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * -dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * -dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * -dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * -dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * -dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. * -dnl * -dnl Except as contained in this notice, the name(s) of the above copyright * -dnl holders shall not be used in advertising or otherwise to promote the * -dnl sale, use or other dealings in this Software without prior written * -dnl authorization. * -dnl*************************************************************************** -dnl -dnl Author: Thomas E. Dickey 1995-2004 -dnl -dnl $Id: aclocal.m4,v 1.344 2004/10/09 16:45:50 tom Exp $ -dnl Macros used in NCURSES auto-configuration script. -dnl -dnl See http://invisible-island.net/autoconf/ for additional information. -dnl -dnl --------------------------------------------------------------------------- -dnl --------------------------------------------------------------------------- -dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42 -dnl ------------------- -dnl Inserted as requested by gettext 0.10.40 -dnl File from /usr/share/aclocal -dnl codeset.m4 -dnl ==================== -dnl serial AM1 -dnl -dnl From Bruno Haible. -AC_DEFUN([AM_LANGINFO_CODESET], -[ - AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, - [AC_TRY_LINK([#include ], - [char* cs = nl_langinfo(CODESET);], - am_cv_langinfo_codeset=yes, - am_cv_langinfo_codeset=no) - ]) - if test $am_cv_langinfo_codeset = yes; then - AC_DEFINE(HAVE_LANGINFO_CODESET, 1, - [Define if you have and nl_langinfo(CODESET).]) - fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ADA_INCLUDE_DIRS version: 4 updated: 2002/12/01 00:12:15 -dnl ------------------- -dnl Construct the list of include-options for the C programs in the Ada95 -dnl binding. -AC_DEFUN([CF_ADA_INCLUDE_DIRS], -[ -ACPPFLAGS="-I. -I../../include $ACPPFLAGS" -if test "$srcdir" != "."; then - ACPPFLAGS="-I\$(srcdir)/../../include $ACPPFLAGS" -fi -if test "$GCC" != yes; then - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" -elif test "$includedir" != "/usr/include"; then - if test "$includedir" = '${prefix}/include' ; then - if test $prefix != /usr ; then - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" - fi - else - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" - fi -fi -AC_SUBST(ACPPFLAGS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30 -dnl ------------- -dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS -dnl The second parameter if given makes this macro verbose. -dnl -dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS, -dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily -dnl confused by the quotes (which require backslashes to keep them usable). -AC_DEFUN([CF_ADD_CFLAGS], -[ -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $1 -do -case $cf_fix_cppflags in -no) - case $cf_add_cflags in #(vi - -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi - case $cf_add_cflags in - -D*) - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test $cf_fix_cppflags = yes ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - fi - ;; - esac - case "$CPPFLAGS" in - *$cf_add_cflags) #(vi - ;; - *) #(vi - cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" - ;; - esac - ;; - *) - cf_new_cflags="$cf_new_cflags $cf_add_cflags" - ;; - esac - ;; -yes) - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)]) - CFLAGS="$CFLAGS $cf_new_cflags" -fi - -if test -n "$cf_new_cppflags" ; then - ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)]) - CPPFLAGS="$cf_new_cppflags $CPPFLAGS" -fi - -if test -n "$cf_new_extra_cppflags" ; then - ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)]) - EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" -fi - -AC_SUBST(EXTRA_CPPFLAGS) - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34 -dnl ---------------- -dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES' -dnl in the sharutils 4.2 distribution. -AC_DEFUN([CF_ANSI_CC_CHECK], -[ -AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[ -cf_cv_ansi_cc=no -cf_save_CFLAGS="$CFLAGS" -cf_save_CPPFLAGS="$CPPFLAGS" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX -Aa -D_HPUX_SOURCE -# SVR4 -Xc -# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes) -for cf_arg in "-DCC_HAS_PROTOS" \ - "" \ - -qlanglvl=ansi \ - -std1 \ - -Ae \ - "-Aa -D_HPUX_SOURCE" \ - -Xc -do - CF_ADD_CFLAGS($cf_arg) - AC_TRY_COMPILE( -[ -#ifndef CC_HAS_PROTOS -#if !defined(__STDC__) || (__STDC__ != 1) -choke me -#endif -#endif -],[ - int test (int i, double x); - struct s1 {int (*f) (int a);}; - struct s2 {int (*f) (double a);};], - [cf_cv_ansi_cc="$cf_arg"; break]) -done -CFLAGS="$cf_save_CFLAGS" -CPPFLAGS="$cf_save_CPPFLAGS" -]) - -if test "$cf_cv_ansi_cc" != "no"; then -if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then - CF_ADD_CFLAGS($cf_cv_ansi_cc) -else - AC_DEFINE(CC_HAS_PROTOS) -fi -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ANSI_CC_REQD version: 3 updated: 1997/09/06 13:40:44 -dnl --------------- -dnl For programs that must use an ANSI compiler, obtain compiler options that -dnl will make it recognize prototypes. We'll do preprocessor checks in other -dnl macros, since tools such as unproto can fake prototypes, but only part of -dnl the preprocessor. -AC_DEFUN([CF_ANSI_CC_REQD], -[AC_REQUIRE([CF_ANSI_CC_CHECK]) -if test "$cf_cv_ansi_cc" = "no"; then - AC_ERROR( -[Your compiler does not appear to recognize prototypes. -You have the following choices: - a. adjust your compiler options - b. get an up-to-date compiler - c. use a wrapper such as unproto]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_BOOL_DECL version: 8 updated: 2004/01/30 15:51:18 -dnl ------------ -dnl Test if 'bool' is a builtin type in the configured C++ compiler. Some -dnl older compilers (e.g., gcc 2.5.8) don't support 'bool' directly; gcc -dnl 2.6.3 does, in anticipation of the ANSI C++ standard. -dnl -dnl Treat the configuration-variable specially here, since we're directly -dnl substituting its value (i.e., 1/0). -dnl -dnl $1 is the shell variable to store the result in, if not $cv_cv_builtin_bool -AC_DEFUN([CF_BOOL_DECL], -[ -AC_MSG_CHECKING(if we should include stdbool.h) - -AC_CACHE_VAL(cf_cv_header_stdbool_h,[ - AC_TRY_COMPILE([],[bool foo = false], - [cf_cv_header_stdbool_h=0], - [AC_TRY_COMPILE([ -#ifndef __BEOS__ -#include -#endif -],[bool foo = false], - [cf_cv_header_stdbool_h=1], - [cf_cv_header_stdbool_h=0])])]) - -if test "$cf_cv_header_stdbool_h" = 1 -then AC_MSG_RESULT(yes) -else AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING([for builtin bool type]) - -AC_CACHE_VAL(ifelse($1,,cf_cv_builtin_bool,[$1]),[ - AC_TRY_COMPILE([ -#include -#include -],[bool x = false], - [ifelse($1,,cf_cv_builtin_bool,[$1])=1], - [ifelse($1,,cf_cv_builtin_bool,[$1])=0]) - ]) - -if test "$ifelse($1,,cf_cv_builtin_bool,[$1])" = 1 -then AC_MSG_RESULT(yes) -else AC_MSG_RESULT(no) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_BOOL_SIZE version: 10 updated: 2002/02/23 20:38:31 -dnl ------------ -dnl Test for the size of 'bool' in the configured C++ compiler (e.g., a type). -dnl Don't bother looking for bool.h, since it's been deprecated. -dnl -dnl If the current compiler is C rather than C++, we get the bool definition -dnl from . -AC_DEFUN([CF_BOOL_SIZE], -[ -AC_MSG_CHECKING([for size of bool]) -AC_CACHE_VAL(cf_cv_type_of_bool,[ - rm -f cf_test.out - AC_TRY_RUN([ -#include -#include - -#if defined(__cplusplus) - -#ifdef HAVE_GXX_BUILTIN_H -#include -#elif HAVE_GPP_BUILTIN_H -#include -#elif HAVE_BUILTIN_H -#include -#endif - -#else - -#if $cf_cv_header_stdbool_h -#include -#endif - -#endif - -main() -{ - FILE *fp = fopen("cf_test.out", "w"); - if (fp != 0) { - bool x = true; - if ((bool)(-x) >= 0) - fputs("unsigned ", fp); - if (sizeof(x) == sizeof(int)) fputs("int", fp); - else if (sizeof(x) == sizeof(char)) fputs("char", fp); - else if (sizeof(x) == sizeof(short))fputs("short",fp); - else if (sizeof(x) == sizeof(long)) fputs("long", fp); - fclose(fp); - } - exit(0); -} - ], - [cf_cv_type_of_bool=`cat cf_test.out` - if test -z "$cf_cv_type_of_bool"; then - cf_cv_type_of_bool=unknown - fi], - [cf_cv_type_of_bool=unknown], - [cf_cv_type_of_bool=unknown]) - ]) - rm -f cf_test.out -AC_MSG_RESULT($cf_cv_type_of_bool) -if test "$cf_cv_type_of_bool" = unknown ; then - case .$NCURSES_BOOL in #(vi - .auto|.) NCURSES_BOOL=unsigned;; - esac - AC_MSG_WARN(Assuming $NCURSES_BOOL for type of bool) - cf_cv_type_of_bool=$NCURSES_BOOL -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_BUILD_CC version: 3 updated: 2004/02/17 20:55:59 -dnl ----------- -dnl If we're cross-compiling, allow the user to override the tools and their -dnl options. The configure script is oriented toward identifying the host -dnl compiler, etc., but we need a build compiler to generate parts of the -dnl source. -dnl -dnl $1 = default for $CPPFLAGS -dnl $2 = default for $LIBS -AC_DEFUN([CF_BUILD_CC],[ -AC_REQUIRE([CF_PROG_EXT]) -if test "$cross_compiling" = yes ; then - # defaults that we might want to override - : ${BUILD_CC=`echo '$(CC)'`} - : ${BUILD_CPP=`echo '$(CC) -E'`} - : ${BUILD_CFLAGS=} - : ${BUILD_CPPFLAGS=`echo 'ifelse([$1],,,[$1])'`} - : ${BUILD_LDFLAGS=} - : ${BUILD_LIBS=`echo 'ifelse([$2],,,[$2])'`} - : ${BUILD_EXEEXT=`echo '$x'`} - : ${BUILD_OBJEXT=`echo 'o'`} - AC_ARG_WITH(build-cc, - [ --with-build-cc=XXX the build C compiler ($BUILD_CC)], - [BUILD_CC="$withval"], - [AC_CHECK_PROGS(BUILD_CC, $CC gcc cc)]) - AC_ARG_WITH(build-cpp, - [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)], - [BUILD_CPP="$withval"], - [BUILD_CPP='$(CC) -E']) - AC_ARG_WITH(build-cflags, - [ --with-build-cflags=XXX the build C compiler-flags], - [BUILD_CFLAGS="$withval"]) - AC_ARG_WITH(build-cppflags, - [ --with-build-cppflags=XXX the build C preprocessor-flags], - [BUILD_CPPFLAGS="$withval"]) - AC_ARG_WITH(build-ldflags, - [ --with-build-ldflags=XXX the build linker-flags], - [BUILD_LDFLAGS="$withval"]) - AC_ARG_WITH(build-libs, - [ --with-build-libs=XXX the build libraries], - [BUILD_LIBS="$withval"]) - # this assumes we're on Unix. - BUILD_EXEEXT= - BUILD_OBJEXT=o -else - : ${BUILD_CC=`echo '$(CC)'`} - : ${BUILD_CPP=`echo '$(CPP)'`} - : ${BUILD_CFLAGS=`echo '$(CFLAGS)'`} - : ${BUILD_CPPFLAGS=`echo '$(CPPFLAGS)'`} - : ${BUILD_LDFLAGS=`echo '$(LDFLAGS)'`} - : ${BUILD_LIBS=`echo '$(LIBS)'`} - : ${BUILD_EXEEXT=`echo '$x'`} - : ${BUILD_OBJEXT=`echo 'o'`} -fi - -AC_SUBST(BUILD_CC) -AC_SUBST(BUILD_CPP) -AC_SUBST(BUILD_CFLAGS) -AC_SUBST(BUILD_CPPFLAGS) -AC_SUBST(BUILD_LDFLAGS) -AC_SUBST(BUILD_LIBS) -AC_SUBST(BUILD_EXEEXT) -AC_SUBST(BUILD_OBJEXT) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CFG_DEFAULTS version: 6 updated: 2003/07/12 15:15:19 -dnl --------------- -dnl Determine the default configuration into which we'll install ncurses. This -dnl can be overridden by the user's command-line options. There's two items to -dnl look for: -dnl 1. the prefix (e.g., /usr) -dnl 2. the header files (e.g., /usr/include/ncurses) -dnl We'll look for a previous installation of ncurses and use the same defaults. -dnl -dnl We don't use AC_PREFIX_DEFAULT, because it gets evaluated too soon, and -dnl we don't use AC_PREFIX_PROGRAM, because we cannot distinguish ncurses's -dnl programs from a vendor's. -AC_DEFUN([CF_CFG_DEFAULTS], -[ -AC_MSG_CHECKING(for prefix) -if test "x$prefix" = "xNONE" ; then - case "$cf_cv_system_name" in - # non-vendor systems don't have a conflict - openbsd*|netbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu) - prefix=/usr - ;; - *) prefix=$ac_default_prefix - ;; - esac -fi -AC_MSG_RESULT($prefix) - -if test "x$prefix" = "xNONE" ; then -AC_MSG_CHECKING(for default include-directory) -test -n "$verbose" && echo 1>&AC_FD_MSG -for cf_symbol in \ - $includedir \ - $includedir/ncurses \ - $prefix/include \ - $prefix/include/ncurses \ - /usr/local/include \ - /usr/local/include/ncurses \ - /usr/include \ - /usr/include/ncurses -do - cf_dir=`eval echo $cf_symbol` - if test -f $cf_dir/curses.h ; then - if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then - includedir="$cf_symbol" - test -n "$verbose" && echo $ac_n " found " 1>&AC_FD_MSG - break - fi - fi - test -n "$verbose" && echo " tested $cf_dir" 1>&AC_FD_MSG -done -AC_MSG_RESULT($includedir) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CGETENT version: 3 updated: 2000/08/12 23:18:52 -dnl ---------- -dnl Check if the terminal-capability database functions are available. If not, -dnl ncurses has a much-reduced version. -AC_DEFUN([CF_CGETENT],[ -AC_MSG_CHECKING(for terminal-capability database functions) -AC_CACHE_VAL(cf_cv_cgetent,[ -AC_TRY_LINK([ -#include ],[ - char temp[128]; - char *buf = temp; - char *db_array = temp; - cgetent(&buf, /* int *, */ &db_array, "vt100"); - cgetcap(buf, "tc", '='); - cgetmatch(buf, "tc"); - ], - [cf_cv_cgetent=yes], - [cf_cv_cgetent=no]) -]) -AC_MSG_RESULT($cf_cv_cgetent) -test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CHECK_CACHE version: 10 updated: 2004/05/23 13:03:31 -dnl -------------- -dnl Check if we're accidentally using a cache from a different machine. -dnl Derive the system name, as a check for reusing the autoconf cache. -dnl -dnl If we've packaged config.guess and config.sub, run that (since it does a -dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow -dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM -dnl which is useful in cross-compiles. -dnl -dnl Note: we would use $ac_config_sub, but that is one of the places where -dnl autoconf 2.5x broke compatibility with autoconf 2.13 -AC_DEFUN([CF_CHECK_CACHE], -[ -if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then - ifelse([$1],,[AC_CANONICAL_HOST],[$1]) - system_name="$host_os" -else - system_name="`(uname -s -r) 2>/dev/null`" - if test -z "$system_name" ; then - system_name="`(hostname) 2>/dev/null`" - fi -fi -test -n "$system_name" && AC_DEFINE_UNQUOTED(SYSTEM_NAME,"$system_name") -AC_CACHE_VAL(cf_cv_system_name,[cf_cv_system_name="$system_name"]) - -test -z "$system_name" && system_name="$cf_cv_system_name" -test -n "$cf_cv_system_name" && AC_MSG_RESULT(Configuring for $cf_cv_system_name) - -if test ".$system_name" != ".$cf_cv_system_name" ; then - AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)) - AC_ERROR("Please remove config.cache and try again.") -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CHECK_ERRNO version: 9 updated: 2001/12/30 18:03:23 -dnl -------------- -dnl Check for data that is usually declared in or , e.g., -dnl the 'errno' variable. Define a DECL_xxx symbol if we must declare it -dnl ourselves. -dnl -dnl $1 = the name to check -AC_DEFUN([CF_CHECK_ERRNO], -[ -AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[ - AC_TRY_COMPILE([ -#ifdef HAVE_STDLIB_H -#include -#endif -#include -#include -#include ], - [long x = (long) $1], - [cf_cv_dcl_$1=yes], - [cf_cv_dcl_$1=no]) -]) - -if test "$cf_cv_dcl_$1" = no ; then - CF_UPPER(cf_result,decl_$1) - AC_DEFINE_UNQUOTED($cf_result) -fi - -# It's possible (for near-UNIX clones) that the data doesn't exist -CF_CHECK_EXTERN_DATA($1,int) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23 -dnl -------------------- -dnl Check for existence of external data in the current set of libraries. If -dnl we can modify it, it's real enough. -dnl $1 = the name to check -dnl $2 = its type -AC_DEFUN([CF_CHECK_EXTERN_DATA], -[ -AC_CACHE_CHECK(if external $1 exists, cf_cv_have_$1,[ - AC_TRY_LINK([ -#undef $1 -extern $2 $1; -], - [$1 = 2], - [cf_cv_have_$1=yes], - [cf_cv_have_$1=no]) -]) - -if test "$cf_cv_have_$1" = yes ; then - CF_UPPER(cf_result,have_$1) - AC_DEFINE_UNQUOTED($cf_result) -fi - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CPP_PARAM_INIT version: 4 updated: 2001/04/07 22:31:18 -dnl ----------------- -dnl Check if the C++ compiler accepts duplicate parameter initialization. This -dnl is a late feature for the standard and is not in some recent compilers -dnl (1999/9/11). -AC_DEFUN([CF_CPP_PARAM_INIT], -[ -if test -n "$CXX"; then -AC_CACHE_CHECK(if $CXX accepts parameter initialization,cf_cv_cpp_param_init,[ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_RUN([ -class TEST { -private: - int value; -public: - TEST(int x = 1); - ~TEST(); -}; - -TEST::TEST(int x = 1) // some compilers do not like second initializer -{ - value = x; -} -void main() { } -], - [cf_cv_cpp_param_init=yes], - [cf_cv_cpp_param_init=no], - [cf_cv_cpp_param_init=unknown]) - AC_LANG_RESTORE -]) -fi -test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28 -dnl ----------------- -dnl Check if the g++ compiler supports vscan function (not a standard feature). -AC_DEFUN([CF_CPP_VSCAN_FUNC], -[ -if test -n "$CXX"; then - -AC_LANG_SAVE -AC_LANG_CPLUSPLUS -AC_CHECK_HEADERS(strstream.h) - -AC_CACHE_CHECK(if $CXX supports vscan function,cf_cv_cpp_vscan_func,[ - for cf_vscan_func in strstream strstream_cast stdio - do - case $cf_vscan_func in #(vi - stdio) cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi - strstream) cf_vscan_defs=USE_STRSTREAM_VSCAN ;; - strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;; - esac - AC_TRY_LINK([ -#include -#include -#define $cf_vscan_defs 1 -#if defined(USE_STDIO_VSCAN) -#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN) -#include -#endif - -int scanw(const char* fmt, ...) -{ - int result = -1; - char buf[BUFSIZ]; - - va_list args; - va_start(args, fmt); -#if defined(USE_STDIO_VSCAN) - if (::vsscanf(buf, fmt, args) != -1) - result = 0; -#elif defined(USE_STRSTREAM_VSCAN) - strstreambuf ss(buf, sizeof(buf)); - if (ss.vscan(fmt, args) != -1) - result = 0; -#elif defined(USE_STRSTREAM_VSCAN_CAST) - strstreambuf ss(buf, sizeof(buf)); - if (ss.vscan(fmt, (_IO_va_list)args) != -1) - result = 0; -#else -#error case $cf_vscan_func failed -#endif - va_end(args); - return result; -} -],[int tmp, foo = scanw("%d", &tmp)], - [cf_cv_cpp_vscan_func=$cf_vscan_func; break], - [cf_cv_cpp_vscan_func=no]) - test "$cf_cv_cpp_vscan_func" != no && break - done -]) - -AC_LANG_RESTORE -fi - -case $cf_cv_cpp_vscan_func in #(vi -stdio) #(vi - AC_DEFINE(CPP_HAS_VSCAN_FUNC) - AC_DEFINE(USE_STDIO_VSCAN) - ;; -strstream) - AC_DEFINE(CPP_HAS_VSCAN_FUNC) - AC_DEFINE(USE_STRSTREAM_VSCAN) - ;; -strstream_cast) - AC_DEFINE(CPP_HAS_VSCAN_FUNC) - AC_DEFINE(USE_STRSTREAM_VSCAN_CAST) - ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_DIRNAME version: 4 updated: 2002/12/21 19:25:52 -dnl ---------- -dnl "dirname" is not portable, so we fake it with a shell script. -AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl -dnl --------------------------------------------------------------------------- -dnl CF_DIRS_TO_MAKE version: 3 updated: 2002/02/23 20:38:31 -dnl --------------- -AC_DEFUN([CF_DIRS_TO_MAKE], -[ -DIRS_TO_MAKE="lib" -for cf_item in $cf_list_models -do - CF_OBJ_SUBDIR($cf_item,cf_subdir) - for cf_item2 in $DIRS_TO_MAKE - do - test $cf_item2 = $cf_subdir && break - done - test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir" -done -for cf_dir in $DIRS_TO_MAKE -do - test ! -d $cf_dir && mkdir $cf_dir -done -AC_SUBST(DIRS_TO_MAKE) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ERRNO version: 5 updated: 1997/11/30 12:44:39 -dnl -------- -dnl Check if 'errno' is declared in -AC_DEFUN([CF_ERRNO], -[ -CF_CHECK_ERRNO(errno) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ETIP_DEFINES version: 3 updated: 2003/03/22 19:13:43 -dnl --------------- -dnl Test for conflicting definitions of exception in gcc 2.8.0, etc., between -dnl math.h and builtin.h, only for ncurses -AC_DEFUN([CF_ETIP_DEFINES], -[ -AC_MSG_CHECKING(for special defines needed for etip.h) -cf_save_CXXFLAGS="$CXXFLAGS" -cf_result="none" -for cf_math in "" MATH_H -do -for cf_excp in "" MATH_EXCEPTION -do - CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include" - test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}" - test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}" -AC_TRY_COMPILE([ -#include -],[],[ - test -n "$cf_math" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_math}) - test -n "$cf_excp" && AC_DEFINE_UNQUOTED(ETIP_NEEDS_${cf_excp}) - cf_result="$cf_math $cf_excp" - break -],[]) -done -done -AC_MSG_RESULT($cf_result) -CXXFLAGS="$cf_save_CXXFLAGS" -]) -dnl --------------------------------------------------------------------------- -dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45 -dnl ------------- -dnl Test for dlsym() and related functions, as well as libdl. -dnl -dnl Sets -dnl $cf_have_dlsym -dnl $cf_have_libdl -AC_DEFUN([CF_FUNC_DLSYM],[ -cf_have_dlsym=no -AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[ - -cf_have_libdl=no -AC_CHECK_LIB(dl,dlsym,[ - cf_have_dlsym=yes - cf_have_libdl=yes])]) - -if test "$cf_have_dlsym" = yes ; then - test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS" - - AC_MSG_CHECKING(whether able to link to dl*() functions) - AC_TRY_LINK([#include ],[ - void *obj; - if ((obj = dlopen("filename", 0)) != 0) { - if (dlsym(obj, "symbolname") == 0) { - dlclose(obj); - } - }],[ - AC_DEFINE(HAVE_LIBDL)],[ - AC_MSG_ERROR(Cannot link test program for libdl)]) - AC_MSG_RESULT(ok) -else - AC_MSG_ERROR(Cannot find dlsym function) -fi -]) -dnl --------------------------------------------------------------------------- -dnl CF_FUNC_MEMMOVE version: 5 updated: 2000/08/12 23:18:52 -dnl --------------- -dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither -dnl is found, add our own version of memmove to the list of objects. -AC_DEFUN([CF_FUNC_MEMMOVE], -[ -AC_CHECK_FUNC(memmove,,[ -AC_CHECK_FUNC(bcopy,[ - AC_CACHE_CHECK(if bcopy does overlapping moves,cf_cv_good_bcopy,[ - AC_TRY_RUN([ -int main() { - static char data[] = "abcdefghijklmnopqrstuwwxyz"; - char temp[40]; - bcopy(data, temp, sizeof(data)); - bcopy(temp+10, temp, 15); - bcopy(temp+5, temp+15, 10); - exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz")); -} - ], - [cf_cv_good_bcopy=yes], - [cf_cv_good_bcopy=no], - [cf_cv_good_bcopy=unknown]) - ]) - ],[cf_cv_good_bcopy=no]) - if test "$cf_cv_good_bcopy" = yes ; then - AC_DEFINE(USE_OK_BCOPY) - else - AC_DEFINE(USE_MY_MEMMOVE) - fi -])])dnl -dnl --------------------------------------------------------------------------- -dnl CF_FUNC_POLL version: 2 updated: 2000/02/06 01:38:04 -dnl ------------ -dnl See if the poll function really works. Some platforms have poll(), but -dnl it does not work for terminals or files. -AC_DEFUN([CF_FUNC_POLL],[ -AC_CACHE_CHECK(if poll really works,cf_cv_working_poll,[ -AC_TRY_RUN([ -#include -#ifdef HAVE_POLL_H -#include -#else -#include -#endif -int main() { - struct pollfd myfds; - int ret; - - myfds.fd = 0; - myfds.events = POLLIN; - - ret = poll(&myfds, 1, 100); - exit(ret != 0); -}], - [cf_cv_working_poll=yes], - [cf_cv_working_poll=no], - [cf_cv_working_poll=unknown])]) -test "$cf_cv_working_poll" = "yes" && AC_DEFINE(HAVE_WORKING_POLL) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_FUNC_TERMIOS version: 2 updated: 2000/07/22 23:37:24 -dnl --------------- -dnl Some old/broken variations define tcgetattr() only as a macro in -dnl termio(s).h -AC_DEFUN([CF_FUNC_TERMIOS],[ -AC_REQUIRE([CF_STRUCT_TERMIOS]) -AC_CACHE_CHECK(for tcgetattr, cf_cv_have_tcgetattr,[ -AC_TRY_LINK([ -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_TERMIOS_H -#include -#define TTY struct termios -#else -#ifdef HAVE_TERMIO_H -#include -#define TTY struct termio -#endif -#endif -],[ -TTY foo; -tcgetattr(1, &foo);], -[cf_cv_have_tcgetattr=yes], -[cf_cv_have_tcgetattr=no])]) -test "$cf_cv_have_tcgetattr" = yes && AC_DEFINE(HAVE_TCGETATTR) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_FUNC_VSSCANF version: 3 updated: 2001/12/19 00:50:10 -dnl --------------- -dnl Check for vsscanf() function, which is in c9x but generally not in earlier -dnl versions of C. It is in the GNU C library, and can often be simulated by -dnl other functions. -AC_DEFUN([CF_FUNC_VSSCANF], -[ -AC_CACHE_CHECK(for vsscanf function or workaround,cf_cv_func_vsscanf,[ -AC_TRY_LINK([ -#include -#include ],[ - va_list ap; - vsscanf("from", "%d", ap)],[cf_cv_func_vsscanf=vsscanf],[ -AC_TRY_LINK([ -#include -#include ],[ - FILE strbuf; - char *str = "from"; - - strbuf._flag = _IOREAD; - strbuf._ptr = strbuf._base = (unsigned char *) str; - strbuf._cnt = strlen(str); - strbuf._file = _NFILE; - return (vfscanf(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=vfscanf],[ -AC_TRY_LINK([ -#include -#include ],[ - FILE strbuf; - char *str = "from"; - - strbuf._flag = _IOREAD; - strbuf._ptr = strbuf._base = (unsigned char *) str; - strbuf._cnt = strlen(str); - strbuf._file = _NFILE; - return (_doscan(&strbuf, "%d", ap))],[cf_cv_func_vsscanf=_doscan],[ -cf_cv_func_vsscanf=no])])])]) - -case $cf_cv_func_vsscanf in #(vi -vsscanf) AC_DEFINE(HAVE_VSSCANF);; #(vi -vfscanf) AC_DEFINE(HAVE_VFSCANF);; #(vi -_doscan) AC_DEFINE(HAVE__DOSCAN);; -esac - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GCC_ATTRIBUTES version: 9 updated: 2002/12/21 19:25:52 -dnl ----------------- -dnl Test for availability of useful gcc __attribute__ directives to quiet -dnl compiler warnings. Though useful, not all are supported -- and contrary -dnl to documentation, unrecognized directives cause older compilers to barf. -AC_DEFUN([CF_GCC_ATTRIBUTES], -[ -if test "$GCC" = yes -then -cat > conftest.i < conftest.$ac_ext <&AC_FD_CC - case $cf_attribute in - scanf|printf) - cat >conftest.h <conftest.h <>confdefs.h - fi - done -else - fgrep define conftest.i >>confdefs.h -fi -rm -rf conftest* -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GCC_VERSION version: 3 updated: 2003/09/06 19:16:57 -dnl -------------- -dnl Find version of gcc -AC_DEFUN([CF_GCC_VERSION],[ -AC_REQUIRE([AC_PROG_CC]) -GCC_VERSION=none -if test "$GCC" = yes ; then - AC_MSG_CHECKING(version of $CC) - GCC_VERSION="`${CC} --version|sed -e '2,$d' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`" - test -z "$GCC_VERSION" && GCC_VERSION=unknown - AC_MSG_RESULT($GCC_VERSION) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GCC_WARNINGS version: 16 updated: 2004/07/23 14:40:34 -dnl --------------- -dnl Check if the compiler supports useful warning options. There's a few that -dnl we don't use, simply because they're too noisy: -dnl -dnl -Wconversion (useful in older versions of gcc, but not in gcc 2.7.x) -dnl -Wredundant-decls (system headers make this too noisy) -dnl -Wtraditional (combines too many unrelated messages, only a few useful) -dnl -Wwrite-strings (too noisy, but should review occasionally). This -dnl is enabled for ncurses using "--enable-const". -dnl -pedantic -dnl -dnl Parameter: -dnl $1 is an optional list of gcc warning flags that a particular -dnl application might want to use, e.g., "no-unused" for -dnl -Wno-unused -dnl Special: -dnl If $with_ext_const is "yes", add a check for -Wwrite-strings -dnl -AC_DEFUN([CF_GCC_WARNINGS], -[ -AC_REQUIRE([CF_GCC_VERSION]) -if test "$GCC" = yes -then - cat > conftest.$ac_ext <>conftest.ads <>conftest.adb <&AC_FD_CC 2>&1 ) ; then -ifelse($3,, :,[ $3]) -ifelse($4,,,[else - $4]) -fi -rm -f conftest* -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08 -dnl --------------- -dnl Verify that a test program compiles and runs with GNAT -dnl $cf_ada_make is set to the program that compiles/links -dnl $ADAFLAGS may be set to the GNAT flags. -dnl -dnl $1 is the text of the spec -dnl $2 is the text of the body -dnl $3 is the shell command to execute if successful -dnl $4 is the shell command to execute if not successful -AC_DEFUN([CF_GNAT_TRY_RUN], -[ -rm -f conftest* -cat >>conftest.ads <>conftest.adb <&AC_FD_CC 2>&1 ) ; then - if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then -ifelse($3,, :,[ $3]) -ifelse($4,,,[ else - $4]) - fi -ifelse($4,,,[else - $4]) -fi -rm -f conftest* -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GNAT_VERSION version: 11 updated: 2003/09/06 19:42:09 -dnl --------------- -dnl Verify version of GNAT. -AC_DEFUN([CF_GNAT_VERSION], -[ -AC_MSG_CHECKING(for gnat version) -cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[[0-9]].[[0-9]][[0-9]]*' |\ - sed -e '2,$d' -e 's/[[^0-9 \.]]//g' -e 's/^[[ ]]*//' -e 's/ .*//'` -AC_MSG_RESULT($cf_gnat_version) - -case $cf_gnat_version in - 3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*) - cf_cv_prog_gnat_correct=yes - ;; - *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding. - cf_cv_prog_gnat_correct=no - ;; -esac -case $cf_gnat_version in - 3.[[1-9]]*|[[4-9]].*) - cf_compile_generics=generics - cf_generic_objects="\$(GENOBJS)" - ;; - *) cf_compile_generics= - cf_generic_objects= - ;; -esac -]) -dnl --------------------------------------------------------------------------- -dnl CF_GNU_SOURCE version: 3 updated: 2000/10/29 23:30:53 -dnl ------------- -dnl Check if we must define _GNU_SOURCE to get a reasonable value for -dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect -dnl (or misfeature) of glibc2, which breaks portability of many applications, -dnl since it is interwoven with GNU extensions. -dnl -dnl Well, yes we could work around it... -AC_DEFUN([CF_GNU_SOURCE], -[ -AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[ -AC_TRY_COMPILE([#include ],[ -#ifndef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_gnu_source=no], - [cf_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" - AC_TRY_COMPILE([#include ],[ -#ifdef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_gnu_source=no], - [cf_cv_gnu_source=yes]) - CPPFLAGS="$cf_save" - ]) -]) -test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GPP_LIBRARY version: 8 updated: 2003/02/02 01:41:46 -dnl -------------- -dnl If we're trying to use g++, test if libg++ is installed (a rather common -dnl problem :-). If we have the compiler but no library, we'll be able to -dnl configure, but won't be able to build the c++ demo program. -AC_DEFUN([CF_GPP_LIBRARY], -[ -cf_cxx_library=unknown -case $cf_cv_system_name in #(vi -os2*) #(vi - cf_gpp_libname=gpp - ;; -*) - cf_gpp_libname=g++ - ;; -esac -if test "$GXX" = yes; then - AC_MSG_CHECKING([for lib$cf_gpp_libname]) - cf_save="$LIBS" - LIBS="$LIBS -l$cf_gpp_libname" - AC_TRY_LINK([ -#include <$cf_gpp_libname/builtin.h> - ], - [two_arg_error_handler_t foo2 = lib_error_handler], - [cf_cxx_library=yes - CXXLIBS="$CXXLIBS -l$cf_gpp_libname" - if test "$cf_gpp_libname" = cpp ; then - AC_DEFINE(HAVE_GPP_BUILTIN_H) - else - AC_DEFINE(HAVE_GXX_BUILTIN_H) - fi], - [AC_TRY_LINK([ -#include - ], - [two_arg_error_handler_t foo2 = lib_error_handler], - [cf_cxx_library=yes - CXXLIBS="$CXXLIBS -l$cf_gpp_libname" - AC_DEFINE(HAVE_BUILTIN_H)], - [cf_cxx_library=no])]) - LIBS="$cf_save" - AC_MSG_RESULT($cf_cxx_library) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_GXX_VERSION version: 3 updated: 2003/09/06 19:16:21 -dnl -------------- -dnl Check for version of g++ -AC_DEFUN([CF_GXX_VERSION],[ -AC_REQUIRE([AC_PROG_CPP]) -GXX_VERSION=none -if test "$GXX" = yes; then - AC_MSG_CHECKING(version of g++) - GXX_VERSION="`${CXX-g++} --version|sed -e '2,$d'`" - AC_MSG_RESULT($GXX_VERSION) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23 -dnl --------------- -dnl Insert text into the help-message, for readability, from AC_ARG_WITH. -AC_DEFUN([CF_HELP_MESSAGE], -[AC_DIVERT_HELP([$1])dnl -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_INCLUDE_DIRS version: 4 updated: 2002/12/01 00:12:15 -dnl --------------- -dnl Construct the list of include-options according to whether we're building -dnl in the source directory or using '--srcdir=DIR' option. If we're building -dnl with gcc, don't append the includedir if it happens to be /usr/include, -dnl since that usually breaks gcc's shadow-includes. -AC_DEFUN([CF_INCLUDE_DIRS], -[ -CPPFLAGS="-I. -I../include $CPPFLAGS" -if test "$srcdir" != "."; then - CPPFLAGS="-I\$(srcdir)/../include $CPPFLAGS" -fi -if test "$GCC" != yes; then - CPPFLAGS="$CPPFLAGS -I\$(includedir)" -elif test "$includedir" != "/usr/include"; then - if test "$includedir" = '${prefix}/include' ; then - if test $prefix != /usr ; then - CPPFLAGS="$CPPFLAGS -I\$(includedir)" - fi - else - CPPFLAGS="$CPPFLAGS -I\$(includedir)" - fi -fi -AC_SUBST(CPPFLAGS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52 -dnl ---------- -dnl Check if we have either a function or macro for 'isascii()'. -AC_DEFUN([CF_ISASCII], -[ -AC_MSG_CHECKING(for isascii) -AC_CACHE_VAL(cf_cv_have_isascii,[ - AC_TRY_LINK([#include ],[int x = isascii(' ')], - [cf_cv_have_isascii=yes], - [cf_cv_have_isascii=no]) -])dnl -AC_MSG_RESULT($cf_cv_have_isascii) -test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32 -dnl ---------- -dnl Check for libutf8 -AC_DEFUN([CF_LIBUTF8], -[ -AC_CACHE_CHECK(for putwc in libutf8,cf_cv_libutf8,[ - cf_save_LIBS="$LIBS" - LIBS="-lutf8 $LIBS" -AC_TRY_LINK([ -#include ],[putwc(0,0);], - [cf_cv_libutf8=yes], - [cf_cv_libutf8=no]) - LIBS="$cf_save_LIBS" -]) - -if test "$cf_cv_libutf8" = yes ; then - AC_DEFINE(HAVE_LIBUTF8_H) - LIBS="-lutf8 $LIBS" -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LIB_PREFIX version: 7 updated: 2001/01/12 01:23:48 -dnl ------------- -dnl Compute the library-prefix for the given host system -dnl $1 = variable to set -AC_DEFUN([CF_LIB_PREFIX], -[ - case $cf_cv_system_name in - OS/2*) LIB_PREFIX='' ;; - os2*) LIB_PREFIX='' ;; - *) LIB_PREFIX='lib' ;; - esac -ifelse($1,,,[$1=$LIB_PREFIX]) - AC_SUBST(LIB_PREFIX) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LIB_RULES version: 35 updated: 2004/09/18 17:54:16 -dnl ------------ -dnl Append definitions and rules for the given models to the subdirectory -dnl Makefiles, and the recursion rule for the top-level Makefile. If the -dnl subdirectory is a library-source directory, modify the LIBRARIES list in -dnl the corresponding makefile to list the models that we'll generate. -dnl -dnl For shared libraries, make a list of symbolic links to construct when -dnl generating each library. The convention used for Linux is the simplest -dnl one: -dnl lib.so -> -dnl lib.so. -> -dnl lib.so.. -AC_DEFUN([CF_LIB_RULES], -[ -CF_LIB_PREFIX(cf_prefix) -AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) -for cf_dir in $SRC_SUBDIRS -do - if test -f $srcdir/$cf_dir/modules; then - - IMPORT_LIB= - SHARED_LIB= - LIBS_TO_MAKE= - for cf_item in $CF_LIST_MODELS - do - CF_LIB_SUFFIX($cf_item,cf_suffix) - if test $cf_item = shared ; then - if test "$cf_cv_do_symlinks" = yes ; then - case "$cf_cv_shlib_version" in #(vi - rel) #(vi - case "$cf_cv_system_name" in #(vi - darwin*) - case .${LIB_SUFFIX} in - .w*) - cf_suffix=`echo $cf_suffix | sed 's/^w//'` - cf_suffix=w'.$(REL_VERSION)'"$cf_suffix" - ;; - *) - cf_suffix='.$(REL_VERSION)'"$cf_suffix" - ;; - esac - ;; #(vi - *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;; - esac - ;; - abi) - case "$cf_cv_system_name" in #(vi - darwin*) - case .${LIB_SUFFIX} in - .w*) - cf_suffix=`echo $cf_suffix | sed 's/^w//'` - cf_suffix=w'.$(ABI_VERSION)'"$cf_suffix" - ;; - *) - cf_suffix='.$(ABI_VERSION)'"$cf_suffix" - ;; - esac - ;; #(vi - *) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;; - esac - ;; - esac - fi - # cygwin needs import library, and has unique naming convention - # use autodetected ${cf_prefix} for import lib and static lib, but - # use 'cyg' prefix for shared lib. - if test $cf_cv_shlib_version = cygdll ; then - SHARED_LIB="../lib/cyg${cf_dir}\$(ABI_VERSION).dll" - IMPORT_LIB="../lib/${cf_prefix}${cf_dir}.dll.a" - LIBS_TO_MAKE="$LIBS_TO_MAKE \$(SHARED_LIB) \$(IMPORT_LIB)" - continue - fi - fi - LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}" - done - - if test $cf_dir = ncurses ; then - cf_subsets="$LIB_SUBSETS" - cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'` - if test "$cf_termlib" != "$cf_subsets" ; then - cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g` - LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE" - fi - else - cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'` - fi - - sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \ - -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \ - -e "s%@SHARED_LIB@%$SHARED_LIB%" \ - $cf_dir/Makefile >$cf_dir/Makefile.out - mv $cf_dir/Makefile.out $cf_dir/Makefile - - $AWK -f $srcdir/mk-0th.awk \ - libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \ - $srcdir/$cf_dir/modules >>$cf_dir/Makefile - - for cf_subset in $cf_subsets - do - cf_subdirs= - for cf_item in $CF_LIST_MODELS - do - echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})" - CF_UPPER(CF_ITEM,$cf_item) - CF_LIB_SUFFIX($cf_item,cf_suffix) - CF_OBJ_SUBDIR($cf_item,cf_subdir) - - # Test for case where we build libtinfo with a different name. - cf_libname=$cf_dir - if test $cf_dir = ncurses ; then - case $cf_subset in - *base*) - ;; - termlib*) - cf_libname=$TINFO_LIB_SUFFIX - if test -n "${DFT_ARG_SUFFIX}" ; then - # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX - cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"` - fi - ;; - esac - fi - - # These dependencies really are for development, not - # builds, but they are useful in porting, too. - cf_depend="../include/ncurses_cfg.h" - if test "$srcdir" = "."; then - cf_reldir="." - else - cf_reldir="\$(srcdir)" - fi - - if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then - cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h" - elif test -f $srcdir/$cf_dir/curses.priv.h; then - cf_depend="$cf_depend $cf_reldir/curses.priv.h" - fi - - cf_dir_suffix= - old_cf_suffix="$cf_suffix" - if test "$cf_cv_shlib_version_infix" = yes ; then - if test -n "$LIB_SUFFIX" ; then - case $LIB_SUFFIX in - w*) - cf_libname=`echo $cf_libname | sed 's/w$//'` - cf_suffix=`echo $cf_suffix | sed 's/^w//'` - cf_dir_suffix=w - ;; - esac - fi - fi - - $AWK -f $srcdir/mk-1st.awk \ - name=${cf_libname}${cf_dir_suffix} \ - traces=$LIB_TRACING \ - MODEL=$CF_ITEM \ - model=$cf_subdir \ - prefix=$cf_prefix \ - suffix=$cf_suffix \ - subset=$cf_subset \ - ShlibVer=$cf_cv_shlib_version \ - ShlibVerInfix=$cf_cv_shlib_version_infix \ - DoLinks=$cf_cv_do_symlinks \ - rmSoLocs=$cf_cv_rm_so_locs \ - ldconfig="$LDCONFIG" \ - overwrite=$WITH_OVERWRITE \ - depend="$cf_depend" \ - host="$host" \ - $srcdir/$cf_dir/modules >>$cf_dir/Makefile - - cf_suffix="$old_cf_suffix" - - for cf_subdir2 in $cf_subdirs lib - do - test $cf_subdir = $cf_subdir2 && break - done - test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \ - $AWK -f $srcdir/mk-2nd.awk \ - name=$cf_dir \ - traces=$LIB_TRACING \ - MODEL=$CF_ITEM \ - model=$cf_subdir \ - subset=$cf_subset \ - srcdir=$srcdir \ - echo=$WITH_ECHO \ - crenames=$cf_cv_prog_CC_c_o \ - cxxrenames=$cf_cv_prog_CXX_c_o \ - $srcdir/$cf_dir/modules >>$cf_dir/Makefile - cf_subdirs="$cf_subdirs $cf_subdir" - done - done - fi - - echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >>Makefile -done - -for cf_dir in $SRC_SUBDIRS -do - if test -f $cf_dir/Makefile ; then - case "$cf_dir" in - Ada95) #(vi - echo 'libs \' >> Makefile - echo 'install.libs \' >> Makefile - echo 'uninstall.libs ::' >> Makefile - echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) [$]@' >> Makefile - ;; - esac - fi - - if test -f $srcdir/$cf_dir/modules; then - echo >> Makefile - if test -f $srcdir/$cf_dir/headers; then -cat >> Makefile <> Makefile -fi -cat >> Makefile <> Makefile <> Makefile <> Makefile <headers.sh <>headers.sh </<\$END\/\$NAME>/" >> \$TMPSED - done - ;; -*) - echo "" >> \$TMPSED - ;; -esac -CF_EOF -else - cat >>headers.sh <//" >> \$TMPSED - NAME=ncurses.h - fi - echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED - done - ;; -*) - echo "s///" >> \$TMPSED - ;; -esac -CF_EOF -fi -cat >>headers.sh < \$TMPSRC -NAME=\`basename \$SRC\` -CF_EOF -if test $WITH_CURSES_H != yes; then - cat >>headers.sh <>headers.sh <>$cf_dir/Makefile <>$cf_dir/Makefile - j=$i - done - echo " $j" >>$cf_dir/Makefile - for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"` - do - echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f `basename $i`) ; ../headers.sh \$(INSTALL_DATA) \$(DESTDIR)\$(includedir) \$(srcdir) $i" >>$cf_dir/Makefile - test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h && \$(LN_S) curses.h ncurses.h)" >>$cf_dir/Makefile - done - - cat >>$cf_dir/Makefile <>$cf_dir/Makefile - test $i = curses.h && echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile - done - fi - - if test -f $srcdir/$cf_dir/modules; then - if test "$cf_dir" != "c++" ; then - cat >>$cf_dir/Makefile <<"CF_EOF" -depend : $(AUTO_SRC) - makedepend -- $(CPPFLAGS) -- $(C_SRC) - -# DO NOT DELETE THIS LINE -- make depend depends on it. -CF_EOF - fi - fi -done - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LIB_SUFFIX version: 13 updated: 2003/11/01 16:09:07 -dnl ------------- -dnl Compute the library file-suffix from the given model name -dnl $1 = model name -dnl $2 = variable to set -dnl The variable $LIB_SUFFIX, if set, prepends the variable to set. -AC_DEFUN([CF_LIB_SUFFIX], -[ - AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) - case $1 in - libtool) $2='.la' ;; - normal) $2='.a' ;; - debug) $2='_g.a' ;; - profile) $2='_p.a' ;; - shared) - case $cf_cv_system_name in - cygwin*) $2='.dll' ;; - darwin*) $2='.dylib' ;; - hpux*) - case $target in - ia64*) $2='.so' ;; - *) $2='.sl' ;; - esac - ;; - *) $2='.so' ;; - esac - esac - test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}" -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LIB_TYPE version: 4 updated: 2000/10/20 22:57:49 -dnl ----------- -dnl Compute the string to append to -library from the given model name -dnl $1 = model name -dnl $2 = variable to set -dnl The variable $LIB_SUFFIX, if set, prepends the variable to set. -AC_DEFUN([CF_LIB_TYPE], -[ - case $1 in - libtool) $2='' ;; - normal) $2='' ;; - debug) $2='_g' ;; - profile) $2='_p' ;; - shared) $2='' ;; - esac - test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}" -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LINK_DATAONLY version: 6 updated: 2003/02/02 01:41:46 -dnl ---------------- -dnl Some systems have a non-ANSI linker that doesn't pull in modules that have -dnl only data (i.e., no functions), for example NeXT. On those systems we'll -dnl have to provide wrappers for global tables to ensure they're linked -dnl properly. -AC_DEFUN([CF_LINK_DATAONLY], -[ -AC_MSG_CHECKING([if data-only library module links]) -AC_CACHE_VAL(cf_cv_link_dataonly,[ - rm -f conftest.a - cat >conftest.$ac_ext <&AC_FD_CC 1>/dev/null - fi - rm -f conftest.$ac_ext data.o - cat >conftest.$ac_ext <&AC_FD_CC 1>/dev/null - fi - rm -f conftest.$ac_ext func.o - ( eval $RANLIB conftest.a ) 2>&AC_FD_CC >/dev/null - cf_saveLIBS="$LIBS" - LIBS="conftest.a $LIBS" - AC_TRY_RUN([ - int main() - { - extern int testfunc(); - exit (!testfunc()); - } - ], - [cf_cv_link_dataonly=yes], - [cf_cv_link_dataonly=no], - [cf_cv_link_dataonly=unknown]) - LIBS="$cf_saveLIBS" - ]) -AC_MSG_RESULT($cf_cv_link_dataonly) - -if test "$cf_cv_link_dataonly" = no ; then - AC_DEFINE(BROKEN_LINKER) - BROKEN_LINKER=1 -fi - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_LINK_FUNCS version: 5 updated: 2003/02/02 01:41:46 -dnl ------------- -dnl Most Unix systems have both link and symlink, a few don't have symlink. -dnl A few non-Unix systems implement symlink, but not link. -dnl A few non-systems implement neither (or have nonfunctional versions). -AC_DEFUN([CF_LINK_FUNCS], -[ -AC_CHECK_FUNCS( \ - remove \ - unlink ) - -if test "$cross_compiling" = yes ; then - AC_CHECK_FUNCS( \ - link \ - symlink ) -else - AC_CACHE_CHECK(if link/symlink functions work,cf_cv_link_funcs,[ - cf_cv_link_funcs= - for cf_func in link symlink ; do - AC_TRY_RUN([ -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -int main() -{ - int fail = 0; - char *src = "config.log"; - char *dst = "conftest.chk"; - struct stat src_sb; - struct stat dst_sb; - - stat(src, &src_sb); - fail = ($cf_func("config.log", "conftest.chk") < 0) - || (stat(dst, &dst_sb) < 0) - || (dst_sb.st_mtime != src_sb.st_mtime); -#ifdef HAVE_UNLINK - unlink(dst); -#else - remove(dst); -#endif - exit (fail); -} - ],[ - cf_cv_link_funcs="$cf_cv_link_funcs $cf_func" - eval 'ac_cv_func_'$cf_func'=yes'],[ - eval 'ac_cv_func_'$cf_func'=no'],[ - eval 'ac_cv_func_'$cf_func'=error']) - done - test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no - ]) - test "$ac_cv_func_link" = yes && AC_DEFINE(HAVE_LINK) - test "$ac_cv_func_symlink" = yes && AC_DEFINE(HAVE_SYMLINK) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MAKEFLAGS version: 9 updated: 2001/12/30 18:17:27 -dnl ------------ -dnl Some 'make' programs support $(MAKEFLAGS), some $(MFLAGS), to pass 'make' -dnl options to lower-levels. It's very useful for "make -n" -- if we have it. -dnl (GNU 'make' does both, something POSIX 'make', which happens to make the -dnl $(MAKEFLAGS) variable incompatible because it adds the assignments :-) -AC_DEFUN([CF_MAKEFLAGS], -[ -AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[ - cf_cv_makeflags='' - for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)' - do - cat >cf_makeflags.tmp </dev/null` - case "$cf_result" in - .*k) - cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null` - case "$cf_result" in - .*CC=*) cf_cv_makeflags= - ;; - *) cf_cv_makeflags=$cf_option - ;; - esac - break - ;; - *) echo no match "$cf_result" - ;; - esac - done - rm -f cf_makeflags.tmp -]) - -AC_SUBST(cf_cv_makeflags) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MAKE_TAGS version: 2 updated: 2000/10/04 09:18:40 -dnl ------------ -dnl Generate tags/TAGS targets for makefiles. Do not generate TAGS if we have -dnl a monocase filesystem. -AC_DEFUN([CF_MAKE_TAGS],[ -AC_REQUIRE([CF_MIXEDCASE_FILENAMES]) -AC_CHECK_PROG(MAKE_LOWER_TAGS, ctags, yes, no) - -if test "$cf_cv_mixedcase" = yes ; then - AC_CHECK_PROG(MAKE_UPPER_TAGS, etags, yes, no) -else - MAKE_UPPER_TAGS=no -fi - -if test "$MAKE_UPPER_TAGS" = yes ; then - MAKE_UPPER_TAGS= -else - MAKE_UPPER_TAGS="#" -fi -AC_SUBST(MAKE_UPPER_TAGS) - -if test "$MAKE_LOWER_TAGS" = yes ; then - MAKE_LOWER_TAGS= -else - MAKE_LOWER_TAGS="#" -fi -AC_SUBST(MAKE_LOWER_TAGS) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MANPAGE_FORMAT version: 7 updated: 2003/12/20 19:30:34 -dnl ----------------- -dnl Option to allow user to override automatic configuration of manpage format. -dnl There are several special cases: -dnl -dnl gzip - man checks for, can display gzip'd files -dnl compress - man checks for, can display compressed files -dnl BSDI - files in the cat-directories are suffixed ".0" -dnl formatted - installer should format (put files in cat-directory) -dnl catonly - installer should only format, e.g., for a turnkey system. -dnl -dnl There are other configurations which this macro does not test, e.g., HPUX's -dnl compressed manpages (but uncompressed manpages are fine, and HPUX's naming -dnl convention would not match our use). -AC_DEFUN([CF_MANPAGE_FORMAT], -[ -AC_REQUIRE([CF_PATHSEP]) -AC_MSG_CHECKING(format of man-pages) - -AC_ARG_WITH(manpage-format, - [ --with-manpage-format specify manpage-format: gzip/compress/BSDI/normal and - optionally formatted/catonly, e.g., gzip,formatted], - [MANPAGE_FORMAT=$withval], - [MANPAGE_FORMAT=unknown]) - -test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown -MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'` - -cf_unknown= - -case $MANPAGE_FORMAT in -unknown) - if test -z "$MANPATH" ; then - MANPATH="/usr/man:/usr/share/man" - fi - - # look for the 'date' man-page (it's most likely to be installed!) - MANPAGE_FORMAT= - cf_preform=no - cf_catonly=yes - cf_example=date - - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}" - for cf_dir in $MANPATH; do - test -z "$cf_dir" && cf_dir=/usr/man - for cf_name in $cf_dir/man*/$cf_example.[[01]]* $cf_dir/cat*/$cf_example.[[01]]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example - do - cf_test=`echo $cf_name | sed -e 's/*//'` - if test "x$cf_test" = "x$cf_name" ; then - - case "$cf_name" in - *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";; - *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";; - *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";; - *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";; - esac - - case "$cf_name" in - $cf_dir/man*) - cf_catonly=no - ;; - $cf_dir/cat*) - cf_preform=yes - ;; - esac - break - fi - - # if we found a match in either man* or cat*, stop looking - if test -n "$MANPAGE_FORMAT" ; then - cf_found=no - test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted" - test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly" - case "$cf_name" in - $cf_dir/cat*) - cf_found=yes - ;; - esac - test $cf_found=yes && break - fi - done - # only check the first directory in $MANPATH where we find manpages - if test -n "$MANPAGE_FORMAT" ; then - break - fi - done - # if we did not find the example, just assume it is normal - test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal - IFS="$ac_save_ifs" - ;; -*) - for cf_option in $MANPAGE_FORMAT; do - case $cf_option in #(vi - gzip|compress|BSDI|normal|formatted|catonly) - ;; - *) - cf_unknown="$cf_unknown $cf_option" - ;; - esac - done - ;; -esac - -AC_MSG_RESULT($MANPAGE_FORMAT) -if test -n "$cf_unknown" ; then - AC_MSG_WARN(Unexpected manpage-format $cf_unknown) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MANPAGE_RENAMES version: 6 updated: 2002/01/19 22:51:32 -dnl ------------------ -dnl The Debian people have their own naming convention for manpages. This -dnl option lets us override the name of the file containing renaming, or -dnl disable it altogether. -AC_DEFUN([CF_MANPAGE_RENAMES], -[ -AC_MSG_CHECKING(for manpage renaming) - -AC_ARG_WITH(manpage-renames, - [ --with-manpage-renames specify manpage-renaming], - [MANPAGE_RENAMES=$withval], - [MANPAGE_RENAMES=yes]) - -case ".$MANPAGE_RENAMES" in #(vi -.no) #(vi - ;; -.|.yes) - # Debian 'man' program? - if test -f /etc/debian_version ; then - MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames - else - MANPAGE_RENAMES=no - fi - ;; -esac - -if test "$MANPAGE_RENAMES" != no ; then - if test -f $srcdir/man/$MANPAGE_RENAMES ; then - MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES - elif test ! -f $MANPAGE_RENAMES ; then - AC_MSG_ERROR(not a filename: $MANPAGE_RENAMES) - fi - - test ! -d man && mkdir man - - # Construct a sed-script to perform renaming within man-pages - if test -n "$MANPAGE_RENAMES" ; then - test ! -d man && mkdir man - sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed - fi -fi - -AC_MSG_RESULT($MANPAGE_RENAMES) -AC_SUBST(MANPAGE_RENAMES) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MANPAGE_SYMLINKS version: 4 updated: 2003/12/13 18:01:58 -dnl ------------------- -dnl Some people expect each tool to make all aliases for manpages in the -dnl man-directory. This accommodates the older, less-capable implementations -dnl of 'man', and is optional. -AC_DEFUN([CF_MANPAGE_SYMLINKS], -[ -AC_MSG_CHECKING(if manpage aliases will be installed) - -AC_ARG_WITH(manpage-aliases, - [ --with-manpage-aliases specify manpage-aliases using .so], - [MANPAGE_ALIASES=$withval], - [MANPAGE_ALIASES=yes]) - -AC_MSG_RESULT($MANPAGE_ALIASES) - -if test "$LN_S" = "ln -s"; then - cf_use_symlinks=yes -else - cf_use_symlinks=no -fi - -MANPAGE_SYMLINKS=no -if test "$MANPAGE_ALIASES" = yes ; then -AC_MSG_CHECKING(if manpage symlinks should be used) - -AC_ARG_WITH(manpage-symlinks, - [ --with-manpage-symlinks specify manpage-aliases using symlinks], - [MANPAGE_SYMLINKS=$withval], - [MANPAGE_SYMLINKS=$cf_use_symlinks]) - -if test "$$cf_use_symlinks" = no; then -if test "$MANPAGE_SYMLINKS" = yes ; then - AC_MSG_WARN(cannot make symlinks, will use .so files) - MANPAGE_SYMLINKS=no -fi -fi - -AC_MSG_RESULT($MANPAGE_SYMLINKS) -fi - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MANPAGE_TBL version: 3 updated: 2002/01/19 22:51:32 -dnl -------------- -dnl This option causes manpages to be run through tbl(1) to generate tables -dnl correctly. -AC_DEFUN([CF_MANPAGE_TBL], -[ -AC_MSG_CHECKING(for manpage tbl) - -AC_ARG_WITH(manpage-tbl, - [ --with-manpage-tbl specify manpage processing with tbl], - [MANPAGE_TBL=$withval], - [MANPAGE_TBL=no]) - -AC_MSG_RESULT($MANPAGE_TBL) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MAN_PAGES version: 27 updated: 2003/12/20 20:39:45 -dnl ------------ -dnl Try to determine if the man-pages on the system are compressed, and if -dnl so, what format is used. Use this information to construct a script that -dnl will install man-pages. -AC_DEFUN([CF_MAN_PAGES], -[ -CF_HELP_MESSAGE(Options to Specify How Manpages are Installed:) -CF_MANPAGE_FORMAT -CF_MANPAGE_RENAMES -CF_MANPAGE_SYMLINKS -CF_MANPAGE_TBL - - if test "$prefix" = "NONE" ; then - cf_prefix="$ac_default_prefix" - else - cf_prefix="$prefix" - fi - - case "$MANPAGE_FORMAT" in # (vi - *catonly*) # (vi - cf_format=yes - cf_inboth=no - ;; - *formatted*) # (vi - cf_format=yes - cf_inboth=yes - ;; - *) - cf_format=no - cf_inboth=no - ;; - esac - -test ! -d man && mkdir man - -cf_so_strip= -cf_compress= -case "$MANPAGE_FORMAT" in #(vi -*compress*) #(vi - cf_so_strip="Z" - cf_compress=compress - ;; -*gzip*) #(vi - cf_so_strip="gz" - cf_compress=gzip - ;; -esac - -cf_edit_man=man/edit_man.sh - -cat >$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP -CF_EOF -else -cat >>$cf_edit_man <\$TMP -CF_EOF -fi - -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP -fi -CF_EOF - -if test $with_curses_h != yes ; then -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP -CF_EOF -fi - -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP - fi -CF_EOF - -if test -n "$cf_compress" ; then -cat >>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP -CF_EOF -if test -n "$cf_compress" ; then -cat >>$cf_edit_man <>$cf_edit_man < - #include - ], - [double x = rand(); printf("result = %g\n", ]ifelse($2,,sin(x),$2)[)], - [cf_cv_need_libm=no], - [cf_cv_need_libm=yes])]) -if test "$cf_cv_need_libm" = yes -then -ifelse($1,,[ - LIBS="$LIBS -lm" -],[$1=-lm]) -fi -]) -dnl --------------------------------------------------------------------------- -dnl CF_MIXEDCASE_FILENAMES version: 3 updated: 2003/09/20 17:07:55 -dnl ---------------------- -dnl Check if the file-system supports mixed-case filenames. If we're able to -dnl create a lowercase name and see it as uppercase, it doesn't support that. -AC_DEFUN([CF_MIXEDCASE_FILENAMES], -[ -AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[ -if test "$cross_compiling" = yes ; then - case $target_alias in #(vi - *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi - cf_cv_mixedcase=no - ;; - *) - cf_cv_mixedcase=yes - ;; - esac -else - rm -f conftest CONFTEST - echo test >conftest - if test -f CONFTEST ; then - cf_cv_mixedcase=no - else - cf_cv_mixedcase=yes - fi - rm -f conftest CONFTEST -fi -]) -test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_MKSTEMP version: 3 updated: 2001/11/08 20:59:59 -dnl ---------- -dnl Check for a working mkstemp. This creates two files, checks that they are -dnl successfully created and distinct (AmigaOS apparently fails on the last). -AC_DEFUN([CF_MKSTEMP],[ -AC_CACHE_CHECK(for working mkstemp, cf_cv_func_mkstemp,[ -rm -f conftest* -AC_TRY_RUN([ -#include -#include -#include -#include -#include -int main() -{ - char *tmpl = "conftestXXXXXX"; - char name[2][80]; - int n; - int result = 0; - int fd; - struct stat sb; - - umask(077); - for (n = 0; n < 2; ++n) { - strcpy(name[n], tmpl); - if ((fd = mkstemp(name[n])) >= 0) { - if (!strcmp(name[n], tmpl) - || stat(name[n], &sb) != 0 - || (sb.st_mode & S_IFMT) != S_IFREG - || (sb.st_mode & 077) != 0) { - result = 1; - } - close(fd); - } - } - if (result == 0 - && !strcmp(name[0], name[1])) - result = 1; - exit(result); -} -],[cf_cv_func_mkstemp=yes -],[cf_cv_func_mkstemp=no -],[AC_CHECK_FUNC(mkstemp) -]) -]) -if test "$cf_cv_func_mkstemp" = yes ; then - AC_DEFINE(HAVE_MKSTEMP) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49 -dnl ---------------- -dnl Check if the given variable is a number. If not, report an error. -dnl $1 is the variable -dnl $2 is the message -AC_DEFUN([CF_NUMBER_SYNTAX],[ -if test -n "$1" ; then - case $1 in #(vi - [[0-9]]*) #(vi - ;; - *) - AC_MSG_ERROR($2 is not a number: $1) - ;; - esac -else - AC_MSG_ERROR($2 value is empty) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_OBJ_SUBDIR version: 4 updated: 2002/02/23 20:38:31 -dnl ------------- -dnl Compute the object-directory name from the given model name -AC_DEFUN([CF_OBJ_SUBDIR], -[ - case $1 in - libtool) $2='obj_lo' ;; - normal) $2='objects' ;; - debug) $2='obj_g' ;; - profile) $2='obj_p' ;; - shared) - case $cf_cv_system_name in #(vi - cygwin) #(vi - $2='objects' ;; - *) - $2='obj_s' ;; - esac - esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53 -dnl ---------- -dnl Provide a value for the $PATH and similar separator -AC_DEFUN([CF_PATHSEP], -[ - case $cf_cv_system_name in - os2*) PATHSEP=';' ;; - *) PATHSEP=':' ;; - esac -ifelse($1,,,[$1=$PATHSEP]) - AC_SUBST(PATHSEP) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PATH_SYNTAX version: 9 updated: 2002/09/17 23:03:38 -dnl -------------- -dnl Check the argument to see that it looks like a pathname. Rewrite it if it -dnl begins with one of the prefix/exec_prefix variables, and then again if the -dnl result begins with 'NONE'. This is necessary to work around autoconf's -dnl delayed evaluation of those symbols. -AC_DEFUN([CF_PATH_SYNTAX],[ -case ".[$]$1" in #(vi -.\[$]\(*\)*|.\'*\'*) #(vi - ;; -..|./*|.\\*) #(vi - ;; -.[[a-zA-Z]]:[[\\/]]*) #(vi OS/2 EMX - ;; -.\[$]{*prefix}*) #(vi - eval $1="[$]$1" - case ".[$]$1" in #(vi - .NONE/*) - $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%` - ;; - esac - ;; #(vi -.NONE/*) - $1=`echo [$]$1 | sed -e s%NONE%$ac_default_prefix%` - ;; -*) - ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2) - ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56 -dnl ------------ -dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles. -dnl -dnl $1 = symbol to test -dnl $2 = value (if any) to use for a predefinition -AC_DEFUN([CF_PREDEFINE], -[ -AC_MSG_CHECKING(if we must define $1) -AC_TRY_COMPILE([#include -],[ -#ifndef $1 -make an error -#endif],[cf_result=no],[cf_result=yes]) -AC_MSG_RESULT($cf_result) - -if test "$cf_result" = yes ; then - CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])" -elif test "x$2" != "x" ; then - AC_MSG_CHECKING(checking for compatible value versus $2) - AC_TRY_COMPILE([#include -],[ -#if $1-$2 < 0 -make an error -#endif],[cf_result=yes],[cf_result=no]) - AC_MSG_RESULT($cf_result) - if test "$cf_result" = no ; then - # perhaps we can override it - try... - CPPFLAGS="$CPPFLAGS -D$1=$2" - fi -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PROG_CC_C_O version: 1 updated: 2004/02/14 15:00:43 -dnl -------------- -dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that -dnl the output file can be renamed, and allows for a shell variable that can -dnl be used later. The parameter is either CC or CXX. The result is the -dnl cache variable: -dnl $cf_cv_prog_CC_c_o -dnl $cf_cv_prog_CXX_c_o -AC_DEFUN([CF_PROG_CC_C_O], -[AC_REQUIRE([AC_PROG_CC])dnl -AC_MSG_CHECKING([whether [$]$1 understands -c and -o together]) -AC_CACHE_VAL(cf_cv_prog_$1_c_o, -[ -cat > conftest.$ac_ext < -int main() -{ - return 0; -} -CF_EOF -# We do the test twice because some compilers refuse to overwrite an -# existing .o file with -o, though they will create one. -ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC' -if AC_TRY_EVAL(ac_try) && - test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try); -then - eval cf_cv_prog_$1_c_o=yes -else - eval cf_cv_prog_$1_c_o=no -fi -rm -f conftest* -])dnl -if test $cf_cv_prog_$1_c_o = yes; then - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18 -dnl ----------- -dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX. -AC_DEFUN([CF_PROG_EXT], -[ -AC_REQUIRE([CF_CHECK_CACHE]) -case $cf_cv_system_name in -os2*) - CFLAGS="$CFLAGS -Zmt" - CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__" - CXXFLAGS="$CXXFLAGS -Zmt" - # autoconf's macro sets -Zexe and suffix both, which conflict:w - LDFLAGS="$LDFLAGS -Zmt -Zcrtdll" - ac_cv_exeext=.exe - ;; -esac - -AC_EXEEXT -AC_OBJEXT - -PROG_EXT="$EXEEXT" -AC_SUBST(PROG_EXT) -test -n "$PROG_EXT" && AC_DEFINE_UNQUOTED(PROG_EXT,"$PROG_EXT") -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PROG_INSTALL version: 5 updated: 2002/12/21 22:46:07 -dnl --------------- -dnl Force $INSTALL to be an absolute-path. Otherwise, edit_man.sh and the -dnl misc/tabset install won't work properly. Usually this happens only when -dnl using the fallback mkinstalldirs script -AC_DEFUN([CF_PROG_INSTALL], -[AC_PROG_INSTALL -case $INSTALL in -/*) - ;; -*) - CF_DIRNAME(cf_dir,$INSTALL) - test -z "$cf_dir" && cf_dir=. - INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'` - ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_PROG_LDCONFIG version: 1 updated: 2003/09/20 17:07:55 -dnl ---------------- -dnl Check for ldconfig, needed to fixup shared libraries that would be built -dnl and then used in the install. -AC_DEFUN([CF_PROG_LDCONFIG],[ -if test "$cross_compiling" = yes ; then - LDCONFIG=: -else -case "$cf_cv_system_name" in #(vi -freebsd*) #(vi - test -z "$LDCONFIG" && LDCONFIG="/sbin/ldconfig -R" - ;; -*) LDPATH=$PATH:/sbin:/usr/sbin - AC_PATH_PROG(LDCONFIG,ldconfig,,$LDPATH) - ;; -esac -fi -AC_SUBST(LDCONFIG) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_REGEX version: 3 updated: 1997/11/01 14:26:01 -dnl -------- -dnl Attempt to determine if we've got one of the flavors of regular-expression -dnl code that we can support. -AC_DEFUN([CF_REGEX], -[ -AC_MSG_CHECKING([for regular-expression headers]) -AC_CACHE_VAL(cf_cv_regex,[ -AC_TRY_LINK([#include -#include ],[ - regex_t *p; - int x = regcomp(p, "", 0); - int y = regexec(p, "", 0, 0, 0); - regfree(p); - ],[cf_cv_regex="regex.h"],[ - AC_TRY_LINK([#include ],[ - char *p = compile("", "", "", 0); - int x = step("", ""); - ],[cf_cv_regex="regexp.h"],[ - cf_save_LIBS="$LIBS" - LIBS="-lgen $LIBS" - AC_TRY_LINK([#include ],[ - char *p = compile("", "", ""); - int x = step("", ""); - ],[cf_cv_regex="regexpr.h"],[LIBS="$cf_save_LIBS"])])]) -]) -AC_MSG_RESULT($cf_cv_regex) -case $cf_cv_regex in - regex.h) AC_DEFINE(HAVE_REGEX_H_FUNCS) ;; - regexp.h) AC_DEFINE(HAVE_REGEXP_H_FUNCS) ;; - regexpr.h) AC_DEFINE(HAVE_REGEXPR_H_FUNCS) ;; -esac -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_SHARED_OPTS version: 30 updated: 2003/12/27 20:48:07 -dnl -------------- -dnl Attempt to determine the appropriate CC/LD options for creating a shared -dnl library. -dnl -dnl Note: $(LOCAL_LDFLAGS) is used to link executables that will run within the -dnl build-tree, i.e., by making use of the libraries that are compiled in ../lib -dnl We avoid compiling-in a ../lib path for the shared library since that can -dnl lead to unexpected results at runtime. -dnl $(LOCAL_LDFLAGS2) has the same intention but assumes that the shared libraries -dnl are compiled in ../../lib -dnl -dnl The variable 'cf_cv_do_symlinks' is used to control whether we configure -dnl to install symbolic links to the rel/abi versions of shared libraries. -dnl -dnl The variable 'cf_cv_shlib_version' controls whether we use the rel or abi -dnl version when making symbolic links. -dnl -dnl The variable 'cf_cv_shlib_version_infix' controls whether shared library -dnl version numbers are infix (ex: libncurses..dylib) or postfix -dnl (ex: libncurses.so.). -dnl -dnl Some loaders leave 'so_locations' lying around. It's nice to clean up. -AC_DEFUN([CF_SHARED_OPTS], -[ - AC_REQUIRE([CF_SUBST_NCURSES_VERSION]) - LOCAL_LDFLAGS= - LOCAL_LDFLAGS2= - LD_SHARED_OPTS= - INSTALL_LIB="-m 644" - - cf_cv_do_symlinks=no - - AC_MSG_CHECKING(if release/abi version should be used for shared libs) - AC_ARG_WITH(shlib-version, - [ --with-shlib-version=X Specify rel or abi version for shared libs], - [test -z "$withval" && withval=auto - case $withval in #(vi - yes) #(vi - cf_cv_shlib_version=auto - ;; - rel|abi|auto|no) #(vi - cf_cv_shlib_version=$withval - ;; - *) - AC_ERROR([option value must be one of: rel, abi, auto or no]) - ;; - esac - ],[cf_cv_shlib_version=auto]) - AC_MSG_RESULT($cf_cv_shlib_version) - - cf_cv_rm_so_locs=no - - # Some less-capable ports of gcc support only -fpic - CC_SHARED_OPTS= - if test "$GCC" = yes - then - AC_MSG_CHECKING(which $CC option to use) - cf_save_CFLAGS="$CFLAGS" - for CC_SHARED_OPTS in -fPIC -fpic '' - do - CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS" - AC_TRY_COMPILE([#include ],[int x = 1],[break],[]) - done - AC_MSG_RESULT($CC_SHARED_OPTS) - CFLAGS="$cf_save_CFLAGS" - fi - - cf_cv_shlib_version_infix=no - - case $cf_cv_system_name in - beos*) - MK_SHARED_LIB='$(CC) -o $[@] -Xlinker -soname=`basename $[@]` -nostart -e 0' - ;; - cygwin*) - CC_SHARED_OPTS= - MK_SHARED_LIB='$(CC) -shared -Wl,--out-implib=$(IMPORT_LIB) -Wl,--export-all-symbols -o $(SHARED_LIB)' - cf_cv_shlib_version=cygdll - cf_cv_shlib_version_infix=cygdll - ;; - darwin*) - EXTRA_CFLAGS="-no-cpp-precomp" - CC_SHARED_OPTS="-dynamic" - MK_SHARED_LIB='$(CC) -dynamiclib -install_name $(DESTDIR)$(libdir)/`basename $[@]` -compatibility_version $(ABI_VERSION) -current_version $(ABI_VERSION) -o $[@]' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi - cf_cv_shlib_version_infix=yes - ;; - hpux*) - # (tested with gcc 2.7.2 -- I don't have c89) - if test "$GCC" = yes; then - LD_SHARED_OPTS='-Xlinker +b -Xlinker $(libdir)' - else - CC_SHARED_OPTS='+Z' - LD_SHARED_OPTS='-Wl,+b,$(libdir)' - fi - MK_SHARED_LIB='$(LD) +b $(libdir) -b -o $[@]' - # HP-UX shared libraries must be executable, and should be - # readonly to exploit a quirk in the memory manager. - INSTALL_LIB="-m 555" - ;; - irix*) - if test "$cf_cv_ld_rpath" = yes ; then - cf_ld_rpath_opt="-Wl,-rpath," - EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS" - fi - # tested with IRIX 5.2 and 'cc'. - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $[@]` -o $[@]' - cf_cv_rm_so_locs=yes - ;; - linux*|gnu*|k*bsd*-gnu) - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_ld_rpath" = yes ; then - cf_ld_rpath_opt="-Wl,-rpath," - EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS" - fi - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION),-stats,-lc -o $[@]' - ;; - openbsd2*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - MK_SHARED_LIB='$(LD) -Bshareable -soname,`basename $[@].$(ABI_VERSION)` -o $[@]' - ;; - freebsd[[45]]*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - MK_SHARED_LIB='$(LD) -Bshareable -soname=`basename $[@]` -o $[@]' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - -# This doesn't work - I keep getting spurious references to needing -# libncurses.so.5.3 when ldd says it's resolved. LOCAL_LDFLAGS2 seems to be -# no longer used anyway. And the rpath logic isn't relative - so I have to -# add the local and install lib-directories: -# -# if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then -# LOCAL_LDFLAGS="-rpath `pwd`/lib" -# LOCAL_LDFLAGS2="-rpath \$(libdir) $LOCAL_LDFLAGS" -# cf_ld_rpath_opt="-rpath " -# EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS" -# fi - ;; - openbsd*|freebsd*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - MK_SHARED_LIB='$(LD) -Bshareable -o $[@]' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - ;; - netbsd*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath," - if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then - LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS" - MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]' - if test "$cf_cv_shlib_version" = auto; then - if test ! -f /usr/libexec/ld.elf_so; then - cf_cv_shlib_version=rel - fi - fi - else - MK_SHARED_LIB='$(LD) -Bshareable -o $[@]' - fi - ;; - osf*|mls+*) - # tested with OSF/1 V3.2 and 'cc' - # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't - # link with shared libs). - MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $[@]`' - case $host_os in - osf4*) - MK_SHARED_LIB="${MK_SHARED_LIB} -msym" - ;; - esac - MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $[@]' - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_ld_rpath" = yes ; then - cf_ld_rpath_opt="-rpath" - # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS" - fi - cf_cv_rm_so_locs=yes - ;; - sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98 - # tested with osr5.0.5 - if test "$GCC" != yes; then - CC_SHARED_OPTS='-belf -KPIC' - fi - MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o [$]@' - if test "$cf_cv_ld_rpath" = yes ; then - # only way is to set LD_RUN_PATH but no switch for it - RUN_PATH=$libdir - fi - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - LINK_PROGS='LD_RUN_PATH=$(libdir)' - LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib' - ;; - sunos4*) - # tested with SunOS 4.1.1 and gcc 2.7.0 - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='$(LD) -assert pure-text -o $[@]' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - ;; - solaris2*) - # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2 - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='$(LD) -dy -G -h `basename $[@] .$(REL_VERSION)`.$(ABI_VERSION) -o $[@]' - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_ld_rpath" = yes ; then - cf_ld_rpath_opt="-R" - EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS" - fi - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - ;; - sysv5uw7*|unix_sv*) - # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc) - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='$(LD) -d y -G -o [$]@' - ;; - *) - CC_SHARED_OPTS='unknown' - MK_SHARED_LIB='echo unknown' - ;; - esac - - # This works if the last tokens in $MK_SHARED_LIB are the -o target. - case "$cf_cv_shlib_version" in #(vi - rel|abi) - case "$MK_SHARED_LIB" in #(vi - *'-o $[@]') - test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes - ;; - *) - AC_MSG_WARN(ignored --with-shlib-version) - ;; - esac - ;; - esac - - if test -n "$cf_ld_rpath_opt" ; then - AC_MSG_CHECKING(if we need a space after rpath option) - cf_save_LIBS="$LIBS" - LIBS="$LIBS ${cf_ld_rpath_opt}$libdir" - AC_TRY_LINK(, , cf_rpath_space=no, cf_rpath_space=yes) - LIBS="$cf_save_LIBS" - AC_MSG_RESULT($cf_rpath_space) - test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt " - MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)" - fi - - AC_SUBST(CC_SHARED_OPTS) - AC_SUBST(LD_SHARED_OPTS) - AC_SUBST(MK_SHARED_LIB) - AC_SUBST(LINK_PROGS) - AC_SUBST(LINK_TESTS) - AC_SUBST(EXTRA_LDFLAGS) - AC_SUBST(LOCAL_LDFLAGS) - AC_SUBST(LOCAL_LDFLAGS2) - AC_SUBST(INSTALL_LIB) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_SIZECHANGE version: 8 updated: 2000/11/04 12:22:16 -dnl ------------- -dnl Check for definitions & structures needed for window size-changing -dnl FIXME: check that this works with "snake" (HP-UX 10.x) -AC_DEFUN([CF_SIZECHANGE], -[ -AC_REQUIRE([CF_STRUCT_TERMIOS]) -AC_CACHE_CHECK(declaration of size-change, cf_cv_sizechange,[ - cf_cv_sizechange=unknown - cf_save_CPPFLAGS="$CPPFLAGS" - -for cf_opts in "" "NEED_PTEM_H" -do - - CPPFLAGS="$cf_save_CPPFLAGS" - test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts" - AC_TRY_COMPILE([#include -#ifdef HAVE_TERMIOS_H -#include -#else -#ifdef HAVE_TERMIO_H -#include -#endif -#endif -#ifdef NEED_PTEM_H -/* This is a workaround for SCO: they neglected to define struct winsize in - * termios.h -- it's only in termio.h and ptem.h - */ -#include -#include -#endif -#if !defined(sun) || !defined(HAVE_TERMIOS_H) -#include -#endif -],[ -#ifdef TIOCGSIZE - struct ttysize win; /* FIXME: what system is this? */ - int y = win.ts_lines; - int x = win.ts_cols; -#else -#ifdef TIOCGWINSZ - struct winsize win; - int y = win.ws_row; - int x = win.ws_col; -#else - no TIOCGSIZE or TIOCGWINSZ -#endif /* TIOCGWINSZ */ -#endif /* TIOCGSIZE */ - ], - [cf_cv_sizechange=yes], - [cf_cv_sizechange=no]) - - CPPFLAGS="$cf_save_CPPFLAGS" - if test "$cf_cv_sizechange" = yes ; then - echo "size-change succeeded ($cf_opts)" >&AC_FD_CC - test -n "$cf_opts" && cf_cv_sizechange="$cf_opts" - break - fi -done -]) -if test "$cf_cv_sizechange" != no ; then - AC_DEFINE(HAVE_SIZECHANGE) - case $cf_cv_sizechange in #(vi - NEED*) - AC_DEFINE_UNQUOTED($cf_cv_sizechange ) - ;; - esac -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_SRC_MODULES version: 16 updated: 2004/02/14 20:18:37 -dnl -------------- -dnl For each parameter, test if the source-directory exists, and if it contains -dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll -dnl use in CF_LIB_RULES. -dnl -dnl This uses the configured value to make the lists SRC_SUBDIRS and -dnl SUB_MAKEFILES which are used in the makefile-generation scheme. -AC_DEFUN([CF_SRC_MODULES], -[ -AC_MSG_CHECKING(for src modules) - -# dependencies and linker-arguments for test-programs -TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS" -if test "$DFT_LWR_MODEL" = "libtool"; then - TEST_ARGS="${TEST_DEPS}" -else - TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS" -fi - -# dependencies and linker-arguments for utility-programs -test "$with_termlib" = no && PROG_ARGS="$TEST_ARGS" - -cf_cv_src_modules= -for cf_dir in $1 -do - if test -f $srcdir/$cf_dir/modules; then - - # We may/may not have tack in the distribution, though the - # makefile is. - if test $cf_dir = tack ; then - if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then - continue - fi - fi - - if test -z "$cf_cv_src_modules"; then - cf_cv_src_modules=$cf_dir - else - cf_cv_src_modules="$cf_cv_src_modules $cf_dir" - fi - - # Make the ncurses_cfg.h file record the library interface files as - # well. These are header files that are the same name as their - # directory. Ncurses is the only library that does not follow - # that pattern. - if test $cf_dir = tack ; then - continue - elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then - CF_UPPER(cf_have_include,$cf_dir) - AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H) - AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include}) - TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS" - if test "$DFT_LWR_MODEL" = "libtool"; then - TEST_ARGS="${TEST_DEPS}" - else - TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS" - fi - fi - fi -done -AC_MSG_RESULT($cf_cv_src_modules) -TEST_ARGS="-L${LIB_DIR} $TEST_ARGS" -AC_SUBST(TEST_DEPS) -AC_SUBST(TEST_ARGS) - -PROG_ARGS="-L${LIB_DIR} $PROG_ARGS" -AC_SUBST(PROG_ARGS) - -SRC_SUBDIRS="man include" -for cf_dir in $cf_cv_src_modules -do - SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir" -done - -ADA_SUBDIRS= -if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then - SRC_SUBDIRS="$SRC_SUBDIRS Ada95" - ADA_SUBDIRS="gen src samples" -fi - -SUB_MAKEFILES= -for cf_dir in $SRC_SUBDIRS -do - SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile" -done - -if test -n "$ADA_SUBDIRS"; then - for cf_dir in $ADA_SUBDIRS - do - SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile" - done - AC_SUBST(ADA_SUBDIRS) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_STDCPP_LIBRARY version: 5 updated: 2000/08/12 23:18:52 -dnl ----------------- -dnl Check for -lstdc++, which is GNU's standard C++ library. -AC_DEFUN([CF_STDCPP_LIBRARY], -[ -if test -n "$GXX" ; then -case $cf_cv_system_name in #(vi -os2*) #(vi - cf_stdcpp_libname=stdcpp - ;; -*) - cf_stdcpp_libname=stdc++ - ;; -esac -AC_CACHE_CHECK(for library $cf_stdcpp_libname,cf_cv_libstdcpp,[ - cf_save="$LIBS" - LIBS="$LIBS -l$cf_stdcpp_libname" -AC_TRY_LINK([ -#include ],[ -char buf[80]; -strstreambuf foo(buf, sizeof(buf)) -], - [cf_cv_libstdcpp=yes], - [cf_cv_libstdcpp=no]) - LIBS="$cf_save" -]) -test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname" -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_STRIP_G_OPT version: 3 updated: 2002/12/21 19:25:52 -dnl -------------- -dnl Remove "-g" option from the compiler options -AC_DEFUN([CF_STRIP_G_OPT], -[$1=`echo ${$1} | sed -e 's%-g %%' -e 's%-g$%%'`])dnl -dnl --------------------------------------------------------------------------- -dnl CF_STRUCT_SIGACTION version: 3 updated: 2000/08/12 23:18:52 -dnl ------------------- -dnl Check if we need _POSIX_SOURCE defined to use struct sigaction. We'll only -dnl do this if we've found the sigaction function. -dnl -dnl If needed, define SVR4_ACTION. -AC_DEFUN([CF_STRUCT_SIGACTION],[ -if test "$ac_cv_func_sigaction" = yes; then -AC_MSG_CHECKING(whether sigaction needs _POSIX_SOURCE) -AC_TRY_COMPILE([ -#include -#include ], - [struct sigaction act], - [sigact_bad=no], - [ -AC_TRY_COMPILE([ -#define _POSIX_SOURCE -#include -#include ], - [struct sigaction act], - [sigact_bad=yes - AC_DEFINE(SVR4_ACTION)], - [sigact_bad=unknown])]) -AC_MSG_RESULT($sigact_bad) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46 -dnl ----------------- -dnl Some machines require _POSIX_SOURCE to completely define struct termios. -dnl If so, define SVR4_TERMIO -AC_DEFUN([CF_STRUCT_TERMIOS],[ -AC_CHECK_HEADERS( \ -termio.h \ -termios.h \ -unistd.h \ -) -if test "$ISC" = yes ; then - AC_CHECK_HEADERS( sys/termio.h ) -fi -if test "$ac_cv_header_termios_h" = yes ; then - case "$CFLAGS $CPPFLAGS" in - *-D_POSIX_SOURCE*) - termios_bad=dunno ;; - *) termios_bad=maybe ;; - esac - if test "$termios_bad" = maybe ; then - AC_MSG_CHECKING(whether termios.h needs _POSIX_SOURCE) - AC_TRY_COMPILE([#include ], - [struct termios foo; int x = foo.c_iflag], - termios_bad=no, [ - AC_TRY_COMPILE([ -#define _POSIX_SOURCE -#include ], - [struct termios foo; int x = foo.c_iflag], - termios_bad=unknown, - termios_bad=yes AC_DEFINE(SVR4_TERMIO)) - ]) - AC_MSG_RESULT($termios_bad) - fi -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_SUBST version: 2 updated: 1997/09/06 23:41:28 -dnl -------- -dnl Shorthand macro for substituting things that the user may override -dnl with an environment variable. -dnl -dnl $1 = long/descriptive name -dnl $2 = environment variable -dnl $3 = default value -AC_DEFUN([CF_SUBST], -[AC_CACHE_VAL(cf_cv_subst_$2,[ -AC_MSG_CHECKING(for $1 (symbol $2)) -test -z "[$]$2" && $2=$3 -AC_MSG_RESULT([$]$2) -AC_SUBST($2) -cf_cv_subst_$2=[$]$2]) -$2=${cf_cv_subst_$2} -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_SUBST_NCURSES_VERSION version: 7 updated: 2003/06/07 16:22:51 -dnl ------------------------ -dnl Get the version-number for use in shared-library naming, etc. -AC_DEFUN([CF_SUBST_NCURSES_VERSION], -[ -NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`" -NCURSES_MINOR="`egrep '^NCURSES_MINOR[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`" -NCURSES_PATCH="`egrep '^NCURSES_PATCH[[ ]]*=' $srcdir/dist.mk | sed -e 's/^[[^0-9]]*//'`" -cf_cv_abi_version=${NCURSES_MAJOR} -cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR} -dnl Show the computed version, for logging -cf_cv_timestamp=`date` -AC_MSG_RESULT(Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)) -dnl We need these values in the generated headers -AC_SUBST(NCURSES_MAJOR) -AC_SUBST(NCURSES_MINOR) -AC_SUBST(NCURSES_PATCH) -dnl We need these values in the generated makefiles -AC_SUBST(cf_cv_rel_version) -AC_SUBST(cf_cv_abi_version) -AC_SUBST(cf_cv_builtin_bool) -AC_SUBST(cf_cv_header_stdbool_h) -AC_SUBST(cf_cv_type_of_bool)dnl -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_SYS_TIME_SELECT version: 4 updated: 2000/10/04 09:18:40 -dnl ------------------ -dnl Check if we can include with ; this breaks on -dnl older SCO configurations. -AC_DEFUN([CF_SYS_TIME_SELECT], -[ -AC_MSG_CHECKING(if sys/time.h works with sys/select.h) -AC_CACHE_VAL(cf_cv_sys_time_select,[ -AC_TRY_COMPILE([ -#include -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_SELECT_H -#include -#endif -],[],[cf_cv_sys_time_select=yes], - [cf_cv_sys_time_select=no]) - ]) -AC_MSG_RESULT($cf_cv_sys_time_select) -test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_TYPEOF_CHTYPE version: 4 updated: 2000/10/04 09:18:40 -dnl ---------------- -dnl Determine the type we should use for chtype (and attr_t, which is treated -dnl as the same thing). We want around 32 bits, so on most machines want a -dnl long, but on newer 64-bit machines, probably want an int. If we're using -dnl wide characters, we have to have a type compatible with that, as well. -AC_DEFUN([CF_TYPEOF_CHTYPE], -[ -AC_REQUIRE([CF_UNSIGNED_LITERALS]) -AC_MSG_CHECKING([for type of chtype]) -AC_CACHE_VAL(cf_cv_typeof_chtype,[ - AC_TRY_RUN([ -#ifdef USE_WIDEC_SUPPORT -#include /* we want wchar_t */ -#define WANT_BITS 39 -#else -#define WANT_BITS 31 -#endif -#include -int main() -{ - FILE *fp = fopen("cf_test.out", "w"); - if (fp != 0) { - char *result = "long"; -#ifdef USE_WIDEC_SUPPORT - /* - * If wchar_t is smaller than a long, it must be an int or a - * short. We prefer not to use a short anyway. - */ - if (sizeof(unsigned long) > sizeof(wchar_t)) - result = "int"; -#endif - if (sizeof(unsigned long) > sizeof(unsigned int)) { - int n; - unsigned int x; - for (n = 0; n < WANT_BITS; n++) { - unsigned int y = (x >> n); - if (y != 1 || x == 0) { - x = 0; - break; - } - } - /* - * If x is nonzero, an int is big enough for the bits - * that we want. - */ - result = (x != 0) ? "int" : "long"; - } - fputs(result, fp); - fclose(fp); - } - exit(0); -} - ], - [cf_cv_typeof_chtype=`cat cf_test.out`], - [cf_cv_typeof_chtype=long], - [cf_cv_typeof_chtype=long]) - rm -f cf_test.out - ]) -AC_MSG_RESULT($cf_cv_typeof_chtype) - -AC_SUBST(cf_cv_typeof_chtype) -AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype) - -cf_cv_1UL="1" -test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U" -test "$cf_cv_typeof_chtype" = long && cf_cv_1UL="${cf_cv_1UL}L" -AC_SUBST(cf_cv_1UL) - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52 -dnl ----------------- -dnl -AC_DEFUN([CF_TYPE_SIGACTION], -[ -AC_MSG_CHECKING([for type sigaction_t]) -AC_CACHE_VAL(cf_cv_type_sigaction,[ - AC_TRY_COMPILE([ -#include ], - [sigaction_t x], - [cf_cv_type_sigaction=yes], - [cf_cv_type_sigaction=no])]) -AC_MSG_RESULT($cf_cv_type_sigaction) -test "$cf_cv_type_sigaction" = yes && AC_DEFINE(HAVE_TYPE_SIGACTION) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_UNSIGNED_LITERALS version: 2 updated: 1998/02/07 22:10:16 -dnl -------------------- -dnl Test if the compiler supports 'U' and 'L' suffixes. Only old compilers -dnl won't, but they're still there. -AC_DEFUN([CF_UNSIGNED_LITERALS], -[ -AC_MSG_CHECKING([if unsigned literals are legal]) -AC_CACHE_VAL(cf_cv_unsigned_literals,[ - AC_TRY_COMPILE([],[long x = 1L + 1UL + 1U + 1], - [cf_cv_unsigned_literals=yes], - [cf_cv_unsigned_literals=no]) - ]) -AC_MSG_RESULT($cf_cv_unsigned_literals) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_UPPER version: 5 updated: 2001/01/29 23:40:59 -dnl -------- -dnl Make an uppercase version of a variable -dnl $1=uppercase($2) -AC_DEFUN([CF_UPPER], -[ -$1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14 -dnl ---------- -dnl Use AC_VERBOSE w/o the warnings -AC_DEFUN([CF_VERBOSE], -[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WCHAR_TYPE version: 2 updated: 2004/01/17 19:18:20 -dnl ------------- -dnl Check if type wide-character type $1 is declared, and if so, which header -dnl file is needed. The second parameter is used to set a shell variable when -dnl the type is not found. The first parameter sets a shell variable for the -dnl opposite sense. -AC_DEFUN([CF_WCHAR_TYPE], -[ -# This is needed on Tru64 5.0 to declare $1 -AC_CACHE_CHECK(if we must include wchar.h to declare $1,cf_cv_$1,[ -AC_TRY_COMPILE([ -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#endif], - [$1 state], - [cf_cv_$1=no], - [AC_TRY_COMPILE([ -#include -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#endif], - [$1 value], - [cf_cv_$1=yes], - [cf_cv_$1=unknown])])]) - -if test "$cf_cv_$1" = yes ; then - AC_DEFINE(NEED_WCHAR_H) - NEED_WCHAR_H=1 -fi - -ifelse($2,,,[ -# if we do not find $1 in either place, use substitution to provide a fallback. -if test "$cf_cv_$1" = unknown ; then - $2=1 -fi -]) -ifelse($3,,,[ -# if we find $1 in either place, use substitution to provide a fallback. -if test "$cf_cv_$1" != unknown ; then - $3=1 -fi -]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_ABI_VERSION version: 1 updated: 2003/09/20 18:12:49 -dnl ------------------- -dnl Allow library's ABI to be overridden. Generally this happens when a -dnl packager has incremented the ABI past that used in the original package, -dnl and wishes to keep doing this. -dnl -dnl $1 is the package name, if any, to derive a corresponding {package}_ABI -dnl symbol. -AC_DEFUN([CF_WITH_ABI_VERSION],[ -test -z "$cf_cv_abi_version" && cf_cv_abi_version=0 -AC_ARG_WITH(abi-version, -[ --with-abi-version=XXX override derived ABI version], -[AC_MSG_WARN(overriding ABI version $cf_cv_abi_version to $withval) - cf_cv_abi_version=$withval]) - CF_NUMBER_SYNTAX($cf_cv_abi_version,ABI version) -ifelse($1,,,[ -$1_ABI=$cf_cv_abi_version -]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_DBMALLOC version: 4 updated: 2004/02/28 05:49:27 -dnl ---------------- -dnl Configure-option for dbmalloc. The optional parameter is used to override -dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests. -AC_DEFUN([CF_WITH_DBMALLOC],[ -AC_MSG_CHECKING(if you want to link with dbmalloc for testing) -AC_ARG_WITH(dbmalloc, - [ --with-dbmalloc use Conor Cahill's dbmalloc library], - [with_dbmalloc=$withval], - [with_dbmalloc=no]) -AC_MSG_RESULT($with_dbmalloc) -if test "$with_dbmalloc" = yes ; then - AC_CHECK_HEADER(dbmalloc.h, - [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_DMALLOC version: 4 updated: 2004/02/28 05:49:27 -dnl --------------- -dnl Configure-option for dmalloc. The optional parameter is used to override -dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests. -AC_DEFUN([CF_WITH_DMALLOC],[ -AC_MSG_CHECKING(if you want to link with dmalloc for testing) -AC_ARG_WITH(dmalloc, - [ --with-dmalloc use Gray Watson's dmalloc library], - [with_dmalloc=$withval], - [with_dmalloc=no]) -AC_MSG_RESULT($with_dmalloc) -if test "$with_dmalloc" = yes ; then - AC_CHECK_HEADER(dmalloc.h, - [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))]) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_LIBTOOL version: 9 updated: 2004/01/16 14:55:37 -dnl --------------- -dnl Provide a configure option to incorporate libtool. Define several useful -dnl symbols for the makefile rules. -dnl -dnl The reference to AC_PROG_LIBTOOL does not normally work, since it uses -dnl macros from libtool.m4 which is in the aclocal directory of automake. -dnl Following is a simple script which turns on the AC_PROG_LIBTOOL macro. -dnl But that still does not work properly since the macro is expanded outside -dnl the CF_WITH_LIBTOOL macro: -dnl -dnl #!/bin/sh -dnl ACLOCAL=`aclocal --print-ac-dir` -dnl if test -z "$ACLOCAL" ; then -dnl echo cannot find aclocal directory -dnl exit 1 -dnl elif test ! -f $ACLOCAL/libtool.m4 ; then -dnl echo cannot find libtool.m4 file -dnl exit 1 -dnl fi -dnl -dnl LOCAL=aclocal.m4 -dnl ORIG=aclocal.m4.orig -dnl -dnl trap "mv $ORIG $LOCAL" 0 1 2 5 15 -dnl rm -f $ORIG -dnl mv $LOCAL $ORIG -dnl -dnl # sed the LIBTOOL= assignment to omit the current directory? -dnl sed -e 's/^LIBTOOL=.*/LIBTOOL=${LIBTOOL-libtool}/' $ACLOCAL/libtool.m4 >>$LOCAL -dnl cat $ORIG >>$LOCAL -dnl -dnl autoconf-257 $* -dnl -AC_DEFUN([CF_WITH_LIBTOOL], -[ -ifdef([AC_PROG_LIBTOOL],,[ -LIBTOOL= -]) -# common library maintenance symbols that are convenient for libtool scripts: -LIB_CREATE='$(AR) -cr' -LIB_OBJECT='$(OBJECTS)' -LIB_SUFFIX=.a -LIB_PREP="$RANLIB" - -# symbols used to prop libtool up to enable it to determine what it should be -# doing: -LIB_CLEAN= -LIB_COMPILE= -LIB_LINK= -LIB_INSTALL= -LIB_UNINSTALL= - -AC_MSG_CHECKING(if you want to build libraries with libtool) -AC_ARG_WITH(libtool, - [ --with-libtool generate libraries with libtool], - [with_libtool=$withval], - [with_libtool=no]) -AC_MSG_RESULT($with_libtool) -if test "$with_libtool" != "no"; then -ifdef([AC_PROG_LIBTOOL],[ - # missing_content_AC_PROG_LIBTOOL{{ - AC_PROG_LIBTOOL - # missing_content_AC_PROG_LIBTOOL}} -],[ - if test "$with_libtool" != "yes" ; then - CF_PATH_SYNTAX(with_libtool) - LIBTOOL=$with_libtool - else - AC_PATH_PROG(LIBTOOL,libtool) - fi - if test -z "$LIBTOOL" ; then - AC_MSG_ERROR(Cannot find libtool) - fi -])dnl - LIB_CREATE='$(LIBTOOL) --mode=link $(CC) -rpath $(DESTDIR)$(libdir) -version-info `cut -f1 $(srcdir)/VERSION` -o' - LIB_OBJECT='$(OBJECTS:.o=.lo)' - LIB_SUFFIX=.la - LIB_CLEAN='$(LIBTOOL) --mode=clean' - LIB_COMPILE='$(LIBTOOL) --mode=compile' - LIB_LINK='$(LIBTOOL) --mode=link' - LIB_INSTALL='$(LIBTOOL) --mode=install' - LIB_UNINSTALL='$(LIBTOOL) --mode=uninstall' - LIB_PREP=: - - # Show the version of libtool - AC_MSG_CHECKING(version of libtool) - - # Save the version in a cache variable - this is not entirely a good - # thing, but the version string from libtool is very ugly, and for - # bug reports it might be useful to have the original string. - cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([[^)]]*)//g' -e 's/^[[^1-9]]*//' -e 's/[[^0-9.]].*//'` - AC_MSG_RESULT($cf_cv_libtool_version) - if test -z "$cf_cv_libtool_version" ; then - AC_MSG_ERROR(This is not libtool) - fi - - # special hack to add --tag option for C++ compiler - case $cf_cv_libtool_version in - 1.[[5-9]]*|[[2-9]]*) - LIBTOOL_CXX="$LIBTOOL --tag=CXX" - ;; - *) - LIBTOOL_CXX="$LIBTOOL" - ;; - esac -else - LIBTOOL="" - LIBTOOL_CXX="" -fi - -test -z "$LIBTOOL" && ECHO_LT= - -AC_SUBST(LIBTOOL) -AC_SUBST(LIBTOOL_CXX) - -AC_SUBST(LIB_CREATE) -AC_SUBST(LIB_OBJECT) -AC_SUBST(LIB_SUFFIX) -AC_SUBST(LIB_PREP) - -AC_SUBST(LIB_CLEAN) -AC_SUBST(LIB_COMPILE) -AC_SUBST(LIB_LINK) -AC_SUBST(LIB_INSTALL) -AC_SUBST(LIB_UNINSTALL) - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_PATH version: 6 updated: 1998/10/11 00:40:17 -dnl ------------ -dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just -dnl defaulting to yes/no. -dnl -dnl $1 = option name -dnl $2 = help-text -dnl $3 = environment variable to set -dnl $4 = default value, shown in the help-message, must be a constant -dnl $5 = default value, if it's an expression & cannot be in the help-message -dnl -AC_DEFUN([CF_WITH_PATH], -[AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),, -ifelse($4,,[withval="${$3}"],[withval="${$3-ifelse($5,,$4,$5)}"]))dnl -CF_PATH_SYNTAX(withval) -eval $3="$withval" -AC_SUBST($3)dnl -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_PATHLIST version: 5 updated: 2001/12/10 01:28:30 -dnl ---------------- -dnl Process an option specifying a list of colon-separated paths. -dnl -dnl $1 = option name -dnl $2 = help-text -dnl $3 = environment variable to set -dnl $4 = default value, shown in the help-message, must be a constant -dnl $5 = default value, if it's an expression & cannot be in the help-message -dnl $6 = flag to tell if we want to define or substitute -dnl -AC_DEFUN([CF_WITH_PATHLIST],[ -AC_REQUIRE([CF_PATHSEP]) -AC_ARG_WITH($1,[$2 ](default: ifelse($4,,empty,$4)),, -ifelse($4,,[withval=${$3}],[withval=${$3-ifelse($5,,$4,$5)}]))dnl - -IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}" -cf_dst_path= -for cf_src_path in $withval -do - CF_PATH_SYNTAX(cf_src_path) - test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:" - cf_dst_path="${cf_dst_path}${cf_src_path}" -done -IFS="$ac_save_ifs" - -ifelse($6,define,[ -# Strip single quotes from the value, e.g., when it was supplied as a literal -# for $4 or $5. -case $cf_dst_path in #(vi -\'*) - cf_dst_path=`echo $cf_dst_path |sed -e s/\'// -e s/\'\$//` - ;; -esac -cf_dst_path=`echo "$cf_dst_path" | sed -e 's/\\\\/\\\\\\\\/g'` -]) - -eval '$3="$cf_dst_path"' -AC_SUBST($3)dnl - -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_REL_VERSION version: 1 updated: 2003/09/20 18:12:49 -dnl ------------------- -dnl Allow library's release-version to be overridden. Generally this happens when a -dnl packager has incremented the release-version past that used in the original package, -dnl and wishes to keep doing this. -dnl -dnl $1 is the package name, if any, to derive corresponding {package}_MAJOR -dnl and {package}_MINOR symbols -dnl symbol. -AC_DEFUN([CF_WITH_REL_VERSION],[ -test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0 -AC_ARG_WITH(rel-version, -[ --with-rel-version=XXX override derived release version], -[AC_MSG_WARN(overriding release version $cf_cv_rel_version to $withval) - cf_cv_rel_version=$withval]) -ifelse($1,,[ - CF_NUMBER_SYNTAX($cf_cv_rel_version,Release version) -],[ - $1_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'` - $1_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[[^.]]*//' -e 's/^\.//' -e 's/\..*//'` - CF_NUMBER_SYNTAX([$]$1_MAJOR,Release major-version) - CF_NUMBER_SYNTAX([$]$1_MINOR,Release minor-version) -]) -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_WITH_SYSMOUSE version: 2 updated: 2003/03/22 19:13:43 -dnl ---------------- -dnl If we can compile with sysmouse, make it available unless it is not wanted. -AC_DEFUN([CF_WITH_SYSMOUSE],[ -# not everyone has "test -c" -if test -c /dev/sysmouse 2>/dev/null ; then -AC_MSG_CHECKING(if you want to use sysmouse) -AC_ARG_WITH(sysmouse, - [ --with-sysmouse use sysmouse (FreeBSD console)], - [cf_with_sysmouse=$withval], - [cf_with_sysmouse=maybe]) - if test "$cf_with_sysmouse" != no ; then - AC_TRY_COMPILE([ -#include -#if (__FreeBSD_version >= 400017) -#include -#include -#else -#include -#endif -],[ - struct mouse_info the_mouse; - ioctl(0, CONS_MOUSECTL, &the_mouse); -],[cf_with_sysmouse=yes],[cf_with_sysmouse=no]) - fi -AC_MSG_RESULT($cf_with_sysmouse) -test "$cf_with_sysmouse" = yes && AC_DEFINE(USE_SYSMOUSE) -fi -])dnl -dnl --------------------------------------------------------------------------- -dnl CF_XOPEN_SOURCE version: 13 updated: 2004/08/22 12:16:05 -dnl --------------- -dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions, -dnl or adapt to the vendor's definitions to get equivalent functionality. -AC_DEFUN([CF_XOPEN_SOURCE],[ - -cf_XOPEN_SOURCE=ifelse($1,,500,$1) -cf_POSIX_C_SOURCE=ifelse($2,,199506,$2) - -case $host_os in #(vi -freebsd*) #(vi - # 5.x headers associate - # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112 - # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506 - cf_POSIX_C_SOURCE=200112 - cf_XOPEN_SOURCE=600 - CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - ;; -hpux*) #(vi - CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE" - ;; -irix6.*) #(vi - CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE" - ;; -linux*|gnu*) #(vi - CF_GNU_SOURCE - ;; -mirbsd*) #(vi - # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks - ;; -netbsd*) #(vi - # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw - ;; -openbsd*) #(vi - # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw - ;; -osf[[45]]*) #(vi - CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE" - ;; -sco*) #(vi - # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer - ;; -solaris*) #(vi - CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__" - ;; -*) - AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[ - AC_TRY_COMPILE([#include ],[ -#ifndef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_xopen_source=no], - [cf_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - AC_TRY_COMPILE([#include ],[ -#ifdef _XOPEN_SOURCE -make an error -#endif], - [cf_cv_xopen_source=no], - [cf_cv_xopen_source=yes]) - CPPFLAGS="$cf_save" - ]) -]) -test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - - # FreeBSD 5.x headers demand this... - AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_xopen_source,[ - AC_TRY_COMPILE([#include ],[ -#ifndef _POSIX_C_SOURCE -make an error -#endif], - [cf_cv_xopen_source=no], - [cf_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" - AC_TRY_COMPILE([#include ],[ -#ifdef _POSIX_C_SOURCE -make an error -#endif], - [cf_cv_xopen_source=no], - [cf_cv_xopen_source=yes]) - CPPFLAGS="$cf_save" - ]) -]) -test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" - ;; -esac -]) diff --git a/Build/source/libs/ncurses/announce.html.in b/Build/source/libs/ncurses/announce.html.in deleted file mode 100644 index 11fb87c3547..00000000000 --- a/Build/source/libs/ncurses/announce.html.in +++ /dev/null @@ -1,569 +0,0 @@ - - - - -Announcing ncurses @VERSION@ - - - - - -

Announcing ncurses @VERSION@

- -The ncurses (new curses) library is a free software emulation of -curses in System V Release 4.0, and more. It uses terminfo format, -supports pads and color -and multiple highlights and forms characters and function-key mapping, -and has all the other SYSV-curses enhancements over BSD curses.

- -In mid-June 1995, the maintainer of 4.4BSD curses declared that he -considered 4.4BSD curses obsolete, and is encouraging the keepers of -Unix releases such as BSD/OS, freeBSD and netBSD to switch over to -ncurses.

- -The ncurses code was developed under GNU/Linux. -It has been in use for some time with OpenBSD as the system curses library, -and on FreeBSD and NetBSD as an external package. -It should port easily to any ANSI/POSIX-conforming UNIX. -It has even been ported to OS/2 Warp!

- -The distribution includes the library and support utilities, including a -terminfo compiler tic(1), a decompiler infocmp(1), clear(1), tput(1), tset(1), -and a termcap conversion tool captoinfo(1). Full manual pages are provided for -the library and tools.

- -The ncurses distribution is available via anonymous FTP at -the GNU distribution site -ftp://ftp.gnu.org/gnu/ncurses/ . -
It is also available at -ftp://invisible-island.net/ncurses/ . - -

Release Notes

- -This release is designed to be upward compatible from ncurses 5.0 and 5.3; -very few applications will require recompilation, depending on the platform. -These are the highlights from the change-log since ncurses 5.3 release. -

-Interface changes: -

    -
  • add the remaining functions for X/Open curses wide-character - support. -
      -
    • pecho_wchar() -
    • slk_wset() -
    - These are only available if the library is configured using the - --enable-widec option. - -
  • write getyx() and related 2-return macros in terms of - getcury(), - getcurx(), etc. - -
  • simplify ifdef for bool declaration in curses.h - -
  • modify ifdef's in curses.h that disabled use of - __attribute__() for g++, since recent versions - implement the cases which ncurses uses. - -
  • add key_defined() function, to tell which keycode a - string is bound to. -
-New features and improvements: -
    -
  • library -
      -
    • implement logic in lib_mouse.c to handle position reports which - are generated when XFree86 xterm is initialized with private - modes 1002 or 1003. These are returned to the application as the - REPORT_MOUSE_POSITION mask, which was not implemented. -
    • modify soft-key initialization to use A_REVERSE if A_STANDOUT - would not be shown when colors are used, i.e., if ncv#1 is set in - the terminfo as is done in "screen". -
    • add configure option for FreeBSD sysmouse, --with-sysmouse, and - implement library support for that. -
    - -
  • programs: - -
      -
    • tack: - -
        -
      • allow it to run from fallback terminfo data. -
      • reset colors after each color test, correct a place - where exit_standout_mode was used instead of - exit_attribute_mode. -
      • improve bce test by making it set colors other - than black on white. -
      - -
    • tic: - -
        -
      • handle a case where an entry has no - description, and capabilities begin on the same line as the entry - name. -
      • allow a terminfo entry with a leading 2-character name. -
      • improved warnings when suppressing items to fit in termcap's - 1023-byte limit. -
      • add check for multiple "tc=" clauses in a termcap. -
      • correct logic for resolving "use=" clauses - allow infocmp and tic to show cancelled capabilities. -
      • check for incomplete line-drawing character mapping. -
      • check for missing/empty/illegal terminfo name. -
      - -
    • tput: -
        -
      • modify tput to use the same parameter analysis as tparm() does, - to provide for user-defined strings, e.g., for xterm title, a - corresponding capability might be - title=\E]2;%p1%s^G, -
      - -
    • tset: - -
        -
      • use the system's default values for CKILL and other default - control characters. -
      • correct interchanged defaults for kill and interrupt - characters, which caused it to report unnecessarily. -
      - -
    -
-Major bug fixes: -
    -
  • prevent recursion in wgetch() via wgetnstr() if the connection - cannot be switched between cooked/raw modes because it is not a TTY. - -
  • correct a case in _nc_remove_string(), used by - define_key(), to avoid infinite loop if the given string - happens to be a substring of other strings which are assigned to keys. - -
  • modify logic of acsc to use the original character if no mapping is - defined, rather than a null. - -
  • several improvements for handling multi-cell display of wide - characters. -
      -
    • modify setcchar() to allow converting control characters to complex - characters. -
    • correct handling of multibyte characters in waddch_literal() which - force wrapping because they are started too late on the line. -
    • modify setcchar() to allow for wchar_t input strings that have - more than one spacing character. -
    - -
  • other fixes for wide-character support: -
      -
    • rewrote lib_acs.c to allow PutAttrChar() to decide how to render - alternate-characters, i.e., to work with Linux console and UTF-8 - locale. -
    • implement a workaround so that line-drawing works with screen's - crippled UTF-8 support (tested with 3.9.13). This only works with - the wide-character support (--enable-widec); the normal library - will simply suppress line-drawing when running in a UTF-8 locale in - screen. -
    • corrections to lib_get_wstr.c: -
        -
      • null-terminate buffer passed to setcchar(), which occasionally - failed. -
      • map special characters such as erase- and kill-characters into - key-codes so those will work as expected even if they are not - mentioned in the terminfo. -
      -
    - -
  • modify setupterm() to check if the terminfo and - terminal-modes have already been read. This ensures that it does not - reinvoke def_prog_mode() when an application calls more - than one function, such as tgetent() and - initscr(). - -
  • fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, REQ_DEL_CHAR, - REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure the cursor was at - the editing position before making modifications. - -
  • correct keybound(), which reported definitions in the - wrong table, i.e., the list of definitions which are disabled by - keyok(). - -
  • fixes related to safe_sprintf.c: -
      -
    • correct an allocation size in safe_sprintf.c for the "*" format - code. -
    • correct safe_sprintf.c to not return a null pointer if the format - happens to be an empty string. -
    • make return value from _nc_printf_string() consistent. Before, - depending on whether --enable-safe-sprintf was used, it might not - be cached for reallocating. -
    - -
  • other low-level improvements to the optimization code include: -
      -
    • if the output is a socket or other non-tty device, use 1 - millisecond - for the cost in mvcur; previously it was 9 milliseconds because the - baudrate was not known. -
    • modify lib_getch.c to avoid recursion via wgetnstr() when the - input - is not a tty and consequently mode-changes do not work. -
    • fix several places in tack/pad.c which tested and used the - parameter- and parameterless strings inconsistently. -
    • change several tputs() calls in scrolling code to use putp(), to - enable padding which may be needed for some terminals. -
    • improve mvcur() by checking if it is safe to move when video - attributes are set (msgr), and if not, reset/restore attributes - within that function rather than doing it separately in the GoTo() - function in tty_update.c. -
    • use tputs() rather than putp() in a few cases in tty_update.c - since the corresponding delays are proportional to the number of - lines affected: repeat_char, clr_eos, change_scroll_region. -
    - -
  • correct line/column reference in adjust_window(), needed to make - special windows such as curscr track properly when resizing. - -
  • fix a potential recursion between napms() and _nc_timed_wait() - -
  • rewrote lib_insch.c, combining it with lib_insstr.c so both handle - tab and other control characters consistently. - -
  • do not try to open gpm mouse driver if standard output is not a - tty; the gpm library does not make this check. -
- -Portability: -
    -
  • configure script: -
      -
    • new options: -
      -
      --with-abi-version option. -
      addresses platforms where packagers have diverged from - ncurses ABI numbering. -
      --with-manpage-format=catonly -
      addresses - behavior of BSDI, allow install of man+cat files on NetBSD, - whose behavior has diverged by requiring both to be present. -
      --with-manpage-aliases -
      extends - "--with-manpage-aliases" to provide the option of generating - ".so" files rather than symbolic links for manpage aliases. -
      --with-rel-version -
      workaround to force - libtool on Darwin generate the "same" library names as with - the "--with-shared" option. The Darwin ld program does not - work well with a zero as the minor-version value. -
      --with-trace -
      simplifies defining TRACE to incorporate trace() in libraries. -
      - -
    • fixes/improvements for cross-compiling: - -
        -
      • allow BUILD_CC and related configure script variables to be - overridden from the environment. -
      • use AC_CHECK_TOOL to get proper values for AR and LD for cross - compiling. -
      • use $cross_compiling variable in configure script - rather than comparing $host_alias and - $target alias, since "host" is traditionally misused - in autoconf to refer to the target platform. -
      • modify run_tic.in to avoid using wrong shared libraries when - cross-compiling. -
      - -
    • fixes for Mac OS X: -
        -
      • fix a redefinition of $RANLIB in the configure - script when libtool is used. -
      • modify MKlib_gen.sh to avoid passing "#" tokens through the C - preprocessor. This works around Mac OS X's preprocessor, which - insists on adding a blank on each side of the token. -
      - -
    • workarounds for broken tools: -
        -
      • add configure check for wchar_t and wint_t types, rather than - rely on preprocessor definitions. Also work around for gcc - fixinclude bug which creates a shadow copy of - curses.h if it sees these symbols apparently typedef'd. -
      • modify configure script to omit -Winline for gcc 3.3, since - that feature is broken. -
      • several script fixes to work around the ironically named - POSIXLY_CORRECT feature of GNU sed 4.0. -
      • modify configure script to avoid using "head -1", which does - not work if POSIXLY_CORRECT (sic) is set. -
      • update configure script to reflect fix for - AC_PROG_GCC_TRADITIONAL, which is broken in autoconf 2.5x for Mac - OS X 10.2.3. -
      • repair check for missing C++ compiler, which is broken in - autoconf 2.5x by hardcoding it to g++. -
      - -
    • corrected ifdef's relating to configure check for wchar_t, etc. -
    • remove configure script check to allow -Wconversion for older - versions of gcc -
    • modify configure script to accommodate libtool 1.5, as well as - add an parameter to the "--with-libtool" option which can specify - the pathname of libtool. -
    • change several sed scripts to avoid using "\+" since it is not a - BRE (basic regular expression). One instance caused terminfo.5 to - be misformatted on FreeBSD. -
    • use '%' as sed substitute delimiter in run_tic script to avoid - problems with pathname delimiters such as ':' and '@'. -
    • add -D_XOPEN_SOURCE=500 if needed when configuring with - "--enable-widec", to get mbstate_t declaration on HPUX - 11.11. -
    - -
  • library: -
      -
    • adjust include-options in CF_ETIP_DEFINES to avoid missing - ncurses_dll.h, fixing special definitions that may be needed for - etip.h. -
    • modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use a - ".so" suffix. -
    • improve ifdef's to guard against redefinition of wchar_t and wint_t - in curses.h. -
    • remove an #undef for KEY_EVENT from curses.tail used in the - experimental NCURSES_WGETCH_EVENTS feature. The #undef confuses - Debian dpkg's build script. -
    -
- -

Features of Ncurses

- -The ncurses package is fully compatible with SVr4 (System V Release 4) curses: - -
    -
  • All 257 of the SVr4 calls have been implemented (and are documented). -
  • Full support for SVr4 curses features including keyboard mapping, color, -forms-drawing with ACS characters, and automatic recognition of keypad -and function keys. -
  • An emulation of the SVr4 panels library, supporting -a stack of windows with backing store, is included. -
  • An emulation of the SVr4 menus library, supporting -a uniform but flexible interface for menu programming, is included. -
  • An emulation of the SVr4 form library, supporting -data collection through on-screen forms, is included. -
  • Binary terminfo entries generated by the ncurses tic(1) implementation -are bit-for-bit-compatible with the entry format SVr4 curses uses. -
  • The utilities have options to allow you to filter terminfo -entries for use with less capable curses/terminfo -versions such as the HP/UX and AIX ports.
- -The ncurses package also has many useful extensions over SVr4: - -
    -
  • The API is 8-bit clean and base-level conformant with the X/OPEN curses -specification, XSI curses (that is, it implements all BASE level features, -but not all EXTENDED features). Most EXTENDED-level features not directly -concerned with wide-character support are implemented, including many -function calls not supported under SVr4 curses (but portability of all -calls is documented so you can use the SVr4 subset only). -
  • Unlike SVr3 curses, ncurses can write to the rightmost-bottommost corner -of the screen if your terminal has an insert-character capability. -
  • Ada95 and C++ bindings. -
  • Support for mouse event reporting with X Window xterm and OS/2 console windows. -
  • Extended mouse support via Alessandro Rubini's gpm package. -
  • The function wresize() allows you to resize windows, preserving -their data. -
  • The function use_default_colors() allows you to -use the terminal's default colors for the default color pair, -achieving the effect of transparent colors. -
  • The functions keyok() -and define_key() allow -you to better control the use of function keys, -e.g., disabling the ncurses KEY_MOUSE, -or by defining more than one control sequence to map to a given key code. -
  • Support for 16-color terminals, such as aixterm and XFree86 xterm. -
  • Better cursor-movement optimization. The package now features a -cursor-local-movement computation more efficient than either BSD's -or System V's. -
  • Super hardware scrolling support. The screen-update code incorporates -a novel, simple, and cheap algorithm that enables it to make optimal -use of hardware scrolling, line-insertion, and line-deletion -for screen-line movements. This algorithm is more powerful than -the 4.4BSD curses quickch() routine. -
  • Real support for terminals with the magic-cookie glitch. The -screen-update code will refrain from drawing a highlight if the magic- -cookie unattributed spaces required just before the beginning and -after the end would step on a non-space character. It will -automatically shift highlight boundaries when doing so would make it -possible to draw the highlight without changing the visual appearance -of the screen. -
  • It is possible to generate the library with a list of pre-loaded -fallback entries linked to it so that it can serve those terminal types even -when no terminfo tree or termcap file is accessible (this may be useful -for support of screen-oriented programs that must run in single-user mode). -
  • The tic(1)/captoinfo utility provided with ncurses has the -ability to translate many termcaps from the XENIX, IBM and -AT&T extension sets. -
  • A BSD-like tset(1) utility is provided. -
  • The ncurses library and utilities will automatically read terminfo -entries from $HOME/.terminfo if it exists, and compile to that directory -if it exists and the user has no write access to the system directory. -This feature makes it easier for users to have personal terminfo entries -without giving up access to the system terminfo directory. -
  • You may specify a path of directories to search for compiled -descriptions with the environment variable TERMINFO_DIRS (this -generalizes the feature provided by TERMINFO under stock System V.) -
  • In terminfo source files, use capabilities may refer not just to -other entries in the same source file (as in System V) but also to -compiled entries in either the system terminfo directory or the user's -$HOME/.terminfo directory. -
  • A script (capconvert) is provided to help BSD users -transition from termcap to terminfo. It gathers the information in a -TERMCAP environment variable and/or a ~/.termcap local entries file -and converts it to an equivalent local terminfo tree under $HOME/.terminfo. -
  • Automatic fallback to the /etc/termcap file can be compiled in -when it is not possible to build a terminfo tree. This feature is neither -fast nor cheap, you don't want to use it unless you have to, -but it's there. -
  • The table-of-entries utility toe makes it easy for users to -see exactly what terminal types are available on the system. -
  • The library meets the XSI requirement that every macro entry -point have a corresponding function which may be linked (and will be -prototype-checked) if the macro definition is disabled with -#undef. -
  • An HTML "Introduction to Programming with NCURSES" document provides -a narrative introduction to the curses programming interface. -
- -

State of the Package

- -Numerous bugs present in earlier versions have been fixed; the -library is far more reliable than it used to be. Bounds checking in many -`dangerous' entry points has been improved. The code is now type-safe -according to gcc -Wall. The library has been checked for malloc leaks and -arena corruption by the Purify memory-allocation tester.

- -The ncurses code has been tested with a wide variety of applications -including (versions starting with those noted): -

-
cdk -
Curses Development Kit -
-http://invisible-island.net/cdk/ -
-http://www.vexus.ca/products/CDK/ -
ded -
directory-editor -
-http://invisible-island.net/ded/ -
dialog -
the underlying application used in Slackware's setup, and the basis -for similar applications on GNU/Linux. -
-http://invisible-island.net/dialog/ -
lynx -
the character-screen WWW browser -
-http://lynx.isc.org/release/ -
Midnight Commander -
file manager -
-http://www.ibiblio.org/mc/ -
mutt -
mail utility -
-http://www.mutt.org/ -
ncftp -
file-transfer utility -
-http://www.ncftp.com/ -
nvi -
New vi versions 1.50 are able to use ncurses versions 1.9.7 and later. -
-http://www.bostic.com/vi/ -
-
pinfo -
Lynx-like info browser. -http://dione.ids.pl/~pborys/software/pinfo/ -
tin -
newsreader, supporting color, MIME -http://www.tin.org/ -
vh-1.6 -
Volks-Hypertext browser for the Jargon File -
-http://www.debian.org/Packages/unstable/text/vh.html -
-as well as some that use ncurses for the terminfo support alone: -
-
minicom -
terminal emulator -
-http://www.netsonic.fi/~walker/minicom.html -
vile -
vi-like-emacs -
-http://invisible-island.net/vile/ -
-

- -The ncurses distribution includes a selection of test programs (including -a few games). - -

Who's Who and What's What

- -Zeyd Ben-Halim -started it from a previous package pcurses, written by Pavel Curtis. -Eric S. Raymond -continued development. -Jürgen Pfeifer wrote most of the form and menu libraries. -Ongoing work is being done by -Thomas Dickey. -Thomas Dickey -acts as the maintainer for the Free Software Foundation, -which holds the copyright on ncurses. -Contact the current maintainers at -bug-ncurses@gnu.org. -

- -To join the ncurses mailing list, please write email to -bug-ncurses-request@gnu.org containing the line: -

-             subscribe <name>@<host.domain>
-
- -This list is open to anyone interested in helping with the development and -testing of this package.

- -Beta versions of ncurses and patches to the current release are made available at -ftp://invisible-island.net/ncurses/ . - -

Future Plans

-
    -
  • Extended-level XPG4 conformance, with internationalization support. -
  • Ports to more systems, including DOS and Windows. -
-We need people to help with these projects. If you are interested in working -on them, please join the ncurses list. - -

Other Related Resources

- -The distribution provides a newer version of the terminfo-format -terminal description file maintained by -Eric Raymond . -Unlike the older version, the termcap and terminfo data are provided -in the same file.

- -You can find lots of information on terminal-related topics -not covered in the terminfo file at -Richard Shuford's -archive . - - - diff --git a/Build/source/libs/ncurses/config.guess b/Build/source/libs/ncurses/config.guess deleted file mode 100755 index e5716eea733..00000000000 --- a/Build/source/libs/ncurses/config.guess +++ /dev/null @@ -1,1555 +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, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. - -timestamp='2009-02-03' - -# 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., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, 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 . -# Please send patches to . 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 ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 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 ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # 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 "$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 ; set_cc_for_build= ;' - -# 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 ;; - sh5el) machine=sh5le-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 ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - 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 ;; - 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 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - 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 ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - 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 ;; - 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 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - 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 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # 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 ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* 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 && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - 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 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????: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 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - 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 ;; - *: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 - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - 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 ;; - *:AIX:*:[456]) - 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 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 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 - #include - - 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 - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep __LP64__ >/dev/null - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - 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 && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - 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 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - 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 ;; - 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 ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:[3456]*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T | authenticamd | genuineintel) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 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 ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *: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 ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - 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 | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - 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 | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - 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 ;; - padre:Linux:*:*) - echo sparc-unknown-linux-gnu - exit ;; - 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 ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - 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 ;; - "") - # 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 ;; - esac - # Determine whether the default compiler is a.out or elf - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - #ifdef __ELF__ - # ifdef __GLIBC__ - # if __GLIBC__ >= 2 - LIBC=gnu - # else - LIBC=gnulibc1 - # endif - # else - LIBC=gnulibc1 - # endif - #else - #if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC) - LIBC=gnu - #else - LIBC=gnuaout - #endif - #endif - #ifdef __dietlibc__ - LIBC=dietlibc - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^LIBC/{ - s: ::g - p - }'`" - test x"${LIBC}" != x && { - echo "${UNAME_MACHINE}-pc-linux-${LIBC}" - exit - } - test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } - ;; - 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 ;; - 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 ;; - 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 ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - 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 ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - 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 ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /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 ;; - 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 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - 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 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 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 | S7501*:*: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; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - 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; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *: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 ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - 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 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *: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 ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *: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 ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; -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 < -# include -#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 - 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\n"); 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 -# 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 && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# 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 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < 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/Build/source/libs/ncurses/config.sub b/Build/source/libs/ncurses/config.sub deleted file mode 100755 index d546a94b951..00000000000 --- a/Build/source/libs/ncurses/config.sub +++ /dev/null @@ -1,1685 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 -# Free Software Foundation, Inc. - -timestamp='2009-02-03' - -# 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., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, 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 . 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 ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 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 ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # 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 ;; - - * ) - 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-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-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 | -knuth | -cray) - 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 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -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/'` - ;; - -sco5v6*) - # 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 | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k | z80) - 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) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # 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-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # 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 - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - 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 - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - 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 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - 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 - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - 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 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - 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 - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - 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 - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - 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 - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - 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 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - 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 - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - 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 - ;; - tile*) - basic_machine=tile-unknown - os=-linux-gnu - ;; - 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 - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-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 - ;; - mmix) - basic_machine=mmix-knuth - ;; - 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 - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - 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* \ - | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -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* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -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* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops*) - # 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* | -haiku* \ - | -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 - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -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 - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-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 - ;; - mep-*) - os=-elf - ;; - 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 - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-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 - -# 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/Build/source/libs/ncurses/configure b/Build/source/libs/ncurses/configure deleted file mode 100755 index e350566fbf1..00000000000 --- a/Build/source/libs/ncurses/configure +++ /dev/null @@ -1,14024 +0,0 @@ -#! /bin/sh -# From configure.in Revision: 1.324 . -# Guess values for system-dependent variables and create Makefiles. -# Generated by Autoconf 2.52.20030208. -# -# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -# Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. - -# 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 - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Name of the executable. -as_me=`echo "$0" |sed 's,.*[\\/],,'` - -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 - -as_executable_p="test -f" - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - -# NLS nuisances. -$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } -$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } -$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } -$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } -$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } -$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } -$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } -$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } - -# 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 -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} - -ac_unique_file="ncurses/base/lib_initscr.c" - -# 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' - -# Identity of this package. -PACKAGE_NAME= -PACKAGE_TARNAME= -PACKAGE_VERSION= -PACKAGE_STRING= -PACKAGE_BUGREPORT= - -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 ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$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) - 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 path 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 path 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. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: should be removed in autoconf 3.0. -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_prog=$0 - ac_confdir=`echo "$ac_prog" | sed 's%[\\/][^\\/][^\\/]*$%%'` - test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. - 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 in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -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 - -# -# 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 < if you have libraries in a - nonstandard directory - CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have - headers in a nonstandard directory - CPP C preprocessor - CXX C++ compiler command - CXXFLAGS C++ compiler flags - CXXCPP C++ preprocessor - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -EOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_subdir in : $ac_subdirs_all; do test "x$ac_subdir" = x: && continue - cd $ac_subdir - # A "../" for each directory in /$ac_subdir. - ac_dots=`echo $ac_subdir | - sed 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g'` - - case $srcdir in - .) # No --srcdir option. We are building in place. - ac_sub_srcdir=$srcdir ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_sub_srcdir=$srcdir/$ac_subdir ;; - *) # Relative path. - ac_sub_srcdir=$ac_dots$srcdir/$ac_subdir ;; - esac - - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_sub_srcdir/configure.gnu; then - echo - $SHELL $ac_sub_srcdir/configure.gnu --help=recursive - elif test -f $ac_sub_srcdir/configure; then - echo - $SHELL $ac_sub_srcdir/configure --help=recursive - elif test -f $ac_sub_srcdir/configure.ac || - test -f $ac_sub_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_subdir" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\EOF - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -EOF - exit 0 -fi -exec 5>config.log -cat >&5 </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` - -PATH = $PATH - -_ASUNAME -} >&5 - -cat >&5 <\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` - ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - ac_sep=" " ;; - *) ac_configure_args="$ac_configure_args$ac_sep$ac_arg" - ac_sep=" " ;; - esac - # Get rid of the leading space. -done - -# 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. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - echo >&5 - echo "## ----------------- ##" >&5 - echo "## Cache variables. ##" >&5 - echo "## ----------------- ##" >&5 - echo >&5 - # 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; -} >&5 - sed "/^$/d" confdefs.h >conftest.log - if test -s conftest.log; then - echo >&5 - echo "## ------------ ##" >&5 - echo "## confdefs.h. ##" >&5 - echo "## ------------ ##" >&5 - echo >&5 - cat conftest.log >&5 - fi - (echo; echo) >&5 - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" >&5 - echo "$as_me: exit $exit_status" >&5 - rm -rf conftest* confdefs* core core.* *.core 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 -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# 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:938: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - cat "$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:949: 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:957: 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:973: 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:977: 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:983: 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:985: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:987: 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. It doesn't matter if - # we pass some twice (in addition to the command line arguments). - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` - ac_configure_args="$ac_configure_args '$ac_arg'" - ;; - *) ac_configure_args="$ac_configure_args $ac_var=$ac_new_val" - ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:1006: 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:1008: 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 - -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 -echo "#! $SHELL" >conftest.sh -echo "exit 0" >>conftest.sh -chmod +x conftest.sh -if { (echo "$as_me:1028: PATH=\".;.\"; conftest.sh") >&5 - (PATH=".;."; conftest.sh) 2>&5 - ac_status=$? - echo "$as_me:1031: \$? = $ac_status" >&5 - (exit $ac_status); }; then - ac_path_separator=';' -else - ac_path_separator=: -fi -PATH_SEPARATOR="$ac_path_separator" -rm -f conftest.sh - -ac_config_headers="$ac_config_headers include/ncurses_cfg.h:include/ncurses_cfg.hin" - -NCURSES_MAJOR="`egrep '^NCURSES_MAJOR[ ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`" -NCURSES_MINOR="`egrep '^NCURSES_MINOR[ ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`" -NCURSES_PATCH="`egrep '^NCURSES_PATCH[ ]*=' $srcdir/dist.mk | sed -e 's/^[^0-9]*//'`" -cf_cv_abi_version=${NCURSES_MAJOR} -cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR} -cf_cv_timestamp=`date` -echo "$as_me:1048: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5 -echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6 - -test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0 - -# Check whether --with-rel-version or --without-rel-version was given. -if test "${with_rel_version+set}" = set; then - withval="$with_rel_version" - { echo "$as_me:1056: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5 -echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;} - cf_cv_rel_version=$withval -fi; - - NCURSES_MAJOR=`echo "$cf_cv_rel_version" | sed -e 's/\..*//'` - NCURSES_MINOR=`echo "$cf_cv_rel_version" | sed -e 's/^[^.]*//' -e 's/^\.//' -e 's/\..*//'` - -if test -n "$NCURSES_MAJOR" ; then - case $NCURSES_MAJOR in #(vi - [0-9]*) #(vi - ;; - *) - { { echo "$as_me:1069: error: Release major-version is not a number: $NCURSES_MAJOR" >&5 -echo "$as_me: error: Release major-version is not a number: $NCURSES_MAJOR" >&2;} - { (exit 1); exit 1; }; } - ;; - esac -else - { { echo "$as_me:1075: error: Release major-version value is empty" >&5 -echo "$as_me: error: Release major-version value is empty" >&2;} - { (exit 1); exit 1; }; } -fi - -if test -n "$NCURSES_MINOR" ; then - case $NCURSES_MINOR in #(vi - [0-9]*) #(vi - ;; - *) - { { echo "$as_me:1085: error: Release minor-version is not a number: $NCURSES_MINOR" >&5 -echo "$as_me: error: Release minor-version is not a number: $NCURSES_MINOR" >&2;} - { (exit 1); exit 1; }; } - ;; - esac -else - { { echo "$as_me:1091: error: Release minor-version value is empty" >&5 -echo "$as_me: error: Release minor-version value is empty" >&2;} - { (exit 1); exit 1; }; } -fi - -test -z "$cf_cv_abi_version" && cf_cv_abi_version=0 - -# Check whether --with-abi-version or --without-abi-version was given. -if test "${with_abi_version+set}" = set; then - withval="$with_abi_version" - { echo "$as_me:1101: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5 -echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;} - cf_cv_abi_version=$withval -fi; - -if test -n "$cf_cv_abi_version" ; then - case $cf_cv_abi_version in #(vi - [0-9]*) #(vi - ;; - *) - { { echo "$as_me:1111: error: ABI version is not a number: $cf_cv_abi_version" >&5 -echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;} - { (exit 1); exit 1; }; } - ;; - esac -else - { { echo "$as_me:1117: error: ABI version value is empty" >&5 -echo "$as_me: error: ABI version value is empty" >&2;} - { (exit 1); exit 1; }; } -fi - -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:1139: 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:1149: error: cannot run $ac_config_sub" >&5 -echo "$as_me: error: cannot run $ac_config_sub" >&2;} - { (exit 1); exit 1; }; } - -echo "$as_me:1153: 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:1162: 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:1166: 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:1171: 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:1178: 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:1187: 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:1192: 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/'` - -if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then - echo "$as_me:1200: 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:1209: 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:1214: 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}- - system_name="$host_os" -else - system_name="`(uname -s -r) 2>/dev/null`" - if test -z "$system_name" ; then - system_name="`(hostname) 2>/dev/null`" - fi -fi -test -n "$system_name" && cat >>confdefs.h <&6 -else - cf_cv_system_name="$system_name" -fi - -test -z "$system_name" && system_name="$cf_cv_system_name" -test -n "$cf_cv_system_name" && echo "$as_me:1245: result: Configuring for $cf_cv_system_name" >&5 -echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6 - -if test ".$system_name" != ".$cf_cv_system_name" ; then - echo "$as_me:1249: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5 -echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6 - { { echo "$as_me:1251: error: \"Please remove config.cache and try again.\"" >&5 -echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;} - { (exit 1); exit 1; }; } -fi - -# Check whether --with-system-type or --without-system-type was given. -if test "${with_system_type+set}" = set; then - withval="$with_system_type" - { echo "$as_me:1259: WARNING: overriding system type to $withval" >&5 -echo "$as_me: WARNING: overriding system type to $withval" >&2;} - cf_cv_system_name=$withval -fi; - -### Save the given $CFLAGS to allow user-override. -cf_user_CFLAGS="$CFLAGS" - -### Default install-location - -echo "$as_me:1269: checking for prefix" >&5 -echo $ECHO_N "checking for prefix... $ECHO_C" >&6 -if test "x$prefix" = "xNONE" ; then - case "$cf_cv_system_name" in - # non-vendor systems don't have a conflict - openbsd*|netbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu) - prefix=/usr - ;; - *) prefix=$ac_default_prefix - ;; - esac -fi -echo "$as_me:1281: result: $prefix" >&5 -echo "${ECHO_T}$prefix" >&6 - -if test "x$prefix" = "xNONE" ; then -echo "$as_me:1285: checking for default include-directory" >&5 -echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6 -test -n "$verbose" && echo 1>&6 -for cf_symbol in \ - $includedir \ - $includedir/ncurses \ - $prefix/include \ - $prefix/include/ncurses \ - /usr/local/include \ - /usr/local/include/ncurses \ - /usr/include \ - /usr/include/ncurses -do - cf_dir=`eval echo $cf_symbol` - if test -f $cf_dir/curses.h ; then - if ( fgrep NCURSES_VERSION $cf_dir/curses.h 2>&1 >/dev/null ) ; then - includedir="$cf_symbol" - test -n "$verbose" && echo $ac_n " found " 1>&6 - break - fi - fi - test -n "$verbose" && echo " tested $cf_dir" 1>&6 -done -echo "$as_me:1308: result: $includedir" >&5 -echo "${ECHO_T}$includedir" >&6 -fi - -### 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:1321: 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_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="${ac_tool_prefix}gcc" -echo "$as_me:1336: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1344: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1347: 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:1356: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="gcc" -echo "$as_me:1371: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1379: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1382: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -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:1395: 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_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="${ac_tool_prefix}cc" -echo "$as_me:1410: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1418: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1421: 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:1430: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="cc" -echo "$as_me:1445: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1453: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1456: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - CC=$ac_ct_CC -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:1469: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue -fi -ac_cv_prog_CC="cc" -echo "$as_me:1489: found $ac_dir/$ac_word" >&5 -break -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 - set dummy "$ac_dir/$ac_word" ${1+"$@"} - shift - ac_cv_prog_CC="$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1511: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1514: 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:1525: 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_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CC="$ac_tool_prefix$ac_prog" -echo "$as_me:1540: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - echo "$as_me:1548: result: $CC" >&5 -echo "${ECHO_T}$CC" >&6 -else - echo "$as_me:1551: 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:1564: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CC="$ac_prog" -echo "$as_me:1579: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - echo "$as_me:1587: result: $ac_ct_CC" >&5 -echo "${ECHO_T}$ac_ct_CC" >&6 -else - echo "$as_me:1590: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CC" && break -done - - CC=$ac_ct_CC -fi - -fi - -test -z "$CC" && { { echo "$as_me:1602: error: no acceptable cc found in \$PATH" >&5 -echo "$as_me: error: no acceptable cc found in \$PATH" >&2;} - { (exit 1); exit 1; }; } - -# Provide some information about the compiler. -echo "$as_me:1607:" \ - "checking for C compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:1610: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:1613: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:1615: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:1618: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:1620: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:1623: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -#line 1627 "configure" -#include "confdefs.h" - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.exe" -# 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:1643: checking for C compiler default output" >&5 -echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6 -ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` -if { (eval echo "$as_me:1646: \"$ac_link_default\"") >&5 - (eval $ac_link_default) 2>&5 - ac_status=$? - echo "$as_me:1649: \$? = $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. -for ac_file in `ls a.exe conftest.exe 2>/dev/null; - ls a.out conftest 2>/dev/null; - ls a.* conftest.* 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; - a.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 --akim. - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -{ { echo "$as_me:1672: error: C compiler cannot create executables" >&5 -echo "$as_me: error: C compiler cannot create executables" >&2;} - { (exit 77); exit 77; }; } -fi - -ac_exeext=$ac_cv_exeext -echo "$as_me:1678: 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:1683: 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:1689: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1692: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { echo "$as_me:1699: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'." >&5 -echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'." >&2;} - { (exit 1); exit 1; }; } - fi - fi -fi -echo "$as_me:1707: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - -rm -f a.out a.exe conftest$ac_cv_exeext -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:1714: checking whether we are cross compiling" >&5 -echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 -echo "$as_me:1716: result: $cross_compiling" >&5 -echo "${ECHO_T}$cross_compiling" >&6 - -echo "$as_me:1719: checking for executable suffix" >&5 -echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6 -if { (eval echo "$as_me:1721: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:1724: \$? = $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 `(ls conftest.exe; ls conftest; ls conftest.*) 2>/dev/null`; do - case $ac_file in - *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - export ac_cv_exeext - break;; - * ) break;; - esac -done -else - { { echo "$as_me:1740: error: cannot compute EXEEXT: cannot compile and link" >&5 -echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest$ac_cv_exeext -echo "$as_me:1746: 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:1752: checking for object suffix" >&5 -echo $ECHO_N "checking for object suffix... $ECHO_C" >&6 -if test "${ac_cv_objext+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 1758 "configure" -#include "confdefs.h" - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (eval echo "$as_me:1770: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1773: \$? = $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 ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -{ { echo "$as_me:1785: error: cannot compute OBJEXT: cannot compile" >&5 -echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;} - { (exit 1); exit 1; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -echo "$as_me:1792: result: $ac_cv_objext" >&5 -echo "${ECHO_T}$ac_cv_objext" >&6 -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -echo "$as_me:1796: 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 -#line 1802 "configure" -#include "confdefs.h" - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:1817: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1820: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1823: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1826: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_compiler_gnu=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:1838: 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:1844: 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 -#line 1850 "configure" -#include "confdefs.h" - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:1862: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1865: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1868: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1871: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_g=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_prog_cc_g=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:1881: 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 -# 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:1908: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1911: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1914: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1917: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - for ac_declaration in \ - ''\ - '#include ' \ - '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 -#line 1929 "configure" -#include "confdefs.h" -#include -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:1942: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1945: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1948: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1951: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -continue -fi -rm -f conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -#line 1961 "configure" -#include "confdefs.h" -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:1973: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:1976: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:1979: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:1982: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f 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 -cat conftest.$ac_ext >&5 -fi -rm -f 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 - -GCC_VERSION=none -if test "$GCC" = yes ; then - echo "$as_me:2011: checking version of $CC" >&5 -echo $ECHO_N "checking version of $CC... $ECHO_C" >&6 - GCC_VERSION="`${CC} --version|sed -e '2,$d' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`" - test -z "$GCC_VERSION" && GCC_VERSION=unknown - echo "$as_me:2015: result: $GCC_VERSION" >&5 -echo "${ECHO_T}$GCC_VERSION" >&6 -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 -echo "$as_me:2024: 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. - # 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 -#line 2045 "configure" -#include "confdefs.h" -#include - Syntax error -_ACEOF -if { (eval echo "$as_me:2050: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2056: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_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 - cat 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 -#line 2079 "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:2083: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2089: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_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 - cat 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:2126: 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. - # 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 -#line 2136 "configure" -#include "confdefs.h" -#include - Syntax error -_ACEOF -if { (eval echo "$as_me:2141: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2147: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_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 - cat 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 -#line 2170 "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:2174: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:2180: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_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 - cat 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:2208: error: C preprocessor \"$CPP\" fails sanity check" >&5 -echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&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 - -if test $ac_cv_c_compiler_gnu = yes; then - echo "$as_me:2220: checking whether $CC needs -traditional" >&5 -echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6 -if test "${ac_cv_prog_gcc_traditional+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_pattern="Autoconf.*'x'" - cat >conftest.$ac_ext <<_ACEOF -#line 2227 "configure" -#include "confdefs.h" -#include -int Autoconf = TIOCGETP; -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "$ac_pattern" >/dev/null 2>&1; then - ac_cv_prog_gcc_traditional=yes -else - ac_cv_prog_gcc_traditional=no -fi -rm -f conftest* - - if test $ac_cv_prog_gcc_traditional = no; then - cat >conftest.$ac_ext <<_ACEOF -#line 2242 "configure" -#include "confdefs.h" -#include -int Autoconf = TCGETA; -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "$ac_pattern" >/dev/null 2>&1; then - ac_cv_prog_gcc_traditional=yes -fi -rm -f conftest* - - fi -fi -echo "$as_me:2255: result: $ac_cv_prog_gcc_traditional" >&5 -echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6 - if test $ac_cv_prog_gcc_traditional = yes; then - CC="$CC -traditional" - fi -fi - -echo "$as_me:2262: checking whether $CC understands -c and -o together" >&5 -echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6 -if test "${cf_cv_prog_CC_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat > conftest.$ac_ext < -int main() -{ - return 0; -} -CF_EOF -# We do the test twice because some compilers refuse to overwrite an -# existing .o file with -o, though they will create one. -ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -if { (eval echo "$as_me:2278: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2281: \$? = $ac_status" >&5 - (exit $ac_status); } && - test -f conftest2.$ac_objext && { (eval echo "$as_me:2283: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2286: \$? = $ac_status" >&5 - (exit $ac_status); }; -then - eval cf_cv_prog_CC_c_o=yes -else - eval cf_cv_prog_CC_c_o=no -fi -rm -f conftest* - -fi -if test $cf_cv_prog_CC_c_o = yes; then - echo "$as_me:2297: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:2300: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -echo "$as_me:2304: checking for POSIXized ISC" >&5 -echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6 -if test -d /etc/conf/kconfig.d && - grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 -then - echo "$as_me:2309: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - ISC=yes # If later tests want to check for ISC. - -cat >>confdefs.h <<\EOF -#define _POSIX_SOURCE 1 -EOF - - if test "$GCC" = yes; then - CC="$CC -posix" - else - CC="$CC -Xp" - fi -else - echo "$as_me:2323: result: no" >&5 -echo "${ECHO_T}no" >&6 - ISC= -fi - -echo "$as_me:2328: checking for ${CC-cc} option to accept ANSI C" >&5 -echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6 -if test "${cf_cv_ansi_cc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cf_cv_ansi_cc=no -cf_save_CFLAGS="$CFLAGS" -cf_save_CPPFLAGS="$CPPFLAGS" -# Don't try gcc -ansi; that turns off useful extensions and -# breaks some systems' header files. -# AIX -qlanglvl=ansi -# Ultrix and OSF/1 -std1 -# HP-UX -Aa -D_HPUX_SOURCE -# SVR4 -Xc -# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes) -for cf_arg in "-DCC_HAS_PROTOS" \ - "" \ - -qlanglvl=ansi \ - -std1 \ - -Ae \ - "-Aa -D_HPUX_SOURCE" \ - -Xc -do - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_arg -do -case $cf_fix_cppflags in -no) - case $cf_add_cflags in #(vi - -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi - case $cf_add_cflags in - -D*) - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test $cf_fix_cppflags = yes ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - fi - ;; - esac - case "$CPPFLAGS" in - *$cf_add_cflags) #(vi - ;; - *) #(vi - cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" - ;; - esac - ;; - *) - cf_new_cflags="$cf_new_cflags $cf_add_cflags" - ;; - esac - ;; -yes) - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - CFLAGS="$CFLAGS $cf_new_cflags" -fi - -if test -n "$cf_new_cppflags" ; then - - CPPFLAGS="$cf_new_cppflags $CPPFLAGS" -fi - -if test -n "$cf_new_extra_cppflags" ; then - - EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" -fi - - cat >conftest.$ac_ext <<_ACEOF -#line 2422 "configure" -#include "confdefs.h" - -#ifndef CC_HAS_PROTOS -#if !defined(__STDC__) || (__STDC__ != 1) -choke me -#endif -#endif - -int -main () -{ - - int test (int i, double x); - struct s1 {int (*f) (int a);}; - struct s2 {int (*f) (double a);}; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:2443: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:2446: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:2449: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:2452: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_ansi_cc="$cf_arg"; break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done -CFLAGS="$cf_save_CFLAGS" -CPPFLAGS="$cf_save_CPPFLAGS" - -fi -echo "$as_me:2465: result: $cf_cv_ansi_cc" >&5 -echo "${ECHO_T}$cf_cv_ansi_cc" >&6 - -if test "$cf_cv_ansi_cc" != "no"; then -if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in $cf_cv_ansi_cc -do -case $cf_fix_cppflags in -no) - case $cf_add_cflags in #(vi - -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi - case $cf_add_cflags in - -D*) - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test $cf_fix_cppflags = yes ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - fi - ;; - esac - case "$CPPFLAGS" in - *$cf_add_cflags) #(vi - ;; - *) #(vi - cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" - ;; - esac - ;; - *) - cf_new_cflags="$cf_new_cflags $cf_add_cflags" - ;; - esac - ;; -yes) - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - CFLAGS="$CFLAGS $cf_new_cflags" -fi - -if test -n "$cf_new_cppflags" ; then - - CPPFLAGS="$cf_new_cppflags $CPPFLAGS" -fi - -if test -n "$cf_new_extra_cppflags" ; then - - EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" -fi - -else - cat >>confdefs.h <<\EOF -#define CC_HAS_PROTOS 1 -EOF - -fi -fi - -if test "$cf_cv_ansi_cc" = "no"; then - { { echo "$as_me:2548: error: Your compiler does not appear to recognize prototypes. -You have the following choices: - a. adjust your compiler options - b. get an up-to-date compiler - c. use a wrapper such as unproto" >&5 -echo "$as_me: error: Your compiler does not appear to recognize prototypes. -You have the following choices: - a. adjust your compiler options - b. get an up-to-date compiler - c. use a wrapper such as unproto" >&2;} - { (exit 1); exit 1; }; } -fi - -case $cf_cv_system_name in -os2*) - CFLAGS="$CFLAGS -Zmt" - CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__" - CXXFLAGS="$CXXFLAGS -Zmt" - # autoconf's macro sets -Zexe and suffix both, which conflict:w - LDFLAGS="$LDFLAGS -Zmt -Zcrtdll" - ac_cv_exeext=.exe - ;; -esac - -PROG_EXT="$EXEEXT" - -test -n "$PROG_EXT" && cat >>confdefs.h <&5 -echo $ECHO_N "checking if you want to build programs such as tic... $ECHO_C" >&6 - -# Check whether --with-progs or --without-progs was given. -if test "${with_progs+set}" = set; then - withval="$with_progs" - cf_with_progs=$withval -else - cf_with_progs=no -fi; -echo "$as_me:2588: result: $cf_with_progs" >&5 -echo "${ECHO_T}$cf_with_progs" >&6 - -echo "$as_me:2591: checking if you wish to install curses.h" >&5 -echo $ECHO_N "checking if you wish to install curses.h... $ECHO_C" >&6 - -# Check whether --with-curses-h or --without-curses-h was given. -if test "${with_curses_h+set}" = set; then - withval="$with_curses_h" - with_curses_h=$withval -else - with_curses_h=yes -fi; -echo "$as_me:2601: result: $with_curses_h" >&5 -echo "${ECHO_T}$with_curses_h" >&6 - -modules_to_build="ncurses" -if test "X$cf_with_progs" != Xno ; then -modules_to_build="$modules_to_build progs tack" -fi - -test "$program_prefix" != NONE && - program_transform_name="s,^,$program_prefix,;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s,\$,$program_suffix,;$program_transform_name" -# Double any \ or $. echo might interpret backslashes. -# By default was `s,x,x', remove it if useless. -cat <<\_ACEOF >conftest.sed -s/[\\$]/&&/g;s/;s,x,x,$// -_ACEOF -program_transform_name=`echo $program_transform_name | sed -f conftest.sed` -rm conftest.sed - -for ac_prog in mawk gawk nawk awk -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:2626: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_AWK+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_AWK="$ac_prog" -echo "$as_me:2641: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - echo "$as_me:2649: result: $AWK" >&5 -echo "${ECHO_T}$AWK" >&6 -else - echo "$as_me:2652: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$AWK" && break -done - -echo "$as_me:2659: checking whether ${MAKE-make} sets \${MAKE}" >&5 -echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6 -set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'` -if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.make <<\EOF -all: - @echo 'ac_maketemp="${MAKE}"' -EOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` -if test -n "$ac_maketemp"; then - eval ac_cv_prog_make_${ac_make}_set=yes -else - eval ac_cv_prog_make_${ac_make}_set=no -fi -rm -f conftest.make -fi -if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then - echo "$as_me:2679: result: yes" >&5 -echo "${ECHO_T}yes" >&6 - SET_MAKE= -else - echo "$as_me:2683: result: no" >&5 -echo "${ECHO_T}no" >&6 - SET_MAKE="MAKE=${MAKE-make}" -fi - -# 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" -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:2700: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator - for ac_dir in $PATH; do - IFS=$ac_save_IFS - # Account for people who put trailing slashes in PATH elements. - case $ac_dir/ in - / | ./ | .// | /cC/* \ - | /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* \ - | /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 - if $as_executable_p "$ac_dir/$ac_prog"; then - if test $ac_prog = install && - grep dspmsg "$ac_dir/$ac_prog" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$ac_dir/$ac_prog" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$ac_dir/$ac_prog -c" - break 2 - fi - fi - 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:2749: 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 -/*) - ;; -*) - cf_dir=`echo $INSTALL | sed -e 's%/[^/]*$%%'` - test -z "$cf_dir" && cf_dir=. - INSTALL=`cd $cf_dir && pwd`/`echo $INSTALL | sed -e 's%^.*/%%'` - ;; -esac - -echo "$as_me:2770: checking for long file names" >&5 -echo $ECHO_N "checking for long file names... $ECHO_C" >&6 -if test "${ac_cv_sys_long_file_names+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_sys_long_file_names=yes -# Test for long file names in all the places we know might matter: -# . the current directory, where building will happen -# $prefix/lib where we will be installing things -# $exec_prefix/lib likewise -# eval it to expand exec_prefix. -# $TMPDIR if set, where it might want to write temporary files -# if $TMPDIR is not set: -# /tmp where it might want to write temporary files -# /var/tmp likewise -# /usr/tmp likewise -if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then - ac_tmpdirs=$TMPDIR -else - ac_tmpdirs='/tmp /var/tmp /usr/tmp' -fi -for ac_dir in . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do - test -d $ac_dir || continue - test -w $ac_dir || continue # It is less confusing to not echo anything here. - ac_xdir=$ac_dir/cf$$ - (umask 077 && mkdir $ac_xdir 2>/dev/null) || continue - ac_tf1=$ac_xdir/conftest9012345 - ac_tf2=$ac_xdir/conftest9012346 - (echo 1 >$ac_tf1) 2>/dev/null - (echo 2 >$ac_tf2) 2>/dev/null - ac_val=`cat $ac_tf1 2>/dev/null` - if test ! -f $ac_tf1 || test "$ac_val" != 1; then - ac_cv_sys_long_file_names=no - rm -rf $ac_xdir 2>/dev/null - break - fi - rm -rf $ac_xdir 2>/dev/null -done -fi -echo "$as_me:2809: result: $ac_cv_sys_long_file_names" >&5 -echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6 -if test $ac_cv_sys_long_file_names = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_LONG_FILE_NAMES 1 -EOF - -fi - -echo "$as_me:2819: checking if filesystem supports mixed-case filenames" >&5 -echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6 -if test "${cf_cv_mixedcase+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -if test "$cross_compiling" = yes ; then - case $target_alias in #(vi - *-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-mingw32*|*-uwin*) #(vi - cf_cv_mixedcase=no - ;; - *) - cf_cv_mixedcase=yes - ;; - esac -else - rm -f conftest CONFTEST - echo test >conftest - if test -f CONFTEST ; then - cf_cv_mixedcase=no - else - cf_cv_mixedcase=yes - fi - rm -f conftest CONFTEST -fi - -fi -echo "$as_me:2846: result: $cf_cv_mixedcase" >&5 -echo "${ECHO_T}$cf_cv_mixedcase" >&6 -test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF -#define MIXEDCASE_FILENAMES 1 -EOF - -echo "$as_me:2852: 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:2856: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:2859: result: no, using $LN_S" >&5 -echo "${ECHO_T}no, using $LN_S" >&6 -fi - -# Extract the first word of "ctags", so it can be a program name with args. -set dummy ctags; ac_word=$2 -echo "$as_me:2865: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$MAKE_LOWER_TAGS"; then - ac_cv_prog_MAKE_LOWER_TAGS="$MAKE_LOWER_TAGS" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_MAKE_LOWER_TAGS="yes" -echo "$as_me:2880: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_MAKE_LOWER_TAGS" && ac_cv_prog_MAKE_LOWER_TAGS="no" -fi -fi -MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS -if test -n "$MAKE_LOWER_TAGS"; then - echo "$as_me:2889: result: $MAKE_LOWER_TAGS" >&5 -echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6 -else - echo "$as_me:2892: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test "$cf_cv_mixedcase" = yes ; then - # Extract the first word of "etags", so it can be a program name with args. -set dummy etags; ac_word=$2 -echo "$as_me:2899: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$MAKE_UPPER_TAGS"; then - ac_cv_prog_MAKE_UPPER_TAGS="$MAKE_UPPER_TAGS" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_MAKE_UPPER_TAGS="yes" -echo "$as_me:2914: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_MAKE_UPPER_TAGS" && ac_cv_prog_MAKE_UPPER_TAGS="no" -fi -fi -MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS -if test -n "$MAKE_UPPER_TAGS"; then - echo "$as_me:2923: result: $MAKE_UPPER_TAGS" >&5 -echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6 -else - echo "$as_me:2926: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -else - MAKE_UPPER_TAGS=no -fi - -if test "$MAKE_UPPER_TAGS" = yes ; then - MAKE_UPPER_TAGS= -else - MAKE_UPPER_TAGS="#" -fi - -if test "$MAKE_LOWER_TAGS" = yes ; then - MAKE_LOWER_TAGS= -else - MAKE_LOWER_TAGS="#" -fi - -for ac_prog in tdlint lint alint -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:2950: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_LINT+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$LINT"; then - ac_cv_prog_LINT="$LINT" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_LINT="$ac_prog" -echo "$as_me:2965: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -LINT=$ac_cv_prog_LINT -if test -n "$LINT"; then - echo "$as_me:2973: result: $LINT" >&5 -echo "${ECHO_T}$LINT" >&6 -else - echo "$as_me:2976: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$LINT" && break -done - -for ac_prog in man man_db -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:2987: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_MAN+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$MAN"; then - ac_cv_prog_MAN="$MAN" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_MAN="$ac_prog" -echo "$as_me:3002: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -MAN=$ac_cv_prog_MAN -if test -n "$MAN"; then - echo "$as_me:3010: result: $MAN" >&5 -echo "${ECHO_T}$MAN" >&6 -else - echo "$as_me:3013: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$MAN" && break -done - -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:3023: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" -echo "$as_me:3038: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - echo "$as_me:3046: result: $RANLIB" >&5 -echo "${ECHO_T}$RANLIB" >&6 -else - echo "$as_me:3049: 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:3058: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_RANLIB="ranlib" -echo "$as_me:3073: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB="':'" -fi -fi -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - echo "$as_me:3082: result: $ac_ct_RANLIB" >&5 -echo "${ECHO_T}$ac_ct_RANLIB" >&6 -else - echo "$as_me:3085: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - RANLIB=$ac_ct_RANLIB -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args. -set dummy ${ac_tool_prefix}ld; ac_word=$2 -echo "$as_me:3097: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$LD"; then - ac_cv_prog_LD="$LD" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_LD="${ac_tool_prefix}ld" -echo "$as_me:3112: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -LD=$ac_cv_prog_LD -if test -n "$LD"; then - echo "$as_me:3120: result: $LD" >&5 -echo "${ECHO_T}$LD" >&6 -else - echo "$as_me:3123: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -fi -if test -z "$ac_cv_prog_LD"; then - ac_ct_LD=$LD - # Extract the first word of "ld", so it can be a program name with args. -set dummy ld; ac_word=$2 -echo "$as_me:3132: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_ac_ct_LD+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$ac_ct_LD"; then - ac_cv_prog_ac_ct_LD="$ac_ct_LD" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_LD="ld" -echo "$as_me:3147: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_ac_ct_LD" && ac_cv_prog_ac_ct_LD="ld" -fi -fi -ac_ct_LD=$ac_cv_prog_ac_ct_LD -if test -n "$ac_ct_LD"; then - echo "$as_me:3156: result: $ac_ct_LD" >&5 -echo "${ECHO_T}$ac_ct_LD" >&6 -else - echo "$as_me:3159: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - LD=$ac_ct_LD -else - LD="$ac_cv_prog_LD" -fi - -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:3171: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_AR="${ac_tool_prefix}ar" -echo "$as_me:3186: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - echo "$as_me:3194: result: $AR" >&5 -echo "${ECHO_T}$AR" >&6 -else - echo "$as_me:3197: 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:3206: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_AR="ar" -echo "$as_me:3221: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="ar" -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - echo "$as_me:3230: result: $ac_ct_AR" >&5 -echo "${ECHO_T}$ac_ct_AR" >&6 -else - echo "$as_me:3233: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - AR=$ac_ct_AR -else - AR="$ac_cv_prog_AR" -fi - -if test "${cf_cv_subst_AR_OPTS+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -echo "$as_me:3246: checking for archiver options (symbol AR_OPTS)" >&5 -echo $ECHO_N "checking for archiver options (symbol AR_OPTS)... $ECHO_C" >&6 -test -z "$AR_OPTS" && AR_OPTS=rv -echo "$as_me:3249: result: $AR_OPTS" >&5 -echo "${ECHO_T}$AR_OPTS" >&6 - -cf_cv_subst_AR_OPTS=$AR_OPTS -fi - -AR_OPTS=${cf_cv_subst_AR_OPTS} - -echo "$as_me:3257: checking for makeflags variable" >&5 -echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6 -if test "${cf_cv_makeflags+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_cv_makeflags='' - for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)' - do - cat >cf_makeflags.tmp </dev/null` - case "$cf_result" in - .*k) - cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null` - case "$cf_result" in - .*CC=*) cf_cv_makeflags= - ;; - *) cf_cv_makeflags=$cf_option - ;; - esac - break - ;; - *) echo no match "$cf_result" - ;; - esac - done - rm -f cf_makeflags.tmp - -fi -echo "$as_me:3290: result: $cf_cv_makeflags" >&5 -echo "${ECHO_T}$cf_cv_makeflags" >&6 - -echo "$as_me:3293: checking if you have specified an install-prefix" >&5 -echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6 - -# Check whether --with-install-prefix or --without-install-prefix was given. -if test "${with_install_prefix+set}" = set; then - withval="$with_install_prefix" - case "$withval" in #(vi - yes|no) #(vi - ;; - *) DESTDIR="$withval" - ;; - esac -fi; -echo "$as_me:3306: result: $DESTDIR" >&5 -echo "${ECHO_T}$DESTDIR" >&6 - -############################################################################### - -# If we're cross-compiling, allow the user to override the tools and their -# options. The configure script is oriented toward identifying the host -# compiler, etc., but we need a build compiler to generate parts of the source. - -if test "$cross_compiling" = yes ; then - # defaults that we might want to override - : ${BUILD_CC=`echo '$(CC)'`} - : ${BUILD_CPP=`echo '$(CC) -E'`} - : ${BUILD_CFLAGS=} - : ${BUILD_CPPFLAGS=`echo ''`} - : ${BUILD_LDFLAGS=} - : ${BUILD_LIBS=`echo ''`} - : ${BUILD_EXEEXT=`echo '$x'`} - : ${BUILD_OBJEXT=`echo 'o'`} - -# Check whether --with-build-cc or --without-build-cc was given. -if test "${with_build_cc+set}" = set; then - withval="$with_build_cc" - BUILD_CC="$withval" -else - for ac_prog in $CC gcc cc -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:3335: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_BUILD_CC+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$BUILD_CC"; then - ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_BUILD_CC="$ac_prog" -echo "$as_me:3350: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -BUILD_CC=$ac_cv_prog_BUILD_CC -if test -n "$BUILD_CC"; then - echo "$as_me:3358: result: $BUILD_CC" >&5 -echo "${ECHO_T}$BUILD_CC" >&6 -else - echo "$as_me:3361: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$BUILD_CC" && break -done - -fi; - -# Check whether --with-build-cpp or --without-build-cpp was given. -if test "${with_build_cpp+set}" = set; then - withval="$with_build_cpp" - BUILD_CPP="$withval" -else - BUILD_CPP='$(CC) -E' -fi; - -# Check whether --with-build-cflags or --without-build-cflags was given. -if test "${with_build_cflags+set}" = set; then - withval="$with_build_cflags" - BUILD_CFLAGS="$withval" -fi; - -# Check whether --with-build-cppflags or --without-build-cppflags was given. -if test "${with_build_cppflags+set}" = set; then - withval="$with_build_cppflags" - BUILD_CPPFLAGS="$withval" -fi; - -# Check whether --with-build-ldflags or --without-build-ldflags was given. -if test "${with_build_ldflags+set}" = set; then - withval="$with_build_ldflags" - BUILD_LDFLAGS="$withval" -fi; - -# Check whether --with-build-libs or --without-build-libs was given. -if test "${with_build_libs+set}" = set; then - withval="$with_build_libs" - BUILD_LIBS="$withval" -fi; - # this assumes we're on Unix. - BUILD_EXEEXT= - BUILD_OBJEXT=o -else - : ${BUILD_CC=`echo '$(CC)'`} - : ${BUILD_CPP=`echo '$(CPP)'`} - : ${BUILD_CFLAGS=`echo '$(CFLAGS)'`} - : ${BUILD_CPPFLAGS=`echo '$(CPPFLAGS)'`} - : ${BUILD_LDFLAGS=`echo '$(LDFLAGS)'`} - : ${BUILD_LIBS=`echo '$(LIBS)'`} - : ${BUILD_EXEEXT=`echo '$x'`} - : ${BUILD_OBJEXT=`echo 'o'`} -fi - -############################################################################### - -### Options to allow the user to specify the set of libraries which are used. -### Use "--without-normal --with-shared" to allow the default model to be -### shared, for example. -cf_list_models="" - -LIBTOOL= - -# common library maintenance symbols that are convenient for libtool scripts: -LIB_CREATE='$(AR) -cr' -LIB_OBJECT='$(OBJECTS)' -LIB_SUFFIX=.a -LIB_PREP="$RANLIB" - -# symbols used to prop libtool up to enable it to determine what it should be -# doing: -LIB_CLEAN= -LIB_COMPILE= -LIB_LINK= -LIB_INSTALL= -LIB_UNINSTALL= - -echo "$as_me:3438: checking if you want to build libraries with libtool" >&5 -echo $ECHO_N "checking if you want to build libraries with libtool... $ECHO_C" >&6 - -# Check whether --with-libtool or --without-libtool was given. -if test "${with_libtool+set}" = set; then - withval="$with_libtool" - with_libtool=$withval -else - with_libtool=no -fi; -echo "$as_me:3448: result: $with_libtool" >&5 -echo "${ECHO_T}$with_libtool" >&6 -if test "$with_libtool" != "no"; then - - if test "$with_libtool" != "yes" ; then - -case ".$with_libtool" in #(vi -.\$\(*\)*|.\'*\'*) #(vi - ;; -..|./*|.\\*) #(vi - ;; -.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX - ;; -.\${*prefix}*) #(vi - eval with_libtool="$with_libtool" - case ".$with_libtool" in #(vi - .NONE/*) - with_libtool=`echo $with_libtool | sed -e s%NONE%$ac_default_prefix%` - ;; - esac - ;; #(vi -.NONE/*) - with_libtool=`echo $with_libtool | sed -e s%NONE%$ac_default_prefix%` - ;; -*) - { { echo "$as_me:3473: error: expected a pathname, not \"$with_libtool\"" >&5 -echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - - LIBTOOL=$with_libtool - else - # Extract the first word of "libtool", so it can be a program name with args. -set dummy libtool; ac_word=$2 -echo "$as_me:3483: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_LIBTOOL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $LIBTOOL in - [\\/]* | ?:[\\/]*) - ac_cv_path_LIBTOOL="$LIBTOOL" # Let the user override the test with a path. - ;; - *) - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - if $as_executable_p "$ac_dir/$ac_word"; then - ac_cv_path_LIBTOOL="$ac_dir/$ac_word" - echo "$as_me:3500: found $ac_dir/$ac_word" >&5 - break -fi -done - - ;; -esac -fi -LIBTOOL=$ac_cv_path_LIBTOOL - -if test -n "$LIBTOOL"; then - echo "$as_me:3511: result: $LIBTOOL" >&5 -echo "${ECHO_T}$LIBTOOL" >&6 -else - echo "$as_me:3514: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - fi - if test -z "$LIBTOOL" ; then - { { echo "$as_me:3520: error: Cannot find libtool" >&5 -echo "$as_me: error: Cannot find libtool" >&2;} - { (exit 1); exit 1; }; } - fi - LIB_CREATE='$(LIBTOOL) --mode=link $(CC) -rpath $(DESTDIR)$(libdir) -version-info `cut -f1 $(srcdir)/VERSION` -o' - LIB_OBJECT='$(OBJECTS:.o=.lo)' - LIB_SUFFIX=.la - LIB_CLEAN='$(LIBTOOL) --mode=clean' - LIB_COMPILE='$(LIBTOOL) --mode=compile' - LIB_LINK='$(LIBTOOL) --mode=link' - LIB_INSTALL='$(LIBTOOL) --mode=install' - LIB_UNINSTALL='$(LIBTOOL) --mode=uninstall' - LIB_PREP=: - - # Show the version of libtool - echo "$as_me:3535: checking version of libtool" >&5 -echo $ECHO_N "checking version of libtool... $ECHO_C" >&6 - - # Save the version in a cache variable - this is not entirely a good - # thing, but the version string from libtool is very ugly, and for - # bug reports it might be useful to have the original string. - cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'` - echo "$as_me:3542: result: $cf_cv_libtool_version" >&5 -echo "${ECHO_T}$cf_cv_libtool_version" >&6 - if test -z "$cf_cv_libtool_version" ; then - { { echo "$as_me:3545: error: This is not libtool" >&5 -echo "$as_me: error: This is not libtool" >&2;} - { (exit 1); exit 1; }; } - fi - - # special hack to add --tag option for C++ compiler - case $cf_cv_libtool_version in - 1.[5-9]*|[2-9]*) - LIBTOOL_CXX="$LIBTOOL --tag=CXX" - ;; - *) - LIBTOOL_CXX="$LIBTOOL" - ;; - esac -else - LIBTOOL="" - LIBTOOL_CXX="" -fi - -test -z "$LIBTOOL" && ECHO_LT= - -if test "$with_libtool" != "no" ; then - -cf_list_models="$cf_list_models libtool" - -else - -echo "$as_me:3572: checking if you want to build shared libraries" >&5 -echo $ECHO_N "checking if you want to build shared libraries... $ECHO_C" >&6 - -# Check whether --with-shared or --without-shared was given. -if test "${with_shared+set}" = set; then - withval="$with_shared" - with_shared=$withval -else - with_shared=no -fi; -echo "$as_me:3582: result: $with_shared" >&5 -echo "${ECHO_T}$with_shared" >&6 -test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared" - -echo "$as_me:3586: checking if you want to build static libraries" >&5 -echo $ECHO_N "checking if you want to build static libraries... $ECHO_C" >&6 - -# Check whether --with-normal or --without-normal was given. -if test "${with_normal+set}" = set; then - withval="$with_normal" - with_normal=$withval -else - with_normal=yes -fi; -echo "$as_me:3596: result: $with_normal" >&5 -echo "${ECHO_T}$with_normal" >&6 -test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal" - -echo "$as_me:3600: checking if you want to build debug libraries" >&5 -echo $ECHO_N "checking if you want to build debug libraries... $ECHO_C" >&6 - -# Check whether --with-debug or --without-debug was given. -if test "${with_debug+set}" = set; then - withval="$with_debug" - with_debug=$withval -else - with_debug=no -fi; -echo "$as_me:3610: result: $with_debug" >&5 -echo "${ECHO_T}$with_debug" >&6 -test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug" - -echo "$as_me:3614: checking if you want to build profiling libraries" >&5 -echo $ECHO_N "checking if you want to build profiling libraries... $ECHO_C" >&6 - -# Check whether --with-profile or --without-profile was given. -if test "${with_profile+set}" = set; then - withval="$with_profile" - with_profile=$withval -else - with_profile=no -fi; -echo "$as_me:3624: result: $with_profile" >&5 -echo "${ECHO_T}$with_profile" >&6 -test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile" - -fi - -############################################################################### - -echo "$as_me:3632: checking for specified models" >&5 -echo $ECHO_N "checking for specified models... $ECHO_C" >&6 -test -z "$cf_list_models" && cf_list_models=normal -test "$with_libtool" != "no" && cf_list_models=libtool -echo "$as_me:3636: result: $cf_list_models" >&5 -echo "${ECHO_T}$cf_list_models" >&6 - -### Use the first model as the default, and save its suffix for use in building -### up test-applications. -echo "$as_me:3641: checking for default model" >&5 -echo $ECHO_N "checking for default model... $ECHO_C" >&6 -DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'` -echo "$as_me:3644: result: $DFT_LWR_MODEL" >&5 -echo "${ECHO_T}$DFT_LWR_MODEL" >&6 - -DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - -TINFO_NAME=tinfo - -LIB_NAME=ncurses - -LIB_DIR=../lib - - case $cf_cv_system_name in - OS/2*) LIB_PREFIX='' ;; - os2*) LIB_PREFIX='' ;; - *) LIB_PREFIX='lib' ;; - esac -cf_prefix=$LIB_PREFIX - -LIB_PREFIX=$cf_prefix - -LIB_SUFFIX= - -############################################################################### - -echo "$as_me:3668: checking if you want to build a separate terminfo library" >&5 -echo $ECHO_N "checking if you want to build a separate terminfo library... $ECHO_C" >&6 - -# Check whether --with-termlib or --without-termlib was given. -if test "${with_termlib+set}" = set; then - withval="$with_termlib" - with_termlib=$withval -else - with_termlib=no -fi; -echo "$as_me:3678: result: $with_termlib" >&5 -echo "${ECHO_T}$with_termlib" >&6 - -### Checks for special libraries, must be done up-front. - -echo "$as_me:3683: checking if you want to link with dbmalloc for testing" >&5 -echo $ECHO_N "checking if you want to link with dbmalloc for testing... $ECHO_C" >&6 - -# Check whether --with-dbmalloc or --without-dbmalloc was given. -if test "${with_dbmalloc+set}" = set; then - withval="$with_dbmalloc" - with_dbmalloc=$withval -else - with_dbmalloc=no -fi; -echo "$as_me:3693: result: $with_dbmalloc" >&5 -echo "${ECHO_T}$with_dbmalloc" >&6 -if test "$with_dbmalloc" = yes ; then - echo "$as_me:3696: checking for dbmalloc.h" >&5 -echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6 -if test "${ac_cv_header_dbmalloc_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 3702 "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:3706: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:3712: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_dbmalloc_h=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_dbmalloc_h=no -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:3731: result: $ac_cv_header_dbmalloc_h" >&5 -echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6 -if test $ac_cv_header_dbmalloc_h = yes; then - -echo "$as_me:3735: checking for debug_malloc in -ldbmalloc" >&5 -echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6 -if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldbmalloc $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line 3743 "configure" -#include "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 debug_malloc (); -int -main () -{ -debug_malloc (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:3762: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:3765: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:3768: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:3771: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dbmalloc_debug_malloc=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_dbmalloc_debug_malloc=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:3782: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5 -echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6 -if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then - cat >>confdefs.h <&5 -echo $ECHO_N "checking if you want to link with dmalloc for testing... $ECHO_C" >&6 - -# Check whether --with-dmalloc or --without-dmalloc was given. -if test "${with_dmalloc+set}" = set; then - withval="$with_dmalloc" - with_dmalloc=$withval -else - with_dmalloc=no -fi; -echo "$as_me:3807: result: $with_dmalloc" >&5 -echo "${ECHO_T}$with_dmalloc" >&6 -if test "$with_dmalloc" = yes ; then - echo "$as_me:3810: checking for dmalloc.h" >&5 -echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6 -if test "${ac_cv_header_dmalloc_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 3816 "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:3820: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:3826: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_dmalloc_h=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_dmalloc_h=no -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:3845: result: $ac_cv_header_dmalloc_h" >&5 -echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6 -if test $ac_cv_header_dmalloc_h = yes; then - -echo "$as_me:3849: checking for dmalloc_debug in -ldmalloc" >&5 -echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6 -if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldmalloc $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line 3857 "configure" -#include "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 dmalloc_debug (); -int -main () -{ -dmalloc_debug (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:3876: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:3879: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:3882: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:3885: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dmalloc_dmalloc_debug=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_dmalloc_dmalloc_debug=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:3896: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5 -echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6 -if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then - cat >>confdefs.h <&5 -echo $ECHO_N "checking if you want to link with the GPM mouse library... $ECHO_C" >&6 - -# Check whether --with-gpm or --without-gpm was given. -if test "${with_gpm+set}" = set; then - withval="$with_gpm" - with_gpm=$withval -else - with_gpm=maybe -fi; -echo "$as_me:3922: result: $with_gpm" >&5 -echo "${ECHO_T}$with_gpm" >&6 -if test "$with_gpm" != no ; then - echo "$as_me:3925: checking for Gpm_Open in -lgpm" >&5 -echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6 -if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgpm $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line 3933 "configure" -#include "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 Gpm_Open (); -int -main () -{ -Gpm_Open (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:3952: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:3955: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:3958: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:3961: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_gpm_Gpm_Open=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_gpm_Gpm_Open=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:3972: result: $ac_cv_lib_gpm_Gpm_Open" >&5 -echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6 -if test $ac_cv_lib_gpm_Gpm_Open = yes; then - - echo "$as_me:3976: checking for gpm.h" >&5 -echo $ECHO_N "checking for gpm.h... $ECHO_C" >&6 -if test "${ac_cv_header_gpm_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 3982 "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:3986: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:3992: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_gpm_h=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_gpm_h=no -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:4011: result: $ac_cv_header_gpm_h" >&5 -echo "${ECHO_T}$ac_cv_header_gpm_h" >&6 -if test $ac_cv_header_gpm_h = yes; then - - cat >>confdefs.h <<\EOF -#define HAVE_GPM_H 1 -EOF - - with_gpm=yes - -else - - if test "$with_gpm" = yes ; then - { { echo "$as_me:4024: error: Cannot find GPM header" >&5 -echo "$as_me: error: Cannot find GPM header" >&2;} - { (exit 1); exit 1; }; } - fi - -fi - -else - - if test "$with_gpm" = yes ; then - { { echo "$as_me:4034: error: Cannot link with GPM library" >&5 -echo "$as_me: error: Cannot link with GPM library" >&2;} - { (exit 1); exit 1; }; } - fi - with_gpm=no - -fi - - if test "$with_gpm" = yes ; then - -cf_have_dlsym=no -echo "$as_me:4045: checking for dlsym" >&5 -echo $ECHO_N "checking for dlsym... $ECHO_C" >&6 -if test "${ac_cv_func_dlsym+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 4051 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char dlsym (); below. */ -#include -/* 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 dlsym (); -char (*f) (); - -int -main () -{ -/* 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_dlsym) || defined (__stub___dlsym) -choke me -#else -f = dlsym; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4082: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:4085: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4088: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4091: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_dlsym=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_dlsym=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:4101: result: $ac_cv_func_dlsym" >&5 -echo "${ECHO_T}$ac_cv_func_dlsym" >&6 -if test $ac_cv_func_dlsym = yes; then - cf_have_dlsym=yes -else - -cf_have_libdl=no -echo "$as_me:4108: checking for dlsym in -ldl" >&5 -echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6 -if test "${ac_cv_lib_dl_dlsym+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 -#line 4116 "configure" -#include "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 dlsym (); -int -main () -{ -dlsym (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4135: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:4138: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4141: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4144: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dl_dlsym=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_dl_dlsym=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:4155: result: $ac_cv_lib_dl_dlsym" >&5 -echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6 -if test $ac_cv_lib_dl_dlsym = yes; then - - cf_have_dlsym=yes - cf_have_libdl=yes -fi - -fi - -if test "$cf_have_dlsym" = yes ; then - test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS" - - echo "$as_me:4168: checking whether able to link to dl*() functions" >&5 -echo $ECHO_N "checking whether able to link to dl*() functions... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -#line 4171 "configure" -#include "confdefs.h" -#include -int -main () -{ - - void *obj; - if ((obj = dlopen("filename", 0)) != 0) { - if (dlsym(obj, "symbolname") == 0) { - dlclose(obj); - } - } - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4189: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:4192: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4195: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4198: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - - cat >>confdefs.h <<\EOF -#define HAVE_LIBDL 1 -EOF - -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 - - { { echo "$as_me:4209: error: Cannot link test program for libdl" >&5 -echo "$as_me: error: Cannot link test program for libdl" >&2;} - { (exit 1); exit 1; }; } -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - echo "$as_me:4214: result: ok" >&5 -echo "${ECHO_T}ok" >&6 -else - { { echo "$as_me:4217: error: Cannot find dlsym function" >&5 -echo "$as_me: error: Cannot find dlsym function" >&2;} - { (exit 1); exit 1; }; } -fi - - EXTRA_LIBS="-ldl -lncurses $EXTRA_LIBS" - SHLIB_LIST="-ldl $SHLIB_LIST" - cat >>confdefs.h <<\EOF -#define HAVE_LIBGPM 1 -EOF - - echo "$as_me:4228: checking for Gpm_Wgetch in -lgpm" >&5 -echo $ECHO_N "checking for Gpm_Wgetch in -lgpm... $ECHO_C" >&6 -if test "${ac_cv_lib_gpm_Gpm_Wgetch+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lgpm $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line 4236 "configure" -#include "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 Gpm_Wgetch (); -int -main () -{ -Gpm_Wgetch (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4255: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:4258: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4261: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4264: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_gpm_Gpm_Wgetch=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_gpm_Gpm_Wgetch=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:4275: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5 -echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Wgetch" >&6 -if test $ac_cv_lib_gpm_Gpm_Wgetch = yes; then - - { echo "$as_me:4279: WARNING: GPM library is already linked with curses - read the FAQ" >&5 -echo "$as_me: WARNING: GPM library is already linked with curses - read the FAQ" >&2;} - -fi - - fi -fi - -# not everyone has "test -c" -if test -c /dev/sysmouse 2>/dev/null ; then -echo "$as_me:4289: checking if you want to use sysmouse" >&5 -echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6 - -# Check whether --with-sysmouse or --without-sysmouse was given. -if test "${with_sysmouse+set}" = set; then - withval="$with_sysmouse" - cf_with_sysmouse=$withval -else - cf_with_sysmouse=maybe -fi; - if test "$cf_with_sysmouse" != no ; then - cat >conftest.$ac_ext <<_ACEOF -#line 4301 "configure" -#include "confdefs.h" - -#include -#if (__FreeBSD_version >= 400017) -#include -#include -#else -#include -#endif - -int -main () -{ - - struct mouse_info the_mouse; - ioctl(0, CONS_MOUSECTL, &the_mouse); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:4324: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4327: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:4330: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4333: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_with_sysmouse=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_with_sysmouse=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - fi -echo "$as_me:4343: result: $cf_with_sysmouse" >&5 -echo "${ECHO_T}$cf_with_sysmouse" >&6 -test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF -#define USE_SYSMOUSE 1 -EOF - -fi - -if test X"$CC_G_OPT" = X"" ; then - CC_G_OPT='-g' - test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT='' -fi - -if test X"$CXX_G_OPT" = X"" ; then - CXX_G_OPT='-g' - test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT='' -fi - -echo "$as_me:4361: checking for default loader flags" >&5 -echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6 -case $DFT_LWR_MODEL in -libtool) LD_MODEL='' ;; -normal) LD_MODEL='' ;; -debug) LD_MODEL=$CC_G_OPT ;; -profile) LD_MODEL='-pg';; -shared) LD_MODEL='' ;; -esac -echo "$as_me:4370: result: $LD_MODEL" >&5 -echo "${ECHO_T}$LD_MODEL" >&6 - -echo "$as_me:4373: checking if rpath option should be used" >&5 -echo $ECHO_N "checking if rpath option should be used... $ECHO_C" >&6 - -# Check whether --enable-rpath or --disable-rpath was given. -if test "${enable_rpath+set}" = set; then - enableval="$enable_rpath" - cf_cv_ld_rpath=$enableval -else - cf_cv_ld_rpath=no -fi; -echo "$as_me:4383: result: $cf_cv_ld_rpath" >&5 -echo "${ECHO_T}$cf_cv_ld_rpath" >&6 - - LOCAL_LDFLAGS= - LOCAL_LDFLAGS2= - LD_SHARED_OPTS= - INSTALL_LIB="-m 644" - - cf_cv_do_symlinks=no - - echo "$as_me:4393: checking if release/abi version should be used for shared libs" >&5 -echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6 - -# Check whether --with-shlib-version or --without-shlib-version was given. -if test "${with_shlib_version+set}" = set; then - withval="$with_shlib_version" - test -z "$withval" && withval=auto - case $withval in #(vi - yes) #(vi - cf_cv_shlib_version=auto - ;; - rel|abi|auto|no) #(vi - cf_cv_shlib_version=$withval - ;; - *) - { { echo "$as_me:4408: error: option value must be one of: rel, abi, auto or no" >&5 -echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;} - { (exit 1); exit 1; }; } - ;; - esac - -else - cf_cv_shlib_version=auto -fi; - echo "$as_me:4417: result: $cf_cv_shlib_version" >&5 -echo "${ECHO_T}$cf_cv_shlib_version" >&6 - - cf_cv_rm_so_locs=no - - # Some less-capable ports of gcc support only -fpic - CC_SHARED_OPTS= - if test "$GCC" = yes - then - echo "$as_me:4426: checking which $CC option to use" >&5 -echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6 - cf_save_CFLAGS="$CFLAGS" - for CC_SHARED_OPTS in -fPIC -fpic '' - do - CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS" - cat >conftest.$ac_ext <<_ACEOF -#line 4433 "configure" -#include "confdefs.h" -#include -int -main () -{ -int x = 1 - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:4445: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:4448: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:4451: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4454: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext - done - echo "$as_me:4463: result: $CC_SHARED_OPTS" >&5 -echo "${ECHO_T}$CC_SHARED_OPTS" >&6 - CFLAGS="$cf_save_CFLAGS" - fi - - cf_cv_shlib_version_infix=no - - case $cf_cv_system_name in - beos*) - MK_SHARED_LIB='$(CC) -o $@ -Xlinker -soname=`basename $@` -nostart -e 0' - ;; - cygwin*) - CC_SHARED_OPTS= - MK_SHARED_LIB='$(CC) -shared -Wl,--out-implib=$(IMPORT_LIB) -Wl,--export-all-symbols -o $(SHARED_LIB)' - cf_cv_shlib_version=cygdll - cf_cv_shlib_version_infix=cygdll - ;; - darwin*) - EXTRA_CFLAGS="-no-cpp-precomp" - CC_SHARED_OPTS="-dynamic" - MK_SHARED_LIB='$(CC) -dynamiclib -install_name $(DESTDIR)$(libdir)/`basename $@` -compatibility_version $(ABI_VERSION) -current_version $(ABI_VERSION) -o $@' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=abi - cf_cv_shlib_version_infix=yes - ;; - hpux*) - # (tested with gcc 2.7.2 -- I don't have c89) - if test "$GCC" = yes; then - LD_SHARED_OPTS='-Xlinker +b -Xlinker $(libdir)' - else - CC_SHARED_OPTS='+Z' - LD_SHARED_OPTS='-Wl,+b,$(libdir)' - fi - MK_SHARED_LIB='$(LD) +b $(libdir) -b -o $@' - # HP-UX shared libraries must be executable, and should be - # readonly to exploit a quirk in the memory manager. - INSTALL_LIB="-m 555" - ;; - irix*) - if test "$cf_cv_ld_rpath" = yes ; then - cf_ld_rpath_opt="-Wl,-rpath," - EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS" - fi - # tested with IRIX 5.2 and 'cc'. - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='$(LD) -shared -rdata_shared -soname `basename $@` -o $@' - cf_cv_rm_so_locs=yes - ;; - linux*|gnu*|k*bsd*-gnu) - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_ld_rpath" = yes ; then - cf_ld_rpath_opt="-Wl,-rpath," - EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS" - fi - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $@ .$(REL_VERSION)`.$(ABI_VERSION),-stats,-lc -o $@' - ;; - openbsd2*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - MK_SHARED_LIB='$(LD) -Bshareable -soname,`basename $@.$(ABI_VERSION)` -o $@' - ;; - freebsd[45]*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - MK_SHARED_LIB='$(LD) -Bshareable -soname=`basename $@` -o $@' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - -# This doesn't work - I keep getting spurious references to needing -# libncurses.so.5.3 when ldd says it's resolved. LOCAL_LDFLAGS2 seems to be -# no longer used anyway. And the rpath logic isn't relative - so I have to -# add the local and install lib-directories: -# -# if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then -# LOCAL_LDFLAGS="-rpath `pwd`/lib" -# LOCAL_LDFLAGS2="-rpath \$(libdir) $LOCAL_LDFLAGS" -# cf_ld_rpath_opt="-rpath " -# EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS" -# fi - ;; - openbsd*|freebsd*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - MK_SHARED_LIB='$(LD) -Bshareable -o $@' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - ;; - netbsd*) - CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC" - test "$cf_cv_ld_rpath" = yes && cf_ld_rpath_opt="-Wl,-rpath," - if test "$DFT_LWR_MODEL" = "shared" && test "$cf_cv_ld_rpath" = yes ; then - LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS" - MK_SHARED_LIB='$(CC) -shared -Wl,-soname,`basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@' - if test "$cf_cv_shlib_version" = auto; then - if test ! -f /usr/libexec/ld.elf_so; then - cf_cv_shlib_version=rel - fi - fi - else - MK_SHARED_LIB='$(LD) -Bshareable -o $@' - fi - ;; - osf*|mls+*) - # tested with OSF/1 V3.2 and 'cc' - # tested with OSF/1 V3.2 and gcc 2.6.3 (but the c++ demo didn't - # link with shared libs). - MK_SHARED_LIB='$(LD) -set_version $(REL_VERSION):$(ABI_VERSION) -expect_unresolved "*" -shared -soname `basename $@`' - case $host_os in - osf4*) - MK_SHARED_LIB="${MK_SHARED_LIB} -msym" - ;; - esac - MK_SHARED_LIB="${MK_SHARED_LIB}"' -o $@' - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-Wl,-rpath,`pwd`/lib" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_ld_rpath" = yes ; then - cf_ld_rpath_opt="-rpath" - # EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS" - fi - cf_cv_rm_so_locs=yes - ;; - sco3.2v5*) # (also uw2* and UW7) hops 13-Apr-98 - # tested with osr5.0.5 - if test "$GCC" != yes; then - CC_SHARED_OPTS='-belf -KPIC' - fi - MK_SHARED_LIB='$(LD) -dy -G -h `basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@' - if test "$cf_cv_ld_rpath" = yes ; then - # only way is to set LD_RUN_PATH but no switch for it - RUN_PATH=$libdir - fi - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - LINK_PROGS='LD_RUN_PATH=$(libdir)' - LINK_TESTS='Pwd=`pwd`;LD_RUN_PATH=`dirname $${Pwd}`/lib' - ;; - sunos4*) - # tested with SunOS 4.1.1 and gcc 2.7.0 - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='$(LD) -assert pure-text -o $@' - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - ;; - solaris2*) - # tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2 - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='$(LD) -dy -G -h `basename $@ .$(REL_VERSION)`.$(ABI_VERSION) -o $@' - if test "$DFT_LWR_MODEL" = "shared" ; then - LOCAL_LDFLAGS="-R `pwd`/lib:\$(libdir)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" - fi - if test "$cf_cv_ld_rpath" = yes ; then - cf_ld_rpath_opt="-R" - EXTRA_LDFLAGS="$LOCAL_LDFLAGS $EXTRA_LDFLAGS" - fi - test "$cf_cv_shlib_version" = auto && cf_cv_shlib_version=rel - ;; - sysv5uw7*|unix_sv*) - # tested with UnixWare 7.1.0 (gcc 2.95.2 and cc) - if test "$GCC" != yes; then - CC_SHARED_OPTS='-KPIC' - fi - MK_SHARED_LIB='$(LD) -d y -G -o $@' - ;; - *) - CC_SHARED_OPTS='unknown' - MK_SHARED_LIB='echo unknown' - ;; - esac - - # This works if the last tokens in $MK_SHARED_LIB are the -o target. - case "$cf_cv_shlib_version" in #(vi - rel|abi) - case "$MK_SHARED_LIB" in #(vi - *'-o $@') - test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes - ;; - *) - { echo "$as_me:4647: WARNING: ignored --with-shlib-version" >&5 -echo "$as_me: WARNING: ignored --with-shlib-version" >&2;} - ;; - esac - ;; - esac - - if test -n "$cf_ld_rpath_opt" ; then - echo "$as_me:4655: checking if we need a space after rpath option" >&5 -echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6 - cf_save_LIBS="$LIBS" - LIBS="$LIBS ${cf_ld_rpath_opt}$libdir" - cat >conftest.$ac_ext <<_ACEOF -#line 4660 "configure" -#include "confdefs.h" - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:4672: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:4675: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:4678: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4681: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_rpath_space=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_rpath_space=yes -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - LIBS="$cf_save_LIBS" - echo "$as_me:4691: result: $cf_rpath_space" >&5 -echo "${ECHO_T}$cf_rpath_space" >&6 - test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt " - MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)" - fi - -if test "$CC_SHARED_OPTS" = "unknown"; then - for model in $cf_list_models; do - if test "$model" = "shared"; then - { { echo "$as_me:4700: error: Shared libraries are not supported in this version" >&5 -echo "$as_me: error: Shared libraries are not supported in this version" >&2;} - { (exit 1); exit 1; }; } - fi - done -fi - -############################################################################### - -### use option --disable-overwrite to leave out the link to -lcurses -echo "$as_me:4710: checking if you wish to install ncurses overwriting curses" >&5 -echo $ECHO_N "checking if you wish to install ncurses overwriting curses... $ECHO_C" >&6 - -# Check whether --enable-overwrite or --disable-overwrite was given. -if test "${enable_overwrite+set}" = set; then - enableval="$enable_overwrite" - with_overwrite=$enableval -else - if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi -fi; -echo "$as_me:4720: result: $with_overwrite" >&5 -echo "${ECHO_T}$with_overwrite" >&6 - -echo "$as_me:4723: checking if external terminfo-database is used" >&5 -echo $ECHO_N "checking if external terminfo-database is used... $ECHO_C" >&6 - -# Check whether --enable-database or --disable-database was given. -if test "${enable_database+set}" = set; then - enableval="$enable_database" - use_database=$enableval -else - use_database=yes -fi; -echo "$as_me:4733: result: $use_database" >&5 -echo "${ECHO_T}$use_database" >&6 - -case $host_os in #(vi -os2*) #(vi - TERMINFO_SRC='${top_srcdir}/misc/emx.src' - ;; -*) #(vi - TERMINFO_SRC='${top_srcdir}/misc/terminfo.src' - ;; -esac - - case $cf_cv_system_name in - os2*) PATHSEP=';' ;; - *) PATHSEP=':' ;; - esac - -if test "$use_database" != no ; then - cat >>confdefs.h <<\EOF -#define USE_DATABASE 1 -EOF - - echo "$as_me:4755: checking which terminfo source-file will be installed" >&5 -echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6 - -# Check whether --enable-database or --disable-database was given. -if test "${enable_database+set}" = set; then - enableval="$enable_database" - TERMINFO_SRC=$withval -fi; - echo "$as_me:4763: result: $TERMINFO_SRC" >&5 -echo "${ECHO_T}$TERMINFO_SRC" >&6 -fi - -echo "$as_me:4767: checking for list of fallback descriptions" >&5 -echo $ECHO_N "checking for list of fallback descriptions... $ECHO_C" >&6 - -# Check whether --with-fallbacks or --without-fallbacks was given. -if test "${with_fallbacks+set}" = set; then - withval="$with_fallbacks" - with_fallback=$withval -else - with_fallback= -fi; -echo "$as_me:4777: result: $with_fallback" >&5 -echo "${ECHO_T}$with_fallback" >&6 -FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'` - -echo "$as_me:4781: checking if you want modern xterm or antique" >&5 -echo $ECHO_N "checking if you want modern xterm or antique... $ECHO_C" >&6 - -# Check whether --with-xterm-new or --without-xterm-new was given. -if test "${with_xterm_new+set}" = set; then - withval="$with_xterm_new" - with_xterm_new=$withval -else - with_xterm_new=yes -fi; -case $with_xterm_new in -no) with_xterm_new=xterm-old;; -*) with_xterm_new=xterm-new;; -esac -echo "$as_me:4795: result: $with_xterm_new" >&5 -echo "${ECHO_T}$with_xterm_new" >&6 -WHICH_XTERM=$with_xterm_new - -MAKE_TERMINFO= -if test "$use_database" = no ; then - TERMINFO="${datadir}/terminfo" - MAKE_TERMINFO="#" -else - -echo "$as_me:4805: checking for list of terminfo directories" >&5 -echo $ECHO_N "checking for list of terminfo directories... $ECHO_C" >&6 - -# Check whether --with-terminfo-dirs or --without-terminfo-dirs was given. -if test "${with_terminfo_dirs+set}" = set; then - withval="$with_terminfo_dirs" - -else - withval=${TERMINFO_DIRS-${datadir}/terminfo} -fi; -IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}" -cf_dst_path= -for cf_src_path in $withval -do - -case ".$cf_src_path" in #(vi -.\$\(*\)*|.\'*\'*) #(vi - ;; -..|./*|.\\*) #(vi - ;; -.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX - ;; -.\${*prefix}*) #(vi - eval cf_src_path="$cf_src_path" - case ".$cf_src_path" in #(vi - .NONE/*) - cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%` - ;; - esac - ;; #(vi -.NONE/*) - cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%` - ;; -*) - { { echo "$as_me:4839: error: expected a pathname, not \"$cf_src_path\"" >&5 -echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - - test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:" - cf_dst_path="${cf_dst_path}${cf_src_path}" -done -IFS="$ac_save_ifs" - -eval 'TERMINFO_DIRS="$cf_dst_path"' - -echo "$as_me:4852: result: $TERMINFO_DIRS" >&5 -echo "${ECHO_T}$TERMINFO_DIRS" >&6 -test -n "$TERMINFO_DIRS" && cat >>confdefs.h <&5 -echo $ECHO_N "checking for default terminfo directory... $ECHO_C" >&6 - -# Check whether --with-default-terminfo-dir or --without-default-terminfo-dir was given. -if test "${with_default_terminfo_dir+set}" = set; then - withval="$with_default_terminfo_dir" - -else - withval="${TERMINFO-${datadir}/terminfo}" -fi; -case ".$withval" in #(vi -.\$\(*\)*|.\'*\'*) #(vi - ;; -..|./*|.\\*) #(vi - ;; -.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX - ;; -.\${*prefix}*) #(vi - eval withval="$withval" - case ".$withval" in #(vi - .NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` - ;; - esac - ;; #(vi -.NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` - ;; -*) - { { echo "$as_me:4887: error: expected a pathname, not \"$withval\"" >&5 -echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - -eval TERMINFO="$withval" - -echo "$as_me:4895: result: $TERMINFO" >&5 -echo "${ECHO_T}$TERMINFO" >&6 -cat >>confdefs.h <&5 -echo $ECHO_N "checking if big-core option selected... $ECHO_C" >&6 - -# Check whether --enable-big-core or --disable-big-core was given. -if test "${enable_big_core+set}" = set; then - enableval="$enable_big_core" - with_big_core=$enableval -else - if test "$cross_compiling" = yes; then - with_big_core=no -else - cat >conftest.$ac_ext <<_ACEOF -#line 4917 "configure" -#include "confdefs.h" - -#include -#include -int main() { - unsigned long n = 6000000L; - char *s = malloc(n); - if (s != 0) - s[0] = s[n-1] = 0; - exit(s == 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:4931: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:4934: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:4936: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:4939: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - with_big_core=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -with_big_core=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi; -echo "$as_me:4951: result: $with_big_core" >&5 -echo "${ECHO_T}$with_big_core" >&6 -test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF -#define HAVE_BIG_CORE 1 -EOF - -### use option --enable-termcap to compile in the termcap fallback support -echo "$as_me:4958: checking if you want termcap-fallback support" >&5 -echo $ECHO_N "checking if you want termcap-fallback support... $ECHO_C" >&6 - -# Check whether --enable-termcap or --disable-termcap was given. -if test "${enable_termcap+set}" = set; then - enableval="$enable_termcap" - with_termcap=$enableval -else - with_termcap=no -fi; -echo "$as_me:4968: result: $with_termcap" >&5 -echo "${ECHO_T}$with_termcap" >&6 - -if test "$with_termcap" != "yes" ; then - if test "$use_database" = no ; then - if test -z "$with_fallback" ; then - { { echo "$as_me:4974: error: You have disabled the database w/o specifying fallbacks" >&5 -echo "$as_me: error: You have disabled the database w/o specifying fallbacks" >&2;} - { (exit 1); exit 1; }; } - fi - fi - cat >>confdefs.h <<\EOF -#define PURE_TERMINFO 1 -EOF - -else - -cat >>confdefs.h <<\EOF -#define USE_TERMCAP 1 -EOF - -echo "$as_me:4989: checking for list of termcap files" >&5 -echo $ECHO_N "checking for list of termcap files... $ECHO_C" >&6 - -# Check whether --with-termpath or --without-termpath was given. -if test "${with_termpath+set}" = set; then - withval="$with_termpath" - -else - withval=${TERMPATH-/etc/termcap:/usr/share/misc/termcap} -fi; -IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${PATHSEP}" -cf_dst_path= -for cf_src_path in $withval -do - -case ".$cf_src_path" in #(vi -.\$\(*\)*|.\'*\'*) #(vi - ;; -..|./*|.\\*) #(vi - ;; -.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX - ;; -.\${*prefix}*) #(vi - eval cf_src_path="$cf_src_path" - case ".$cf_src_path" in #(vi - .NONE/*) - cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%` - ;; - esac - ;; #(vi -.NONE/*) - cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%` - ;; -*) - { { echo "$as_me:5023: error: expected a pathname, not \"$cf_src_path\"" >&5 -echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - - test -n "$cf_dst_path" && cf_dst_path="${cf_dst_path}:" - cf_dst_path="${cf_dst_path}${cf_src_path}" -done -IFS="$ac_save_ifs" - -eval 'TERMPATH="$cf_dst_path"' - -echo "$as_me:5036: result: $TERMPATH" >&5 -echo "${ECHO_T}$TERMPATH" >&6 -test -n "$TERMPATH" && cat >>confdefs.h <&5 -echo $ECHO_N "checking if fast termcap-loader is needed... $ECHO_C" >&6 - -# Check whether --enable-getcap or --disable-getcap was given. -if test "${enable_getcap+set}" = set; then - enableval="$enable_getcap" - with_getcap=$enableval -else - with_getcap=no -fi; -echo "$as_me:5053: result: $with_getcap" >&5 -echo "${ECHO_T}$with_getcap" >&6 -test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF -#define USE_GETCAP 1 -EOF - -echo "$as_me:5059: checking if translated termcaps will be cached in ~/.terminfo" >&5 -echo $ECHO_N "checking if translated termcaps will be cached in ~/.terminfo... $ECHO_C" >&6 - -# Check whether --enable-getcap-cache or --disable-getcap-cache was given. -if test "${enable_getcap_cache+set}" = set; then - enableval="$enable_getcap_cache" - with_getcap_cache=$enableval -else - with_getcap_cache=no -fi; -echo "$as_me:5069: result: $with_getcap_cache" >&5 -echo "${ECHO_T}$with_getcap_cache" >&6 -test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF -#define USE_GETCAP_CACHE 1 -EOF - -fi - -### Use option --disable-home-terminfo to completely remove ~/.terminfo -echo "$as_me:5078: checking if ~/.terminfo is wanted" >&5 -echo $ECHO_N "checking if ~/.terminfo is wanted... $ECHO_C" >&6 - -# Check whether --enable-home-terminfo or --disable-home-terminfo was given. -if test "${enable_home_terminfo+set}" = set; then - enableval="$enable_home_terminfo" - with_home_terminfo=$enableval -else - with_home_terminfo=yes -fi; -test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF -#define USE_HOME_TERMINFO 1 -EOF - -### Use option --enable-symlinks to make tic use symlinks, not hard links -### to reduce storage requirements for the terminfo database. - -for ac_func in \ - remove \ - unlink -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:5100: 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 -#line 5106 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* 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 (); -char (*f) (); - -int -main () -{ -/* 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 -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5137: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:5140: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:5143: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5146: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:5156: 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 <&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 -#line 5179 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* 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 (); -char (*f) (); - -int -main () -{ -/* 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 -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5210: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:5213: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:5216: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5219: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:5229: 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 <&5 -echo $ECHO_N "checking if link/symlink functions work... $ECHO_C" >&6 -if test "${cf_cv_link_funcs+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_cv_link_funcs= - for cf_func in link symlink ; do - if test "$cross_compiling" = yes; then - - eval 'ac_cv_func_'$cf_func'=error' -else - cat >conftest.$ac_ext <<_ACEOF -#line 5253 "configure" -#include "confdefs.h" - -#include -#include -#ifdef HAVE_UNISTD_H -#include -#endif -int main() -{ - int fail = 0; - char *src = "config.log"; - char *dst = "conftest.chk"; - struct stat src_sb; - struct stat dst_sb; - - stat(src, &src_sb); - fail = ($cf_func("config.log", "conftest.chk") < 0) - || (stat(dst, &dst_sb) < 0) - || (dst_sb.st_mtime != src_sb.st_mtime); -#ifdef HAVE_UNLINK - unlink(dst); -#else - remove(dst); -#endif - exit (fail); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:5283: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:5286: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:5288: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5291: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - - cf_cv_link_funcs="$cf_cv_link_funcs $cf_func" - eval 'ac_cv_func_'$cf_func'=yes' -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 - - eval 'ac_cv_func_'$cf_func'=no' -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - done - test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no - -fi -echo "$as_me:5309: result: $cf_cv_link_funcs" >&5 -echo "${ECHO_T}$cf_cv_link_funcs" >&6 - test "$ac_cv_func_link" = yes && cat >>confdefs.h <<\EOF -#define HAVE_LINK 1 -EOF - - test "$ac_cv_func_symlink" = yes && cat >>confdefs.h <<\EOF -#define HAVE_SYMLINK 1 -EOF - -fi - -with_links=no -with_symlinks=no - -if test "$ac_cv_func_link" != yes ; then - echo "$as_me:5325: checking if tic should use symbolic links" >&5 -echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6 - if test "$ac_cv_func_symlink" = yes ; then - with_symlinks=yes - else - with_symlinks=no - fi - echo "$as_me:5332: result: $with_symlinks" >&5 -echo "${ECHO_T}$with_symlinks" >&6 -elif test "$ac_cv_func_symlink" != yes ; then - echo "$as_me:5335: checking if tic should use hard links" >&5 -echo $ECHO_N "checking if tic should use hard links... $ECHO_C" >&6 - if test "$ac_cv_func_link" = yes ; then - with_links=yes - else - with_links=no - fi - echo "$as_me:5342: result: $with_links" >&5 -echo "${ECHO_T}$with_links" >&6 -else - echo "$as_me:5345: checking if tic should use symbolic links" >&5 -echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6 - -# Check whether --enable-symlinks or --disable-symlinks was given. -if test "${enable_symlinks+set}" = set; then - enableval="$enable_symlinks" - with_symlinks=$enableval -else - with_symlinks=no -fi; - echo "$as_me:5355: result: $with_symlinks" >&5 -echo "${ECHO_T}$with_symlinks" >&6 -fi - -test "$with_links" = yes && cat >>confdefs.h <<\EOF -#define USE_LINKS 1 -EOF - -test "$with_symlinks" = yes && cat >>confdefs.h <<\EOF -#define USE_SYMLINKS 1 -EOF - -### use option --enable-broken-linker to force on use of broken-linker support -echo "$as_me:5368: checking if you want broken-linker support code" >&5 -echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6 - -# Check whether --enable-broken_linker or --disable-broken_linker was given. -if test "${enable_broken_linker+set}" = set; then - enableval="$enable_broken_linker" - with_broken_linker=$enableval -else - with_broken_linker=${BROKEN_LINKER-no} -fi; -echo "$as_me:5378: result: $with_broken_linker" >&5 -echo "${ECHO_T}$with_broken_linker" >&6 - -BROKEN_LINKER=0 -if test "$with_broken_linker" = yes ; then - cat >>confdefs.h <<\EOF -#define BROKEN_LINKER 1 -EOF - - BROKEN_LINKER=1 -elif test "$DFT_LWR_MODEL" = shared ; then - case $cf_cv_system_name in #(vi - cygwin*) - cat >>confdefs.h <<\EOF -#define BROKEN_LINKER 1 -EOF - - BROKEN_LINKER=1 - test -n "$verbose" && echo " cygwin linker is broken anyway" 1>&6 - - ;; - esac -fi - -### use option --enable-widec to turn on use of wide-character support -NCURSES_CH_T=chtype -NCURSES_LIBUTF8=0 - -NEED_WCHAR_H=0 -NCURSES_MBSTATE_T=0 -NCURSES_WCHAR_T=0 -NCURSES_WINT_T=0 - -# Check to define _XOPEN_SOURCE "automatically" - -cf_XOPEN_SOURCE=500 -cf_POSIX_C_SOURCE=199506 - -case $host_os in #(vi -freebsd*) #(vi - # 5.x headers associate - # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112 - # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506 - cf_POSIX_C_SOURCE=200112 - cf_XOPEN_SOURCE=600 - CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - ;; -hpux*) #(vi - CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE" - ;; -irix6.*) #(vi - CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE" - ;; -linux*|gnu*) #(vi - -echo "$as_me:5433: checking if we must define _GNU_SOURCE" >&5 -echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6 -if test "${cf_cv_gnu_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -#line 5440 "configure" -#include "confdefs.h" -#include -int -main () -{ - -#ifndef _XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:5455: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5458: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5461: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5464: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_gnu_source=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" - cat >conftest.$ac_ext <<_ACEOF -#line 5473 "configure" -#include "confdefs.h" -#include -int -main () -{ - -#ifdef _XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:5488: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5491: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5494: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5497: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_gnu_source=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_gnu_source=yes -fi -rm -f conftest.$ac_objext conftest.$ac_ext - CPPFLAGS="$cf_save" - -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:5512: result: $cf_cv_gnu_source" >&5 -echo "${ECHO_T}$cf_cv_gnu_source" >&6 -test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE" - - ;; -mirbsd*) #(vi - # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks - ;; -netbsd*) #(vi - # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw - ;; -openbsd*) #(vi - # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw - ;; -osf[45]*) #(vi - CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE" - ;; -sco*) #(vi - # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer - ;; -solaris*) #(vi - CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__" - ;; -*) - echo "$as_me:5536: checking if we should define _XOPEN_SOURCE" >&5 -echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6 -if test "${cf_cv_xopen_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 5543 "configure" -#include "confdefs.h" -#include -int -main () -{ - -#ifndef _XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:5558: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5561: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5564: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5567: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_xopen_source=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - cat >conftest.$ac_ext <<_ACEOF -#line 5576 "configure" -#include "confdefs.h" -#include -int -main () -{ - -#ifdef _XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:5591: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5594: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5597: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5600: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_xopen_source=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_xopen_source=yes -fi -rm -f conftest.$ac_objext conftest.$ac_ext - CPPFLAGS="$cf_save" - -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:5615: result: $cf_cv_xopen_source" >&5 -echo "${ECHO_T}$cf_cv_xopen_source" >&6 -test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE" - - # FreeBSD 5.x headers demand this... - echo "$as_me:5620: checking if we should define _POSIX_C_SOURCE" >&5 -echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6 -if test "${cf_cv_xopen_source+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 5627 "configure" -#include "confdefs.h" -#include -int -main () -{ - -#ifndef _POSIX_C_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:5642: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5645: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5648: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5651: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_xopen_source=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_save="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" - cat >conftest.$ac_ext <<_ACEOF -#line 5660 "configure" -#include "confdefs.h" -#include -int -main () -{ - -#ifdef _POSIX_C_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:5675: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5678: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5681: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5684: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_xopen_source=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_xopen_source=yes -fi -rm -f conftest.$ac_objext conftest.$ac_ext - CPPFLAGS="$cf_save" - -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:5699: result: $cf_cv_xopen_source" >&5 -echo "${ECHO_T}$cf_cv_xopen_source" >&6 -test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE" - ;; -esac - -# Checks for CODESET support. - - echo "$as_me:5707: checking for nl_langinfo and CODESET" >&5 -echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6 -if test "${am_cv_langinfo_codeset+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 5713 "configure" -#include "confdefs.h" -#include -int -main () -{ -char* cs = nl_langinfo(CODESET); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5725: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:5728: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:5731: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5734: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - am_cv_langinfo_codeset=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -am_cv_langinfo_codeset=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - -fi -echo "$as_me:5745: result: $am_cv_langinfo_codeset" >&5 -echo "${ECHO_T}$am_cv_langinfo_codeset" >&6 - if test $am_cv_langinfo_codeset = yes; then - -cat >>confdefs.h <<\EOF -#define HAVE_LANGINFO_CODESET 1 -EOF - - fi - -# use these variables to work around a defect in gcc's fixincludes. -NCURSES_OK_WCHAR_T= -NCURSES_OK_WINT_T= - -echo "$as_me:5759: checking if you want wide-character code" >&5 -echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6 - -# Check whether --enable-widec or --disable-widec was given. -if test "${enable_widec+set}" = set; then - enableval="$enable_widec" - with_widec=$enableval -else - with_widec=no -fi; -echo "$as_me:5769: result: $with_widec" >&5 -echo "${ECHO_T}$with_widec" >&6 -if test "$with_widec" = yes ; then - LIB_SUFFIX="w${LIB_SUFFIX}" - cat >>confdefs.h <<\EOF -#define USE_WIDEC_SUPPORT 1 -EOF - -echo "$as_me:5777: checking if we must define _XOPEN_SOURCE" >&5 -echo $ECHO_N "checking if we must define _XOPEN_SOURCE... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line 5780 "configure" -#include "confdefs.h" -#include - -int -main () -{ - -#ifndef _XOPEN_SOURCE -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:5796: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5799: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5802: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5805: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_result=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_result=yes -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:5814: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - -if test "$cf_result" = yes ; then - CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500" -elif test "x500" != "x" ; then - echo "$as_me:5820: checking checking for compatible value versus 500" >&5 -echo $ECHO_N "checking checking for compatible value versus 500... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -#line 5823 "configure" -#include "confdefs.h" -#include - -int -main () -{ - -#if _XOPEN_SOURCE-500 < 0 -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:5839: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5842: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5845: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5848: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_result=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_result=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - echo "$as_me:5857: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - if test "$cf_result" = no ; then - # perhaps we can override it - try... - CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500" - fi -fi - -echo "$as_me:5865: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5 -echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line 5868 "configure" -#include "confdefs.h" -#include - -int -main () -{ - -#ifndef _XOPEN_SOURCE_EXTENDED -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:5884: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5887: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5890: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5893: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_result=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_result=yes -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:5902: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - -if test "$cf_result" = yes ; then - CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED" -elif test "x" != "x" ; then - echo "$as_me:5908: checking checking for compatible value versus " >&5 -echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -#line 5911 "configure" -#include "confdefs.h" -#include - -int -main () -{ - -#if _XOPEN_SOURCE_EXTENDED- < 0 -make an error -#endif - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:5927: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:5930: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:5933: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:5936: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_result=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_result=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - echo "$as_me:5945: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 - if test "$cf_result" = no ; then - # perhaps we can override it - try... - CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED=" - fi -fi - - # with_overwrite=no - NCURSES_CH_T=cchar_t - -for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:5959: 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 -#line 5965 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* 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 (); -char (*f) (); - -int -main () -{ -/* 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 -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:5996: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:5999: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:6002: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6005: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:6015: 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 <&5 -echo $ECHO_N "checking for putwc in libutf8... $ECHO_C" >&6 -if test "${cf_cv_libutf8+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_save_LIBS="$LIBS" - LIBS="-lutf8 $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line 6036 "configure" -#include "confdefs.h" - -#include -int -main () -{ -putwc(0,0); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:6049: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:6052: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:6055: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6058: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_libutf8=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_libutf8=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - LIBS="$cf_save_LIBS" - -fi -echo "$as_me:6070: result: $cf_cv_libutf8" >&5 -echo "${ECHO_T}$cf_cv_libutf8" >&6 - -if test "$cf_cv_libutf8" = yes ; then - cat >>confdefs.h <<\EOF -#define HAVE_LIBUTF8_H 1 -EOF - - LIBS="-lutf8 $LIBS" -fi - - if test "$cf_cv_libutf8" = yes ; then - NCURSES_LIBUTF8=1 - fi - fi - -# This is needed on Tru64 5.0 to declare mbstate_t -echo "$as_me:6087: checking if we must include wchar.h to declare mbstate_t" >&5 -echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6 -if test "${cf_cv_mbstate_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -#line 6094 "configure" -#include "confdefs.h" - -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#endif -int -main () -{ -mbstate_t state - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:6112: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:6115: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:6118: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6121: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_mbstate_t=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF -#line 6128 "configure" -#include "confdefs.h" - -#include -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#endif -int -main () -{ -mbstate_t value - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:6147: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:6150: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:6153: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6156: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_mbstate_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_mbstate_t=unknown -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:6168: result: $cf_cv_mbstate_t" >&5 -echo "${ECHO_T}$cf_cv_mbstate_t" >&6 - -if test "$cf_cv_mbstate_t" = yes ; then - cat >>confdefs.h <<\EOF -#define NEED_WCHAR_H 1 -EOF - - NEED_WCHAR_H=1 -fi - -# if we do not find mbstate_t in either place, use substitution to provide a fallback. -if test "$cf_cv_mbstate_t" = unknown ; then - NCURSES_MBSTATE_T=1 -fi - -# This is needed on Tru64 5.0 to declare wchar_t -echo "$as_me:6185: checking if we must include wchar.h to declare wchar_t" >&5 -echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6 -if test "${cf_cv_wchar_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -#line 6192 "configure" -#include "confdefs.h" - -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#endif -int -main () -{ -wchar_t state - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:6210: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:6213: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:6216: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6219: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_wchar_t=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF -#line 6226 "configure" -#include "confdefs.h" - -#include -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#endif -int -main () -{ -wchar_t value - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:6245: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:6248: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:6251: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6254: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_wchar_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_wchar_t=unknown -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:6266: result: $cf_cv_wchar_t" >&5 -echo "${ECHO_T}$cf_cv_wchar_t" >&6 - -if test "$cf_cv_wchar_t" = yes ; then - cat >>confdefs.h <<\EOF -#define NEED_WCHAR_H 1 -EOF - - NEED_WCHAR_H=1 -fi - -# if we do not find wchar_t in either place, use substitution to provide a fallback. -if test "$cf_cv_wchar_t" = unknown ; then - NCURSES_WCHAR_T=1 -fi - -# if we find wchar_t in either place, use substitution to provide a fallback. -if test "$cf_cv_wchar_t" != unknown ; then - NCURSES_OK_WCHAR_T=1 -fi - -# This is needed on Tru64 5.0 to declare wint_t -echo "$as_me:6288: checking if we must include wchar.h to declare wint_t" >&5 -echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6 -if test "${cf_cv_wint_t+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -#line 6295 "configure" -#include "confdefs.h" - -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#endif -int -main () -{ -wint_t state - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:6313: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:6316: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:6319: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6322: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_wint_t=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF -#line 6329 "configure" -#include "confdefs.h" - -#include -#include -#include -#include -#ifdef HAVE_LIBUTF8_H -#include -#endif -int -main () -{ -wint_t value - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:6348: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:6351: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:6354: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:6357: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_wint_t=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_wint_t=unknown -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:6369: result: $cf_cv_wint_t" >&5 -echo "${ECHO_T}$cf_cv_wint_t" >&6 - -if test "$cf_cv_wint_t" = yes ; then - cat >>confdefs.h <<\EOF -#define NEED_WCHAR_H 1 -EOF - - NEED_WCHAR_H=1 -fi - -# if we do not find wint_t in either place, use substitution to provide a fallback. -if test "$cf_cv_wint_t" = unknown ; then - NCURSES_WINT_T=1 -fi - -# if we find wint_t in either place, use substitution to provide a fallback. -if test "$cf_cv_wint_t" != unknown ; then - NCURSES_OK_WINT_T=1 -fi - -fi - -### use option --with-bool to override bool's type -echo "$as_me:6393: checking for type of bool" >&5 -echo $ECHO_N "checking for type of bool... $ECHO_C" >&6 - -# Check whether --with-bool or --without-bool was given. -if test "${with_bool+set}" = set; then - withval="$with_bool" - NCURSES_BOOL="$withval" -else - NCURSES_BOOL=auto -fi; -echo "$as_me:6403: result: $NCURSES_BOOL" >&5 -echo "${ECHO_T}$NCURSES_BOOL" >&6 - -echo "$as_me:6406: checking for alternate terminal capabilities file" >&5 -echo $ECHO_N "checking for alternate terminal capabilities file... $ECHO_C" >&6 - -# Check whether --with-caps or --without-caps was given. -if test "${with_caps+set}" = set; then - withval="$with_caps" - TERMINFO_CAPS=Caps.$withval -else - TERMINFO_CAPS=Caps -fi; -test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps -echo "$as_me:6417: result: $TERMINFO_CAPS" >&5 -echo "${ECHO_T}$TERMINFO_CAPS" >&6 - -### use option --with-ospeed to override ospeed's type -echo "$as_me:6421: checking for type of ospeed" >&5 -echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6 - -# Check whether --with-ospeed or --without-ospeed was given. -if test "${with_ospeed+set}" = set; then - withval="$with_ospeed" - NCURSES_OSPEED="$withval" -else - NCURSES_OSPEED=short -fi; -echo "$as_me:6431: result: $NCURSES_OSPEED" >&5 -echo "${ECHO_T}$NCURSES_OSPEED" >&6 - -### use option --enable-bsdpad to have tputs process BSD-style prefix padding -echo "$as_me:6435: checking if tputs should process BSD-style prefix padding" >&5 -echo $ECHO_N "checking if tputs should process BSD-style prefix padding... $ECHO_C" >&6 - -# Check whether --enable-bsdpad or --disable-bsdpad was given. -if test "${enable_bsdpad+set}" = set; then - enableval="$enable_bsdpad" - with_bsdpad=$enableval -else - with_bsdpad=no -fi; -echo "$as_me:6445: result: $with_bsdpad" >&5 -echo "${ECHO_T}$with_bsdpad" >&6 -test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF -#define BSD_TPUTS 1 -EOF - -### Enable compiling-in rcs id's -echo "$as_me:6452: checking if RCS identifiers should be compiled-in" >&5 -echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6 - -# Check whether --with-rcs-ids or --without-rcs-ids was given. -if test "${with_rcs_ids+set}" = set; then - withval="$with_rcs_ids" - with_rcs_ids=$withval -else - with_rcs_ids=no -fi; -echo "$as_me:6462: result: $with_rcs_ids" >&5 -echo "${ECHO_T}$with_rcs_ids" >&6 -test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF -#define USE_RCS_IDS 1 -EOF - -############################################################################### - -echo "$as_me:6470: checking format of man-pages" >&5 -echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6 - -# Check whether --with-manpage-format or --without-manpage-format was given. -if test "${with_manpage_format+set}" = set; then - withval="$with_manpage_format" - MANPAGE_FORMAT=$withval -else - MANPAGE_FORMAT=unknown -fi; - -test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown -MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'` - -cf_unknown= - -case $MANPAGE_FORMAT in -unknown) - if test -z "$MANPATH" ; then - MANPATH="/usr/man:/usr/share/man" - fi - - # look for the 'date' man-page (it's most likely to be installed!) - MANPAGE_FORMAT= - cf_preform=no - cf_catonly=yes - cf_example=date - - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}" - for cf_dir in $MANPATH; do - test -z "$cf_dir" && cf_dir=/usr/man - for cf_name in $cf_dir/man*/$cf_example.[01]* $cf_dir/cat*/$cf_example.[01]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example - do - cf_test=`echo $cf_name | sed -e 's/*//'` - if test "x$cf_test" = "x$cf_name" ; then - - case "$cf_name" in - *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";; - *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";; - *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";; - *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";; - esac - - case "$cf_name" in - $cf_dir/man*) - cf_catonly=no - ;; - $cf_dir/cat*) - cf_preform=yes - ;; - esac - break - fi - - # if we found a match in either man* or cat*, stop looking - if test -n "$MANPAGE_FORMAT" ; then - cf_found=no - test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted" - test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly" - case "$cf_name" in - $cf_dir/cat*) - cf_found=yes - ;; - esac - test $cf_found=yes && break - fi - done - # only check the first directory in $MANPATH where we find manpages - if test -n "$MANPAGE_FORMAT" ; then - break - fi - done - # if we did not find the example, just assume it is normal - test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal - IFS="$ac_save_ifs" - ;; -*) - for cf_option in $MANPAGE_FORMAT; do - case $cf_option in #(vi - gzip|compress|BSDI|normal|formatted|catonly) - ;; - *) - cf_unknown="$cf_unknown $cf_option" - ;; - esac - done - ;; -esac - -echo "$as_me:6559: result: $MANPAGE_FORMAT" >&5 -echo "${ECHO_T}$MANPAGE_FORMAT" >&6 -if test -n "$cf_unknown" ; then - { echo "$as_me:6562: WARNING: Unexpected manpage-format $cf_unknown" >&5 -echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;} -fi - -echo "$as_me:6566: checking for manpage renaming" >&5 -echo $ECHO_N "checking for manpage renaming... $ECHO_C" >&6 - -# Check whether --with-manpage-renames or --without-manpage-renames was given. -if test "${with_manpage_renames+set}" = set; then - withval="$with_manpage_renames" - MANPAGE_RENAMES=$withval -else - MANPAGE_RENAMES=yes -fi; - -case ".$MANPAGE_RENAMES" in #(vi -.no) #(vi - ;; -.|.yes) - # Debian 'man' program? - if test -f /etc/debian_version ; then - MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames - else - MANPAGE_RENAMES=no - fi - ;; -esac - -if test "$MANPAGE_RENAMES" != no ; then - if test -f $srcdir/man/$MANPAGE_RENAMES ; then - MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES - elif test ! -f $MANPAGE_RENAMES ; then - { { echo "$as_me:6594: error: not a filename: $MANPAGE_RENAMES" >&5 -echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;} - { (exit 1); exit 1; }; } - fi - - test ! -d man && mkdir man - - # Construct a sed-script to perform renaming within man-pages - if test -n "$MANPAGE_RENAMES" ; then - test ! -d man && mkdir man - sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed - fi -fi - -echo "$as_me:6608: result: $MANPAGE_RENAMES" >&5 -echo "${ECHO_T}$MANPAGE_RENAMES" >&6 - -echo "$as_me:6611: checking if manpage aliases will be installed" >&5 -echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6 - -# Check whether --with-manpage-aliases or --without-manpage-aliases was given. -if test "${with_manpage_aliases+set}" = set; then - withval="$with_manpage_aliases" - MANPAGE_ALIASES=$withval -else - MANPAGE_ALIASES=yes -fi; - -echo "$as_me:6622: result: $MANPAGE_ALIASES" >&5 -echo "${ECHO_T}$MANPAGE_ALIASES" >&6 - -if test "$LN_S" = "ln -s"; then - cf_use_symlinks=yes -else - cf_use_symlinks=no -fi - -MANPAGE_SYMLINKS=no -if test "$MANPAGE_ALIASES" = yes ; then -echo "$as_me:6633: checking if manpage symlinks should be used" >&5 -echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6 - -# Check whether --with-manpage-symlinks or --without-manpage-symlinks was given. -if test "${with_manpage_symlinks+set}" = set; then - withval="$with_manpage_symlinks" - MANPAGE_SYMLINKS=$withval -else - MANPAGE_SYMLINKS=$cf_use_symlinks -fi; - -if test "$$cf_use_symlinks" = no; then -if test "$MANPAGE_SYMLINKS" = yes ; then - { echo "$as_me:6646: WARNING: cannot make symlinks" >&5 -echo "$as_me: WARNING: cannot make symlinks" >&2;} - MANPAGE_SYMLINKS=no -fi -fi - -echo "$as_me:6652: result: $MANPAGE_SYMLINKS" >&5 -echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6 -fi - -echo "$as_me:6656: checking for manpage tbl" >&5 -echo $ECHO_N "checking for manpage tbl... $ECHO_C" >&6 - -# Check whether --with-manpage-tbl or --without-manpage-tbl was given. -if test "${with_manpage_tbl+set}" = set; then - withval="$with_manpage_tbl" - MANPAGE_TBL=$withval -else - MANPAGE_TBL=no -fi; - -echo "$as_me:6667: result: $MANPAGE_TBL" >&5 -echo "${ECHO_T}$MANPAGE_TBL" >&6 - - if test "$prefix" = "NONE" ; then - cf_prefix="$ac_default_prefix" - else - cf_prefix="$prefix" - fi - - case "$MANPAGE_FORMAT" in # (vi - *catonly*) # (vi - cf_format=yes - cf_inboth=no - ;; - *formatted*) # (vi - cf_format=yes - cf_inboth=yes - ;; - *) - cf_format=no - cf_inboth=no - ;; - esac - -test ! -d man && mkdir man - -cf_so_strip= -cf_compress= -case "$MANPAGE_FORMAT" in #(vi -*compress*) #(vi - cf_so_strip="Z" - cf_compress=compress - ;; -*gzip*) #(vi - cf_so_strip="gz" - cf_compress=gzip - ;; -esac - -cf_edit_man=man/edit_man.sh - -cat >$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP -CF_EOF -else -cat >>$cf_edit_man <\$TMP -CF_EOF -fi - -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP -fi -CF_EOF - -if test $with_curses_h != yes ; then -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP -CF_EOF -fi - -cat >>$cf_edit_man <\$TMP.out - mv \$TMP.out \$TMP - fi -CF_EOF - -if test -n "$cf_compress" ; then -cat >>$cf_edit_man <>$cf_edit_man <>$cf_edit_man <\$TMP -CF_EOF -if test -n "$cf_compress" ; then -cat >>$cf_edit_man <>$cf_edit_man <&5 -echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6 - -# Check whether --enable-ext-funcs or --disable-ext-funcs was given. -if test "${enable_ext_funcs+set}" = set; then - enableval="$enable_ext_funcs" - with_ext_funcs=$enableval -else - with_ext_funcs=yes -fi; -echo "$as_me:6965: result: $with_ext_funcs" >&5 -echo "${ECHO_T}$with_ext_funcs" >&6 -if test "$with_ext_funcs" = yes ; then - NCURSES_EXT_FUNCS=1 - cat >>confdefs.h <<\EOF -#define HAVE_CURSES_VERSION 1 -EOF - - cat >>confdefs.h <<\EOF -#define HAVE_HAS_KEY 1 -EOF - - cat >>confdefs.h <<\EOF -#define HAVE_RESIZETERM 1 -EOF - - cat >>confdefs.h <<\EOF -#define HAVE_RESIZE_TERM 1 -EOF - - cat >>confdefs.h <<\EOF -#define HAVE_USE_DEFAULT_COLORS 1 -EOF - - cat >>confdefs.h <<\EOF -#define HAVE_WRESIZE 1 -EOF - - cat >>confdefs.h <<\EOF -#define NCURSES_EXT_FUNCS 1 -EOF - -else - NCURSES_EXT_FUNCS=0 -fi - -### use option --enable-const to turn on use of const beyond that in XSI. -echo "$as_me:7002: checking for extended use of const keyword" >&5 -echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6 - -# Check whether --enable-const or --disable-const was given. -if test "${enable_const+set}" = set; then - enableval="$enable_const" - with_ext_const=$enableval -else - with_ext_const=no -fi; -echo "$as_me:7012: result: $with_ext_const" >&5 -echo "${ECHO_T}$with_ext_const" >&6 -NCURSES_CONST='/*nothing*/' -if test "$with_ext_const" = yes ; then - NCURSES_CONST=const -fi - -echo "$as_me:7019: checking if you want \$NCURSES_NO_PADDING code" >&5 -echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6 - -# Check whether --enable-no-padding or --disable-no-padding was given. -if test "${enable_no_padding+set}" = set; then - enableval="$enable_no_padding" - with_no_padding=$enableval -else - with_no_padding=$with_ext_funcs -fi; -echo "$as_me:7029: result: $with_no_padding" >&5 -echo "${ECHO_T}$with_no_padding" >&6 -test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF -#define NCURSES_NO_PADDING 1 -EOF - -### use option --enable-sigwinch to turn on use of SIGWINCH logic -echo "$as_me:7036: checking if you want SIGWINCH handler" >&5 -echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6 - -# Check whether --enable-sigwinch or --disable-sigwinch was given. -if test "${enable_sigwinch+set}" = set; then - enableval="$enable_sigwinch" - with_sigwinch=$enableval -else - with_sigwinch=$with_ext_funcs -fi; -echo "$as_me:7046: result: $with_sigwinch" >&5 -echo "${ECHO_T}$with_sigwinch" >&6 -test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF -#define USE_SIGWINCH 1 -EOF - -### use option --enable-tcap-names to allow user to define new capabilities -echo "$as_me:7053: checking if you want user-definable terminal capabilities like termcap" >&5 -echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6 - -# Check whether --enable-tcap-names or --disable-tcap-names was given. -if test "${enable_tcap_names+set}" = set; then - enableval="$enable_tcap_names" - with_tcap_names=$enableval -else - with_tcap_names=$with_ext_funcs -fi; -echo "$as_me:7063: result: $with_tcap_names" >&5 -echo "${ECHO_T}$with_tcap_names" >&6 -NCURSES_XNAMES=0 -test "$with_tcap_names" = yes && NCURSES_XNAMES=1 - -############################################################################### -# These options are relatively safe to experiment with. - -echo "$as_me:7071: checking if you want all development code" >&5 -echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6 - -# Check whether --with-develop or --without-develop was given. -if test "${with_develop+set}" = set; then - withval="$with_develop" - with_develop=$withval -else - with_develop=no -fi; -echo "$as_me:7081: result: $with_develop" >&5 -echo "${ECHO_T}$with_develop" >&6 - -### use option --enable-hard-tabs to turn on use of hard-tabs optimize -echo "$as_me:7085: checking if you want hard-tabs code" >&5 -echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6 - -# Check whether --enable-hard-tabs or --disable-hard-tabs was given. -if test "${enable_hard_tabs+set}" = set; then - enableval="$enable_hard_tabs" - with_hardtabs=$enableval -else - with_hardtabs=$with_develop -fi; -echo "$as_me:7095: result: $with_hardtabs" >&5 -echo "${ECHO_T}$with_hardtabs" >&6 -test "$with_hardtabs" = yes && cat >>confdefs.h <<\EOF -#define USE_HARD_TABS 1 -EOF - -echo "$as_me:7101: checking if you want to use restrict environment when running as root" >&5 -echo $ECHO_N "checking if you want to use restrict environment when running as root... $ECHO_C" >&6 - -# Check whether --enable-root-environ or --disable-root-environ was given. -if test "${enable_root_environ+set}" = set; then - enableval="$enable_root_environ" - with_root_environ=$enableval -else - with_root_environ=yes -fi; -echo "$as_me:7111: result: $with_root_environ" >&5 -echo "${ECHO_T}$with_root_environ" >&6 -test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF -#define USE_ROOT_ENVIRON 1 -EOF - -### use option --enable-xmc-glitch to turn on use of magic-cookie optimize -echo "$as_me:7118: checking if you want limited support for xmc" >&5 -echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6 - -# Check whether --enable-xmc-glitch or --disable-xmc-glitch was given. -if test "${enable_xmc_glitch+set}" = set; then - enableval="$enable_xmc_glitch" - with_xmc_glitch=$enableval -else - with_xmc_glitch=$with_develop -fi; -echo "$as_me:7128: result: $with_xmc_glitch" >&5 -echo "${ECHO_T}$with_xmc_glitch" >&6 -test "$with_xmc_glitch" = yes && cat >>confdefs.h <<\EOF -#define USE_XMC_SUPPORT 1 -EOF - -############################################################################### -# These are just experimental, probably should not be in a package: - -echo "$as_me:7137: checking if you do not want to assume colors are white-on-black" >&5 -echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6 - -# Check whether --enable-assumed-color or --disable-assumed-color was given. -if test "${enable_assumed_color+set}" = set; then - enableval="$enable_assumed_color" - with_assumed_color=$enableval -else - with_assumed_color=yes -fi; -echo "$as_me:7147: result: $with_assumed_color" >&5 -echo "${ECHO_T}$with_assumed_color" >&6 -test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF -#define USE_ASSUMED_COLOR 1 -EOF - -### use option --enable-hashmap to turn on use of hashmap scrolling logic -echo "$as_me:7154: checking if you want hashmap scrolling-optimization code" >&5 -echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6 - -# Check whether --enable-hashmap or --disable-hashmap was given. -if test "${enable_hashmap+set}" = set; then - enableval="$enable_hashmap" - with_hashmap=$enableval -else - with_hashmap=yes -fi; -echo "$as_me:7164: result: $with_hashmap" >&5 -echo "${ECHO_T}$with_hashmap" >&6 -test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF -#define USE_HASHMAP 1 -EOF - -### use option --enable-colorfgbg to turn on use of $COLORFGBG environment -echo "$as_me:7171: checking if you want colorfgbg code" >&5 -echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6 - -# Check whether --enable-colorfgbg or --disable-colorfgbg was given. -if test "${enable_colorfgbg+set}" = set; then - enableval="$enable_colorfgbg" - with_colorfgbg=$enableval -else - with_colorfgbg=no -fi; -echo "$as_me:7181: result: $with_colorfgbg" >&5 -echo "${ECHO_T}$with_colorfgbg" >&6 -test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF -#define USE_COLORFGBG 1 -EOF - -echo "$as_me:7187: checking if you want experimental safe-sprintf code" >&5 -echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6 - -# Check whether --enable-safe-sprintf or --disable-safe-sprintf was given. -if test "${enable_safe_sprintf+set}" = set; then - enableval="$enable_safe_sprintf" - with_safe_sprintf=$enableval -else - with_safe_sprintf=no -fi; -echo "$as_me:7197: result: $with_safe_sprintf" >&5 -echo "${ECHO_T}$with_safe_sprintf" >&6 -test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF -#define USE_SAFE_SPRINTF 1 -EOF - -### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic -# when hashmap is used scroll hints are useless -if test "$with_hashmap" = no ; then -echo "$as_me:7206: checking if you want to experiment without scrolling-hints code" >&5 -echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6 - -# Check whether --enable-scroll-hints or --disable-scroll-hints was given. -if test "${enable_scroll_hints+set}" = set; then - enableval="$enable_scroll_hints" - with_scroll_hints=$enableval -else - with_scroll_hints=yes -fi; -echo "$as_me:7216: result: $with_scroll_hints" >&5 -echo "${ECHO_T}$with_scroll_hints" >&6 -test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF -#define USE_SCROLL_HINTS 1 -EOF - -fi - -############################################################################### - -### use option --disable-echo to suppress full display compiling commands -echo "$as_me:7227: checking if you want to display full commands during build" >&5 -echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6 - -# Check whether --enable-echo or --disable-echo was given. -if test "${enable_echo+set}" = set; then - enableval="$enable_echo" - with_echo=$enableval -else - with_echo=yes -fi; -if test "$with_echo" = yes; then - ECHO_LINK= -else - ECHO_LINK='@ echo linking $@ ... ;' - test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent" -fi -echo "$as_me:7243: result: $with_echo" >&5 -echo "${ECHO_T}$with_echo" >&6 - -### use option --enable-warnings to turn on all gcc warnings -echo "$as_me:7247: checking if you want to see compiler warnings" >&5 -echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6 - -# Check whether --enable-warnings or --disable-warnings was given. -if test "${enable_warnings+set}" = set; then - enableval="$enable_warnings" - with_warnings=$enableval -fi; -echo "$as_me:7255: result: $with_warnings" >&5 -echo "${ECHO_T}$with_warnings" >&6 - -if test -n "$with_warnings"; then - ADAFLAGS="$ADAFLAGS -gnatg" - -if test "$GCC" = yes -then - cat > conftest.$ac_ext <&5 -echo "$as_me: checking for $CC warning options..." >&6;} - cf_save_CFLAGS="$CFLAGS" - EXTRA_CFLAGS="-W -Wall" - cf_warn_CONST="" - test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings" - for cf_opt in \ - Wbad-function-cast \ - Wcast-align \ - Wcast-qual \ - Winline \ - Wmissing-declarations \ - Wmissing-prototypes \ - Wnested-externs \ - Wpointer-arith \ - Wshadow \ - Wstrict-prototypes \ - Wundef $cf_warn_CONST - do - CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt" - if { (eval echo "$as_me:7287: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:7290: \$? = $ac_status" >&5 - (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:7292: result: ... -$cf_opt" >&5 -echo "${ECHO_T}... -$cf_opt" >&6 - case $cf_opt in #(vi - Wcast-qual) #(vi - CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES" - ;; - Winline) #(vi - case $GCC_VERSION in - 3.3*) - test -n "$verbose" && echo " feature is broken in gcc $GCC_VERSION" 1>&6 - - continue;; - esac - ;; - esac - EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt" - fi - done - rm -f conftest* - CFLAGS="$cf_save_CFLAGS" -fi - -fi - -if test "$GCC" = yes -then -cat > conftest.i <&5 -echo "$as_me: checking for $CC __attribute__ directives..." >&6;} -cat > conftest.$ac_ext <&5 - case $cf_attribute in - scanf|printf) - cat >conftest.h <conftest.h <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:7378: \$? = $ac_status" >&5 - (exit $ac_status); }; then - test -n "$verbose" && echo "$as_me:7380: result: ... $cf_attribute" >&5 -echo "${ECHO_T}... $cf_attribute" >&6 - cat conftest.h >>confdefs.h - fi - done -else - fgrep define conftest.i >>confdefs.h -fi -rm -rf conftest* -fi - -### use option --enable-assertions to turn on generation of assertion code -echo "$as_me:7392: checking if you want to enable runtime assertions" >&5 -echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6 - -# Check whether --enable-assertions or --disable-assertions was given. -if test "${enable_assertions+set}" = set; then - enableval="$enable_assertions" - with_assertions=$enableval -else - with_assertions=no -fi; -echo "$as_me:7402: result: $with_assertions" >&5 -echo "${ECHO_T}$with_assertions" >&6 -if test -n "$GCC" -then - if test "$with_assertions" = no - then - cat >>confdefs.h <<\EOF -#define NDEBUG 1 -EOF - - CPPFLAGS="$CPPFLAGS -DNDEBUG" - else - ADAFLAGS="$ADAFLAGS -gnata" - fi -fi - -### use option --disable-leaks to suppress "permanent" leaks, for testing - -# Check whether --enable-leaks or --disable-leaks was given. -if test "${enable_leaks+set}" = set; then - enableval="$enable_leaks" - test "$enableval" = no && cat >>confdefs.h <<\EOF -#define NO_LEAKS 1 -EOF - -fi; -cat >>confdefs.h <<\EOF -#define HAVE_NC_ALLOC_H 1 -EOF - -### use option --enable-expanded to generate certain macros as functions - -# Check whether --enable-expanded or --disable-expanded was given. -if test "${enable_expanded+set}" = set; then - enableval="$enable_expanded" - test "$enableval" = yes && cat >>confdefs.h <<\EOF -#define NCURSES_EXPANDED 1 -EOF - -fi; - -### use option --disable-macros to suppress macros in favor of functions - -# Check whether --enable-macros or --disable-macros was given. -if test "${enable_macros+set}" = set; then - enableval="$enable_macros" - test "$enableval" = no && cat >>confdefs.h <<\EOF -#define NCURSES_NOMACROS 1 -EOF - -fi; - -# Normally we only add trace() to the debug-library. Allow this to be -# extended to all models of the ncurses library: -cf_all_traces=no -case "$CFLAGS $CPPFLAGS" in -*-DTRACE*) - cf_all_traces=yes - ;; -esac - -echo "$as_me:7463: checking whether to add trace feature to all models" >&5 -echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6 - -# Check whether --with-trace or --without-trace was given. -if test "${with_trace+set}" = set; then - withval="$with_trace" - cf_with_trace=$withval -else - cf_with_trace=$cf_all_traces -fi; -echo "$as_me:7473: result: $with_trace" >&5 -echo "${ECHO_T}$with_trace" >&6 - -if test "$cf_with_trace" = yes ; then - LIB_TRACING=all - ADA_TRACE=TRUE - -cf_fix_cppflags=no -cf_new_cflags= -cf_new_cppflags= -cf_new_extra_cppflags= - -for cf_add_cflags in -DTRACE -do -case $cf_fix_cppflags in -no) - case $cf_add_cflags in #(vi - -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi - case $cf_add_cflags in - -D*) - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=yes - - if test $cf_fix_cppflags = yes ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - elif test "${cf_tst_cflags}" = "\"'" ; then - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - continue - fi - ;; - esac - case "$CPPFLAGS" in - *$cf_add_cflags) #(vi - ;; - *) #(vi - cf_new_cppflags="$cf_new_cppflags $cf_add_cflags" - ;; - esac - ;; - *) - cf_new_cflags="$cf_new_cflags $cf_add_cflags" - ;; - esac - ;; -yes) - cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags" - - cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'` - - test "${cf_add_cflags}" != "${cf_tst_cflags}" \ - && test -z "${cf_tst_cflags}" \ - && cf_fix_cppflags=no - ;; -esac -done - -if test -n "$cf_new_cflags" ; then - - CFLAGS="$CFLAGS $cf_new_cflags" -fi - -if test -n "$cf_new_cppflags" ; then - - CPPFLAGS="$cf_new_cppflags $CPPFLAGS" -fi - -if test -n "$cf_new_extra_cppflags" ; then - - EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS" -fi - -else - LIB_TRACING=DEBUG - ADA_TRACE=FALSE -fi - -### Checks for libraries. -echo "$as_me:7554: checking for gettimeofday" >&5 -echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6 -if test "${ac_cv_func_gettimeofday+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 7560 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char gettimeofday (); below. */ -#include -/* 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 gettimeofday (); -char (*f) (); - -int -main () -{ -/* 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_gettimeofday) || defined (__stub___gettimeofday) -choke me -#else -f = gettimeofday; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:7591: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:7594: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:7597: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:7600: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_gettimeofday=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_gettimeofday=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:7610: result: $ac_cv_func_gettimeofday" >&5 -echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6 -if test $ac_cv_func_gettimeofday = yes; then - cat >>confdefs.h <<\EOF -#define HAVE_GETTIMEOFDAY 1 -EOF - -else - -echo "$as_me:7619: checking for gettimeofday in -lbsd" >&5 -echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6 -if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lbsd $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line 7627 "configure" -#include "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 gettimeofday (); -int -main () -{ -gettimeofday (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:7646: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:7649: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:7652: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:7655: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_bsd_gettimeofday=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_bsd_gettimeofday=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:7666: result: $ac_cv_lib_bsd_gettimeofday" >&5 -echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6 -if test $ac_cv_lib_bsd_gettimeofday = yes; then - cat >>confdefs.h <<\EOF -#define HAVE_GETTIMEOFDAY 1 -EOF - - LIBS="$LIBS -lbsd" -fi - -fi - -echo "$as_me:7678: checking if -lm needed for math functions" >&5 -echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6 -if test "${cf_cv_need_libm+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 7685 "configure" -#include "confdefs.h" - - #include - #include - -int -main () -{ -double x = rand(); printf("result = %g\n", sin(x)) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:7700: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:7703: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:7706: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:7709: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_need_libm=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_need_libm=yes -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:7719: result: $cf_cv_need_libm" >&5 -echo "${ECHO_T}$cf_cv_need_libm" >&6 -if test "$cf_cv_need_libm" = yes -then -MATH_LIB=-lm -fi - -### Checks for header files. -echo "$as_me:7727: 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 -#line 7733 "configure" -#include "confdefs.h" -#include -#include -#include -#include - -_ACEOF -if { (eval echo "$as_me:7741: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:7747: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - ac_cv_header_stdc=yes -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - ac_cv_header_stdc=no -fi -rm -f conftest.err 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 -#line 7769 "configure" -#include "confdefs.h" -#include - -_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 -#line 7787 "configure" -#include "confdefs.h" -#include - -_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 -#line 7808 "configure" -#include "confdefs.h" -#include -#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:7834: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:7837: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:7839: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:7842: \$? = $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 -cat conftest.$ac_ext >&5 -ac_cv_header_stdc=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -fi -echo "$as_me:7855: 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 <<\EOF -#define STDC_HEADERS 1 -EOF - -fi - -ac_header_dirent=no -for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do - as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` -echo "$as_me:7868: checking for $ac_hdr that defines DIR" >&5 -echo $ECHO_N "checking for $ac_hdr that defines DIR... $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 -#line 7874 "configure" -#include "confdefs.h" -#include -#include <$ac_hdr> - -int -main () -{ -if ((DIR *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:7889: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:7892: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:7895: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:7898: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_Header=no" -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:7908: 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 <&5 -echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6 -if test "${ac_cv_lib_dir_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldir $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line 7929 "configure" -#include "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 opendir (); -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:7948: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:7951: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:7954: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:7957: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_dir_opendir=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_dir_opendir=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:7968: result: $ac_cv_lib_dir_opendir" >&5 -echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6 -if test $ac_cv_lib_dir_opendir = yes; then - LIBS="$LIBS -ldir" -fi - -else - echo "$as_me:7975: checking for opendir in -lx" >&5 -echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6 -if test "${ac_cv_lib_x_opendir+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lx $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line 7983 "configure" -#include "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 opendir (); -int -main () -{ -opendir (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8002: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8005: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8008: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8011: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_x_opendir=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_x_opendir=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:8022: result: $ac_cv_lib_x_opendir" >&5 -echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6 -if test $ac_cv_lib_x_opendir = yes; then - LIBS="$LIBS -lx" -fi - -fi - -echo "$as_me:8030: checking whether time.h and sys/time.h may both be included" >&5 -echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 -if test "${ac_cv_header_time+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 8036 "configure" -#include "confdefs.h" -#include -#include -#include - -int -main () -{ -if ((struct tm *) 0) -return 0; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:8052: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8055: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8058: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8061: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_header_time=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_header_time=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:8071: result: $ac_cv_header_time" >&5 -echo "${ECHO_T}$ac_cv_header_time" >&6 -if test $ac_cv_header_time = yes; then - -cat >>confdefs.h <<\EOF -#define TIME_WITH_SYS_TIME 1 -EOF - -fi - -echo "$as_me:8081: checking for regular-expression headers" >&5 -echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6 -if test "${cf_cv_regex+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -#line 8088 "configure" -#include "confdefs.h" -#include -#include -int -main () -{ - - regex_t *p; - int x = regcomp(p, "", 0); - int y = regexec(p, "", 0, 0, 0); - regfree(p); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8106: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8109: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8112: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8115: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_regex="regex.h" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 - - cat >conftest.$ac_ext <<_ACEOF -#line 8123 "configure" -#include "confdefs.h" -#include -int -main () -{ - - char *p = compile("", "", "", 0); - int x = step("", ""); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8138: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8141: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8144: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8147: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_regex="regexp.h" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 - - cf_save_LIBS="$LIBS" - LIBS="-lgen $LIBS" - cat >conftest.$ac_ext <<_ACEOF -#line 8157 "configure" -#include "confdefs.h" -#include -int -main () -{ - - char *p = compile("", "", ""); - int x = step("", ""); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8172: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8175: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8178: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8181: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_regex="regexpr.h" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -LIBS="$cf_save_LIBS" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - -fi - -echo "$as_me:8197: result: $cf_cv_regex" >&5 -echo "${ECHO_T}$cf_cv_regex" >&6 -case $cf_cv_regex in - regex.h) cat >>confdefs.h <<\EOF -#define HAVE_REGEX_H_FUNCS 1 -EOF - ;; - regexp.h) cat >>confdefs.h <<\EOF -#define HAVE_REGEXP_H_FUNCS 1 -EOF - ;; - regexpr.h) cat >>confdefs.h <<\EOF -#define HAVE_REGEXPR_H_FUNCS 1 -EOF - ;; -esac - -for ac_header in \ -fcntl.h \ -getopt.h \ -libc.h \ -limits.h \ -locale.h \ -poll.h \ -sys/bsdtypes.h \ -sys/ioctl.h \ -sys/param.h \ -sys/poll.h \ -sys/select.h \ -sys/time.h \ -sys/times.h \ -ttyent.h \ -unistd.h \ -wctype.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:8233: 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 -#line 8239 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:8243: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:8249: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:8268: 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 < to declare fd_set -if test "$ISC" = yes ; then - -echo "$as_me:8282: checking for main in -lcposix" >&5 -echo $ECHO_N "checking for main in -lcposix... $ECHO_C" >&6 -if test "${ac_cv_lib_cposix_main+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lcposix $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line 8290 "configure" -#include "confdefs.h" - -int -main () -{ -main (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8302: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8305: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8308: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8311: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_cposix_main=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_cposix_main=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:8322: result: $ac_cv_lib_cposix_main" >&5 -echo "${ECHO_T}$ac_cv_lib_cposix_main" >&6 -if test $ac_cv_lib_cposix_main = yes; then - cat >>confdefs.h <&5 -echo $ECHO_N "checking for bzero in -linet... $ECHO_C" >&6 -if test "${ac_cv_lib_inet_bzero+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-linet $LIBS" -cat >conftest.$ac_ext <<_ACEOF -#line 8341 "configure" -#include "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 bzero (); -int -main () -{ -bzero (); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8360: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8363: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8366: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8369: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_lib_inet_bzero=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_lib_inet_bzero=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -echo "$as_me:8380: result: $ac_cv_lib_inet_bzero" >&5 -echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6 -if test $ac_cv_lib_inet_bzero = yes; then - LIBS="$LIBS -linet" -fi -fi - -echo "$as_me:8387: checking if sys/time.h works with sys/select.h" >&5 -echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6 -if test "${cf_cv_sys_time_select+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -#line 8394 "configure" -#include "confdefs.h" - -#include -#ifdef HAVE_SYS_TIME_H -#include -#endif -#ifdef HAVE_SYS_SELECT_H -#include -#endif - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:8414: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8417: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8420: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8423: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_sys_time_select=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_sys_time_select=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -fi - -echo "$as_me:8435: result: $cf_cv_sys_time_select" >&5 -echo "${ECHO_T}$cf_cv_sys_time_select" >&6 -test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF -#define HAVE_SYS_TIME_SELECT 1 -EOF - -### checks for compiler characteristics -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:8448: 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 -#line 8456 "configure" -#include "confdefs.h" -#include -#include -#include -#include -/* 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; -} -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 and OSF/1 -std1 -# 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 -std1 -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:8505: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8508: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8511: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8514: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cc_stdc=$ac_arg -break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f 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:8531: result: none needed" >&5 -echo "${ECHO_T}none needed" >&6 ;; - *) - echo "$as_me:8534: result: $ac_cv_prog_cc_stdc" >&5 -echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 - CC="$CC $ac_cv_prog_cc_stdc" ;; -esac - -echo "$as_me:8539: 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 -#line 8545 "configure" -#include "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:8603: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8606: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8609: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8612: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_const=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_c_const=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:8622: 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 <<\EOF -#define const -EOF - -fi - -echo "$as_me:8632: checking for inline" >&5 -echo $ECHO_N "checking for inline... $ECHO_C" >&6 -if test "${ac_cv_c_inline+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - ac_cv_c_inline=no -for ac_kw in inline __inline__ __inline; do - cat >conftest.$ac_ext <<_ACEOF -#line 8640 "configure" -#include "confdefs.h" -#ifndef __cplusplus -static $ac_kw int static_foo () {return 0; } -$ac_kw int foo () {return 0; } -#endif - -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:8649: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8652: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8655: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8658: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_c_inline=$ac_kw; break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done - -fi -echo "$as_me:8669: result: $ac_cv_c_inline" >&5 -echo "${ECHO_T}$ac_cv_c_inline" >&6 -case $ac_cv_c_inline in - inline | yes) ;; - no) -cat >>confdefs.h <<\EOF -#define inline -EOF - ;; - *) cat >>confdefs.h <>confdefs.h <<\EOF -#define CC_HAS_INLINE_FUNCS 1 -EOF - -echo "$as_me:8688: checking if unsigned literals are legal" >&5 -echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6 -if test "${cf_cv_unsigned_literals+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 8695 "configure" -#include "confdefs.h" - -int -main () -{ -long x = 1L + 1UL + 1U + 1 - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:8707: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8710: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8713: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8716: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_unsigned_literals=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_unsigned_literals=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -fi - -echo "$as_me:8728: result: $cf_cv_unsigned_literals" >&5 -echo "${ECHO_T}$cf_cv_unsigned_literals" >&6 - -echo "$as_me:8731: checking for type of chtype" >&5 -echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6 -if test "${cf_cv_typeof_chtype+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - if test "$cross_compiling" = yes; then - cf_cv_typeof_chtype=long -else - cat >conftest.$ac_ext <<_ACEOF -#line 8741 "configure" -#include "confdefs.h" - -#ifdef USE_WIDEC_SUPPORT -#include /* we want wchar_t */ -#define WANT_BITS 39 -#else -#define WANT_BITS 31 -#endif -#include -int main() -{ - FILE *fp = fopen("cf_test.out", "w"); - if (fp != 0) { - char *result = "long"; -#ifdef USE_WIDEC_SUPPORT - /* - * If wchar_t is smaller than a long, it must be an int or a - * short. We prefer not to use a short anyway. - */ - if (sizeof(unsigned long) > sizeof(wchar_t)) - result = "int"; -#endif - if (sizeof(unsigned long) > sizeof(unsigned int)) { - int n; - unsigned int x; - for (n = 0; n < WANT_BITS; n++) { - unsigned int y = (x >> n); - if (y != 1 || x == 0) { - x = 0; - break; - } - } - /* - * If x is nonzero, an int is big enough for the bits - * that we want. - */ - result = (x != 0) ? "int" : "long"; - } - fputs(result, fp); - fclose(fp); - } - exit(0); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:8788: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8791: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:8793: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8796: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_typeof_chtype=`cat cf_test.out` -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_typeof_chtype=long -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - rm -f cf_test.out - -fi - -echo "$as_me:8811: result: $cf_cv_typeof_chtype" >&5 -echo "${ECHO_T}$cf_cv_typeof_chtype" >&6 - -cat >>confdefs.h <&5 -echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6 -if test "${cf_cv_dcl_errno+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 8831 "configure" -#include "confdefs.h" - -#ifdef HAVE_STDLIB_H -#include -#endif -#include -#include -#include -int -main () -{ -long x = (long) errno - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:8849: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8852: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:8855: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8858: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_dcl_errno=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_dcl_errno=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -fi -echo "$as_me:8869: result: $cf_cv_dcl_errno" >&5 -echo "${ECHO_T}$cf_cv_dcl_errno" >&6 - -if test "$cf_cv_dcl_errno" = no ; then - -cf_result=`echo "decl_errno" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - cat >>confdefs.h <&5 -echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6 -if test "${cf_cv_have_errno+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 8891 "configure" -#include "confdefs.h" - -#undef errno -extern int errno; - -int -main () -{ -errno = 2 - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:8906: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:8909: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:8912: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:8915: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_have_errno=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_have_errno=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - -fi -echo "$as_me:8926: result: $cf_cv_have_errno" >&5 -echo "${ECHO_T}$cf_cv_have_errno" >&6 - -if test "$cf_cv_have_errno" = yes ; then - -cf_result=`echo "have_errno" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - cat >>confdefs.h <&5 -echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6 -if test "${cf_cv_link_dataonly+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - rm -f conftest.a - cat >conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8953: \$? = $ac_status" >&5 - (exit $ac_status); } ; then - mv conftest.o data.o && \ - ( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null - fi - rm -f conftest.$ac_ext data.o - cat >conftest.$ac_ext <&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:8976: \$? = $ac_status" >&5 - (exit $ac_status); }; then - mv conftest.o func.o && \ - ( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null - fi - rm -f conftest.$ac_ext func.o - ( eval $RANLIB conftest.a ) 2>&5 >/dev/null - cf_saveLIBS="$LIBS" - LIBS="conftest.a $LIBS" - if test "$cross_compiling" = yes; then - cf_cv_link_dataonly=unknown -else - cat >conftest.$ac_ext <<_ACEOF -#line 8989 "configure" -#include "confdefs.h" - - int main() - { - extern int testfunc(); - exit (!testfunc()); - } - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:9000: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9003: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:9005: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9008: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_link_dataonly=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_link_dataonly=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - LIBS="$cf_saveLIBS" - -fi - -echo "$as_me:9023: result: $cf_cv_link_dataonly" >&5 -echo "${ECHO_T}$cf_cv_link_dataonly" >&6 - -if test "$cf_cv_link_dataonly" = no ; then - cat >>confdefs.h <<\EOF -#define BROKEN_LINKER 1 -EOF - - BROKEN_LINKER=1 -fi - -### Checks for library functions. - -for ac_func in \ -getcwd \ -getegid \ -geteuid \ -getttynam \ -issetugid \ -nanosleep \ -poll \ -remove \ -select \ -setbuf \ -setbuffer \ -setvbuf \ -sigaction \ -sigvec \ -strdup \ -strstr \ -tcgetpgrp \ -times \ -vsnprintf \ - -do -as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` -echo "$as_me:9059: 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 -#line 9065 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char $ac_func (); below. */ -#include -/* 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 (); -char (*f) (); - -int -main () -{ -/* 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 -f = $ac_func; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:9096: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9099: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:9102: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9105: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - eval "$as_ac_var=yes" -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -eval "$as_ac_var=no" -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:9115: 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 <&5 -echo $ECHO_N "checking for terminal-capability database functions... $ECHO_C" >&6 -if test "${cf_cv_cgetent+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -#line 9134 "configure" -#include "confdefs.h" - -#include -int -main () -{ - - char temp[128]; - char *buf = temp; - char *db_array = temp; - cgetent(&buf, /* int *, */ &db_array, "vt100"); - cgetcap(buf, "tc", '='); - cgetmatch(buf, "tc"); - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:9154: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9157: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:9160: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9163: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_cgetent=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_cgetent=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - -fi - -echo "$as_me:9175: result: $cf_cv_cgetent" >&5 -echo "${ECHO_T}$cf_cv_cgetent" >&6 -test "$cf_cv_cgetent" = yes && cat >>confdefs.h <<\EOF -#define HAVE_BSD_CGETENT 1 -EOF - -fi - -echo "$as_me:9183: checking for isascii" >&5 -echo $ECHO_N "checking for isascii... $ECHO_C" >&6 -if test "${cf_cv_have_isascii+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 9190 "configure" -#include "confdefs.h" -#include -int -main () -{ -int x = isascii(' ') - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:9202: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9205: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:9208: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9211: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_have_isascii=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_have_isascii=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - -fi -echo "$as_me:9222: result: $cf_cv_have_isascii" >&5 -echo "${ECHO_T}$cf_cv_have_isascii" >&6 -test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF -#define HAVE_ISASCII 1 -EOF - -if test "$ac_cv_func_sigaction" = yes; then -echo "$as_me:9229: checking whether sigaction needs _POSIX_SOURCE" >&5 -echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6 -cat >conftest.$ac_ext <<_ACEOF -#line 9232 "configure" -#include "confdefs.h" - -#include -#include -int -main () -{ -struct sigaction act - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:9246: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9249: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9252: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9255: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - sigact_bad=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -#line 9263 "configure" -#include "confdefs.h" - -#define _POSIX_SOURCE -#include -#include -int -main () -{ -struct sigaction act - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:9278: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9281: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9284: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9287: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - sigact_bad=yes - cat >>confdefs.h <<\EOF -#define SVR4_ACTION 1 -EOF - -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -sigact_bad=unknown -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest.$ac_ext -echo "$as_me:9302: result: $sigact_bad" >&5 -echo "${ECHO_T}$sigact_bad" >&6 -fi - -for ac_header in \ -termio.h \ -termios.h \ -unistd.h \ - -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:9313: 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 -#line 9319 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:9323: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:9329: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:9348: 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 <&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 -#line 9369 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:9373: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:9379: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_c_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:9398: 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 <&5 -echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6 - cat >conftest.$ac_ext <<_ACEOF -#line 9419 "configure" -#include "confdefs.h" -#include -int -main () -{ -struct termios foo; int x = foo.c_iflag - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:9431: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9434: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9437: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9440: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - termios_bad=no -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 - - cat >conftest.$ac_ext <<_ACEOF -#line 9448 "configure" -#include "confdefs.h" - -#define _POSIX_SOURCE -#include -int -main () -{ -struct termios foo; int x = foo.c_iflag - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:9462: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9465: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9468: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9471: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - termios_bad=unknown -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -termios_bad=yes cat >>confdefs.h <<\EOF -#define SVR4_TERMIO 1 -EOF - -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -fi -rm -f conftest.$ac_objext conftest.$ac_ext - echo "$as_me:9486: result: $termios_bad" >&5 -echo "${ECHO_T}$termios_bad" >&6 - fi -fi - -echo "$as_me:9491: checking for tcgetattr" >&5 -echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6 -if test "${cf_cv_have_tcgetattr+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -#line 9498 "configure" -#include "confdefs.h" - -#include -#ifdef HAVE_UNISTD_H -#include -#endif -#ifdef HAVE_TERMIOS_H -#include -#define TTY struct termios -#else -#ifdef HAVE_TERMIO_H -#include -#define TTY struct termio -#endif -#endif - -int -main () -{ - -TTY foo; -tcgetattr(1, &foo); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:9526: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9529: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:9532: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9535: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_have_tcgetattr=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_have_tcgetattr=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:9545: result: $cf_cv_have_tcgetattr" >&5 -echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6 -test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF -#define HAVE_TCGETATTR 1 -EOF - -echo "$as_me:9551: checking for vsscanf function or workaround" >&5 -echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6 -if test "${cf_cv_func_vsscanf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat >conftest.$ac_ext <<_ACEOF -#line 9558 "configure" -#include "confdefs.h" - -#include -#include -int -main () -{ - - va_list ap; - vsscanf("from", "%d", ap) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:9574: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9577: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:9580: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9583: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_func_vsscanf=vsscanf -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -#line 9591 "configure" -#include "confdefs.h" - -#include -#include -int -main () -{ - - FILE strbuf; - char *str = "from"; - - strbuf._flag = _IOREAD; - strbuf._ptr = strbuf._base = (unsigned char *) str; - strbuf._cnt = strlen(str); - strbuf._file = _NFILE; - return (vfscanf(&strbuf, "%d", ap)) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:9613: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9616: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:9619: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9622: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_func_vsscanf=vfscanf -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 - -cat >conftest.$ac_ext <<_ACEOF -#line 9630 "configure" -#include "confdefs.h" - -#include -#include -int -main () -{ - - FILE strbuf; - char *str = "from"; - - strbuf._flag = _IOREAD; - strbuf._ptr = strbuf._base = (unsigned char *) str; - strbuf._cnt = strlen(str); - strbuf._file = _NFILE; - return (_doscan(&strbuf, "%d", ap)) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:9652: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9655: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:9658: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9661: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_func_vsscanf=_doscan -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 - -cf_cv_func_vsscanf=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:9676: result: $cf_cv_func_vsscanf" >&5 -echo "${ECHO_T}$cf_cv_func_vsscanf" >&6 - -case $cf_cv_func_vsscanf in #(vi -vsscanf) cat >>confdefs.h <<\EOF -#define HAVE_VSSCANF 1 -EOF -;; #(vi -vfscanf) cat >>confdefs.h <<\EOF -#define HAVE_VFSCANF 1 -EOF -;; #(vi -_doscan) cat >>confdefs.h <<\EOF -#define HAVE__DOSCAN 1 -EOF -;; -esac - -echo "$as_me:9694: checking for working mkstemp" >&5 -echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6 -if test "${cf_cv_func_mkstemp+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -rm -f conftest* -if test "$cross_compiling" = yes; then - echo "$as_me:9702: checking for mkstemp" >&5 -echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6 -if test "${ac_cv_func_mkstemp+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 9708 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char mkstemp (); below. */ -#include -/* 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 mkstemp (); -char (*f) (); - -int -main () -{ -/* 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_mkstemp) || defined (__stub___mkstemp) -choke me -#else -f = mkstemp; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:9739: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9742: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:9745: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9748: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_mkstemp=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_mkstemp=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:9758: result: $ac_cv_func_mkstemp" >&5 -echo "${ECHO_T}$ac_cv_func_mkstemp" >&6 - -else - cat >conftest.$ac_ext <<_ACEOF -#line 9763 "configure" -#include "confdefs.h" - -#include -#include -#include -#include -#include -int main() -{ - char *tmpl = "conftestXXXXXX"; - char name[2][80]; - int n; - int result = 0; - int fd; - struct stat sb; - - umask(077); - for (n = 0; n < 2; ++n) { - strcpy(name[n], tmpl); - if ((fd = mkstemp(name[n])) >= 0) { - if (!strcmp(name[n], tmpl) - || stat(name[n], &sb) != 0 - || (sb.st_mode & S_IFMT) != S_IFREG - || (sb.st_mode & 077) != 0) { - result = 1; - } - close(fd); - } - } - if (result == 0 - && !strcmp(name[0], name[1])) - result = 1; - exit(result); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:9801: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9804: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:9806: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9809: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_func_mkstemp=yes - -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_func_mkstemp=no - -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - -fi -echo "$as_me:9824: result: $cf_cv_func_mkstemp" >&5 -echo "${ECHO_T}$cf_cv_func_mkstemp" >&6 -if test "$cf_cv_func_mkstemp" = yes ; then - cat >>confdefs.h <<\EOF -#define HAVE_MKSTEMP 1 -EOF - -fi - -# setup for prototype of fallback for vsscanf() -if test "$cf_cv_func_vsscanf" = vsscanf ; then - HAVE_VSSCANF=1 -else - HAVE_VSSCANF=0 -fi - -if test "$cross_compiling" = yes ; then - { echo "$as_me:9841: WARNING: cross compiling: assume setvbuf params not reversed" >&5 -echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;} -else - echo "$as_me:9844: checking whether setvbuf arguments are reversed" >&5 -echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6 -if test "${ac_cv_func_setvbuf_reversed+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test "$cross_compiling" = yes; then - { { echo "$as_me:9850: error: cannot run test program while cross compiling" >&5 -echo "$as_me: error: cannot run test program while cross compiling" >&2;} - { (exit 1); exit 1; }; } -else - cat >conftest.$ac_ext <<_ACEOF -#line 9855 "configure" -#include "confdefs.h" -#include -/* If setvbuf has the reversed format, exit 0. */ -int -main () -{ - /* This call has the arguments reversed. - A reversed system may check and see that the address of main - is not _IOLBF, _IONBF, or _IOFBF, and return nonzero. */ - if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0) - exit(1); - putc('\r', stdout); - exit(0); /* Non-reversed systems segv here. */ -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:9872: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:9875: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:9877: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9880: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_setvbuf_reversed=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_setvbuf_reversed=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -rm -f core core.* *.core -fi -echo "$as_me:9893: result: $ac_cv_func_setvbuf_reversed" >&5 -echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6 -if test $ac_cv_func_setvbuf_reversed = yes; then - -cat >>confdefs.h <<\EOF -#define SETVBUF_REVERSED 1 -EOF - -fi - -fi -echo "$as_me:9904: checking return type of signal handlers" >&5 -echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6 -if test "${ac_cv_type_signal+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 9910 "configure" -#include "confdefs.h" -#include -#include -#ifdef signal -# undef signal -#endif -#ifdef __cplusplus -extern "C" void (*signal (int, void (*)(int)))(int); -#else -void (*signal ()) (); -#endif - -int -main () -{ -int i; - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:9932: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9935: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9938: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9941: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_type_signal=void -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_type_signal=int -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:9951: result: $ac_cv_type_signal" >&5 -echo "${ECHO_T}$ac_cv_type_signal" >&6 - -cat >>confdefs.h <&5 -echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6 -if test "${cf_cv_type_sigaction+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 9965 "configure" -#include "confdefs.h" - -#include -int -main () -{ -sigaction_t x - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:9978: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:9981: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:9984: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:9987: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_type_sigaction=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_type_sigaction=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi - -echo "$as_me:9998: result: $cf_cv_type_sigaction" >&5 -echo "${ECHO_T}$cf_cv_type_sigaction" >&6 -test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF -#define HAVE_TYPE_SIGACTION 1 -EOF - -echo "$as_me:10004: checking declaration of size-change" >&5 -echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6 -if test "${cf_cv_sizechange+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_cv_sizechange=unknown - cf_save_CPPFLAGS="$CPPFLAGS" - -for cf_opts in "" "NEED_PTEM_H" -do - - CPPFLAGS="$cf_save_CPPFLAGS" - test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts" - cat >conftest.$ac_ext <<_ACEOF -#line 10019 "configure" -#include "confdefs.h" -#include -#ifdef HAVE_TERMIOS_H -#include -#else -#ifdef HAVE_TERMIO_H -#include -#endif -#endif -#ifdef NEED_PTEM_H -/* This is a workaround for SCO: they neglected to define struct winsize in - * termios.h -- it's only in termio.h and ptem.h - */ -#include -#include -#endif -#if !defined(sun) || !defined(HAVE_TERMIOS_H) -#include -#endif - -int -main () -{ - -#ifdef TIOCGSIZE - struct ttysize win; /* FIXME: what system is this? */ - int y = win.ts_lines; - int x = win.ts_cols; -#else -#ifdef TIOCGWINSZ - struct winsize win; - int y = win.ws_row; - int x = win.ws_col; -#else - no TIOCGSIZE or TIOCGWINSZ -#endif /* TIOCGWINSZ */ -#endif /* TIOCGSIZE */ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:10063: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:10066: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10069: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10072: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_sizechange=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_sizechange=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext - - CPPFLAGS="$cf_save_CPPFLAGS" - if test "$cf_cv_sizechange" = yes ; then - echo "size-change succeeded ($cf_opts)" >&5 - test -n "$cf_opts" && cf_cv_sizechange="$cf_opts" - break - fi -done - -fi -echo "$as_me:10091: result: $cf_cv_sizechange" >&5 -echo "${ECHO_T}$cf_cv_sizechange" >&6 -if test "$cf_cv_sizechange" != no ; then - cat >>confdefs.h <<\EOF -#define HAVE_SIZECHANGE 1 -EOF - - case $cf_cv_sizechange in #(vi - NEED*) - cat >>confdefs.h <&5 -echo $ECHO_N "checking for memmove... $ECHO_C" >&6 -if test "${ac_cv_func_memmove+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 10114 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char memmove (); below. */ -#include -/* 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 memmove (); -char (*f) (); - -int -main () -{ -/* 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_memmove) || defined (__stub___memmove) -choke me -#else -f = memmove; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:10145: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10148: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:10151: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10154: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_memmove=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_memmove=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:10164: result: $ac_cv_func_memmove" >&5 -echo "${ECHO_T}$ac_cv_func_memmove" >&6 -if test $ac_cv_func_memmove = yes; then - : -else - -echo "$as_me:10170: checking for bcopy" >&5 -echo $ECHO_N "checking for bcopy... $ECHO_C" >&6 -if test "${ac_cv_func_bcopy+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - cat >conftest.$ac_ext <<_ACEOF -#line 10176 "configure" -#include "confdefs.h" -/* System header to define __stub macros and hopefully few prototypes, - which can conflict with char bcopy (); below. */ -#include -/* 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 bcopy (); -char (*f) (); - -int -main () -{ -/* 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_bcopy) || defined (__stub___bcopy) -choke me -#else -f = bcopy; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:10207: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10210: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:10213: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10216: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_func_bcopy=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_func_bcopy=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -echo "$as_me:10226: result: $ac_cv_func_bcopy" >&5 -echo "${ECHO_T}$ac_cv_func_bcopy" >&6 -if test $ac_cv_func_bcopy = yes; then - - echo "$as_me:10230: checking if bcopy does overlapping moves" >&5 -echo $ECHO_N "checking if bcopy does overlapping moves... $ECHO_C" >&6 -if test "${cf_cv_good_bcopy+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - if test "$cross_compiling" = yes; then - cf_cv_good_bcopy=unknown -else - cat >conftest.$ac_ext <<_ACEOF -#line 10240 "configure" -#include "confdefs.h" - -int main() { - static char data[] = "abcdefghijklmnopqrstuwwxyz"; - char temp[40]; - bcopy(data, temp, sizeof(data)); - bcopy(temp+10, temp, 15); - bcopy(temp+5, temp+15, 10); - exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz")); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:10254: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10257: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:10259: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10262: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_good_bcopy=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_good_bcopy=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - -fi -echo "$as_me:10275: result: $cf_cv_good_bcopy" >&5 -echo "${ECHO_T}$cf_cv_good_bcopy" >&6 - -else - cf_cv_good_bcopy=no -fi - - if test "$cf_cv_good_bcopy" = yes ; then - cat >>confdefs.h <<\EOF -#define USE_OK_BCOPY 1 -EOF - - else - cat >>confdefs.h <<\EOF -#define USE_MY_MEMMOVE 1 -EOF - - fi - -fi - -echo "$as_me:10296: checking if poll really works" >&5 -echo $ECHO_N "checking if poll really works... $ECHO_C" >&6 -if test "${cf_cv_working_poll+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -if test "$cross_compiling" = yes; then - cf_cv_working_poll=unknown -else - cat >conftest.$ac_ext <<_ACEOF -#line 10306 "configure" -#include "confdefs.h" - -#include -#ifdef HAVE_POLL_H -#include -#else -#include -#endif -int main() { - struct pollfd myfds; - int ret; - - myfds.fd = 0; - myfds.events = POLLIN; - - ret = poll(&myfds, 1, 100); - exit(ret != 0); -} -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:10327: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10330: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:10332: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10335: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_working_poll=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_working_poll=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi -fi -echo "$as_me:10347: result: $cf_cv_working_poll" >&5 -echo "${ECHO_T}$cf_cv_working_poll" >&6 -test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF -#define HAVE_WORKING_POLL 1 -EOF - -if test -z "$cf_user_CFLAGS" ; then - CFLAGS=`echo ${CFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'` - CXXFLAGS=`echo ${CXXFLAGS} | sed -e 's%-g %%' -e 's%-g$%%'` -fi - -# Just in case, check if the C compiler has a bool type. - -echo "$as_me:10360: checking if we should include stdbool.h" >&5 -echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6 - -if test "${cf_cv_header_stdbool_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 10368 "configure" -#include "confdefs.h" - -int -main () -{ -bool foo = false - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:10380: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:10383: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10386: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10389: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_header_stdbool_h=0 -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF -#line 10396 "configure" -#include "confdefs.h" - -#ifndef __BEOS__ -#include -#endif - -int -main () -{ -bool foo = false - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:10412: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:10415: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10418: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10421: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_header_stdbool_h=1 -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_header_stdbool_h=0 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi - -if test "$cf_cv_header_stdbool_h" = 1 -then echo "$as_me:10435: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else echo "$as_me:10437: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -echo "$as_me:10441: checking for builtin bool type" >&5 -echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6 - -if test "${cf_cv_cc_bool_type+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 10449 "configure" -#include "confdefs.h" - -#include -#include - -int -main () -{ -bool x = false - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:10464: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:10467: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10470: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10473: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_cc_bool_type=1 -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_cc_bool_type=0 -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -fi - -if test "$cf_cv_cc_bool_type" = 1 -then echo "$as_me:10486: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else echo "$as_me:10488: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -# Check for C++ compiler characteristics (and ensure that it's there!) -if test -n "$CXX" ; 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 - - 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:10510: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" -echo "$as_me:10525: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -CXX=$ac_cv_prog_CXX -if test -n "$CXX"; then - echo "$as_me:10533: result: $CXX" >&5 -echo "${ECHO_T}$CXX" >&6 -else - echo "$as_me:10536: 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:10549: 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 - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_ac_ct_CXX="$ac_prog" -echo "$as_me:10564: found $ac_dir/$ac_word" >&5 -break -done - -fi -fi -ac_ct_CXX=$ac_cv_prog_ac_ct_CXX -if test -n "$ac_ct_CXX"; then - echo "$as_me:10572: result: $ac_ct_CXX" >&5 -echo "${ECHO_T}$ac_ct_CXX" >&6 -else - echo "$as_me:10575: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - test -n "$ac_ct_CXX" && break -done -test -n "$ac_ct_CXX" || ac_ct_CXX="g++" - - CXX=$ac_ct_CXX -fi - -# Provide some information about the compiler. -echo "$as_me:10587:" \ - "checking for C++ compiler version" >&5 -ac_compiler=`set X $ac_compile; echo $2` -{ (eval echo "$as_me:10590: \"$ac_compiler --version &5\"") >&5 - (eval $ac_compiler --version &5) 2>&5 - ac_status=$? - echo "$as_me:10593: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:10595: \"$ac_compiler -v &5\"") >&5 - (eval $ac_compiler -v &5) 2>&5 - ac_status=$? - echo "$as_me:10598: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (eval echo "$as_me:10600: \"$ac_compiler -V &5\"") >&5 - (eval $ac_compiler -V &5) 2>&5 - ac_status=$? - echo "$as_me:10603: \$? = $ac_status" >&5 - (exit $ac_status); } - -echo "$as_me:10606: 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 -#line 10612 "configure" -#include "confdefs.h" - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:10627: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:10630: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10633: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10636: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_compiler_gnu=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_compiler_gnu=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -ac_cv_cxx_compiler_gnu=$ac_compiler_gnu - -fi -echo "$as_me:10648: 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:10654: 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 -#line 10660 "configure" -#include "confdefs.h" - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:10672: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:10675: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10678: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10681: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - ac_cv_prog_cxx_g=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -ac_cv_prog_cxx_g=no -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -echo "$as_me:10691: 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 \ - ''\ - '#include ' \ - '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 -#line 10718 "configure" -#include "confdefs.h" -#include -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:10731: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:10734: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10737: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10740: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -continue -fi -rm -f conftest.$ac_objext conftest.$ac_ext - cat >conftest.$ac_ext <<_ACEOF -#line 10750 "configure" -#include "confdefs.h" -$ac_declaration -int -main () -{ -exit (42); - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:10762: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:10765: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:10768: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10771: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -fi -rm -f 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 - -if test -n "$GXX" ; then -case $cf_cv_system_name in #(vi -os2*) #(vi - cf_stdcpp_libname=stdcpp - ;; -*) - cf_stdcpp_libname=stdc++ - ;; -esac -echo "$as_me:10802: checking for library $cf_stdcpp_libname" >&5 -echo $ECHO_N "checking for library $cf_stdcpp_libname... $ECHO_C" >&6 -if test "${cf_cv_libstdcpp+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cf_save="$LIBS" - LIBS="$LIBS -l$cf_stdcpp_libname" -cat >conftest.$ac_ext <<_ACEOF -#line 10811 "configure" -#include "confdefs.h" - -#include -int -main () -{ - -char buf[80]; -strstreambuf foo(buf, sizeof(buf)) - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:10827: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10830: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:10833: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10836: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_libstdcpp=yes -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_libstdcpp=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - LIBS="$cf_save" - -fi -echo "$as_me:10848: result: $cf_cv_libstdcpp" >&5 -echo "${ECHO_T}$cf_cv_libstdcpp" >&6 -test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname" -fi - - echo "$as_me:10853: checking whether $CXX understands -c and -o together" >&5 -echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6 -if test "${cf_cv_prog_CXX_c_o+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - -cat > conftest.$ac_ext < -int main() -{ - return 0; -} -CF_EOF -# We do the test twice because some compilers refuse to overwrite an -# existing .o file with -o, though they will create one. -ac_try='$CXX -c conftest.$ac_ext -o conftest2.$ac_objext >&5' -if { (eval echo "$as_me:10869: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10872: \$? = $ac_status" >&5 - (exit $ac_status); } && - test -f conftest2.$ac_objext && { (eval echo "$as_me:10874: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10877: \$? = $ac_status" >&5 - (exit $ac_status); }; -then - eval cf_cv_prog_CXX_c_o=yes -else - eval cf_cv_prog_CXX_c_o=no -fi -rm -f conftest* - -fi -if test $cf_cv_prog_CXX_c_o = yes; then - echo "$as_me:10888: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else - echo "$as_me:10891: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - case $GXX_VERSION in - 1*|2.0-6*) - cf_cxx_library=yes - ;; - *-2.7*|2.7*) - -cf_cxx_library=unknown -case $cf_cv_system_name in #(vi -os2*) #(vi - cf_gpp_libname=gpp - ;; -*) - cf_gpp_libname=g++ - ;; -esac -if test "$GXX" = yes; then - echo "$as_me:10911: checking for lib$cf_gpp_libname" >&5 -echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6 - cf_save="$LIBS" - LIBS="$LIBS -l$cf_gpp_libname" - cat >conftest.$ac_ext <<_ACEOF -#line 10916 "configure" -#include "confdefs.h" - -#include <$cf_gpp_libname/builtin.h> - -int -main () -{ -two_arg_error_handler_t foo2 = lib_error_handler - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:10930: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10933: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:10936: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10939: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cxx_library=yes - CXXLIBS="$CXXLIBS -l$cf_gpp_libname" - if test "$cf_gpp_libname" = cpp ; then - cat >>confdefs.h <<\EOF -#define HAVE_GPP_BUILTIN_H 1 -EOF - - else - cat >>confdefs.h <<\EOF -#define HAVE_GXX_BUILTIN_H 1 -EOF - - fi -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF -#line 10958 "configure" -#include "confdefs.h" - -#include - -int -main () -{ -two_arg_error_handler_t foo2 = lib_error_handler - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:10972: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:10975: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:10978: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:10981: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cxx_library=yes - CXXLIBS="$CXXLIBS -l$cf_gpp_libname" - cat >>confdefs.h <<\EOF -#define HAVE_BUILTIN_H 1 -EOF - -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cxx_library=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - LIBS="$cf_save" - echo "$as_me:10998: result: $cf_cxx_library" >&5 -echo "${ECHO_T}$cf_cxx_library" >&6 -fi - - ;; - *) - cf_cxx_library=no - ;; - esac - - 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:11013: 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. - # 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 -#line 11030 "configure" -#include "confdefs.h" -#include - Syntax error -_ACEOF -if { (eval echo "$as_me:11035: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:11041: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_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 - cat 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 -#line 11064 "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:11068: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:11074: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_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 - cat 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:11111: 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. - # 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 -#line 11121 "configure" -#include "confdefs.h" -#include - Syntax error -_ACEOF -if { (eval echo "$as_me:11126: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:11132: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_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 - cat 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 -#line 11155 "configure" -#include "confdefs.h" -#include -_ACEOF -if { (eval echo "$as_me:11159: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:11165: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_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 - cat 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:11193: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5 -echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&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 - -for ac_header in typeinfo -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:11207: 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 -#line 11213 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:11217: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:11223: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:11242: 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 <&5 -echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6 - -if test "${cf_cv_header_stdbool_h+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 11260 "configure" -#include "confdefs.h" - -int -main () -{ -bool foo = false - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:11272: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:11275: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:11278: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11281: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_header_stdbool_h=0 -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cat >conftest.$ac_ext <<_ACEOF -#line 11288 "configure" -#include "confdefs.h" - -#ifndef __BEOS__ -#include -#endif - -int -main () -{ -bool foo = false - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:11304: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:11307: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:11310: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11313: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_header_stdbool_h=1 -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_header_stdbool_h=0 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi -rm -f conftest.$ac_objext conftest.$ac_ext -fi - -if test "$cf_cv_header_stdbool_h" = 1 -then echo "$as_me:11327: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else echo "$as_me:11329: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -echo "$as_me:11333: checking for builtin bool type" >&5 -echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6 - -if test "${cf_cv_builtin_bool+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - cat >conftest.$ac_ext <<_ACEOF -#line 11341 "configure" -#include "confdefs.h" - -#include -#include - -int -main () -{ -bool x = false - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:11356: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:11359: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:11362: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11365: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_builtin_bool=1 -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_builtin_bool=0 -fi -rm -f conftest.$ac_objext conftest.$ac_ext - -fi - -if test "$cf_cv_builtin_bool" = 1 -then echo "$as_me:11378: result: yes" >&5 -echo "${ECHO_T}yes" >&6 -else echo "$as_me:11380: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -echo "$as_me:11384: checking for size of bool" >&5 -echo $ECHO_N "checking for size of bool... $ECHO_C" >&6 -if test "${cf_cv_type_of_bool+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - rm -f cf_test.out - if test "$cross_compiling" = yes; then - cf_cv_type_of_bool=unknown -else - cat >conftest.$ac_ext <<_ACEOF -#line 11395 "configure" -#include "confdefs.h" - -#include -#include - -#if defined(__cplusplus) - -#ifdef HAVE_GXX_BUILTIN_H -#include -#elif HAVE_GPP_BUILTIN_H -#include -#elif HAVE_BUILTIN_H -#include -#endif - -#else - -#if $cf_cv_header_stdbool_h -#include -#endif - -#endif - -main() -{ - FILE *fp = fopen("cf_test.out", "w"); - if (fp != 0) { - bool x = true; - if ((bool)(-x) >= 0) - fputs("unsigned ", fp); - if (sizeof(x) == sizeof(int)) fputs("int", fp); - else if (sizeof(x) == sizeof(char)) fputs("char", fp); - else if (sizeof(x) == sizeof(short))fputs("short",fp); - else if (sizeof(x) == sizeof(long)) fputs("long", fp); - fclose(fp); - } - exit(0); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:11437: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:11440: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:11442: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11445: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_type_of_bool=`cat cf_test.out` - if test -z "$cf_cv_type_of_bool"; then - cf_cv_type_of_bool=unknown - fi -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_type_of_bool=unknown -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - -fi - - rm -f cf_test.out -echo "$as_me:11463: result: $cf_cv_type_of_bool" >&5 -echo "${ECHO_T}$cf_cv_type_of_bool" >&6 -if test "$cf_cv_type_of_bool" = unknown ; then - case .$NCURSES_BOOL in #(vi - .auto|.) NCURSES_BOOL=unsigned;; - esac - { echo "$as_me:11469: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5 -echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;} - cf_cv_type_of_bool=$NCURSES_BOOL -fi - -echo "$as_me:11474: checking for special defines needed for etip.h" >&5 -echo $ECHO_N "checking for special defines needed for etip.h... $ECHO_C" >&6 -cf_save_CXXFLAGS="$CXXFLAGS" -cf_result="none" -for cf_math in "" MATH_H -do -for cf_excp in "" MATH_EXCEPTION -do - CXXFLAGS="$cf_save_CXXFLAGS -I${srcdir}/c++ -I${srcdir}/menu -I${srcdir}/include" - test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}" - test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}" -cat >conftest.$ac_ext <<_ACEOF -#line 11486 "configure" -#include "confdefs.h" - -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (eval echo "$as_me:11500: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:11503: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest.$ac_objext' - { (eval echo "$as_me:11506: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11509: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - - test -n "$cf_math" && cat >>confdefs.h <>confdefs.h <&5 -cat conftest.$ac_ext >&5 -fi -rm -f conftest.$ac_objext conftest.$ac_ext -done -done -echo "$as_me:11530: result: $cf_result" >&5 -echo "${ECHO_T}$cf_result" >&6 -CXXFLAGS="$cf_save_CXXFLAGS" - -if test -n "$CXX"; then -echo "$as_me:11535: checking if $CXX accepts parameter initialization" >&5 -echo $ECHO_N "checking if $CXX accepts parameter initialization... $ECHO_C" >&6 -if test "${cf_cv_cpp_param_init+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - 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 "$cross_compiling" = yes; then - cf_cv_cpp_param_init=unknown -else - cat >conftest.$ac_ext <<_ACEOF -#line 11551 "configure" -#include "confdefs.h" - -class TEST { -private: - int value; -public: - TEST(int x = 1); - ~TEST(); -}; - -TEST::TEST(int x = 1) // some compilers do not like second initializer -{ - value = x; -} -void main() { } - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:11570: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:11573: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:11575: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11578: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_cpp_param_init=yes -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_cpp_param_init=no -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -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 - -fi -echo "$as_me:11596: result: $cf_cv_cpp_param_init" >&5 -echo "${ECHO_T}$cf_cv_cpp_param_init" >&6 -fi -test "$cf_cv_cpp_param_init" = yes && cat >>confdefs.h <<\EOF -#define CPP_HAS_PARAM_INIT 1 -EOF - -if test -n "$CXX"; 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 - -for ac_header in strstream.h -do -as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` -echo "$as_me:11614: 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 -#line 11620 "configure" -#include "confdefs.h" -#include <$ac_header> -_ACEOF -if { (eval echo "$as_me:11624: \"$ac_cpp conftest.$ac_ext\"") >&5 - (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 - ac_status=$? - egrep -v '^ *\+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - echo "$as_me:11630: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null; then - if test -s conftest.err; then - ac_cpp_err=$ac_cxx_preproc_warn_flag - else - ac_cpp_err= - fi -else - ac_cpp_err=yes -fi -if test -z "$ac_cpp_err"; then - eval "$as_ac_Header=yes" -else - echo "$as_me: failed program was:" >&5 - cat conftest.$ac_ext >&5 - eval "$as_ac_Header=no" -fi -rm -f conftest.err conftest.$ac_ext -fi -echo "$as_me:11649: 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 <&5 -echo $ECHO_N "checking if $CXX supports vscan function... $ECHO_C" >&6 -if test "${cf_cv_cpp_vscan_func+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - for cf_vscan_func in strstream strstream_cast stdio - do - case $cf_vscan_func in #(vi - stdio) cf_vscan_defs=USE_STDIO_VSCAN ;; #(vi - strstream) cf_vscan_defs=USE_STRSTREAM_VSCAN ;; - strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;; - esac - cat >conftest.$ac_ext <<_ACEOF -#line 11673 "configure" -#include "confdefs.h" - -#include -#include -#define $cf_vscan_defs 1 -#if defined(USE_STDIO_VSCAN) -#elif defined(HAVE_STRSTREAM_H) && defined(USE_STRSTREAM_VSCAN) -#include -#endif - -int scanw(const char* fmt, ...) -{ - int result = -1; - char buf[BUFSIZ]; - - va_list args; - va_start(args, fmt); -#if defined(USE_STDIO_VSCAN) - if (::vsscanf(buf, fmt, args) != -1) - result = 0; -#elif defined(USE_STRSTREAM_VSCAN) - strstreambuf ss(buf, sizeof(buf)); - if (ss.vscan(fmt, args) != -1) - result = 0; -#elif defined(USE_STRSTREAM_VSCAN_CAST) - strstreambuf ss(buf, sizeof(buf)); - if (ss.vscan(fmt, (_IO_va_list)args) != -1) - result = 0; -#else -#error case $cf_vscan_func failed -#endif - va_end(args); - return result; -} - -int -main () -{ -int tmp, foo = scanw("%d", &tmp) - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext conftest$ac_exeext -if { (eval echo "$as_me:11718: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:11721: \$? = $ac_status" >&5 - (exit $ac_status); } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:11724: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11727: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_cpp_vscan_func=$cf_vscan_func; break -else - echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_cpp_vscan_func=no -fi -rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext - test "$cf_cv_cpp_vscan_func" != no && break - done - -fi -echo "$as_me:11740: result: $cf_cv_cpp_vscan_func" >&5 -echo "${ECHO_T}$cf_cv_cpp_vscan_func" >&6 - -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 - -fi - -case $cf_cv_cpp_vscan_func in #(vi -stdio) #(vi - cat >>confdefs.h <<\EOF -#define CPP_HAS_VSCAN_FUNC 1 -EOF - - cat >>confdefs.h <<\EOF -#define USE_STDIO_VSCAN 1 -EOF - - ;; -strstream) - cat >>confdefs.h <<\EOF -#define CPP_HAS_VSCAN_FUNC 1 -EOF - - cat >>confdefs.h <<\EOF -#define USE_STRSTREAM_VSCAN 1 -EOF - - ;; -strstream_cast) - cat >>confdefs.h <<\EOF -#define CPP_HAS_VSCAN_FUNC 1 -EOF - - cat >>confdefs.h <<\EOF -#define USE_STRSTREAM_VSCAN_CAST 1 -EOF - - ;; -esac - - CXX_AR='$(AR)' - CXX_AR_OPTS='$(AR_OPTS)' - case $cf_cv_system_name in #(vi - irix*) #(vi - if test "$GXX" != yes ; then - CXX_AR='$(CXX)' - CXX_AR_OPTS='-ar -o' - fi - ;; - sco3.2v5*) #(vi - CXXLDFLAGS="-u main" - ;; - solaris2*) - if test "$GXX" != yes ; then - CXX_AR='$(CXX)' - CXX_AR_OPTS='-xar -o' - fi - ;; - esac - -else - cf_cxx_library=no - cf_cv_builtin_bool=1 - - # Just because we are not configuring against C++ right now does not - # mean that a user will not want to use C++. Some distributors disable - # the C++ portion of this configuration as a shortcut (or just to avoid - # compiling the demo in the c++ directory). So we need a reasonable - # default for the 'bool' type. - # - # Caveat: since the storage of the bool type is not standardized, it - # may change. - - if test "$NCURSES_BOOL" != auto ; then - cf_cv_type_of_bool=$NCURSES_AUTO - else - if test "$cf_cv_header_stdbool_h" = 1 ; then - -echo "$as_me:11822: checking for size of bool" >&5 -echo $ECHO_N "checking for size of bool... $ECHO_C" >&6 -if test "${cf_cv_type_of_bool+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - - rm -f cf_test.out - if test "$cross_compiling" = yes; then - cf_cv_type_of_bool=unknown -else - cat >conftest.$ac_ext <<_ACEOF -#line 11833 "configure" -#include "confdefs.h" - -#include -#include - -#if defined(__cplusplus) - -#ifdef HAVE_GXX_BUILTIN_H -#include -#elif HAVE_GPP_BUILTIN_H -#include -#elif HAVE_BUILTIN_H -#include -#endif - -#else - -#if $cf_cv_header_stdbool_h -#include -#endif - -#endif - -main() -{ - FILE *fp = fopen("cf_test.out", "w"); - if (fp != 0) { - bool x = true; - if ((bool)(-x) >= 0) - fputs("unsigned ", fp); - if (sizeof(x) == sizeof(int)) fputs("int", fp); - else if (sizeof(x) == sizeof(char)) fputs("char", fp); - else if (sizeof(x) == sizeof(short))fputs("short",fp); - else if (sizeof(x) == sizeof(long)) fputs("long", fp); - fclose(fp); - } - exit(0); -} - -_ACEOF -rm -f conftest$ac_exeext -if { (eval echo "$as_me:11875: \"$ac_link\"") >&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:11878: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (eval echo "$as_me:11880: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:11883: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cf_cv_type_of_bool=`cat cf_test.out` - if test -z "$cf_cv_type_of_bool"; then - cf_cv_type_of_bool=unknown - fi -else - echo "$as_me: program exited with status $ac_status" >&5 -echo "$as_me: failed program was:" >&5 -cat conftest.$ac_ext >&5 -cf_cv_type_of_bool=unknown -fi -rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - -fi - - rm -f cf_test.out -echo "$as_me:11901: result: $cf_cv_type_of_bool" >&5 -echo "${ECHO_T}$cf_cv_type_of_bool" >&6 -if test "$cf_cv_type_of_bool" = unknown ; then - case .$NCURSES_BOOL in #(vi - .auto|.) NCURSES_BOOL=unsigned;; - esac - { echo "$as_me:11907: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5 -echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;} - cf_cv_type_of_bool=$NCURSES_BOOL -fi - - else - echo "$as_me:11913: checking for fallback type of bool" >&5 -echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6 - case "$host_cpu" in #(vi - i?86) cf_cv_type_of_bool=char ;; #(vi - *) cf_cv_type_of_bool=int ;; - esac - echo "$as_me:11919: result: $cf_cv_type_of_bool" >&5 -echo "${ECHO_T}$cf_cv_type_of_bool" >&6 - fi - fi -fi - -# If the C compiler did not declare bool, and we did not determine that the C++ -# compiler does not declare bool, turn on an ifdef in curses.h that makes the -# ncurses library use the same type as C++ bool. Note that this allows one to -# specify the type of bool in a configure-script option and postpone -# integration with the C++ compiler provided that the types are compatible. -USE_CXX_BOOL=1 -if test $cf_cv_cc_bool_type = 1 -then - # oops: C has a bool. Unlikely, but C++ could differ. - USE_CXX_BOOL=0 -elif test $cf_cv_builtin_bool = 0 -then - # C++ has no bool - USE_CXX_BOOL=0 -else - # this is the normal case - USE_CXX_BOOL='defined(__cplusplus)' -fi - -if test "$cf_with_ada" != "no" ; then -cf_ada_make=gnatmake -# Extract the first word of "$cf_ada_make", so it can be a program name with args. -set dummy $cf_ada_make; ac_word=$2 -echo "$as_me:11948: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_gnat_exists+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$gnat_exists"; then - ac_cv_prog_gnat_exists="$gnat_exists" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_gnat_exists="yes" -echo "$as_me:11963: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_gnat_exists" && ac_cv_prog_gnat_exists="no" -fi -fi -gnat_exists=$ac_cv_prog_gnat_exists -if test -n "$gnat_exists"; then - echo "$as_me:11972: result: $gnat_exists" >&5 -echo "${ECHO_T}$gnat_exists" >&6 -else - echo "$as_me:11975: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test "$ac_cv_prog_gnat_exists" = no; then - cf_ada_make= -else - -echo "$as_me:11983: checking for gnat version" >&5 -echo $ECHO_N "checking for gnat version... $ECHO_C" >&6 -cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\ - sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'` -echo "$as_me:11987: result: $cf_gnat_version" >&5 -echo "${ECHO_T}$cf_gnat_version" >&6 - -case $cf_gnat_version in - 3.1[1-9]*|3.[2-9]*|[4-9].*) - cf_cv_prog_gnat_correct=yes - ;; - *) echo Unsupported GNAT version $cf_gnat_version. Required is 3.11 or better. Disabling Ada95 binding. - cf_cv_prog_gnat_correct=no - ;; -esac -case $cf_gnat_version in - 3.[1-9]*|[4-9].*) - cf_compile_generics=generics - cf_generic_objects="\$(GENOBJS)" - ;; - *) cf_compile_generics= - cf_generic_objects= - ;; -esac - - # Extract the first word of "m4", so it can be a program name with args. -set dummy m4; ac_word=$2 -echo "$as_me:12010: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_prog_M4_exists+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - if test -n "$M4_exists"; then - ac_cv_prog_M4_exists="$M4_exists" # Let the user override the test. -else - ac_save_IFS=$IFS; IFS=$ac_path_separator -ac_dummy="$PATH" -for ac_dir in $ac_dummy; do - IFS=$ac_save_IFS - test -z "$ac_dir" && ac_dir=. - $as_executable_p "$ac_dir/$ac_word" || continue -ac_cv_prog_M4_exists="yes" -echo "$as_me:12025: found $ac_dir/$ac_word" >&5 -break -done - - test -z "$ac_cv_prog_M4_exists" && ac_cv_prog_M4_exists="no" -fi -fi -M4_exists=$ac_cv_prog_M4_exists -if test -n "$M4_exists"; then - echo "$as_me:12034: result: $M4_exists" >&5 -echo "${ECHO_T}$M4_exists" >&6 -else - echo "$as_me:12037: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - - if test "$ac_cv_prog_M4_exists" = no; then - cf_cv_prog_gnat_correct=no - echo Ada95 binding required program m4 not found. Ada95 binding disabled. - fi - if test "$cf_cv_prog_gnat_correct" = yes; then - echo "$as_me:12046: checking if GNAT works" >&5 -echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6 - -rm -f conftest* -cat >>conftest.ads <>conftest.adb <&5 2>&1 ) ; then - if ( ./conftest 1>&5 2>&1 ) ; then - cf_cv_prog_gnat_correct=yes - else - cf_cv_prog_gnat_correct=no - fi -else - cf_cv_prog_gnat_correct=no -fi -rm -f conftest* - - echo "$as_me:12074: result: $cf_cv_prog_gnat_correct" >&5 -echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6 - fi -fi -if test "$cf_cv_prog_gnat_correct" = yes; then - ADAFLAGS="-O3 -gnatpn $ADAFLAGS" - - echo "$as_me:12081: checking if GNAT pragma Unreferenced works" >&5 -echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6 - -rm -f conftest* -cat >>conftest.ads <>conftest.adb <&5 2>&1 ) ; then - cf_cv_pragma_unreferenced=yes -else - cf_cv_pragma_unreferenced=no -fi -rm -f conftest* - - echo "$as_me:12108: result: $cf_cv_pragma_unreferenced" >&5 -echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6 - - # if the pragma is supported, use it (needed in the Trace code). - if test $cf_cv_pragma_unreferenced = yes ; then - PRAGMA_UNREF=TRUE - else - PRAGMA_UNREF=FALSE - fi - -# Check whether --with-ada-compiler or --without-ada-compiler was given. -if test "${with_ada_compiler+set}" = set; then - withval="$with_ada_compiler" - cf_ada_compiler=$withval -else - cf_ada_compiler=gnatmake -fi; - - cf_ada_package=terminal_interface - -# Check whether --with-ada-include or --without-ada-include was given. -if test "${with_ada_include+set}" = set; then - withval="$with_ada_include" - -else - withval="${ADA_INCLUDE-$prefix/lib/ada/adainclude}" -fi; -case ".$withval" in #(vi -.\$\(*\)*|.\'*\'*) #(vi - ;; -..|./*|.\\*) #(vi - ;; -.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX - ;; -.\${*prefix}*) #(vi - eval withval="$withval" - case ".$withval" in #(vi - .NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` - ;; - esac - ;; #(vi -.NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` - ;; -*) - { { echo "$as_me:12154: error: expected a pathname, not \"$withval\"" >&5 -echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - -eval ADA_INCLUDE="$withval" - -# Check whether --with-ada-objects or --without-ada-objects was given. -if test "${with_ada_objects+set}" = set; then - withval="$with_ada_objects" - -else - withval="${ADA_OBJECTS-$prefix/lib/ada/adalib}" -fi; -case ".$withval" in #(vi -.\$\(*\)*|.\'*\'*) #(vi - ;; -..|./*|.\\*) #(vi - ;; -.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX - ;; -.\${*prefix}*) #(vi - eval withval="$withval" - case ".$withval" in #(vi - .NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` - ;; - esac - ;; #(vi -.NONE/*) - withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%` - ;; -*) - { { echo "$as_me:12188: error: expected a pathname, not \"$withval\"" >&5 -echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;} - { (exit 1); exit 1; }; } - ;; -esac - -eval ADA_OBJECTS="$withval" - -fi -fi - -### Construct the library-subsets, if any, from this set of keywords: -### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES). -echo "$as_me:12201: checking for library subsets" >&5 -echo $ECHO_N "checking for library subsets... $ECHO_C" >&6 -if test "$with_termlib" != no ; then - LIB_SUBSETS="termlib" - test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" - LIB_SUBSETS="${LIB_SUBSETS} " -else - LIB_SUBSETS="termlib+" - test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}ext_tinfo+" -fi -LIB_SUBSETS="${LIB_SUBSETS}base" -test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" -test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" -echo "$as_me:12214: result: $LIB_SUBSETS" >&5 -echo "${ECHO_T}$LIB_SUBSETS" >&6 - -### Construct the list of include-directories to be generated - -CPPFLAGS="-I. -I../include $CPPFLAGS" -if test "$srcdir" != "."; then - CPPFLAGS="-I\$(srcdir)/../include $CPPFLAGS" -fi -if test "$GCC" != yes; then - CPPFLAGS="$CPPFLAGS -I\$(includedir)" -elif test "$includedir" != "/usr/include"; then - if test "$includedir" = '${prefix}/include' ; then - if test $prefix != /usr ; then - CPPFLAGS="$CPPFLAGS -I\$(includedir)" - fi - else - CPPFLAGS="$CPPFLAGS -I\$(includedir)" - fi -fi - -ACPPFLAGS="-I. -I../../include $ACPPFLAGS" -if test "$srcdir" != "."; then - ACPPFLAGS="-I\$(srcdir)/../../include $ACPPFLAGS" -fi -if test "$GCC" != yes; then - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" -elif test "$includedir" != "/usr/include"; then - if test "$includedir" = '${prefix}/include' ; then - if test $prefix != /usr ; then - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" - fi - else - ACPPFLAGS="$ACPPFLAGS -I\$(includedir)" - fi -fi - -### Build up pieces for makefile rules -echo "$as_me:12252: checking default library suffix" >&5 -echo $ECHO_N "checking default library suffix... $ECHO_C" >&6 - - case $DFT_LWR_MODEL in - libtool) DFT_ARG_SUFFIX='' ;; - normal) DFT_ARG_SUFFIX='' ;; - debug) DFT_ARG_SUFFIX='_g' ;; - profile) DFT_ARG_SUFFIX='_p' ;; - shared) DFT_ARG_SUFFIX='' ;; - esac - test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}" -echo "$as_me:12263: result: $DFT_ARG_SUFFIX" >&5 -echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6 - -echo "$as_me:12266: checking default library-dependency suffix" >&5 -echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6 - - case $DFT_LWR_MODEL in - libtool) DFT_DEP_SUFFIX='.la' ;; - normal) DFT_DEP_SUFFIX='.a' ;; - debug) DFT_DEP_SUFFIX='_g.a' ;; - profile) DFT_DEP_SUFFIX='_p.a' ;; - shared) - case $cf_cv_system_name in - cygwin*) DFT_DEP_SUFFIX='.dll' ;; - darwin*) DFT_DEP_SUFFIX='.dylib' ;; - hpux*) - case $target in - ia64*) DFT_DEP_SUFFIX='.so' ;; - *) DFT_DEP_SUFFIX='.sl' ;; - esac - ;; - *) DFT_DEP_SUFFIX='.so' ;; - esac - esac - test -n "$LIB_SUFFIX" && DFT_DEP_SUFFIX="${LIB_SUFFIX}${DFT_DEP_SUFFIX}" -if test $DFT_LWR_MODEL = shared ; then - case $cf_cv_system_name in #(vi - cygwin*) - DFT_DEP_SUFFIX=".dll.a" - ;; - esac -fi -echo "$as_me:12295: result: $DFT_DEP_SUFFIX" >&5 -echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6 - -echo "$as_me:12298: checking default object directory" >&5 -echo $ECHO_N "checking default object directory... $ECHO_C" >&6 - - case $DFT_LWR_MODEL in - libtool) DFT_OBJ_SUBDIR='obj_lo' ;; - normal) DFT_OBJ_SUBDIR='objects' ;; - debug) DFT_OBJ_SUBDIR='obj_g' ;; - profile) DFT_OBJ_SUBDIR='obj_p' ;; - shared) - case $cf_cv_system_name in #(vi - cygwin) #(vi - DFT_OBJ_SUBDIR='objects' ;; - *) - DFT_OBJ_SUBDIR='obj_s' ;; - esac - esac -echo "$as_me:12314: result: $DFT_OBJ_SUBDIR" >&5 -echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6 - -# libtool thinks it can make c++ shared libraries (perhaps only g++) -if test "$cf_with_cxx" = yes ; then -echo "$as_me:12319: checking c++ library-dependency suffix" >&5 -echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6 -if test "$with_libtool" != "no"; then - CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX -else - - case normal in - libtool) CXX_LIB_SUFFIX='.la' ;; - normal) CXX_LIB_SUFFIX='.a' ;; - debug) CXX_LIB_SUFFIX='_g.a' ;; - profile) CXX_LIB_SUFFIX='_p.a' ;; - shared) - case $cf_cv_system_name in - cygwin*) CXX_LIB_SUFFIX='.dll' ;; - darwin*) CXX_LIB_SUFFIX='.dylib' ;; - hpux*) - case $target in - ia64*) CXX_LIB_SUFFIX='.so' ;; - *) CXX_LIB_SUFFIX='.sl' ;; - esac - ;; - *) CXX_LIB_SUFFIX='.so' ;; - esac - esac - test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}" -fi -echo "$as_me:12345: result: $CXX_LIB_SUFFIX" >&5 -echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6 - -fi - -### Set up low-level terminfo dependencies for makefiles. -TINFO_LIST="$SHLIB_LIST" -if test "$with_termlib" != no ; then - - if test "$with_termlib" != yes ; then - TINFO_NAME=$with_termlib - TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" - TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" - TINFO_LIB_SUFFIX="${with_termlib}" - else - TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}" - TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}" - TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}" - fi - - TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}" - if test "$DFT_LWR_MODEL" = "libtool"; then - TEST_ARGS="${TEST_DEPS}" - else - TEST_ARGS="-l${TINFO_ARG_SUFFIX}" - SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" - fi -fi - -PROG_ARGS="$TEST_ARGS" - -echo "$as_me:12376: checking where we will install curses.h" >&5 -echo $ECHO_N "checking where we will install curses.h... $ECHO_C" >&6 -test "$with_overwrite" = no && \ -test "x$includedir" = 'x${prefix}/include' && \ - includedir='$(prefix)/include/ncurses'${LIB_SUFFIX} -echo "$as_me:12381: result: $includedir" >&5 -echo "${ECHO_T}$includedir" >&6 - -### Resolve a conflict between normal and wide-curses by forcing applications -### that will need libutf8 to add it to their configure script. -if test "$with_overwrite" != no ; then -if test "$NCURSES_LIBUTF8" = 1 ; then - NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)' - { echo "$as_me:12389: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5 -echo "$as_me: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&2;} -fi -fi - -### predefined stuff for the test programs -cat >>confdefs.h <<\EOF -#define HAVE_SLK_COLOR 1 -EOF - -### Construct the list of subdirectories for which we'll customize makefiles -### with the appropriate compile-rules. - -DIRS_TO_MAKE="lib" -for cf_item in $cf_list_models -do - - case $cf_item in - libtool) cf_subdir='obj_lo' ;; - normal) cf_subdir='objects' ;; - debug) cf_subdir='obj_g' ;; - profile) cf_subdir='obj_p' ;; - shared) - case $cf_cv_system_name in #(vi - cygwin) #(vi - cf_subdir='objects' ;; - *) - cf_subdir='obj_s' ;; - esac - esac - - for cf_item2 in $DIRS_TO_MAKE - do - test $cf_item2 = $cf_subdir && break - done - test ".$cf_item2" != ".$cf_subdir" && DIRS_TO_MAKE="$DIRS_TO_MAKE $cf_subdir" -done -for cf_dir in $DIRS_TO_MAKE -do - test ! -d $cf_dir && mkdir $cf_dir -done - -echo "$as_me:12431: checking for src modules" >&5 -echo $ECHO_N "checking for src modules... $ECHO_C" >&6 - -# dependencies and linker-arguments for test-programs -TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS" -if test "$DFT_LWR_MODEL" = "libtool"; then - TEST_ARGS="${TEST_DEPS}" -else - TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS" -fi - -# dependencies and linker-arguments for utility-programs -test "$with_termlib" = no && PROG_ARGS="$TEST_ARGS" - -cf_cv_src_modules= -for cf_dir in $modules_to_build -do - if test -f $srcdir/$cf_dir/modules; then - - # We may/may not have tack in the distribution, though the - # makefile is. - if test $cf_dir = tack ; then - if test ! -f $srcdir/${cf_dir}/${cf_dir}.h; then - continue - fi - fi - - if test -z "$cf_cv_src_modules"; then - cf_cv_src_modules=$cf_dir - else - cf_cv_src_modules="$cf_cv_src_modules $cf_dir" - fi - - # Make the ncurses_cfg.h file record the library interface files as - # well. These are header files that are the same name as their - # directory. Ncurses is the only library that does not follow - # that pattern. - if test $cf_dir = tack ; then - continue - elif test -f $srcdir/${cf_dir}/${cf_dir}.h; then - -cf_have_include=`echo "$cf_dir" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - cat >>confdefs.h <>confdefs.h <&5 -echo "${ECHO_T}$cf_cv_src_modules" >&6 -TEST_ARGS="-L${LIB_DIR} $TEST_ARGS" - -PROG_ARGS="-L${LIB_DIR} $PROG_ARGS" - -SRC_SUBDIRS="man include" -for cf_dir in $cf_cv_src_modules -do - SRC_SUBDIRS="$SRC_SUBDIRS $cf_dir" -done - -ADA_SUBDIRS= -if test "$cf_cv_prog_gnat_correct" = yes && test -f $srcdir/Ada95/Makefile.in; then - SRC_SUBDIRS="$SRC_SUBDIRS Ada95" - ADA_SUBDIRS="gen src samples" -fi - -SUB_MAKEFILES= -for cf_dir in $SRC_SUBDIRS -do - SUB_MAKEFILES="$SUB_MAKEFILES $cf_dir/Makefile" -done - -if test -n "$ADA_SUBDIRS"; then - for cf_dir in $ADA_SUBDIRS - do - SUB_MAKEFILES="$SUB_MAKEFILES Ada95/$cf_dir/Makefile" - done - -fi - -cat >>confdefs.h <>confdefs.h <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 overriden 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 cmp -s $cache_file confcache; 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 - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:12683: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated automatically by configure. -# 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 -SHELL=\${CONFIG_SHELL-$SHELL} -ac_cs_invocation="\$0 \$@" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# Name of the executable. -as_me=`echo "$0" |sed 's,.*[\\/],,'` - -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 - -as_executable_p="test -f" - -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - -# NLS nuisances. -$as_unset LANG || test "${LANG+set}" != set || { LANG=C; export LANG; } -$as_unset LC_ALL || test "${LC_ALL+set}" != set || { LC_ALL=C; export LC_ALL; } -$as_unset LC_TIME || test "${LC_TIME+set}" != set || { LC_TIME=C; export LC_TIME; } -$as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set || { LC_CTYPE=C; export LC_CTYPE; } -$as_unset LANGUAGE || test "${LANGUAGE+set}" != set || { LANGUAGE=C; export LANGUAGE; } -$as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set || { LC_COLLATE=C; export LC_COLLATE; } -$as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set || { LC_NUMERIC=C; export LC_NUMERIC; } -$as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set || { LC_MESSAGES=C; export LC_MESSAGES; } - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=:; export CDPATH; } - -exec 6>&1 - -_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 <<\EOF - -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 - -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 - -Configuration commands: -$config_commands - -Report bugs to ." -EOF - -cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF -# 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[^=]*=\(.*\)'` - shift - set dummy "$ac_option" "$ac_optarg" ${1+"$@"} - shift - ;; - -*);; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_need_defaults=false;; - esac - - case $1 in - # Handling of the options. -EOF -cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:12859: 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 ) - shift - CONFIG_FILES="$CONFIG_FILES $1" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - shift - CONFIG_HEADERS="$CONFIG_HEADERS $1" - ac_need_defaults=false;; - - # This is an error. - -*) { { echo "$as_me:12878: 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 - -exec 5>>config.log -cat >&5 << _ACEOF - -## ----------------------- ## -## Running config.status. ## -## ----------------------- ## - -This file was extended by $as_me 2.52.20030208, executed with - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - > $ac_cs_invocation -on `(hostname || uname -n) 2>/dev/null | sed 1q` - -_ACEOF -EOF - -cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "include/MKterm.h.awk" ) CONFIG_FILES="$CONFIG_FILES include/MKterm.h.awk" ;; - "include/curses.head" ) CONFIG_FILES="$CONFIG_FILES include/curses.head:include/curses.h.in" ;; - "include/termcap.h" ) CONFIG_FILES="$CONFIG_FILES include/termcap.h" ;; - "include/unctrl.h" ) CONFIG_FILES="$CONFIG_FILES include/unctrl.h" ;; - "$SUB_MAKEFILES" ) CONFIG_FILES="$CONFIG_FILES $SUB_MAKEFILES" ;; - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;; - "include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;; - *) { { echo "$as_me:12963: 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 - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $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/csXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=$TMPDIR/cs$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in $TMPDIR" >&2 - { (exit 1); exit 1; } -} - -EOF - -cat >>$CONFIG_STATUS <\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;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,@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,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@DEFS@,$DEFS,;t t -s,@LIBS@,$LIBS,;t t -s,@NCURSES_MAJOR@,$NCURSES_MAJOR,;t t -s,@NCURSES_MINOR@,$NCURSES_MINOR,;t t -s,@NCURSES_PATCH@,$NCURSES_PATCH,;t t -s,@cf_cv_rel_version@,$cf_cv_rel_version,;t t -s,@cf_cv_abi_version@,$cf_cv_abi_version,;t t -s,@cf_cv_builtin_bool@,$cf_cv_builtin_bool,;t t -s,@cf_cv_header_stdbool_h@,$cf_cv_header_stdbool_h,;t t -s,@cf_cv_type_of_bool@,$cf_cv_type_of_bool,;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,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t -s,@PROG_EXT@,$PROG_EXT,;t t -s,@AWK@,$AWK,;t t -s,@SET_MAKE@,$SET_MAKE,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@LN_S@,$LN_S,;t t -s,@MAKE_LOWER_TAGS@,$MAKE_LOWER_TAGS,;t t -s,@MAKE_UPPER_TAGS@,$MAKE_UPPER_TAGS,;t t -s,@LINT@,$LINT,;t t -s,@MAN@,$MAN,;t t -s,@LINT_OPTS@,$LINT_OPTS,;t t -s,@RANLIB@,$RANLIB,;t t -s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t -s,@LD@,$LD,;t t -s,@ac_ct_LD@,$ac_ct_LD,;t t -s,@AR@,$AR,;t t -s,@ac_ct_AR@,$ac_ct_AR,;t t -s,@AR_OPTS@,$AR_OPTS,;t t -s,@cf_cv_makeflags@,$cf_cv_makeflags,;t t -s,@DESTDIR@,$DESTDIR,;t t -s,@BUILD_CC@,$BUILD_CC,;t t -s,@BUILD_CPP@,$BUILD_CPP,;t t -s,@BUILD_CFLAGS@,$BUILD_CFLAGS,;t t -s,@BUILD_CPPFLAGS@,$BUILD_CPPFLAGS,;t t -s,@BUILD_LDFLAGS@,$BUILD_LDFLAGS,;t t -s,@BUILD_LIBS@,$BUILD_LIBS,;t t -s,@BUILD_EXEEXT@,$BUILD_EXEEXT,;t t -s,@BUILD_OBJEXT@,$BUILD_OBJEXT,;t t -s,@cf_list_models@,$cf_list_models,;t t -s,@LIBTOOL@,$LIBTOOL,;t t -s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t -s,@LIB_CREATE@,$LIB_CREATE,;t t -s,@LIB_OBJECT@,$LIB_OBJECT,;t t -s,@LIB_SUFFIX@,$LIB_SUFFIX,;t t -s,@LIB_PREP@,$LIB_PREP,;t t -s,@LIB_CLEAN@,$LIB_CLEAN,;t t -s,@LIB_COMPILE@,$LIB_COMPILE,;t t -s,@LIB_LINK@,$LIB_LINK,;t t -s,@LIB_INSTALL@,$LIB_INSTALL,;t t -s,@LIB_UNINSTALL@,$LIB_UNINSTALL,;t t -s,@DFT_LWR_MODEL@,$DFT_LWR_MODEL,;t t -s,@DFT_UPR_MODEL@,$DFT_UPR_MODEL,;t t -s,@TINFO_NAME@,$TINFO_NAME,;t t -s,@LIB_NAME@,$LIB_NAME,;t t -s,@LIB_PREFIX@,$LIB_PREFIX,;t t -s,@CC_G_OPT@,$CC_G_OPT,;t t -s,@CXX_G_OPT@,$CXX_G_OPT,;t t -s,@LD_MODEL@,$LD_MODEL,;t t -s,@CC_SHARED_OPTS@,$CC_SHARED_OPTS,;t t -s,@LD_SHARED_OPTS@,$LD_SHARED_OPTS,;t t -s,@MK_SHARED_LIB@,$MK_SHARED_LIB,;t t -s,@LINK_PROGS@,$LINK_PROGS,;t t -s,@LINK_TESTS@,$LINK_TESTS,;t t -s,@EXTRA_LDFLAGS@,$EXTRA_LDFLAGS,;t t -s,@LOCAL_LDFLAGS@,$LOCAL_LDFLAGS,;t t -s,@LOCAL_LDFLAGS2@,$LOCAL_LDFLAGS2,;t t -s,@INSTALL_LIB@,$INSTALL_LIB,;t t -s,@TERMINFO_SRC@,$TERMINFO_SRC,;t t -s,@PATHSEP@,$PATHSEP,;t t -s,@FALLBACK_LIST@,$FALLBACK_LIST,;t t -s,@WHICH_XTERM@,$WHICH_XTERM,;t t -s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t -s,@TERMINFO@,$TERMINFO,;t t -s,@MAKE_TERMINFO@,$MAKE_TERMINFO,;t t -s,@TERMPATH@,$TERMPATH,;t t -s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t -s,@NCURSES_CH_T@,$NCURSES_CH_T,;t t -s,@NCURSES_LIBUTF8@,$NCURSES_LIBUTF8,;t t -s,@NEED_WCHAR_H@,$NEED_WCHAR_H,;t t -s,@NCURSES_MBSTATE_T@,$NCURSES_MBSTATE_T,;t t -s,@NCURSES_WCHAR_T@,$NCURSES_WCHAR_T,;t t -s,@NCURSES_WINT_T@,$NCURSES_WINT_T,;t t -s,@NCURSES_OK_WCHAR_T@,$NCURSES_OK_WCHAR_T,;t t -s,@NCURSES_OK_WINT_T@,$NCURSES_OK_WINT_T,;t t -s,@NCURSES_BOOL@,$NCURSES_BOOL,;t t -s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t -s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t -s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t -s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t -s,@NCURSES_CONST@,$NCURSES_CONST,;t t -s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t -s,@ECHO_LINK@,$ECHO_LINK,;t t -s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t -s,@ADA_TRACE@,$ADA_TRACE,;t t -s,@MATH_LIB@,$MATH_LIB,;t t -s,@cf_cv_typeof_chtype@,$cf_cv_typeof_chtype,;t t -s,@cf_cv_1UL@,$cf_cv_1UL,;t t -s,@HAVE_VSSCANF@,$HAVE_VSSCANF,;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,@CXXLDFLAGS@,$CXXLDFLAGS,;t t -s,@CXX_AR@,$CXX_AR,;t t -s,@CXX_AR_OPTS@,$CXX_AR_OPTS,;t t -s,@CXXLIBS@,$CXXLIBS,;t t -s,@USE_CXX_BOOL@,$USE_CXX_BOOL,;t t -s,@gnat_exists@,$gnat_exists,;t t -s,@M4_exists@,$M4_exists,;t t -s,@cf_ada_make@,$cf_ada_make,;t t -s,@cf_ada_compiler@,$cf_ada_compiler,;t t -s,@cf_ada_package@,$cf_ada_package,;t t -s,@ADAFLAGS@,$ADAFLAGS,;t t -s,@cf_compile_generics@,$cf_compile_generics,;t t -s,@cf_generic_objects@,$cf_generic_objects,;t t -s,@PRAGMA_UNREF@,$PRAGMA_UNREF,;t t -s,@ADA_INCLUDE@,$ADA_INCLUDE,;t t -s,@ADA_OBJECTS@,$ADA_OBJECTS,;t t -s,@ACPPFLAGS@,$ACPPFLAGS,;t t -s,@DFT_ARG_SUFFIX@,$DFT_ARG_SUFFIX,;t t -s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t -s,@DFT_OBJ_SUBDIR@,$DFT_OBJ_SUBDIR,;t t -s,@CXX_LIB_SUFFIX@,$CXX_LIB_SUFFIX,;t t -s,@TINFO_ARG_SUFFIX@,$TINFO_ARG_SUFFIX,;t t -s,@TINFO_DEP_SUFFIX@,$TINFO_DEP_SUFFIX,;t t -s,@TINFO_LIB_SUFFIX@,$TINFO_LIB_SUFFIX,;t t -s,@PROG_ARGS@,$PROG_ARGS,;t t -s,@EXTRA_LIBS@,$EXTRA_LIBS,;t t -s,@TINFO_LIST@,$TINFO_LIST,;t t -s,@SHLIB_LIST@,$SHLIB_LIST,;t t -s,@DIRS_TO_MAKE@,$DIRS_TO_MAKE,;t t -s,@TEST_DEPS@,$TEST_DEPS,;t t -s,@TEST_ARGS@,$TEST_ARGS,;t t -s,@ADA_SUBDIRS@,$ADA_SUBDIRS,;t t -CEOF - -EOF - - cat >>$CONFIG_STATUS <<\EOF - # 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" - -EOF -cat >>$CONFIG_STATUS <<\EOF -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=`$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 test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - { case "$ac_dir" in - [\\/]* | ?:[\\/]* ) as_incr_dir=;; - *) as_incr_dir=.;; -esac -as_dummy="$ac_dir" -for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do - case $as_mkdir_dir in - # Skip DOS drivespec - ?:) as_incr_dir=$as_mkdir_dir ;; - *) - as_incr_dir=$as_incr_dir/$as_mkdir_dir - test -d "$as_incr_dir" || mkdir "$as_incr_dir" - ;; - esac -done; } - - ac_dir_suffix="/`echo $ac_dir|sed 's,^\./,,'`" - # A "../" for each directory in $ac_dir_suffix. - ac_dots=`echo "$ac_dir_suffix" | sed 's,/[^/]*,../,g'` - else - ac_dir_suffix= ac_dots= - fi - - case $srcdir in - .) ac_srcdir=. - if test -z "$ac_dots"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_dots | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_dots$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_dots$srcdir ;; - esac - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_dots$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:13313: 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 automatically by config.status. */ - configure_input="Generated automatically 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:13331: 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:13344: 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; } -EOF -cat >>$CONFIG_STATUS <>$CONFIG_STATUS <<\EOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;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 -EOF -cat >>$CONFIG_STATUS <<\EOF - -# -# 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_i turns "#undef NAME" with trailing blanks into "#define NAME VALUE". -ac_iA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' -ac_iB='\([ ]\),\1#\2define\3' -ac_iC=' ' -ac_iD='\4,;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:13410: 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:13421: 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:13434: 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 - -EOF - -# Transform confdefs.h into a list of #define's. We won't use it as a sed -# script, but as data to insert where we see @DEFS@. We expect AC_SAVE_DEFS to -# be either 'cat' or 'sort'. -cat confdefs.h | uniq >conftest.vals - -# Break up conftest.vals because some shells have a limit on -# the size of here documents, and old seds have small limits too. - -rm -f conftest.tail -echo ' rm -f conftest.frag' >> $CONFIG_STATUS -while grep . conftest.vals >/dev/null -do - # Write chunks of a limited-size here document to conftest.frag. - echo ' cat >> conftest.frag <> $CONFIG_STATUS - sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS - echo 'CEOF' >> $CONFIG_STATUS - sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail - rm -f conftest.vals - mv conftest.tail conftest.vals -done -rm -f conftest.vals - -# Run sed to substitute the contents of conftest.frag into $tmp/in at the -# marker @DEFS@. -echo ' cat >> conftest.edit < $tmp/out -rm -f $tmp/in -mv $tmp/out $tmp/in -rm -f conftest.edit conftest.frag -' >> $CONFIG_STATUS - -cat >>$CONFIG_STATUS <<\EOF - # 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 automatically by config.status. */ - if test x"$ac_file" = x-; then - echo "/* Generated automatically by configure. */" >$tmp/config.h - else - echo "/* $ac_file. Generated automatically by configure. */" >$tmp/config.h - fi - cat $tmp/in >>$tmp/config.h - rm -f $tmp/in - if test x"$ac_file" != x-; then - if cmp -s $ac_file $tmp/config.h 2>/dev/null; then - { echo "$as_me:13492: $ac_file is unchanged" >&5 -echo "$as_me: $ac_file is unchanged" >&6;} - else - ac_dir=`$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 test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then - { case "$ac_dir" in - [\\/]* | ?:[\\/]* ) as_incr_dir=;; - *) as_incr_dir=.;; -esac -as_dummy="$ac_dir" -for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do - case $as_mkdir_dir in - # Skip DOS drivespec - ?:) as_incr_dir=$as_mkdir_dir ;; - *) - as_incr_dir=$as_incr_dir/$as_mkdir_dir - test -d "$as_incr_dir" || mkdir "$as_incr_dir" - ;; - esac -done; } - - fi - rm -f $ac_file - mv $tmp/config.h $ac_file - fi - else - cat $tmp/config.h - rm -f $tmp/config.h - fi -done -EOF -cat >>$CONFIG_STATUS <<\EOF - -# -# CONFIG_COMMANDS section. -# -for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue - ac_dest=`echo "$ac_file" | sed 's,:.*,,'` - ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` - - case $ac_dest in - default ) - - case $cf_cv_system_name in - OS/2*) LIB_PREFIX='' ;; - os2*) LIB_PREFIX='' ;; - *) LIB_PREFIX='lib' ;; - esac -cf_prefix=$LIB_PREFIX - -for cf_dir in $SRC_SUBDIRS -do - if test -f $srcdir/$cf_dir/modules; then - - IMPORT_LIB= - SHARED_LIB= - LIBS_TO_MAKE= - for cf_item in $CF_LIST_MODELS - do - - case $cf_item in - libtool) cf_suffix='.la' ;; - normal) cf_suffix='.a' ;; - debug) cf_suffix='_g.a' ;; - profile) cf_suffix='_p.a' ;; - shared) - case $cf_cv_system_name in - cygwin*) cf_suffix='.dll' ;; - darwin*) cf_suffix='.dylib' ;; - hpux*) - case $target in - ia64*) cf_suffix='.so' ;; - *) cf_suffix='.sl' ;; - esac - ;; - *) cf_suffix='.so' ;; - esac - esac - test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}" - - if test $cf_item = shared ; then - if test "$cf_cv_do_symlinks" = yes ; then - case "$cf_cv_shlib_version" in #(vi - rel) #(vi - case "$cf_cv_system_name" in #(vi - darwin*) - case .${LIB_SUFFIX} in - .w*) - cf_suffix=`echo $cf_suffix | sed 's/^w//'` - cf_suffix=w'.$(REL_VERSION)'"$cf_suffix" - ;; - *) - cf_suffix='.$(REL_VERSION)'"$cf_suffix" - ;; - esac - ;; #(vi - *) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;; - esac - ;; - abi) - case "$cf_cv_system_name" in #(vi - darwin*) - case .${LIB_SUFFIX} in - .w*) - cf_suffix=`echo $cf_suffix | sed 's/^w//'` - cf_suffix=w'.$(ABI_VERSION)'"$cf_suffix" - ;; - *) - cf_suffix='.$(ABI_VERSION)'"$cf_suffix" - ;; - esac - ;; #(vi - *) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;; - esac - ;; - esac - fi - # cygwin needs import library, and has unique naming convention - # use autodetected ${cf_prefix} for import lib and static lib, but - # use 'cyg' prefix for shared lib. - if test $cf_cv_shlib_version = cygdll ; then - SHARED_LIB="../lib/cyg${cf_dir}\$(ABI_VERSION).dll" - IMPORT_LIB="../lib/${cf_prefix}${cf_dir}.dll.a" - LIBS_TO_MAKE="$LIBS_TO_MAKE \$(SHARED_LIB) \$(IMPORT_LIB)" - continue - fi - fi - LIBS_TO_MAKE="$LIBS_TO_MAKE ../lib/${cf_prefix}${cf_dir}${cf_suffix}" - done - - if test $cf_dir = ncurses ; then - cf_subsets="$LIB_SUBSETS" - cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'` - if test "$cf_termlib" != "$cf_subsets" ; then - cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g` - LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE" - fi - else - cf_subsets=`echo "$LIB_SUBSETS" | sed -e 's/^termlib.* //'` - fi - - sed -e "s%@LIBS_TO_MAKE@%$LIBS_TO_MAKE%" \ - -e "s%@IMPORT_LIB@%$IMPORT_LIB%" \ - -e "s%@SHARED_LIB@%$SHARED_LIB%" \ - $cf_dir/Makefile >$cf_dir/Makefile.out - mv $cf_dir/Makefile.out $cf_dir/Makefile - - $AWK -f $srcdir/mk-0th.awk \ - libname="${cf_dir}${LIB_SUFFIX}" subsets="$LIB_SUBSETS" \ - $srcdir/$cf_dir/modules >>$cf_dir/Makefile - - for cf_subset in $cf_subsets - do - cf_subdirs= - for cf_item in $CF_LIST_MODELS - do - echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})" - -CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%` - - case $cf_item in - libtool) cf_suffix='.la' ;; - normal) cf_suffix='.a' ;; - debug) cf_suffix='_g.a' ;; - profile) cf_suffix='_p.a' ;; - shared) - case $cf_cv_system_name in - cygwin*) cf_suffix='.dll' ;; - darwin*) cf_suffix='.dylib' ;; - hpux*) - case $target in - ia64*) cf_suffix='.so' ;; - *) cf_suffix='.sl' ;; - esac - ;; - *) cf_suffix='.so' ;; - esac - esac - test -n "$LIB_SUFFIX" && cf_suffix="${LIB_SUFFIX}${cf_suffix}" - - case $cf_item in - libtool) cf_subdir='obj_lo' ;; - normal) cf_subdir='objects' ;; - debug) cf_subdir='obj_g' ;; - profile) cf_subdir='obj_p' ;; - shared) - case $cf_cv_system_name in #(vi - cygwin) #(vi - cf_subdir='objects' ;; - *) - cf_subdir='obj_s' ;; - esac - esac - - # Test for case where we build libtinfo with a different name. - cf_libname=$cf_dir - if test $cf_dir = ncurses ; then - case $cf_subset in - *base*) - ;; - termlib*) - cf_libname=$TINFO_LIB_SUFFIX - if test -n "${DFT_ARG_SUFFIX}" ; then - # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX - cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"` - fi - ;; - esac - fi - - # These dependencies really are for development, not - # builds, but they are useful in porting, too. - cf_depend="../include/ncurses_cfg.h" - if test "$srcdir" = "."; then - cf_reldir="." - else - cf_reldir="\$(srcdir)" - fi - - if test -f $srcdir/$cf_dir/$cf_dir.priv.h; then - cf_depend="$cf_depend $cf_reldir/$cf_dir.priv.h" - elif test -f $srcdir/$cf_dir/curses.priv.h; then - cf_depend="$cf_depend $cf_reldir/curses.priv.h" - fi - - cf_dir_suffix= - old_cf_suffix="$cf_suffix" - if test "$cf_cv_shlib_version_infix" = yes ; then - if test -n "$LIB_SUFFIX" ; then - case $LIB_SUFFIX in - w*) - cf_libname=`echo $cf_libname | sed 's/w$//'` - cf_suffix=`echo $cf_suffix | sed 's/^w//'` - cf_dir_suffix=w - ;; - esac - fi - fi - - $AWK -f $srcdir/mk-1st.awk \ - name=${cf_libname}${cf_dir_suffix} \ - traces=$LIB_TRACING \ - MODEL=$CF_ITEM \ - model=$cf_subdir \ - prefix=$cf_prefix \ - suffix=$cf_suffix \ - subset=$cf_subset \ - ShlibVer=$cf_cv_shlib_version \ - ShlibVerInfix=$cf_cv_shlib_version_infix \ - DoLinks=$cf_cv_do_symlinks \ - rmSoLocs=$cf_cv_rm_so_locs \ - ldconfig="$LDCONFIG" \ - overwrite=$WITH_OVERWRITE \ - depend="$cf_depend" \ - host="$host" \ - $srcdir/$cf_dir/modules >>$cf_dir/Makefile - - cf_suffix="$old_cf_suffix" - - for cf_subdir2 in $cf_subdirs lib - do - test $cf_subdir = $cf_subdir2 && break - done - test "${cf_subset}.${cf_subdir2}" != "${cf_subset}.${cf_subdir}" && \ - $AWK -f $srcdir/mk-2nd.awk \ - name=$cf_dir \ - traces=$LIB_TRACING \ - MODEL=$CF_ITEM \ - model=$cf_subdir \ - subset=$cf_subset \ - srcdir=$srcdir \ - echo=$WITH_ECHO \ - crenames=$cf_cv_prog_CC_c_o \ - cxxrenames=$cf_cv_prog_CXX_c_o \ - $srcdir/$cf_dir/modules >>$cf_dir/Makefile - cf_subdirs="$cf_subdirs $cf_subdir" - done - done - fi - - echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) $@' >>Makefile -done - -for cf_dir in $SRC_SUBDIRS -do - if test -f $cf_dir/Makefile ; then - case "$cf_dir" in - Ada95) #(vi - echo 'libs \' >> Makefile - echo 'install.libs \' >> Makefile - echo 'uninstall.libs ::' >> Makefile - echo ' cd '$cf_dir' && $(MAKE) $(CF_MFLAGS) $@' >> Makefile - ;; - esac - fi - - if test -f $srcdir/$cf_dir/modules; then - echo >> Makefile - if test -f $srcdir/$cf_dir/headers; then -cat >> Makefile <> Makefile -fi -cat >> Makefile <> Makefile <> Makefile <> Makefile <headers.sh <>headers.sh </<\$END\/\$NAME>/" >> \$TMPSED - done - ;; -*) - echo "" >> \$TMPSED - ;; -esac -CF_EOF -else - cat >>headers.sh <//" >> \$TMPSED - NAME=ncurses.h - fi - echo "s/<\$NAME>/<\$END\/\$NAME>/" >> \$TMPSED - done - ;; -*) - echo "s///" >> \$TMPSED - ;; -esac -CF_EOF -fi -cat >>headers.sh < \$TMPSRC -NAME=\`basename \$SRC\` -CF_EOF -if test $WITH_CURSES_H != yes; then - cat >>headers.sh <>headers.sh <>$cf_dir/Makefile <>$cf_dir/Makefile - j=$i - done - echo " $j" >>$cf_dir/Makefile - for i in `cat $srcdir/$cf_dir/headers |fgrep -v "#"` - do - echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f `basename $i`) ; ../headers.sh \$(INSTALL_DATA) \$(DESTDIR)\$(includedir) \$(srcdir) $i" >>$cf_dir/Makefile - test $i = curses.h && test $WITH_CURSES_H = yes && echo " @ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h && \$(LN_S) curses.h ncurses.h)" >>$cf_dir/Makefile - done - - cat >>$cf_dir/Makefile <>$cf_dir/Makefile - test $i = curses.h && echo " -@ (cd \$(DESTDIR)\$(includedir) && rm -f ncurses.h)" >>$cf_dir/Makefile - done - fi - - if test -f $srcdir/$cf_dir/modules; then - if test "$cf_dir" != "c++" ; then - cat >>$cf_dir/Makefile <<"CF_EOF" -depend : $(AUTO_SRC) - makedepend -- $(CPPFLAGS) -- $(C_SRC) - -# DO NOT DELETE THIS LINE -- make depend depends on it. -CF_EOF - fi - fi -done - - ;; - esac -done -EOF - -cat >>$CONFIG_STATUS <<\EOF - -{ (exit 0); exit 0; } -EOF -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=: - exec 5>/dev/null - $SHELL $CONFIG_STATUS || 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 -${MAKE-make} preinstall diff --git a/Build/source/libs/ncurses/configure.in b/Build/source/libs/ncurses/configure.in deleted file mode 100644 index 5bfd7b86b85..00000000000 --- a/Build/source/libs/ncurses/configure.in +++ /dev/null @@ -1,1341 +0,0 @@ -dnl*************************************************************************** -dnl Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -dnl * -dnl Permission is hereby granted, free of charge, to any person obtaining a * -dnl copy of this software and associated documentation files (the * -dnl "Software"), to deal in the Software without restriction, including * -dnl without limitation the rights to use, copy, modify, merge, publish, * -dnl distribute, distribute with modifications, sublicense, and/or sell * -dnl copies of the Software, and to permit persons to whom the Software is * -dnl furnished to do so, subject to the following conditions: * -dnl * -dnl The above copyright notice and this permission notice shall be included * -dnl in all copies or substantial portions of the Software. * -dnl * -dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * -dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * -dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * -dnl IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * -dnl DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * -dnl OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * -dnl THE USE OR OTHER DEALINGS IN THE SOFTWARE. * -dnl * -dnl Except as contained in this notice, the name(s) of the above copyright * -dnl holders shall not be used in advertising or otherwise to promote the * -dnl sale, use or other dealings in this Software without prior written * -dnl authorization. * -dnl*************************************************************************** -dnl -dnl Author: Thomas E. Dickey 1995-on -dnl -dnl $Id: configure.in,v 1.324 2004/10/09 18:12:27 tom Exp $ -dnl Process this file with autoconf to produce a configure script. -dnl -dnl See http://invisible-island.net/autoconf/ for additional information. -dnl -dnl --------------------------------------------------------------------------- -AC_PREREQ(2.13.20020210) -AC_REVISION($Revision: 1.324 $) -AC_INIT(ncurses/base/lib_initscr.c) -AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin) - -CF_SUBST_NCURSES_VERSION - -CF_WITH_REL_VERSION(NCURSES) -CF_WITH_ABI_VERSION - -CF_CHECK_CACHE([AC_CANONICAL_SYSTEM]) -AC_ARG_WITH(system-type, -[ --with-system-type=XXX test: override derived host system-type], -[AC_MSG_WARN(overriding system type to $withval) - cf_cv_system_name=$withval]) - -### Save the given $CFLAGS to allow user-override. -cf_user_CFLAGS="$CFLAGS" - -### Default install-location -CF_CFG_DEFAULTS - -### Checks for programs. -AC_PROG_CC -CF_GCC_VERSION - -AC_PROG_CPP -AC_PROG_GCC_TRADITIONAL -CF_PROG_CC_C_O(CC) -AC_ISC_POSIX -CF_ANSI_CC_REQD -CF_PROG_EXT - -AC_MSG_CHECKING(if you want to build programs such as tic) -AC_ARG_WITH(progs, - [ --without-progs suppress build with programs (e.g., tic)], - [cf_with_progs=$withval], - [cf_with_progs=no]) -AC_MSG_RESULT($cf_with_progs) - -AC_MSG_CHECKING(if you wish to install curses.h) -AC_ARG_WITH(curses-h, - [ --without-curses-h install curses.h as ncurses.h only], - [with_curses_h=$withval], - [with_curses_h=yes]) -AC_MSG_RESULT($with_curses_h) - -modules_to_build="ncurses" -if test "X$cf_with_progs" != Xno ; then -modules_to_build="$modules_to_build progs tack" -fi - -AC_ARG_PROGRAM -AC_PROG_AWK -AC_PROG_MAKE_SET -CF_PROG_INSTALL -AC_SYS_LONG_FILE_NAMES -CF_MIXEDCASE_FILENAMES -AC_PROG_LN_S -CF_MAKE_TAGS -AC_CHECK_PROGS(LINT, tdlint lint alint) -AC_CHECK_PROGS(MAN, man man_db) -AC_SUBST(LINT_OPTS) - -dnl These are standard among *NIX systems, but not when cross-compiling -AC_CHECK_TOOL(RANLIB, ranlib, ':') -AC_CHECK_TOOL(LD, ld, ld) -AC_CHECK_TOOL(AR, ar, ar) -CF_SUBST(archiver options,AR_OPTS,rv) - -CF_MAKEFLAGS - -dnl Special option for use by system-builders: the install-prefix is used to -dnl adjust the location into which the actual install is done, so that an -dnl archive can be built without modifying the host system's configuration. -AC_MSG_CHECKING(if you have specified an install-prefix) -AC_ARG_WITH(install-prefix, - [ --with-install-prefix prefixes actual install-location ($DESTDIR)], - [case "$withval" in #(vi - yes|no) #(vi - ;; - *) DESTDIR="$withval" - ;; - esac]) -AC_MSG_RESULT($DESTDIR) -AC_SUBST(DESTDIR) - -############################################################################### -CF_HELP_MESSAGE(Build-Tools Needed to Compile Temporary Applications for Cross-compiling:) -# If we're cross-compiling, allow the user to override the tools and their -# options. The configure script is oriented toward identifying the host -# compiler, etc., but we need a build compiler to generate parts of the source. -CF_BUILD_CC - -############################################################################### -CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:) - -### Options to allow the user to specify the set of libraries which are used. -### Use "--without-normal --with-shared" to allow the default model to be -### shared, for example. -cf_list_models="" -AC_SUBST(cf_list_models)dnl the complete list of models ("normal debug") - -CF_WITH_LIBTOOL -if test "$with_libtool" != "no" ; then - -cf_list_models="$cf_list_models libtool" - -else - -AC_MSG_CHECKING(if you want to build shared libraries) -AC_ARG_WITH(shared, - [ --with-shared generate shared-libraries], - [with_shared=$withval], - [with_shared=no]) -AC_MSG_RESULT($with_shared) -test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared" - -AC_MSG_CHECKING(if you want to build static libraries) -AC_ARG_WITH(normal, - [ --with-normal generate normal-libraries (default)], - [with_normal=$withval], - [with_normal=yes]) -AC_MSG_RESULT($with_normal) -test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal" - -AC_MSG_CHECKING(if you want to build debug libraries) -AC_ARG_WITH(debug, - [ --with-debug generate debug-libraries (default)], - [with_debug=$withval], - [with_debug=no]) -AC_MSG_RESULT($with_debug) -test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug" - -AC_MSG_CHECKING(if you want to build profiling libraries) -AC_ARG_WITH(profile, - [ --with-profile generate profile-libraries], - [with_profile=$withval], - [with_profile=no]) -AC_MSG_RESULT($with_profile) -test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile" - -fi - -############################################################################### - -AC_MSG_CHECKING(for specified models) -test -z "$cf_list_models" && cf_list_models=normal -dnl If we use libtool to generate libraries, then it must be the only -dnl specified model. -test "$with_libtool" != "no" && cf_list_models=libtool -AC_MSG_RESULT($cf_list_models) - -### Use the first model as the default, and save its suffix for use in building -### up test-applications. -AC_MSG_CHECKING(for default model) -DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'` -AC_MSG_RESULT($DFT_LWR_MODEL) - -CF_UPPER(DFT_UPR_MODEL,$DFT_LWR_MODEL)dnl - -AC_SUBST(DFT_LWR_MODEL)dnl the default model ("normal") -AC_SUBST(DFT_UPR_MODEL)dnl the default model ("NORMAL") - -TINFO_NAME=tinfo -AC_SUBST(TINFO_NAME) - -LIB_NAME=ncurses -AC_SUBST(LIB_NAME) - -LIB_DIR=../lib -CF_LIB_PREFIX(cf_prefix) -LIB_PREFIX=$cf_prefix -AC_SUBST(LIB_PREFIX) - -LIB_SUFFIX= -AC_SUBST(LIB_SUFFIX) - -############################################################################### - -AC_MSG_CHECKING(if you want to build a separate terminfo library) -AC_ARG_WITH(termlib, - [ --with-termlib generate separate terminfo library], - [with_termlib=$withval], - [with_termlib=no]) -AC_MSG_RESULT($with_termlib) - -### Checks for special libraries, must be done up-front. -CF_WITH_DBMALLOC -CF_WITH_DMALLOC - -SHLIB_LIST="" -AC_MSG_CHECKING(if you want to link with the GPM mouse library) -AC_ARG_WITH(gpm, - [ --with-gpm use Alessandro Rubini's GPM library], - [with_gpm=$withval], - [with_gpm=maybe]) -AC_MSG_RESULT($with_gpm) -if test "$with_gpm" != no ; then - AC_CHECK_LIB(gpm,Gpm_Open,[ - AC_CHECK_HEADER(gpm.h,[ - AC_DEFINE(HAVE_GPM_H) - with_gpm=yes - ],[ - if test "$with_gpm" = yes ; then - AC_ERROR(Cannot find GPM header) - fi - ]) - ],[ - if test "$with_gpm" = yes ; then - AC_ERROR(Cannot link with GPM library) - fi - with_gpm=no - ]) - if test "$with_gpm" = yes ; then - CF_FUNC_DLSYM - EXTRA_LIBS="-ldl -lncurses $EXTRA_LIBS" - SHLIB_LIST="-ldl $SHLIB_LIST" - AC_DEFINE(HAVE_LIBGPM) - AC_CHECK_LIB(gpm,Gpm_Wgetch,[ - AC_MSG_WARN(GPM library is already linked with curses - read the FAQ) - ]) - fi -fi - -CF_WITH_SYSMOUSE - -dnl Not all ports of gcc support the -g option - -if test X"$CC_G_OPT" = X"" ; then - CC_G_OPT='-g' - test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT='' -fi -AC_SUBST(CC_G_OPT) - -if test X"$CXX_G_OPT" = X"" ; then - CXX_G_OPT='-g' - test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT='' -fi -AC_SUBST(CXX_G_OPT) - -AC_MSG_CHECKING(for default loader flags) -case $DFT_LWR_MODEL in -libtool) LD_MODEL='' ;; -normal) LD_MODEL='' ;; -debug) LD_MODEL=$CC_G_OPT ;; -profile) LD_MODEL='-pg';; -shared) LD_MODEL='' ;; -esac -AC_SUBST(LD_MODEL)dnl the type of link (e.g., -g or -pg) -AC_MSG_RESULT($LD_MODEL) - -AC_MSG_CHECKING(if rpath option should be used) -AC_ARG_ENABLE(rpath, -[ --enable-rpath use rpath option when generating shared libraries], -[cf_cv_ld_rpath=$enableval], -[cf_cv_ld_rpath=no]) -AC_MSG_RESULT($cf_cv_ld_rpath) - -CF_SHARED_OPTS -if test "$CC_SHARED_OPTS" = "unknown"; then - for model in $cf_list_models; do - if test "$model" = "shared"; then - AC_ERROR(Shared libraries are not supported in this version) - fi - done -fi - -############################################################################### -CF_HELP_MESSAGE(Fine-Tuning Your Configuration:) - -### use option --disable-overwrite to leave out the link to -lcurses -AC_MSG_CHECKING(if you wish to install ncurses overwriting curses) -AC_ARG_ENABLE(overwrite, - [ --disable-overwrite leave out the link to -lcurses], - [with_overwrite=$enableval], - [if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi]) -AC_MSG_RESULT($with_overwrite) - -AC_MSG_CHECKING(if external terminfo-database is used) -AC_ARG_ENABLE(database, - [ --disable-database do not use terminfo, only fallbacks/termcap], - [use_database=$enableval], - [use_database=yes]) -AC_MSG_RESULT($use_database) - -case $host_os in #(vi -os2*) #(vi - TERMINFO_SRC='${top_srcdir}/misc/emx.src' - ;; -*) #(vi - TERMINFO_SRC='${top_srcdir}/misc/terminfo.src' - ;; -esac -AC_SUBST(TERMINFO_SRC) - -CF_PATHSEP -if test "$use_database" != no ; then - AC_DEFINE(USE_DATABASE) - AC_MSG_CHECKING(which terminfo source-file will be installed) - AC_ARG_ENABLE(database, - [ --with-database=XXX specify terminfo source to install], - [TERMINFO_SRC=$withval]) - AC_MSG_RESULT($TERMINFO_SRC) -fi - -AC_MSG_CHECKING(for list of fallback descriptions) -AC_ARG_WITH(fallbacks, - [ --with-fallbacks=XXX specify list of fallback terminal descriptions], - [with_fallback=$withval], - [with_fallback=]) -AC_MSG_RESULT($with_fallback) -FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'` -AC_SUBST(FALLBACK_LIST) - -AC_MSG_CHECKING(if you want modern xterm or antique) -AC_ARG_WITH(xterm-new, - [ --without-xterm-new specify if xterm terminfo should be old version], - [with_xterm_new=$withval], - [with_xterm_new=yes]) -case $with_xterm_new in -no) with_xterm_new=xterm-old;; -*) with_xterm_new=xterm-new;; -esac -AC_MSG_RESULT($with_xterm_new) -WHICH_XTERM=$with_xterm_new -AC_SUBST(WHICH_XTERM) - -MAKE_TERMINFO= -if test "$use_database" = no ; then - TERMINFO="${datadir}/terminfo" - MAKE_TERMINFO="#" -else - -AC_MSG_CHECKING(for list of terminfo directories) -CF_WITH_PATHLIST(terminfo-dirs, - [ --with-terminfo-dirs=XXX specify list of terminfo directories], - TERMINFO_DIRS, - DATADIR/terminfo, - ${datadir}/terminfo) -AC_MSG_RESULT($TERMINFO_DIRS) -test -n "$TERMINFO_DIRS" && AC_DEFINE_UNQUOTED(TERMINFO_DIRS,"$TERMINFO_DIRS") - -AC_MSG_CHECKING(for default terminfo directory) -CF_WITH_PATH(default-terminfo-dir, - [ --with-default-terminfo-dir=DIR default terminfo directory], - TERMINFO, - DATADIR/terminfo, - ${datadir}/terminfo) -AC_MSG_RESULT($TERMINFO) -AC_DEFINE_UNQUOTED(TERMINFO,"$TERMINFO") - -fi - -AC_SUBST(TERMINFO) -AC_SUBST(MAKE_TERMINFO) - -### use option --disable-big-core to make tic run on small machines -### We need 4Mb, check if we can allocate 50% more than that. -AC_MSG_CHECKING(if big-core option selected) -AC_ARG_ENABLE(big-core, - [ --disable-big-core assume machine has little memory], - [with_big_core=$enableval], - [AC_TRY_RUN([ -#include -#include -int main() { - unsigned long n = 6000000L; - char *s = malloc(n); - if (s != 0) - s[0] = s[n-1] = 0; - exit(s == 0); -}], - [with_big_core=yes], - [with_big_core=no], - [with_big_core=no])]) -AC_MSG_RESULT($with_big_core) -test "$with_big_core" = "yes" && AC_DEFINE(HAVE_BIG_CORE) - -### use option --enable-termcap to compile in the termcap fallback support -AC_MSG_CHECKING(if you want termcap-fallback support) -AC_ARG_ENABLE(termcap, - [ --enable-termcap compile in termcap fallback support], - [with_termcap=$enableval], - [with_termcap=no]) -AC_MSG_RESULT($with_termcap) - -if test "$with_termcap" != "yes" ; then - if test "$use_database" = no ; then - if test -z "$with_fallback" ; then - AC_ERROR(You have disabled the database w/o specifying fallbacks) - fi - fi - AC_DEFINE(PURE_TERMINFO) -else - -AC_DEFINE(USE_TERMCAP) -AC_MSG_CHECKING(for list of termcap files) -CF_WITH_PATHLIST(termpath, - [ --with-termpath=XXX specify list of termcap files], - TERMPATH, - /etc/termcap:/usr/share/misc/termcap) -AC_MSG_RESULT($TERMPATH) -test -n "$TERMPATH" && AC_DEFINE_UNQUOTED(TERMPATH,"$TERMPATH") - -### use option --enable-getcap to use a hacked getcap for reading termcaps -AC_MSG_CHECKING(if fast termcap-loader is needed) -AC_ARG_ENABLE(getcap, - [ --enable-getcap fast termcap load, no xrefs to terminfo], - [with_getcap=$enableval], - [with_getcap=no]) -AC_MSG_RESULT($with_getcap) -test "$with_getcap" = "yes" && AC_DEFINE(USE_GETCAP) - -AC_MSG_CHECKING(if translated termcaps will be cached in ~/.terminfo) -AC_ARG_ENABLE(getcap-cache, - [ --enable-getcap-cache cache translated termcaps in ~/.terminfo], - [with_getcap_cache=$enableval], - [with_getcap_cache=no]) -AC_MSG_RESULT($with_getcap_cache) -test "$with_getcap_cache" = "yes" && AC_DEFINE(USE_GETCAP_CACHE) - -fi - -### Use option --disable-home-terminfo to completely remove ~/.terminfo -AC_MSG_CHECKING(if ~/.terminfo is wanted) -AC_ARG_ENABLE(home-terminfo, - [ --disable-home-terminfo drop ~/.terminfo from terminfo search-path], - [with_home_terminfo=$enableval], - [with_home_terminfo=yes]) -test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO) - -### Use option --enable-symlinks to make tic use symlinks, not hard links -### to reduce storage requirements for the terminfo database. -CF_LINK_FUNCS - -with_links=no -with_symlinks=no - -if test "$ac_cv_func_link" != yes ; then - AC_MSG_CHECKING(if tic should use symbolic links) - if test "$ac_cv_func_symlink" = yes ; then - with_symlinks=yes - else - with_symlinks=no - fi - AC_MSG_RESULT($with_symlinks) -elif test "$ac_cv_func_symlink" != yes ; then - AC_MSG_CHECKING(if tic should use hard links) - if test "$ac_cv_func_link" = yes ; then - with_links=yes - else - with_links=no - fi - AC_MSG_RESULT($with_links) -else - AC_MSG_CHECKING(if tic should use symbolic links) - AC_ARG_ENABLE(symlinks, - [ --enable-symlinks make tic use symbolic links not hard links], - [with_symlinks=$enableval], - [with_symlinks=no]) - AC_MSG_RESULT($with_symlinks) -fi - -test "$with_links" = yes && AC_DEFINE(USE_LINKS) -test "$with_symlinks" = yes && AC_DEFINE(USE_SYMLINKS) - -### use option --enable-broken-linker to force on use of broken-linker support -AC_MSG_CHECKING(if you want broken-linker support code) -AC_ARG_ENABLE(broken_linker, - [ --enable-broken_linker compile with broken-linker support code], - [with_broken_linker=$enableval], - [with_broken_linker=${BROKEN_LINKER-no}]) -AC_MSG_RESULT($with_broken_linker) - -BROKEN_LINKER=0 -if test "$with_broken_linker" = yes ; then - AC_DEFINE(BROKEN_LINKER) - BROKEN_LINKER=1 -elif test "$DFT_LWR_MODEL" = shared ; then - case $cf_cv_system_name in #(vi - cygwin*) - AC_DEFINE(BROKEN_LINKER) - BROKEN_LINKER=1 - CF_VERBOSE(cygwin linker is broken anyway) - ;; - esac -fi -AC_SUBST(BROKEN_LINKER) - -### use option --enable-widec to turn on use of wide-character support -NCURSES_CH_T=chtype -NCURSES_LIBUTF8=0 - -NEED_WCHAR_H=0 -NCURSES_MBSTATE_T=0 -NCURSES_WCHAR_T=0 -NCURSES_WINT_T=0 - -# Check to define _XOPEN_SOURCE "automatically" -CF_XOPEN_SOURCE - -# Checks for CODESET support. -AM_LANGINFO_CODESET - -# use these variables to work around a defect in gcc's fixincludes. -NCURSES_OK_WCHAR_T= -NCURSES_OK_WINT_T= - -AC_MSG_CHECKING(if you want wide-character code) -AC_ARG_ENABLE(widec, - [ --enable-widec compile with wide-char/UTF-8 code], - [with_widec=$enableval], - [with_widec=no]) -AC_MSG_RESULT($with_widec) -if test "$with_widec" = yes ; then - LIB_SUFFIX="w${LIB_SUFFIX}" - AC_DEFINE(USE_WIDEC_SUPPORT) - CF_PREDEFINE(_XOPEN_SOURCE,500) - CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED) - # with_overwrite=no - NCURSES_CH_T=cchar_t - AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc) - if test "$ac_cv_func_putwc" != yes ; then - CF_LIBUTF8 - if test "$cf_cv_libutf8" = yes ; then - NCURSES_LIBUTF8=1 - fi - fi - CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T) - CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T) - CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T) -fi -AC_SUBST(NCURSES_CH_T) -AC_SUBST(NCURSES_LIBUTF8) - -AC_SUBST(NEED_WCHAR_H) -AC_SUBST(NCURSES_MBSTATE_T) -AC_SUBST(NCURSES_WCHAR_T) -AC_SUBST(NCURSES_WINT_T) - -AC_SUBST(NCURSES_OK_WCHAR_T) -AC_SUBST(NCURSES_OK_WINT_T) - -### use option --with-bool to override bool's type -AC_MSG_CHECKING(for type of bool) -AC_ARG_WITH(bool, - [ --with-bool=TYPE override fallback type of bool variable], - [NCURSES_BOOL="$withval"], - [NCURSES_BOOL=auto]) -AC_MSG_RESULT($NCURSES_BOOL) -AC_SUBST(NCURSES_BOOL) - -AC_MSG_CHECKING(for alternate terminal capabilities file) -AC_ARG_WITH(caps, - [ --with-caps=alt compile with alternate Caps file], - [TERMINFO_CAPS=Caps.$withval], - [TERMINFO_CAPS=Caps]) -test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps -AC_MSG_RESULT($TERMINFO_CAPS) -AC_SUBST(TERMINFO_CAPS) - -### use option --with-ospeed to override ospeed's type -AC_MSG_CHECKING(for type of ospeed) -AC_ARG_WITH(ospeed, - [ --with-ospeed=TYPE override type of ospeed variable], - [NCURSES_OSPEED="$withval"], - [NCURSES_OSPEED=short]) -AC_MSG_RESULT($NCURSES_OSPEED) -AC_SUBST(NCURSES_OSPEED) - -### use option --enable-bsdpad to have tputs process BSD-style prefix padding -AC_MSG_CHECKING(if tputs should process BSD-style prefix padding) -AC_ARG_ENABLE(bsdpad, - [ --enable-bsdpad recognize BSD-style prefix padding], - [with_bsdpad=$enableval], - [with_bsdpad=no]) -AC_MSG_RESULT($with_bsdpad) -test "$with_bsdpad" = yes && AC_DEFINE(BSD_TPUTS) - -### Enable compiling-in rcs id's -AC_MSG_CHECKING(if RCS identifiers should be compiled-in) -AC_ARG_WITH(rcs-ids, - [ --with-rcs-ids compile-in RCS identifiers], - [with_rcs_ids=$withval], - [with_rcs_ids=no]) -AC_MSG_RESULT($with_rcs_ids) -test "$with_rcs_ids" = yes && AC_DEFINE(USE_RCS_IDS) - -############################################################################### -CF_MAN_PAGES([ captoinfo clear infocmp infotocap tic toe tput ]) - -############################################################################### -CF_HELP_MESSAGE(Extensions:) - -### Note that some functions (such as const) are normally disabled anyway. -AC_MSG_CHECKING(if you want to build with function extensions) -AC_ARG_ENABLE(ext-funcs, - [ --disable-ext-funcs disable function-extensions], - [with_ext_funcs=$enableval], - [with_ext_funcs=yes]) -AC_MSG_RESULT($with_ext_funcs) -if test "$with_ext_funcs" = yes ; then - NCURSES_EXT_FUNCS=1 - AC_DEFINE(HAVE_CURSES_VERSION) - AC_DEFINE(HAVE_HAS_KEY) - AC_DEFINE(HAVE_RESIZETERM) - AC_DEFINE(HAVE_RESIZE_TERM) - AC_DEFINE(HAVE_USE_DEFAULT_COLORS) - AC_DEFINE(HAVE_WRESIZE) - AC_DEFINE(NCURSES_EXT_FUNCS) -else - NCURSES_EXT_FUNCS=0 -fi -AC_SUBST(NCURSES_EXT_FUNCS) - -### use option --enable-const to turn on use of const beyond that in XSI. -AC_MSG_CHECKING(for extended use of const keyword) -AC_ARG_ENABLE(const, - [ --enable-const compile with extra/non-standard const], - [with_ext_const=$enableval], - [with_ext_const=no]) -AC_MSG_RESULT($with_ext_const) -NCURSES_CONST='/*nothing*/' -if test "$with_ext_const" = yes ; then - NCURSES_CONST=const -fi -AC_SUBST(NCURSES_CONST) - -AC_MSG_CHECKING(if you want \$NCURSES_NO_PADDING code) -AC_ARG_ENABLE(no-padding, - [ --enable-no-padding compile with $NCURSES_NO_PADDING code], - [with_no_padding=$enableval], - [with_no_padding=$with_ext_funcs]) -AC_MSG_RESULT($with_no_padding) -test "$with_no_padding" = yes && AC_DEFINE(NCURSES_NO_PADDING) - -### use option --enable-sigwinch to turn on use of SIGWINCH logic -AC_MSG_CHECKING(if you want SIGWINCH handler) -AC_ARG_ENABLE(sigwinch, - [ --enable-sigwinch compile with SIGWINCH handler], - [with_sigwinch=$enableval], - [with_sigwinch=$with_ext_funcs]) -AC_MSG_RESULT($with_sigwinch) -test "$with_sigwinch" = yes && AC_DEFINE(USE_SIGWINCH) - -### use option --enable-tcap-names to allow user to define new capabilities -AC_MSG_CHECKING(if you want user-definable terminal capabilities like termcap) -AC_ARG_ENABLE(tcap-names, - [ --enable-tcap-names compile with user-definable terminal capabilities], - [with_tcap_names=$enableval], - [with_tcap_names=$with_ext_funcs]) -AC_MSG_RESULT($with_tcap_names) -NCURSES_XNAMES=0 -test "$with_tcap_names" = yes && NCURSES_XNAMES=1 -AC_SUBST(NCURSES_XNAMES) - -############################################################################### -# These options are relatively safe to experiment with. -CF_HELP_MESSAGE(Development Code:) -AC_MSG_CHECKING(if you want all development code) -AC_ARG_WITH(develop, - [ --with-develop enable all development options], - [with_develop=$withval], - [with_develop=no]) -AC_MSG_RESULT($with_develop) - -### use option --enable-hard-tabs to turn on use of hard-tabs optimize -AC_MSG_CHECKING(if you want hard-tabs code) -AC_ARG_ENABLE(hard-tabs, - [ --enable-hard-tabs compile with hard-tabs code], - [with_hardtabs=$enableval], - [with_hardtabs=$with_develop]) -AC_MSG_RESULT($with_hardtabs) -test "$with_hardtabs" = yes && AC_DEFINE(USE_HARD_TABS) - -AC_MSG_CHECKING(if you want to use restrict environment when running as root) -AC_ARG_ENABLE(root-environ, - [ --disable-root-environ limit environment when running as root], - [with_root_environ=$enableval], - [with_root_environ=yes]) -AC_MSG_RESULT($with_root_environ) -test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON) - -### use option --enable-xmc-glitch to turn on use of magic-cookie optimize -AC_MSG_CHECKING(if you want limited support for xmc) -AC_ARG_ENABLE(xmc-glitch, - [ --enable-xmc-glitch compile with limited support for xmc], - [with_xmc_glitch=$enableval], - [with_xmc_glitch=$with_develop]) -AC_MSG_RESULT($with_xmc_glitch) -test "$with_xmc_glitch" = yes && AC_DEFINE(USE_XMC_SUPPORT) - -############################################################################### -# These are just experimental, probably should not be in a package: -CF_HELP_MESSAGE(Experimental Code:) - -AC_MSG_CHECKING(if you do not want to assume colors are white-on-black) -AC_ARG_ENABLE(assumed-color, - [ --disable-assumed-color do not assume anything about default-colors], - [with_assumed_color=$enableval], - [with_assumed_color=yes]) -AC_MSG_RESULT($with_assumed_color) -test "$with_assumed_color" = yes && AC_DEFINE(USE_ASSUMED_COLOR) - -### use option --enable-hashmap to turn on use of hashmap scrolling logic -AC_MSG_CHECKING(if you want hashmap scrolling-optimization code) -AC_ARG_ENABLE(hashmap, - [ --disable-hashmap compile without hashmap scrolling-optimization], - [with_hashmap=$enableval], - [with_hashmap=yes]) -AC_MSG_RESULT($with_hashmap) -test "$with_hashmap" = yes && AC_DEFINE(USE_HASHMAP) - -### use option --enable-colorfgbg to turn on use of $COLORFGBG environment -AC_MSG_CHECKING(if you want colorfgbg code) -AC_ARG_ENABLE(colorfgbg, - [ --enable-colorfgbg compile with $COLORFGBG code], - [with_colorfgbg=$enableval], - [with_colorfgbg=no]) -AC_MSG_RESULT($with_colorfgbg) -test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG) - -AC_MSG_CHECKING(if you want experimental safe-sprintf code) -AC_ARG_ENABLE(safe-sprintf, - [ --enable-safe-sprintf compile with experimental safe-sprintf code], - [with_safe_sprintf=$enableval], - [with_safe_sprintf=no]) -AC_MSG_RESULT($with_safe_sprintf) -test "$with_safe_sprintf" = yes && AC_DEFINE(USE_SAFE_SPRINTF) - -### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic -# when hashmap is used scroll hints are useless -if test "$with_hashmap" = no ; then -AC_MSG_CHECKING(if you want to experiment without scrolling-hints code) -AC_ARG_ENABLE(scroll-hints, - [ --disable-scroll-hints compile without scroll-hints code], - [with_scroll_hints=$enableval], - [with_scroll_hints=yes]) -AC_MSG_RESULT($with_scroll_hints) -test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS) -fi - -############################################################################### -CF_HELP_MESSAGE(Testing/development Options:) - -### use option --disable-echo to suppress full display compiling commands -AC_MSG_CHECKING(if you want to display full commands during build) -AC_ARG_ENABLE(echo, - [ --enable-echo build: display "compiling" commands (default)], - [with_echo=$enableval], - [with_echo=yes]) -if test "$with_echo" = yes; then - ECHO_LINK= -else - ECHO_LINK='@ echo linking $@ ... ;' - test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent" -fi -AC_MSG_RESULT($with_echo) -AC_SUBST(ECHO_LINK) - -### use option --enable-warnings to turn on all gcc warnings -AC_MSG_CHECKING(if you want to see compiler warnings) -AC_ARG_ENABLE(warnings, - [ --enable-warnings build: turn on GCC compiler warnings], - [with_warnings=$enableval]) -AC_MSG_RESULT($with_warnings) - -if test -n "$with_warnings"; then - ADAFLAGS="$ADAFLAGS -gnatg" - CF_GCC_WARNINGS -fi -CF_GCC_ATTRIBUTES - -### use option --enable-assertions to turn on generation of assertion code -AC_MSG_CHECKING(if you want to enable runtime assertions) -AC_ARG_ENABLE(assertions, - [ --enable-assertions test: turn on generation of assertion code], - [with_assertions=$enableval], - [with_assertions=no]) -AC_MSG_RESULT($with_assertions) -if test -n "$GCC" -then - if test "$with_assertions" = no - then - AC_DEFINE(NDEBUG) - CPPFLAGS="$CPPFLAGS -DNDEBUG" - else - ADAFLAGS="$ADAFLAGS -gnata" - fi -fi - -### use option --disable-leaks to suppress "permanent" leaks, for testing -AC_ARG_ENABLE(leaks, - [ --disable-leaks test: suppress permanent memory-leaks], - [test "$enableval" = no && AC_DEFINE(NO_LEAKS)]) -AC_DEFINE(HAVE_NC_ALLOC_H) - -### use option --enable-expanded to generate certain macros as functions -AC_ARG_ENABLE(expanded, - [ --enable-expanded test: generate functions for certain macros], - [test "$enableval" = yes && AC_DEFINE(NCURSES_EXPANDED)]) - -### use option --disable-macros to suppress macros in favor of functions -AC_ARG_ENABLE(macros, - [ --disable-macros test: use functions rather than macros], - [test "$enableval" = no && AC_DEFINE(NCURSES_NOMACROS)]) - -# Normally we only add trace() to the debug-library. Allow this to be -# extended to all models of the ncurses library: -cf_all_traces=no -case "$CFLAGS $CPPFLAGS" in -*-DTRACE*) - cf_all_traces=yes - ;; -esac - -AC_MSG_CHECKING(whether to add trace feature to all models) -AC_ARG_WITH(trace, -[ --with-trace test: add trace() function to all models of ncurses], -[cf_with_trace=$withval], -[cf_with_trace=$cf_all_traces]) -AC_MSG_RESULT($with_trace) - -if test "$cf_with_trace" = yes ; then - LIB_TRACING=all - ADA_TRACE=TRUE - CF_ADD_CFLAGS(-DTRACE) -else - LIB_TRACING=DEBUG - ADA_TRACE=FALSE -fi - -AC_SUBST(ADA_TRACE) - -### Checks for libraries. -AC_CHECK_FUNC(gettimeofday, - AC_DEFINE(HAVE_GETTIMEOFDAY),[ - -AC_CHECK_LIB(bsd, gettimeofday, - AC_DEFINE(HAVE_GETTIMEOFDAY) - LIBS="$LIBS -lbsd")])dnl CLIX: bzero, select, gettimeofday - -CF_MATH_LIB(MATH_LIB,sin(x)) -AC_SUBST(MATH_LIB) - -### Checks for header files. -AC_STDC_HEADERS -AC_HEADER_DIRENT -AC_HEADER_TIME -CF_REGEX - -dnl These are some other potentially nonportable headers. -AC_CHECK_HEADERS( \ -fcntl.h \ -getopt.h \ -libc.h \ -limits.h \ -locale.h \ -poll.h \ -sys/bsdtypes.h \ -sys/ioctl.h \ -sys/param.h \ -sys/poll.h \ -sys/select.h \ -sys/time.h \ -sys/times.h \ -ttyent.h \ -unistd.h \ -wctype.h ) - -# check for ISC (this may also define _POSIX_SOURCE) -# Note: even non-Posix ISC needs to declare fd_set -if test "$ISC" = yes ; then - AC_CHECK_LIB(cposix,main) - AC_CHECK_LIB(inet,bzero,LIBS="$LIBS -linet")dnl also 'select()' -fi - -CF_SYS_TIME_SELECT - -### checks for compiler characteristics -AC_LANG_C -AC_C_CONST -AC_C_INLINE -test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS) - -CF_TYPEOF_CHTYPE - -### Checks for external-data -CF_ERRNO -CF_LINK_DATAONLY - -### Checks for library functions. -AC_CHECK_FUNCS( \ -getcwd \ -getegid \ -geteuid \ -getttynam \ -issetugid \ -nanosleep \ -poll \ -remove \ -select \ -setbuf \ -setbuffer \ -setvbuf \ -sigaction \ -sigvec \ -strdup \ -strstr \ -tcgetpgrp \ -times \ -vsnprintf \ -) -if test "$with_getcap" = "yes" ; then - CF_CGETENT -fi - -CF_ISASCII -CF_STRUCT_SIGACTION -CF_FUNC_TERMIOS -CF_FUNC_VSSCANF -CF_MKSTEMP - -# setup for prototype of fallback for vsscanf() -if test "$cf_cv_func_vsscanf" = vsscanf ; then - HAVE_VSSCANF=1 -else - HAVE_VSSCANF=0 -fi -AC_SUBST(HAVE_VSSCANF) - -dnl FIXME (may need this) AC_SYS_RESTARTABLE_SYSCALLS -if test "$cross_compiling" = yes ; then - AC_MSG_WARN(cross compiling: assume setvbuf params not reversed) -else - AC_FUNC_SETVBUF_REVERSED -fi -AC_TYPE_SIGNAL -CF_TYPE_SIGACTION -CF_SIZECHANGE -CF_FUNC_MEMMOVE -CF_FUNC_POLL - -dnl We'll do our own -g libraries, unless the user's overridden via $CFLAGS -if test -z "$cf_user_CFLAGS" ; then - CF_STRIP_G_OPT(CFLAGS) - CF_STRIP_G_OPT(CXXFLAGS) -fi - -# Just in case, check if the C compiler has a bool type. -CF_BOOL_DECL(cf_cv_cc_bool_type) - -# Check for C++ compiler characteristics (and ensure that it's there!) -if test -n "$CXX" ; then - AC_LANG_CPLUSPLUS - CF_STDCPP_LIBRARY - CF_PROG_CC_C_O(CXX) - - case $GXX_VERSION in - 1*|2.[0-6]*) - cf_cxx_library=yes - ;; - *-2.7*|2.7*) - CF_GPP_LIBRARY - ;; - *) - cf_cxx_library=no - ;; - esac - - AC_CHECK_HEADERS(typeinfo) - - CF_BOOL_DECL - CF_BOOL_SIZE - CF_ETIP_DEFINES - CF_CPP_PARAM_INIT - CF_CPP_VSCAN_FUNC - - CXX_AR='$(AR)' - CXX_AR_OPTS='$(AR_OPTS)' - case $cf_cv_system_name in #(vi - irix*) #(vi - if test "$GXX" != yes ; then - CXX_AR='$(CXX)' - CXX_AR_OPTS='-ar -o' - fi - ;; - sco3.2v5*) #(vi - CXXLDFLAGS="-u main" - ;; - solaris2*) - if test "$GXX" != yes ; then - CXX_AR='$(CXX)' - CXX_AR_OPTS='-xar -o' - fi - ;; - esac - AC_SUBST(CXXLDFLAGS) - AC_SUBST(CXX_AR) - AC_SUBST(CXX_AR_OPTS) -else - cf_cxx_library=no - cf_cv_builtin_bool=1 - - # Just because we are not configuring against C++ right now does not - # mean that a user will not want to use C++. Some distributors disable - # the C++ portion of this configuration as a shortcut (or just to avoid - # compiling the demo in the c++ directory). So we need a reasonable - # default for the 'bool' type. - # - # Caveat: since the storage of the bool type is not standardized, it - # may change. - - if test "$NCURSES_BOOL" != auto ; then - cf_cv_type_of_bool=$NCURSES_AUTO - else - if test "$cf_cv_header_stdbool_h" = 1 ; then - CF_BOOL_SIZE - else - AC_MSG_CHECKING(for fallback type of bool) - case "$host_cpu" in #(vi - i?86) cf_cv_type_of_bool=char ;; #(vi - *) cf_cv_type_of_bool=int ;; - esac - AC_MSG_RESULT($cf_cv_type_of_bool) - fi - fi -fi -AC_SUBST(CXXLIBS) - -# If the C compiler did not declare bool, and we did not determine that the C++ -# compiler does not declare bool, turn on an ifdef in curses.h that makes the -# ncurses library use the same type as C++ bool. Note that this allows one to -# specify the type of bool in a configure-script option and postpone -# integration with the C++ compiler provided that the types are compatible. -USE_CXX_BOOL=1 -if test $cf_cv_cc_bool_type = 1 -then - # oops: C has a bool. Unlikely, but C++ could differ. - USE_CXX_BOOL=0 -elif test $cf_cv_builtin_bool = 0 -then - # C++ has no bool - USE_CXX_BOOL=0 -else - # this is the normal case - USE_CXX_BOOL='defined(__cplusplus)' -fi -AC_SUBST(USE_CXX_BOOL) - -CF_HELP_MESSAGE(Ada95 Binding Options:) - -dnl Check for availability of GNU Ada Translator (GNAT). -dnl At the moment we support no other Ada95 compiler. -if test "$cf_with_ada" != "no" ; then -cf_ada_make=gnatmake -AC_CHECK_PROG(gnat_exists, $cf_ada_make, yes, no) -if test "$ac_cv_prog_gnat_exists" = no; then - cf_ada_make= -else - CF_GNAT_VERSION - AC_CHECK_PROG(M4_exists, m4, yes, no) - if test "$ac_cv_prog_M4_exists" = no; then - cf_cv_prog_gnat_correct=no - echo Ada95 binding required program m4 not found. Ada95 binding disabled. - fi - if test "$cf_cv_prog_gnat_correct" = yes; then - AC_MSG_CHECKING(if GNAT works) - CF_GNAT_TRY_RUN([procedure conftest;], -[with Text_IO; -with GNAT.OS_Lib; -procedure conftest is -begin - Text_IO.Put ("Hello World"); - Text_IO.New_Line; - GNAT.OS_Lib.OS_Exit (0); -end conftest;],[cf_cv_prog_gnat_correct=yes],[cf_cv_prog_gnat_correct=no]) - AC_MSG_RESULT($cf_cv_prog_gnat_correct) - fi -fi -if test "$cf_cv_prog_gnat_correct" = yes; then - ADAFLAGS="-O3 -gnatpn $ADAFLAGS" - - AC_MSG_CHECKING(if GNAT pragma Unreferenced works) - CF_GNAT_TRY_LINK([procedure conftest;], -[with Text_IO; -with GNAT.OS_Lib; -procedure conftest is - test : Integer; - pragma Unreferenced (test); -begin - test := 1; - Text_IO.Put ("Hello World"); - Text_IO.New_Line; - GNAT.OS_Lib.OS_Exit (0); -end conftest;],[cf_cv_pragma_unreferenced=yes],[cf_cv_pragma_unreferenced=no]) - AC_MSG_RESULT($cf_cv_pragma_unreferenced) - - # if the pragma is supported, use it (needed in the Trace code). - if test $cf_cv_pragma_unreferenced = yes ; then - PRAGMA_UNREF=TRUE - else - PRAGMA_UNREF=FALSE - fi - - AC_ARG_WITH(ada-compiler, - [ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)], - [cf_ada_compiler=$withval], - [cf_ada_compiler=gnatmake]) - - cf_ada_package=terminal_interface - - AC_SUBST(cf_ada_make) - AC_SUBST(cf_ada_compiler) - AC_SUBST(cf_ada_package) - AC_SUBST(ADAFLAGS) - AC_SUBST(cf_compile_generics) - AC_SUBST(cf_generic_objects) - AC_SUBST(PRAGMA_UNREF) - - CF_WITH_PATH(ada-include, - [ --with-ada-include=DIR Ada includes are in DIR], - ADA_INCLUDE, - PREFIX/lib/ada/adainclude, - [$]prefix/lib/ada/adainclude) - AC_SUBST(ADA_INCLUDE) - - CF_WITH_PATH(ada-objects, - [ --with-ada-objects=DIR Ada objects are in DIR], - ADA_OBJECTS, - PREFIX/lib/ada/adalib, - [$]prefix/lib/ada/adalib) - AC_SUBST(ADA_OBJECTS) - -fi -fi - -### Construct the library-subsets, if any, from this set of keywords: -### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES). -AC_MSG_CHECKING(for library subsets) -if test "$with_termlib" != no ; then - LIB_SUBSETS="termlib" - test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo" - LIB_SUBSETS="${LIB_SUBSETS} " -else - LIB_SUBSETS="termlib+" - test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}ext_tinfo+" -fi -LIB_SUBSETS="${LIB_SUBSETS}base" -test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar" -test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs" -AC_MSG_RESULT($LIB_SUBSETS) - -### Construct the list of include-directories to be generated -CF_INCLUDE_DIRS -CF_ADA_INCLUDE_DIRS - -### Build up pieces for makefile rules -AC_MSG_CHECKING(default library suffix) -CF_LIB_TYPE($DFT_LWR_MODEL,DFT_ARG_SUFFIX)dnl -AC_SUBST(DFT_ARG_SUFFIX)dnl the string to append to "-lncurses" ("") -AC_MSG_RESULT($DFT_ARG_SUFFIX) - -AC_MSG_CHECKING(default library-dependency suffix) -CF_LIB_SUFFIX($DFT_LWR_MODEL,DFT_DEP_SUFFIX)dnl -if test $DFT_LWR_MODEL = shared ; then - case $cf_cv_system_name in #(vi - cygwin*) - DFT_DEP_SUFFIX=".dll.a" - ;; - esac -fi -AC_SUBST(DFT_DEP_SUFFIX)dnl the corresponding library-suffix (".a") -AC_MSG_RESULT($DFT_DEP_SUFFIX) - -AC_MSG_CHECKING(default object directory) -CF_OBJ_SUBDIR($DFT_LWR_MODEL,DFT_OBJ_SUBDIR)dnl -AC_SUBST(DFT_OBJ_SUBDIR)dnl the default object-directory ("obj") -AC_MSG_RESULT($DFT_OBJ_SUBDIR) - -# libtool thinks it can make c++ shared libraries (perhaps only g++) -if test "$cf_with_cxx" = yes ; then -AC_MSG_CHECKING(c++ library-dependency suffix) -if test "$with_libtool" != "no"; then - CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX -else - CF_LIB_SUFFIX(normal,CXX_LIB_SUFFIX)dnl we normally make a static library -fi -AC_MSG_RESULT($CXX_LIB_SUFFIX) -AC_SUBST(CXX_LIB_SUFFIX) -fi - -### Set up low-level terminfo dependencies for makefiles. -TINFO_LIST="$SHLIB_LIST" -if test "$with_termlib" != no ; then - - if test "$with_termlib" != yes ; then - TINFO_NAME=$with_termlib - TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" - TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`" - TINFO_LIB_SUFFIX="${with_termlib}" - else - TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}" - TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}" - TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}" - fi - - TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}" - if test "$DFT_LWR_MODEL" = "libtool"; then - TEST_ARGS="${TEST_DEPS}" - else - TEST_ARGS="-l${TINFO_ARG_SUFFIX}" - SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}" - fi -fi -AC_SUBST(TINFO_ARG_SUFFIX) -AC_SUBST(TINFO_DEP_SUFFIX) -AC_SUBST(TINFO_LIB_SUFFIX) - -PROG_ARGS="$TEST_ARGS" -AC_SUBST(PROG_ARGS) - -AC_MSG_CHECKING(where we will install curses.h) -test "$with_overwrite" = no && \ -test "x$includedir" = 'x${prefix}/include' && \ - includedir='$(prefix)/include/ncurses'${LIB_SUFFIX} -AC_MSG_RESULT($includedir) - -### Resolve a conflict between normal and wide-curses by forcing applications -### that will need libutf8 to add it to their configure script. -if test "$with_overwrite" != no ; then -if test "$NCURSES_LIBUTF8" = 1 ; then - NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)' - AC_MSG_WARN(Wide-character applications must define HAVE_LIBUTF8_H to include curses.h) -fi -fi - -AC_SUBST(EXTRA_LIBS) -AC_SUBST(TINFO_LIST) -AC_SUBST(SHLIB_LIST) - -### predefined stuff for the test programs -AC_DEFINE(HAVE_SLK_COLOR) - -### Construct the list of subdirectories for which we'll customize makefiles -### with the appropriate compile-rules. - -CF_DIRS_TO_MAKE -CF_SRC_MODULES($modules_to_build) - -AC_DEFINE_UNQUOTED(NCURSES_PATHSEP,'$PATHSEP') - -AC_DEFINE_UNQUOTED(NCURSES_VERSION_STRING, "${NCURSES_MAJOR}.${NCURSES_MINOR}.${NCURSES_PATCH}") - -### Now that we're done running tests, add the compiler-warnings, if any -CF_ADD_CFLAGS($EXTRA_CFLAGS) - -################################################################################ -AC_OUTPUT( \ - include/MKterm.h.awk \ - include/curses.head:include/curses.h.in \ - include/termcap.h \ - include/unctrl.h \ - $SUB_MAKEFILES \ - Makefile,[ -CF_LIB_RULES -],[ -### Special initialization commands, used to pass information from the -### configuration-run into config.status - -AWK="$AWK" -CF_LIST_MODELS="$cf_list_models" -DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX" -DFT_LWR_MODEL="$DFT_LWR_MODEL" -LDCONFIG="$LDCONFIG" -LIB_NAME="$LIB_NAME" -LIB_SUBSETS="$LIB_SUBSETS" -LIB_SUFFIX="$LIB_SUFFIX" -LIB_TRACING="$LIB_TRACING" -MAKE_TERMINFO="$MAKE_TERMINFO" -NCURSES_OSPEED="$NCURSES_OSPEED" -SRC_SUBDIRS="$SRC_SUBDIRS" -TERMINFO="$TERMINFO" -TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX" -TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX" -TINFO_NAME="$TINFO_NAME" -WITH_CURSES_H="$with_curses_h" -WITH_ECHO="$with_echo" -WITH_OVERWRITE="$with_overwrite" -cf_cv_abi_version="$cf_cv_abi_version" -cf_cv_do_symlinks="$cf_cv_do_symlinks" -cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o -cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o -cf_cv_rel_version="$cf_cv_rel_version" -cf_cv_rm_so_locs="$cf_cv_rm_so_locs" -cf_cv_shlib_version="$cf_cv_shlib_version" -cf_cv_shlib_version_infix="$cf_cv_shlib_version_infix" -cf_cv_system_name="$cf_cv_system_name" -cf_with_cxx_binding="$cf_with_cxx_binding" -host="$host" -target="$target" - -],cat)dnl -${MAKE-make} preinstall diff --git a/Build/source/libs/ncurses/convert_configure.pl b/Build/source/libs/ncurses/convert_configure.pl deleted file mode 100644 index dea92ca5d8c..00000000000 --- a/Build/source/libs/ncurses/convert_configure.pl +++ /dev/null @@ -1,90 +0,0 @@ -extproc perl -S -w - -# The converted script is written to stdout, so run this script as -# convert_configure configure > configure.cmd -# -# When the converted script runs, it expects that /tmp dir is -# available (so we create it). -# -# run the result like this: -# .\configure - -# Some frequent manual intervention: -# a) Some makefiles hardwire SHELL = /bin/sh ==> change to: sh -# b) Some makefiles recognize that exe files terminate on .exe -# You need to give this script -no-zexe option... - -shift, $no_zexe = 1 if @ARGV and $ARGV[0] eq '-no-zexe'; - -mkdir '/tmp', 0777 unless -d '/tmp'; - -print <) { - if (/for\s+(\w+)\s+in\s*\$(PATH|ac_dummy)\s*;/) { - $checking_path = 1; - $varname = $1; - $subst= < $@ - -ANNOUNCE : doc/html/announce.html - $(DUMP) doc/html/announce.html > $@ - -doc/ncurses-intro.doc: doc/html/ncurses-intro.html - $(DUMP2) doc/html/ncurses-intro.html > $@ -doc/hackguide.doc: doc/html/hackguide.html - $(DUMP2) doc/html/hackguide.html > $@ - -MANPROG = tbl | nroff -man - -manhtml: MANIFEST - @rm -f doc/html/man/*.html - @mkdir -p doc/html/man - @rm -f subst.tmp ; - @for f in man/*.[0-9]*; do \ - m=`basename $$f` ;\ - x=`echo $$m | awk -F. '{print $$2;}'` ;\ - xu=`echo $$x | dd conv=ucase 2>/dev/null` ;\ - if [ "$${x}" != "$${xu}" ]; then \ - echo "s/$${xu}/$${x}/g" >> subst.tmp ;\ - fi ;\ - done - # change some things to make weblint happy: - @echo 's///g' >> subst.tmp - @echo 's/<\/B>/<\/STRONG>/g' >> subst.tmp - @echo 's///g' >> subst.tmp - @echo 's/<\/I>/<\/EM>/g' >> subst.tmp - @misc/csort < subst.tmp | uniq > subst.sed - @echo '/<\/TITLE>/a\' >> subst.sed - @echo '\' >> subst.sed - @echo '' >> subst.sed - @rm -f subst.tmp - @for f in man/*.[0-9]* ; do \ - m=`basename $$f` ;\ - T=`egrep '^.TH' $$f|sed -e 's/^.TH //' -e s'/"//g' -e 's/[ ]\+$$//'` ; \ - g=$${m}.html ;\ - if [ -f doc/html/$$g ]; then chmod +w doc/html/$$g; fi;\ - echo "Converting $$m to HTML" ;\ - echo '' > doc/html/man/$$g ;\ - echo '' >> doc/html/man/$$g ;\ - man/edit_man.sh normal editing /usr/man man $$f | $(MANPROG) | tr '\255' '-' | $(MAN2HTML) -title "$$T" | \ - sed -f subst.sed |\ - sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \ - >> doc/html/man/$$g ;\ - done - @rm -f subst.sed - @sed -e "\%./doc/html/man/%d" < MANIFEST > MANIFEST.tmp - @find ./doc/html/man -type f -print >> MANIFEST.tmp - @chmod u+w MANIFEST - @misc/csort -u < MANIFEST.tmp > MANIFEST - @rm -f MANIFEST.tmp - -# -# Please note that this target can only be properly built if the build of the -# Ada95 subdir has been done. The reason is, that the gnathtml tool uses the -# .ali files generated by the Ada95 compiler during the build process. These -# .ali files contain cross referencing information required by gnathtml. -adahtml: MANIFEST - if [ ! -z "$(GNATHTML)" ]; then \ - (cd ./Ada95/gen ; make html) ;\ - sed -e "\%./doc/html/ada/%d" < MANIFEST > MANIFEST.tmp ;\ - find ./doc/html/ada -type f -print >> MANIFEST.tmp ;\ - misc/csort -u < MANIFEST.tmp > MANIFEST ;\ - rm -f MANIFEST.tmp ;\ - fi - -# Prepare distribution for version control -vcprepare: - find . -type d -exec mkdir {}/RCS \; - -# Write-lock almost all files not under version control. -ADA_EXCEPTIONS=$(shell eval 'a="\\\\\|";for x in Ada95/gen/terminal*.m4; do echo -n $${a}Ada95/ada_include/`basename $${x} .m4`; done') -EXCEPTIONS = 'announce.html$\\|ANNOUNCE\\|misc/.*\\.doc\\|man/terminfo.5\\|lib_gen.c'$(ADA_EXCEPTIONS) -writelock: - for x in `grep -v $(EXCEPTIONS) MANIFEST`; do if [ ! -f `dirname $$x`/RCS/`basename $$x`,v ]; then chmod a-w $${x}; fi; done - -# This only works on a clean source tree, of course. -MANIFEST: - -rm -f $@ - touch $@ - find . -type f -print |misc/csort | fgrep -v .lsm |fgrep -v .spec >$@ - -TAGS: - etags */*.[ch] - -# Makefile ends here diff --git a/Build/source/libs/ncurses/include/Caps b/Build/source/libs/ncurses/include/Caps deleted file mode 100644 index 795f9daa850..00000000000 --- a/Build/source/libs/ncurses/include/Caps +++ /dev/null @@ -1,1264 +0,0 @@ -############################################################################## -# Copyright (c) 1998,2001 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Zeyd M. Ben-Halim 1992,1995 -# and: Eric S. Raymond -# -# $Id: Caps,v 1.35 2002/04/20 15:43:34 tom Exp $ -# -# This is the master termcap/terminfo capability table. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it's there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It's up the ncurses -# library what to do with the terminfo data after it's read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It's up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -hard_cursor chts bool HC - - ----- cursor is hard to see -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -can_change ccc bool cc - - ----- terminal can re-define existing colors -back_color_erase bce bool ut - - ----- screen erased with background color -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps -cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode -has_print_wheel daisy bool YC - - ----- printer needs operator to change character set -row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps -semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr -cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution -lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -num_labels nlab num Nl - - ----- number of labels on screen -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -maximum_windows wnum num MW - - ----- maximum number of defineable windows -# These came in with SVr4's color support -max_colors colors num Co - - ----- maximum number of colors on screen -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -no_color_video ncv num NC - - ----- video attributes that cannot be used with colors -#%.TE -#%.ad -#% -#%The following numeric capabilities are present in the SVr4.0 term structure, -#%but are not yet documented in the man page. They came in with SVr4's -#%printer support. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing -dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch -dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch -max_micro_address maddr num Yd - - ----- maximum value in micro_..._address -max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro -micro_col_size mcs num Yf - - ----- character step size when in micro mode -micro_line_size mls num Yg - - ----- line step size when in micro mode -number_of_pins npins num Yh - - ----- numbers of pins in print-head -output_res_char orc num Yi - - ----- horizontal resolution in units per line -output_res_line orl num Yj - - ----- vertical resolution in units per line -output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch -output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch -print_rate cps num Ym - - ----- print rate in characters per second -wide_char_size widcs num Yn - - ----- character step size when in double wide mode -buttons btns num BT - - ----- number of buttons on mouse -bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row -bit_image_type bitype num Yp - - ----- type of bit-image device -#%.TE -#%.ad -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# SVr1 capabilities stop here. IBM's version of terminfo is the same as -# SVr4 up to this point, but has a different set afterwards. -# -char_padding rmp str rP - - ----- like ip but when in insert mode -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -plab_norm pln str pn - - ----- program label #1 to show string #2 -key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -enter_am_mode smam str SA - - ----- turn on automatic margins -exit_am_mode rmam str RA - - ----- turn off automatic margins -xon_character xonc str XN - - ----- XON character -xoff_character xoffc str XF - - ----- XOFF character -ena_acs enacs str eA - - ----- enable alternate char set -label_on smln str LO - - ----- turn on soft labels -label_off rmln str LF - - ----- turn off soft labels -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -key_command kcmd str @4 KEY_COMMAND 0545 ----- command key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -key_end kend str @7 KEY_END 0550 ----- end key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -key_help khlp str %1 KEY_HELP 0553 ----- help key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -req_for_input rfi str RF - - ----- send next input char (for ptys) -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -clr_bol el1 str cb - - ----- Clear to beginning of line -clear_margins mgc str MC - - ----- clear right and left soft margins -set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap). -set_right_margin smgr str MR - - ----- set right soft margin at current column -label_format fln str Lf - - ----- label format -set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs -display_clock dclk str DK - - ----- display clock -remove_clock rmclk str RC - - ----- remove clock -create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5 -goto_window wingo str WG - - ----- go to window #1 -hangup hup str HU - - ----- hang-up phone -dial_phone dial str DI - - ----- dial number #1 -quick_dial qdial str QD - - ----- dial number #1 without checking -tone tone str TO - - ----- select touch tone dialing -pulse pulse str PU - - ----- select pulse dialing -flash_hook hook str fh - - ----- flash switch hook -fixed_pause pause str PA - - ----- pause for 2-3 seconds -wait_tone wait str WA - - ----- wait for dial-tone -user0 u0 str u0 - - ----- User string #0 -user1 u1 str u1 - - ----- User string #1 -user2 u2 str u2 - - ----- User string #2 -user3 u3 str u3 - - ----- User string #3 -user4 u4 str u4 - - ----- User string #4 -user5 u5 str u5 - - ----- User string #5 -user6 u6 str u6 - - ----- User string #6 -user7 u7 str u7 - - ----- User string #7 -user8 u8 str u8 - - ----- User string #8 -user9 u9 str u9 - - ----- User string #9 -# -# SVr4 added these capabilities to support color -# -orig_pair op str op - - ----- Set default pair to its original value -orig_colors oc str oc - - ----- Set all color pairs to the original ones -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -set_background setb str Sb - - ----- Set background color #1 -# -# SVr4 added these capabilities to support printers -# -change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1 -change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1 -change_res_horz chr str ZC - - ----- Change horizontal resolution to #1 -change_res_vert cvr str ZD - - ----- Change vertical resolution to #1 -define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3 -enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode -enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode -enter_italics_mode sitm str ZH - - ----- Enter italic mode -enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion -enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode -enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode -enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode -enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode -enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode -enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode -enter_upward_mode sum str ZP - - ----- Start upward carriage motion -exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode -exit_italics_mode ritm str ZR - - ----- End italic mode -exit_leftward_mode rlm str ZS - - ----- End left-motion mode -exit_micro_mode rmicm str ZT - - ----- End micro-motion mode -exit_shadow_mode rshm str ZU - - ----- End shadow-print mode -exit_subscript_mode rsubm str ZV - - ----- End subscript mode -exit_superscript_mode rsupm str ZW - - ----- End superscript mode -exit_upward_mode rum str ZX - - ----- End reverse character motion -micro_column_address mhpa str ZY - - ----- Like column_address in micro mode -micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode -micro_left mcub1 str Za - - ----- Like cursor_left in micro mode -micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode -micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode -micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode -order_of_pins porder str Ze - - ----- Match software bits to print-head pins -parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode -parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode -parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode -parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode -select_char_set scs str Zj - - ----- Select character set, #1 -set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line -set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom -set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1 -set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1 -set_top_margin smgt str Zo - - ----- Set top margin at current line -set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1 -start_bit_image sbim str Zq - - ----- Start printing bit image graphics -start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set -stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics -stop_char_set_def rcsd str Zt - - ----- End definition of character set #1 -subscript_characters subcs str Zu - - ----- List of subscriptable characters -superscript_characters supcs str Zv - - ----- List of superscriptable characters -these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR -zero_motion zerom str Zx - - ----- No motion for subsequent character -#%.TE -#%.ad -#% -#%The following string capabilities are present in the SVr4.0 term structure, -#%but were originally not documented in the man page. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw18. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -mouse_info minfo str Mi - - ----- Mouse status information -req_mouse_pos reqmp str RQ - - ----- Request mouse position -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3 -device_type devt str dv - - ----- Indicate language/codeset support -code_set_init csin str ci - - ----- Init sequence for multiple codesets -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap). -set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2 -bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times -bit_image_newline binel str Zz - - ----- Move to next row of the bit image -bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row -color_names colornm str Yw - - ----- Give name for color #1 -define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region -end_bit_image_region endbi str Yy - - ----- End a bit-image region -set_color_band setcolor str Yz - - ----- Change to ribbon color #1 -set_page_length slines str YZ - - ----- Set page length to #1 lines -# -# SVr4 added these capabilities for direct PC-clone support -# -display_pc_char dispc str S1 - - ----- Display PC character #1 -enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode -exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode -enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode -exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode -pc_term_options pctrm str S6 - - ----- PC terminal options -scancode_escape scesc str S7 - - ----- Escape for scancode emulation -alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation -#%.TE -#%.ad -#% -#%.in .8i -#%The XSI Curses standard added these. They are some post-4.1 -#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x. -#%The \fBncurses\fR termcap names for them are invented; according to the -#%XSI Curses standard, they have no termcap names. If your compiled terminfo -#%entries use these, they may not be binary-compatible with System V terminfo -#%entries after SVr4.1; beware! -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode -enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode -enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode -enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode -enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode -enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode -set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 -set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch -#%.TE -#%.ad -# -# The magic token below tells the tic compiler-generator code that all the caps -# past it should be ignored (not written out) when dumping terminfo objects. It -# also tells the man page table generator not to pass through following lines -# This means we can have obsolete capabilities and pseudo-capabilities that are -# recognized for termcap or terminfo compilation, but not output. -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability seems to have been designed to map between the rogue(2) -# motion keys (including jkhl) and characters emitted by arrow keys on some -# primitive pre-ANSI terminals. It's so obsolete it's fossilized... -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it's not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# This section is almost all comments. What it's mainly for is to describe -# what capabilities need to be squeezed out to get down to the XSI Curses -# standard set. They are flagged with K. -# -# HP extensions -# -# These extensions follow ptr_non (replacing everything after it) in HP -# terminfo files. Except for memory_lock and memory_unlock, they are -# functionally identical to SVr4 extensions, but they make the binary format -# different. Grrr.... -# -memory_lock meml str ml - - ----K memory lock above -memory_unlock memu str mu - - ----K memory unlock -#plab_norm pln str pn - - ----- program label #1 to show string #2 -#label_on smln str LO - - ----- turn on soft labels -#label_off rmln str LF - - ----- turn off soft labels -#key_f11 kf11 str F1 - - ----- F11 function key -#key_f12 kf12 str F2 - - ----- F12 function key -#key_f13 kf13 str F3 - - ----- F13 function key -#key_f14 kf14 str F4 - - ----- F14 function key -#key_f15 kf15 str F5 - - ----- F15 function key -#key_f16 kf16 str F6 - - ----- F16 function key -#key_f17 kf17 str F7 - - ----- F17 function key -#key_f18 kf18 str F8 - - ----- F18 function key -#key_f19 kf19 str F9 - - ----- F19 function key -#key_f20 kf20 str FA - - ----- F20 function key -#key_f21 kf21 str FB - - ----- F21 function key -#key_f22 kf22 str FC - - ----- F22 function key -#key_f23 kf23 str FD - - ----- F23 function key -#key_f24 kf24 str FE - - ----- F24 function key -#key_f25 kf25 str FF - - ----- F25 function key -#key_f26 kf26 str FG - - ----- F26 function key -#key_f27 kf27 str FH - - ----- F27 function key -#key_f28 kf28 str FI - - ----- F28 function key -#key_f29 kf29 str FJ - - ----- F29 function key -#key_f30 kf30 str FK - - ----- F30 function key -#key_f31 kf31 str FL - - ----- F31 function key -#key_f32 kf32 str FM - - ----- F32 function key -#key_f33 kf33 str FN - - ----- F33 function key -#key_f34 kf34 str FO - - ----- F34 function key -#key_f35 kf35 str FP - - ----- F35 function key -#key_f36 kf36 str FQ - - ----- F36 function key -#key_f37 kf37 str FR - - ----- F37 function key -#key_f38 kf38 str FS - - ----- F38 function key -#key_f39 kf39 str FT - - ----- F39 function key -#key_f40 kf40 str FU - - ----- F40 function key -#key_f41 kf41 str FV - - ----- F41 function key -#key_f42 kf42 str FW - - ----- F42 function key -#key_f43 kf43 str FX - - ----- F43 function key -#key_f44 kf44 str FY - - ----- F44 function key -#key_f45 kf45 str FZ - - ----- F45 function key -#key_f46 kf46 str Fa - - ----- F46 function key -#key_f47 kf47 str Fb - - ----- F47 function key -#key_f48 kf48 str Fc - - ----- F48 function key -#key_f49 kf49 str Fd - - ----- F49 function key -#key_f50 kf50 str Fe - - ----- F50 function key -#key_f51 kf51 str Ff - - ----- F51 function key -#key_f52 kf52 str Fg - - ----- F52 function key -#key_f53 kf53 str Fh - - ----- F53 function key -#key_f54 kf54 str Fi - - ----- F54 function key -#key_f55 kf55 str Fj - - ----- F55 function key -#key_f56 kf56 str Fk - - ----- F56 function key -#key_f57 kf57 str Fl - - ----- F57 function key -#key_f58 kf58 str Fm - - ----- F58 function key -#key_f59 kf59 str Fn - - ----- F59 function key -#key_f60 kf60 str Fo - - ----- F60 function key -#key_f61 kf61 str Fp - - ----- F61 function key -#key_f62 kf62 str Fq - - ----- F62 function key -#key_f63 kf63 str Fr - - ----- F63 function key -# -# IBM extensions -# -# These extensions follow ptr_non (replacing everything after it) in IBM -# terminfo files. -# -# The places in the box[12] capabilities correspond to acsc characters, here is -# the mapping: -# -# box1[0] = ACS_ULCORNER -# box1[1] = ACS_HLINE -# box1[2] = ACS_URCORNER -# box1[3] = ACS_VLINE -# box1[4] = ACS_LRCORNER -# box1[5] = ACS_LLCORNER -# box1[6] = ACS_TTEE -# box1[7] = ACS_RTEE -# box1[8] = ACS_BTEE -# box1[9] = ACS_LTEE -# box1[10] = ACS_PLUS -# -# The box2 characters are the double-line versions of these forms graphics. -# -box_chars_1 box1 str bx - - ----K box characters primary set -#box_chars_2 box2 str by - - ----K box characters secondary set -#box_attr_1 batt1 str Bx - - ----K attributes for box1 -#box_attr_2 batt2 str By - - ----K attributes for box2 -#color_bg_0 colb0 str d0 - - ----K background color 0 -#color_bg_1 colb1 str d1 - - ----K background color 1 -#color_bg_2 colb2 str d2 - - ----K background color 2 -#color_bg_3 colb3 str d3 - - ----K background color 3 -#color_bg_4 colb4 str d4 - - ----K background color 4 -#color_bg_5 colb5 str d5 - - ----K background color 5 -#color_bg_6 colb6 str d6 - - ----K background color 6 -#color_bg_7 colb7 str d7 - - ----K background color 7 -#color_fg_0 colf0 str c0 - - ----K foreground color 0 -#color_fg_1 colf1 str c1 - - ----K foreground color 1 -#color_fg_2 colf2 str c2 - - ----K foreground color 2 -#color_fg_3 colf3 str c3 - - ----K foreground color 3 -#color_fg_4 colf4 str c4 - - ----K foreground color 4 -#color_fg_5 colf5 str c5 - - ----K foreground color 5 -#color_fg_6 colf6 str c6 - - ----K foreground color 6 -#color_fg_7 colf7 str c7 - - ----K foreground color 7 -#font_0 font0 str f0 - - ----- select font 0 -#font_1 font1 str f1 - - ----- select font 1 -#font_2 font2 str f2 - - ----- select font 2 -#font_3 font3 str f3 - - ----- select font 3 -#font_4 font4 str f4 - - ----K select font 4 -#font_5 font5 str f5 - - ----K select font 5 -#font_6 font6 str f6 - - ----K select font 6 -#font_7 font7 str f7 - - ----K select font 7 -#key_back_tab kbtab str k0 - - ----- backtab key -#key_do kdo str ki - - ----K do request key -#key_command kcmd str kd - - ----K command-request key -#key_command_pane kcpn str kW - - ----K command-pane key -#key_end kend str kw - - ----- end key -#key_help khlp str kq - - ----- help key -#key_newline knl str nl - - ----K newline key -#key_next_pane knpn str kv - - ----K next-pane key -#key_prev_cmd kppn str kp - - ----K previous-command key -#key_prev_pane kppn str kV - - ----K previous-pane key -#key_quit kquit str kQ - - ----K quit key -#key_select ksel str kU - - ----- select key -#key_scroll_left kscl str kz - - ----K scroll left -#key_scroll_right kscr str kZ - - ----K scroll right -#key_tab ktab str ko - - ----K tab key -#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input -#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output -#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input -#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output -#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input -#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output -#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input -#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output -#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input -#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output -#appl_defined_str apstr str za - - ----K application-defined string -# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in -# the IBM manual pages, so the cap name strings are guesses. The terminfo -# names are almost certainly right, the termcap ones almost certainly wrong. -#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input -#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output -#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input -#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output -#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input -#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output -#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input -#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output -# Undocumented capabilities end here -#key_sf1 ksf1 str S1 - - ----K special function key 1 -#key_sf2 ksf2 str S2 - - ----K special function key 2 -#key_sf3 ksf3 str S3 - - ----K special function key 3 -#key_sf4 ksf4 str S4 - - ----K special function key 4 -#key_sf5 ksf5 str S5 - - ----K special function key 5 -#key_sf6 ksf6 str S6 - - ----K special function key 6 -#key_sf7 ksf7 str S7 - - ----K special function key 7 -#key_sf8 ksf8 str S8 - - ----K special function key 8 -#key_sf9 ksf9 str S9 - - ----K special function key 9 -#key_sf10 ksf10 str SA - - ----K special function key 10 -# AIX version 3 documents different codes for F11, F12 and does not mention -# F13-F64. AIX version 4 uses the same naming for F0-F63 as above. -#key_f11 kf11 str k< - - ----- function key 11 -#key_f12 kf12 str k> - - ----- function key 12 -# Undocumented capabilities end here. -#key_action kact str kJ - - ----K sent by action key -# The IBM docs say these capabilities are for table-drawing, and are -# valid only for aixterm descriptions. -#enter_topline_mode topl str tp - - ----K start top-line mode -#enter_bottom_mode btml str bm - - ----K start bottom-line mode -#enter_rvert_mode rvert str rv - - ----K start right-vertical mode -#enter_lvert_mode lvert str lv - - ----K start left-vertical mode -# -############################################################################# -# -# ALIAS DECLARATIONS -# -# Here we set up aliases for translating extensions into standard terminfo. -# -#---------------------------------- Termcap aliases ------------------------- -# -# BSD aliases: -# -# This is a common error in many termcap files. We'll get notified during -# translation when this (or any other alias) fires. -# -capalias sb sr BSD scroll text down -# -# AT&T extensions: -# -# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of -# nonstandard capabilities. Its signature is the KM capability, used to name -# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this -# set. Comments in the original, and a little cross-checking with other AT&T -# documentation, seem to establish the following mappings: -# -capalias BO mr AT&T enter_reverse_mode -capalias CI vi AT&T cursor_invisible -capalias CV ve AT&T cursor_normal -capalias DS mh AT&T enter_dim_mode -#capalias EE me AT&T exit_attribute_mode -capalias FE LF AT&T label_on -capalias FL LO AT&T label_off -capalias XS mk AT&T enter_secure_mode -# -# We comment out EE because the conflicting XENIX EE is more common in -# old entries. -# -# XENIX extensions: -# -# These are the ones we know how to translate directly: -# -capalias EE mh XENIX exit_attribute_mode -capalias GE ae XENIX exit_alt_charset_mode -capalias GS as XENIX enter_alt_charset_mode -capalias CF vi XENIX cursor_invis -capalias CO ve XENIX cursor_normal -capalias EN @7 XENIX key_end -capalias HM kh XENIX key_home -capalias LD kL XENIX key_dl -capalias PD kN XENIX key_npage -capalias PN po XENIX prtr_off -capalias PS pf XENIX prtr_on -capalias PU kP XENIX key_ppage -capalias RT @8 XENIX kent -capalias UP ku XENIX kcuu1 -capalias G6 IGNORE XENIX double-ACS_ULCORNER -capalias G7 IGNORE XENIX double-ACS_LLCORNER -capalias G5 IGNORE XENIX double-ACS_URCORNER -capalias G8 IGNORE XENIX double-ACS_LRCORNER -capalias Gr IGNORE XENIX double-ACS_LTEE -capalias Gr IGNORE XENIX double-ACS_RTEE -capalias Gu IGNORE XENIX double-ACS_BTEE -capalias Gd IGNORE XENIX double ACS_TTEE -capalias Gh IGNORE XENIX double-ACS_HLINE -capalias Gv IGNORE XENIX double-ACS_VLINE -capalias Gc IGNORE XENIX double-ACS_PLUS -capalias GG IGNORE XENIX acs-glitch -# -# IBM extensions: -# -capalias kq %1 IBM key_help -# -# Iris extensions: -# -capalias HS mh IRIS enter_dim_mode -# -# Tektronix extensions: -# -capalias KA k; Tek key_f10 -capalias KB F1 Tek key_f11 -capalias KC F2 Tek key_f12 -capalias KD F3 Tek key_f13 -capalias KE F4 Tek key_f14 -capalias KF F5 Tek key_f15 -capalias BC Sb Tek set_background -capalias FC Sf Tek set_foreground -# -# There are also the following: -# -# XENIX XENIX variable name name clash with terminfo? -# ----- ------------------- ------------------------- -# CL key_char_left -# CR key_char_right -# CW key_change_window -# HP ?? -# LF key_linefeed label_off -# NU key_next_unlocked_cell -# PL ?? -# PR ?? -# RC key_recalc remove_clock -# RF key_toggle_ref req_for_input -# WL key_word_left -# WR key_word_right -# -# If you know what any of the question-marked ones mean, please tell us. -# -#--------------------------------- Terminfo aliases ------------------------ -# -# IBM extensions: -# -infoalias font0 s0ds IBM set0_des_seq -infoalias font1 s1ds IBM set1_des_seq -infoalias font2 s2ds IBM set2_des_seq -infoalias font3 s3ds IBM set3_des_seq -infoalias kbtab kcbt IBM key_backtab -infoalias ksel kslt IBM key_select -# -# Some others are identical to SVr4/XPG4 capabilities, in particular: -# kcmd, kend, khlp, and kf11...kf63. -# -############################################################################# -# -# The following sets edit modes for GNU EMACS -# Local Variables: -# case-fold-search:nil -# truncate-lines:t -# End: diff --git a/Build/source/libs/ncurses/include/Caps.aix4 b/Build/source/libs/ncurses/include/Caps.aix4 deleted file mode 100644 index 3f946284d18..00000000000 --- a/Build/source/libs/ncurses/include/Caps.aix4 +++ /dev/null @@ -1,1255 +0,0 @@ -############################################################################## -# Copyright (c) 2001 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas Dickey -# -# $Id: Caps.aix4,v 1.6 2002/07/07 00:00:32 tom Exp $ -# -# This is an adaptation of ncurses' termcap/terminfo capability table, which -# is designed to align with AIX 4.x's terminfo. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it's there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It's up the ncurses -# library what to do with the terminfo data after it's read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It's up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -hard_cursor chts bool HC - - ----- cursor is hard to see -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -can_change ccc bool cc - - ----- terminal can re-define existing colors -back_color_erase bce bool ut - - ----- screen erased with background color -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps -cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode -has_print_wheel daisy bool YC - - ----- printer needs operator to change character set -row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps -semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr -cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution -lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -num_labels nlab num Nl - - ----- number of labels on screen -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -maximum_windows wnum num MW - - ----- maximum number of defineable windows -# These came in with SVr4's color support -max_colors colors num Co - - ----- maximum number of colors on screen -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -no_color_video ncv num NC - - ----- video attributes that cannot be used with colors -#%.TE -#%.ad -#% -#%The following numeric capabilities are present in the SVr4.0 term structure, -#%but are not yet documented in the man page. They came in with SVr4's -#%printer support. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing -dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch -dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch -max_micro_address maddr num Yd - - ----- maximum value in micro_..._address -max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro -micro_col_size mcs num Yf - - ----- character step size when in micro mode -micro_line_size mls num Yg - - ----- line step size when in micro mode -number_of_pins npins num Yh - - ----- numbers of pins in print-head -output_res_char orc num Yi - - ----- horizontal resolution in units per line -output_res_line orl num Yj - - ----- vertical resolution in units per line -output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch -output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch -print_rate cps num Ym - - ----- print rate in characters per second -wide_char_size widcs num Yn - - ----- character step size when in double wide mode -buttons btns num BT - - ----- number of buttons on mouse -bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row -bit_image_type bitype num Yp - - ----- type of bit-image device -#%.TE -#%.ad -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# IBM extensions -# -# These extensions follow ptr_non (replacing everything after it) in IBM -# terminfo files. -# -# The places in the box[12] capabilities correspond to acsc characters, here is -# the mapping: -# -# box1[0] = ACS_ULCORNER -# box1[1] = ACS_HLINE -# box1[2] = ACS_URCORNER -# box1[3] = ACS_VLINE -# box1[4] = ACS_LRCORNER -# box1[5] = ACS_LLCORNER -# box1[6] = ACS_TTEE -# box1[7] = ACS_RTEE -# box1[8] = ACS_BTEE -# box1[9] = ACS_LTEE -# box1[10] = ACS_PLUS -# -# The box2 characters are the double-line versions of these forms graphics. -# -box_chars_1 box1 str bx - - ----K box characters primary set -box_chars_2 box2 str by - - ----K box characters secondary set -box_attr_1 batt1 str Bx - - ----K attributes for box1 -box_attr_2 batt2 str By - - ----K attributes for box2 -color_bg_0 colb0 str d0 - - ----K background color 0 -color_bg_1 colb1 str d1 - - ----K background color 1 -color_bg_2 colb2 str d2 - - ----K background color 2 -color_bg_3 colb3 str d3 - - ----K background color 3 -color_bg_4 colb4 str d4 - - ----K background color 4 -color_bg_5 colb5 str d5 - - ----K background color 5 -color_bg_6 colb6 str d6 - - ----K background color 6 -color_bg_7 colb7 str d7 - - ----K background color 7 -color_fg_0 colf0 str c0 - - ----K foreground color 0 -color_fg_1 colf1 str c1 - - ----K foreground color 1 -color_fg_2 colf2 str c2 - - ----K foreground color 2 -color_fg_3 colf3 str c3 - - ----K foreground color 3 -color_fg_4 colf4 str c4 - - ----K foreground color 4 -color_fg_5 colf5 str c5 - - ----K foreground color 5 -color_fg_6 colf6 str c6 - - ----K foreground color 6 -color_fg_7 colf7 str c7 - - ----K foreground color 7 -font_0 font0 str f0 - - ----K select font 0 -font_1 font1 str f1 - - ----K select font 1 -font_2 font2 str f2 - - ----K select font 2 -font_3 font3 str f3 - - ----K select font 3 -font_4 font4 str f4 - - ----K select font 4 -font_5 font5 str f5 - - ----K select font 5 -font_6 font6 str f6 - - ----K select font 6 -font_7 font7 str f7 - - ----K select font 7 -key_back_tab kbtab str k0 - - ----K backtab key -key_do kdo str ki - - ----K do request key -key_command kcmd str kd - - ----K command-request key -key_command_pane kcpn str kW - - ----K command-pane key -key_end kend str kw KEY_END 0550 ----- end key -key_help khlp str kq - - ----- help key -key_newline knl str nl - - ----K newline key -key_next_pane knpn str kv - - ----K next-pane key -key_prev_cmd kppn str kp - - ----K previous-command key -key_prev_pane kppn str kV - - ----K previous-pane key -key_quit kquit str kQ - - ----K quit key -key_select_aix ksel str kU - - ----- select key -key_scroll_left kscl str kz - - ----K scroll left -key_scroll_right kscr str kZ - - ----K scroll right -key_tab ktab str ko - - ----K tab key -key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input -key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output -key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input -key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output -key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input -key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output -key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input -key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output -key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input -key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output -appl_defined_str apstr str za - - ----K application-defined string -key_smap_in6 kmpf6 str kr - - ----K special mapped key 6 input -key_smap_out6 kmpt6 str KR - - ----K special mapped key 6 output -key_smap_in7 kmpf7 str ks - - ----K special mapped key 7 input -key_smap_out7 kmpt7 str KS - - ----K special mapped key 7 output -key_smap_in8 kmpf8 str kt - - ----K special mapped key 8 input -key_smap_out8 kmpt8 str KT - - ----K special mapped key 8 output -key_smap_in9 kmpf9 str ku - - ----K special mapped key 9 input -key_smap_out9 kmpt9 str KU - - ----K special mapped key 9 output -key_sf1 ksf1 str S1 - - ----K special function key 1 -key_sf2 ksf2 str S2 - - ----K special function key 2 -key_sf3 ksf3 str S3 - - ----K special function key 3 -key_sf4 ksf4 str S4 - - ----K special function key 4 -key_sf5 ksf5 str S5 - - ----K special function key 5 -key_sf6 ksf6 str S6 - - ----K special function key 6 -key_sf7 ksf7 str S7 - - ----K special function key 7 -key_sf8 ksf8 str S8 - - ----K special function key 8 -key_sf9 ksf9 str S9 - - ----K special function key 9 -key_sf10 ksf10 str S0 - - ----K special function key 10 -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -key_action kact str kJ - - ----K sent by action key - -# The IBM docs say these capabilities are for table-drawing, and are -# valid only for aixterm descriptions. -enter_topline_mode topl str tp - - ----K start top-line mode -enter_bottom_mode btml str bm - - ----K start bottom-line mode -enter_rvert_mode rvert str rv - - ----K start right-vertical mode -enter_lvert_mode lvert str lv - - ----K start left-vertical mode -# -# SVr4 capabilities resume here. Note that key_end is in the IBM-extensions. -# -char_padding rmp str rP - - ----- like ip but when in insert mode -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -plab_norm pln str pn - - ----- program label #1 to show string #2 -key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -enter_am_mode smam str SA - - ----- turn on automatic margins -exit_am_mode rmam str RA - - ----- turn off automatic margins -xon_character xonc str XN - - ----- XON character -xoff_character xoffc str XF - - ----- XOFF character -ena_acs enacs str eA - - ----- enable alternate char set -label_on smln str LO - - ----- turn on soft labels -label_off rmln str LF - - ----- turn off soft labels -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -#key_command kcmd str @4 KEY_COMMAND 0545 ----- command key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -#key_end kend str @7 KEY_END 0550 ----- end key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -#key_help khlp str %1 KEY_HELP 0553 ----- help key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -req_for_input rfi str RF - - ----- send next input char (for ptys) -clr_bol el1 str cb - - ----- Clear to beginning of line -clear_margins mgc str MC - - ----- clear right and left soft margins -set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap). -set_right_margin smgr str MR - - ----- set right soft margin at current column -label_format fln str Lf - - ----- label format -set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs -display_clock dclk str DK - - ----- display clock -remove_clock rmclk str RC - - ----- remove clock -create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5 -goto_window wingo str WG - - ----- go to window #1 -hangup hup str HU - - ----- hang-up phone -dial_phone dial str DI - - ----- dial number #1 -quick_dial qdial str QD - - ----- dial number #1 without checking -tone tone str TO - - ----- select touch tone dialing -pulse pulse str PU - - ----- select pulse dialing -flash_hook hook str fh - - ----- flash switch hook -fixed_pause pause str PA - - ----- pause for 2-3 seconds -wait_tone wait str WA - - ----- wait for dial-tone -user0 u0 str u0 - - ----- User string #0 -user1 u1 str u1 - - ----- User string #1 -user2 u2 str u2 - - ----- User string #2 -user3 u3 str u3 - - ----- User string #3 -user4 u4 str u4 - - ----- User string #4 -user5 u5 str u5 - - ----- User string #5 -user6 u6 str u6 - - ----- User string #6 -user7 u7 str u7 - - ----- User string #7 -user8 u8 str u8 - - ----- User string #8 -user9 u9 str u9 - - ----- User string #9 -# -# SVr4 added these capabilities to support color -# -orig_pair op str op - - ----- Set default pair to its original value -orig_colors oc str oc - - ----- Set all color pairs to the original ones -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -set_background setb str Sb - - ----- Set background color #1 -# -# SVr4 added these capabilities to support printers -# -change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1 -change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1 -change_res_horz chr str ZC - - ----- Change horizontal resolution to #1 -change_res_vert cvr str ZD - - ----- Change vertical resolution to #1 -define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3 -enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode -enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode -enter_italics_mode sitm str ZH - - ----- Enter italic mode -enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion -enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode -enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode -enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode -enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode -enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode -enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode -enter_upward_mode sum str ZP - - ----- Start upward carriage motion -exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode -exit_italics_mode ritm str ZR - - ----- End italic mode -exit_leftward_mode rlm str ZS - - ----- End left-motion mode -exit_micro_mode rmicm str ZT - - ----- End micro-motion mode -exit_shadow_mode rshm str ZU - - ----- End shadow-print mode -exit_subscript_mode rsubm str ZV - - ----- End subscript mode -exit_superscript_mode rsupm str ZW - - ----- End superscript mode -exit_upward_mode rum str ZX - - ----- End reverse character motion -micro_column_address mhpa str ZY - - ----- Like column_address in micro mode -micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode -micro_left mcub1 str Za - - ----- Like cursor_left in micro mode -micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode -micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode -micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode -order_of_pins porder str Ze - - ----- Match software bits to print-head pins -parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode -parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode -parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode -parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode -select_char_set scs str Zj - - ----- Select character set, #1 -set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line -set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom -set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1 -set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1 -set_top_margin smgt str Zo - - ----- Set top margin at current line -set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1 -start_bit_image sbim str Zq - - ----- Start printing bit image graphics -start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set -stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics -stop_char_set_def rcsd str Zt - - ----- End definition of character set #1 -subscript_characters subcs str Zu - - ----- List of subscriptable characters -superscript_characters supcs str Zv - - ----- List of superscriptable characters -these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR -zero_motion zerom str Zx - - ----- No motion for subsequent character -#%.TE -#%.ad -#% -#%The following string capabilities are present in the SVr4.0 term structure, -#%but were originally not documented in the man page. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw18. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -mouse_info minfo str Mi - - ----- Mouse status information -req_mouse_pos reqmp str RQ - - ----- Request mouse position -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3 -device_type devt str dv - - ----- Indicate language/codeset support -code_set_init csin str ci - - ----- Init sequence for multiple codesets -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap). -set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2 -bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times -bit_image_newline binel str Zz - - ----- Move to next row of the bit image -bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row -color_names colornm str Yw - - ----- Give name for color #1 -define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region -end_bit_image_region endbi str Yy - - ----- End a bit-image region -set_color_band setcolor str Yz - - ----- Change to ribbon color #1 -set_page_length slines str YZ - - ----- Set page length to #1 lines -# -# SVr4 added these capabilities for direct PC-clone support -# -display_pc_char dispc str S1 - - ----- Display PC character #1 -enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode -exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode -enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode -exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode -pc_term_options pctrm str S6 - - ----- PC terminal options -scancode_escape scesc str S7 - - ----- Escape for scancode emulation -alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation -#%.TE -#%.ad -#% -#%.in .8i -#%The XSI Curses standard added these. They are some post-4.1 -#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x. -#%The \fBncurses\fR termcap names for them are invented; according to the -#%XSI Curses standard, they have no termcap names. If your compiled terminfo -#%entries use these, they may not be binary-compatible with System V terminfo -#%entries after SVr4.1; beware! -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode -enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode -enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode -enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode -enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode -enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode -set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 -set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch -#%.TE -#%.ad -# -# The magic token below tells the tic compiler-generator code that all the caps -# past it should be ignored (not written out) when dumping terminfo objects. It -# also tells the man page table generator not to pass through following lines -# This means we can have obsolete capabilities and pseudo-capabilities that are -# recognized for termcap or terminfo compilation, but not output. -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability seems to have been designed to map between the rogue(2) -# motion keys (including jkhl) and characters emitted by arrow keys on some -# primitive pre-ANSI terminals. It's so obsolete it's fossilized... -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it's not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# This section is almost all comments. What it's mainly for is to describe -# what capabilities need to be squeezed out to get down to the XSI Curses -# standard set. They are flagged with K. -# -# HP extensions -# -# These extensions follow ptr_non (replacing everything after it) in HP -# terminfo files. Except for memory_lock and memory_unlock, they are -# functionally identical to SVr4 extensions, but they make the binary format -# different. Grrr.... -# -memory_lock meml str ml - - ----K memory lock above -memory_unlock memu str mu - - ----K memory unlock -#plab_norm pln str pn - - ----- program label #1 to show string #2 -#label_on smln str LO - - ----- turn on soft labels -#label_off rmln str LF - - ----- turn off soft labels -#key_f11 kf11 str F1 - - ----- F11 function key -#key_f12 kf12 str F2 - - ----- F12 function key -#key_f13 kf13 str F3 - - ----- F13 function key -#key_f14 kf14 str F4 - - ----- F14 function key -#key_f15 kf15 str F5 - - ----- F15 function key -#key_f16 kf16 str F6 - - ----- F16 function key -#key_f17 kf17 str F7 - - ----- F17 function key -#key_f18 kf18 str F8 - - ----- F18 function key -#key_f19 kf19 str F9 - - ----- F19 function key -#key_f20 kf20 str FA - - ----- F20 function key -#key_f21 kf21 str FB - - ----- F21 function key -#key_f22 kf22 str FC - - ----- F22 function key -#key_f23 kf23 str FD - - ----- F23 function key -#key_f24 kf24 str FE - - ----- F24 function key -#key_f25 kf25 str FF - - ----- F25 function key -#key_f26 kf26 str FG - - ----- F26 function key -#key_f27 kf27 str FH - - ----- F27 function key -#key_f28 kf28 str FI - - ----- F28 function key -#key_f29 kf29 str FJ - - ----- F29 function key -#key_f30 kf30 str FK - - ----- F30 function key -#key_f31 kf31 str FL - - ----- F31 function key -#key_f32 kf32 str FM - - ----- F32 function key -#key_f33 kf33 str FN - - ----- F33 function key -#key_f34 kf34 str FO - - ----- F34 function key -#key_f35 kf35 str FP - - ----- F35 function key -#key_f36 kf36 str FQ - - ----- F36 function key -#key_f37 kf37 str FR - - ----- F37 function key -#key_f38 kf38 str FS - - ----- F38 function key -#key_f39 kf39 str FT - - ----- F39 function key -#key_f40 kf40 str FU - - ----- F40 function key -#key_f41 kf41 str FV - - ----- F41 function key -#key_f42 kf42 str FW - - ----- F42 function key -#key_f43 kf43 str FX - - ----- F43 function key -#key_f44 kf44 str FY - - ----- F44 function key -#key_f45 kf45 str FZ - - ----- F45 function key -#key_f46 kf46 str Fa - - ----- F46 function key -#key_f47 kf47 str Fb - - ----- F47 function key -#key_f48 kf48 str Fc - - ----- F48 function key -#key_f49 kf49 str Fd - - ----- F49 function key -#key_f50 kf50 str Fe - - ----- F50 function key -#key_f51 kf51 str Ff - - ----- F51 function key -#key_f52 kf52 str Fg - - ----- F52 function key -#key_f53 kf53 str Fh - - ----- F53 function key -#key_f54 kf54 str Fi - - ----- F54 function key -#key_f55 kf55 str Fj - - ----- F55 function key -#key_f56 kf56 str Fk - - ----- F56 function key -#key_f57 kf57 str Fl - - ----- F57 function key -#key_f58 kf58 str Fm - - ----- F58 function key -#key_f59 kf59 str Fn - - ----- F59 function key -#key_f60 kf60 str Fo - - ----- F60 function key -#key_f61 kf61 str Fp - - ----- F61 function key -#key_f62 kf62 str Fq - - ----- F62 function key -#key_f63 kf63 str Fr - - ----- F63 function key -# -############################################################################# -# -# ALIAS DECLARATIONS -# -# Here we set up aliases for translating extensions into standard terminfo. -# -#---------------------------------- Termcap aliases ------------------------- -# -# BSD aliases: -# -# This is a common error in many termcap files. We'll get notified during -# translation when this (or any other alias) fires. -# -capalias sb sr BSD scroll text down -# -# AT&T extensions: -# -# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of -# nonstandard capabilities. Its signature is the KM capability, used to name -# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this -# set. Comments in the original, and a little cross-checking with other AT&T -# documentation, seem to establish the following mappings: -# -capalias BO mr AT&T enter_reverse_mode -capalias CI vi AT&T cursor_invisible -capalias CV ve AT&T cursor_normal -capalias DS mh AT&T enter_dim_mode -#capalias EE me AT&T exit_attribute_mode -capalias FE LF AT&T label_on -capalias FL LO AT&T label_off -capalias XS mk AT&T enter_secure_mode -# -# We comment out EE because the conflicting XENIX EE is more common in -# old entries. -# -# XENIX extensions: -# -# These are the ones we know how to translate directly: -# -capalias EE mh XENIX exit_attribute_mode -capalias GE ae XENIX exit_alt_charset_mode -capalias GS as XENIX enter_alt_charset_mode -capalias CF vi XENIX cursor_invis -capalias CO ve XENIX cursor_normal -capalias EN @7 XENIX key_end -capalias HM kh XENIX key_home -capalias LD kL XENIX key_dl -capalias PD kN XENIX key_npage -capalias PN po XENIX prtr_off -capalias PS pf XENIX prtr_on -capalias PU kP XENIX key_ppage -capalias RT @8 XENIX kent -capalias UP ku XENIX kcuu1 -capalias G6 IGNORE XENIX double-ACS_ULCORNER -capalias G7 IGNORE XENIX double-ACS_LLCORNER -capalias G5 IGNORE XENIX double-ACS_URCORNER -capalias G8 IGNORE XENIX double-ACS_LRCORNER -capalias Gr IGNORE XENIX double-ACS_LTEE -capalias Gr IGNORE XENIX double-ACS_RTEE -capalias Gu IGNORE XENIX double-ACS_BTEE -capalias Gd IGNORE XENIX double ACS_TTEE -capalias Gh IGNORE XENIX double-ACS_HLINE -capalias Gv IGNORE XENIX double-ACS_VLINE -capalias Gc IGNORE XENIX double-ACS_PLUS -capalias GG IGNORE XENIX acs-glitch -# -# IBM extensions: -# -capalias kq %1 IBM key_help -# -# Iris extensions: -# -capalias HS mh IRIS enter_dim_mode -# -# Tektronix extensions: -# -capalias KA k; Tek key_f10 -capalias KB F1 Tek key_f11 -capalias KC F2 Tek key_f12 -capalias KD F3 Tek key_f13 -capalias KE F4 Tek key_f14 -capalias KF F5 Tek key_f15 -capalias BC Sb Tek set_background -capalias FC Sf Tek set_foreground -# -# There are also the following: -# -# XENIX XENIX variable name name clash with terminfo? -# ----- ------------------- ------------------------- -# CL key_char_left -# CR key_char_right -# CW key_change_window -# HP ?? -# LF key_linefeed label_off -# NU key_next_unlocked_cell -# PL ?? -# PR ?? -# RC key_recalc remove_clock -# RF key_toggle_ref req_for_input -# WL key_word_left -# WR key_word_right -# -# If you know what any of the question-marked ones mean, please tell us. -# -#--------------------------------- Terminfo aliases ------------------------ -# -# IBM extensions: -# -infoalias font0 s0ds IBM set0_des_seq -infoalias font1 s1ds IBM set1_des_seq -infoalias font2 s2ds IBM set2_des_seq -infoalias font3 s3ds IBM set3_des_seq -infoalias kbtab kcbt IBM key_backtab -infoalias ksel kslt IBM key_select -# -# Some others are identical to SVr4/XPG4 capabilities, in particular: -# kcmd, kend, khlp, and kf11...kf63. -# -############################################################################# -# -# The following sets edit modes for GNU EMACS -# Local Variables: -# case-fold-search:nil -# truncate-lines:t -# End: diff --git a/Build/source/libs/ncurses/include/Caps.hpux11 b/Build/source/libs/ncurses/include/Caps.hpux11 deleted file mode 100644 index e43d44effb0..00000000000 --- a/Build/source/libs/ncurses/include/Caps.hpux11 +++ /dev/null @@ -1,1278 +0,0 @@ -############################################################################## -# Copyright (c) 2002,2003 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas Dickey -# -# $Id: Caps.hpux11,v 1.3 2003/11/15 20:27:40 tom Exp $ -# -# This is an adaptation of ncurses' termcap/terminfo capability table, which -# is designed to align with HPUX 11.x's terminfo. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it's there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It's up the ncurses -# library what to do with the terminfo data after it's read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It's up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -# end booleans for HPUX 9, 10 (non-color curses) -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -hard_cursor chts bool HC - - ----- cursor is hard to see -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -can_change ccc bool cc - - ----- terminal can re-define existing colors -back_color_erase bce bool ut - - ----- screen erased with background color -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps -cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode -has_print_wheel daisy bool YC - - ----- printer needs operator to change character set -row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps -semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr -cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution -lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -# end numbers for HPUX 9, 10 (non-color curses) -num_labels nlab num Nl - - ----- number of labels on screen -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -maximum_windows wnum num MW - - ----- maximum number of defineable windows -# These came in with SVr4's color support -max_colors colors num Co - - ----- maximum number of colors on screen -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -no_color_video ncv num NC - - ----- video attributes that cannot be used with colors -#%.TE -#%.ad -#% -#%The following numeric capabilities are present in the SVr4.0 term structure, -#%but are not yet documented in the man page. They came in with SVr4's -#%printer support. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing -dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch -dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch -max_micro_address maddr num Yd - - ----- maximum value in micro_..._address -max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro -micro_col_size mcs num Yf - - ----- character step size when in micro mode -micro_line_size mls num Yg - - ----- line step size when in micro mode -number_of_pins npins num Yh - - ----- numbers of pins in print-head -output_res_char orc num Yi - - ----- horizontal resolution in units per line -output_res_line orl num Yj - - ----- vertical resolution in units per line -output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch -output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch -print_rate cps num Ym - - ----- print rate in characters per second -wide_char_size widcs num Yn - - ----- character step size when in double wide mode -buttons btns num BT - - ----- number of buttons on mouse -bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row -bit_image_type bitype num Yp - - ----- type of bit-image device -#%.TE -#%.ad -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# SVr1 capabilities stop here. IBM's version of terminfo is the same as -# SVr4 up to this point, but has a different set afterwards. -# -# HPUX defines these if __HP_CURSES_COMPAT is defined: -memory_lock meml str ml - - ----K memory lock above -memory_unlock memu str mu - - ----K memory unlock -# -# -plab_norm pln str pn - - ----- program label #1 to show string #2 -label_on smln str LO - - ----- turn on soft labels -label_off rmln str LF - - ----- turn off soft labels -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -# end of strings in HPUX 9 -char_padding rmp str rP - - ----- like ip but when in insert mode -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -enter_am_mode smam str SA - - ----- turn on automatic margins -exit_am_mode rmam str RA - - ----- turn off automatic margins -xon_character xonc str XN - - ----- XON character -xoff_character xoffc str XF - - ----- XOFF character -ena_acs enacs str eA - - ----- enable alternate char set -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -key_command kcmd str @4 KEY_COMMAND 0545 ----- command key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -key_end kend str @7 KEY_END 0550 ----- end key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -key_help khlp str %1 KEY_HELP 0553 ----- help key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -req_for_input rfi str RF - - ----- send next input char (for ptys) -clr_bol el1 str cb - - ----- Clear to beginning of line -clear_margins mgc str MC - - ----- clear right and left soft margins -set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap). -set_right_margin smgr str MR - - ----- set right soft margin at current column -label_format fln str Lf - - ----- label format -set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs -display_clock dclk str DK - - ----- display clock -remove_clock rmclk str RC - - ----- remove clock -create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5 -goto_window wingo str WG - - ----- go to window #1 -hangup hup str HU - - ----- hang-up phone -dial_phone dial str DI - - ----- dial number #1 -quick_dial qdial str QD - - ----- dial number #1 without checking -tone tone str TO - - ----- select touch tone dialing -pulse pulse str PU - - ----- select pulse dialing -flash_hook hook str fh - - ----- flash switch hook -fixed_pause pause str PA - - ----- pause for 2-3 seconds -wait_tone wait str WA - - ----- wait for dial-tone -user0 u0 str u0 - - ----- User string #0 -user1 u1 str u1 - - ----- User string #1 -user2 u2 str u2 - - ----- User string #2 -user3 u3 str u3 - - ----- User string #3 -user4 u4 str u4 - - ----- User string #4 -user5 u5 str u5 - - ----- User string #5 -user6 u6 str u6 - - ----- User string #6 -user7 u7 str u7 - - ----- User string #7 -user8 u8 str u8 - - ----- User string #8 -user9 u9 str u9 - - ----- User string #9 -# -# SVr4 added these capabilities to support color -# -orig_pair op str op - - ----- Set default pair to its original value -orig_colors oc str oc - - ----- Set all color pairs to the original ones -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -set_background setb str Sb - - ----- Set background color #1 -# -# SVr4 added these capabilities to support printers -# -change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1 -change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1 -change_res_horz chr str ZC - - ----- Change horizontal resolution to #1 -change_res_vert cvr str ZD - - ----- Change vertical resolution to #1 -define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3 -enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode -enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode -enter_italics_mode sitm str ZH - - ----- Enter italic mode -enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion -enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode -enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode -enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode -enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode -enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode -enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode -enter_upward_mode sum str ZP - - ----- Start upward carriage motion -exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode -exit_italics_mode ritm str ZR - - ----- End italic mode -exit_leftward_mode rlm str ZS - - ----- End left-motion mode -exit_micro_mode rmicm str ZT - - ----- End micro-motion mode -exit_shadow_mode rshm str ZU - - ----- End shadow-print mode -exit_subscript_mode rsubm str ZV - - ----- End subscript mode -exit_superscript_mode rsupm str ZW - - ----- End superscript mode -exit_upward_mode rum str ZX - - ----- End reverse character motion -micro_column_address mhpa str ZY - - ----- Like column_address in micro mode -micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode -micro_left mcub1 str Za - - ----- Like cursor_left in micro mode -micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode -micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode -micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode -order_of_pins porder str Ze - - ----- Match software bits to print-head pins -parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode -parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode -parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode -parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode -select_char_set scs str Zj - - ----- Select character set, #1 -set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line -set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom -set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1 -set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1 -set_top_margin smgt str Zo - - ----- Set top margin at current line -set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1 -start_bit_image sbim str Zq - - ----- Start printing bit image graphics -start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set -stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics -stop_char_set_def rcsd str Zt - - ----- End definition of character set #1 -subscript_characters subcs str Zu - - ----- List of subscriptable characters -superscript_characters supcs str Zv - - ----- List of superscriptable characters -these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR -zero_motion zerom str Zx - - ----- No motion for subsequent character -#%.TE -#%.ad -#% -#%The following string capabilities are present in the SVr4.0 term structure, -#%but were originally not documented in the man page. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw18. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -mouse_info minfo str Mi - - ----- Mouse status information -req_mouse_pos reqmp str RQ - - ----- Request mouse position -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3 -device_type devt str dv - - ----- Indicate language/codeset support -code_set_init csin str ci - - ----- Init sequence for multiple codesets -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap). -set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2 -bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times -bit_image_newline binel str Zz - - ----- Move to next row of the bit image -bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row -color_names colornm str Yw - - ----- Give name for color #1 -define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region -end_bit_image_region endbi str Yy - - ----- End a bit-image region -set_color_band setcolor str Yz - - ----- Change to ribbon color #1 -set_page_length slines str YZ - - ----- Set page length to #1 lines -# -# SVr4 added these capabilities for direct PC-clone support -# -display_pc_char dispc str S1 - - ----- Display PC character #1 -enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode -exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode -enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode -exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode -pc_term_options pctrm str S6 - - ----- PC terminal options -scancode_escape scesc str S7 - - ----- Escape for scancode emulation -alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation -#%.TE -#%.ad -#% -#%.in .8i -#%The XSI Curses standard added these. They are some post-4.1 -#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x. -#%The \fBncurses\fR termcap names for them are invented; according to the -#%XSI Curses standard, they have no termcap names. If your compiled terminfo -#%entries use these, they may not be binary-compatible with System V terminfo -#%entries after SVr4.1; beware! -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch -enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode -enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode -enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode -enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode -enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode -enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode -set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 -exit_horizontal_hl_mode rhhlm str XH - - ----K Exit horizontal highlight mode -exit_left_hl_mode rlhlm str XL - - ----K Exit left highlight mode -exit_low_hl_mode rlohlm str XO - - ----K Exit low highlight mode -exit_right_hl_mode rrhlm str XR - - ----K Exit right highlight mode -exit_top_hl_mode rthlm str XT - - ----K Exit top highlight mode -exit_vertical_hl_mode rvhlm str XV - - ----K Exit vertical highlight mode -#%.TE -#%.ad -# -# The magic token below tells the tic compiler-generator code that all the caps -# past it should be ignored (not written out) when dumping terminfo objects. It -# also tells the man page table generator not to pass through following lines -# This means we can have obsolete capabilities and pseudo-capabilities that are -# recognized for termcap or terminfo compilation, but not output. -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability seems to have been designed to map between the rogue(2) -# motion keys (including jkhl) and characters emitted by arrow keys on some -# primitive pre-ANSI terminals. It's so obsolete it's fossilized... -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it's not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# This section is almost all comments. What it's mainly for is to describe -# what capabilities need to be squeezed out to get down to the XSI Curses -# standard set. They are flagged with K. -# -# HP extensions -# -# These extensions follow ptr_non (replacing everything after it) in HP -# terminfo files. Except for memory_lock and memory_unlock, they are -# functionally identical to SVr4 extensions, but they make the binary format -# different. Grrr.... -# -#memory_lock meml str ml - - ----K memory lock above -#memory_unlock memu str mu - - ----K memory unlock -#plab_norm pln str pn - - ----- program label #1 to show string #2 -#label_on smln str LO - - ----- turn on soft labels -#label_off rmln str LF - - ----- turn off soft labels -#key_f11 kf11 str F1 - - ----- F11 function key -#key_f12 kf12 str F2 - - ----- F12 function key -#key_f13 kf13 str F3 - - ----- F13 function key -#key_f14 kf14 str F4 - - ----- F14 function key -#key_f15 kf15 str F5 - - ----- F15 function key -#key_f16 kf16 str F6 - - ----- F16 function key -#key_f17 kf17 str F7 - - ----- F17 function key -#key_f18 kf18 str F8 - - ----- F18 function key -#key_f19 kf19 str F9 - - ----- F19 function key -#key_f20 kf20 str FA - - ----- F20 function key -#key_f21 kf21 str FB - - ----- F21 function key -#key_f22 kf22 str FC - - ----- F22 function key -#key_f23 kf23 str FD - - ----- F23 function key -#key_f24 kf24 str FE - - ----- F24 function key -#key_f25 kf25 str FF - - ----- F25 function key -#key_f26 kf26 str FG - - ----- F26 function key -#key_f27 kf27 str FH - - ----- F27 function key -#key_f28 kf28 str FI - - ----- F28 function key -#key_f29 kf29 str FJ - - ----- F29 function key -#key_f30 kf30 str FK - - ----- F30 function key -#key_f31 kf31 str FL - - ----- F31 function key -#key_f32 kf32 str FM - - ----- F32 function key -#key_f33 kf33 str FN - - ----- F33 function key -#key_f34 kf34 str FO - - ----- F34 function key -#key_f35 kf35 str FP - - ----- F35 function key -#key_f36 kf36 str FQ - - ----- F36 function key -#key_f37 kf37 str FR - - ----- F37 function key -#key_f38 kf38 str FS - - ----- F38 function key -#key_f39 kf39 str FT - - ----- F39 function key -#key_f40 kf40 str FU - - ----- F40 function key -#key_f41 kf41 str FV - - ----- F41 function key -#key_f42 kf42 str FW - - ----- F42 function key -#key_f43 kf43 str FX - - ----- F43 function key -#key_f44 kf44 str FY - - ----- F44 function key -#key_f45 kf45 str FZ - - ----- F45 function key -#key_f46 kf46 str Fa - - ----- F46 function key -#key_f47 kf47 str Fb - - ----- F47 function key -#key_f48 kf48 str Fc - - ----- F48 function key -#key_f49 kf49 str Fd - - ----- F49 function key -#key_f50 kf50 str Fe - - ----- F50 function key -#key_f51 kf51 str Ff - - ----- F51 function key -#key_f52 kf52 str Fg - - ----- F52 function key -#key_f53 kf53 str Fh - - ----- F53 function key -#key_f54 kf54 str Fi - - ----- F54 function key -#key_f55 kf55 str Fj - - ----- F55 function key -#key_f56 kf56 str Fk - - ----- F56 function key -#key_f57 kf57 str Fl - - ----- F57 function key -#key_f58 kf58 str Fm - - ----- F58 function key -#key_f59 kf59 str Fn - - ----- F59 function key -#key_f60 kf60 str Fo - - ----- F60 function key -#key_f61 kf61 str Fp - - ----- F61 function key -#key_f62 kf62 str Fq - - ----- F62 function key -#key_f63 kf63 str Fr - - ----- F63 function key -# -# IBM extensions -# -# These extensions follow ptr_non (replacing everything after it) in IBM -# terminfo files. -# -# The places in the box[12] capabilities correspond to acsc characters, here is -# the mapping: -# -# box1[0] = ACS_ULCORNER -# box1[1] = ACS_HLINE -# box1[2] = ACS_URCORNER -# box1[3] = ACS_VLINE -# box1[4] = ACS_LRCORNER -# box1[5] = ACS_LLCORNER -# box1[6] = ACS_TTEE -# box1[7] = ACS_RTEE -# box1[8] = ACS_BTEE -# box1[9] = ACS_LTEE -# box1[10] = ACS_PLUS -# -# The box2 characters are the double-line versions of these forms graphics. -# -box_chars_1 box1 str bx - - ----K box characters primary set -#box_chars_2 box2 str by - - ----K box characters secondary set -#box_attr_1 batt1 str Bx - - ----K attributes for box1 -#box_attr_2 batt2 str By - - ----K attributes for box2 -#color_bg_0 colb0 str d0 - - ----K background color 0 -#color_bg_1 colb1 str d1 - - ----K background color 1 -#color_bg_2 colb2 str d2 - - ----K background color 2 -#color_bg_3 colb3 str d3 - - ----K background color 3 -#color_bg_4 colb4 str d4 - - ----K background color 4 -#color_bg_5 colb5 str d5 - - ----K background color 5 -#color_bg_6 colb6 str d6 - - ----K background color 6 -#color_bg_7 colb7 str d7 - - ----K background color 7 -#color_fg_0 colf0 str c0 - - ----K foreground color 0 -#color_fg_1 colf1 str c1 - - ----K foreground color 1 -#color_fg_2 colf2 str c2 - - ----K foreground color 2 -#color_fg_3 colf3 str c3 - - ----K foreground color 3 -#color_fg_4 colf4 str c4 - - ----K foreground color 4 -#color_fg_5 colf5 str c5 - - ----K foreground color 5 -#color_fg_6 colf6 str c6 - - ----K foreground color 6 -#color_fg_7 colf7 str c7 - - ----K foreground color 7 -#font_0 font0 str f0 - - ----- select font 0 -#font_1 font1 str f1 - - ----- select font 1 -#font_2 font2 str f2 - - ----- select font 2 -#font_3 font3 str f3 - - ----- select font 3 -#font_4 font4 str f4 - - ----K select font 4 -#font_5 font5 str f5 - - ----K select font 5 -#font_6 font6 str f6 - - ----K select font 6 -#font_7 font7 str f7 - - ----K select font 7 -#key_back_tab kbtab str k0 - - ----- backtab key -#key_do kdo str ki - - ----K do request key -#key_command kcmd str kd - - ----K command-request key -#key_command_pane kcpn str kW - - ----K command-pane key -#key_end kend str kw - - ----- end key -#key_help khlp str kq - - ----- help key -#key_newline knl str nl - - ----K newline key -#key_next_pane knpn str kv - - ----K next-pane key -#key_prev_cmd kppn str kp - - ----K previous-command key -#key_prev_pane kppn str kV - - ----K previous-pane key -#key_quit kquit str kQ - - ----K quit key -#key_select ksel str kU - - ----- select key -#key_scroll_left kscl str kz - - ----K scroll left -#key_scroll_right kscr str kZ - - ----K scroll right -#key_tab ktab str ko - - ----K tab key -#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input -#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output -#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input -#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output -#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input -#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output -#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input -#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output -#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input -#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output -#appl_defined_str apstr str za - - ----K application-defined string -# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in -# the IBM manual pages, so the cap name strings are guesses. The terminfo -# names are almost certainly right, the termcap ones almost certainly wrong. -#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input -#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output -#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input -#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output -#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input -#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output -#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input -#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output -# Undocumented capabilities end here -#key_sf1 ksf1 str S1 - - ----K special function key 1 -#key_sf2 ksf2 str S2 - - ----K special function key 2 -#key_sf3 ksf3 str S3 - - ----K special function key 3 -#key_sf4 ksf4 str S4 - - ----K special function key 4 -#key_sf5 ksf5 str S5 - - ----K special function key 5 -#key_sf6 ksf6 str S6 - - ----K special function key 6 -#key_sf7 ksf7 str S7 - - ----K special function key 7 -#key_sf8 ksf8 str S8 - - ----K special function key 8 -#key_sf9 ksf9 str S9 - - ----K special function key 9 -#key_sf10 ksf10 str SA - - ----K special function key 10 -# AIX version 3 documents different codes for F11, F12 and does not mention -# F13-F64. AIX version 4 uses the same naming for F0-F63 as above. -#key_f11 kf11 str k< - - ----- function key 11 -#key_f12 kf12 str k> - - ----- function key 12 -# Undocumented capabilities end here. -#key_action kact str kJ - - ----K sent by action key -# The IBM docs say these capabilities are for table-drawing, and are -# valid only for aixterm descriptions. -#enter_topline_mode topl str tp - - ----K start top-line mode -#enter_bottom_mode btml str bm - - ----K start bottom-line mode -#enter_rvert_mode rvert str rv - - ----K start right-vertical mode -#enter_lvert_mode lvert str lv - - ----K start left-vertical mode -# -############################################################################# -# -# ALIAS DECLARATIONS -# -# Here we set up aliases for translating extensions into standard terminfo. -# -#---------------------------------- Termcap aliases ------------------------- -# -# BSD aliases: -# -# This is a common error in many termcap files. We'll get notified during -# translation when this (or any other alias) fires. -# -capalias sb sr BSD scroll text down -# -# AT&T extensions: -# -# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of -# nonstandard capabilities. Its signature is the KM capability, used to name -# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this -# set. Comments in the original, and a little cross-checking with other AT&T -# documentation, seem to establish the following mappings: -# -capalias BO mr AT&T enter_reverse_mode -capalias CI vi AT&T cursor_invisible -capalias CV ve AT&T cursor_normal -capalias DS mh AT&T enter_dim_mode -#capalias EE me AT&T exit_attribute_mode -capalias FE LF AT&T label_on -capalias FL LO AT&T label_off -capalias XS mk AT&T enter_secure_mode -# -# We comment out EE because the conflicting XENIX EE is more common in -# old entries. -# -# XENIX extensions: -# -# These are the ones we know how to translate directly: -# -capalias EE mh XENIX exit_attribute_mode -capalias GE ae XENIX exit_alt_charset_mode -capalias GS as XENIX enter_alt_charset_mode -capalias CF vi XENIX cursor_invis -capalias CO ve XENIX cursor_normal -capalias EN @7 XENIX key_end -capalias HM kh XENIX key_home -capalias LD kL XENIX key_dl -capalias PD kN XENIX key_npage -capalias PN po XENIX prtr_off -capalias PS pf XENIX prtr_on -capalias PU kP XENIX key_ppage -capalias RT @8 XENIX kent -capalias UP ku XENIX kcuu1 -capalias G6 IGNORE XENIX double-ACS_ULCORNER -capalias G7 IGNORE XENIX double-ACS_LLCORNER -capalias G5 IGNORE XENIX double-ACS_URCORNER -capalias G8 IGNORE XENIX double-ACS_LRCORNER -capalias Gr IGNORE XENIX double-ACS_LTEE -capalias Gr IGNORE XENIX double-ACS_RTEE -capalias Gu IGNORE XENIX double-ACS_BTEE -capalias Gd IGNORE XENIX double ACS_TTEE -capalias Gh IGNORE XENIX double-ACS_HLINE -capalias Gv IGNORE XENIX double-ACS_VLINE -capalias Gc IGNORE XENIX double-ACS_PLUS -capalias GG IGNORE XENIX acs-glitch -# -# IBM extensions: -# -capalias kq %1 IBM key_help -# -# Iris extensions: -# -capalias HS mh IRIS enter_dim_mode -# -# Tektronix extensions: -# -capalias KA k; Tek key_f10 -capalias KB F1 Tek key_f11 -capalias KC F2 Tek key_f12 -capalias KD F3 Tek key_f13 -capalias KE F4 Tek key_f14 -capalias KF F5 Tek key_f15 -capalias BC Sb Tek set_background -capalias FC Sf Tek set_foreground -# -# There are also the following: -# -# XENIX XENIX variable name name clash with terminfo? -# ----- ------------------- ------------------------- -# CL key_char_left -# CR key_char_right -# CW key_change_window -# HP ?? -# LF key_linefeed label_off -# NU key_next_unlocked_cell -# PL ?? -# PR ?? -# RC key_recalc remove_clock -# RF key_toggle_ref req_for_input -# WL key_word_left -# WR key_word_right -# -# If you know what any of the question-marked ones mean, please tell us. -# -#--------------------------------- Terminfo aliases ------------------------ -# -# IBM extensions: -# -infoalias font0 s0ds IBM set0_des_seq -infoalias font1 s1ds IBM set1_des_seq -infoalias font2 s2ds IBM set2_des_seq -infoalias font3 s3ds IBM set3_des_seq -infoalias kbtab kcbt IBM key_backtab -infoalias ksel kslt IBM key_select -# -# Some others are identical to SVr4/XPG4 capabilities, in particular: -# kcmd, kend, khlp, and kf11...kf63. -# -############################################################################# -# -# The following sets edit modes for GNU EMACS -# Local Variables: -# case-fold-search:nil -# truncate-lines:t -# End: diff --git a/Build/source/libs/ncurses/include/Caps.keys b/Build/source/libs/ncurses/include/Caps.keys deleted file mode 100644 index 7ef7545fa5b..00000000000 --- a/Build/source/libs/ncurses/include/Caps.keys +++ /dev/null @@ -1,1354 +0,0 @@ -############################################################################## -# Copyright (c) 2001 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas Dickey -# and: Ilya Zakharevich -# -# $Id: Caps.keys,v 1.2 2002/04/20 15:43:49 tom Exp $ -# -# This is an adaptation of ncurses' termcap/terminfo capability table, which -# is illustrates an experimental extension to describe alt-, shift- and -# control-modifiers applied to function and normal keys, as done on IBM pc's. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it's there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It's up the ncurses -# library what to do with the terminfo data after it's read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It's up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE can't print ~'s (hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -needs_xon_xoff nxon bool nx - - ----- padding won't work, xon/xoff required -prtr_silent mc5i bool 5i - - ----- printer won't echo on screen -hard_cursor chts bool HC - - ----- cursor is hard to see -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -can_change ccc bool cc - - ----- terminal can re-define existing colors -back_color_erase bce bool ut - - ----- screen erased with background color -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps -cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode -has_print_wheel daisy bool YC - - ----- printer needs operator to change character set -row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps -semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr -cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution -lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -num_labels nlab num Nl - - ----- number of labels on screen -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -maximum_windows wnum num MW - - ----- maximum number of defineable windows -# These came in with SVr4's color support -max_colors colors num Co - - ----- maximum number of colors on screen -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -no_color_video ncv num NC - - ----- video attributes that can't be used with colors -#%.TE -#%.ad -#% -#%The following numeric capabilities are present in the SVr4.0 term structure, -#%but are not yet documented in the man page. They came in with SVr4's -#%printer support. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing -dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch -dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch -max_micro_address maddr num Yd - - ----- maximum value in micro_..._address -max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro -micro_col_size mcs num Yf - - ----- character step size when in micro mode -micro_line_size mls num Yg - - ----- line step size when in micro mode -number_of_pins npins num Yh - - ----- numbers of pins in print-head -output_res_char orc num Yi - - ----- horizontal resolution in units per line -output_res_line orl num Yj - - ----- vertical resolution in units per line -output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch -output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch -print_rate cps num Ym - - ----- print rate in characters per second -wide_char_size widcs num Yn - - ----- character step size when in double wide mode -buttons btns num BT - - ----- number of buttons on mouse -bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row -bit_image_type bitype num Yp - - ----- type of bit-image device -#%.TE -#%.ad -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# SVr1 capabilities stop here. IBM's version of terminfo is the same as -# SVr4 up to this point, but has a different set afterwards. -# -char_padding rmp str rP - - ----- like ip but when in insert mode -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -plab_norm pln str pn - - ----- program label #1 to show string #2 -key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -enter_am_mode smam str SA - - ----- turn on automatic margins -exit_am_mode rmam str RA - - ----- turn off automatic margins -xon_character xonc str XN - - ----- XON character -xoff_character xoffc str XF - - ----- XOFF character -ena_acs enacs str eA - - ----- enable alternate char set -label_on smln str LO - - ----- turn on soft labels -label_off rmln str LF - - ----- turn off soft labels -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -key_command kcmd str @4 KEY_COMMAND 0545 ----- command key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -key_end kend str @7 KEY_END 0550 ----- end key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -key_help khlp str %1 KEY_HELP 0553 ----- help key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -req_for_input rfi str RF - - ----- send next input char (for ptys) -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -clr_bol el1 str cb - - ----- Clear to beginning of line -clear_margins mgc str MC - - ----- clear right and left soft margins -set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap). -set_right_margin smgr str MR - - ----- set right soft margin at current column -label_format fln str Lf - - ----- label format -set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs -display_clock dclk str DK - - ----- display clock -remove_clock rmclk str RC - - ----- remove clock -create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5 -goto_window wingo str WG - - ----- go to window #1 -hangup hup str HU - - ----- hang-up phone -dial_phone dial str DI - - ----- dial number #1 -quick_dial qdial str QD - - ----- dial number #1 without checking -tone tone str TO - - ----- select touch tone dialing -pulse pulse str PU - - ----- select pulse dialing -flash_hook hook str fh - - ----- flash switch hook -fixed_pause pause str PA - - ----- pause for 2-3 seconds -wait_tone wait str WA - - ----- wait for dial-tone -user0 u0 str u0 - - ----- User string #0 -user1 u1 str u1 - - ----- User string #1 -user2 u2 str u2 - - ----- User string #2 -user3 u3 str u3 - - ----- User string #3 -user4 u4 str u4 - - ----- User string #4 -user5 u5 str u5 - - ----- User string #5 -user6 u6 str u6 - - ----- User string #6 -user7 u7 str u7 - - ----- User string #7 -user8 u8 str u8 - - ----- User string #8 -user9 u9 str u9 - - ----- User string #9 -# -# NCurses extensions for keys accessible on most PC consoles -# -key_sup kUP str !5 KEY_SUP + ----- shifted up-arrow key -key_sdown kDOWN str !6 KEY_SDOWN + ----- shifted down-arrow key -key_sbackspace kBS str !7 KEY_SBACKSPACE + ----- shifted backspace key -key_c_delete kcdelete str !8 KEY_C_DELETE + ----- control- delete-character key -key_c_end kcend str !9 KEY_C_END + ----- control- end key -key_c_home kchom str !0 KEY_C_HOME + ----- control- home key -key_c_insert kcinsert str !_ KEY_C_INSERT + ----- control- insert-character key -key_c_left kclft str %k KEY_C_LEFT + ----- control- left-arrow key -key_c_next kcnxt str %l KEY_C_NEXT + ----- control- next key -key_c_previous kcprv str %m KEY_C_PREVIOUS + ----- control- previous key -key_c_print kcprt str %n KEY_C_PRINT + ----- control- print key -key_c_right kcrit str %o KEY_C_RIGHT + ----- control- right-arrow key -key_c_backspace kcbs str %p KEY_C_BACKSPACE + ----- control- backspace key -key_c_up kcup str %q KEY_C_UP + ----- control- up-arrow key -key_c_down kcdown str %r KEY_C_DOWN + ----- control- down-arrow key -key_a_delete kadelete str %s KEY_A_DELETE + ----- alt- delete-character key -key_a_end kaend str %t KEY_A_END + ----- alt- end key -key_a_home kahom str %u KEY_A_HOME + ----- alt- home key -key_a_insert kainsert str %v KEY_A_INSERT + ----- alt- insert-character key -key_a_left kalft str %w KEY_A_LEFT + ----- alt- left-arrow key -key_a_next kanxt str %x KEY_A_NEXT + ----- alt- next key -key_a_previous kaprv str %y KEY_A_PREVIOUS + ----- alt- previous key -key_a_print kaprt str %z KEY_A_PRINT + ----- alt- print key -key_a_right karit str %! KEY_A_RIGHT + ----- alt- right-arrow key -key_a_backspace kabs str %@ KEY_A_BACKSPACE + ----- alt- backspace key -key_a_up kaup str %# KEY_A_UP + ----- alt- up-arrow key -key_a_down kadown str %$ KEY_A_DOWN + ----- alt- down-arrow key -key_a_a kaa str $a KEY_A_A + ----- alt- a key -key_a_b kab str $b KEY_A_B + ----- alt- b key -key_a_c kac str $c KEY_A_C + ----- alt- c key -key_a_d kad str $d KEY_A_D + ----- alt- d key -key_a_e kae str $e KEY_A_E + ----- alt- e key -key_a_f kaf str $f KEY_A_F + ----- alt- f key -key_a_g kag str $g KEY_A_G + ----- alt- g key -key_a_h kah str $h KEY_A_H + ----- alt- h key -key_a_i kai str $i KEY_A_I + ----- alt- i key -key_a_j kaj str $j KEY_A_J + ----- alt- j key -key_a_k kak str $k KEY_A_K + ----- alt- k key -key_a_l kal str $l KEY_A_L + ----- alt- l key -key_a_m kam str $m KEY_A_M + ----- alt- m key -key_a_n kan str $n KEY_A_N + ----- alt- n key -key_a_o kao str $o KEY_A_O + ----- alt- o key -key_a_p kap str $p KEY_A_P + ----- alt- p key -key_a_q kaq str $q KEY_A_Q + ----- alt- q key -key_a_r kar str $r KEY_A_R + ----- alt- r key -key_a_s kas str $s KEY_A_S + ----- alt- s key -key_a_t kat str $t KEY_A_T + ----- alt- t key -key_a_u kau str $u KEY_A_U + ----- alt- u key -key_a_v kav str $v KEY_A_V + ----- alt- v key -key_a_w kaw str $w KEY_A_W + ----- alt- w key -key_a_x kax str $x KEY_A_X + ----- alt- x key -key_a_y kay str $y KEY_A_Y + ----- alt- y key -key_a_z kaz str $z KEY_A_Z + ----- alt- z key -key_a_0 ka_0 str $0 KEY_A_0 + ----- alt- 0 key -key_a_1 ka_1 str $1 KEY_A_1 + ----- alt- 1 key -key_a_2 ka_2 str $2 KEY_A_2 + ----- alt- 2 key -key_a_3 ka_3 str $3 KEY_A_3 + ----- alt- 3 key -key_a_4 ka_4 str $4 KEY_A_4 + ----- alt- 4 key -key_a_5 ka_5 str $5 KEY_A_5 + ----- alt- 5 key -key_a_6 ka_6 str $6 KEY_A_6 + ----- alt- 6 key -key_a_7 ka_7 str $7 KEY_A_7 + ----- alt- 7 key -key_a_8 ka_8 str $8 KEY_A_8 + ----- alt- 8 key -key_a_9 ka_9 str $9 KEY_A_9 + ----- alt- 9 key -key_a_backtick ka_bt str $` KEY_A_BACKTICK + ----- alt- ` key -key_a_under ka_und str $_ KEY_A_UNDER + ----- alt- _ key -key_a_equals ka_eq str $= KEY_A_EQUALS + ----- alt- = key -key_a_bar ka_bsl str $| KEY_A_BAR + ----- alt- | key -key_a_lbracker ka_lbr str $[ KEY_A_LBRACKER + ----- alt- [ key -key_a_rbracker ka_rbr str $] KEY_A_RBRACKER + ----- alt- ] key -key_a_semi ka_semi str $; KEY_A_SEMI + ----- alt- ; key -key_a_tick ka_tick str $' KEY_A_TICK + ----- alt- ' key -key_a_comma ka_com str $, KEY_A_COMMA + ----- alt- , key -key_a_dot ka_dot str $. KEY_A_DOT + ----- alt- . key -key_a_question ka_sla str $? KEY_A_QUESTION + ----- alt- ? key -key_a_divide ka_div str $/ KEY_A_DIVIDE + ----- alt- keypad / key -key_a_multiply ka_mul str $* KEY_A_MULTIPLY + ----- alt- keypad * key -key_a_add ka_add str $+ KEY_A_ADD + ----- alt- keypad + key -key_a_subtract ka_sub str $- KEY_A_SUBTRACT + ----- alt- keypad - key -key_a_kenter ka_kent str $< KEY_A_KENTER + ----- alt- keypad enter key -key_a_enter ka_ent str $> KEY_A_ENTER + ----- alt- enter key -key_c_at kcat str %% KEY_C_AT + ----- control- @ key -key_c_divide kcdiv str %/ KEY_C_DIVIDE + ----- control- keypad / key -key_c_multiply kcmul str %* KEY_C_MULTIPLY + ----- control- keypad * key -key_c_add kcadd str %+ KEY_C_ADD + ----- control- keypad + key -key_c_subtract kcsub str %- KEY_C_SUBTRACT + ----- control- keypad - key -# -# SVr4 added these capabilities to support color -# -orig_pair op str op - - ----- Set default pair to its original value -orig_colors oc str oc - - ----- Set all color pairs to the original ones -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -set_background setb str Sb - - ----- Set background color #1 -# -# SVr4 added these capabilities to support printers -# -change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1 -change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1 -change_res_horz chr str ZC - - ----- Change horizontal resolution to #1 -change_res_vert cvr str ZD - - ----- Change vertical resolution to #1 -define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3 -enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode -enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode -enter_italics_mode sitm str ZH - - ----- Enter italic mode -enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion -enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode -enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode -enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode -enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode -enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode -enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode -enter_upward_mode sum str ZP - - ----- Start upward carriage motion -exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode -exit_italics_mode ritm str ZR - - ----- End italic mode -exit_leftward_mode rlm str ZS - - ----- End left-motion mode -exit_micro_mode rmicm str ZT - - ----- End micro-motion mode -exit_shadow_mode rshm str ZU - - ----- End shadow-print mode -exit_subscript_mode rsubm str ZV - - ----- End subscript mode -exit_superscript_mode rsupm str ZW - - ----- End superscript mode -exit_upward_mode rum str ZX - - ----- End reverse character motion -micro_column_address mhpa str ZY - - ----- Like column_address in micro mode -micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode -micro_left mcub1 str Za - - ----- Like cursor_left in micro mode -micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode -micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode -micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode -order_of_pins porder str Ze - - ----- Match software bits to print-head pins -parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode -parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode -parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode -parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode -select_char_set scs str Zj - - ----- Select character set, #1 -set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line -set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom -set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1 -set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1 -set_top_margin smgt str Zo - - ----- Set top margin at current line -set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1 -start_bit_image sbim str Zq - - ----- Start printing bit image graphics -start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set -stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics -stop_char_set_def rcsd str Zt - - ----- End definition of character set #1 -subscript_characters subcs str Zu - - ----- List of subscriptable characters -superscript_characters supcs str Zv - - ----- List of superscriptable characters -these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR -zero_motion zerom str Zx - - ----- No motion for subsequent character -#%.TE -#%.ad -#% -#%The following string capabilities are present in the SVr4.0 term structure, -#%but were originally not documented in the man page. -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw18. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -mouse_info minfo str Mi - - ----- Mouse status information -req_mouse_pos reqmp str RQ - - ----- Request mouse position -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3 -device_type devt str dv - - ----- Indicate language/codeset support -code_set_init csin str ci - - ----- Init sequence for multiple codesets -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap). -set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2 -bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times -bit_image_newline binel str Zz - - ----- Move to next row of the bit image -bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row -color_names colornm str Yw - - ----- Give name for color #1 -define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region -end_bit_image_region endbi str Yy - - ----- End a bit-image region -set_color_band setcolor str Yz - - ----- Change to ribbon color #1 -set_page_length slines str YZ - - ----- Set page length to #1 lines -# -# SVr4 added these capabilities for direct PC-clone support -# -display_pc_char dispc str S1 - - ----- Display PC character #1 -enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode -exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode -enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode -exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode -pc_term_options pctrm str S6 - - ----- PC terminal options -scancode_escape scesc str S7 - - ----- Escape for scancode emulation -alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation -#%.TE -#%.ad -#% -#%.in .8i -#%The XSI Curses standard added these. They are some post-4.1 -#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x. -#%The \fBncurses\fR termcap names for them are invented; according to the -#%XSI Curses standard, they have no termcap names. If your compiled terminfo -#%entries use these, they may not be binary-compatible with System V terminfo -#%entries after SVr4.1; beware! -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode -enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode -enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode -enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode -enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode -enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode -set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 -set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch -#%.TE -#%.ad -# -# The magic token below tells the tic compiler-generator code that all the caps -# past it should be ignored (not written out) when dumping terminfo objects. It -# also tells the man page table generator not to pass through following lines -# This means we can have obsolete capabilities and pseudo-capabilities that are -# recognized for termcap or terminfo compilation, but not output. -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability seems to have been designed to map between the rogue(2) -# motion keys (including jkhl) and characters emitted by arrow keys on some -# primitive pre-ANSI terminals. It's so obsolete it's fossilized... -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it's not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# This section is almost all comments. What it's mainly for is to describe -# what capabilities need to be squeezed out to get down to the XSI Curses -# standard set. They are flagged with K. -# -# HP extensions -# -# These extensions follow ptr_non (replacing everything after it) in HP -# terminfo files. Except for memory_lock and memory_unlock, they are -# functionally identical to SVr4 extensions, but they make the binary format -# different. Grrr.... -# -memory_lock meml str ml - - ----K memory lock above -memory_unlock memu str mu - - ----K memory unlock -#plab_norm pln str pn - - ----- program label #1 to show string #2 -#label_on smln str LO - - ----- turn on soft labels -#label_off rmln str LF - - ----- turn off soft labels -#key_f11 kf11 str F1 - - ----- F11 function key -#key_f12 kf12 str F2 - - ----- F12 function key -#key_f13 kf13 str F3 - - ----- F13 function key -#key_f14 kf14 str F4 - - ----- F14 function key -#key_f15 kf15 str F5 - - ----- F15 function key -#key_f16 kf16 str F6 - - ----- F16 function key -#key_f17 kf17 str F7 - - ----- F17 function key -#key_f18 kf18 str F8 - - ----- F18 function key -#key_f19 kf19 str F9 - - ----- F19 function key -#key_f20 kf20 str FA - - ----- F20 function key -#key_f21 kf21 str FB - - ----- F21 function key -#key_f22 kf22 str FC - - ----- F22 function key -#key_f23 kf23 str FD - - ----- F23 function key -#key_f24 kf24 str FE - - ----- F24 function key -#key_f25 kf25 str FF - - ----- F25 function key -#key_f26 kf26 str FG - - ----- F26 function key -#key_f27 kf27 str FH - - ----- F27 function key -#key_f28 kf28 str FI - - ----- F28 function key -#key_f29 kf29 str FJ - - ----- F29 function key -#key_f30 kf30 str FK - - ----- F30 function key -#key_f31 kf31 str FL - - ----- F31 function key -#key_f32 kf32 str FM - - ----- F32 function key -#key_f33 kf33 str FN - - ----- F33 function key -#key_f34 kf34 str FO - - ----- F34 function key -#key_f35 kf35 str FP - - ----- F35 function key -#key_f36 kf36 str FQ - - ----- F36 function key -#key_f37 kf37 str FR - - ----- F37 function key -#key_f38 kf38 str FS - - ----- F38 function key -#key_f39 kf39 str FT - - ----- F39 function key -#key_f40 kf40 str FU - - ----- F40 function key -#key_f41 kf41 str FV - - ----- F41 function key -#key_f42 kf42 str FW - - ----- F42 function key -#key_f43 kf43 str FX - - ----- F43 function key -#key_f44 kf44 str FY - - ----- F44 function key -#key_f45 kf45 str FZ - - ----- F45 function key -#key_f46 kf46 str Fa - - ----- F46 function key -#key_f47 kf47 str Fb - - ----- F47 function key -#key_f48 kf48 str Fc - - ----- F48 function key -#key_f49 kf49 str Fd - - ----- F49 function key -#key_f50 kf50 str Fe - - ----- F50 function key -#key_f51 kf51 str Ff - - ----- F51 function key -#key_f52 kf52 str Fg - - ----- F52 function key -#key_f53 kf53 str Fh - - ----- F53 function key -#key_f54 kf54 str Fi - - ----- F54 function key -#key_f55 kf55 str Fj - - ----- F55 function key -#key_f56 kf56 str Fk - - ----- F56 function key -#key_f57 kf57 str Fl - - ----- F57 function key -#key_f58 kf58 str Fm - - ----- F58 function key -#key_f59 kf59 str Fn - - ----- F59 function key -#key_f60 kf60 str Fo - - ----- F60 function key -#key_f61 kf61 str Fp - - ----- F61 function key -#key_f62 kf62 str Fq - - ----- F62 function key -#key_f63 kf63 str Fr - - ----- F63 function key -# -# IBM extensions -# -# These extensions follow ptr_non (replacing everything after it) in IBM -# terminfo files. -# -# The places in the box[12] capabilities correspond to acsc characters, here is -# the mapping: -# -# box1[0] = ACS_ULCORNER -# box1[1] = ACS_HLINE -# box1[2] = ACS_URCORNER -# box1[3] = ACS_VLINE -# box1[4] = ACS_LRCORNER -# box1[5] = ACS_LLCORNER -# box1[6] = ACS_TTEE -# box1[7] = ACS_RTEE -# box1[8] = ACS_BTEE -# box1[9] = ACS_LTEE -# box1[10] = ACS_PLUS -# -# The box2 characters are the double-line versions of these forms graphics. -# -box_chars_1 box1 str bx - - ----K box characters primary set -#box_chars_2 box2 str by - - ----K box characters secondary set -#box_attr_1 batt1 str Bx - - ----K attributes for box1 -#box_attr_2 batt2 str By - - ----K attributes for box2 -#color_bg_0 colb0 str d0 - - ----K background color 0 -#color_bg_1 colb1 str d1 - - ----K background color 1 -#color_bg_2 colb2 str d2 - - ----K background color 2 -#color_bg_3 colb3 str d3 - - ----K background color 3 -#color_bg_4 colb4 str d4 - - ----K background color 4 -#color_bg_5 colb5 str d5 - - ----K background color 5 -#color_bg_6 colb6 str d6 - - ----K background color 6 -#color_bg_7 colb7 str d7 - - ----K background color 7 -#color_fg_0 colf0 str c0 - - ----K foreground color 0 -#color_fg_1 colf1 str c1 - - ----K foreground color 1 -#color_fg_2 colf2 str c2 - - ----K foreground color 2 -#color_fg_3 colf3 str c3 - - ----K foreground color 3 -#color_fg_4 colf4 str c4 - - ----K foreground color 4 -#color_fg_5 colf5 str c5 - - ----K foreground color 5 -#color_fg_6 colf6 str c6 - - ----K foreground color 6 -#color_fg_7 colf7 str c7 - - ----K foreground color 7 -#font_0 font0 str f0 - - ----- select font 0 -#font_1 font1 str f1 - - ----- select font 1 -#font_2 font2 str f2 - - ----- select font 2 -#font_3 font3 str f3 - - ----- select font 3 -#font_4 font4 str f4 - - ----K select font 4 -#font_5 font5 str f5 - - ----K select font 5 -#font_6 font6 str f6 - - ----K select font 6 -#font_7 font7 str f7 - - ----K select font 7 -#key_back_tab kbtab str k0 - - ----- backtab key -#key_do kdo str ki - - ----K do request key -#key_command kcmd str kd - - ----K command-request key -#key_command_pane kcpn str kW - - ----K command-pane key -#key_end kend str kw - - ----- end key -#key_help khlp str kq - - ----- help key -#key_newline knl str nl - - ----K newline key -#key_next_pane knpn str kv - - ----K next-pane key -#key_prev_cmd kppn str kp - - ----K previous-command key -#key_prev_pane kppn str kV - - ----K previous-pane key -#key_quit kquit str kQ - - ----K quit key -#key_select ksel str kU - - ----- select key -#key_scroll_left kscl str kz - - ----K scroll left -#key_scroll_right kscr str kZ - - ----K scroll right -#key_tab ktab str ko - - ----K tab key -#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input -#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output -#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input -#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output -#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input -#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output -#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input -#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output -#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input -#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output -#appl_defined_str apstr str za - - ----K application-defined string -# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in -# the IBM manual pages, so the cap name strings are guesses. The terminfo -# names are almost certainly right, the termcap ones almost certainly wrong. -#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input -#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output -#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input -#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output -#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input -#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output -#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input -#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output -# Undocumented capabilities end here -#key_sf1 ksf1 str S1 - - ----K special function key 1 -#key_sf2 ksf2 str S2 - - ----K special function key 2 -#key_sf3 ksf3 str S3 - - ----K special function key 3 -#key_sf4 ksf4 str S4 - - ----K special function key 4 -#key_sf5 ksf5 str S5 - - ----K special function key 5 -#key_sf6 ksf6 str S6 - - ----K special function key 6 -#key_sf7 ksf7 str S7 - - ----K special function key 7 -#key_sf8 ksf8 str S8 - - ----K special function key 8 -#key_sf9 ksf9 str S9 - - ----K special function key 9 -#key_sf10 ksf10 str SA - - ----K special function key 10 -# AIX version 3 documents different codes for F11, F12 and does not mention -# F13-F64. AIX version 4 uses the same naming for F0-F63 as above. -#key_f11 kf11 str k< - - ----- function key 11 -#key_f12 kf12 str k> - - ----- function key 12 -# Undocumented capabilities end here. -#key_action kact str kJ - - ----K sent by action key -# The IBM docs say these capabilities are for table-drawing, and are -# valid only for aixterm descriptions. -#enter_topline_mode topl str tp - - ----K start top-line mode -#enter_bottom_mode btml str bm - - ----K start bottom-line mode -#enter_rvert_mode rvert str rv - - ----K start right-vertical mode -#enter_lvert_mode lvert str lv - - ----K start left-vertical mode -# -############################################################################# -# -# ALIAS DECLARATIONS -# -# Here we set up aliases for translating extensions into standard terminfo. -# -#---------------------------------- Termcap aliases ------------------------- -# -# BSD aliases: -# -# This is a common error in many termcap files. We'll get notified during -# translation when this (or any other alias) fires. -# -capalias sb sr BSD scroll text down -# -# AT&T extensions: -# -# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of -# nonstandard capabilities. Its signature is the KM capability, used to name -# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this -# set. Comments in the original, and a little cross-checking with other AT&T -# documentation, seem to establish the following mappings: -# -capalias BO mr AT&T enter_reverse_mode -capalias CI vi AT&T cursor_invisible -capalias CV ve AT&T cursor_normal -capalias DS mh AT&T enter_dim_mode -#capalias EE me AT&T exit_attribute_mode -capalias FE LF AT&T label_on -capalias FL LO AT&T label_off -capalias XS mk AT&T enter_secure_mode -# -# We comment out EE because the conflicting XENIX EE is more common in -# old entries. -# -# XENIX extensions: -# -# These are the ones we know how to translate directly: -# -capalias EE mh XENIX exit_attribute_mode -capalias GE ae XENIX exit_alt_charset_mode -capalias GS as XENIX enter_alt_charset_mode -capalias CF vi XENIX cursor_invis -capalias CO ve XENIX cursor_normal -capalias EN @7 XENIX key_end -capalias HM kh XENIX key_home -capalias LD kL XENIX key_dl -capalias PD kN XENIX key_npage -capalias PN po XENIX prtr_off -capalias PS pf XENIX prtr_on -capalias PU kP XENIX key_ppage -capalias RT @8 XENIX kent -capalias UP ku XENIX kcuu1 -capalias G6 IGNORE XENIX double-ACS_ULCORNER -capalias G7 IGNORE XENIX double-ACS_LLCORNER -capalias G5 IGNORE XENIX double-ACS_URCORNER -capalias G8 IGNORE XENIX double-ACS_LRCORNER -capalias Gr IGNORE XENIX double-ACS_LTEE -capalias Gr IGNORE XENIX double-ACS_RTEE -capalias Gu IGNORE XENIX double-ACS_BTEE -capalias Gd IGNORE XENIX double ACS_TTEE -capalias Gh IGNORE XENIX double-ACS_HLINE -capalias Gv IGNORE XENIX double-ACS_VLINE -capalias Gc IGNORE XENIX double-ACS_PLUS -capalias GG IGNORE XENIX acs-glitch -# -# IBM extensions: -# -capalias kq %1 IBM key_help -# -# Iris extensions: -# -capalias HS mh IRIS enter_dim_mode -# -# Tektronix extensions: -# -capalias KA k; Tek key_f10 -capalias KB F1 Tek key_f11 -capalias KC F2 Tek key_f12 -capalias KD F3 Tek key_f13 -capalias KE F4 Tek key_f14 -capalias KF F5 Tek key_f15 -capalias BC Sb Tek set_background -capalias FC Sf Tek set_foreground -# -# There are also the following: -# -# XENIX XENIX variable name name clash with terminfo? -# ----- ------------------- ------------------------- -# CL key_char_left -# CR key_char_right -# CW key_change_window -# HP ?? -# LF key_linefeed label_off -# NU key_next_unlocked_cell -# PL ?? -# PR ?? -# RC key_recalc remove_clock -# RF key_toggle_ref req_for_input -# WL key_word_left -# WR key_word_right -# -# If you know what any of the question-marked ones mean, please tell us. -# -#--------------------------------- Terminfo aliases ------------------------ -# -# IBM extensions: -# -infoalias font0 s0ds IBM set0_des_seq -infoalias font1 s1ds IBM set1_des_seq -infoalias font2 s2ds IBM set2_des_seq -infoalias font3 s3ds IBM set3_des_seq -infoalias kbtab kcbt IBM key_backtab -infoalias ksel kslt IBM key_select -# -# Some others are identical to SVr4/XPG4 capabilities, in particular: -# kcmd, kend, khlp, and kf11...kf63. -# -############################################################################# -# -# The following sets edit modes for GNU EMACS -# Local Variables: -# case-fold-search:nil -# truncate-lines:t -# End: diff --git a/Build/source/libs/ncurses/include/Caps.osf1r5 b/Build/source/libs/ncurses/include/Caps.osf1r5 deleted file mode 100644 index 958461ae252..00000000000 --- a/Build/source/libs/ncurses/include/Caps.osf1r5 +++ /dev/null @@ -1,1274 +0,0 @@ -############################################################################## -# Copyright (c) 2002 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas Dickey -# -# $Id: Caps.osf1r5,v 1.3 2002/07/07 00:02:52 tom Exp $ -# -# This is an adaptation of ncurses' termcap/terminfo capability table, which -# is designed to align with OSF/1 version 5 (Tru64) terminfo. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it's there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It's up the ncurses -# library what to do with the terminfo data after it's read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It's up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -back_color_erase bce bool ut - - ----- screen erased with background color -can_change ccc bool cc - - ----- terminal can re-define existing colors -col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps -cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution -cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode -hard_cursor chts bool HC - - ----- cursor is hard to see -has_print_wheel daisy bool YC - - ----- printer needs operator to change character set -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps -semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -bit_image_entwining bitwin num Yo - - ----- number of passes for each bit-image row -bit_image_type bitype num Yp - - ----- type of bit-image device -buffer_capacity bufsz num Ya - - ----- numbers of bytes buffered before printing -buttons btns num BT - - ----- number of buttons on mouse -dot_vert_spacing spinv num Yb - - ----- spacing of pins vertically in pins per inch -dot_horz_spacing spinh num Yc - - ----- spacing of dots horizontally in dots per inch -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -max_colors colors num Co - - ----- maximum number of colors on screen -max_micro_address maddr num Yd - - ----- maximum value in micro_..._address -max_micro_jump mjump num Ye - - ----- maximum value in parm_..._micro -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -maximum_windows wnum num MW - - ----- maximum number of defineable windows -micro_col_size mcs num Yf - - ----- character step size when in micro mode -micro_line_size mls num Yg - - ----- line step size when in micro mode -no_color_video ncv num NC - - ----- video attributes that can not be used with colors -number_of_pins npins num Yh - - ----- numbers of pins in print-head -num_labels nlab num Nl - - ----- number of labels on screen -output_res_char orc num Yi - - ----- horizontal resolution in units per line -output_res_line orl num Yj - - ----- vertical resolution in units per line -output_res_horz_inch orhi num Yk - - ----- horizontal resolution in units per inch -output_res_vert_inch orvi num Yl - - ----- vertical resolution in units per inch -print_rate cps num Ym - - ----- print rate in characters per second -wide_char_size widcs num Yn - - ----- character step size when in double wide mode -#%.TE -#%.ad -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# SVr1 capabilities stop here. IBM's version of terminfo is the same as -# SVr4 up to this point, but has a different set afterwards. -# -# OSF1 differences start here, based on IBM version: -# -box_chars_1 box1 str bx - - ----K box characters primary set -box_chars_2 box2 str by - - ----K box characters secondary set -box_attr_1 batt1 str Bx - - ----K attributes for box1 -box_attr_2 batt2 str By - - ----K attributes for box2 -color_bg_0 colb0 str d0 - - ----K background color 0 -color_bg_1 colb1 str d1 - - ----K background color 1 -color_bg_2 colb2 str d2 - - ----K background color 2 -color_bg_3 colb3 str d3 - - ----K background color 3 -color_bg_4 colb4 str d4 - - ----K background color 4 -color_bg_5 colb5 str d5 - - ----K background color 5 -color_bg_6 colb6 str d6 - - ----K background color 6 -color_bg_7 colb7 str d7 - - ----K background color 7 -color_fg_0 colf0 str c0 - - ----K foreground color 0 -color_fg_1 colf1 str c1 - - ----K foreground color 1 -color_fg_2 colf2 str c2 - - ----K foreground color 2 -color_fg_3 colf3 str c3 - - ----K foreground color 3 -color_fg_4 colf4 str c4 - - ----K foreground color 4 -color_fg_5 colf5 str c5 - - ----K foreground color 5 -color_fg_6 colf6 str c6 - - ----K foreground color 6 -color_fg_7 colf7 str c7 - - ----K foreground color 7 -font_0 font0 str f0 - - ----- select font 0 -font_1 font1 str f1 - - ----- select font 1 -font_2 font2 str f2 - - ----- select font 2 -font_3 font3 str f3 - - ----- select font 3 -font_4 font4 str f4 - - ----K select font 4 -font_5 font5 str f5 - - ----K select font 5 -font_6 font6 str f6 - - ----K select font 6 -font_7 font7 str f7 - - ----K select font 7 -key_back_tab kbtab str k0 - - ----- backtab key -key_do kdo str ki - - ----K do request key -key_command kcmd str kc KEY_COMMAND 0545 ----- command key -key_command_pane kcpn str kW - - ----K command-pane key -key_end kend str @7 KEY_END 0550 ----- end key -key_help khlp str %1 KEY_HELP 0553 ----- help key -key_newline knl str nl - - ----K newline key -key_next_pane knpn str kv - - ----K next-pane key -key_prev_cmd kppn str kp - - ----K previous-command key -key_prev_pane kppn str kV - - ----K previous-pane key -key_quit kquit str kQ - - ----K quit key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_scroll_left kscl str kz - - ----K scroll left -key_scroll_right kscr str kZ - - ----K scroll right -key_tab ktab str ko - - ----K tab key -key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input -key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output -key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input -key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output -key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input -key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output -key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input -key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output -key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input -key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output -appl_defined_str apstr str za - - ----K application-defined string -# The key_smap_in[6789] and key_smap_out[6789] capabilities are described in -# the Tru64 manual pages. -key_smap_in6 kmpf6 str Kr - - ----K special mapped key 6 input -key_smap_out6 kmpt6 str KR - - ----K special mapped key 6 output -key_smap_in7 kmpf7 str Ks - - ----K special mapped key 7 input -key_smap_out7 kmpt7 str KS - - ----K special mapped key 7 output -key_smap_in8 kmpf8 str Kt - - ----K special mapped key 8 input -key_smap_out8 kmpt8 str KT - - ----K special mapped key 8 output -key_smap_in9 kmpf9 str Ku - - ----K special mapped key 9 input -key_smap_out9 kmpt9 str KU - - ----K special mapped key 9 output -key_sf1 ksf1 str S1 - - ----K special function key 1 -key_sf2 ksf2 str S2 - - ----K special function key 2 -key_sf3 ksf3 str S3 - - ----K special function key 3 -key_sf4 ksf4 str S4 - - ----K special function key 4 -key_sf5 ksf5 str S5 - - ----K special function key 5 -key_sf6 ksf6 str S6 - - ----K special function key 6 -key_sf7 ksf7 str S7 - - ----K special function key 7 -key_sf8 ksf8 str S8 - - ----K special function key 8 -key_sf9 ksf9 str S9 - - ----K special function key 9 -key_sf10 ksf10 str SA - - ----K special function key 10 -# -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_action kact str kJ KEY_ACTION 0541 ----K sent by action key -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -alt_scancode_esc scesa str S8 - - ----- Alternate escape for scancode emulation -bit_image_repeat birep str Xy - - ----- Repeat bit image cell #1 #2 times -bit_image_newline binel str Zz - - ----- Move to next row of the bit image -bit_image_carriage_return bicr str Yv - - ----- Move to beginning of same row -change_char_pitch cpi str ZA - - ----- Change number of characters per inch to #1 -change_line_pitch lpi str ZB - - ----- Change number of lines per inch to #1 -change_res_horz chr str ZC - - ----- Change horizontal resolution to #1 -change_res_vert cvr str ZD - - ----- Change vertical resolution to #1 -char_padding rmp str rP - - ----- like ip but when in insert mode -char_set_names csnm str Zy - - ----- Produce #1'th item from list of character set names -clear_margins mgc str MC - - ----- clear right and left soft margins -clr_bol el1 str cb - - ----- Clear to beginning of line -code_set_init csin str ci - - ----- Init sequence for multiple codesets -color_names colornm str Yw - - ----- Give name for color #1 -create_window cwin str CW - - ----- define a window #1 from #2,#3 to #4,#5 -define_bit_image_region defbi str Yx - - ----- Define rectangualar bit image region -define_char defc str ZE - - ----- Define a character #1, #2 dots wide, descender #3 -device_type devt str dv - - ----- Indicate language/codeset support -dial_phone dial str DI - - ----- dial number #1 -display_clock dclk str DK - - ----- display clock -display_pc_char dispc str S1 - - ----- Display PC character #1 -ena_acs enacs str eA - - ----- enable alternate char set -end_bit_image_region endbi str Yy - - ----- End a bit-image region -enter_am_mode smam str SA - - ----- turn on automatic margins -enter_doublewide_mode swidm str ZF - - ----- Enter double-wide mode -enter_draft_quality sdrfq str ZG - - ----- Enter draft-quality mode -enter_italics_mode sitm str ZH - - ----- Enter italic mode -enter_leftward_mode slm str ZI - - ----- Start leftward carriage motion -enter_micro_mode smicm str ZJ - - ----- Start micro-motion mode -enter_near_letter_quality snlq str ZK - - ----- Enter NLQ mode -enter_normal_quality snrmq str ZL - - ----- Enter normal-quality mode -enter_pc_charset_mode smpch str S2 - - ----- Enter PC character display mode -enter_scancode_mode smsc str S4 - - ----- Enter PC scancode mode -enter_shadow_mode sshm str ZM - - ----- Enter shadow-print mode -enter_subscript_mode ssubm str ZN - - ----- Enter subscript mode -enter_superscript_mode ssupm str ZO - - ----- Enter superscript mode -enter_upward_mode sum str ZP - - ----- Start upward carriage motion -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_am_mode rmam str RA - - ----- turn off automatic margins -exit_doublewide_mode rwidm str ZQ - - ----- End double-wide mode -exit_italics_mode ritm str ZR - - ----- End italic mode -exit_leftward_mode rlm str ZS - - ----- End left-motion mode -exit_micro_mode rmicm str ZT - - ----- End micro-motion mode -exit_pc_charset_mode rmpch str S3 - - ----- Exit PC character display mode -exit_scancode_mode rmsc str S5 - - ----- Exit PC scancode mode -exit_shadow_mode rshm str ZU - - ----- End shadow-print mode -exit_subscript_mode rsubm str ZV - - ----- End subscript mode -exit_superscript_mode rsupm str ZW - - ----- End superscript mode -exit_upward_mode rum str ZX - - ----- End reverse character motion -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -fixed_pause pause str PA - - ----- pause for 2-3 seconds -flash_hook hook str fh - - ----- flash switch hook -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -goto_window wingo str WG - - ----- go to window #1 -hangup hup str HU - - ----- hang-up phone -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_btab kcbt str kB KEY_BTAB 0632 ----- back-tab key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -label_format fln str Lf - - ----- label format -label_off rmln str LF - - ----- turn off soft labels -label_on smln str LO - - ----- turn on soft labels -micro_column_address mhpa str ZY - - ----- Like column_address in micro mode -micro_down mcud1 str ZZ - - ----- Like cursor_down in micro mode -micro_left mcub1 str Za - - ----- Like cursor_left in micro mode -micro_right mcuf1 str Zb - - ----- Like cursor_right in micro mode -micro_row_address mvpa str Zc - - ----- Like row_address #1 in micro mode -micro_up mcuu1 str Zd - - ----- Like cursor_up in micro mode -mouse_info minfo str Mi - - ----- Mouse status information -order_of_pins porder str Ze - - ----- Match software bits to print-head pins -orig_colors oc str oc - - ----- Set all color pairs to the original ones -orig_pair op str op - - ----- Set default pair to its original value -parm_down_micro mcud str Zf - - ----- Like parm_down_cursor in micro mode -parm_left_micro mcub str Zg - - ----- Like parm_left_cursor in micro mode -parm_right_micro mcuf str Zh - - ----- Like parm_right_cursor in micro mode -parm_up_micro mcuu str Zi - - ----- Like parm_up_cursor in micro mode -pc_term_options pctrm str S6 - - ----- PC terminal options -pkey_plab pfxl str xl - - ----- Program function key #1 to type string #2 and show string #3 -plab_norm pln str pn - - ----- program label #1 to show string #2 -pulse pulse str PU - - ----- select pulse dialing -quick_dial qdial str QD - - ----- dial number #1 without checking -req_for_input rfi str RF - - ----- send next input char (for ptys) -req_mouse_pos reqmp str RQ - - ----- Request mouse position -remove_clock rmclk str RC - - ----- remove clock -scancode_escape scesc str S7 - - ----- Escape for scancode emulation -select_char_set scs str Zj - - ----- Select character set, #1 -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_background setb str Sb - - ----- Set background color #1 -set_bottom_margin smgb str Zk - - ----- Set bottom margin at current line -set_bottom_margin_parm smgbp str Zl - - ----- Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom -set_clock sclk str SC - - ----- set clock, #1 hrs #2 mins #3 secs -set_color_band setcolor str Yz - - ----- Change to ribbon color #1 -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap). -set_left_margin_parm smglp str Zm - - ----- Set left (right) margin at column #1 -set_lr_margin smglr str ML - - ----- Set both left and right margins to #1, #2. (ML is not in BSD termcap). -set_page_length slines str YZ - - ----- Set page length to #1 lines -set_right_margin smgr str MR - - ----- set right soft margin at current column -set_right_margin_parm smgrp str Zn - - ----- Set right margin at column #1 -set_tb_margin smgtb str MT - - ----- Sets both top and bottom margins to #1, #2 -set_top_margin smgt str Zo - - ----- Set top margin at current line -set_top_margin_parm smgtp str Zp - - ----- Set top (bottom) margin at row #1 -start_bit_image sbim str Zq - - ----- Start printing bit image graphics -start_char_set_def scsd str Zr - - ----- Start character set definition #1, with #2 characters in the set -stop_bit_image rbim str Zs - - ----- Stop printing bit image graphics -stop_char_set_def rcsd str Zt - - ----- End definition of character set #1 -subscript_characters subcs str Zu - - ----- List of subscriptable characters -superscript_characters supcs str Zv - - ----- List of superscriptable characters -these_cause_cr docr str Zw - - ----- Printing any of these characters causes CR -tone tone str TO - - ----- select touch tone dialing -user0 u0 str u0 - - ----- User string #0 -user1 u1 str u1 - - ----- User string #1 -user2 u2 str u2 - - ----- User string #2 -user3 u3 str u3 - - ----- User string #3 -user4 u4 str u4 - - ----- User string #4 -user5 u5 str u5 - - ----- User string #5 -user6 u6 str u6 - - ----- User string #6 -user7 u7 str u7 - - ----- User string #7 -user8 u8 str u8 - - ----- User string #8 -user9 u9 str u9 - - ----- User string #9 -wait_tone wait str WA - - ----- wait for dial-tone -xoff_character xoffc str XF - - ----- XOFF character -xon_character xonc str XN - - ----- XON character -zero_motion zerom str Zx - - ----- No motion for subsequent character -set_pglen_inch slength str sL - - ----- YI Set page length to #1 hundredth of an inch -enter_horizontal_hl_mode ehhlm str Xh - - ----- Enter horizontal highlight mode -enter_left_hl_mode elhlm str Xl - - ----- Enter left highlight mode -enter_low_hl_mode elohlm str Xo - - ----- Enter low highlight mode -enter_right_hl_mode erhlm str Xr - - ----- Enter right highlight mode -enter_top_hl_mode ethlm str Xt - - ----- Enter top highlight mode -enter_vertical_hl_mode evhlm str Xv - - ----- Enter vertical highlight mode -set_a_attributes sgr1 str sA - - ----- Define second set of video attributes #1-#6 -# -# -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability seems to have been designed to map between the rogue(2) -# motion keys (including jkhl) and characters emitted by arrow keys on some -# primitive pre-ANSI terminals. It's so obsolete it's fossilized... -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it's not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# This section is almost all comments. What it's mainly for is to describe -# what capabilities need to be squeezed out to get down to the XSI Curses -# standard set. They are flagged with K. -# -# HP extensions -# -# These extensions follow ptr_non (replacing everything after it) in HP -# terminfo files. Except for memory_lock and memory_unlock, they are -# functionally identical to SVr4 extensions, but they make the binary format -# different. Grrr.... -# -memory_lock meml str ml - - ----K memory lock above -memory_unlock memu str mu - - ----K memory unlock -#plab_norm pln str pn - - ----- program label #1 to show string #2 -#label_on smln str LO - - ----- turn on soft labels -#label_off rmln str LF - - ----- turn off soft labels -#key_f11 kf11 str F1 - - ----- F11 function key -#key_f12 kf12 str F2 - - ----- F12 function key -#key_f13 kf13 str F3 - - ----- F13 function key -#key_f14 kf14 str F4 - - ----- F14 function key -#key_f15 kf15 str F5 - - ----- F15 function key -#key_f16 kf16 str F6 - - ----- F16 function key -#key_f17 kf17 str F7 - - ----- F17 function key -#key_f18 kf18 str F8 - - ----- F18 function key -#key_f19 kf19 str F9 - - ----- F19 function key -#key_f20 kf20 str FA - - ----- F20 function key -#key_f21 kf21 str FB - - ----- F21 function key -#key_f22 kf22 str FC - - ----- F22 function key -#key_f23 kf23 str FD - - ----- F23 function key -#key_f24 kf24 str FE - - ----- F24 function key -#key_f25 kf25 str FF - - ----- F25 function key -#key_f26 kf26 str FG - - ----- F26 function key -#key_f27 kf27 str FH - - ----- F27 function key -#key_f28 kf28 str FI - - ----- F28 function key -#key_f29 kf29 str FJ - - ----- F29 function key -#key_f30 kf30 str FK - - ----- F30 function key -#key_f31 kf31 str FL - - ----- F31 function key -#key_f32 kf32 str FM - - ----- F32 function key -#key_f33 kf33 str FN - - ----- F33 function key -#key_f34 kf34 str FO - - ----- F34 function key -#key_f35 kf35 str FP - - ----- F35 function key -#key_f36 kf36 str FQ - - ----- F36 function key -#key_f37 kf37 str FR - - ----- F37 function key -#key_f38 kf38 str FS - - ----- F38 function key -#key_f39 kf39 str FT - - ----- F39 function key -#key_f40 kf40 str FU - - ----- F40 function key -#key_f41 kf41 str FV - - ----- F41 function key -#key_f42 kf42 str FW - - ----- F42 function key -#key_f43 kf43 str FX - - ----- F43 function key -#key_f44 kf44 str FY - - ----- F44 function key -#key_f45 kf45 str FZ - - ----- F45 function key -#key_f46 kf46 str Fa - - ----- F46 function key -#key_f47 kf47 str Fb - - ----- F47 function key -#key_f48 kf48 str Fc - - ----- F48 function key -#key_f49 kf49 str Fd - - ----- F49 function key -#key_f50 kf50 str Fe - - ----- F50 function key -#key_f51 kf51 str Ff - - ----- F51 function key -#key_f52 kf52 str Fg - - ----- F52 function key -#key_f53 kf53 str Fh - - ----- F53 function key -#key_f54 kf54 str Fi - - ----- F54 function key -#key_f55 kf55 str Fj - - ----- F55 function key -#key_f56 kf56 str Fk - - ----- F56 function key -#key_f57 kf57 str Fl - - ----- F57 function key -#key_f58 kf58 str Fm - - ----- F58 function key -#key_f59 kf59 str Fn - - ----- F59 function key -#key_f60 kf60 str Fo - - ----- F60 function key -#key_f61 kf61 str Fp - - ----- F61 function key -#key_f62 kf62 str Fq - - ----- F62 function key -#key_f63 kf63 str Fr - - ----- F63 function key -# -# IBM extensions -# -# These extensions follow ptr_non (replacing everything after it) in IBM -# terminfo files. -# -# The places in the box[12] capabilities correspond to acsc characters, here is -# the mapping: -# -# box1[0] = ACS_ULCORNER -# box1[1] = ACS_HLINE -# box1[2] = ACS_URCORNER -# box1[3] = ACS_VLINE -# box1[4] = ACS_LRCORNER -# box1[5] = ACS_LLCORNER -# box1[6] = ACS_TTEE -# box1[7] = ACS_RTEE -# box1[8] = ACS_BTEE -# box1[9] = ACS_LTEE -# box1[10] = ACS_PLUS -# -# The box2 characters are the double-line versions of these forms graphics. -# -#box_chars_1 box1 str bx - - ----K box characters primary set -#box_chars_2 box2 str by - - ----K box characters secondary set -#box_attr_1 batt1 str Bx - - ----K attributes for box1 -#box_attr_2 batt2 str By - - ----K attributes for box2 -#color_bg_0 colb0 str d0 - - ----K background color 0 -#color_bg_1 colb1 str d1 - - ----K background color 1 -#color_bg_2 colb2 str d2 - - ----K background color 2 -#color_bg_3 colb3 str d3 - - ----K background color 3 -#color_bg_4 colb4 str d4 - - ----K background color 4 -#color_bg_5 colb5 str d5 - - ----K background color 5 -#color_bg_6 colb6 str d6 - - ----K background color 6 -#color_bg_7 colb7 str d7 - - ----K background color 7 -#color_fg_0 colf0 str c0 - - ----K foreground color 0 -#color_fg_1 colf1 str c1 - - ----K foreground color 1 -#color_fg_2 colf2 str c2 - - ----K foreground color 2 -#color_fg_3 colf3 str c3 - - ----K foreground color 3 -#color_fg_4 colf4 str c4 - - ----K foreground color 4 -#color_fg_5 colf5 str c5 - - ----K foreground color 5 -#color_fg_6 colf6 str c6 - - ----K foreground color 6 -#color_fg_7 colf7 str c7 - - ----K foreground color 7 -#font_0 font0 str f0 - - ----- select font 0 -#font_1 font1 str f1 - - ----- select font 1 -#font_2 font2 str f2 - - ----- select font 2 -#font_3 font3 str f3 - - ----- select font 3 -#font_4 font4 str f4 - - ----K select font 4 -#font_5 font5 str f5 - - ----K select font 5 -#font_6 font6 str f6 - - ----K select font 6 -#font_7 font7 str f7 - - ----K select font 7 -#key_back_tab kbtab str k0 - - ----- backtab key -#key_do kdo str ki - - ----K do request key -#key_command kcmd str kd - - ----K command-request key -#key_command_pane kcpn str kW - - ----K command-pane key -#key_end kend str kw - - ----- end key -#key_help khlp str kq - - ----- help key -#key_newline knl str nl - - ----K newline key -#key_next_pane knpn str kv - - ----K next-pane key -#key_prev_cmd kppn str kp - - ----K previous-command key -#key_prev_pane kppn str kV - - ----K previous-pane key -#key_quit kquit str kQ - - ----K quit key -#key_select ksel str kU - - ----- select key -#key_scroll_left kscl str kz - - ----K scroll left -#key_scroll_right kscr str kZ - - ----K scroll right -#key_tab ktab str ko - - ----K tab key -#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input -#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output -#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input -#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output -#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input -#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output -#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input -#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output -#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input -#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output -#appl_defined_str apstr str za - - ----K application-defined string -# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in -# the IBM manual pages, so the cap name strings are guesses. The terminfo -# names are almost certainly right, the termcap ones almost certainly wrong. -#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input -#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output -#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input -#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output -#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input -#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output -#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input -#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output -# Undocumented capabilities end here -#key_sf1 ksf1 str S1 - - ----K special function key 1 -#key_sf2 ksf2 str S2 - - ----K special function key 2 -#key_sf3 ksf3 str S3 - - ----K special function key 3 -#key_sf4 ksf4 str S4 - - ----K special function key 4 -#key_sf5 ksf5 str S5 - - ----K special function key 5 -#key_sf6 ksf6 str S6 - - ----K special function key 6 -#key_sf7 ksf7 str S7 - - ----K special function key 7 -#key_sf8 ksf8 str S8 - - ----K special function key 8 -#key_sf9 ksf9 str S9 - - ----K special function key 9 -#key_sf10 ksf10 str SA - - ----K special function key 10 -# AIX version 3 documents different codes for F11, F12 and does not mention -# F13-F64. AIX version 4 uses the same naming for F0-F63 as above. -#key_f11 kf11 str k< - - ----- function key 11 -#key_f12 kf12 str k> - - ----- function key 12 -# Undocumented capabilities end here. -#key_action kact str kJ - - ----K sent by action key -# The IBM docs say these capabilities are for table-drawing, and are -# valid only for aixterm descriptions. -#enter_topline_mode topl str tp - - ----K start top-line mode -#enter_bottom_mode btml str bm - - ----K start bottom-line mode -#enter_rvert_mode rvert str rv - - ----K start right-vertical mode -#enter_lvert_mode lvert str lv - - ----K start left-vertical mode -# -############################################################################# -# -# ALIAS DECLARATIONS -# -# Here we set up aliases for translating extensions into standard terminfo. -# -#---------------------------------- Termcap aliases ------------------------- -# -# BSD aliases: -# -# This is a common error in many termcap files. We'll get notified during -# translation when this (or any other alias) fires. -# -capalias sb sr BSD scroll text down -# -# AT&T extensions: -# -# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of -# nonstandard capabilities. Its signature is the KM capability, used to name -# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this -# set. Comments in the original, and a little cross-checking with other AT&T -# documentation, seem to establish the following mappings: -# -capalias BO mr AT&T enter_reverse_mode -capalias CI vi AT&T cursor_invisible -capalias CV ve AT&T cursor_normal -capalias DS mh AT&T enter_dim_mode -#capalias EE me AT&T exit_attribute_mode -capalias FE LF AT&T label_on -capalias FL LO AT&T label_off -capalias XS mk AT&T enter_secure_mode -# -# We comment out EE because the conflicting XENIX EE is more common in -# old entries. -# -# XENIX extensions: -# -# These are the ones we know how to translate directly: -# -capalias EE mh XENIX exit_attribute_mode -capalias GE ae XENIX exit_alt_charset_mode -capalias GS as XENIX enter_alt_charset_mode -capalias CF vi XENIX cursor_invis -capalias CO ve XENIX cursor_normal -capalias EN @7 XENIX key_end -capalias HM kh XENIX key_home -capalias LD kL XENIX key_dl -capalias PD kN XENIX key_npage -capalias PN po XENIX prtr_off -capalias PS pf XENIX prtr_on -capalias PU kP XENIX key_ppage -capalias RT @8 XENIX kent -capalias UP ku XENIX kcuu1 -capalias G6 IGNORE XENIX double-ACS_ULCORNER -capalias G7 IGNORE XENIX double-ACS_LLCORNER -capalias G5 IGNORE XENIX double-ACS_URCORNER -capalias G8 IGNORE XENIX double-ACS_LRCORNER -capalias Gr IGNORE XENIX double-ACS_LTEE -capalias Gr IGNORE XENIX double-ACS_RTEE -capalias Gu IGNORE XENIX double-ACS_BTEE -capalias Gd IGNORE XENIX double ACS_TTEE -capalias Gh IGNORE XENIX double-ACS_HLINE -capalias Gv IGNORE XENIX double-ACS_VLINE -capalias Gc IGNORE XENIX double-ACS_PLUS -capalias GG IGNORE XENIX acs-glitch -# -# IBM extensions: -# -capalias kq %1 IBM key_help -# -# Iris extensions: -# -capalias HS mh IRIS enter_dim_mode -# -# Tektronix extensions: -# -capalias KA k; Tek key_f10 -capalias KB F1 Tek key_f11 -capalias KC F2 Tek key_f12 -capalias KD F3 Tek key_f13 -capalias KE F4 Tek key_f14 -capalias KF F5 Tek key_f15 -capalias BC Sb Tek set_background -capalias FC Sf Tek set_foreground -# -# There are also the following: -# -# XENIX XENIX variable name name clash with terminfo? -# ----- ------------------- ------------------------- -# CL key_char_left -# CR key_char_right -# CW key_change_window -# HP ?? -# LF key_linefeed label_off -# NU key_next_unlocked_cell -# PL ?? -# PR ?? -# RC key_recalc remove_clock -# RF key_toggle_ref req_for_input -# WL key_word_left -# WR key_word_right -# -# If you know what any of the question-marked ones mean, please tell us. -# -#--------------------------------- Terminfo aliases ------------------------ -# -# IBM extensions: -# -infoalias font0 s0ds IBM set0_des_seq -infoalias font1 s1ds IBM set1_des_seq -infoalias font2 s2ds IBM set2_des_seq -infoalias font3 s3ds IBM set3_des_seq -infoalias kbtab kcbt IBM key_backtab -infoalias ksel kslt IBM key_select -# -# Some others are identical to SVr4/XPG4 capabilities, in particular: -# kcmd, kend, khlp, and kf11...kf63. -# -############################################################################# -# -# The following sets edit modes for GNU EMACS -# Local Variables: -# case-fold-search:nil -# truncate-lines:t -# End: diff --git a/Build/source/libs/ncurses/include/Caps.uwin b/Build/source/libs/ncurses/include/Caps.uwin deleted file mode 100644 index 6efa208f182..00000000000 --- a/Build/source/libs/ncurses/include/Caps.uwin +++ /dev/null @@ -1,1090 +0,0 @@ -############################################################################## -# Copyright (c) 2001 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas Dickey -# -# $Id: Caps.uwin,v 1.3 2002/07/07 00:05:00 tom Exp $ -# -# This is an adaptation of ncurses' termcap/terminfo capability table, which -# is designed to align with U/Win's terminfo. -# -# This table is used to generate initializers for tables that drive tic, -# infocmp, and the library compilation code used to support the termcap -# compatibility hack. It is also used to generate the tabular portion of the -# terminfo(5) man page; lines beginning with `#%' are passed through to become -# the terminfo table. -# -# This file has three major sections; a standard-capabilities table, two -# extension-capability tables, and a section of aliases declarations. -# The first two have the same format, as follows: -# -# FILE FORMAT -# -# Column 1: terminfo variable name -# Column 2: terminfo capability name -# Column 3: capability type (boolean, numeric, or string) -# Column 4: termcap capability name -# Column 5: KEY_xxx name, if any, `-' otherwise -# Column 6: value for KEY_xxx name, if any, `-' otherwise -# Column 7: Lead with `Y' if capability should be emitted in termcap -# translations, `-' otherwise -# Column 8: capability description -# -# The codes following [Y-] in column 7 describe the versions of termcap which -# use the given capability. This information is not used by the curses library -# proper; rather, it's there to help the terminfo maintainer avoid emitting -# termcap entry translations that are more than 1023 bytes long (and tank a -# lot of old termcap-using programs). The codes read as follows: -# B = mentioned in the BSD man page for 4.4BSD curses -# C = used by the 4.4BSD curses library -# G = mentioned in the documentation for GNU termcap -# E = used by GNU Emacs -# K = remove this terminfo capability when translating to standard format -# The important codes are C and E. A cap with C or E should be preserved in -# translation if possible. The problem is that preserving all such caps may -# lead to some termcap translations being too long. The termcap maintainer -# has a bit of a juggling act to do...potential problem cases are marked with -# an asterisk (*). -# -# The aliases section has the following format: -# -# Column 1: either `capalias' or `infoalias' -# Column 2: name to be aliased -# Column 3: what name it should translate to. The name IGNORE means it -# should be discarded with a warning message. -# Column 4: name of the extension set (used for compiler warning messages) -# Column 5: capability description (usually an associated terminfo variable) -# -# HANDLING TERMCAP AND TERMINFO EXTENSIONS -# -# There are basically five different ways to handle termcap and terminfo -# extensions: -# -# 1. Don't list the capname here, or list it but comment it out (the latter -# is preferable; someone might want to handle it in the future). If you do -# this, the capability will be treated as unknown and raise a warning from -# the compiler. -# -# 2. Alias it. This is appropriate if the capability has the same meaning -# as an already-supported one. The compiler will handle aliasing, emitting -# an appropriate informational message whenever an alias fires. -# -# 3. List it in the standard table. You almost certainly do *not* want -# to do this -- the capabilities in that one, and their order, have been -# carefully chosen to be SVr4-binary-compatible when they're written out -# as a terminfo object, and breaking this would be bad. It's up the ncurses -# library what to do with the terminfo data after it's read in. -# -# 4. List it in the aliases table with an IGNORE target field. If you -# do this, the capability will be ignored on input (though the user will -# get a warning message about it). -# -# 5. List it in the extensions table. If you do this, the compiler will -# silently accept the capability, but the curses library proper will never -# see it (because it won't be written out as part of the terminfo object -# format). It's up to you what you have the compiler do with it. -# -# There are two opposite reasons to choose option 5. One is when you want -# to eat the capability silently and discard it when doing translations -# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are -# in this class. Nothing will ever use them again. -# -# More usually, you want the compiler to try to deduce something from the -# capability value that it can use to translate it into your output format. -# You'll need to write custom code, probably in postprocess_termcap() or -# postprocess_terminfo(), to handle the translation. -# -# CONTROLLING ENTRY LENGTH -# -# Notes on specific elisions made to fit translations within 1023 bytes: -# -# Machines with IBM PC-like keyboards want to be able to define the following -# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap- -# only environments for End or Home-Down), key_dc, and key_ic. This is also -# the set of keys the `joe' editor will be upset if it can't see. So don't -# trim those out of the set to be translated to termcap, or various users of -# the termcap file will become irate. -# -# It might look tempting to leave those long init strings out of translations. -# We can't do it (yet); 4.4BSD tput and tset use them. -# -# We retain the sgr capability in translation in spite of the fact that neither -# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are -# hard to understand without it, and (b) the entries in which it is long tend -# to be older types that don't use up a lot of string space on function keys. -# The tic(1) translation code will complain and elide it if it makes a critical -# difference (there is special code in tic to recognize this situation). -# -# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion -# optimizer in BSD curses didn't use them. This omission seems to be the -# single most effective one, it shortened the resolved length of all thirteen -# problem entries in the 9.9.0 version of the terminfo master below critical. -# -# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap -# translations go back over critical if we do this. As 4.4BSD curses fades -# into history and GNU termcap's application base shrinks towards being GNU -# Emacs only, we'll probably elide out some BSD-only capabilities in order -# to buy space for non-essentials Emacs is still using. Capabilities high -# on that hit list: rc, sc, uc. -# -############################################################################# -# -# STANDARD CAPABILITIES -# -#%The following is a complete table of the capabilities included in a -#%terminfo description block and available to terminfo-using code. In each -#%line of the table, -#% -#%The \fBvariable\fR is the name by which the programmer (at the terminfo level) -#%accesses the capability. -#% -#%The \fBcapname\fR is the short name used in the text of the database, -#%and is used by a person updating the database. -#%Whenever possible, capnames are chosen to be the same as or similar to -#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses -#%identical or very similar names). Semantics are also intended to match -#%those of the specification. -#% -#%The termcap code is the old -#%.B termcap -#%capability name (some capabilities are new, and have names which termcap -#%did not originate). -#%.P -#%Capability names have no hard length limit, but an informal limit of 5 -#%characters has been adopted to keep them short and to allow the tabs in -#%the source file -#%.B Caps -#%to line up nicely. -#% -#%Finally, the description field attempts to convey the semantics of the -#%capability. You may find some codes in the description field: -#%.TP -#%(P) -#%indicates that padding may be specified -#%.TP -#%#[1-9] -#%in the description field indicates that the string is passed through tparm with -#%parms as given (#\fIi\fP). -#%.TP -#%(P*) -#%indicates that padding may vary in proportion to the number of -#%lines affected -#%.TP -#%(#\d\fIi\fP\u) -#%indicates the \fIi\fP\uth\d parameter. -#% -#%.PP -#% These are the boolean capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBBooleans name Code\fR -auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column -auto_right_margin am bool am - - YBCGE terminal has automatic margins -no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C) -ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp) -eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept) -erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank -generic_type gn bool gn - - YB-G- generic line type -hard_copy hc bool hc - - YBCG- hardcopy terminal -has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit) -has_status_line hs bool hs - - YB-G- has extra status line -insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls -memory_above da bool da - - YBCG- display may be retained above the screen -memory_below db bool db - - YB-GE display may be retained below the screen -move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode -move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode -over_strike os bool os - - YBCG- terminal can overstrike -status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line -dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061) -tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine) -transparent_underline ul bool ul - - YBCGE underline character overstrikes -xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking -needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required -prtr_silent mc5i bool 5i - - ----- printer will not echo on screen -hard_cursor chts bool HC - - ----- cursor is hard to see -non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup -no_pad_char npc bool NP - - ----- pad character does not exist -non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive -back_color_erase bce bool ut - - ----- screen erased with background color -can_change ccc bool cc - - ----- terminal can re-define existing colors -hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix) -#%.TE -#%.ad -#% -#%These are the numeric capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBNumeric name Code\fR -columns cols num co - - YBCGE number of columns in a line -init_tabs it num it - - YB-G- tabs initially every # spaces -lines lines num li - - YBCGE number of lines on screen or page -lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies -magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso -padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed -virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix) -width_status_line wsl num ws - - YB-G- number of columns in status line -num_labels nlab num Nl - - ----- number of labels on screen -label_height lh num lh - - ----- rows in each label -label_width lw num lw - - ----- columns in each label -buttons btns num BT - - ----- number of buttons on mouse -#max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle -#maximum_windows wnum num MW - - ----- maximum number of defineable windows -# These came in with SVr4's color support -max_colors colors num Co - - ----- maximum number of colors on screen -max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen -no_color_video ncv num NC - - ----- video attributes that cannot be used with colors -#%.TE -#%.ad -#% -#%The following numeric capabilities are present in the SVr4.0 term structure, -#%but are not yet documented in the man page. They came in with SVr4's -#%printer support. -#% -#%.na -#% -#%These are the string capabilities: -#% -#%.na -#%.TS H -#%center expand; -#%c l l c -#%c l l c -#%lw25 lw6 lw2 lw20. -#%\fBVariable Cap- TCap Description\fR -#%\fBString name Code\fR -back_tab cbt str bt - - YBCGE back tab (P) -bell bel str bl - - YB-GE audible signal (bell) (P) -carriage_return cr str cr - - YBCGE carriage return (P*) (P*) -change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P) -clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P) -clear_screen clear str cl - - YBCGE clear screen and home cursor (P*) -clr_eol el str ce - - YBCGE clear to end of line (P) -clr_eos ed str cd - - YBCGE clear to end of screen (P*) -column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P) -command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !? -cursor_address cup str cm - - YBCGE move to row #1 columns #2 -cursor_down cud1 str do - - YBCGE down one line -cursor_home home str ho - - YBCGE home cursor (if no cup) -cursor_invisible civis str vi - - YB-G- make cursor invisible -cursor_left cub1 str le - - YBCGE move left one space -cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2 -cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis) -cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space) -cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup) -cursor_up cuu1 str up - - YBCGE up one line -cursor_visible cvvis str vs - - YBCGE make cursor very visible -delete_character dch1 str dc - - YBCGE delete character (P*) -delete_line dl1 str dl - - YBCGE delete line (P*) -dis_status_line dsl str ds - - YB-G- disable status line -down_half_line hd str hd - - YB-G- half a line down -enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P) -enter_blink_mode blink str mb - - YB-G- turn on blinking -enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode -enter_ca_mode smcup str ti - - YBCGE string to start programs using cup -enter_delete_mode smdc str dm - - YBCGE enter delete mode -enter_dim_mode dim str mh - - YB-G- turn on half-bright mode -enter_insert_mode smir str im - - YBCGE enter insert mode -enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible) -enter_protected_mode prot str mp - - -B-G-* turn on protected mode -enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode -enter_standout_mode smso str so - - YBCGE begin standout mode -enter_underline_mode smul str us - - YBCGE begin underline mode -erase_chars ech str ec - - YB-G- erase #1 characters (P) -exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P) -exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes -exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup -exit_delete_mode rmdc str ed - - YBCGE end delete mode -exit_insert_mode rmir str ei - - YBCGE exit insert mode -exit_standout_mode rmso str se - - YBCGE exit standout mode -exit_underline_mode rmul str ue - - YBCGE exit underline mode -flash_screen flash str vb - - YBCGE visible bell (may not move cursor) -form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*) -from_status_line fsl str fs - - YB-G- return from status line -init_1string is1 str i1 - - YB-G- initialization string -init_2string is2 str is - - YB-G- initialization string -init_3string is3 str i3 - - YB-G- initialization string -init_file if str if - - YB-G- name of initialization file -insert_character ich1 str ic - - YBCGE insert character (P) -insert_line il1 str al - - YBCGE insert line (P*) -insert_padding ip str ip - - YBCGE insert padding after inserted character -key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key -key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key -key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key -key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key -key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key -key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key -key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key -key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode -key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key -key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key -key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key -key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key -key_f10 kf10 str k; KEY_F(10) - ----E F10 function key -key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key -key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key -key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key -key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key -key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key -key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key -key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key -key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key -key_home khome str kh KEY_HOME 0406 YBCGE home key -key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key -key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key -key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key -key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down) -key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key -key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key -key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key -key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key -key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key -key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key -key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key -keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode -keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode -lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0 -lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1 -lab_f10 lf10 str la - - ----- label on function key f10 if not f10 -lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2 -lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3 -lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4 -lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5 -lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6 -lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7 -lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8 -lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9 -meta_off rmm str mo - - YB-G-* turn off meta mode -meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on) -newline nel str nw - - YB-G-* newline (behave like cr followed by lf) -pad_char pad str pc - - YBCGE padding char (instead of null) -parm_dch dch str DC - - YB-GE delete #1 characters (P*) -parm_delete_line dl str DL - - YBCGE delete #1 lines (P*) -parm_down_cursor cud str DO - - YBCGE down #1 lines (P*) -parm_ich ich str IC - - YB-GE insert #1 characters (P*) -parm_index indn str SF - - YBCG- scroll forward #1 lines (P) -parm_insert_line il str AL - - YBCGE insert #1 lines (P*) -parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P) -parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*) -parm_rindex rin str SR - - YBCG- scroll back #1 lines (P) -parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*) -pkey_key pfkey str pk - - -B--- program function key #1 to type string #2 -pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2 -pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2 -print_screen mc0 str ps - - -B-G-* print contents of screen -prtr_off mc4 str pf - - -B-G-* turn off printer -prtr_on mc5 str po - - -B-G-* turn on printer -repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*) -reset_1string rs1 str r1 - - -B--- reset string -reset_2string rs2 str r2 - - -B--- reset string -reset_3string rs3 str r3 - - -B--- reset string -reset_file rf str rf - - -B--- name of reset file -restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor -row_address vpa str cv - - -B-GE* vertical position #1 absolute (P) -save_cursor sc str sc - - YBCG- save current cursor position (P) -scroll_forward ind str sf - - YBCGE scroll text up (P) -scroll_reverse ri str sr - - YBCGE scroll text down (P) -set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9) -set_tab hts str st - - YB-G- set a tab in every row, current columns -set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4 -tab ht str ta - - YBCGE tab to next 8-space hardware tab stop -to_status_line tsl str ts - - YB-G- move to status line, column #1 -underline_char uc str uc - - YBCG- underline char and move past it -up_half_line hu str hu - - YB-G- half a line up -init_prog iprog str iP - - -B--- path name of program for initialization -key_a1 ka1 str K1 KEY_A1 0534 YB-GE upper left of keypad -key_a3 ka3 str K3 KEY_A3 0535 YB-GE upper right of keypad -key_b2 kb2 str K2 KEY_B2 0536 YB-GE center of keypad -key_c1 kc1 str K4 KEY_C1 0537 YB-GE lower left of keypad -key_c3 kc3 str K5 KEY_C3 0540 YB-GE lower right of keypad -prtr_non mc5p str pO - - -B-G-* turn on printer for #1 bytes -# -# SVr1 capabilities stop here. IBM's version of terminfo is the same as -# SVr4 up to this point, but has a different set afterwards. -# -char_padding rmp str rP - - ----- like ip but when in insert mode -acs_chars acsc str ac - - ----- graphics charset pairs, based on vt100 -plab_norm pln str pn - - ----- program label #1 to show string #2 -key_btab kcbt str kB KEY_BTAB 0541 ----- back-tab key -enter_xon_mode smxon str SX - - ----- turn on xon/xoff handshaking -exit_xon_mode rmxon str RX - - ----- turn off xon/xoff handshaking -enter_am_mode smam str SA - - ----- turn on automatic margins -exit_am_mode rmam str RA - - ----- turn off automatic margins -xon_character xonc str XN - - ----- XON character -xoff_character xoffc str XF - - ----- XOFF character -ena_acs enacs str eA - - ----- enable alternate char set -label_on smln str LO - - ----- turn on soft labels -label_off rmln str LF - - ----- turn off soft labels -key_beg kbeg str @1 KEY_BEG 0542 ----- begin key -key_cancel kcan str @2 KEY_CANCEL 0543 ----- cancel key -key_close kclo str @3 KEY_CLOSE 0544 ----- close key -key_command kcmd str @4 KEY_COMMAND 0545 ----- command key -key_copy kcpy str @5 KEY_COPY 0546 ----- copy key -key_create kcrt str @6 KEY_CREATE 0547 ----- create key -key_end kend str @7 KEY_END 0550 ----- end key -key_enter kent str @8 KEY_ENTER 0527 ----- enter/send key -key_exit kext str @9 KEY_EXIT 0551 ----- exit key -key_find kfnd str @0 KEY_FIND 0552 ----- find key -key_help khlp str %1 KEY_HELP 0553 ----- help key -key_mark kmrk str %2 KEY_MARK 0554 ----- mark key -key_message kmsg str %3 KEY_MESSAGE 0555 ----- message key -key_move kmov str %4 KEY_MOVE 0556 ----- move key -key_next knxt str %5 KEY_NEXT 0557 ----- next key -key_open kopn str %6 KEY_OPEN 0560 ----- open key -key_options kopt str %7 KEY_OPTIONS 0561 ----- options key -key_previous kprv str %8 KEY_PREVIOUS 0562 ----- previous key -key_print kprt str %9 KEY_PRINT 0532 ----- print key -key_redo krdo str %0 KEY_REDO 0563 ----- redo key -key_reference kref str &1 KEY_REFERENCE 0564 ----- reference key -key_refresh krfr str &2 KEY_REFRESH 0565 ----- refresh key -key_replace krpl str &3 KEY_REPLACE 0566 ----- replace key -key_restart krst str &4 KEY_RESTART 0567 ----- restart key -key_resume kres str &5 KEY_RESUME 0570 ----- resume key -key_save ksav str &6 KEY_SAVE 0571 ----- save key -key_suspend kspd str &7 KEY_SUSPEND 0627 ----- suspend key -key_undo kund str &8 KEY_UNDO 0630 ----- undo key -key_sbeg kBEG str &9 KEY_SBEG 0572 ----- shifted begin key -key_scancel kCAN str &0 KEY_SCANCEL 0573 ----- shifted cancel key -key_scommand kCMD str *1 KEY_SCOMMAND 0574 ----- shifted command key -key_scopy kCPY str *2 KEY_SCOPY 0575 ----- shifted copy key -key_screate kCRT str *3 KEY_SCREATE 0576 ----- shifted create key -key_sdc kDC str *4 KEY_SDC 0577 ----- shifted delete-character key -key_sdl kDL str *5 KEY_SDL 0600 ----- shifted delete-line key -key_select kslt str *6 KEY_SELECT 0601 ----- select key -key_send kEND str *7 KEY_SEND 0602 ----- shifted end key -key_seol kEOL str *8 KEY_SEOL 0603 ----- shifted clear-to-end-of-line key -key_sexit kEXT str *9 KEY_SEXIT 0604 ----- shifted exit key -key_sfind kFND str *0 KEY_SFIND 0605 ----- shifted find key -key_shelp kHLP str #1 KEY_SHELP 0606 ----- shifted help key -key_shome kHOM str #2 KEY_SHOME 0607 ----- shifted home key -key_sic kIC str #3 KEY_SIC 0610 ----- shifted insert-character key -key_sleft kLFT str #4 KEY_SLEFT 0611 ----- shifted left-arrow key -key_smessage kMSG str %a KEY_SMESSAGE 0612 ----- shifted message key -key_smove kMOV str %b KEY_SMOVE 0613 ----- shifted move key -key_snext kNXT str %c KEY_SNEXT 0614 ----- shifted next key -key_soptions kOPT str %d KEY_SOPTIONS 0615 ----- shifted options key -key_sprevious kPRV str %e KEY_SPREVIOUS 0616 ----- shifted previous key -key_sprint kPRT str %f KEY_SPRINT 0617 ----- shifted print key -key_sredo kRDO str %g KEY_SREDO 0620 ----- shifted redo key -key_sreplace kRPL str %h KEY_SREPLACE 0621 ----- shifted replace key -key_sright kRIT str %i KEY_SRIGHT 0622 ----- shifted right-arrow key -key_srsume kRES str %j KEY_SRSUME 0623 ----- shifted resume key -key_ssave kSAV str !1 KEY_SSAVE 0624 ----- shifted save key -key_ssuspend kSPD str !2 KEY_SSUSPEND 0625 ----- shifted suspend key -key_sundo kUND str !3 KEY_SUNDO 0626 ----- shifted undo key -req_for_input rfi str RF - - ----- send next input char (for ptys) -key_f11 kf11 str F1 KEY_F(11) - ----E F11 function key -key_f12 kf12 str F2 KEY_F(12) - ----E F12 function key -key_f13 kf13 str F3 KEY_F(13) - ----E F13 function key -key_f14 kf14 str F4 KEY_F(14) - ----E F14 function key -key_f15 kf15 str F5 KEY_F(15) - ----E F15 function key -key_f16 kf16 str F6 KEY_F(16) - ----E F16 function key -key_f17 kf17 str F7 KEY_F(17) - ----E F17 function key -key_f18 kf18 str F8 KEY_F(18) - ----E F18 function key -key_f19 kf19 str F9 KEY_F(19) - ----E F19 function key -key_f20 kf20 str FA KEY_F(20) - ----E F20 function key -key_f21 kf21 str FB KEY_F(21) - ----E F21 function key -key_f22 kf22 str FC KEY_F(22) - ----E F22 function key -key_f23 kf23 str FD KEY_F(23) - ----E F23 function key -key_f24 kf24 str FE KEY_F(24) - ----E F24 function key -key_f25 kf25 str FF KEY_F(25) - ----E F25 function key -key_f26 kf26 str FG KEY_F(26) - ----E F26 function key -key_f27 kf27 str FH KEY_F(27) - ----E F27 function key -key_f28 kf28 str FI KEY_F(28) - ----E F28 function key -key_f29 kf29 str FJ KEY_F(29) - ----E F29 function key -key_f30 kf30 str FK KEY_F(30) - ----E F30 function key -key_f31 kf31 str FL KEY_F(31) - ----E F31 function key -key_f32 kf32 str FM KEY_F(32) - ----E F32 function key -key_f33 kf33 str FN KEY_F(33) - ----E F33 function key -key_f34 kf34 str FO KEY_F(34) - ----E F34 function key -key_f35 kf35 str FP KEY_F(35) - ----E F35 function key -key_f36 kf36 str FQ KEY_F(36) - ----E F36 function key -key_f37 kf37 str FR KEY_F(37) - ----E F37 function key -key_f38 kf38 str FS KEY_F(38) - ----E F38 function key -key_f39 kf39 str FT KEY_F(39) - ----E F39 function key -key_f40 kf40 str FU KEY_F(40) - ----E F40 function key -key_f41 kf41 str FV KEY_F(41) - ----E F41 function key -key_f42 kf42 str FW KEY_F(42) - ----E F42 function key -key_f43 kf43 str FX KEY_F(43) - ----E F43 function key -key_f44 kf44 str FY KEY_F(44) - ----E F44 function key -key_f45 kf45 str FZ KEY_F(45) - ----E F45 function key -key_f46 kf46 str Fa KEY_F(46) - ----E F46 function key -key_f47 kf47 str Fb KEY_F(47) - ----E F47 function key -key_f48 kf48 str Fc KEY_F(48) - ----E F48 function key -key_f49 kf49 str Fd KEY_F(49) - ----E F49 function key -key_f50 kf50 str Fe KEY_F(50) - ----E F50 function key -key_f51 kf51 str Ff KEY_F(51) - ----E F51 function key -key_f52 kf52 str Fg KEY_F(52) - ----E F52 function key -key_f53 kf53 str Fh KEY_F(53) - ----E F53 function key -key_f54 kf54 str Fi KEY_F(54) - ----E F54 function key -key_f55 kf55 str Fj KEY_F(55) - ----E F55 function key -key_f56 kf56 str Fk KEY_F(56) - ----E F56 function key -key_f57 kf57 str Fl KEY_F(57) - ----E F57 function key -key_f58 kf58 str Fm KEY_F(58) - ----E F58 function key -key_f59 kf59 str Fn KEY_F(59) - ----E F59 function key -key_f60 kf60 str Fo KEY_F(60) - ----E F60 function key -key_f61 kf61 str Fp KEY_F(61) - ----E F61 function key -key_f62 kf62 str Fq KEY_F(62) - ----E F62 function key -key_f63 kf63 str Fr KEY_F(63) - ----E F63 function key -clr_bol el1 str cb - - ----- Clear to beginning of line -clear_margins mgc str MC - - ----- clear right and left soft margins -set_left_margin smgl str ML - - ----- set left soft margin at current column. See smgl. (ML is not in BSD termcap). -set_right_margin smgr str MR - - ----- set right soft margin at current column -device_type devt str dv - - ----- Indicate language/codeset support -code_set_init csin str ci - - ----- Init sequence for multiple codesets -set0_des_seq s0ds str s0 - - ----- Shift to codeset 0 (EUC set 0, ASCII) -set1_des_seq s1ds str s1 - - ----- Shift to codeset 1 -set2_des_seq s2ds str s2 - - ----- Shift to codeset 2 -set3_des_seq s3ds str s3 - - ----- Shift to codeset 3 -key_mouse kmous str Km KEY_MOUSE 0631 ----- Mouse event has occurred -mouse_info minfo str Mi - - ----- Mouse status information -req_mouse_pos reqmp str RQ - - ----- Request mouse position -get_mouse getm str Gm - - ----- Curses should get button events, parameter #1 not documented. -release_mouse relm str Rm - - ----- Curses should release the mouse */ -color_names colornm str Yw - - ----- Give name for color #1 -initialize_color initc str Ic - - ----- initialize color #1 to (#2,#3,#4) -initialize_pair initp str Ip - - ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7) -orig_colors oc str oc - - ----- Set all color pairs to the original ones -orig_pair op str op - - ----- Set default pair to its original value -set_a_background setab str AB - - ----- Set background color to #1, using ANSI escape -set_a_foreground setaf str AF - - ----- Set foreground color to #1, using ANSI escape -set_background setb str Sb - - ----- Set background color #1 -set_color_pair scp str sp - - ----- Set current color pair to #1 -set_foreground setf str Sf - - ----- Set foreground color #1 -#%.TE -#%.ad -#% -# The magic token below tells the tic compiler-generator code that all the caps -# past it should be ignored (not written out) when dumping terminfo objects. It -# also tells the man page table generator not to pass through following lines -# This means we can have obsolete capabilities and pseudo-capabilities that are -# recognized for termcap or terminfo compilation, but not output. -# -# %%-STOP-HERE-%% -# -# Don't move this casually! In fact, don't move it at all unless you're -# either doing it to add System V or XPG4 extensions, or have decided you -# don't care about SVr4 binary compatibility. -# -############################################################################# -# -# TERMCAP EXTENSION CAPABILITIES -# -# The capabilities below are either obsolete or extensions on certain systems. -# They are not used by SVR4 terminfo. Some are used by captoinfo to translate -# termcap sources; the rest are listed for completeness, and in case somebody -# cares about them enough to hack in code that will translate them into -# terminfo capabilities. -# -# The first part of the list is from Ross Ridge's `mytinfo' package -# (comp.sources.unix, volume 26); the variable names and terminfo names (as -# well as the termcap codes) match his list. -# -# This group of codes is not marked obsolete in 4.4BSD, but have no direct -# terminfo equivalents. The rs capability is specially translated to terminfo -# r2, and vice versa, if an entry does not already have an r2. Similarly, -# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2). -# The ug capability is thrown away, but assumed to be whatever sg is if the -# latter is nonzero and we're dumping in termcap format. -# -termcap_init2 OTi2 str i2 - - YB--- secondary initialization string -termcap_reset OTrs str rs - - YB-G- terminal reset string -magic_cookie_glitch_ul OTug num ug - - YBCGE number of blanks left by ul -# -# Obsolete termcap capabilities. Some are used for termcap translation. The -# code uses the 'OT' prefix we put on obsolete capabilities to suppress -# printing them in terminfo source dumps of compiled entries. -# -backspaces_with_bs OTbs bool bs - - YBCGE uses ^H to move left -crt_no_scrolling OTns bool ns - - YBCG- crt cannot scroll -no_correctly_working_cr OTnc bool nc - - YBCG- no way to go to start of line -carriage_return_delay OTdC num dC - - YB-G- pad needed for CR -new_line_delay OTdN num dN - - YB-G- pad needed for LF -linefeed_if_not_lf OTnl str nl - - YBCGE use to move down -backspace_if_not_bs OTbc str bc - - YBCGE move left, if not ^H -# -# GNU termcap library extensions. The GNU termcap file distributed with -# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the -# BSD termcap file. The name clash with terminfo MT is resolved by type -# info; MT is converted to km. -# -gnu_has_meta_key OTMT bool MT - - ----E has meta key -# gnu_tab_width OTtw num tw - - ----E tab width in spaces -# -# GNU termcap *does* include the following extended capability, Only the -# now-obsolete Ann Arbor terminals used it. -# -# gnu_change_scroll_region OTcS str cS - - ---GE alternate set scrolling region -# -# The following comments describe capnames so ancient that I believe no -# software uses them any longer. Some of these have to go because they -# clash with terminfo names in ways that cannot be resolved by type -# information. -# -# These mytinfo codes are not used in the 4.4BSD curses code. They are -# marked obsolete in the 4.4BSD manual pages. -# -# There is one conflict with terminfo; ma is in both. This conflict is -# resolved by type information. -# -# The `ko' capability is translated by special code. It should contain a -# comma-separated list of capabilities for which there are corresponding keys. -# The `kn' code is accepted but ignored. -# -# The `ma' capability seems to have been designed to map between the rogue(2) -# motion keys (including jkhl) and characters emitted by arrow keys on some -# primitive pre-ANSI terminals. It's so obsolete it's fossilized... -# -# Here is a description of memory_lock_above and memory_unlock: -# "You can 'freeze' data on the screen by turning on Memory Lock in a line of -# text. All lines above the cursor's current line become locked in place on -# the screen. Then enter data normally. When the screen fills up, any -# further data entered forces the first line of unfrozen line text to scroll -# under the frozen data. Lines scrolled off the screen are inserted into -# memory immediately preceding the first frozen line." (from the HP 700/96 -# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l. -# -# Applications that use terminfo are supposed to behave as though xr is -# always true. -# -linefeed_is_newline OTNL bool NL - - YB--- move down with \n -# even_parity OTEP bool EP - - -B--- terminal requires even parity -# odd_parity OTOP bool OP - - -B--- terminal requires odd parity -# half_duplex OTHD bool HD - - -B--- terminal is half-duplex -# lower_case_only OTLC bool LC - - -B--- terminal has only lower case -# upper_case_only OTUC bool UC - - -B--- terminal has only upper case -backspace_delay OTdB num dB - - YB-G- padding required for ^H -# form_feed_delay OTdF num dF - - -B-G- padding required for ^L -horizontal_tab_delay OTdT num dT - - YB-G- padding required for ^I -# vertical_tab_delay OTdV num dV - - -B--- padding required for ^V -number_of_function_keys OTkn num kn - - -B-G- count of function keys -other_non_function_keys OTko str ko - - -B-G- list of self-mapped keycaps -arrow_key_map OTma str ma - - YBC-- map arrow keys rogue(1) motion keys -# memory_lock_above OTml str ml - - -B--- lock visible screen memory above the current line -# memory_unlock OTmu str mu - - -B--- unlock visible screen memory above the current line -has_hardware_tabs OTpt bool pt - - YB--- has 8-char tabs invoked with ^I -return_does_clr_eol OTxr bool xr - - YB--- return clears the line -# tek_4025_insert_line OTxx bool xx - - -BC-- Tektronix 4025 insert-line glitch -# -# mytinfo described this as a termcap capability, but it's not listed in the -# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses -# package, like System V, behaves as though it is always true. -# -# rind_only_at_top OTxq bool xq - - ----- reverse index only works from top line -# -# University of Waterloo termcap extensions (as described in mytinfo). -# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot -# be resolved by a type check. The descriptions are guesses from what was -# in the mytinfo tables. -# -# key_interrupt_char OTki str ki - - ----- string set by interrupt key (?) -# key_kill_char OTkk str kk - - ----- string set by kill key (?) -# key_suspend_char OTkz str kz - - ----- string set by suspend key (?) -# initialization_messy OTxc bool xc - - ----- initialization leaves garbage on the screen (?) -# ind_at_bottom_does_cr OTxl bool xl - - ----- index does a carriage return -# -# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package. -# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type -# check. -# -# scroll_left OTsl1 str Sl - - ----- scroll screen leftward -# scroll_right OTsr1 str Sr - - ----- scroll screen rightward -# parm_scroll_left OTsl str SL - - ----- scroll screen leftward #1 characters -# parm_scroll_right OTsr str SR - - ----- scroll screen rightward #1 characters -# -# The mytinfo capabilities end here. -# -# XENIX extensions: -# -# Xenix defined its own set of forms-drawing capabilities: -# -# cap IBM ASCII description ACS ASCII -# --- ----------- -------------------- ------------- ------ -# G1 191 \277 M-? single upper right ACS_URCORNER -# G2 218 \332 M-Z single upper left ACS_ULCORNER -# G3 192 \300 M-@ single lower left ACS_LLCORNER -# G4 217 \331 M-Y single lower right ACS_LRCORNER -# G5 187 \273 M-; double upper right -# G6 201 \311 M-I double upper left -# G7 200 \310 M-H double lower left -# G8 188 \274 M-< double lower right -# GC 197 \305 M-E single intersection ACS_PLUS _ _ -# GD 194 \302 M-B single down-tick ACS_TTEE | -# GH 196 \304 M-D single horizontal line ACS_HLINE -# GL 180 \264 M-4 single left tick ACS_RTEE -| -# GR 195 \303 M-C single right tick ACS_LTEE |- -# GU 193 \301 M-A single up tick ACS_BTEE _|_ -# GV 179 \263 M-3 single vertical line ACS_VLINE -# Gc 206 \316 M-N double intersection -# Gd 203 \313 M-K double down tick -# Gh 205 \315 M-M double horizontal line -# Gl 204 \204 M-L double left tick -# Gr 185 \271 M-9 double right tick -# Gu 202 \312 M-J double up tick -# Gv 186 \272 M-: double vertical line -# -# The compiler will translate the single-line caps and discard the others -# (via IGNORE aliases further down). We don't want to do normal pad -# translation on these, they're often single-character printable ASCII -# strings that happen to be numerics. There's awk code in parametrized.sh -# that detects the acs_ prefix and uses it to suppress pad translation. -# These terminfo names are invented. -# -acs_ulcorner OTG2 str G2 - - ----- single upper left -acs_llcorner OTG3 str G3 - - ----- single lower left -acs_urcorner OTG1 str G1 - - ----- single upper right -acs_lrcorner OTG4 str G4 - - ----- single lower right -acs_ltee OTGR str GR - - ----- tee pointing right -acs_rtee OTGL str GL - - ----- tee pointing left -acs_btee OTGU str GU - - ----- tee pointing up -acs_ttee OTGD str GD - - ----- tee pointing down -acs_hline OTGH str GH - - ----- single horizontal line -acs_vline OTGV str GV - - ----- single vertical line -acs_plus OTGC str GC - - ----- single intersection -# -############################################################################# -# -# TERMINFO EXTENSION CAPABILITIES -# -# This section is almost all comments. What it's mainly for is to describe -# what capabilities need to be squeezed out to get down to the XSI Curses -# standard set. They are flagged with K. -# -# HP extensions -# -# These extensions follow ptr_non (replacing everything after it) in HP -# terminfo files. Except for memory_lock and memory_unlock, they are -# functionally identical to SVr4 extensions, but they make the binary format -# different. Grrr.... -# -memory_lock meml str ml - - ----K memory lock above -memory_unlock memu str mu - - ----K memory unlock -#plab_norm pln str pn - - ----- program label #1 to show string #2 -#label_on smln str LO - - ----- turn on soft labels -#label_off rmln str LF - - ----- turn off soft labels -#key_f11 kf11 str F1 - - ----- F11 function key -#key_f12 kf12 str F2 - - ----- F12 function key -#key_f13 kf13 str F3 - - ----- F13 function key -#key_f14 kf14 str F4 - - ----- F14 function key -#key_f15 kf15 str F5 - - ----- F15 function key -#key_f16 kf16 str F6 - - ----- F16 function key -#key_f17 kf17 str F7 - - ----- F17 function key -#key_f18 kf18 str F8 - - ----- F18 function key -#key_f19 kf19 str F9 - - ----- F19 function key -#key_f20 kf20 str FA - - ----- F20 function key -#key_f21 kf21 str FB - - ----- F21 function key -#key_f22 kf22 str FC - - ----- F22 function key -#key_f23 kf23 str FD - - ----- F23 function key -#key_f24 kf24 str FE - - ----- F24 function key -#key_f25 kf25 str FF - - ----- F25 function key -#key_f26 kf26 str FG - - ----- F26 function key -#key_f27 kf27 str FH - - ----- F27 function key -#key_f28 kf28 str FI - - ----- F28 function key -#key_f29 kf29 str FJ - - ----- F29 function key -#key_f30 kf30 str FK - - ----- F30 function key -#key_f31 kf31 str FL - - ----- F31 function key -#key_f32 kf32 str FM - - ----- F32 function key -#key_f33 kf33 str FN - - ----- F33 function key -#key_f34 kf34 str FO - - ----- F34 function key -#key_f35 kf35 str FP - - ----- F35 function key -#key_f36 kf36 str FQ - - ----- F36 function key -#key_f37 kf37 str FR - - ----- F37 function key -#key_f38 kf38 str FS - - ----- F38 function key -#key_f39 kf39 str FT - - ----- F39 function key -#key_f40 kf40 str FU - - ----- F40 function key -#key_f41 kf41 str FV - - ----- F41 function key -#key_f42 kf42 str FW - - ----- F42 function key -#key_f43 kf43 str FX - - ----- F43 function key -#key_f44 kf44 str FY - - ----- F44 function key -#key_f45 kf45 str FZ - - ----- F45 function key -#key_f46 kf46 str Fa - - ----- F46 function key -#key_f47 kf47 str Fb - - ----- F47 function key -#key_f48 kf48 str Fc - - ----- F48 function key -#key_f49 kf49 str Fd - - ----- F49 function key -#key_f50 kf50 str Fe - - ----- F50 function key -#key_f51 kf51 str Ff - - ----- F51 function key -#key_f52 kf52 str Fg - - ----- F52 function key -#key_f53 kf53 str Fh - - ----- F53 function key -#key_f54 kf54 str Fi - - ----- F54 function key -#key_f55 kf55 str Fj - - ----- F55 function key -#key_f56 kf56 str Fk - - ----- F56 function key -#key_f57 kf57 str Fl - - ----- F57 function key -#key_f58 kf58 str Fm - - ----- F58 function key -#key_f59 kf59 str Fn - - ----- F59 function key -#key_f60 kf60 str Fo - - ----- F60 function key -#key_f61 kf61 str Fp - - ----- F61 function key -#key_f62 kf62 str Fq - - ----- F62 function key -#key_f63 kf63 str Fr - - ----- F63 function key -# -# IBM extensions -# -# These extensions follow ptr_non (replacing everything after it) in IBM -# terminfo files. -# -# The places in the box[12] capabilities correspond to acsc characters, here is -# the mapping: -# -# box1[0] = ACS_ULCORNER -# box1[1] = ACS_HLINE -# box1[2] = ACS_URCORNER -# box1[3] = ACS_VLINE -# box1[4] = ACS_LRCORNER -# box1[5] = ACS_LLCORNER -# box1[6] = ACS_TTEE -# box1[7] = ACS_RTEE -# box1[8] = ACS_BTEE -# box1[9] = ACS_LTEE -# box1[10] = ACS_PLUS -# -# The box2 characters are the double-line versions of these forms graphics. -# -box_chars_1 box1 str bx - - ----K box characters primary set -#box_chars_2 box2 str by - - ----K box characters secondary set -#box_attr_1 batt1 str Bx - - ----K attributes for box1 -#box_attr_2 batt2 str By - - ----K attributes for box2 -#color_bg_0 colb0 str d0 - - ----K background color 0 -#color_bg_1 colb1 str d1 - - ----K background color 1 -#color_bg_2 colb2 str d2 - - ----K background color 2 -#color_bg_3 colb3 str d3 - - ----K background color 3 -#color_bg_4 colb4 str d4 - - ----K background color 4 -#color_bg_5 colb5 str d5 - - ----K background color 5 -#color_bg_6 colb6 str d6 - - ----K background color 6 -#color_bg_7 colb7 str d7 - - ----K background color 7 -#color_fg_0 colf0 str c0 - - ----K foreground color 0 -#color_fg_1 colf1 str c1 - - ----K foreground color 1 -#color_fg_2 colf2 str c2 - - ----K foreground color 2 -#color_fg_3 colf3 str c3 - - ----K foreground color 3 -#color_fg_4 colf4 str c4 - - ----K foreground color 4 -#color_fg_5 colf5 str c5 - - ----K foreground color 5 -#color_fg_6 colf6 str c6 - - ----K foreground color 6 -#color_fg_7 colf7 str c7 - - ----K foreground color 7 -#font_0 font0 str f0 - - ----- select font 0 -#font_1 font1 str f1 - - ----- select font 1 -#font_2 font2 str f2 - - ----- select font 2 -#font_3 font3 str f3 - - ----- select font 3 -#font_4 font4 str f4 - - ----K select font 4 -#font_5 font5 str f5 - - ----K select font 5 -#font_6 font6 str f6 - - ----K select font 6 -#font_7 font7 str f7 - - ----K select font 7 -#key_back_tab kbtab str k0 - - ----- backtab key -#key_do kdo str ki - - ----K do request key -#key_command kcmd str kd - - ----K command-request key -#key_command_pane kcpn str kW - - ----K command-pane key -#key_end kend str kw - - ----- end key -#key_help khlp str kq - - ----- help key -#key_newline knl str nl - - ----K newline key -#key_next_pane knpn str kv - - ----K next-pane key -#key_prev_cmd kppn str kp - - ----K previous-command key -#key_prev_pane kppn str kV - - ----K previous-pane key -#key_quit kquit str kQ - - ----K quit key -#key_select ksel str kU - - ----- select key -#key_scroll_left kscl str kz - - ----K scroll left -#key_scroll_right kscr str kZ - - ----K scroll right -#key_tab ktab str ko - - ----K tab key -#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input -#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output -#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input -#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output -#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input -#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output -#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input -#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output -#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input -#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output -#appl_defined_str apstr str za - - ----K application-defined string -# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in -# the IBM manual pages, so the cap name strings are guesses. The terminfo -# names are almost certainly right, the termcap ones almost certainly wrong. -#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input -#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output -#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input -#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output -#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input -#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output -#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input -#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output -# Undocumented capabilities end here -#key_sf1 ksf1 str S1 - - ----K special function key 1 -#key_sf2 ksf2 str S2 - - ----K special function key 2 -#key_sf3 ksf3 str S3 - - ----K special function key 3 -#key_sf4 ksf4 str S4 - - ----K special function key 4 -#key_sf5 ksf5 str S5 - - ----K special function key 5 -#key_sf6 ksf6 str S6 - - ----K special function key 6 -#key_sf7 ksf7 str S7 - - ----K special function key 7 -#key_sf8 ksf8 str S8 - - ----K special function key 8 -#key_sf9 ksf9 str S9 - - ----K special function key 9 -#key_sf10 ksf10 str SA - - ----K special function key 10 -# AIX version 3 documents different codes for F11, F12 and does not mention -# F13-F64. AIX version 4 uses the same naming for F0-F63 as above. -#key_f11 kf11 str k< - - ----- function key 11 -#key_f12 kf12 str k> - - ----- function key 12 -# Undocumented capabilities end here. -#key_action kact str kJ - - ----K sent by action key -# The IBM docs say these capabilities are for table-drawing, and are -# valid only for aixterm descriptions. -#enter_topline_mode topl str tp - - ----K start top-line mode -#enter_bottom_mode btml str bm - - ----K start bottom-line mode -#enter_rvert_mode rvert str rv - - ----K start right-vertical mode -#enter_lvert_mode lvert str lv - - ----K start left-vertical mode -# -############################################################################# -# -# ALIAS DECLARATIONS -# -# Here we set up aliases for translating extensions into standard terminfo. -# -#---------------------------------- Termcap aliases ------------------------- -# -# BSD aliases: -# -# This is a common error in many termcap files. We'll get notified during -# translation when this (or any other alias) fires. -# -capalias sb sr BSD scroll text down -# -# AT&T extensions: -# -# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of -# nonstandard capabilities. Its signature is the KM capability, used to name -# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this -# set. Comments in the original, and a little cross-checking with other AT&T -# documentation, seem to establish the following mappings: -# -capalias BO mr AT&T enter_reverse_mode -capalias CI vi AT&T cursor_invisible -capalias CV ve AT&T cursor_normal -capalias DS mh AT&T enter_dim_mode -#capalias EE me AT&T exit_attribute_mode -capalias FE LF AT&T label_on -capalias FL LO AT&T label_off -capalias XS mk AT&T enter_secure_mode -# -# We comment out EE because the conflicting XENIX EE is more common in -# old entries. -# -# XENIX extensions: -# -# These are the ones we know how to translate directly: -# -capalias EE mh XENIX exit_attribute_mode -capalias GE ae XENIX exit_alt_charset_mode -capalias GS as XENIX enter_alt_charset_mode -capalias CF vi XENIX cursor_invis -capalias CO ve XENIX cursor_normal -capalias EN @7 XENIX key_end -capalias HM kh XENIX key_home -capalias LD kL XENIX key_dl -capalias PD kN XENIX key_npage -capalias PN po XENIX prtr_off -capalias PS pf XENIX prtr_on -capalias PU kP XENIX key_ppage -capalias RT @8 XENIX kent -capalias UP ku XENIX kcuu1 -capalias G6 IGNORE XENIX double-ACS_ULCORNER -capalias G7 IGNORE XENIX double-ACS_LLCORNER -capalias G5 IGNORE XENIX double-ACS_URCORNER -capalias G8 IGNORE XENIX double-ACS_LRCORNER -capalias Gr IGNORE XENIX double-ACS_LTEE -capalias Gr IGNORE XENIX double-ACS_RTEE -capalias Gu IGNORE XENIX double-ACS_BTEE -capalias Gd IGNORE XENIX double ACS_TTEE -capalias Gh IGNORE XENIX double-ACS_HLINE -capalias Gv IGNORE XENIX double-ACS_VLINE -capalias Gc IGNORE XENIX double-ACS_PLUS -capalias GG IGNORE XENIX acs-glitch -# -# IBM extensions: -# -capalias kq %1 IBM key_help -# -# Iris extensions: -# -capalias HS mh IRIS enter_dim_mode -# -# Tektronix extensions: -# -capalias KA k; Tek key_f10 -capalias KB F1 Tek key_f11 -capalias KC F2 Tek key_f12 -capalias KD F3 Tek key_f13 -capalias KE F4 Tek key_f14 -capalias KF F5 Tek key_f15 -capalias BC Sb Tek set_background -capalias FC Sf Tek set_foreground -# -# There are also the following: -# -# XENIX XENIX variable name name clash with terminfo? -# ----- ------------------- ------------------------- -# CL key_char_left -# CR key_char_right -# CW key_change_window -# HP ?? -# LF key_linefeed label_off -# NU key_next_unlocked_cell -# PL ?? -# PR ?? -# RC key_recalc remove_clock -# RF key_toggle_ref req_for_input -# WL key_word_left -# WR key_word_right -# -# If you know what any of the question-marked ones mean, please tell us. -# -#--------------------------------- Terminfo aliases ------------------------ -# -# IBM extensions: -# -infoalias font0 s0ds IBM set0_des_seq -infoalias font1 s1ds IBM set1_des_seq -infoalias font2 s2ds IBM set2_des_seq -infoalias font3 s3ds IBM set3_des_seq -infoalias kbtab kcbt IBM key_backtab -infoalias ksel kslt IBM key_select -# -# Some others are identical to SVr4/XPG4 capabilities, in particular: -# kcmd, kend, khlp, and kf11...kf63. -# -############################################################################# -# -# The following sets edit modes for GNU EMACS -# Local Variables: -# case-fold-search:nil -# truncate-lines:t -# End: diff --git a/Build/source/libs/ncurses/include/MKhashsize.sh b/Build/source/libs/ncurses/include/MKhashsize.sh deleted file mode 100755 index d11d7bf23c8..00000000000 --- a/Build/source/libs/ncurses/include/MKhashsize.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# -# MKhashsize.sh --- generate size include for hash functions -# -echo "/*" -echo " * hashsize.h -- hash and token table constants" -echo " */" - -CAPS="${1-Caps}" -TABSIZE=`grep -v '^[ #]' $CAPS | grep -v "^$" | grep -v "^capalias"| grep -v "^infoalias" | wc -l` - -echo "" -echo "#define CAPTABSIZE ${TABSIZE}" -echo "#define HASHTABSIZE (${TABSIZE} * 2)" diff --git a/Build/source/libs/ncurses/include/MKkey_defs.sh b/Build/source/libs/ncurses/include/MKkey_defs.sh deleted file mode 100755 index b3cb4f7f72c..00000000000 --- a/Build/source/libs/ncurses/include/MKkey_defs.sh +++ /dev/null @@ -1,182 +0,0 @@ -#! /bin/sh -# $Id: MKkey_defs.sh,v 1.14 2003/12/06 17:10:09 tom Exp $ -############################################################################## -# Copyright (c) 2001-2002,2003 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# MKkey_defs.sh -- generate function-key definitions for curses.h -# -# Author: Thomas E. Dickey 2001 -# -# Extract function-key definitions from the Caps file -# -: ${AWK-awk} -DATA=${1-Caps} - -data=data$$ -pass1=pass1_$$ -pass2=pass2_$$ -pass3=pass3_$$ -pass4=pass4_$$ -trap 'rm -f $data pass[1234]_$$' 0 1 2 5 15 - -# change repeated tabs (used for readability) to single tabs (needed to make -# awk see the right field alignment of the corresponding columns): -if sort -k 6 $DATA >$data 2>/dev/null -then - # POSIX - sed -e 's/[ ][ ]*/ /g' < $DATA |sort -n -k 6 >$data -elif sort -n +5 $DATA >$data 2>/dev/null -then - # SunOS (and SVr4, marked as obsolete but still recognized) - sed -e 's/[ ][ ]*/ /g' < $DATA |sort -n +5 >$data -else - echo "Your sort utility is broken. Please install one that works." >&2 - exit 1 -fi - -# add keys that we generate automatically: -cat >>$data <$output <$data ' -function print_cols(text,cols) { - printf "%s", text - len = length(text); - while (len < cols) { - printf " " - len += 8; - } -} -function decode(keycode) { - result = 0; - if (substr(keycode, 1, 2) == "0x") { - digits="0123456789abcdef"; - } else if (substr(keycode, 1, 1) == "0") { - digits="01234567"; - } else { - digits="0123456789"; - } - while (length(keycode) != 0) { - digit=substr(keycode, 1, 1); - keycode=substr(keycode, 2); - result = result * length(digits) + index(digits, digit) - 1; - } - return result; -} - -BEGIN { - maxkey='$maxkey'; - pass='$pass'; - key_max=1; - bits=1; - while (key_max < maxkey) { - bits = bits + 1; - key_max = (key_max * 2) + 1; - } - octal_fmt = sprintf ("%%0%do", (bits + 2) / 3 + 1); -} - -/^$/ {next;} -/^#/ {next;} -/^capalias/ {next;} -/^infoalias/ {next;} - -$5 != "-" && $6 != "-" { - if ($6 == "+") { - if (pass == 1 || pass == 2) - next; - thiskey=maxkey + 1; - } else { - if (pass == 3) - next; - thiskey=decode($6); - } - if (thiskey > maxkey) - maxkey = thiskey; - if (pass == 2 || pass == 3) { - showkey=sprintf(octal_fmt, thiskey); - if ($5 == "KEY_F(0)" ) { - printf "#define " - print_cols("KEY_F0", 16); - print_cols(showkey, 16); - print "/* Function keys. Space for 64 */"; - printf "#define " - print_cols("KEY_F(n)", 16); - print_cols("(KEY_F0+(n))", 16); - print "/* Value of function key n */" - } else { - printf "#define " - print_cols($5, 16); - print_cols(showkey, 16); - printf "/*" - for (i = 8; i <= NF; i++) - printf " %s", $i - print " */" - } - } - } -END { - if (pass == 1) { - print maxkey; - } else if (pass == 4) { - print ""; - printf "#define "; - print_cols("KEY_MAX", 16); - result = sprintf (octal_fmt, key_max); - print_cols(result, 16); - printf "/* Maximum key value is "; - printf octal_fmt, maxkey; - print " */"; - } - } -' -if test $pass = 1 ; then - maxkey=`cat $pass1` -fi - -done - -cat $pass2 -cat $pass3 -cat $pass4 diff --git a/Build/source/libs/ncurses/include/MKncurses_def.sh b/Build/source/libs/ncurses/include/MKncurses_def.sh deleted file mode 100755 index 4aac86554b5..00000000000 --- a/Build/source/libs/ncurses/include/MKncurses_def.sh +++ /dev/null @@ -1,80 +0,0 @@ -#! /bin/sh -# $Id: MKncurses_def.sh,v 1.2 2003/10/25 16:19:46 tom Exp $ -############################################################################## -# Copyright (c) 2000 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# MKncurses_def.sh -- generate fallback definitions for ncurses_cfg.h -# -# Author: Thomas E. Dickey 2000 -# -# Given the choice between constructs such as -# -# #if defined(foo) && foo -# #if foo -# -# we chose the latter. It is guaranteed by the language standard, and there -# appear to be no broken compilers that do not honor that detail. But some -# people want to use gcc's -Wundef option (corresponding to one of the less -# useful features in Watcom's compiler) to check for misspellings. So we -# generate a set of fallback definitions to quiet the warnings without making -# the code ugly. -# -DEFS="${1-ncurses_defs}" -cat < 1992,1995 */" - print "/* and: Eric S. Raymond */" - print "/* and: Thomas E. Dickey 1995-2003 */" - print "/****************************************************************************/" - print "" - print "/* $Id: MKterm.h.awk.in,v 1.42 2003/12/27 19:09:16 tom Exp $ */" - print "" - print "/*" - print "** term.h -- Definition of struct term" - print "*/" - print "" - print "#ifndef NCURSES_TERM_H_incl" - print "#define NCURSES_TERM_H_incl 1" - print "" - print "#undef NCURSES_VERSION" - print "#define NCURSES_VERSION \"@NCURSES_MAJOR@.@NCURSES_MINOR@\"" - print "" - print "#include " - print "" - print "#ifdef __cplusplus" - print "extern \"C\" {" - print "#endif" - print "" - print "/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H" - print " * definition (based on the system for which this was configured)." - print " */" - print "" - print "#undef HAVE_TERMIOS_H" - print "#define HAVE_TERMIOS_H 1/*default*/" - print "" - print "#undef HAVE_TCGETATTR" - print "#define HAVE_TCGETATTR 1/*default*/" - print "" - print "#undef NCURSES_CONST" - print "#define NCURSES_CONST @NCURSES_CONST@" - print "" - print "#undef NCURSES_XNAMES" - print "#define NCURSES_XNAMES @NCURSES_XNAMES@" - print "" - print "/* We will use these symbols to hide differences between" - print " * termios/termio/sgttyb interfaces." - print " */" - print "#undef TTY" - print "#undef SET_TTY" - print "#undef GET_TTY" - print "" - print "/* Assume POSIX termio if we have the header and function */" - print "#if HAVE_TERMIOS_H && HAVE_TCGETATTR" - print "" - print "#undef TERMIOS" - print "#define TERMIOS 1" - print "" - print "#include " - print "#define TTY struct termios" - print "" - print "#else /* !HAVE_TERMIOS_H */" - print "" - print "#if HAVE_TERMIO_H" - print "" - print "#undef TERMIOS" - print "#define TERMIOS 1" - print "" - print "#include " - print "#define TTY struct termio" - print "" - print "/* Add definitions to make termio look like termios." - print " * But ifdef it, since there are some implementations" - print " * that try to do this for us in a fake ." - print " */" - print "#ifndef TCSANOW" - print "#define TCSANOW TCSETA" - print "#endif" - print "#ifndef TCSADRAIN" - print "#define TCSADRAIN TCSETAW" - print "#endif" - print "#ifndef TCSAFLUSH" - print "#define TCSAFLUSH TCSETAF" - print "#endif" - print "#ifndef tcsetattr" - print "#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)" - print "#endif" - print "#ifndef tcgetattr" - print "#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)" - print "#endif" - print "#ifndef cfgetospeed" - print "#define cfgetospeed(t) ((t)->c_cflag & CBAUD)" - print "#endif" - print "#ifndef TCIFLUSH " - print "#define TCIFLUSH 0" - print "#endif" - print "#ifndef TCOFLUSH " - print "#define TCOFLUSH 1" - print "#endif" - print "#ifndef TCIOFLUSH " - print "#define TCIOFLUSH 2" - print "#endif" - print "#ifndef tcflush" - print "#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)" - print "#endif" - print "" - print "#else /* !HAVE_TERMIO_H */" - print "" - print "#undef TERMIOS" - print "#include " - print "#include " - print "#define TTY struct sgttyb" - print "" - print "#endif /* HAVE_TERMIO_H */" - print "" - print "#endif /* HAVE_TERMIOS_H */" - print "" - print "#ifdef TERMIOS" - print "#define GET_TTY(fd, buf) tcgetattr(fd, buf)" - print "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)" - print "#else" - print "#define GET_TTY(fd, buf) gtty(fd, buf)" - print "#define SET_TTY(fd, buf) stty(fd, buf)" - print "#endif" - print "" - print "#define NAMESIZE 256" - print "" - print "#define CUR cur_term->type." - print "" - } - -$2 == "%%-STOP-HERE-%%" { - print "" - printf "#define BOOLWRITE %d\n", BoolCount - printf "#define NUMWRITE %d\n", NumberCount - printf "#define STRWRITE %d\n", StringCount - print "" - print "/* older synonyms for some capabilities */" - print "#define beehive_glitch no_esc_ctlc" - print "#define teleray_glitch dest_tabs_magic_smso" - print "#define micro_char_size micro_col_size" - print "" - print "#ifdef __INTERNAL_CAPS_VISIBLE" - } - -/^#/ {next;} - -$1 == "acs_chars" {acsindex = StringCount} - -$3 == "bool" { - printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++ - } - -$3 == "num" { - printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++ - } - -$3 == "str" { - printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++ - } - -END { - print "#endif /* __INTERNAL_CAPS_VISIBLE */" - print "" - print "" - print "/*" - print " * Predefined terminfo array sizes" - print " */" - printf "#define BOOLCOUNT %d\n", BoolCount - printf "#define NUMCOUNT %d\n", NumberCount - printf "#define STRCOUNT %d\n", StringCount - print "" - print "/* used by code for comparing entries */" - print "#define acs_chars_index ", acsindex - print "" - print "typedef struct termtype { /* in-core form of terminfo data */" - print " char *term_names; /* str_table offset of term names */" - print " char *str_table; /* pointer to string table */" - print " char *Booleans; /* array of boolean values */" - print " short *Numbers; /* array of integer values */" - print " char **Strings; /* array of string offsets */" - print "" - print "#if NCURSES_XNAMES" - print " char *ext_str_table; /* pointer to extended string table */" - print " char **ext_Names; /* corresponding names */" - print "" - print " unsigned short num_Booleans;/* count total Booleans */" - print " unsigned short num_Numbers; /* count total Numbers */" - print " unsigned short num_Strings; /* count total Strings */" - print "" - print " unsigned short ext_Booleans;/* count extensions to Booleans */" - print " unsigned short ext_Numbers; /* count extensions to Numbers */" - print " unsigned short ext_Strings; /* count extensions to Strings */" - print "#endif /* NCURSES_XNAMES */" - print "" - print "} TERMTYPE;" - print "" - print "typedef struct term { /* describe an actual terminal */" - print " TERMTYPE type; /* terminal type description */" - print " short Filedes; /* file description being written to */" - print " TTY Ottyb, /* original state of the terminal */" - print " Nttyb; /* current state of the terminal */" - print " int _baudrate; /* used to compute padding */" - print " char * _termname; /* used for termname() */" - print "} TERMINAL;" - print "" - print "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;" - print "" - print "#if BROKEN_LINKER" - print "#define boolnames _nc_boolnames()" - print "#define boolcodes _nc_boolcodes()" - print "#define boolfnames _nc_boolfnames()" - print "#define numnames _nc_numnames()" - print "#define numcodes _nc_numcodes()" - print "#define numfnames _nc_numfnames()" - print "#define strnames _nc_strnames()" - print "#define strcodes _nc_strcodes()" - print "#define strfnames _nc_strfnames()" - print "" - print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolnames (void);" - print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolcodes (void);" - print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_boolfnames (void);" - print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numnames (void);" - print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numcodes (void);" - print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_numfnames (void);" - print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strnames (void);" - print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strcodes (void);" - print "extern NCURSES_EXPORT(NCURSES_CONST char * const *) _nc_strfnames (void);" - print "" - print "#else" - print "" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];" - print "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];" - print "" - print "#endif" - print "" - print "/* internals */" - print "extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf);" - print "extern NCURSES_EXPORT(int) _nc_get_tty_mode (TTY *buf);" - print "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);" - print "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE *);" - print "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);" - print "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);" - print "extern NCURSES_EXPORT(int) _nc_read_termcap_entry (const char *const, TERMTYPE *const);" - print "extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *);" - print "" - print "/* entry points */" - print "extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *);" - print "extern NCURSES_EXPORT(int) del_curterm (TERMINAL *);" - print "" - print "/* miscellaneous entry points */" - print "extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *);" - print "extern NCURSES_EXPORT(int) setupterm (NCURSES_CONST char *,int,int *);" - print "" - print "/* terminfo entry points, also declared in curses.h */" - print "#if !defined(__NCURSES_H)" - print "extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *);" - print "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);" - print "extern NCURSES_EXPORT_VAR(char) ttytype[];" - print "extern NCURSES_EXPORT(int) putp (const char *);" - print "extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *);" - print "extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);" - print "#endif /* __NCURSES_H */" - print "" - print "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */" - print "#if !defined(NCURSES_TERMCAP_H_incl)" - print "extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);" - print "extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);" - print "extern NCURSES_EXPORT(int) tgetent (char *, const char *);" - print "extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *);" - print "extern NCURSES_EXPORT(int) tgetnum (NCURSES_CONST char *);" - print "extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));" - print "#endif /* NCURSES_TERMCAP_H_incl */" - print "" - print "#ifdef __cplusplus" - print "}" - print "#endif" - print "" - print "#endif /* NCURSES_TERM_H_incl */" - } diff --git a/Build/source/libs/ncurses/include/Makefile.in b/Build/source/libs/ncurses/include/Makefile.in deleted file mode 100644 index 90d001ef942..00000000000 --- a/Build/source/libs/ncurses/include/Makefile.in +++ /dev/null @@ -1,130 +0,0 @@ -# $Id: Makefile.in,v 1.35 2001/12/08 18:50:06 tom Exp $ -############################################################################## -# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996-2001 -# -# Makefile for ncurses source code. -# -# This makes/installs ncurses include-files -# -# The variable 'srcdir' refers to the source-distribution, and can be set with -# the configure script by "--srcdir=DIR". - -# turn off _all_ suffix rules; we'll generate our own -.SUFFIXES: - -SHELL = /bin/sh -THIS = Makefile - -DESTDIR = @DESTDIR@ -srcdir = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ -includedir = @includedir@ - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -AWK = @AWK@ -LN_S = @LN_S@ - -VERSION = @cf_cv_rel_version@ - -# The "Caps" file specifies the terminfo database format, as well as the list -# of function keys. -TERMINFO_CAPS = $(srcdir)/@TERMINFO_CAPS@ - -# These files are generated by the configure script -CONFIG_SRC = \ - MKterm.h.awk \ - curses.head \ - termcap.h \ - unctrl.h - -# These files are generated by this makefile -AUTO_SRC = \ - curses.h \ - hashsize.h \ - ncurses_def.h \ - parametrized.h \ - term.h symlink - -################################################################################ -all \ -libs \ -depend \ -sources \ -install :: $(AUTO_SRC) - -symlink: - @test -d ncurses || ln -s . ncurses - -curses.h : $(TERMINFO_CAPS) \ - curses.head \ - $(srcdir)/curses.tail \ - $(srcdir)/MKkey_defs.sh - cat curses.head >$@ - AWK=$(AWK) sh $(srcdir)/MKkey_defs.sh $(TERMINFO_CAPS) >>$@ - sh -c 'if test "@NCURSES_CH_T@" = "cchar_t" ; then cat $(srcdir)/curses.wide >>$@ ; fi' - cat $(srcdir)/curses.tail >>$@ - -term.h: $(TERMINFO_CAPS) MKterm.h.awk - $(AWK) -f MKterm.h.awk $(TERMINFO_CAPS) > $@ - sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@ - -hashsize.h: $(TERMINFO_CAPS) $(srcdir)/MKhashsize.sh - sh $(srcdir)/MKhashsize.sh $(TERMINFO_CAPS) >$@ - -ncurses_def.h: $(srcdir)/ncurses_defs $(srcdir)/MKncurses_def.sh - AWK=$(AWK) sh $(srcdir)/MKncurses_def.sh $(srcdir)/ncurses_defs >$@ - -parametrized.h: $(TERMINFO_CAPS) $(srcdir)/MKparametrized.sh - AWK=$(AWK) sh $(srcdir)/MKparametrized.sh $(TERMINFO_CAPS) >$@ - -tags: - ctags *.[ch] - -@MAKE_UPPER_TAGS@TAGS: -@MAKE_UPPER_TAGS@ etags *.[ch] - -mostlyclean :: - -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace - -clean :: mostlyclean - -rm -f $(AUTO_SRC) - -rm -f ncurses - -distclean :: clean - -rm -f Makefile $(CONFIG_SRC) - -realclean :: distclean - -############################################################################### -# The remainder of this file is automatically generated during configuration -############################################################################### diff --git a/Build/source/libs/ncurses/include/capdefaults.c b/Build/source/libs/ncurses/include/capdefaults.c deleted file mode 100644 index 071f9e17cdb..00000000000 --- a/Build/source/libs/ncurses/include/capdefaults.c +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* $Id: capdefaults.c,v 1.12 2000/01/02 02:34:56 tom Exp $ */ - - /* - * Compute obsolete capabilities. The reason this is an include file is - * that the two places where it's needed want the macros to generate - * offsets to different structures. See the file Caps for explanations of - * these conversions. - * - * Note: This code is the functional inverse of the first part of - * postprocess_termcap(). - */ -{ - char *sp; - int capval; - -#define EXTRACT_DELAY(str) (sp = strchr(str, '*'), sp ? atoi(sp+1) : 0) - - /* current (4.4BSD) capabilities marked obsolete */ - if (VALID_STRING(carriage_return) - && (capval = EXTRACT_DELAY(carriage_return))) - carriage_return_delay = capval; - if (VALID_STRING(newline) && (capval = EXTRACT_DELAY(newline))) - new_line_delay = capval; - - /* current (4.4BSD) capabilities not obsolete */ - if (!VALID_STRING(termcap_init2) && VALID_STRING(init_3string)) { - termcap_init2 = init_3string; - init_3string = ABSENT_STRING; - } - if (!VALID_STRING(termcap_reset) - && VALID_STRING(reset_2string) - && !VALID_STRING(reset_1string) - && !VALID_STRING(reset_3string)) { - termcap_reset = reset_2string; - reset_2string = ABSENT_STRING; - } - if (magic_cookie_glitch_ul == ABSENT_NUMERIC - && magic_cookie_glitch != ABSENT_NUMERIC - && VALID_STRING(enter_underline_mode)) - magic_cookie_glitch_ul = magic_cookie_glitch; - - /* totally obsolete capabilities */ - linefeed_is_newline = VALID_STRING(newline) - && (strcmp("\n", newline) == 0); - if (VALID_STRING(cursor_left) - && (capval = EXTRACT_DELAY(cursor_left))) - backspace_delay = capval; - if (VALID_STRING(tab) && (capval = EXTRACT_DELAY(tab))) - horizontal_tab_delay = capval; -#undef EXTRACT_DELAY -} diff --git a/Build/source/libs/ncurses/include/curses.h.in b/Build/source/libs/ncurses/include/curses.h.in deleted file mode 100644 index 1ddbb47e002..00000000000 --- a/Build/source/libs/ncurses/include/curses.h.in +++ /dev/null @@ -1,1026 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* $Id: curses.h.in,v 1.151 2004/06/19 22:26:53 tom Exp $ */ - -#ifndef __NCURSES_H -#define __NCURSES_H - -#define CURSES 1 -#define CURSES_H 1 - -/* This should be defined for the enhanced functionality to be visible. - * However, some of the wide-character (enhanced) functionality is missing. - * So we do not define it (yet). -#define _XOPEN_CURSES 1 - */ - -/* These are defined only in curses.h, and are used for conditional compiles */ -#define NCURSES_VERSION_MAJOR @NCURSES_MAJOR@ -#define NCURSES_VERSION_MINOR @NCURSES_MINOR@ -#define NCURSES_VERSION_PATCH @NCURSES_PATCH@ - -/* This is defined in more than one ncurses header, for identification */ -#undef NCURSES_VERSION -#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@" - -#include - -/* - * User-definable tweak to disable the include of . - */ -#ifndef NCURSES_ENABLE_STDBOOL_H -#define NCURSES_ENABLE_STDBOOL_H @cf_cv_header_stdbool_h@ -#endif - -/* - * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses - * configured using --disable-macros. - */ -#ifdef NCURSES_NOMACROS -#define NCURSES_ATTR_T attr_t -#endif - -#ifndef NCURSES_ATTR_T -#define NCURSES_ATTR_T int -#endif - -/* - * Expands to 'const' if ncurses is configured using --enable-const. Note that - * doing so makes it incompatible with other implementations of X/Open Curses. - */ -#undef NCURSES_CONST -#define NCURSES_CONST @NCURSES_CONST@ - -/* - * The internal type used for color values - */ -#undef NCURSES_COLOR_T -#define NCURSES_COLOR_T short - -/* - * The internal type used for window dimensions. - */ -#undef NCURSES_SIZE_T -#define NCURSES_SIZE_T short - -/* - * NCURSES_CH_T is used in building the library, but not used otherwise in - * this header file, since that would make the normal/wide-character versions - * of the header incompatible. - */ -#undef NCURSES_CH_T -#define NCURSES_CH_T @NCURSES_CH_T@ - -typedef unsigned @cf_cv_typeof_chtype@ chtype; - -#include -#include -#include /* we need va_list */ -#ifdef _XOPEN_SOURCE_EXTENDED -#include /* we want wchar_t */ -#endif /* _XOPEN_SOURCE_EXTENDED */ - -/* XSI and SVr4 specify that curses implements 'bool'. However, C++ may also - * implement it. If so, we must use the C++ compiler's type to avoid conflict - * with other interfaces. - * - * A further complication is that may declare 'bool' to be a - * different type, such as an enum which is not necessarily compatible with - * C++. If we have , make 'bool' a macro, so users may #undef it. - * Otherwise, let it remain a typedef to avoid conflicts with other #define's. - * In either case, make a typedef for NCURSES_BOOL which can be used if needed - * from either C or C++. - */ - -#undef TRUE -#define TRUE 1 - -#undef FALSE -#define FALSE 0 - -typedef @cf_cv_type_of_bool@ NCURSES_BOOL; - -#if @USE_CXX_BOOL@ /* __cplusplus, etc. */ - -/* use the C++ compiler's bool type */ -#define NCURSES_BOOL bool - -#else /* c89, c99, etc. */ - -#if NCURSES_ENABLE_STDBOOL_H -#include -/* use whatever the C compiler decides bool really is */ -#define NCURSES_BOOL bool -#else -/* there is no predefined bool - use our own */ -#undef bool -#define bool NCURSES_BOOL -#endif - -#endif /* !__cplusplus, etc. */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * XSI attributes. In the ncurses implementation, they are identical to the - * A_ attributes. - */ -#define WA_ATTRIBUTES A_ATTRIBUTES -#define WA_NORMAL A_NORMAL -#define WA_STANDOUT A_STANDOUT -#define WA_UNDERLINE A_UNDERLINE -#define WA_REVERSE A_REVERSE -#define WA_BLINK A_BLINK -#define WA_DIM A_DIM -#define WA_BOLD A_BOLD -#define WA_ALTCHARSET A_ALTCHARSET -#define WA_INVIS A_INVIS -#define WA_PROTECT A_PROTECT -#define WA_HORIZONTAL A_HORIZONTAL -#define WA_LEFT A_LEFT -#define WA_LOW A_LOW -#define WA_RIGHT A_RIGHT -#define WA_TOP A_TOP -#define WA_VERTICAL A_VERTICAL - -/* colors */ -extern NCURSES_EXPORT_VAR(int) COLORS; -extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS; - -#define COLOR_BLACK 0 -#define COLOR_RED 1 -#define COLOR_GREEN 2 -#define COLOR_YELLOW 3 -#define COLOR_BLUE 4 -#define COLOR_MAGENTA 5 -#define COLOR_CYAN 6 -#define COLOR_WHITE 7 - -/* line graphics */ - -#if @BROKEN_LINKER@ -extern NCURSES_EXPORT_VAR(chtype*) _nc_acs_map(void); -#define acs_map (_nc_acs_map()) -#else -extern NCURSES_EXPORT_VAR(chtype) acs_map[]; -#endif - -#define NCURSES_ACS(c) (acs_map[(unsigned char)c]) - -/* VT100 symbols begin here */ -#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */ -#define ACS_LLCORNER NCURSES_ACS('m') /* lower left corner */ -#define ACS_URCORNER NCURSES_ACS('k') /* upper right corner */ -#define ACS_LRCORNER NCURSES_ACS('j') /* lower right corner */ -#define ACS_LTEE NCURSES_ACS('t') /* tee pointing right */ -#define ACS_RTEE NCURSES_ACS('u') /* tee pointing left */ -#define ACS_BTEE NCURSES_ACS('v') /* tee pointing up */ -#define ACS_TTEE NCURSES_ACS('w') /* tee pointing down */ -#define ACS_HLINE NCURSES_ACS('q') /* horizontal line */ -#define ACS_VLINE NCURSES_ACS('x') /* vertical line */ -#define ACS_PLUS NCURSES_ACS('n') /* large plus or crossover */ -#define ACS_S1 NCURSES_ACS('o') /* scan line 1 */ -#define ACS_S9 NCURSES_ACS('s') /* scan line 9 */ -#define ACS_DIAMOND NCURSES_ACS('`') /* diamond */ -#define ACS_CKBOARD NCURSES_ACS('a') /* checker board (stipple) */ -#define ACS_DEGREE NCURSES_ACS('f') /* degree symbol */ -#define ACS_PLMINUS NCURSES_ACS('g') /* plus/minus */ -#define ACS_BULLET NCURSES_ACS('~') /* bullet */ -/* Teletype 5410v1 symbols begin here */ -#define ACS_LARROW NCURSES_ACS(',') /* arrow pointing left */ -#define ACS_RARROW NCURSES_ACS('+') /* arrow pointing right */ -#define ACS_DARROW NCURSES_ACS('.') /* arrow pointing down */ -#define ACS_UARROW NCURSES_ACS('-') /* arrow pointing up */ -#define ACS_BOARD NCURSES_ACS('h') /* board of squares */ -#define ACS_LANTERN NCURSES_ACS('i') /* lantern symbol */ -#define ACS_BLOCK NCURSES_ACS('0') /* solid square block */ -/* - * These aren't documented, but a lot of System Vs have them anyway - * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings). - * The ACS_names may not match AT&T's, our source didn't know them. - */ -#define ACS_S3 NCURSES_ACS('p') /* scan line 3 */ -#define ACS_S7 NCURSES_ACS('r') /* scan line 7 */ -#define ACS_LEQUAL NCURSES_ACS('y') /* less/equal */ -#define ACS_GEQUAL NCURSES_ACS('z') /* greater/equal */ -#define ACS_PI NCURSES_ACS('{') /* Pi */ -#define ACS_NEQUAL NCURSES_ACS('|') /* not equal */ -#define ACS_STERLING NCURSES_ACS('}') /* UK pound sign */ - -/* - * Line drawing ACS names are of the form ACS_trbl, where t is the top, r - * is the right, b is the bottom, and l is the left. t, r, b, and l might - * be B (blank), S (single), D (double), or T (thick). The subset defined - * here only uses B and S. - */ -#define ACS_BSSB ACS_ULCORNER -#define ACS_SSBB ACS_LLCORNER -#define ACS_BBSS ACS_URCORNER -#define ACS_SBBS ACS_LRCORNER -#define ACS_SBSS ACS_RTEE -#define ACS_SSSB ACS_LTEE -#define ACS_SSBS ACS_BTEE -#define ACS_BSSS ACS_TTEE -#define ACS_BSBS ACS_HLINE -#define ACS_SBSB ACS_VLINE -#define ACS_SSSS ACS_PLUS - -#undef ERR -#define ERR (-1) - -#undef OK -#define OK (0) - -/* values for the _flags member */ -#define _SUBWIN 0x01 /* is this a sub-window? */ -#define _ENDLINE 0x02 /* is the window flush right? */ -#define _FULLWIN 0x04 /* is the window full-screen? */ -#define _SCROLLWIN 0x08 /* bottom edge is at screen bottom? */ -#define _ISPAD 0x10 /* is this window a pad? */ -#define _HASMOVED 0x20 /* has cursor moved since last refresh? */ -#define _WRAPPED 0x40 /* cursor was just wrappped */ - -/* - * this value is used in the firstchar and lastchar fields to mark - * unchanged lines - */ -#define _NOCHANGE -1 - -/* - * this value is used in the oldindex field to mark lines created by insertions - * and scrolls. - */ -#define _NEWINDEX -1 - -typedef struct screen SCREEN; -typedef struct _win_st WINDOW; - -typedef chtype attr_t; /* ...must be at least as wide as chtype */ - -#ifdef _XOPEN_SOURCE_EXTENDED - -#if @NCURSES_LIBUTF8@ -#ifdef mblen /* libutf8.h defines it w/o undefining first */ -#undef mblen -#endif -#include -#endif - -#if @NEED_WCHAR_H@ -#include /* ...to get mbstate_t, etc. */ -#endif - -#if @NCURSES_WCHAR_T@ -typedef unsigned short wchar_t@NCURSES_OK_WCHAR_T@; -#endif - -#if @NCURSES_WINT_T@ -typedef unsigned int wint_t@NCURSES_OK_WCHAR_T@; -#endif - -#define CCHARW_MAX 5 -typedef struct -{ - attr_t attr; - wchar_t chars[CCHARW_MAX]; -} -cchar_t; - -#endif /* _XOPEN_SOURCE_EXTENDED */ - -struct ldat; - -struct _win_st -{ - NCURSES_SIZE_T _cury, _curx; /* current cursor position */ - - /* window location and size */ - NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */ - NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */ - - short _flags; /* window state flags */ - - /* attribute tracking */ - attr_t _attrs; /* current attribute for non-space character */ - chtype _bkgd; /* current background char/attribute pair */ - - /* option values set by user */ - bool _notimeout; /* no time out on function-key entry? */ - bool _clear; /* consider all data in the window invalid? */ - bool _leaveok; /* OK to not reset cursor on exit? */ - bool _scroll; /* OK to scroll this window? */ - bool _idlok; /* OK to use insert/delete line? */ - bool _idcok; /* OK to use insert/delete char? */ - bool _immed; /* window in immed mode? (not yet used) */ - bool _sync; /* window in sync mode? */ - bool _use_keypad; /* process function keys into KEY_ symbols? */ - int _delay; /* 0 = nodelay, <0 = blocking, >0 = delay */ - - struct ldat *_line; /* the actual line data */ - - /* global screen state */ - NCURSES_SIZE_T _regtop; /* top line of scrolling region */ - NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */ - - /* these are used only if this is a sub-window */ - int _parx; /* x coordinate of this window in parent */ - int _pary; /* y coordinate of this window in parent */ - WINDOW *_parent; /* pointer to parent if a sub-window */ - - /* these are used only if this is a pad */ - struct pdat - { - NCURSES_SIZE_T _pad_y, _pad_x; - NCURSES_SIZE_T _pad_top, _pad_left; - NCURSES_SIZE_T _pad_bottom, _pad_right; - } _pad; - - NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */ - -#ifdef _XOPEN_SOURCE_EXTENDED - cchar_t _bkgrnd; /* current background char/attribute pair */ -#endif -}; - -extern NCURSES_EXPORT_VAR(WINDOW *) stdscr; -extern NCURSES_EXPORT_VAR(WINDOW *) curscr; -extern NCURSES_EXPORT_VAR(WINDOW *) newscr; - -extern NCURSES_EXPORT_VAR(int) LINES; -extern NCURSES_EXPORT_VAR(int) COLS; -extern NCURSES_EXPORT_VAR(int) TABSIZE; - -/* - * This global was an undocumented feature under AIX curses. - */ -extern NCURSES_EXPORT_VAR(int) ESCDELAY; /* ESC expire time in milliseconds */ - -extern NCURSES_EXPORT_VAR(char) ttytype[]; /* needed for backward compatibility */ - -/* - * These functions are extensions - not in XSI Curses. - */ -#if @NCURSES_EXT_FUNCS@ -extern NCURSES_EXPORT(bool) is_term_resized (int, int); -extern NCURSES_EXPORT(char *) keybound (int, int); -extern NCURSES_EXPORT(const char *) curses_version (void); -extern NCURSES_EXPORT(int) assume_default_colors (int, int); -extern NCURSES_EXPORT(int) define_key (const char *, int); -extern NCURSES_EXPORT(int) key_defined (const char *); -extern NCURSES_EXPORT(int) keyok (int, bool); -extern NCURSES_EXPORT(int) resize_term (int, int); -extern NCURSES_EXPORT(int) resizeterm (int, int); -extern NCURSES_EXPORT(int) use_default_colors (void); -extern NCURSES_EXPORT(int) use_extended_names (bool); -extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int); -#else -#define curses_version() NCURSES_VERSION -#endif - -/* - * This is an extension to support events... - */ -#if @NCURSES_EXT_FUNCS@ -#ifdef NCURSES_WGETCH_EVENTS -#if !defined(__BEOS__) /* Fix _nc_timed_wait() on BEOS... */ -# define NCURSES_EVENT_VERSION 1 -#endif /* !defined(__BEOS__) */ - -/* - * Bits to set in _nc_event.data.flags - */ -# define _NC_EVENT_TIMEOUT_MSEC 1 -# define _NC_EVENT_FILE 2 -# define _NC_EVENT_FILE_READABLE 2 -# if 0 /* Not supported yet... */ -# define _NC_EVENT_FILE_WRITABLE 4 -# define _NC_EVENT_FILE_EXCEPTION 8 -# endif - -typedef struct -{ - int type; - union - { - long timeout_msec; /* _NC_EVENT_TIMEOUT_MSEC */ - struct - { - unsigned int flags; - int fd; - unsigned int result; - } fev; /* _NC_EVENT_FILE */ - } data; -} _nc_event; - -typedef struct -{ - int count; - int result_flags; /* _NC_EVENT_TIMEOUT_MSEC or _NC_EVENT_FILE_READABLE */ - _nc_event *events[1]; -} _nc_eventlist; - -extern NCURSES_EXPORT(int) wgetch_events(WINDOW *, _nc_eventlist *); /* experimental */ -extern NCURSES_EXPORT(int) wgetnstr_events(WINDOW *,char *,int,_nc_eventlist *);/* experimental */ - -#endif /* NCURSES_WGETCH_EVENTS */ -#endif /* NCURSES_EXT_FUNCS */ - -/* - * GCC (and some other compilers) define '__attribute__'; we're using this - * macro to alert the compiler to flag inconsistencies in printf/scanf-like - * function calls. Just in case '__attribute__' isn't defined, make a dummy. - * Old versions of G++ do not accept it anyway, at least not consistently with - * GCC. - */ -#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__)) -#define __attribute__(p) /* nothing */ -#endif - -/* - * We cannot define these in ncurses_cfg.h, since they require parameters to be - * passed (that's non-portable). - */ -#ifndef GCC_PRINTFLIKE -#if defined(GCC_PRINTF) && !defined(printf) -#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var))) -#else -#define GCC_PRINTFLIKE(fmt,var) /*nothing*/ -#endif -#endif - -#ifndef GCC_SCANFLIKE -#if defined(GCC_SCANF) && !defined(scanf) -#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var))) -#else -#define GCC_SCANFLIKE(fmt,var) /*nothing*/ -#endif -#endif - -#ifndef GCC_NORETURN -#define GCC_NORETURN /* nothing */ -#endif - -#ifndef GCC_UNUSED -#define GCC_UNUSED /* nothing */ -#endif - -/* - * Function prototypes. This is the complete XSI Curses list of required - * functions. Those marked `generated' will have sources generated from the - * macro definitions later in this file, in order to satisfy XPG4.2 - * requirements. - */ - -extern NCURSES_EXPORT(int) addch (const chtype); /* generated */ -extern NCURSES_EXPORT(int) addchnstr (const chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) addchstr (const chtype *); /* generated */ -extern NCURSES_EXPORT(int) addnstr (const char *, int); /* generated */ -extern NCURSES_EXPORT(int) addstr (const char *); /* generated */ -extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T); /* generated */ -extern NCURSES_EXPORT(int) attr_get (attr_t *, short *, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_off (attr_t, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_on (attr_t, void *); /* generated */ -extern NCURSES_EXPORT(int) attr_set (attr_t, short, void *); /* generated */ -extern NCURSES_EXPORT(int) baudrate (void); /* implemented */ -extern NCURSES_EXPORT(int) beep (void); /* implemented */ -extern NCURSES_EXPORT(int) bkgd (chtype); /* generated */ -extern NCURSES_EXPORT(void) bkgdset (chtype); /* generated */ -extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* generated */ -extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype); /* generated */ -extern NCURSES_EXPORT(bool) can_change_color (void); /* implemented */ -extern NCURSES_EXPORT(int) cbreak (void); /* implemented */ -extern NCURSES_EXPORT(int) chgat (int, attr_t, short, const void *); /* generated */ -extern NCURSES_EXPORT(int) clear (void); /* generated */ -extern NCURSES_EXPORT(int) clearok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) clrtobot (void); /* generated */ -extern NCURSES_EXPORT(int) clrtoeol (void); /* generated */ -extern NCURSES_EXPORT(int) color_content (short,short*,short*,short*); /* implemented */ -extern NCURSES_EXPORT(int) color_set (short,void*); /* generated */ -extern NCURSES_EXPORT(int) COLOR_PAIR (int); /* generated */ -extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) curs_set (int); /* implemented */ -extern NCURSES_EXPORT(int) def_prog_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) def_shell_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) delay_output (int); /* implemented */ -extern NCURSES_EXPORT(int) delch (void); /* generated */ -extern NCURSES_EXPORT(void) delscreen (SCREEN *); /* implemented */ -extern NCURSES_EXPORT(int) delwin (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) deleteln (void); /* generated */ -extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) doupdate (void); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) echo (void); /* implemented */ -extern NCURSES_EXPORT(int) echochar (const chtype); /* generated */ -extern NCURSES_EXPORT(int) erase (void); /* generated */ -extern NCURSES_EXPORT(int) endwin (void); /* implemented */ -extern NCURSES_EXPORT(char) erasechar (void); /* implemented */ -extern NCURSES_EXPORT(void) filter (void); /* implemented */ -extern NCURSES_EXPORT(int) flash (void); /* implemented */ -extern NCURSES_EXPORT(int) flushinp (void); /* implemented */ -extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) getch (void); /* generated */ -extern NCURSES_EXPORT(int) getnstr (char *, int); /* generated */ -extern NCURSES_EXPORT(int) getstr (char *); /* generated */ -extern NCURSES_EXPORT(WINDOW *) getwin (FILE *); /* implemented */ -extern NCURSES_EXPORT(int) halfdelay (int); /* implemented */ -extern NCURSES_EXPORT(bool) has_colors (void); /* implemented */ -extern NCURSES_EXPORT(bool) has_ic (void); /* implemented */ -extern NCURSES_EXPORT(bool) has_il (void); /* implemented */ -extern NCURSES_EXPORT(int) hline (chtype, int); /* generated */ -extern NCURSES_EXPORT(void) idcok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(int) idlok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(void) immedok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(chtype) inch (void); /* generated */ -extern NCURSES_EXPORT(int) inchnstr (chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) inchstr (chtype *); /* generated */ -extern NCURSES_EXPORT(WINDOW *) initscr (void); /* implemented */ -extern NCURSES_EXPORT(int) init_color (short,short,short,short); /* implemented */ -extern NCURSES_EXPORT(int) init_pair (short,short,short); /* implemented */ -extern NCURSES_EXPORT(int) innstr (char *, int); /* generated */ -extern NCURSES_EXPORT(int) insch (chtype); /* generated */ -extern NCURSES_EXPORT(int) insdelln (int); /* generated */ -extern NCURSES_EXPORT(int) insertln (void); /* generated */ -extern NCURSES_EXPORT(int) insnstr (const char *, int); /* generated */ -extern NCURSES_EXPORT(int) insstr (const char *); /* generated */ -extern NCURSES_EXPORT(int) instr (char *); /* generated */ -extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(bool) isendwin (void); /* implemented */ -extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int); /* implemented */ -extern NCURSES_EXPORT(int) keypad (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(char) killchar (void); /* implemented */ -extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(char *) longname (void); /* implemented */ -extern NCURSES_EXPORT(int) meta (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) move (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype); /* generated */ -extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, short, const void *); /* generated */ -extern NCURSES_EXPORT(int) mvcur (int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) mvdelch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int); /* implemented */ -extern NCURSES_EXPORT(int) mvgetch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvgetstr (int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(chtype) mvinch (int, int); /* generated */ -extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinsch (int, int, chtype); /* generated */ -extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvinstr (int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...) /* implemented */ - GCC_PRINTFLIKE(3,4); -extern NCURSES_EXPORT(int) mvscanw (int,int, NCURSES_CONST char *,...) /* implemented */ - GCC_SCANFLIKE(3,4); -extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype); /* generated */ -extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */ -extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, short, const void *);/* generated */ -extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *); /* generated */ -extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype); /* generated */ -extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int); /* generated */ -extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *); /* generated */ -extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *); /* generated */ -extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...) /* implemented */ - GCC_PRINTFLIKE(4,5); -extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, NCURSES_CONST char *,...) /* implemented */ - GCC_SCANFLIKE(4,5); -extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int); /* generated */ -extern NCURSES_EXPORT(int) napms (int); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) newpad (int,int); /* implemented */ -extern NCURSES_EXPORT(SCREEN *) newterm (NCURSES_CONST char *,FILE *,FILE *); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) nl (void); /* implemented */ -extern NCURSES_EXPORT(int) nocbreak (void); /* implemented */ -extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) noecho (void); /* implemented */ -extern NCURSES_EXPORT(int) nonl (void); /* implemented */ -extern NCURSES_EXPORT(void) noqiflush (void); /* implemented */ -extern NCURSES_EXPORT(int) noraw (void); /* implemented */ -extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) pair_content (short,short*,short*); /* implemented */ -extern NCURSES_EXPORT(int) PAIR_NUMBER (int); /* generated */ -extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */ -extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) printw (const char *,...) /* implemented */ - GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT(int) putp (const char *); /* implemented */ -extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *); /* implemented */ -extern NCURSES_EXPORT(void) qiflush (void); /* implemented */ -extern NCURSES_EXPORT(int) raw (void); /* implemented */ -extern NCURSES_EXPORT(int) redrawwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) refresh (void); /* generated */ -extern NCURSES_EXPORT(int) resetty (void); /* implemented */ -extern NCURSES_EXPORT(int) reset_prog_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) reset_shell_mode (void); /* implemented */ -extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int)); /* implemented */ -extern NCURSES_EXPORT(int) savetty (void); /* implemented */ -extern NCURSES_EXPORT(int) scanw (NCURSES_CONST char *,...) /* implemented */ - GCC_SCANFLIKE(1,2); -extern NCURSES_EXPORT(int) scr_dump (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scr_init (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scrl (int); /* generated */ -extern NCURSES_EXPORT(int) scroll (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool); /* implemented */ -extern NCURSES_EXPORT(int) scr_restore (const char *); /* implemented */ -extern NCURSES_EXPORT(int) scr_set (const char *); /* implemented */ -extern NCURSES_EXPORT(int) setscrreg (int,int); /* generated */ -extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *); /* implemented */ -extern NCURSES_EXPORT(int) slk_attroff (const chtype); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) slk_attron (const chtype); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) slk_attrset (const chtype); /* implemented */ -extern NCURSES_EXPORT(attr_t) slk_attr (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,short,void*); /* implemented */ -extern NCURSES_EXPORT(int) slk_clear (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_color (short); /* implemented */ -extern NCURSES_EXPORT(int) slk_init (int); /* implemented */ -extern NCURSES_EXPORT(char *) slk_label (int); /* implemented */ -extern NCURSES_EXPORT(int) slk_noutrefresh (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_refresh (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_restore (void); /* implemented */ -extern NCURSES_EXPORT(int) slk_set (int,const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) slk_touch (void); /* implemented */ -extern NCURSES_EXPORT(int) standout (void); /* generated */ -extern NCURSES_EXPORT(int) standend (void); /* generated */ -extern NCURSES_EXPORT(int) start_color (void); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int); /* implemented */ -extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *,int,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) syncok (WINDOW *, bool); /* implemented */ -extern NCURSES_EXPORT(chtype) termattrs (void); /* implemented */ -extern NCURSES_EXPORT(char *) termname (void); /* implemented */ -extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *); /* implemented */ -extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *); /* implemented */ -extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *); /* implemented */ -extern NCURSES_EXPORT(void) timeout (int); /* generated */ -extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int); /* generated */ -extern NCURSES_EXPORT(int) touchwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...); /* implemented */ -extern NCURSES_EXPORT(int) typeahead (int); /* implemented */ -extern NCURSES_EXPORT(int) ungetch (int); /* implemented */ -extern NCURSES_EXPORT(int) untouchwin (WINDOW *); /* generated */ -extern NCURSES_EXPORT(void) use_env (bool); /* implemented */ -extern NCURSES_EXPORT(int) vidattr (chtype); /* implemented */ -extern NCURSES_EXPORT(int) vidputs (chtype, int (*)(int)); /* implemented */ -extern NCURSES_EXPORT(int) vline (chtype, int); /* generated */ -extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *,va_list); /* implemented */ -extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *,va_list); /* generated */ -extern NCURSES_EXPORT(int) vwscanw (WINDOW *, NCURSES_CONST char *,va_list); /* implemented */ -extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, NCURSES_CONST char *,va_list); /* generated */ -extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int); /* implemented */ -extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *); /* generated */ -extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *); /* generated */ -extern NCURSES_EXPORT(int) wattron (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattroff (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattrset (WINDOW *, int); /* generated */ -extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, short *, void *); /* generated */ -extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *); /* implemented */ -extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *); /* implemented */ -extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, short, void *); /* generated */ -extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype); /* implemented */ -extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype); /* implemented */ -extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype); /* implemented */ -extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, short, const void *);/* implemented */ -extern NCURSES_EXPORT(int) wclear (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wclrtobot (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,short,void*); /* implemented */ -extern NCURSES_EXPORT(void) wcursyncup (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wdelch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wdeleteln (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype); /* implemented */ -extern NCURSES_EXPORT(int) werase (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wgetch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int); /* implemented */ -extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *); /* generated */ -extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int); /* implemented */ -extern NCURSES_EXPORT(chtype) winch (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int); /* implemented */ -extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *); /* generated */ -extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int); /* implemented */ -extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype); /* implemented */ -extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) winsertln (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int); /* implemented */ -extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *); /* generated */ -extern NCURSES_EXPORT(int) winstr (WINDOW *, char *); /* generated */ -extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...) /* implemented */ - GCC_PRINTFLIKE(2,3); -extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wrefresh (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(int) wscanw (WINDOW *, NCURSES_CONST char *,...) /* implemented */ - GCC_SCANFLIKE(2,3); -extern NCURSES_EXPORT(int) wscrl (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wstandout (WINDOW *); /* generated */ -extern NCURSES_EXPORT(int) wstandend (WINDOW *); /* generated */ -extern NCURSES_EXPORT(void) wsyncdown (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(void) wsyncup (WINDOW *); /* implemented */ -extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int); /* implemented */ -extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int); /* implemented */ -extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int); /* implemented */ - -/* - * vid_attr() was implemented originally based on the draft of XSI curses. - */ -#ifndef _XOPEN_SOURCE_EXTENDED -#define vid_attr(a,pair,opts) vidattr(a) -#endif - -/* attributes */ - -#define NCURSES_ATTR_SHIFT 8 -#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + NCURSES_ATTR_SHIFT)) - -#define A_NORMAL 0L -#define A_ATTRIBUTES NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0) -#define A_CHARTEXT (NCURSES_BITS(@cf_cv_1UL@,0) - @cf_cv_1UL@) -#define A_COLOR NCURSES_BITS(((@cf_cv_1UL@) << 8) - @cf_cv_1UL@,0) -#define A_STANDOUT NCURSES_BITS(@cf_cv_1UL@,8) -#define A_UNDERLINE NCURSES_BITS(@cf_cv_1UL@,9) -#define A_REVERSE NCURSES_BITS(@cf_cv_1UL@,10) -#define A_BLINK NCURSES_BITS(@cf_cv_1UL@,11) -#define A_DIM NCURSES_BITS(@cf_cv_1UL@,12) -#define A_BOLD NCURSES_BITS(@cf_cv_1UL@,13) -#define A_ALTCHARSET NCURSES_BITS(@cf_cv_1UL@,14) -#define A_INVIS NCURSES_BITS(@cf_cv_1UL@,15) -#define A_PROTECT NCURSES_BITS(@cf_cv_1UL@,16) -#define A_HORIZONTAL NCURSES_BITS(@cf_cv_1UL@,17) -#define A_LEFT NCURSES_BITS(@cf_cv_1UL@,18) -#define A_LOW NCURSES_BITS(@cf_cv_1UL@,19) -#define A_RIGHT NCURSES_BITS(@cf_cv_1UL@,20) -#define A_TOP NCURSES_BITS(@cf_cv_1UL@,21) -#define A_VERTICAL NCURSES_BITS(@cf_cv_1UL@,22) - -#define COLOR_PAIR(n) NCURSES_BITS(n, 0) -#define PAIR_NUMBER(a) ((int)(((a) & A_COLOR) >> NCURSES_ATTR_SHIFT)) - -/* - * pseudo functions - */ -#define wgetstr(w, s) wgetnstr(w, s, -1) -#define getnstr(s, n) wgetnstr(stdscr, s, n) - -#define setterm(term) setupterm(term, 1, (int *)0) - -#define fixterm() reset_prog_mode() -#define resetterm() reset_shell_mode() -#define saveterm() def_prog_mode() -#define crmode() cbreak() -#define nocrmode() nocbreak() -#define gettmode() - -#define getyx(win,y,x) (y = getcury(win), x = getcurx(win)) -#define getbegyx(win,y,x) (y = getbegy(win), x = getbegx(win)) -#define getmaxyx(win,y,x) (y = getmaxy(win), x = getmaxx(win)) -#define getparyx(win,y,x) (y = getpary(win), x = getparx(win)) - -#define getsyx(y,x) do { if(newscr->_leaveok) (y)=(x)=-1; \ - else getyx(newscr,(y),(x)); \ - } while(0) -#define setsyx(y,x) do { if((y)==-1 && (x)==-1) newscr->_leaveok=TRUE; \ - else {newscr->_leaveok=FALSE;wmove(newscr,(y),(x));} \ - } while(0) - -/* It seems older SYSV curses versions define these */ -#define getattrs(win) ((win)?(win)->_attrs:A_NORMAL) -#define getcurx(win) ((win)?(win)->_curx:ERR) -#define getcury(win) ((win)?(win)->_cury:ERR) -#define getbegx(win) ((win)?(win)->_begx:ERR) -#define getbegy(win) ((win)?(win)->_begy:ERR) -#define getmaxx(win) ((win)?((win)->_maxx + 1):ERR) -#define getmaxy(win) ((win)?((win)->_maxy + 1):ERR) -#define getparx(win) ((win)?(win)->_parx:ERR) -#define getpary(win) ((win)?(win)->_pary:ERR) - -#define wstandout(win) (wattrset(win,A_STANDOUT)) -#define wstandend(win) (wattrset(win,A_NORMAL)) -#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK) - -#define wattron(win,at) wattr_on(win, (attr_t) at, (void *)0) -#define wattroff(win,at) wattr_off(win, (attr_t) at, (void *)0) -#define wattrset(win,at) ((win)->_attrs = (at)) - -#define scroll(win) wscrl(win,1) - -#define touchwin(win) wtouchln((win), 0, getmaxy(win), 1) -#define touchline(win, s, c) wtouchln((win), s, c, 1) -#define untouchwin(win) wtouchln((win), 0, getmaxy(win), 0) - -#define box(win, v, h) wborder(win, v, v, h, h, 0, 0, 0, 0) -#define border(ls, rs, ts, bs, tl, tr, bl, br) wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br) -#define hline(ch, n) whline(stdscr, ch, n) -#define vline(ch, n) wvline(stdscr, ch, n) - -#define winstr(w, s) winnstr(w, s, -1) -#define winchstr(w, s) winchnstr(w, s, -1) -#define winsstr(w, s) winsnstr(w, s, -1) - -#define redrawwin(win) wredrawln(win, 0, (win)->_maxy+1) -#define waddstr(win,str) waddnstr(win,str,-1) -#define waddchstr(win,str) waddchnstr(win,str,-1) - -/* - * pseudo functions for standard screen - */ - -#define addch(ch) waddch(stdscr,ch) -#define addchnstr(str,n) waddchnstr(stdscr,str,n) -#define addchstr(str) waddchstr(stdscr,str) -#define addnstr(str,n) waddnstr(stdscr,str,n) -#define addstr(str) waddnstr(stdscr,str,-1) -#define attroff(at) wattroff(stdscr,at) -#define attron(at) wattron(stdscr,at) -#define attrset(at) wattrset(stdscr,at) -#define attr_get(ap,cp,o) wattr_get(stdscr,ap,cp,o) -#define attr_off(a,o) wattr_off(stdscr,a,o) -#define attr_on(a,o) wattr_on(stdscr,a,o) -#define attr_set(a,c,o) wattr_set(stdscr,a,c,o) -#define bkgd(ch) wbkgd(stdscr,ch) -#define bkgdset(ch) wbkgdset(stdscr,ch) -#define chgat(n,a,c,o) wchgat(stdscr,n,a,c,o) -#define clear() wclear(stdscr) -#define clrtobot() wclrtobot(stdscr) -#define clrtoeol() wclrtoeol(stdscr) -#define color_set(c,o) wcolor_set(stdscr,c,o) -#define delch() wdelch(stdscr) -#define deleteln() winsdelln(stdscr,-1) -#define echochar(c) wechochar(stdscr,c) -#define erase() werase(stdscr) -#define getch() wgetch(stdscr) -#define getstr(str) wgetstr(stdscr,str) -#define inch() winch(stdscr) -#define inchnstr(s,n) winchnstr(stdscr,s,n) -#define inchstr(s) winchstr(stdscr,s) -#define innstr(s,n) winnstr(stdscr,s,n) -#define insch(c) winsch(stdscr,c) -#define insdelln(n) winsdelln(stdscr,n) -#define insertln() winsdelln(stdscr,1) -#define insnstr(s,n) winsnstr(stdscr,s,n) -#define insstr(s) winsstr(stdscr,s) -#define instr(s) winstr(stdscr,s) -#define move(y,x) wmove(stdscr,y,x) -#define refresh() wrefresh(stdscr) -#define scrl(n) wscrl(stdscr,n) -#define setscrreg(t,b) wsetscrreg(stdscr,t,b) -#define standend() wstandend(stdscr) -#define standout() wstandout(stdscr) -#define timeout(delay) wtimeout(stdscr,delay) -#define wdeleteln(win) winsdelln(win,-1) -#define winsertln(win) winsdelln(win,1) - -/* - * mv functions - */ - -#define mvwaddch(win,y,x,ch) (wmove(win,y,x) == ERR ? ERR : waddch(win,ch)) -#define mvwaddchnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n)) -#define mvwaddchstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1)) -#define mvwaddnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n)) -#define mvwaddstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1)) -#define mvwdelch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wdelch(win)) -#define mvwchgat(win,y,x,n,a,c,o) (wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o)) -#define mvwgetch(win,y,x) (wmove(win,y,x) == ERR ? ERR : wgetch(win)) -#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n)) -#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str)) -#define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n)) -#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? (chtype)ERR : winch(win)) -#define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n)) -#define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s)) -#define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n)) -#define mvwinsch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winsch(win,c)) -#define mvwinsnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n)) -#define mvwinsstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winsstr(win,s)) -#define mvwinstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winstr(win,s)) -#define mvwvline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline(win,c,n)) - -#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch) -#define mvaddchnstr(y,x,str,n) mvwaddchnstr(stdscr,y,x,str,n) -#define mvaddchstr(y,x,str) mvwaddchstr(stdscr,y,x,str) -#define mvaddnstr(y,x,str,n) mvwaddnstr(stdscr,y,x,str,n) -#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str) -#define mvchgat(y,x,n,a,c,o) mvwchgat(stdscr,y,x,n,a,c,o) -#define mvdelch(y,x) mvwdelch(stdscr,y,x) -#define mvgetch(y,x) mvwgetch(stdscr,y,x) -#define mvgetnstr(y,x,str,n) mvwgetnstr(stdscr,y,x,str,n) -#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str) -#define mvhline(y,x,c,n) mvwhline(stdscr,y,x,c,n) -#define mvinch(y,x) mvwinch(stdscr,y,x) -#define mvinchnstr(y,x,s,n) mvwinchnstr(stdscr,y,x,s,n) -#define mvinchstr(y,x,s) mvwinchstr(stdscr,y,x,s) -#define mvinnstr(y,x,s,n) mvwinnstr(stdscr,y,x,s,n) -#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c) -#define mvinsnstr(y,x,s,n) mvwinsnstr(stdscr,y,x,s,n) -#define mvinsstr(y,x,s) mvwinsstr(stdscr,y,x,s) -#define mvinstr(y,x,s) mvwinstr(stdscr,y,x,s) -#define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n) - -/* - * Some wide-character functions do not depend on the extensions. - */ -#define getbkgd(win) ((win)->_bkgd) - -#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a)) -#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a)) - -#define wattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), \ - (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \ - OK) - -/* - * XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use - * varargs.h. It adds new calls vw_printw/vw_scanw, which are supposed to - * use POSIX stdarg.h. The ncurses versions of vwprintw/vwscanw already - * use stdarg.h, so... - */ -#define vw_printw vwprintw -#define vw_scanw vwscanw - -/* - * Export fallback function for use in C++ binding. - */ -#if !@HAVE_VSSCANF@ -#define vsscanf(a,b,c) _nc_vsscanf(a,b,c) -NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list); -#endif - -/* - * Pseudo-character tokens outside ASCII range. The curses wgetch() function - * will return any given one of these only if the corresponding k- capability - * is defined in your terminal's terminfo entry. - * - * Some keys (KEY_A1, etc) are arranged like this: - * a1 up a3 - * left b2 right - * c1 down c3 - * - * A few key codes do not depend upon the terminfo entry. - */ -#define KEY_CODE_YES 0400 /* A wchar_t contains a key code */ -#define KEY_MIN 0401 /* Minimum curses key */ -#define KEY_BREAK 0401 /* Break key (unreliable) */ -#define KEY_SRESET 0530 /* Soft (partial) reset (unreliable) */ -#define KEY_RESET 0531 /* Reset or hard reset (unreliable) */ diff --git a/Build/source/libs/ncurses/include/curses.tail b/Build/source/libs/ncurses/include/curses.tail deleted file mode 100644 index 8767b0f0bc8..00000000000 --- a/Build/source/libs/ncurses/include/curses.tail +++ /dev/null @@ -1,137 +0,0 @@ -/* $Id: curses.tail,v 1.9 2004/09/25 20:40:35 tom Exp $ */ - -/* mouse interface */ -#define NCURSES_MOUSE_VERSION 1 - -/* event masks */ -#define BUTTON1_RELEASED 000000000001L -#define BUTTON1_PRESSED 000000000002L -#define BUTTON1_CLICKED 000000000004L -#define BUTTON1_DOUBLE_CLICKED 000000000010L -#define BUTTON1_TRIPLE_CLICKED 000000000020L -#define BUTTON1_RESERVED_EVENT 000000000040L -#define BUTTON2_RELEASED 000000000100L -#define BUTTON2_PRESSED 000000000200L -#define BUTTON2_CLICKED 000000000400L -#define BUTTON2_DOUBLE_CLICKED 000000001000L -#define BUTTON2_TRIPLE_CLICKED 000000002000L -#define BUTTON2_RESERVED_EVENT 000000004000L -#define BUTTON3_RELEASED 000000010000L -#define BUTTON3_PRESSED 000000020000L -#define BUTTON3_CLICKED 000000040000L -#define BUTTON3_DOUBLE_CLICKED 000000100000L -#define BUTTON3_TRIPLE_CLICKED 000000200000L -#define BUTTON3_RESERVED_EVENT 000000400000L -#define BUTTON4_RELEASED 000001000000L -#define BUTTON4_PRESSED 000002000000L -#define BUTTON4_CLICKED 000004000000L -#define BUTTON4_DOUBLE_CLICKED 000010000000L -#define BUTTON4_TRIPLE_CLICKED 000020000000L -#define BUTTON4_RESERVED_EVENT 000040000000L -#define BUTTON_CTRL 000100000000L -#define BUTTON_SHIFT 000200000000L -#define BUTTON_ALT 000400000000L -#define ALL_MOUSE_EVENTS 000777777777L -#define REPORT_MOUSE_POSITION 001000000000L - -/* macros to extract single event-bits from masks */ -#define BUTTON_RELEASE(e, x) ((e) & (001 << (6 * ((x) - 1)))) -#define BUTTON_PRESS(e, x) ((e) & (002 << (6 * ((x) - 1)))) -#define BUTTON_CLICK(e, x) ((e) & (004 << (6 * ((x) - 1)))) -#define BUTTON_DOUBLE_CLICK(e, x) ((e) & (010 << (6 * ((x) - 1)))) -#define BUTTON_TRIPLE_CLICK(e, x) ((e) & (020 << (6 * ((x) - 1)))) -#define BUTTON_RESERVED_EVENT(e, x) ((e) & (040 << (6 * ((x) - 1)))) - -typedef unsigned long mmask_t; - -typedef struct -{ - short id; /* ID to distinguish multiple devices */ - int x, y, z; /* event coordinates (character-cell) */ - mmask_t bstate; /* button state bits */ -} -MEVENT; - -extern NCURSES_EXPORT(int) getmouse (MEVENT *); -extern NCURSES_EXPORT(int) ungetmouse (MEVENT *); -extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *); -extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int); -extern NCURSES_EXPORT(int) mouseinterval (int); -extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW* win,int* y, int* x, bool to_screen); -extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */ - -#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen) - -/* other non-XSI functions */ - -extern NCURSES_EXPORT(int) mcprint (char *, int); /* direct data to printer */ -extern NCURSES_EXPORT(int) has_key (int); /* do we have given key? */ - -/* Debugging : use with libncurses_g.a */ - -extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT(void) _tracedump (const char *, WINDOW *); -extern NCURSES_EXPORT(char *) _traceattr (attr_t); -extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype); -extern NCURSES_EXPORT(char *) _nc_tracebits (void); -extern NCURSES_EXPORT(char *) _tracechar (int); -extern NCURSES_EXPORT(char *) _tracechtype (chtype); -extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype); -#ifdef _XOPEN_SOURCE_EXTENDED -#define _tracech_t _tracecchar_t -extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *); -#define _tracech_t2 _tracecchar_t2 -extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *); -#else -#define _tracech_t _tracechtype -#define _tracech_t2 _tracechtype2 -#endif -extern NCURSES_EXPORT(char *) _tracemouse (const MEVENT *); -extern NCURSES_EXPORT(void) trace (const unsigned int); - -/* trace masks */ -#define TRACE_DISABLE 0x0000 /* turn off tracing */ -#define TRACE_TIMES 0x0001 /* trace user and system times of updates */ -#define TRACE_TPUTS 0x0002 /* trace tputs calls */ -#define TRACE_UPDATE 0x0004 /* trace update actions, old & new screens */ -#define TRACE_MOVE 0x0008 /* trace cursor moves and scrolls */ -#define TRACE_CHARPUT 0x0010 /* trace all character outputs */ -#define TRACE_ORDINARY 0x001F /* trace all update actions */ -#define TRACE_CALLS 0x0020 /* trace all curses calls */ -#define TRACE_VIRTPUT 0x0040 /* trace virtual character puts */ -#define TRACE_IEVENT 0x0080 /* trace low-level input processing */ -#define TRACE_BITS 0x0100 /* trace state of TTY control bits */ -#define TRACE_ICALLS 0x0200 /* trace internal/nested calls */ -#define TRACE_CCALLS 0x0400 /* trace per-character calls */ -#define TRACE_DATABASE 0x0800 /* trace read/write of terminfo/termcap data */ -#define TRACE_ATTRS 0x1000 /* trace attribute updates */ - -#define TRACE_SHIFT 13 /* number of bits in the trace masks */ -#define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) /* maximum trace level */ - -#if defined(TRACE) || defined(NCURSES_TEST) -extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */ -#ifdef _XOPEN_SOURCE_EXTENDED -extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *); -extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *); -#endif -extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *); -#define OPTIMIZE_MVCUR 0x01 /* cursor movement optimization */ -#define OPTIMIZE_HASHMAP 0x02 /* diff hashing to detect scrolls */ -#define OPTIMIZE_SCROLL 0x04 /* scroll optimization */ -#define OPTIMIZE_ALL 0xff /* enable all optimizations (dflt) */ -#endif - -#ifdef __cplusplus - -/* these names conflict with STL */ -#undef box -#undef clear -#undef erase -#undef move -#undef refresh - -} -#endif - -#endif /* __NCURSES_H */ diff --git a/Build/source/libs/ncurses/include/curses.wide b/Build/source/libs/ncurses/include/curses.wide deleted file mode 100644 index a37f3f845d4..00000000000 --- a/Build/source/libs/ncurses/include/curses.wide +++ /dev/null @@ -1,239 +0,0 @@ - -#ifdef _XOPEN_SOURCE_EXTENDED - -/* $Id: curses.wide,v 1.28 2004/01/03 20:35:14 tom Exp $ */ - -extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs; - -#define NCURSES_WACS(c) (&_nc_wacs[(unsigned char)c]) - -#define WACS_BSSB NCURSES_WACS('l') -#define WACS_SSBB NCURSES_WACS('m') -#define WACS_BBSS NCURSES_WACS('k') -#define WACS_SBBS NCURSES_WACS('j') -#define WACS_SBSS NCURSES_WACS('u') -#define WACS_SSSB NCURSES_WACS('t') -#define WACS_SSBS NCURSES_WACS('v') -#define WACS_BSSS NCURSES_WACS('w') -#define WACS_BSBS NCURSES_WACS('q') -#define WACS_SBSB NCURSES_WACS('x') -#define WACS_SSSS NCURSES_WACS('n') - -#define WACS_ULCORNER WACS_BSSB -#define WACS_LLCORNER WACS_SSBB -#define WACS_URCORNER WACS_BBSS -#define WACS_LRCORNER WACS_SBBS -#define WACS_RTEE WACS_SBSS -#define WACS_LTEE WACS_SSSB -#define WACS_BTEE WACS_SSBS -#define WACS_TTEE WACS_BSSS -#define WACS_HLINE WACS_BSBS -#define WACS_VLINE WACS_SBSB -#define WACS_PLUS WACS_SSSS - -#define WACS_S1 NCURSES_WACS('o') /* scan line 1 */ -#define WACS_S9 NCURSES_WACS('s') /* scan line 9 */ -#define WACS_DIAMOND NCURSES_WACS('`') /* diamond */ -#define WACS_CKBOARD NCURSES_WACS('a') /* checker board */ -#define WACS_DEGREE NCURSES_WACS('f') /* degree symbol */ -#define WACS_PLMINUS NCURSES_WACS('g') /* plus/minus */ -#define WACS_BULLET NCURSES_WACS('~') /* bullet */ - - /* Teletype 5410v1 symbols */ -#define WACS_LARROW NCURSES_WACS(',') /* arrow left */ -#define WACS_RARROW NCURSES_WACS('+') /* arrow right */ -#define WACS_DARROW NCURSES_WACS('.') /* arrow down */ -#define WACS_UARROW NCURSES_WACS('-') /* arrow up */ -#define WACS_BOARD NCURSES_WACS('h') /* board of squares */ -#define WACS_LANTERN NCURSES_WACS('i') /* lantern symbol */ -#define WACS_BLOCK NCURSES_WACS('0') /* solid square block */ - - /* ncurses extensions */ -#define WACS_S3 NCURSES_WACS('p') /* scan line 3 */ -#define WACS_S7 NCURSES_WACS('r') /* scan line 7 */ -#define WACS_LEQUAL NCURSES_WACS('y') /* less/equal */ -#define WACS_GEQUAL NCURSES_WACS('z') /* greater/equal */ -#define WACS_PI NCURSES_WACS('{') /* Pi */ -#define WACS_NEQUAL NCURSES_WACS('|') /* not equal */ -#define WACS_STERLING NCURSES_WACS('}') /* UK pound sign */ - -/* - * Function prototypes for wide-character operations. - * - * "generated" comments should include ":WIDEC" to make the corresponding - * functions ifdef'd in lib_gen.c - * - * "implemented" comments do not need this marker. - */ - -extern NCURSES_EXPORT(int) add_wch (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) addwstr (const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) border_set (const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) erasewchar (wchar_t*); /* implemented */ -extern NCURSES_EXPORT(int) get_wch (wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) get_wstr (wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, short*, void*); /* implemented */ -extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) in_wch (cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) in_wchnstr (cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) in_wchstr (cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) innwstr (wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) ins_wch (const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) inwstr (wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(NCURSES_CONST char*) key_name (wchar_t); /* implemented */ -extern NCURSES_EXPORT(int) killwchar (wchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);/* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvin_wch (int, int, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvin_wchstr (int, int, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);/* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);/* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);/* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, cchar_t *,int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, short, const void *); /* implemented */ -extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int); /* implemented */ -extern NCURSES_EXPORT(attr_t) term_attrs (void); /* implemented */ -extern NCURSES_EXPORT(int) unget_wch (const wchar_t); /* implemented */ -extern NCURSES_EXPORT(int) vid_attr (attr_t, short, void *); /* implemented */ -extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, int (*)(int)); /* implemented */ -extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int); /* implemented */ -extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int); /* implemented */ -extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wborder_set (WINDOW *,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* implemented */ -extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *); /* implemented */ -extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *,wint_t *, int); /* implemented */ -extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int); /* implemented */ -extern NCURSES_EXPORT(int) win_wch (WINDOW *, cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, cchar_t *, int); /* implemented */ -extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, cchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int); /* implemented */ -extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int); /* implemented */ -extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *); /* generated:WIDEC */ -extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *); /* implemented */ -extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *); /* implemented */ -extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int); /* implemented */ - -/* - * XSI curses macros for XPG4 conformance. - */ -#define add_wch(c) wadd_wch(stdscr,c) -#define add_wchnstr(str,n) wadd_wchnstr(stdscr,str,n) -#define add_wchstr(str) wadd_wchstr(stdscr,str) -#define addnwstr(wstr,n) waddnwstr(stdscr,wstr,n) -#define addwstr(wstr) waddwstr(stdscr,wstr) -#define bkgrnd(c) wbkgrnd(stdscr,c) -#define bkgrndset(c) wbkgrndset(stdscr,c) -#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br) -#define box_set(w,v,h) wborder_set(w,v,v,h,h,0,0,0,0) -#define echo_wchar(c) wecho_wchar(stdscr,c) -#define get_wch(c) wget_wch(stdscr,c) -#define get_wstr(t) wget_wstr(stdscr,t) -#define getbkgrnd(wch) wgetbkgrnd(stdscr,wch) -#define getn_wstr(t,n) wgetn_wstr(stdscr,t,n) -#define hline_set(c,n) whline_set(stdscr,c,n) -#define in_wch(c) win_wch(stdscr,c) -#define in_wchnstr(c,n) win_wchnstr(stdscr,c,n) -#define in_wchstr(c) win_wchstr(stdscr,c) -#define innwstr(c,n) winnwstr(stdscr,c,n) -#define ins_nwstr(t,n) wins_nwstr(stdscr,t,n) -#define ins_wch(c) wins_wch(stdscr,c) -#define ins_wstr(t) wins_wstr(stdscr,t) -#define inwstr(c) winwstr(stdscr,c) -#define vid_attr(a,pair,opts) vidattr(a) -#define vline_set(c,n) wvline_set(stdscr,c,n) -#define wadd_wchstr(win,str) wadd_wchnstr(win,str,-1) -#define waddwstr(win,wstr) waddnwstr(win,wstr,-1) -#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK) -#define wget_wstr(w,t) wgetn_wstr(w,t,-1) -#define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK) -#define win_wchstr(w,c) win_wchnstr(w,c,-1) -#define wins_wstr(w,t) wins_nwstr(w,t,-1) - -#define mvadd_wch(y,x,c) mvwadd_wch(stdscr,y,x,c) -#define mvadd_wchnstr(y,x,s,n) mvwadd_wchnstr(stdscr,y,x,s,n) -#define mvadd_wchstr(y,x,s) mvwadd_wchstr(stdscr,y,x,s) -#define mvaddnwstr(y,x,wstr,n) mvwaddnwstr(stdscr,y,x,wstr,n) -#define mvaddwstr(y,x,wstr) mvwaddwstr(stdscr,y,x,wstr) -#define mvget_wch(y,x,c) mvwget_wch(stdscr,y,x,c) -#define mvget_wstr(y,x,t) mvwget_wstr(stdscr,y,x,t) -#define mvgetn_wstr(y,x,t,n) mvwgetn_wstr(stdscr,y,x,t,n) -#define mvhline_set(y,x,c,n) mvwhline_set(stdscr,y,x,c,n) -#define mvin_wch(y,x,c) mvwin_wch(stdscr,y,x,c) -#define mvin_wchnstr(y,x,c,n) mvwin_wchnstr(stdscr,y,x,c,n) -#define mvin_wchstr(y,x,c) mvwin_wchstr(stdscr,y,x,c) -#define mvinnwstr(y,x,c,n) mvwinnwstr(stdscr,y,x,c,n) -#define mvins_nwstr(y,x,t,n) mvwins_nwstr(stdscr,y,x,t,n) -#define mvins_wch(y,x,c) mvwins_wch(stdscr,y,x,c) -#define mvins_wstr(y,x,t) mvwins_wstr(stdscr,y,x,t) -#define mvinwstr(y,x,c) mvwinwstr(stdscr,y,x,c) -#define mvvline_set(y,x,c,n) mvwvline_set(stdscr,y,x,c,n) - -#define mvwadd_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c)) -#define mvwadd_wchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n)) -#define mvwadd_wchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s)) -#define mvwaddnwstr(win,y,x,wstr,n) (wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n)) -#define mvwaddwstr(win,y,x,wstr) (wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr)) -#define mvwget_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wget_wch(win,c)) -#define mvwget_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t)) -#define mvwgetn_wstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n)) -#define mvwhline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n)) -#define mvwin_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wch(win,c)) -#define mvwin_wchnstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n)) -#define mvwin_wchstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c)) -#define mvwinnwstr(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n)) -#define mvwins_nwstr(win,y,x,t,n) (wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n)) -#define mvwins_wch(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : wins_wch(win,c)) -#define mvwins_wstr(win,y,x,t) (wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t)) -#define mvwinwstr(win,y,x,c) (wmove(win,y,x) == ERR ? ERR : winwstr(win,c)) -#define mvwvline_set(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n)) - -#endif /* _XOPEN_SOURCE_EXTENDED */ diff --git a/Build/source/libs/ncurses/include/edit_cfg.sh b/Build/source/libs/ncurses/include/edit_cfg.sh deleted file mode 100755 index 8d64fee1801..00000000000 --- a/Build/source/libs/ncurses/include/edit_cfg.sh +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -# $Id: edit_cfg.sh,v 1.12 2001/12/23 00:52:40 tom Exp $ -############################################################################## -# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996,1997,2000 -# -# Edit the default value of the term.h file based on the autoconf-generated -# values: -# -# $1 = ncurses_cfg.h -# $2 = term.h -# -BAK=save$$ -TMP=edit$$ -trap "rm -f $BAK $TMP" 0 1 2 5 15 -for name in \ - HAVE_TCGETATTR \ - HAVE_TERMIOS_H \ - HAVE_TERMIO_H \ - BROKEN_LINKER -do - mv $2 $BAK - if ( grep "[ ]$name[ ]" $1 2>&1 >$TMP ) - then - value=1 - else - value=0 - fi - echo '** edit: '$name $value - sed \ - -e "s@#define ${name}.*\$@#define $name $value@" \ - -e "s@#if $name\$@#if $value /* $name */@" \ - -e "s@#if !$name\$@#if $value /* !$name */@" \ - $BAK >$2 - if (cmp -s $2 $BAK) - then - mv $BAK $2 - else - rm -f $BAK - fi -done diff --git a/Build/source/libs/ncurses/include/headers b/Build/source/libs/ncurses/include/headers deleted file mode 100644 index da3738db1e2..00000000000 --- a/Build/source/libs/ncurses/include/headers +++ /dev/null @@ -1,35 +0,0 @@ -############################################################################## -# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996 -# -term.h -curses.h -unctrl.h -termcap.h -$(srcdir)/ncurses_dll.h diff --git a/Build/source/libs/ncurses/include/nc_alloc.h b/Build/source/libs/ncurses/include/nc_alloc.h deleted file mode 100644 index 95efa38fe09..00000000000 --- a/Build/source/libs/ncurses/include/nc_alloc.h +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1996,1997 * - ****************************************************************************/ -/* $Id: nc_alloc.h,v 1.12 2004/05/08 18:44:57 tom Exp $ */ - -#ifndef NC_ALLOC_included -#define NC_ALLOC_included 1 - -#ifdef __cplusplus -extern "C" { -#endif - -#if HAVE_LIBDMALLOC -#include /* Gray Watson's library */ -#else -#undef HAVE_LIBDMALLOC -#define HAVE_LIBDMALLOC 0 -#endif - -#if HAVE_LIBDBMALLOC -#include /* Conor Cahill's library */ -#else -#undef HAVE_LIBDBMALLOC -#define HAVE_LIBDBMALLOC 0 -#endif - -#ifndef NO_LEAKS -#define NO_LEAKS 0 -#endif - -#if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS -#define HAVE_NC_FREEALL 1 -struct termtype; -extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN; -extern NCURSES_EXPORT(void) _nc_free_tparm(void); -extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void); -#define ExitProgram(code) _nc_free_and_exit(code) -#endif - -#ifndef HAVE_NC_FREEALL -#define HAVE_NC_FREEALL 0 -#endif - -#ifndef ExitProgram -#define ExitProgram(code) exit(code) -#endif - -/* doalloc.c */ -extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t); -#if !HAVE_STRDUP -#define strdup _nc_strdup -extern NCURSES_EXPORT(char *) _nc_strdup(const char *); -#endif - -#define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type)) -#define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type)) -#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type)) - -#ifdef __cplusplus -} -#endif - -#endif /* NC_ALLOC_included */ diff --git a/Build/source/libs/ncurses/include/nc_panel.h b/Build/source/libs/ncurses/include/nc_panel.h deleted file mode 100644 index bb1f6745ac0..00000000000 --- a/Build/source/libs/ncurses/include/nc_panel.h +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - - -/* - * $Id: nc_panel.h,v 1.3 2000/12/10 02:04:35 tom Exp $ - * - * nc_panel.h - * - * Headerfile to provide an interface for the panel layer into - * the SCREEN structure of the ncurses core. - */ - -#ifndef NC_PANEL_H -#define NC_PANEL_H 1 - -#ifdef __cplusplus -extern "C" { -#endif - -struct panel; /* Forward Declaration */ - -struct panelhook { - struct panel* top_panel; - struct panel* bottom_panel; - struct panel* stdscr_pseudo_panel; -}; - -/* Retrieve the panelhook of the current screen */ -extern NCURSES_EXPORT(struct panelhook*) _nc_panelhook (void); - -#ifdef __cplusplus -} -#endif - -#endif /* NC_PANEL_H */ diff --git a/Build/source/libs/ncurses/include/ncurses_cfg.hin b/Build/source/libs/ncurses/include/ncurses_cfg.hin deleted file mode 100644 index 14391bad91b..00000000000 --- a/Build/source/libs/ncurses/include/ncurses_cfg.hin +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ -/* - * $Id: ncurses_cfg.hin,v 1.4 2002/09/07 16:55:14 tom Exp $ - * - * This is a template-file used to generate the "ncurses_cfg.h" file. - * - * Rather than list every definition, the configuration script substitutes the - * definitions that it finds using 'sed'. You need a patch (original date - * 971222) to autoconf 2.12 or 2.13 to do this. - * - * See: - * http://invisible-island.net/autoconf/ - * ftp://invisible-island.net/autoconf/ - */ -#ifndef NC_CONFIG_H -#define NC_CONFIG_H -@DEFS@ - -#include - - /* The C compiler may not treat these properly but C++ has to */ -#ifdef __cplusplus -#undef const -#undef inline -#else -#if defined(lint) || defined(TRACE) -#undef inline -#define inline /* nothing */ -#endif -#endif - -#endif /* NC_CONFIG_H */ diff --git a/Build/source/libs/ncurses/include/ncurses_defs b/Build/source/libs/ncurses/include/ncurses_defs deleted file mode 100644 index 73cc026a78a..00000000000 --- a/Build/source/libs/ncurses/include/ncurses_defs +++ /dev/null @@ -1,180 +0,0 @@ -# $Id: ncurses_defs,v 1.25 2004/10/09 18:18:46 tom Exp $ -############################################################################## -# Copyright (c) 2000-2003,2004 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# See "MKncurses_def.sh" for an explanation. -# -# (hint: don't try to define NDEBUG ;-) - -BROKEN_LINKER -BSD_TPUTS -CC_HAS_INLINE_FUNCS -CC_HAS_PROTOS -CPP_HAS_PARAM_INIT -CPP_HAS_VSCAN_FUNC -CURSES_ACS_ARRAY acs_map -CURSES_WACS_ARRAY _nc_wacs -DECL_ERRNO -ETIP_NEEDS_MATH_H -GCC_NORETURN /* nothing */ -GCC_UNUSED /* nothing */ -HAVE_BIG_CORE -HAVE_BSD_CGETENT -HAVE_BSD_SIGNAL_H -HAVE_BTOWC -HAVE_BUILTIN_H -HAVE_DIRENT_H -HAVE_ERRNO -HAVE_FCNTL_H -HAVE_FORM_H -HAVE_GETCWD -HAVE_GETEGID -HAVE_GETEUID -HAVE_GETNSTR -HAVE_GETOPT_H -HAVE_GETTIMEOFDAY -HAVE_GETTTYNAM -HAVE_GPM_H -HAVE_GPP_BUILTIN_H -HAVE_GXX_BUILTIN_H -HAVE_HAS_KEY -HAVE_ISASCII -HAVE_ISSETUGID -HAVE_LANGINFO_CODESET -HAVE_LIBC_H -HAVE_LIBDBMALLOC -HAVE_LIBDMALLOC -HAVE_LIBFORM -HAVE_LIBGPM -HAVE_LIBMENU -HAVE_LIBPANEL -HAVE_LIMITS_H -HAVE_LINK -HAVE_LOCALE_H -HAVE_LONG_FILE_NAMES -HAVE_MBLEN -HAVE_MBRLEN -HAVE_MBRTOWC -HAVE_MBTOWC -HAVE_MENU_H -HAVE_MKSTEMP -HAVE_NANOSLEEP -HAVE_NC_ALLOC_H -HAVE_PANEL_H -HAVE_POLL -HAVE_POLL_H -HAVE_PURIFY -HAVE_PUTWC -HAVE_REGEXPR_H_FUNCS -HAVE_REGEXP_H_FUNCS -HAVE_REGEX_H_FUNCS -HAVE_REMOVE -HAVE_RESIZETERM -HAVE_SELECT -HAVE_SETBUF -HAVE_SETBUFFER -HAVE_SETVBUF -HAVE_SIGACTION -HAVE_SIGVEC -HAVE_SIZECHANGE -HAVE_SLK_COLOR -HAVE_STRDUP -HAVE_STRSTR -HAVE_SYMLINK -HAVE_SYS_BSDTYPES_H -HAVE_SYS_IOCTL_H -HAVE_SYS_PARAM_H -HAVE_SYS_POLL_H -HAVE_SYS_SELECT_H -HAVE_SYS_TERMIO_H -HAVE_SYS_TIMES_H -HAVE_SYS_TIME_H -HAVE_SYS_TIME_SELECT -HAVE_TCGETATTR -HAVE_TCGETPGRP -HAVE_TELL -HAVE_TERMIOS_H -HAVE_TERMIO_H -HAVE_TIMES -HAVE_TTYENT_H -HAVE_TYPEINFO -HAVE_TYPE_ATTR_T -HAVE_TYPE_SIGACTION -HAVE_UNISTD_H -HAVE_UNLINK -HAVE_USE_DEFAULT_COLORS -HAVE_VFSCANF -HAVE_VSNPRINTF -HAVE_VSSCANF -HAVE_WCTOB -HAVE_WCTOMB -HAVE_WCTYPE_H -HAVE_WORKING_POLL -HAVE_WRESIZE -HAVE__DOSCAN -MIXEDCASE_FILENAMES -NCURSES_EXPANDED -NCURSES_EXT_FUNCS -NCURSES_NOMACROS -NCURSES_NO_PADDING -NCURSES_PATHSEP ':' -NDEBUG -NEED_PTEM_H -NO_LEAKS -PURE_TERMINFO -RETSIGTYPE -STDC_HEADERS -SVR4_ACTION -SVR4_TERMIO -SYSTEM_NAME "unknown" -TERMINFO "none" -TERMPATH "none" -TIME_WITH_SYS_TIME -TYPEOF_CHTYPE -USE_COLORFGBG -USE_DATABASE -USE_GETCAP -USE_GETCAP_CACHE -USE_HARD_TABS -USE_HASHMAP -USE_HOME_TERMINFO -USE_LINKS -USE_MY_MEMMOVE -USE_OK_BCOPY -USE_RCS_IDS -USE_SAFE_SPRINTF -USE_SCROLL_HINTS -USE_SIGWINCH -USE_STDIO_VSCAN -USE_STRSTREAM_VSCAN -USE_STRSTREAM_VSCAN_CAST -USE_SYMLINKS -USE_SYSMOUSE -USE_TERMCAP -USE_WIDEC_SUPPORT -USE_XMC_SUPPORT diff --git a/Build/source/libs/ncurses/include/ncurses_dll.h b/Build/source/libs/ncurses/include/ncurses_dll.h deleted file mode 100644 index de46c60508e..00000000000 --- a/Build/source/libs/ncurses/include/ncurses_dll.h +++ /dev/null @@ -1,52 +0,0 @@ -/* $Id: ncurses_dll.h,v 1.4 2003/07/19 18:44:32 Charles.Wilson Exp $ */ - -#ifndef NCURSES_DLL_H_incl -#define NCURSES_DLL_H_incl 1 - -/* no longer needed on cygwin or mingw, thanks to auto-import */ -/* but this structure may be useful at some point for an MSVC build */ -/* so, for now unconditionally define the important flags */ -/* "the right way" for proper static and dll+auto-import behavior */ -#undef NCURSES_DLL -#define NCURSES_STATIC - -#if defined(__CYGWIN__) -# if defined(NCURSES_DLL) -# if defined(NCURSES_STATIC) -# undef NCURSES_STATIC -# endif -# endif -# undef NCURSES_IMPEXP -# undef NCURSES_API -# undef NCURSES_EXPORT -# undef NCURSES_EXPORT_VAR -# if defined(NCURSES_DLL) -/* building a DLL */ -# define NCURSES_IMPEXP __declspec(dllexport) -# elif defined(NCURSES_STATIC) -/* building or linking to a static library */ -# define NCURSES_IMPEXP /* nothing */ -# else -/* linking to the DLL */ -# define NCURSES_IMPEXP __declspec(dllimport) -# endif -# define NCURSES_API __cdecl -# define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API -# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type -#endif - -/* Take care of non-cygwin platforms */ -#if !defined(NCURSES_IMPEXP) -# define NCURSES_IMPEXP /* nothing */ -#endif -#if !defined(NCURSES_API) -# define NCURSES_API /* nothing */ -#endif -#if !defined(NCURSES_EXPORT) -# define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API -#endif -#if !defined(NCURSES_EXPORT_VAR) -# define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type -#endif - -#endif /* NCURSES_DLL_H_incl */ diff --git a/Build/source/libs/ncurses/include/term_entry.h b/Build/source/libs/ncurses/include/term_entry.h deleted file mode 100644 index c83ac7455ba..00000000000 --- a/Build/source/libs/ncurses/include/term_entry.h +++ /dev/null @@ -1,165 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1998-2004 * - ****************************************************************************/ - -/* $Id: term_entry.h,v 1.33 2004/07/05 11:51:16 tom Exp $ */ - -/* - * term_entry.h -- interface to entry-manipulation code - */ - -#ifndef NCURSES_TERM_ENTRY_H_incl -#define NCURSES_TERM_ENTRY_H_incl 1 - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#define MAX_USES 32 -#define MAX_CROSSLINKS 16 - -typedef struct entry { - TERMTYPE tterm; - int nuses; - struct - { - char *name; - struct entry *link; - long line; - } - uses[MAX_USES]; - int ncrosslinks; - struct entry *crosslinks[MAX_CROSSLINKS]; - long cstart, cend; - long startline; - struct entry *next; - struct entry *last; -} -ENTRY; - -#if NCURSES_XNAMES -#define NUM_BOOLEANS(tp) (tp)->num_Booleans -#define NUM_NUMBERS(tp) (tp)->num_Numbers -#define NUM_STRINGS(tp) (tp)->num_Strings -#define EXT_NAMES(tp,i,limit,index,table) (i >= limit) ? tp->ext_Names[index] : table[i] -#else -#define NUM_BOOLEANS(tp) BOOLCOUNT -#define NUM_NUMBERS(tp) NUMCOUNT -#define NUM_STRINGS(tp) STRCOUNT -#define EXT_NAMES(tp,i,limit,index,table) table[i] -#endif - -#define NUM_EXT_NAMES(tp) ((tp)->ext_Booleans + (tp)->ext_Numbers + (tp)->ext_Strings) - -#define for_each_boolean(n,tp) for(n = 0; n < NUM_BOOLEANS(tp); n++) -#define for_each_number(n,tp) for(n = 0; n < NUM_NUMBERS(tp); n++) -#define for_each_string(n,tp) for(n = 0; n < NUM_STRINGS(tp); n++) - -#define ExtBoolname(tp,i,names) EXT_NAMES(tp, i, BOOLCOUNT, (i - (tp->num_Booleans - tp->ext_Booleans)), names) -#define ExtNumname(tp,i,names) EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names) -#define ExtStrname(tp,i,names) EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names) - -extern NCURSES_EXPORT_VAR(ENTRY *) _nc_head; -extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail; -#define for_entry_list(qp) for (qp = _nc_head; qp; qp = qp->next) - -#define MAX_LINE 132 - -#define NULLHOOK (bool(*)(ENTRY *))0 - -/* - * Note that WANTED and PRESENT are not simple inverses! If a capability - * has been explicitly cancelled, it's not considered WANTED. - */ -#define WANTED(s) ((s) == ABSENT_STRING) -#define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING)) - -#define ANDMISSING(p,q) \ - {if (PRESENT(p) && !PRESENT(q)) _nc_warning(#p " but no " #q);} - -#define PAIRED(p,q) \ - { \ - if (PRESENT(q) && !PRESENT(p)) \ - _nc_warning(#q " but no " #p); \ - if (PRESENT(p) && !PRESENT(q)) \ - _nc_warning(#p " but no " #q); \ - } - -/* alloc_entry.c: elementary allocation code */ -extern NCURSES_EXPORT(ENTRY *) _nc_copy_entry (ENTRY *oldp); -extern NCURSES_EXPORT(char *) _nc_save_str (const char *const); -extern NCURSES_EXPORT(void) _nc_init_entry (TERMTYPE *const); -extern NCURSES_EXPORT(void) _nc_merge_entry (TERMTYPE *const, TERMTYPE *const); -extern NCURSES_EXPORT(void) _nc_wrap_entry (ENTRY *const, bool); - -/* alloc_ttype.c: elementary allocation code */ -extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE *, TERMTYPE *); -extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, TERMTYPE *); - -/* free_ttype.c: elementary allocation code */ -extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *); - -/* lib_acs.c */ -extern NCURSES_EXPORT(void) _nc_init_acs (void); /* corresponds to traditional 'init_acs()' */ - -/* parse_entry.c: entry-parsing code */ -#if NCURSES_XNAMES -extern NCURSES_EXPORT_VAR(bool) _nc_user_definable; -extern NCURSES_EXPORT_VAR(bool) _nc_disable_period; -#endif -extern NCURSES_EXPORT(int) _nc_parse_entry (ENTRY *, int, bool); -extern NCURSES_EXPORT(int) _nc_capcmp (const char *, const char *); - -/* write_entry.c: writing an entry to the file system */ -extern NCURSES_EXPORT(void) _nc_set_writedir (char *); -extern NCURSES_EXPORT(void) _nc_write_entry (TERMTYPE *const); - -/* comp_parse.c: entry list handling */ -extern NCURSES_EXPORT(void) _nc_read_entry_source (FILE*, char*, int, bool, bool (*)(ENTRY*)); -extern NCURSES_EXPORT(bool) _nc_entry_match (char *, char *); -extern NCURSES_EXPORT(int) _nc_resolve_uses (bool); /* obs 20040705 */ -extern NCURSES_EXPORT(int) _nc_resolve_uses2 (bool, bool); -extern NCURSES_EXPORT(void) _nc_free_entries (ENTRY *); -extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */ -extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype2)(TERMTYPE *, bool); - -/* trace_xnames.c */ -extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *); - -#ifdef __cplusplus -} -#endif - -#endif /* NCURSES_TERM_ENTRY_H_incl */ diff --git a/Build/source/libs/ncurses/include/termcap.h.in b/Build/source/libs/ncurses/include/termcap.h.in deleted file mode 100644 index 6adc3122206..00000000000 --- a/Build/source/libs/ncurses/include/termcap.h.in +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* $Id: termcap.h.in,v 1.16 2001/03/24 21:53:27 tom Exp $ */ - -#ifndef NCURSES_TERMCAP_H_incl -#define NCURSES_TERMCAP_H_incl 1 - -#undef NCURSES_VERSION -#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@" - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include - -#undef NCURSES_CONST -#define NCURSES_CONST @NCURSES_CONST@ - -#undef NCURSES_OSPEED -#define NCURSES_OSPEED @NCURSES_OSPEED@ - -extern NCURSES_EXPORT_VAR(char) PC; -extern NCURSES_EXPORT_VAR(char *) UP; -extern NCURSES_EXPORT_VAR(char *) BC; -extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed; - -#if !defined(NCURSES_TERM_H_incl) -extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **); -extern NCURSES_EXPORT(char *) tgoto (const char *, int, int); -extern NCURSES_EXPORT(int) tgetent (char *, const char *); -extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *); -extern NCURSES_EXPORT(int) tgetnum (NCURSES_CONST char *); -extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int)); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* NCURSES_TERMCAP_H_incl */ diff --git a/Build/source/libs/ncurses/include/tic.h b/Build/source/libs/ncurses/include/tic.h deleted file mode 100644 index 7765c5aa3e3..00000000000 --- a/Build/source/libs/ncurses/include/tic.h +++ /dev/null @@ -1,311 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996 on * - ****************************************************************************/ - -/* - * $Id: tic.h,v 1.49 2004/04/03 20:22:58 tom Exp $ - * tic.h - Global variables and structures for the terminfo - * compiler. - */ - -#ifndef __TIC_H -#define __TIC_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include /* for the _tracef() prototype, ERR/OK, bool defs */ - -/* -** The format of compiled terminfo files is as follows: -** -** Header (12 bytes), containing information given below -** Names Section, containing the names of the terminal -** Boolean Section, containing the values of all of the -** boolean capabilities -** A null byte may be inserted here to make -** sure that the Number Section begins on an -** even word boundary. -** Number Section, containing the values of all of the numeric -** capabilities, each as a short integer -** String Section, containing short integer offsets into the -** String Table, one per string capability -** String Table, containing the actual characters of the string -** capabilities. -** -** NOTE that all short integers in the file are stored using VAX/PDP-style -** byte-order, i.e., least-significant byte first. -** -** There is no structure definition here because it would only confuse -** matters. Terminfo format is a raw byte layout, not a structure -** dump. If you happen to be on a little-endian machine with 16-bit -** shorts that requires no padding between short members in a struct, -** then there is a natural C structure that captures the header, but -** not very helpfully. -*/ - -#define MAGIC 0432 /* first two bytes of a compiled entry */ - -/* - * The "maximum" here is misleading; XSI guarantees minimum values, which a - * given implementation may exceed. - */ -#define MAX_NAME_SIZE 512 /* maximum legal name field size (XSI:127) */ -#define MAX_ENTRY_SIZE 4096 /* maximum legal entry size */ - -/* - * The maximum size of individual name or alias is guaranteed in XSI to be at - * least 14, since that corresponds to the older filename lengths. Newer - * systems allow longer aliases, though not many terminal descriptions are - * written to use them. The MAX_ALIAS symbol is used for warnings. - */ -#if HAVE_LONG_FILE_NAMES -#define MAX_ALIAS 32 /* smaller than POSIX minimum for PATH_MAX */ -#else -#define MAX_ALIAS 14 /* SVr3 filename length */ -#endif - -/* location of user's personal info directory */ -#define PRIVATE_INFO "%s/.terminfo" /* plug getenv("HOME") into %s */ - -/* - * Some traces are designed to be used via tic's verbose option (and similar in - * infocmp and toe) rather than the 'trace()' function. So we use the bits - * above the normal trace() parameter as a debug-level. - */ - -#define MAX_DEBUG_LEVEL 15 -#define DEBUG_LEVEL(n) ((n) << TRACE_SHIFT) - -#define set_trace_level(n) \ - _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL), \ - _nc_tracing |= DEBUG_LEVEL(n) - -#ifdef TRACE -#define DEBUG(n, a) if (_nc_tracing >= DEBUG_LEVEL(n)) _tracef a -#else -#define DEBUG(n, a) /*nothing*/ -#endif - -extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing; -extern NCURSES_EXPORT(void) _nc_tracef (char *, ...) GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *); -extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *); - -/* - * These are the types of tokens returned by the scanner. The first - * three are also used in the hash table of capability names. The scanner - * returns one of these values after loading the specifics into the global - * structure curr_token. - */ - -#define BOOLEAN 0 /* Boolean capability */ -#define NUMBER 1 /* Numeric capability */ -#define STRING 2 /* String-valued capability */ -#define CANCEL 3 /* Capability to be cancelled in following tc's */ -#define NAMES 4 /* The names for a terminal type */ -#define UNDEF 5 /* Undefined */ - -#define NO_PUSHBACK -1 /* used in pushtype to indicate no pushback */ - - /* - * The global structure in which the specific parts of a - * scanned token are returned. - * - */ - -struct token -{ - char *tk_name; /* name of capability */ - int tk_valnumber; /* value of capability (if a number) */ - char *tk_valstring; /* value of capability (if a string) */ -}; - -extern NCURSES_EXPORT_VAR(struct token) _nc_curr_token; - - /* - * List of keynames with their corresponding code. - */ -struct kn { - const char *name; - int code; -}; - -extern NCURSES_EXPORT_VAR(const struct kn) _nc_key_names[]; - - /* - * Offsets to string capabilities, with the corresponding functionkey - * codes. - */ -struct tinfo_fkeys { - unsigned offset; - chtype code; - }; - -#if BROKEN_LINKER - -#define _nc_tinfo_fkeys _nc_tinfo_fkeysf() -extern NCURSES_EXPORT(struct tinfo_fkeys *) _nc_tinfo_fkeysf (void); - -#else - -extern NCURSES_EXPORT_VAR(struct tinfo_fkeys) _nc_tinfo_fkeys[]; - -#endif - - /* - * The file comp_captab.c contains an array of these structures, one - * per possible capability. These are indexed by a hash table array of - * pointers to the same structures for use by the parser. - */ - -struct name_table_entry -{ - const char *nte_name; /* name to hash on */ - int nte_type; /* BOOLEAN, NUMBER or STRING */ - short nte_index; /* index of associated variable in its array */ - short nte_link; /* index in table of next hash, or -1 */ -}; - -struct alias -{ - const char *from; - const char *to; - const char *source; -}; - -extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_info_hash_table[]; -extern NCURSES_EXPORT_VAR(const struct name_table_entry * const) _nc_cap_hash_table[]; - -extern NCURSES_EXPORT_VAR(const struct alias) _nc_capalias_table[]; -extern NCURSES_EXPORT_VAR(const struct alias) _nc_infoalias_table[]; - -extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool); -extern NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool); - -#define NOTFOUND ((struct name_table_entry *) 0) - -/* out-of-band values for representing absent capabilities */ -#define ABSENT_BOOLEAN ((signed char)-1) /* 255 */ -#define ABSENT_NUMERIC (-1) -#define ABSENT_STRING (char *)0 - -/* out-of-band values for representing cancels */ -#define CANCELLED_BOOLEAN ((signed char)-2) /* 254 */ -#define CANCELLED_NUMERIC (-2) -#define CANCELLED_STRING (char *)(-1) - -#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */ -#define VALID_NUMERIC(s) ((s) >= 0) -#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING) - -/* termcap entries longer than this may break old binaries */ -#define MAX_TERMCAP_LENGTH 1023 - -/* this is a documented limitation of terminfo */ -#define MAX_TERMINFO_LENGTH 4096 - -#ifndef TERMINFO -#define TERMINFO "/usr/share/terminfo" -#endif - -/* access.c */ -extern NCURSES_EXPORT(unsigned) _nc_pathlast (const char *); -extern NCURSES_EXPORT(char *) _nc_basename (char *); -extern NCURSES_EXPORT(char *) _nc_rootname (char *); - -/* comp_hash.c: name lookup */ -extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry - (const char *, const struct name_table_entry *const *); -extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_type_entry - (const char *, int, const struct name_table_entry *); - -/* comp_scan.c: lexical analysis */ -extern NCURSES_EXPORT(int) _nc_get_token (bool); -extern NCURSES_EXPORT(void) _nc_panic_mode (char); -extern NCURSES_EXPORT(void) _nc_push_token (int); -extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *); -extern NCURSES_EXPORT_VAR(int) _nc_curr_col; -extern NCURSES_EXPORT_VAR(int) _nc_curr_line; -extern NCURSES_EXPORT_VAR(int) _nc_syntax; -extern NCURSES_EXPORT_VAR(long) _nc_comment_end; -extern NCURSES_EXPORT_VAR(long) _nc_comment_start; -extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos; -extern NCURSES_EXPORT_VAR(long) _nc_start_line; -#define SYN_TERMINFO 0 -#define SYN_TERMCAP 1 - -/* comp_error.c: warning & abort messages */ -extern NCURSES_EXPORT(void) _nc_set_source (const char *const name); -extern NCURSES_EXPORT(void) _nc_get_type (char *name); -extern NCURSES_EXPORT(void) _nc_set_type (const char *const name); -extern NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN; -extern NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN; -extern NCURSES_EXPORT(void) _nc_warning (const char *const,...) GCC_PRINTFLIKE(1,2); -extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings; - -/* comp_expand.c: expand string into readable form */ -extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int); - -/* comp_scan.c: decode string from readable form */ -extern NCURSES_EXPORT(int) _nc_trans_string (char *, char *); - -/* captoinfo.c: capability conversion */ -extern NCURSES_EXPORT(char *) _nc_captoinfo (const char *, const char *, int const); -extern NCURSES_EXPORT(char *) _nc_infotocap (const char *, const char *, int const); - -/* lib_tparm.c */ -#define NUM_PARM 9 - -extern NCURSES_EXPORT_VAR(int) _nc_tparm_err; - -extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *string, char *p_is_s[NUM_PARM], int *popcount); - -/* lib_tputs.c */ -extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent; /* Add one for every null sent */ - -/* comp_main.c: compiler main */ -extern const char * _nc_progname; - -/* read_entry.c */ -extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *); - -/* write_entry.c */ -extern NCURSES_EXPORT(int) _nc_tic_written (void); - -#ifdef __cplusplus -} -#endif - -#endif /* __TIC_H */ diff --git a/Build/source/libs/ncurses/include/unctrl.h.in b/Build/source/libs/ncurses/include/unctrl.h.in deleted file mode 100644 index 70d74b7714b..00000000000 --- a/Build/source/libs/ncurses/include/unctrl.h.in +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * unctrl.h - * - * Display a printable version of a control character. - * Control characters are displayed in caret notation (^x), DELETE is displayed - * as ^?. Printable characters are displayed as is. - */ - -/* $Id: unctrl.h.in,v 1.10 2001/03/24 21:53:25 tom Exp $ */ - -#ifndef NCURSES_UNCTRL_H_incl -#define NCURSES_UNCTRL_H_incl 1 - -#undef NCURSES_VERSION -#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@" - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#undef unctrl -NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype); - -#ifdef __cplusplus -} -#endif - -#endif /* NCURSES_UNCTRL_H_incl */ diff --git a/Build/source/libs/ncurses/install-sh b/Build/source/libs/ncurses/install-sh deleted file mode 100755 index a5897de6ea7..00000000000 --- a/Build/source/libs/ncurses/install-sh +++ /dev/null @@ -1,519 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2006-12-25.00 - -# 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. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -no_target_directory= - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) dst_arg=$2 - shift;; - - -T) no_target_directory=true;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - done -fi - -if test $# -eq 0; 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 - -if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $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 "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dst_arg - # 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 - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - -*) prefix='./';; - *) prefix='';; - esac - - eval "$initialize_posix_glob" - - oIFS=$IFS - IFS=/ - $posix_glob set -f - set fnord $dstdir - shift - $posix_glob set +f - IFS=$oIFS - - prefixes= - - for d - do - test -z "$d" && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # 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 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$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 $cpprog $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 $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # 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. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# 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/Build/source/libs/ncurses/man/MKterminfo.sh b/Build/source/libs/ncurses/man/MKterminfo.sh deleted file mode 100755 index 3a996095656..00000000000 --- a/Build/source/libs/ncurses/man/MKterminfo.sh +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/sh -# $Id: MKterminfo.sh,v 1.12 2003/01/11 21:42:12 tom Exp $ -# -# MKterminfo.sh -- generate terminfo.5 from Caps tabular data -# -#*************************************************************************** -# Copyright (c) 1998,2002,2003 Free Software Foundation, Inc. * -# * -# 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, distribute with modifications, 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 ABOVE 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. * -# * -# Except as contained in this notice, the name(s) of the above copyright * -# holders shall not be used in advertising or otherwise to promote the * -# sale, use or other dealings in this Software without prior written * -# authorization. * -#*************************************************************************** -# -# This script takes terminfo.head and terminfo.tail and splices in between -# them a table derived from the Caps data file. Besides avoiding having -# the docs fall out of sync with the table, this also lets us set up tbl -# commands for better formatting of the table. -# -# NOTE: The s in this script really are control characters. It translates -#  to \n because I couldn't get used to inserting linefeeds directly. There -# had better be no s in the table source text. -# -# keep the order independent of locale: -if test "${LANGUAGE+set}" = set; then LANGUAGE=C; export LANGUAGE; fi -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi -if test "${LC_COLLATE+set}" = set; then LC_COLLATE=C; export LC_COLLATE; fi - -# -head=$1 -caps=$2 -tail=$3 -cat <<'EOF' -'\" t -.\" DO NOT EDIT THIS FILE BY HAND! -.\" It is generated from terminfo.head, Caps, and terminfo.tail. -.\" -.\" Note: this must be run through tbl before nroff. -.\" The magic cookie on the first line triggers this under some man programs. -EOF -cat $head - -temp=temp$$ -sorted=sorted$$ -unsorted=unsorted$$ -trap "rm -f $sorted $temp $unsorted; exit 99" 1 2 5 15 - -sed -n <$caps "\ -/%%-STOP-HERE-%%/q -/^#%/s/#%//p -/^#/d -s/[ ][ ]*/ /g -s/$/T}/ -s/ [A-Z0-9_()\-][A-Z0-9_()\-]* [0-9\-][0-9\-]* [Y\-][B\-][C\-][G\-][EK\-]\** / T{/ -s/ bool / /p -s/ num / /p -s/ str / /p -" |sed -e 's/^$/../' | tr "\134" "\006" >$unsorted - -rm -f $sorted -rm -f $temp -saved=no -while true -do - data= - read data - test -z "$data" && break - case "$data" in #(vi - **) #(vi - echo "$data" >>$temp - saved=yes - ;; - *) - if test $saved = yes ; then - saved=no - sort $temp >>$sorted - rm -f $temp - fi - echo "$data" >>$sorted - ;; - esac -done <$unsorted -test $saved = yes && sort $temp >>$sorted - -sed -e 's/^\.\.$//' $sorted | tr "\005\006" "\012\134" -cat $tail - -rm -f $sorted $temp $unsorted diff --git a/Build/source/libs/ncurses/man/Makefile.in b/Build/source/libs/ncurses/man/Makefile.in deleted file mode 100644 index 92fb9d30cdb..00000000000 --- a/Build/source/libs/ncurses/man/Makefile.in +++ /dev/null @@ -1,79 +0,0 @@ -# $Id: Makefile.in,v 1.35 2003/12/20 18:41:10 tom Exp $ -############################################################################## -# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996,1997 -# -# Makefile for ncurses manual pages. -# -# NOTE: When you add or rename a man page, make sure you update both -# the top-level MANIFEST and any man/*.renames files! - -SHELL = /bin/sh - -DESTDIR = @DESTDIR@ -srcdir = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ -datadir = @datadir@ -mandir = @mandir@ - -INSTALL = @INSTALL@ -INSTALL_DATA = @INSTALL_DATA@ - -all \ -sources : terminfo.5 -depend : - -$(DESTDIR)$(mandir) : - sh $(srcdir)/../mkinstalldirs $@ - -EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]* - -install install.man : terminfo.5 $(DESTDIR)$(mandir) - sh ./edit_man.sh normal installing $(EDITARGS) - -uninstall uninstall.man : - -sh ./edit_man.sh normal removing $(EDITARGS) - -# We compose terminfo.5 from the real sources... -CAPLIST=$(srcdir)/../include/@TERMINFO_CAPS@ -terminfo.5: $(srcdir)/terminfo.head $(CAPLIST) $(srcdir)/terminfo.tail Makefile $(srcdir)/MKterminfo.sh - sh $(srcdir)/MKterminfo.sh $(srcdir)/terminfo.head $(CAPLIST) $(srcdir)/terminfo.tail >terminfo.5 - -mostlyclean : - -rm -f core tags TAGS *~ *.bak *.ln *.atac trace - -clean: mostlyclean - rm -f terminfo.5 - -edit_man.sed : make_sed.sh @MANPAGE_RENAMES@ - sh $srcdir/make_sed.sh @MANPAGE_RENAMES@ >edit_man.sed - -distclean realclean: clean - rm -f Makefile edit_man.* diff --git a/Build/source/libs/ncurses/man/captoinfo.1m b/Build/source/libs/ncurses/man/captoinfo.1m deleted file mode 100644 index 94a5ae96b79..00000000000 --- a/Build/source/libs/ncurses/man/captoinfo.1m +++ /dev/null @@ -1,189 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: captoinfo.1m,v 1.18 2004/07/05 13:16:08 tom Exp $ -.TH captoinfo 1M "" -.ds n 5 -.ds d @TERMINFO@ -.SH NAME -\fBcaptoinfo\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description -.SH SYNOPSIS -\fBcaptoinfo\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . . -.SH DESCRIPTION -\fBcaptoinfo\fR looks in \fIfile\fR for \fBtermcap\fR descriptions. For each -one found, an equivalent \fBterminfo\fR description is written to standard -output. Termcap \fBtc\fR capabilities are translated directly to terminfo -\fBuse\fR capabilities. - -If no \fIfile\fR is given, then the environment variable \fBTERMCAP\fR is used -for the filename or entry. If \fBTERMCAP\fR is a full pathname to a file, only -the terminal whose name is specified in the environment variable \fBTERM\fR is -extracted from that file. If the environment variable \fBTERMCAP\fR is not -set, then the file \fB\*d\fR is read. -.TP 5 -\fB-v\fR -print out tracing information on standard error as the program runs. -.TP 5 -\fB-V\fR -print out the version of the program in use on standard error and exit. -.TP 5 -\fB-1\fR -cause the fields to print out one to a line. Otherwise, the fields -will be printed several to a line to a maximum width of 60 -characters. -.TP 5 -\fB-w\fR -change the output to \fIwidth\fR characters. -.SH FILES -.TP 20 -\*d -Compiled terminal description database. -.SH TRANSLATIONS FROM NONSTANDARD CAPABILITIES -.PP -Some obsolete nonstandard capabilities will automatically be translated -into standard (SVr4/XSI Curses) terminfo capabilities by \fBcaptoinfo\fR. -Whenever one of these automatic translations is done, the program -will issue an notification to stderr, inviting the user to check that -it has not mistakenly translated a completely unknown and random -capability and/or syntax error. -.PP -.TS H -c c c c -c c c c -l l l l. -Nonstd Std From Terminfo -name name capability -_ -BO mr AT&T enter_reverse_mode -CI vi AT&T cursor_invisible -CV ve AT&T cursor_normal -DS mh AT&T enter_dim_mode -EE me AT&T exit_attribute_mode -FE LF AT&T label_on -FL LO AT&T label_off -XS mk AT&T enter_secure_mode -EN @7 XENIX key_end -GE ae XENIX exit_alt_charset_mode -GS as XENIX enter_alt_charset_mode -HM kh XENIX key_home -LD kL XENIX key_dl -PD kN XENIX key_npage -PN po XENIX prtr_off -PS pf XENIX prtr_on -PU kP XENIX key_ppage -RT @8 XENIX kent -UP ku XENIX kcuu1 -KA k; Tek key_f10 -KB F1 Tek key_f11 -KC F2 Tek key_f12 -KD F3 Tek key_f13 -KE F4 Tek key_f14 -KF F5 Tek key_f15 -BC Sb Tek set_background -FC Sf Tek set_foreground -HS mh Iris enter_dim_mode -.TE -.PP -XENIX termcap also used to have a set of extension capabilities -for forms drawing, designed to take advantage of the IBM PC -high-half graphics. They were as follows: -.PP -.TS H -c c -l l. -Cap Graphic -_ -G2 upper left -G3 lower left -G1 upper right -G4 lower right -GR pointing right -GL pointing left -GU pointing up -GD pointing down -GH horizontal line -GV vertical line -GC intersection -G6 upper left -G7 lower left -G5 upper right -G8 lower right -Gr tee pointing right -Gr tee pointing left -Gu tee pointing up -Gd tee pointing down -Gh horizontal line -Gv vertical line -Gc intersection -GG acs magic cookie count -.TE -.PP -If the single-line capabilities occur in an entry, they will automatically -be composed into an \fBacsc\fR string. The double-line capabilities and -\fBGG\fR are discarded with a warning message. -.PP -IBM's AIX has a terminfo facility descended from SVr1 terminfo but incompatible -with the SVr4 format. The following AIX extensions are automatically -translated: -.PP -.TS -c c -l l. -IBM XSI -_ -ksel kslt -kbtab kcbt -font0 s0ds -font1 s1ds -font2 s2ds -font3 s3ds -.TE -.PP -Additionally, the AIX \fBbox1\fR capability will be automatically translated to -an \fBacsc\fR string. -.PP -Hewlett-Packard's terminfo library supports two nonstandard terminfo -capabilities \fBmeml\fR (memory lock) and \fBmemu\fR (memory unlock). -These will be discarded with a warning message. -.SH NOTES -This utility is actually a link to \fItic\fR(1M), running in \fI-I\fR mode. -You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR. - -The trace option isn't identical to SVr4's. Under SVr4, instead of following -the \fB-v\fR with a trace level n, you repeat it n times. -.SH SEE ALSO -\fBcurses\fR(3X), \fB@INFOCMP@\fR(1M), \fBterminfo\fR(\*n) -.SH AUTHOR -Eric S. Raymond -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/clear.1 b/Build/source/libs/ncurses/man/clear.1 deleted file mode 100644 index 4c4991f1d1a..00000000000 --- a/Build/source/libs/ncurses/man/clear.1 +++ /dev/null @@ -1,48 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: clear.1,v 1.3 2000/07/15 23:59:35 china Exp $ -.TH clear 1 "" -.ds n 5 -.SH NAME -\fBclear\fR - clear the terminal screen -.SH SYNOPSIS -\fBclear\fR -.br -.SH DESCRIPTION -\fBclear\fR clears your screen if this is possible. It looks in the -environment for the terminal type and then in the \fBterminfo\fR database to -figure out how to clear the screen. -.SH SEE ALSO -\fB@TPUT@\fR(1), \fBterminfo\fR(\*n) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_add_wch.3x b/Build/source/libs/ncurses/man/curs_add_wch.3x deleted file mode 100644 index fae59ae0b6c..00000000000 --- a/Build/source/libs/ncurses/man/curs_add_wch.3x +++ /dev/null @@ -1,134 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2001,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_add_wch.3x,v 1.4 2002/02/16 22:28:43 tom Exp $ -.TH curs_add_wch 3X "" -.SH NAME -\fBadd_wch\fP, -\fBwadd_wch\fP, -\fBmvadd_wch\fP, -\fBmvwadd_wch\fP, -\fBecho_wchar\fP, -\fBwecho_wchar\fP - add a complex character and rendition to a \fBcurses\fR window, then advance the cursor -.SH SYNOPSIS -.PP -\fB#include \fP -.sp -.B "int add_wch( const cchar_t *\fIwch\fB );" -.br -.B "int wadd_wch( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );" -.br -.B "int mvadd_wch( int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );" -.br -.B "int mvwadd_wch( WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP, const cchar_t *\fIwch\fB );" -.br -.B "int echo_wchar( const cchar_t *\fIwch\fB );" -.br -.B "int wecho_wchar( WINDOW *\fIwin\fP, const cchar_t *\fIwch\fB );" -.br -.SH DESCRIPTION -.PP -The -\fBadd_wch\fP, -\fBwadd_wch\fP, -\fBmvadd_wch\fP, and -\fBmvwadd_wch\fP -functions put the complex character \fIwch\fP into the given -window at its current position, -which is then advanced. -These functions perform -wrapping and special-character processing as follows: -.TP 5 -- -If \fIwch\fP refers to a spacing character, -then any previous character at that location is removed. -A new character specified by \fIwch\fP is -placed at that location with rendition specified by \fIwch\fP. -The cursor then advances to -the next spacing character on the screen. -.TP 5 -- -If \fIwch\fP refers to a non-spacing character, -all previous characters at that location are preserved. -The non-spacing characters of \fIwch\fP -are added to the spacing complex character, -and the rendition specified by \fIwch\fP is ignored. -.TP 5 -- -If the character part of \fIwch\fP is -a tab, newline, backspace or other control character, -the window is updated and the cursor moves as if \fBaddch\fR(3X) were called. -.PP -The \fBecho_wchar\fP -function is functionally equivalent to a call to -\fBadd_wch\fP -followed by a call to -\fBrefresh\fP. -Similarly, the -\fBwecho_wchar\fP -is functionally equivalent to a call to -\fBwadd_wch\fP -followed by a call to -\fBwrefresh\fP. -The knowledge -that only a single character is being output is taken into consideration and, -for non-control characters, a considerable performance gain might be seen -by using the *\fBecho\fP* functions instead of their equivalents. -.SH RETURN VALUES -.PP -All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success. -.SH NOTES -.PP -Note that -\fBadd_wch\fP, -\fBmvadd_wch\fP, -\fBmvwadd_wch\fP, and -\fBecho_wchar\fP -may be macros. -.SH PORTABILITY -.PP -All these functions are described in the XSI Curses standard, Issue 4. -The defaults specified for forms-drawing characters apply in the POSIX locale. -.PP -XSI documents constants beginning with \fBWACS_\fP which are used for -line-drawing. -Those are not currently implemented in \fBncurses\fP. -.SH SEE ALSO -.PP -\fBcurses\fR(3X), -\fBcurs_attr_get\fR(3X), -\fBcurs_clear\fR(3X), -\fBcurs_outopts\fR(3X), -\fBcurs_refresh\fR(3X), -\fBputwc\fR(3) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_add_wchstr.3x b/Build/source/libs/ncurses/man/curs_add_wchstr.3x deleted file mode 100644 index 23181b7fd7f..00000000000 --- a/Build/source/libs/ncurses/man/curs_add_wchstr.3x +++ /dev/null @@ -1,97 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_add_wchstr.3x,v 1.3 2004/03/13 19:39:10 tom Exp $ -.TH curs_add_wchstr 3X "" -.SH NAME -\fBadd_wchstr\fR, -\fBadd_wchnstr\fR, -\fBwadd_wchstr\fR, -\fBwadd_wchnstr\fR, -\fBmvadd_wchstr\fR, -\fBmvadd_wchnstr\fR, -\fBmvwadd_wchstr\fR, -\fBmvwadd_wchnstr\fR \- add an array of complex characters (and attributes) to a curses window -.SH SYNOPSIS -.B #include -.PP -.nf -\fBint add_wchstr(const cchar_t *\fR\fIwchstr\fR\fB);\fR -.br -\fBint add_wchnstr(const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint wadd_wchstr(WINDOW *\fR \fIwin\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR -.br -\fBint wadd_wchnstr(WINDOW *\fR \fIwin\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvadd_wchstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR -.br -\fBint mvadd_wchnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvwadd_wchstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB);\fR -.br -\fBint mvwadd_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR -.fi -.SH DESCRIPTION -These routines copy the array of complex characters \fIwchstr\fR -into the window image structure at and after the current cursor position. -The four routines with \fIn\fR as the last -argument copy at most \fIn\fR elements, but no more than will fit on the line. -If \fBn\fR=\fB-1\fR then the whole array is copied, -to the maximum number of characters that will fit on the line. -.PP -The window cursor is \fInot\fR advanced. -These routines work faster than \fBwaddnstr\fR. -On the other hand, they do not perform checking -(such as for the newline, backspace, or carriage return characters), -they do not advance the current cursor position, -they do not expand other control characters to ^-escapes, -and they truncate the string if it crosses the right margin, -rather then wrapping it around to the new line. -.PP -These routines end successfully -on encountering a null \fIcchar_t\fR, or -when they have filled the current line. -If a complex character cannot completely fit at the end of the current line, -the remaining columns are filled with the background character and rendition. -.SH NOTES -All functions except \fBwadd_wchnstr\fR may be macros. -.SH RETURN VALUES -All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success. -.SH PORTABILITY -All these entry points are described in the XSI Curses standard, Issue 4. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_addchstr\fR(3X) -\fBcurs_addwstr\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_addch.3x b/Build/source/libs/ncurses/man/curs_addch.3x deleted file mode 100644 index 13053d00537..00000000000 --- a/Build/source/libs/ncurses/man/curs_addch.3x +++ /dev/null @@ -1,173 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_addch.3x,v 1.23 2004/01/31 13:16:21 tom Exp $ -.TH curs_addch 3X "" -.SH NAME -\fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR, -\fBechochar\fR, -\fBwechochar\fR - add a character (with attributes) to a \fBcurses\fR window, then advance the cursor -.SH SYNOPSIS -\fB#include \fR -.PP -\fBint addch(const chtype ch);\fR -.br -\fBint waddch(WINDOW *win, const chtype ch);\fR -.br -\fBint mvaddch(int y, int x, const chtype ch);\fR -.br -\fBint mvwaddch(WINDOW *win, int y, int x, const chtype ch);\fR -.br -\fBint echochar(const chtype ch);\fR -.br -\fBint wechochar(WINDOW *win, const chtype ch);\fR -.br -.SH DESCRIPTION -The \fBaddch\fR, \fBwaddch\fR, \fBmvaddch\fR and \fBmvwaddch\fR routines put -the character \fIch\fR into the given window at its current window position, -which is then advanced. They are analogous to \fBputchar\fR in \fBstdio\fR(3). -If the advance is at the right margin, the cursor automatically wraps to the -beginning of the next line. At the bottom of the current scrolling region, if -\fBscrollok\fR is enabled, the scrolling region is scrolled up one line. -.PP -If \fIch\fR is a tab, newline, or backspace, -the cursor is moved appropriately within the window. -Backspace moves the cursor one character left; at the left -edge of a window it does nothing. -Newline does a \fBclrtoeol\fR, -then moves the cursor to the window left margin on the next line, -scrolling the window if on the last line. -Tabs are considered to be at every eighth column. -The tab interval may be altered by setting the \fBTABSIZE\fR variable. -.PP -If \fIch\fR is any control character other than tab, newline, or backspace, it -is drawn in \fB^\fR\fIX\fR notation. Calling \fBwinch\fR after adding a -control character does not return the character itself, but instead returns -the ^-representation of the control character. -.PP -Video attributes can be combined with a character argument passed to -\fBaddch\fR or related functions by logical-ORing them into the character. -(Thus, text, including attributes, can be copied from one place to another -using \fBinch\fR and \fBaddch\fR.) See the \fBcurs_attr\fR(3X) page for -values of predefined video attribute constants that can be usefully OR'ed -into characters. -.PP -The \fBechochar\fR and \fBwechochar\fR routines are equivalent to a call to -\fBaddch\fR followed by a call to \fBrefresh\fR, or a call to \fBwaddch\fR -followed by a call to \fBwrefresh\fR. The knowledge that only a single -character is being output is used and, for non-control characters, a -considerable performance gain may be seen by using these routines instead of -their equivalents. -.SS Line Graphics -The following variables may be used to add line drawing characters to the -screen with routines of the \fBaddch\fR family. The default character listed -below is used if the \fBacsc\fR capability doesn't define a terminal-specific -replacement for it (but see the EXTENSIONS section below). The names are -taken from VT100 nomenclature. -.PP -.TS -l l l -_ _ _ -l l l. -\fIName\fR \fIDefault\fR \fIDescription\fR -ACS_BLOCK # solid square block -ACS_BOARD # board of squares -ACS_BTEE + bottom tee -ACS_BULLET o bullet -ACS_CKBOARD : checker board (stipple) -ACS_DARROW v arrow pointing down -ACS_DEGREE ' degree symbol -ACS_DIAMOND + diamond -ACS_GEQUAL > greater-than-or-equal-to -ACS_HLINE - horizontal line -ACS_LANTERN # lantern symbol -ACS_LARROW < arrow pointing left -ACS_LEQUAL < less-than-or-equal-to -ACS_LLCORNER + lower left-hand corner -ACS_LRCORNER + lower right-hand corner -ACS_LTEE + left tee -ACS_NEQUAL ! not-equal -ACS_PI * greek pi -ACS_PLMINUS # plus/minus -ACS_PLUS + plus -ACS_RARROW > arrow pointing right -ACS_RTEE + right tee -ACS_S1 - scan line 1 -ACS_S3 - scan line 3 -ACS_S7 - scan line 7 -ACS_S9 \&_ scan line 9 -ACS_STERLING f pound-sterling symbol -ACS_TTEE + top tee -ACS_UARROW ^ arrow pointing up -ACS_ULCORNER + upper left-hand corner -ACS_URCORNER + upper right-hand corner -ACS_VLINE | vertical line -.TE -.SH RETURN VALUE -All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success -(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon -successful completion, unless otherwise noted in the preceding routine -descriptions. -.SH NOTES -Note that \fBaddch\fR, \fBmvaddch\fR, \fBmvwaddch\fR, and -\fBechochar\fR may be macros. -.SH PORTABILITY -All these functions are described in the XSI Curses standard, Issue 4. -The defaults specified for forms-drawing characters apply in the POSIX locale. -.LP -Some ACS symbols -(ACS_S3, -ACS_S7, -ACS_LEQUAL, -ACS_GEQUAL, -ACS_PI, -ACS_NEQUAL, -ACS_STERLING) -were not documented in -any publicly released System V. However, many publicly available terminfos -include \fBacsc\fR strings in which their key characters (pryz{|}) are -embedded, and a second-hand list of their character descriptions has come -to light. The ACS-prefixed names for them were invented for \fBncurses\fR(3X). -.LP -The \fBTABSIZE\fR variable is implemented in some versions of curses, -but is not part of X/Open curses. -.LP -If \fIch\fR is a carriage return, -the cursor is moved to the beginning of the current row of the window. -This is true of other implementations, but is not documented. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_attr\fR(3X), \fBcurs_clear\fR(3X), -\fBcurs_inch\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X), -\fBputc\fR(3S). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_addchstr.3x b/Build/source/libs/ncurses/man/curs_addchstr.3x deleted file mode 100644 index 9de749fc8f9..00000000000 --- a/Build/source/libs/ncurses/man/curs_addchstr.3x +++ /dev/null @@ -1,82 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_addchstr.3x,v 1.8 2003/12/27 18:51:24 tom Exp $ -.TH curs_addchstr 3X "" -.SH NAME -\fBaddchstr\fR, \fBaddchnstr\fR, \fBwaddchstr\fR, -\fBwaddchnstr\fR, \fBmvaddchstr\fR, \fBmvaddchnstr\fR, \fBmvwaddchstr\fR, -\fBmvwaddchnstr\fR - add a string of characters (and attributes) to a \fBcurses\fR window -.SH SYNOPSIS -\fB#include \fR -.PP -\fBint addchstr(const chtype *chstr);\fR -.br -\fBint addchnstr(const chtype *chstr, int n);\fR -.br -\fBint waddchstr(WINDOW *win, const chtype *chstr);\fR -.br -\fBint waddchnstr(WINDOW *win, const chtype *chstr, int n);\fR -.br -\fBint mvaddchstr(int y, int x, const chtype *chstr);\fR -.br -\fBint mvaddchnstr(int y, int x, const chtype *chstr, int n);\fR -.br -\fBint mvwaddchstr(WINDOW *win, int y, int x, const chtype *chstr);\fR -.br -\fBint mvwaddchnstr(WINDOW *win, int y, int x, const chtype *chstr, int n);\fR -.SH DESCRIPTION -These routines copy \fIchstr\fR into the window image structure at and after -the current cursor position. The four routines with \fIn\fR as the last -argument copy at most \fIn\fR elements, but no more than will fit on the line. -If \fBn\fR=\fB-1\fR then the whole string is copied, to the maximum number of -characters that will fit on the line. -.PP -The window cursor is \fInot\fR advanced, and these routines work faster than -\fBwaddnstr\fR. On the other hand, they don't perform any kind of checking -(such as for the newline, backspace, or carriage return characters), they don't -advance the current cursor position, they don't expand other control characters -to ^-escapes, and they truncate the string if it crosses the right margin, -rather then wrapping it around to the new line. -.SH RETURN VALUES -All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success -(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon -successful completion, unless otherwise noted in the preceding routine -descriptions. -.SH NOTES -Note that all routines except \fBwaddchnstr\fR may be macros. -.SH PORTABILITY -All these entry points are described in the XSI Curses standard, Issue 4. -.SH SEE ALSO -\fBcurses\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_addstr.3x b/Build/source/libs/ncurses/man/curs_addstr.3x deleted file mode 100644 index 0ffacc6fa9b..00000000000 --- a/Build/source/libs/ncurses/man/curs_addstr.3x +++ /dev/null @@ -1,87 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_addstr.3x,v 1.11 2003/12/27 18:51:15 tom Exp $ -.TH curs_addstr 3X "" -.SH NAME -\fBaddstr\fR, -\fBaddnstr\fR, -\fBwaddstr\fR, -\fBwaddnstr\fR, -\fBmvaddstr\fR, -\fBmvaddnstr\fR, -\fBmvwaddstr\fR, -\fBmvwaddnstr\fR - add a string of characters to a \fBcurses\fR window and advance cursor -.SH SYNOPSIS -.nf -\fB#include \fR -.PP -\fBint addstr(const char *\fR\fIstr\fR\fB);\fR -.br -\fBint addnstr(const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint waddstr(WINDOW *\fR\fIwin\fR\fB, const char *\fR\fIstr\fR\fB);\fR -.br -\fBint waddnstr(WINDOW *\fR\fIwin\fR\fB, const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvaddstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB);\fR -.br -\fBint mvaddnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvwaddstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr\fR\fB);\fR -.br -\fBint mvwaddnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const char *\fR\fIstr, int \fR\fIn\fR\fB);\fR -.fi -.SH DESCRIPTION -These routines write the characters of the (null-terminated) character string -\fIstr\fR on the given window. -It is similar to calling \fBwaddch\fR once for each character in the string. -The four routines with \fIn\fR as the last argument -write at most \fIn\fR characters. -If \fIn\fR is -1, then the entire string will be added, -up to the maximum number of characters that will fit on the line, -or until a terminating null is reached. -.SH RETURN VALUE -All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success -(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon -successful completion. -.SH NOTES -Note that all of these routines except \fBwaddstr\fR and \fBwaddnstr\fR may be -macros. -.SH PORTABILITY -All these entry points are described in the XSI Curses standard, Issue 4. The -XSI errors EILSEQ and EOVERFLOW, associated with extended-level conformance, -are not yet detected. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_addch\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_addwstr.3x b/Build/source/libs/ncurses/man/curs_addwstr.3x deleted file mode 100644 index e1dedaf1584..00000000000 --- a/Build/source/libs/ncurses/man/curs_addwstr.3x +++ /dev/null @@ -1,92 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_addwstr.3x,v 1.4 2004/09/11 20:57:04 tom Exp $ -.TH curs_addwstr 3X "" -.SH NAME -\fBaddwstr\fR, -\fBaddnwstr\fR, -\fBwaddwstr\fR, -\fBwaddnwstr\fR, -\fBmvaddwstr\fR, -\fBmvaddnwstr\fR, -\fBmvwaddwstr\fR, -\fBmvwaddnwstr\fR \- add a string of wide characters to a \fBcurses\fR window and advance cursor -.SH SYNOPSIS -.nf -\fB#include \fR -.PP -\fBint addwstr(const wchar_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint addnwstr(const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint waddwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint waddnwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvaddwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint mvaddnwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvwaddwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint mvwaddnwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.fi -.SH DESCRIPTION -These routines write the characters of the -(null-terminated) \fBwchar_t\fR character string -\fIwstr\fR on the given window. -It is similar to constructing a \fBcchar_t\fR for each wchar_t in the string, -then calling \fBwadd_wch\fR for the resulting \fBcchar_t\fR. -.PP -The \fImv\fR routines perform cursor movement once, before writing any -characters. -Thereafter, the cursor is advanced as a side-effect of writing to the window. -.PP -The four routines with \fIn\fR as the last argument -write at most \fIn\fR \fBwchar_t\fR characters. -If \fIn\fR is -1, then the entire string will be added, -up to the maximum number of characters that will fit on the line, -or until a terminating null is reached. -.SH RETURN VALUES -All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success. -.SH NOTES -Note that all of these routines except \fBwaddnwstr\fR may be macros. -.SH PORTABILITY -All these entry points are described in the XSI Curses standard, Issue 4. -.SH SEE ALSO -.PP -Functions: -\fBcurses\fR(3X), -\fBcurs_add_wch\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_attr.3x b/Build/source/libs/ncurses/man/curs_attr.3x deleted file mode 100644 index bcbf61c498a..00000000000 --- a/Build/source/libs/ncurses/man/curs_attr.3x +++ /dev/null @@ -1,232 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_attr.3x,v 1.27 2003/12/27 18:50:51 tom Exp $ -.TH curs_attr 3X "" -.SH NAME -\fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR, -\fBattrset\fR, \fBwattrset\fR, \fBcolor_set\fR, \fBwcolor_set\fR, -\fBstandend\fR, \fBwstandend\fR, \fBstandout\fR, \fBwstandout\fR, -\fBattr_get\fR, \fBwattr_get\fR, -\fBattr_off\fR, \fBwattr_off\fR, -\fBattr_on\fR, \fBwattr_on\fR, -\fBattr_set\fR, \fBwattr_set\fR, -\fBchgat\fR, \fBwchgat\fR, -\fBmvchgat\fR, \fBmvwchgat\fR, -\fBPAIR_NUMBER\fR - \fBcurses\fR character and window attribute control routines -.SH SYNOPSIS -\fB#include \fR -.br -\fBint attroff(int attrs);\fR -.br -\fBint wattroff(WINDOW *win, int attrs);\fR -.br -\fBint attron(int attrs);\fR -.br -\fBint wattron(WINDOW *win, int attrs);\fR -.br -\fBint attrset(int attrs);\fR -.br -\fBint wattrset(WINDOW *win, int attrs);\fR -.br -\fBint color_set(short color_pair_number, void* opts);\fR -.br -\fBint wcolor_set(WINDOW *win, short color_pair_number,\fR - \fBvoid* opts);\fR -.br -\fBint standend(void);\fR -.br -\fBint wstandend(WINDOW *win);\fR -.br -\fBint standout(void);\fR -.br -\fBint wstandout(WINDOW *win);\fR -.br -\fBint attr_get(attr_t *attrs, short *pair, void *opts);\fR -.br -\fBint wattr_get(WINDOW *win, attr_t *attrs, short *pair,\fR - \fBvoid *opts);\fR -.br -\fBint attr_off(attr_t attrs, void *opts);\fR -.br -\fBint wattr_off(WINDOW *win, attr_t attrs, void *opts);\fR -.br -\fBint attr_on(attr_t attrs, void *opts);\fR -.br -\fBint wattr_on(WINDOW *win, attr_t attrs, void *opts);\fR -.br -\fBint attr_set(attr_t attrs, short pair, void *opts);\fR -.br -\fBint wattr_set(WINDOW *win, attr_t attrs, short pair, void *opts);\fR -.br -\fBint chgat(int n, attr_t attr, short color,\fR - \fBconst void *opts)\fR -.br -\fBint wchgat(WINDOW *win, int n, attr_t attr,\fR - \fBshort color, const void *opts)\fR -.br -\fBint mvchgat(int y, int x, int n, attr_t attr,\fR - \fBshort color, const void *opts)\fR -.br -\fBint mvwchgat(WINDOW *win, int y, int x, int n,\fR - \fBattr_t attr, short color, const void *opts)\fR -.br -.SH DESCRIPTION -These routines manipulate the current attributes of the named window. The -current attributes of a window apply to all characters that are written into -the window with \fBwaddch\fR, \fBwaddstr\fR and \fBwprintw\fR. Attributes are -a property of the character, and move with the character through any scrolling -and insert/delete line/character operations. To the extent possible, they are -displayed as appropriate modifications to the graphic rendition of characters -put on the screen. -.PP -The routine \fBattrset\fR sets the current attributes of the given window to -\fIattrs\fR. The routine \fBattroff\fR turns off the named attributes without -turning any other attributes on or off. The routine \fBattron\fR turns on the -named attributes without affecting any others. The routine \fBstandout\fR is -the same as \fBattron(A_STANDOUT)\fR. The routine \fBstandend\fR is the same -as \fBattrset(A_NORMAL)\fR or \fBattrset(0)\fR, that is, it turns off all -attributes. -.PP -The \fBattrset\fR and related routines do not affect the attributes used -when erasing portions of the window. -See \fBcurs_bkgd\fR(3X) for functions which modify the attributes used for -erasing and clearing. -.PP -The routine \fBcolor_set\fR sets the current color of the given window to the -foreground/background combination described by the color_pair_number. The -parameter opts is reserved for future use, applications must supply a null -pointer. -.PP -The routine \fBwattr_get\fR returns the current attribute and color pair for -the given window; \fBattr_get\fR returns the current attribute and color pair -for \fBstdscr\fR. -The remaining \fBattr_\fR* functions operate exactly like the corresponding -\fBattr\fR* functions, except that they take arguments of type \fBattr_t\fR -rather than \fBint\fR. -.PP -The routine \fBchgat\fR changes the attributes of a given number of characters -starting at the current cursor location of \fBstdscr\fR. It does not update -the cursor and does not perform wrapping. A character count of -1 or greater -than the remaining window width means to change attributes all the way to the -end of the current line. The \fBwchgat\fR function generalizes this to any -window; the \fBmvwchgat\fR function does a cursor move before acting. In these -functions, the color argument is a color-pair index (as in the first argument -of \fIinit_pair\fR, see \fBcurs_color\fR(3X)). The \fBopts\fR argument is not -presently used, but is reserved for the future (leave it \fBNULL\fR). -Note that changing the attributes does not imply -that a subsequent \fBrefresh\fR will update the screen to match, -since the character values are not modified. -Use \fBtouchwin\fR to force the screen to match the updated attributes. -.SS Attributes -The following video attributes, defined in \fB\fR, can be passed to -the routines \fBattron\fR, \fBattroff\fR, and \fBattrset\fR, or OR'ed with the -characters passed to \fBaddch\fR. -.PP -.TS -center ; -l l . -\fBA_NORMAL\fR Normal display (no highlight) -\fBA_STANDOUT\fR Best highlighting mode of the terminal. -\fBA_UNDERLINE\fR Underlining -\fBA_REVERSE\fR Reverse video -\fBA_BLINK\fR Blinking -\fBA_DIM\fR Half bright -\fBA_BOLD\fR Extra bright or bold -\fBA_PROTECT\fR Protected mode -\fBA_INVIS\fR Invisible or blank mode -\fBA_ALTCHARSET\fR Alternate character set -\fBA_CHARTEXT\fR Bit-mask to extract a character -\fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR Color-pair number \fIn\fR -.TE -.PP -The following macro is the reverse of \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR: -.PP -.br -\fBPAIR_NUMBER(\fR\fIattrs\fR) Returns the pair number associated - with the \fBCOLOR_PAIR(\fR\fIn\fR\fB)\fR attribute. -.br -.PP -The return values of many of these routines are not meaningful (they are -implemented as macro-expanded assignments and simply return their argument). -The SVr4 manual page claims (falsely) that these routines always return \fB1\fR. -.SH NOTES -Note that \fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR, -\fBattrset\fR, \fBwattrset\fR, \fBstandend\fR and \fBstandout\fR may be macros. -.SH PORTABILITY -All these functions are supported in the XSI Curses standard, Issue 4. The -standard defined the dedicated type for highlights, \fBattr_t\fR, which is not -defined in SVr4 curses. The functions taking \fBattr_t\fR arguments are -not supported under SVr4. -.PP -The XSI Curses standard states that whether the traditional functions -\fBattron\fR/\fBattroff\fR/\fBattrset\fR can manipulate attributes other than -\fBA_BLINK\fR, \fBA_BOLD\fR, \fBA_DIM\fR, \fBA_REVERSE\fR, \fBA_STANDOUT\fR, or -\fBA_UNDERLINE\fR is "unspecified". Under this implementation as well as -SVr4 curses, these functions correctly manipulate all other highlights -(specifically, \fBA_ALTCHARSET\fR, \fBA_PROTECT\fR, and \fBA_INVIS\fR). -.PP -XSI Curses added the new entry points, \fBattr_get\fR, \fBattr_on\fR, -\fBattr_off\fR, \fBattr_set\fR, \fBwattr_on\fR, \fBwattr_off\fR, -\fBwattr_get\fR, \fBwattr_set\fR. These are intended to work with -a new series of highlight macros prefixed with \fBWA_\fR. -.PP -.TS -center ; -l l . -\fBWA_NORMAL\fR Normal display (no highlight) -\fBWA_STANDOUT\fR Best highlighting mode of the terminal. -\fBWA_UNDERLINE\fR Underlining -\fBWA_REVERSE\fR Reverse video -\fBWA_BLINK\fR Blinking -\fBWA_DIM\fR Half bright -\fBWA_BOLD\fR Extra bright or bold -\fBWA_ALTCHARSET\fR Alternate character set -.TE -.PP -The XSI curses standard specifies that each pair of corresponding \fBA_\fR -and \fBWA_\fR-using functions operates on the same current-highlight -information. -.PP -The XSI standard extended conformance level adds new highlights -\fBA_HORIZONTAL\fR, \fBA_LEFT\fR, \fBA_LOW\fR, \fBA_RIGHT\fR, \fBA_TOP\fR, -\fBA_VERTICAL\fR (and corresponding \fBWA_\fR macros for each) which this -curses does not yet support. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_addch\fR(3X), -\fBcurs_addstr\fR(3X), -\fBcurs_bkgd\fR(3X), -\fBcurs_printw\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_beep.3x b/Build/source/libs/ncurses/man/curs_beep.3x deleted file mode 100644 index 579931ccc47..00000000000 --- a/Build/source/libs/ncurses/man/curs_beep.3x +++ /dev/null @@ -1,63 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_beep.3x,v 1.9 2003/12/27 18:44:30 tom Exp $ -.TH curs_beep 3X "" -.SH NAME -\fBbeep\fR, \fBflash\fR - \fBcurses\fR bell and screen flash routines -.SH SYNOPSIS -\fB#include \fR -.PP -\fBint beep(void);\fR -.br -\fBint flash(void);\fR -.br -.SH DESCRIPTION -The \fBbeep\fR and \fBflash\fR routines are used to alert the terminal user. -The routine \fBbeep\fR sounds an audible alarm on the terminal, if possible; -otherwise it flashes the screen (visible bell). The routine \fBflash\fR -flashes the screen, and if that is not possible, sounds the alert. If neither -alert is possible, nothing happens. Nearly all terminals have an audible alert -(bell or beep), but only some can flash the screen. -.SH RETURN VALUE -These routines return \fBOK\fR if they succeed in beeping or flashing, -\fBERR\fR otherwise. -.SH EXTENSIONS -SVr4's beep and flash routines always returned \fBOK\fR, so it was not -possible to tell when the beep or flash failed. -.SH PORTABILITY -These functions are defined in the XSI Curses standard, Issue 4. Like SVr4, it -specifies that they always return \fBOK\fR. -.SH SEE ALSO -\fBcurses\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_bkgd.3x b/Build/source/libs/ncurses/man/curs_bkgd.3x deleted file mode 100644 index b2d768a441d..00000000000 --- a/Build/source/libs/ncurses/man/curs_bkgd.3x +++ /dev/null @@ -1,98 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_bkgd.3x,v 1.19 2003/12/27 18:50:40 tom Exp $ -.TH curs_bkgd 3X "" -.SH NAME -\fBbkgdset\fR, \fBwbkgdset\fR, -\fBbkgd\fR, \fBwbkgd\fR, -\fBgetbkgd\fR - \fBcurses\fR window background manipulation routines -.SH SYNOPSIS -\fB#include \fR -.PP -\fBvoid bkgdset(chtype ch);\fR -.br -\fBvoid wbkgdset(WINDOW *win, chtype ch);\fR -.br -\fBint bkgd(chtype ch);\fR -.br -\fBint wbkgd(WINDOW *win, chtype ch);\fR -.br -\fBchtype getbkgd(WINDOW *win);\fR -.br -.SH DESCRIPTION -The \fBbkgdset\fR and \fBwbkgdset\fR routines manipulate the -background of the named window. -The window background is a \fBchtype\fR consisting of -any combination of attributes (i.e., rendition) and a character. -The attribute part of the background is combined (OR'ed) with all non-blank -characters that are written into the window with \fBwaddch\fR. Both -the character and attribute parts of the background are combined with -the blank characters. The background becomes a property of the -character and moves with the character through any scrolling and -insert/delete line/character operations. -.PP -To the extent possible on a particular terminal, -the attribute part of the background is displayed -as the graphic rendition of the character put on the screen. -.PP -The \fBbkgd\fR and \fBwbkgd\fR functions -set the background property of the current or specified window -and then apply this setting to every character position in that window: -.PP -.RS -The rendition of every character on the screen is changed to -the new background rendition. -.PP -Wherever the former background character -appears, it is changed to the new background character. -.RE -.PP -The \fBgetbkgd\fR function returns the given window's current background -character/attribute pair. -.SH RETURN VALUE -The routines \fBbkgd\fR and \fBwbkgd\fR return the integer \fBOK\fR. -The SVr4.0 manual says "or a non-negative integer if \fBimmedok\fR is set", -but this appears to be an error. -.SH NOTES -Note that \fBbkgdset\fR and \fBbkgd\fR may be macros. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. -It specifies that \fBbkgd\fR and \fBwbkgd\fR return \fBERR\fR on failure. -but gives no failure conditions. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_addch\fR(3X), -\fBcurs_attr\fR(3X), -\fBcurs_outopts\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_bkgrnd.3x b/Build/source/libs/ncurses/man/curs_bkgrnd.3x deleted file mode 100644 index fd42338a2bb..00000000000 --- a/Build/source/libs/ncurses/man/curs_bkgrnd.3x +++ /dev/null @@ -1,106 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_bkgrnd.3x,v 1.2 2004/03/13 19:39:10 tom Exp $ -.TH curs_bkgrnd 3X "" -.SH NAME -\fBbkgrnd\fR, -\fBwbkgrnd\fR, -\fBbkgrndset\fR, -\fBwbkgrndset\fR, -\fBgetbkgrnd\fR, -\fBwgetbkgrnd\fR \- \fBcurses\fR window complex background manipulation routines -.SH SYNOPSIS -.PP -.B #include - -\fBint bkgrnd(\fR\fB const cchar_t *\fR\fIwch\fR\fB);\fR -.br -\fBint wbkgrnd(\fR\fB WINDOW *\fR\fIwin\fR\fB, const cchar_t *\fR\fIwch\fR\fB);\fR -.br -\fBvoid bkgrndset(const cchar_t *\fR\fIwch\fR \fB);\fR -.br -\fBvoid wbkgrndset(WINDOW *\fR\fIwin\fR\fB, const cchar_t *\fR\fIwch\fR\fB);\fR -.br -\fBint getbkgrnd(cchar_t *\fR\fIwch\fR\fB);\fR -.br -\fBint wgetbkgrnd(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwch\fR\fB);\fR -.br -.SH DESCRIPTION -The \fBbkgrndset\fR and \fBwbkgrndset\fR routines manipulate the -background of the named window. -The window background is a \fBcchar_t\fR consisting of -any combination of attributes (i.e., rendition) and a complex character. -The attribute part of the background is combined (OR'ed) with all non-blank -characters that are written into the window with \fBwaddch\fR. Both -the character and attribute parts of the background are combined with -the blank characters. -The background becomes a property of the -character and moves with the character through any scrolling and -insert/delete line/character operations. - -To the extent possible on a -particular terminal, the attribute part of the background is displayed -as the graphic rendition of the character put on the screen. - -The \fBbkgrnd\fR and \fBwbkgrnd\fR functions -set the background property of the current or specified window -and then apply this setting to every character position in that window: - -.RS -The rendition of every character on the screen is changed to -the new background rendition. - -Wherever the former background character -appears, it is changed to the new background character. -.RE - -The \fBgetbkgrnd\fR function returns the given window's current background -character/attribute pair via the \fBwch\fR pointer. - -.SH NOTES -Note that -\fBbkgrnd\fR, -\fBbkgrndset\fR, and -\fBgetbkgrnd\fR -may be macros. -.SH RETURN VALUES -The \fBbkgrndset\fR and \fBwbkgrndset\fR routines do not return a value. -.PP -Upon successful completion, the other functions return \fBOK\fR. -Otherwise, they return \fBERR\fR. -A null window pointer is treated as an error. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_bkgd\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_border.3x b/Build/source/libs/ncurses/man/curs_border.3x deleted file mode 100644 index c087fad73bc..00000000000 --- a/Build/source/libs/ncurses/man/curs_border.3x +++ /dev/null @@ -1,138 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_border.3x,v 1.15 2002/02/16 22:21:47 tom Exp $ -.TH curs_border 3X "" -.SH NAME -\fBborder\fR, \fBwborder\fR, \fBbox\fR, -\fBhline\fR, \fBwhline\fR, -\fBvline\fR, \fBwvline\fR, -\fBmvhline\fR, \fBmvwhline\fR, -\fBmvvline\fR, \fBmvwvline\fR - create \fBcurses\fR borders, horizontal and vertical lines -.SH SYNOPSIS -\fB#include \fR -.br -\fBint border(chtype ls, chtype rs, chtype ts, chtype bs,\fR - \fBchtype tl, chtype tr, chtype bl, chtype br);\fR -.br -\fBint wborder(WINDOW *win, chtype ls, chtype rs,\fR - \fBchtype ts, chtype bs, chtype tl, chtype tr,\fR - \fBchtype bl, chtype br);\fR -.br -\fBint box(WINDOW *win, chtype verch, chtype horch);\fR -.br -\fBint hline(chtype ch, int n);\fR -.br -\fBint whline(WINDOW *win, chtype ch, int n);\fR -.br -\fBint vline(chtype ch, int n);\fR -.br -\fBint wvline(WINDOW *win, chtype ch, int n);\fR -.br -\fBmvhline(int y, int x, chtype ch, int n);\fR -.br -\fBmvwhline(WINDOW *, int y, int x, chtype ch, int n);\fR -.br -\fBint mvvline(int y, int x, chtype ch, int n);\fR -.br -\fBint mvwvline(WINDOW *, int y, int x, chtype ch, int n);\fR -.br -.SH DESCRIPTION -The \fBborder\fR, \fBwborder\fR and \fBbox\fR routines -draw a box around the edges of a window. -Other than the window, each argument is a character with attributes: -.RS -\fIls\fR - left side, -.br -\fIrs\fR - right side, -.br -\fIts\fR - top side, -.br -\fIbs\fR - bottom side, -.br -\fItl\fR - top left-hand corner, -.br -\fItr\fR - top right-hand corner, -.br -\fIbl\fR - bottom left-hand corner, and -.br -\fIbr\fR - bottom right-hand corner. -.RE -If any of these arguments is zero, then the corresponding -default values (defined in \fBcurses.h\fR) are used instead: -.RS -\fBACS_VLINE\fR, -.br -\fBACS_VLINE\fR, -.br -\fBACS_HLINE\fR, -.br -\fBACS_HLINE\fR, -.br -\fBACS_ULCORNER\fR, -.br -\fBACS_URCORNER\fR, -.br -\fBACS_LLCORNER\fR, -.br -\fBACS_LRCORNER\fR. -.RE - -\fBbox(\fR\fIwin\fR\fB, \fR\fIverch\fR\fB, \fR\fIhorch\fR\fB)\fR is a shorthand -for the following call: \fBwborder(\fR\fIwin\fR\fB,\fR \fIverch\fR\fB,\fR -\fIverch\fR\fB,\fR \fIhorch\fR\fB,\fR \fIhorch\fR\fB, 0, 0, 0, 0)\fR. - -The \fBhline\fR and \fBwhline\fR functions draw a horizontal (left to right) -line using \fIch\fR starting at the current cursor position in the window. The -current cursor position is not changed. The line is at most \fIn\fR characters -long, or as many as fit into the window. - -The \fBvline\fR and \fBwvline\fR functions draw a vertical (top to bottom) line -using \fIch\fR starting at the current cursor position in the window. The -current cursor position is not changed. The line is at most \fIn\fR characters -long, or as many as fit into the window. -.SH RETURN VALUE -All routines return the integer \fBOK\fR. The SVr4.0 manual says "or a -non-negative integer if \fBimmedok\fR is set", but this appears to be an error. -.SH NOTES -The borders generated by these functions are \fIinside\fR borders (this -is also true of SVr4 curses, though the fact is not documented). - -Note that \fBborder\fR and \fBbox\fR may be macros. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. -The standard specifies that they return \fBERR\fR on failure, -but specifies no error conditions. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_outopts\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_border_set.3x b/Build/source/libs/ncurses/man/curs_border_set.3x deleted file mode 100644 index 907a9ce840d..00000000000 --- a/Build/source/libs/ncurses/man/curs_border_set.3x +++ /dev/null @@ -1,201 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_border_set.3x,v 1.4 2004/03/13 19:39:10 tom Exp $ -.TH curs_border_set 3X "" -.SH NAME -\fBborder_set\fR, -\fBwborder_set\fR, -\fBbox_set\fR, -\fBhline_set\fR, -\fBwhline_set\fR, -\fBmvhline_set\fR, -\fBmvwhline_set\fR, -\fBvline_set\fR, -\fBwvline_set\fR, -\fBmvvline_set\fR, -\fBmvwvline_set\fR \- create \fBcurses\fR borders or lines using complex characters and renditions -.SH SYNOPSIS -.PP -\fB#include \fR -.sp -\fBint border_set(\fR - \fBconst cchar_t *\fR\fIls\fR, \fBconst cchar_t *\fR\fIrs\fR, - \fBconst cchar_t *\fR\fIts\fR, \fBconst cchar_t *\fR\fIbs\fR, - \fBconst cchar_t *\fR\fItl\fR, \fBconst cchar_t *\fR\fItr\fR, - \fBconst cchar_t *\fR\fIbl\fR, \fBconst cchar_t *\fR\fIbr\fR -\fB);\fR -.br -\fBint wborder_set(\fR - \fBWINDOW *win\fR, - \fBconst cchar_t *\fR\fIls\fR, \fBconst cchar_t *\fR\fIrs\fR, - \fBconst cchar_t *\fR\fIts\fR, \fBconst cchar_t *\fR\fIbs\fR, - \fBconst cchar_t *\fR\fItl\fR, \fBconst cchar_t *\fR\fItr\fR, - \fBconst cchar_t *\fR\fIbl\fR, \fBconst cchar_t *\fR\fIbr\fR\fB);\fR -.br -\fBint box_set(\fR - \fBWINDOW *win\fR, - \fBconst cchar_t *\fR\fIverch\fR, - \fBconst cchar_t *\fR\fIhorch\fR\fB);\fR -.br -\fBint hline_set(\fR - \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR -.br -\fBint whline_set(\fR - \fBWINDOW *\fR\fIwin\fR, - \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR -.br -\fBint mvhline_set(\fR - \fBint \fR\fIy\fR, \fBint \fR\fIx\fR, - \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR -.br -\fBint mvwhline_set(\fR - \fBWINDOW *\fR\fIwin\fR, - \fBint \fR\fIy\fR, \fBint \fR\fIx\fR, - \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR -.br -\fBint vline_set(\fR - \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR -.br -\fBint wvline_set(\fR - \fBWINDOW *\fR\fIwin\fR, - \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR -.br -\fBint mvvline_set(\fR - \fBint \fR\fIy\fR, \fBint \fR\fIx\fR, - \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR -.br -\fBint mvwvline_set(\fR - \fBWINDOW *\fR\fIwin\fR, - \fBint \fR\fIy\fR, \fBint \fR\fIx\fR, - \fBconst cchar_t *\fR\fIwch\fR, \fBint \fR\fIn\fR\fB);\fR -.br -.SH DESCRIPTION -.PP -The -\fBborder_set\fR -and -\fBwborder_set\fR -functions draw a border around the edges of the current or specified window. -These functions do not change the cursor position, and do not wrap. -.PP -Other than the window, each argument is a complex character with attributes: -.RS -\fIls\fR - left side, -.br -\fIrs\fR - right side, -.br -\fIts\fR - top side, -.br -\fIbs\fR - bottom side, -.br -\fItl\fR - top left-hand corner, -.br -\fItr\fR - top right-hand corner, -.br -\fIbl\fR - bottom left-hand corner, and -.br -\fIbr\fR - bottom right-hand corner. -.RE -.PP -If any of these arguments is zero, then the corresponding -default values (defined in \fBcurses.h\fR) are used instead: -.RS -\fBWACS_VLINE\fR, -.br -\fBWACS_VLINE\fR, -.br -\fBWACS_HLINE\fR, -.br -\fBWACS_HLINE\fR, -.br -\fBWACS_ULCORNER\fR, -.br -\fBWACS_URCORNER\fR, -.br -\fBWACS_LLCORNER\fR, and -.br -\fBWACS_LRCORNER\fR. -.RE -.PP -\fBbox_set(\fR\fIwin\fR, \fIverch\fR\fB, \fR\fIhorch\fR\fB);\fR -is a shorthand for the following call: -.PP -\fBwborder_set(\fR\fIwin\fR\fB, \fR\fIverch\fR\fB, \fR\fIverch\fR\fB,\fR - \fIhorch\fR\fB, \fR\fIhorch\fR\fB, NULL, NULL, NULL, NULL);\fR -.PP -The -\fB*line_set\fR -functions use -\fIwch\fR -to draw a line starting at the current cursor position in the window. -The line is at most \fIn\fR characters long or as many as fit into the window. -The current cursor position is not changed. -.PP -The -\fBhline_set\fR, -\fBmvhline_set\fR, -\fBmvwhline_set\fR, and -\fBwhline_set\fR -functions draw a line proceeding toward the last column of the same line. -.PP -The -\fBvline_set\fR, -\fBmvvline_set\fR, -\fBmvwvline_set\fR, and -\fBwvline_set\fR -functions draw a line proceeding toward the last line of the window. -.br -.SH NOTES -.PP -Note that -\fBborder_set\fR, -\fBhline_set\fR, -\fBmvhline_set\fR, -\fBmvvline_set\fR, -\fBmvwhline_set\fR, -\fBmvwvline_set\fR, and -\fBvline_set\fR -may be macros. -.br -.SH RETURN VALUES -.PP -Upon successful completion, these functions return -\fBOK\fR. -Otherwise, they return -\fBERR\fR. -.SH SEE ALSO -\fBncurses\fR(3X), -\fBcurs_border\fR(3X), -\fBcurs_outopts\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_clear.3x b/Build/source/libs/ncurses/man/curs_clear.3x deleted file mode 100644 index d08e852a27b..00000000000 --- a/Build/source/libs/ncurses/man/curs_clear.3x +++ /dev/null @@ -1,94 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_clear.3x,v 1.7 1998/03/11 21:12:53 juergen Exp $ -.TH curs_clear 3X "" -.SH NAME -\fBerase\fR, \fBwerase\fR, \fBclear\fR, -\fBwclear\fR, \fBclrtobot\fR, \fBwclrtobot\fR, \fBclrtoeol\fR, -\fBwclrtoeol\fR - clear all or part of a \fBcurses\fR window -.SH SYNOPSIS -\fB# include \fR - -\fBint erase(void);\fR -.br -\fBint werase(WINDOW *win);\fR -.br -\fBint clear(void);\fR -.br -\fBint wclear(WINDOW *win);\fR -.br -\fBint clrtobot(void);\fR -.br -\fBint wclrtobot(WINDOW *win);\fR -.br -\fBint clrtoeol(void);\fR -.br -\fBint wclrtoeol(WINDOW *win);\fR -.br -.SH DESCRIPTION -The \fBerase\fR and \fBwerase\fR routines copy blanks to every -position in the window, clearing the screen. - -The \fBclear\fR and \fBwclear\fR routines are like \fBerase\fR and -\fBwerase\fR, but they also call \fBclearok\fR, so that the screen is -cleared completely on the next call to \fBwrefresh\fR for that window -and repainted from scratch. - -The \fBclrtobot\fR and \fBwclrtobot\fR routines erase from the cursor to the -end of screen. That is, they erase all lines below the cursor in the window. -Also, the current line to the right of the cursor, inclusive, is erased. - -The \fBclrtoeol\fR and \fBwclrtoeol\fR routines erase the current line -to the right of the cursor, inclusive, to the end of the current line. - -Blanks created by erasure have the current background rendition (as set -by \fBwbkgdset\fR) merged into them. -.SH RETURN VALUE -All routines return the integer \fBOK\fR. The SVr4.0 manual says "or a -non-negative integer if \fBimmedok\fR is set", but this appears to be an error. -.SH NOTES -Note that \fBerase\fR, \fBwerase\fR, \fBclear\fR, \fBwclear\fR, -\fBclrtobot\fR, and \fBclrtoeol\fR may be macros. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. The -standard specifies that they return \fBERR\fR on failure, but specifies no -error conditions. - -Some historic curses implementations had, as an undocumented feature, the -ability to do the equivalent of \fBclearok(..., 1)\fR by saying -\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR. This will not work under -ncurses. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_color.3x b/Build/source/libs/ncurses/man/curs_color.3x deleted file mode 100644 index 18926d92e6c..00000000000 --- a/Build/source/libs/ncurses/man/curs_color.3x +++ /dev/null @@ -1,216 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_color.3x,v 1.19 2002/02/16 22:38:32 tom Exp $ -.TH curs_color 3X "" -.SH NAME -\fBstart_color\fR, -\fBinit_pair\fR, -\fBinit_color\fR, -\fBhas_colors\fR, -\fBcan_change_color\fR, -\fBcolor_content\fR, -\fBpair_content\fR, -\fBCOLOR_PAIR\fR - \fBcurses\fR color manipulation routines -.SH SYNOPSIS -\fB# include \fR -.br -\fBint start_color(void);\fR -.br -\fBint init_pair(short pair, short f, short b);\fR -.br -\fBint init_color(short color, short r, short g, short b);\fR -.br -\fBbool has_colors(void);\fR -.br -\fBbool can_change_color(void);\fR -.br -\fBint color_content(short color, short *r, short *g, short *b);\fR -.br -\fBint pair_content(short pair, short *f, short *b);\fR -.br -.SH DESCRIPTION -.SS Overview -\fBcurses\fR support color attributes on terminals with that capability. To -use these routines \fBstart_color\fR must be called, usually right after -\fBinitscr\fR. Colors are always used in pairs (referred to as color-pairs). -A color-pair consists of a foreground color (for characters) and a background -color (for the blank field on which the characters are displayed). A -programmer initializes a color-pair with the routine \fBinit_pair\fR. After it -has been initialized, \fBCOLOR_PAIR\fR(\fIn\fR), a macro defined in -\fB\fR, can be used as a new video attribute. - -If a terminal is capable of redefining colors, the programmer can use the -routine \fBinit_color\fR to change the definition of a color. The routines -\fBhas_colors\fR and \fBcan_change_color\fR return \fBTRUE\fR or \fBFALSE\fR, -depending on whether the terminal has color capabilities and whether the -programmer can change the colors. The routine \fBcolor_content\fR allows a -programmer to extract the amounts of red, green, and blue components in an -initialized color. The routine \fBpair_content\fR allows a programmer to find -out how a given color-pair is currently defined. -.SS Routine Descriptions -The \fBstart_color\fR routine requires no arguments. It must be -called if the programmer wants to use colors, and before any other -color manipulation routine is called. It is good practice to call -this routine right after \fBinitscr\fR. \fBstart_color\fR initializes -eight basic colors (black, red, green, yellow, blue, magenta, cyan, -and white), and two global variables, \fBCOLORS\fR and -\fBCOLOR_PAIRS\fR (respectively defining the maximum number of colors -and color-pairs the terminal can support). It also restores the -colors on the terminal to the values they had when the terminal was -just turned on. - -The \fBinit_pair\fR routine changes the definition of a color-pair. It takes -three arguments: the number of the color-pair to be changed, the foreground -color number, and the background color number. -For portable applications: -.TP 5 -- -The value of the first argument -must be between \fB1\fR and \fBCOLOR_PAIRS-1\fR. -.TP 5 -- -The value of the second and -third arguments must be between 0 and \fBCOLORS\fR (the 0 color pair is wired -to white on black and cannot be changed). -.PP -If the color-pair was previously -initialized, the screen is refreshed and all occurrences of that color-pair -are changed to the new definition. - -As an extension, ncurses allows you to set color pair 0 via -the \fBassume_default_colors\fR routine, or to specify the use of -default colors (color number \fB-1\fR) if you first invoke the -\fBuse_default_colors\fR routine. - -The \fBinit_color\fR routine changes the definition of a color. It takes four -arguments: the number of the color to be changed followed by three RGB values -(for the amounts of red, green, and blue components). The value of the first -argument must be between \fB0\fR and \fBCOLORS\fR. (See the section -\fBColors\fR for the default color index.) Each of the last three arguments -must be a value between 0 and 1000. When \fBinit_color\fR is used, all -occurrences of that color on the screen immediately change to the new -definition. - -The \fBhas_colors\fR routine requires no arguments. It returns \fBTRUE\fR if -the terminal can manipulate colors; otherwise, it returns \fBFALSE\fR. This -routine facilitates writing terminal-independent programs. For example, a -programmer can use it to decide whether to use color or some other video -attribute. - -The \fBcan_change_color\fR routine requires no arguments. It returns -\fBTRUE\fR if the terminal supports colors and can change their definitions; -other, it returns \fBFALSE\fR. This routine facilitates writing -terminal-independent programs. - -The \fBcolor_content\fR routine gives programmers a way to find the intensity -of the red, green, and blue (RGB) components in a color. It requires four -arguments: the color number, and three addresses of \fBshort\fRs for storing -the information about the amounts of red, green, and blue components in the -given color. The value of the first argument must be between 0 and -\fBCOLORS\fR. The values that are stored at the addresses pointed to by the -last three arguments are between 0 (no component) and 1000 (maximum amount of -component). - -The \fBpair_content\fR routine allows programmers to find out what colors a -given color-pair consists of. It requires three arguments: the color-pair -number, and two addresses of \fBshort\fRs for storing the foreground and the -background color numbers. The value of the first argument must be between 1 -and \fBCOLOR_PAIRS-1\fR. The values that are stored at the addresses pointed -to by the second and third arguments are between 0 and \fBCOLORS\fR. -.SS Colors -In \fB\fR the following macros are defined. These are the default -colors. \fBcurses\fR also assumes that \fBCOLOR_BLACK\fR is the default -background color for all terminals. - -.nf - \fBCOLOR_BLACK\fR - \fBCOLOR_RED\fR - \fBCOLOR_GREEN\fR - \fBCOLOR_YELLOW\fR - \fBCOLOR_BLUE\fR - \fBCOLOR_MAGENTA\fR - \fBCOLOR_CYAN\fR - \fBCOLOR_WHITE\fR -.fi -.SH RETURN VALUE -The routines \fBcan_change_color()\fR and \fBhas_colors()\fR return \fBTRUE\fR -or \fBFALSE\fR. - -All other routines return the integer \fBERR\fR upon failure and an \fBOK\fR -(SVr4 specifies only "an integer value other than \fBERR\fR") upon successful -completion. -.SH NOTES -In the \fIncurses\fR implementation, there is a separate color activation flag, -color palette, color pairs table, and associated COLORS and COLOR_PAIRS counts -for each screen; the \fBstart_color\fR function only affects the current -screen. The SVr4/XSI interface is not really designed with this in mind, and -historical implementations may use a single shared color palette. - -Note that setting an implicit background color via a color pair affects only -character cells that a character write operation explicitly touches. To change -the background color used when parts of a window are blanked by erasing or -scrolling operations, see \fBcurs_bkgd\fR(3X). - -Several caveats apply on 386 and 486 machines with VGA-compatible graphics: -.TP 5 -- -COLOR_YELLOW is actually brown. To get yellow, use COLOR_YELLOW combined with -the \fBA_BOLD\fR attribute. -.TP 5 -- -The A_BLINK attribute should in theory cause the background to go bright. This -often fails to work, and even some cards for which it mostly works (such as the -Paradise and compatibles) do the wrong thing when you try to set a bright -"yellow" background (you get a blinking yellow foreground instead). -.TP 5 -- -Color RGB values are not settable. -.SH PORTABILITY -This implementation satisfies XSI Curses's minimum maximums -for \fBCOLORS\fR and \fBCOLOR_PAIRS\fR. -.PP -The \fBinit_pair\fP routine accepts negative values of foreground -and background color to support the \fBuse_default_colors\fP extension, -but only if that routine has been first invoked. -.PP -The assumption that \fBCOLOR_BLACK\fR is the default -background color for all terminals can be modified using the -\fBassume_default_colors\fP extension, - -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_initscr\fR(3X), -\fBcurs_attr\fR(3X), -\fBdefault_colors\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_delch.3x b/Build/source/libs/ncurses/man/curs_delch.3x deleted file mode 100644 index 34bd9ac3e24..00000000000 --- a/Build/source/libs/ncurses/man/curs_delch.3x +++ /dev/null @@ -1,70 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_delch.3x,v 1.7 2000/07/01 19:55:37 tom Exp $ -.TH curs_delch 3X "" -.SH NAME -\fBdelch\fR, -\fBwdelch\fR, -\fBmvdelch\fR, -\fBmvwdelch\fR - delete character under the cursor in a \fBcurses\fR window -.SH SYNOPSIS -\fB#include \fR - -\fBint delch(void);\fR -.br -\fBint wdelch(WINDOW *win);\fR -.br -\fBint mvdelch(int y, int x);\fR -.br -\fBint mvwdelch(WINDOW *win, int y, int x);\fR -.br -.SH DESCRIPTION -These routines delete the character under the cursor; all characters to the -right of the cursor on the same line are moved to the left one position and the -last character on the line is filled with a blank. The cursor position does -not change (after moving to \fIy\fR, \fIx\fR, if specified). (This does not -imply use of the hardware delete character feature.) -.SH RETURN VALUE -All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4 -specifies only "an integer value other than \fBERR\fR") upon successful -completion. -.SH NOTES -Note that \fBdelch\fR, \fBmvdelch\fR, and \fBmvwdelch\fR may be macros. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. The -standard specifies that they return \fBERR\fR on failure, but specifies no -error conditions. -.SH SEE ALSO -\fBcurses\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_deleteln.3x b/Build/source/libs/ncurses/man/curs_deleteln.3x deleted file mode 100644 index 38a5496a9bb..00000000000 --- a/Build/source/libs/ncurses/man/curs_deleteln.3x +++ /dev/null @@ -1,87 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_deleteln.3x,v 1.8 2003/05/10 20:33:49 jmc Exp $ -.TH curs_deleteln 3X "" -.SH NAME -\fBdeleteln\fR, -\fBwdeleteln\fR, -\fBinsdelln\fR, -\fBwinsdelln\fR, -\fBinsertln\fR, -\fBwinsertln\fR - delete and insert lines in a \fBcurses\fR window -.SH SYNOPSIS -\fB#include \fR - -\fBint deleteln(void);\fR -.br -\fBint wdeleteln(WINDOW *win);\fR -.br -\fBint insdelln(int n);\fR -.br -\fBint winsdelln(WINDOW *win, int n);\fR -.br -\fBint insertln(void);\fR -.br -\fBint winsertln(WINDOW *win);\fR -.br -.SH DESCRIPTION -The \fBdeleteln\fR and \fBwdeleteln\fR routines delete the line under the -cursor in the window; all lines below the current line are moved up one line. -The bottom line of the window is cleared. The cursor position does not change. - -The \fBinsdelln\fR and \fBwinsdelln\fR routines, for positive \fIn\fR, insert -\fIn\fR lines into the specified window above the current line. The \fIn\fR -bottom lines are lost. For negative \fIn\fR, delete \fIn\fR lines (starting -with the one under the cursor), and move the remaining lines up. The bottom -\fIn\fR lines are cleared. The current cursor position remains the same. - -The \fBinsertln\fR and \fBwinsertln\fR routines insert a blank line above the -current line and the bottom line is lost. -.SH RETURN VALUE -All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4 -specifies only "an integer value other than \fBERR\fR") upon successful -completion. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. The -standard specifies that they return \fBERR\fR on failure, but specifies no -error conditions. -.SH NOTES -Note that all but \fBwinsdelln\fR may be macros. - -These routines do not require a hardware line delete or insert feature in the -terminal. In fact, they won't use hardware line delete/insert unless -\fBidlok(..., TRUE)\fR has been set on the current window. -.SH SEE ALSO -\fBcurses\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_extend.3x b/Build/source/libs/ncurses/man/curs_extend.3x deleted file mode 100644 index a5f187f0221..00000000000 --- a/Build/source/libs/ncurses/man/curs_extend.3x +++ /dev/null @@ -1,84 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1999-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" Author: Thomas E. Dickey 1999 -.\" -.\" $Id: curs_extend.3x,v 1.13 2004/07/05 13:16:08 tom Exp $ -.TH curs_extend 3X "" -.SH NAME -\fBcurses_version\fP, -\fBuse_extended_names\fP \- miscellaneous curses extensions - -.SH SYNOPSIS -\fB#include \fP - -\fBconst char * curses_version(void);\fP -.br -\fBint use_extended_names(bool enable);\fP -.SH DESCRIPTION -These functions are extensions to the curses library -which do not fit easily into other categories. -.PP -Use -.I curses_version() -to get the version number, including patch level of the library, e.g., -.B 5.0.19991023 -.PP -The -.I use_extended_names() -function controls whether the calling application -is able to use user-defined or nonstandard names -which may be compiled into the terminfo -description, i.e., via the terminfo or termcap interfaces. -Normally these names are available for use, since the essential decision -is made by using the \fB-x\fP option of \fItic\fP to compile -extended terminal definitions. -However you can disable this feature -to ensure compatibility with other implementations of curses. -.SH PORTABILITY -These routines are specific to ncurses. They were not supported on -Version 7, BSD or System V implementations. It is recommended that -any code depending on them be conditioned using NCURSES_VERSION. -.SH SEE ALSO -\fBcurs_getch\fR(3X), -\fBcurs_mouse\fR(3X), -\fBcurs_print\fR(3X), -\fBdefault_colors\fR(3X), -\fBdefine_key\fR(3X), -\fBkeybound\fR(3X), -\fBkeyok\fR(3X), -\fBresizeterm\fR(3X), -\fBwresize\fR(3X). -.SH AUTHOR -Thomas Dickey. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_get_wch.3x b/Build/source/libs/ncurses/man/curs_get_wch.3x deleted file mode 100644 index ce723a0a65d..00000000000 --- a/Build/source/libs/ncurses/man/curs_get_wch.3x +++ /dev/null @@ -1,161 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_get_wch.3x,v 1.5 2003/05/10 20:33:49 jmc Exp $ -.TH curs_get_wch 3X "" -.SH NAME -\fBget_wch\fR, -\fBwget_wch\fR, -\fBmvget_wch\fR, -\fBmvwget_wch\fR, -\fBunget_wch\fR \- get (or push back) a wide character from curses terminal keyboard -.SH SYNOPSIS -\fB#include \fR -.sp -\fBint get_wch(wint_t *\fR\fIwch\fR\fB);\fR -.br -\fBint wget_wch(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR -.br -\fBint mvget_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR -.br -\fBint mvwget_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwch\fR\fB);\fR -.br -\fBint unget_wch(const wchar_t \fR\fIwch\fR\fB);\fR -.SH DESCRIPTION -The -\fBget_wch\fR, -\fBwget_wch\fR, -\fBmvget_wch\fR, and -\fBmvwget_wch\fR -functions read a character -from the terminal associated with the current or specified window. -In no-delay mode, -if no input is waiting, the value \fBERR\fR is returned. -In delay mode, -the program waits until the system passes text through to the program. -Depending on the setting of \fBcbreak\fR, -this is after one character (cbreak mode), -or after the first newline (nocbreak mode). -In half-delay mode, -the program waits until the user types a character or the specified -timeout interval has elapsed. - -Unless \fBnoecho\fR has been set, -these routines echo the character into the designated window. - -If the window is not a pad and has been moved or modified since the -last call to \fBwrefresh\fR, -\fBwrefresh\fR will be called before another character is read. - -If \fBkeypad\fR is enabled, -these functions respond to -the pressing of a function key by setting the object pointed to by -\fIwch\fR -to the corresponding -\fBKEY_\fR -value defined -in -\fB\fR -and returning -\fBKEY_CODE_YES\fR. -If a character (such as escape) that could be the -beginning of a function key is received, curses sets a timer. -If the remainder -of the sequence does arrive within the designated time, curses passes through -the character; otherwise, curses returns the function key value. -For this -reason, many terminals experience a delay between the time a user presses -the escape key and the time the escape is returned to the program. -.PP -The -\fBunget_wch\fR -function pushes the wide character -\fIwch\fR -back onto the head of the input queue, so the wide character -is returned by the next call to -\fBget_wch\fR. -The pushback of -one character is guaranteed. -If the program calls -\fBunget_wch\fR -too many times without an intervening call to -\fBget_wch\fR, -the operation may fail. -.SH NOTES -The header file -\fB\fR -automatically -includes the header file -\fB\fR. -.PP -Applications should not define the escape key by itself as a single-character -function. -.PP -When using -\fBget_wch\fR, -\fBwget_wch\fR, -\fBmvget_wch\fR, or -\fBmvwget_wch\fR, applications should -not use -\fBnocbreak\fR -mode and -\fBecho\fR -mode -at the same time. -Depending on the state of the tty driver when each character -is typed, the program may produce undesirable results. -.PP -All functions except \fBwget_wch\fR and \fBunget_wch\fR -may be macros. -.SH RETURN VALUES -When -\fBget_wch\fR, -\fBwget_wch\fR, -\fBmvget_wch\fR, and -\fBmvwget_wch\fR -functions successfully -report the pressing of a function key, they return -\fBKEY_CODE_YES\fR. -When they successfully report a wide character, they return -\fBOK\fR. -Otherwise, they return -\fBERR\fR. -.PP -Upon successful completion, -\fBunget_wch\fR -returns -\fBOK\fR. -Otherwise, the function returns -\fBERR\fR. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_getch\fR(3X), -\fBcurs_ins_wch\fR(3X), -\fBcurs_inopts\fR(3X), -\fBcurs_move\fR(3X), -\fBcurs_refresh\fR(3X) diff --git a/Build/source/libs/ncurses/man/curs_get_wstr.3x b/Build/source/libs/ncurses/man/curs_get_wstr.3x deleted file mode 100644 index 86a5b82a11f..00000000000 --- a/Build/source/libs/ncurses/man/curs_get_wstr.3x +++ /dev/null @@ -1,167 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_get_wstr.3x,v 1.3 2003/07/05 11:15:28 tom Exp $ -.TH curs_get_wstr 3X "" -.SH NAME -\fBget_wstr\fR, -\fBgetn_wstr\fR, -\fBwget_wstr\fR, -\fBwgetn_wstr\fR, -\fBmvget_wstr\fR, -\fBmvgetn_wstr\fR, -\fBmvwget_wstr\fR, -\fBmvwgetn_wstr\fR \- get an array of wide characters from a curses terminal keyboard -.SH SYNOPSIS -.nf -\fB#include \fR - -\fBint get_wstr(wint_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint getn_wstr(wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint wget_wstr(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint wgetn_wstr(WINDOW *\fR\fIwin\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvget_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint mvgetn_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvwget_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint mvwgetn_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wint_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.fi -.SH DESCRIPTION -The effect of -\fBget_wstr\fR -is as though a series of calls -to -\fBget_wch\fR -were made, until a newline, other end-of-line, or end-of-file condition is processed. -An end-of-file condition is represented by \fBWEOF\fR, as defined in \fB\fR. -The newline and end-of-line conditions are represented by the \fB\\n\fR \fBwchar_t\fR value. -In all instances, the end of the string is terminated by a null \fBwchar_t\fR. -The routine places resulting values in the area pointed to by \fIwstr\fR. - -The user's erase and kill characters are interpreted. If keypad -mode is on for the window, \fBKEY_LEFT\fR and \fBKEY_BACKSPACE\fR -are both considered equivalent to the user's kill character. - -Characters input are echoed only if \fBecho\fR is currently on. In that case, -backspace is echoed as deletion of the previous character (typically a left -motion). - -The effect of -\fBwget_wstr\fR -is as though a series of -calls to -\fBwget_wch\fR -were made. - -The effect of -\fBmvget_wstr\fR -is as though a call to -\fBmove\fR -and then a series of calls to -\fBget_wch\fR -were -made. - -The effect of -\fBmvwget_wstr\fR -is as though a call to -\fBwmove\fR -and then a series of calls to -\fBwget_wch\fR -were made. - -The -\fBgetn_wstr\fR, -\fBmvgetn_wstr\fR, -\fBmvwgetn_wstr\fR, and -\fBwgetn_wstr\fR -functions are identical -to the -\fBget_wstr\fR, -\fBmvget_wstr\fR, -\fBmvwget_wstr\fR, and -\fBwget_wstr\fR -functions, respectively, -except that the -\fB*n_*\fR -versions read at most -\fIn\fR -characters, letting the application prevent overflow of the -input buffer. -.SH NOTES -Using -\fBget_wstr\fR, -\fBmvget_wstr\fR, -\fBmvwget_wstr\fR, or -\fBwget_wstr\fR -to read a line that -overflows the array pointed to by -\fBwstr\fR -causes undefined -results. -The use of -\fBgetn_wstr\fR, -\fBmvgetn_wstr\fR, -\fBmvwgetn_wstr\fR, or -\fBwgetn_wstr\fR, respectively, is recommended. - -These functions cannot return \fBKEY_\fR values because there -is no way to distinguish a \fBKEY_\fR value from a valid \fBwchar_t\fR value. - -All of these routines except \fBwgetn_wstr\fR may be macros. -.SH RETURN VALUES -All of these functions return \fBOK\fR upon successful completion. -Otherwise, they return \fBERR\fR. -.SH PORTABILITY -These functions are described in The Single Unix Specification, Version 2. -No error conditions are defined. -This implementation returns ERR if the window pointer is null, -or if the lower-level \fBwget_wch\fR call returns an ERR. -In the latter case, -an ERR return without other data is treated as an end-of-file condition, -and the returned array contains a \fBWEOF\fR followed by a null \fBwchar_t\fR. -.PP -X/Open curses documents these functions to pass an array of \fBwchar_t\fR, -but all of the vendors implement this using \fBwint_t\fR. -.SH SEE ALSO -Functions: -\fBcurses\fR(3X), -\fBcurs_get_wch\fR(3X), -\fBcurs_getstr\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_getcchar.3x b/Build/source/libs/ncurses/man/curs_getcchar.3x deleted file mode 100644 index 06623175831..00000000000 --- a/Build/source/libs/ncurses/man/curs_getcchar.3x +++ /dev/null @@ -1,144 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2001-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_getcchar.3x,v 1.7 2003/05/10 20:33:49 jmc Exp $ -.TH curs_getcchar 3X "" -.SH NAME -\fBgetcchar\fP, -\fBsetcchar\fP \- Get a wide character string and rendition from a \fBcchar_t\fP or set a \fBcchar_t\fP from a wide-character string -.SH SYNOPSIS -\fB#include \fP -.sp -\fBint getcchar(\fP -.br -.B " const cchar_t *\fIwcval\fP," -.br -.B " wchar_t *\fIwch\fP," -.br -.B " attr_t *\fIattrs\fP," -.br -.B " short *\fIcolor_pair\fP," -.br -.B " void *\fIopts\fP );" -.sp -.B "int setcchar(" -.br -.B " cchar_t *\fIwcval\fP," -.br -.B " const wchar_t *\fIwch\fP," -.br -.B " const attr_t \fIattrs\fP," -.br -.B " short \fIcolor_pair\fP," -.br -.B " void *\fIopts\fP );" -.SH DESCRIPTION -.PP -The \fBgetcchar\fP function gets a wide-character string -and rendition from a \fBcchar_t\fP argument. -When \fIwch\fP is not a null pointer, -the \fBgetcchar\fP function does the following: -.TP 5 -- -Extracts information from a \fBcchar_t\fP value \fIwcval\fP -.TP 5 -- -Stores the character attributes in the location pointed to by \fIattrs\fP -.TP 5 -- -Stores the color-pair in the location pointed to by \fIcolor_pair\fP -.TP 5 -- -Stores the wide-character string, -characters referenced by \fIwcval\fP, into the array pointed to by \fIwch\fP. -.PP -When -\fIwch\fP -is a null pointer, the -\fBgetcchar\fP -function does the following: -.TP 5 -- -Obtains the number of wide characters pointed to by \fIwcval\fP -.TP 5 -- -Does not change the data referenced by -\fIattrs\fP -or -\fIcolor_pair\fP -.PP -The \fBsetcchar\fP function initializes the location pointed to by \fIwcval\fP -by using: -.TP 5 -- -The character attributes in -\fIattrs\fP -.TP 5 -- -The color pair in -\fIcolor_pair\fP -.TP 5 -- -The wide-character string pointed to by \fIwch\fP. -The string must be L'\\0' terminated, -contain at most one character with strictly positive width, -which must be the first, -and contain no characters of negative width. -.SH NOTES -.PP -The \fIopts\fP argument is reserved for future use. -Currently, an application must provide a null pointer as \fIopts\fP. -.PP -The \fIwcval\fP argument may be a value generated by a call to -\fBsetcchar\fP or by a function that has a \fBcchar_t\fP output argument. -If \fIwcval\fP is constructed by any other means, the effect is unspecified. -.SH RETURN VALUES -.PP -When \fIwch\fP is a null pointer, -\fBgetcchar\fP returns the number of wide characters referenced by -\fIwcval\fP, including the null terminator. -.PP -When \fIwch\fP is not a null pointer, -\fBgetcchar\fP returns \fBOK\fP upon successful completion, -and \fBERR\fP otherwise. -.PP -Upon successful completion, \fBsetcchar\fP returns \fBOK\fP. -Otherwise, it returns \fBERR\fP. -.SH SEE ALSO -.PP -Functions: -\fBcurses\fR(3X), -\fBwcwidth\fR(3X), -\fBcurs_attr_get\fR(3X), -\fBcan_change_color\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_getch.3x b/Build/source/libs/ncurses/man/curs_getch.3x deleted file mode 100644 index 88003a5d9dd..00000000000 --- a/Build/source/libs/ncurses/man/curs_getch.3x +++ /dev/null @@ -1,307 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_getch.3x,v 1.24 2003/12/27 18:46:06 tom Exp $ -.TH curs_getch 3X "" -.SH NAME -\fBgetch\fR, -\fBwgetch\fR, -\fBmvgetch\fR, -\fBmvwgetch\fR, -\fBungetch\fR, -\fBhas_key\fR \- get (or push back) characters from \fBcurses\fR terminal keyboard -.SH SYNOPSIS -\fB#include \fR -.PP -\fBint getch(void);\fR -.br -\fBint wgetch(WINDOW *win);\fR -.br -\fBint mvgetch(int y, int x);\fR -.br -\fBint mvwgetch(WINDOW *win, int y, int x);\fR -.br -\fBint ungetch(int ch);\fR -.br -\fBint has_key(int ch);\fR -.br -.SH DESCRIPTION -The \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR and \fBmvwgetch\fR, routines read -a character from the window. -In no-delay mode, if no input is waiting, the value \fBERR\fR is returned. -In delay mode, the program waits until the system -passes text through to the program. -Depending on the setting of \fBcbreak\fR, -this is after one character (cbreak mode), -or after the first newline (nocbreak mode). -In half-delay mode, -the program waits until a character is typed or the -specified timeout has been reached. -.PP -Unless \fBnoecho\fR has been set, -then the character will also be echoed into the -designated window according to the following rules: -If the character is the current erase character, left arrow, or backspace, -the cursor is moved one space to the left and that screen position is erased -as if \fBdelch\fR had been called. -If the character value is any other \fBKEY_\fR define, the user is alerted -with a \fBbeep\fR call. -Otherwise the character is simply output to the screen. -.PP -If the window is not a pad, and it has been moved or modified since the last -call to \fBwrefresh\fR, \fBwrefresh\fR will be called before another character -is read. -.PP -If \fBkeypad\fR is \fBTRUE\fR, and a function key is pressed, the token for -that function key is returned instead of the raw characters. -Possible function -keys are defined in \fB\fR as macros with values outside the range -of 8-bit characters whose names begin with \fBKEY_\fR. Thus, a variable -intended to hold the return value of a function key must be of short size or -larger. -.PP -When a character that could be the beginning of a function key is received -(which, on modern terminals, means an escape character), -\fBcurses\fR sets a timer. -If the remainder of the sequence does not come in within the designated -time, the character is passed through; -otherwise, the function key value is returned. -For this reason, many terminals experience a delay between the time -a user presses the escape key and the escape is returned to the program. -.PP -The \fBungetch\fR routine places \fIch\fR back onto the input queue to be -returned by the next call to \fBwgetch\fR. -There is just one input queue for all windows. -.PP -.SS Function Keys -The following function keys, defined in \fB\fR, might be returned by -\fBgetch\fR if \fBkeypad\fR has been enabled. -Note that not all of these are -necessarily supported on any particular terminal. -.sp -.TS -center tab(/) ; -l l -l l . -\fIName\fR/\fIKey\fR \fIname\fR -.PP -KEY_BREAK/Break key -KEY_DOWN/The four arrow keys ... -KEY_UP -KEY_LEFT -KEY_RIGHT -KEY_HOME/Home key (upward+left arrow) -KEY_BACKSPACE/Backspace -KEY_F0/T{ -Function keys; space for 64 keys is reserved. -T} -KEY_F(\fIn\fR)/T{ -For 0 \(<= \fIn\fR \(<= 63 -T} -KEY_DL/Delete line -KEY_IL/Insert line -KEY_DC/Delete character -KEY_IC/Insert char or enter insert mode -KEY_EIC/Exit insert char mode -KEY_CLEAR/Clear screen -KEY_EOS/Clear to end of screen -KEY_EOL/Clear to end of line -KEY_SF/Scroll 1 line forward -KEY_SR/Scroll 1 line backward (reverse) -KEY_NPAGE/Next page -KEY_PPAGE/Previous page -KEY_STAB/Set tab -KEY_CTAB/Clear tab -KEY_CATAB/Clear all tabs -KEY_ENTER/Enter or send -KEY_SRESET/Soft (partial) reset -KEY_RESET/Reset or hard reset -KEY_PRINT/Print or copy -KEY_LL/Home down or bottom (lower left) -KEY_A1/Upper left of keypad -KEY_A3/Upper right of keypad -KEY_B2/Center of keypad -KEY_C1/Lower left of keypad -KEY_C3/Lower right of keypad -KEY_BTAB/Back tab key -KEY_BEG/Beg(inning) key -KEY_CANCEL/Cancel key -KEY_CLOSE/Close key -KEY_COMMAND/Cmd (command) key -KEY_COPY/Copy key -KEY_CREATE/Create key -KEY_END/End key -KEY_EXIT/Exit key -KEY_FIND/Find key -KEY_HELP/Help key -KEY_MARK/Mark key -KEY_MESSAGE/Message key -KEY_MOUSE/Mouse event read -KEY_MOVE/Move key -KEY_NEXT/Next object key -KEY_OPEN/Open key -KEY_OPTIONS/Options key -KEY_PREVIOUS/Previous object key -KEY_REDO/Redo key -KEY_REFERENCE/Ref(erence) key -KEY_REFRESH/Refresh key -KEY_REPLACE/Replace key -KEY_RESIZE/Screen resized -KEY_RESTART/Restart key -KEY_RESUME/Resume key -KEY_SAVE/Save key -KEY_SBEG/Shifted beginning key -KEY_SCANCEL/Shifted cancel key -KEY_SCOMMAND/Shifted command key -KEY_SCOPY/Shifted copy key -KEY_SCREATE/Shifted create key -KEY_SDC/Shifted delete char key -KEY_SDL/Shifted delete line key -KEY_SELECT/Select key -KEY_SEND/Shifted end key -KEY_SEOL/Shifted clear line key -KEY_SEXIT/Shifted exit key -KEY_SFIND/Shifted find key -KEY_SHELP/Shifted help key -KEY_SHOME/Shifted home key -KEY_SIC/Shifted input key -KEY_SLEFT/Shifted left arrow key -KEY_SMESSAGE/Shifted message key -KEY_SMOVE/Shifted move key -KEY_SNEXT/Shifted next key -KEY_SOPTIONS/Shifted options key -KEY_SPREVIOUS/Shifted prev key -KEY_SPRINT/Shifted print key -KEY_SREDO/Shifted redo key -KEY_SREPLACE/Shifted replace key -KEY_SRIGHT/Shifted right arrow -KEY_SRSUME/Shifted resume key -KEY_SSAVE/Shifted save key -KEY_SSUSPEND/Shifted suspend key -KEY_SUNDO/Shifted undo key -KEY_SUSPEND/Suspend key -KEY_UNDO/Undo key -.TE -.PP -Keypad is arranged like this: -.sp -.TS -center allbox tab(/) ; -c c c . -\fBA1\fR/\fBup\fR/\fBA3\fR -\fBleft\fR/\fBB2\fR/\fBright\fR -\fBC1\fR/\fBdown\fR/\fBC3\fR -.TE -.sp -The \fBhas_key\fR routine takes a key value from the above list, and -returns TRUE or FALSE according to whether -the current terminal type recognizes a key with that value. -Note that a few values do not correspond to a real key, -e.g., KEY_RESIZE and KEY_MOUSE. -.PP -.SH RETURN VALUE -All routines return the integer \fBERR\fR upon failure and an integer value -other than \fBERR\fR (\fBOK\fR in the case of ungetch()) upon successful -completion. -.SH NOTES -Use of the escape key by a programmer for a single character function is -discouraged, as it will cause a delay of up to one second while the -keypad code looks for a following function-key sequence. -.PP -Note that some keys may be the same as commonly used control -keys, e.g., KEY_ENTER versus control/M, KEY_BACKSPACE versus control/H. -Some curses implementations may differ according to whether they -treat these control keys specially (and ignore the terminfo), or -use the terminfo definitions. -\fBNcurses\fR uses the terminfo definition. -If it says that KEY_ENTER is control/M, \fBgetch\fR will return KEY_ENTER -when you press control/M. -.PP -When using \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR, or -\fBmvwgetch\fR, nocbreak mode (\fBnocbreak\fR) and echo mode -(\fBecho\fR) should not be used at the same time. -Depending on the -state of the tty driver when each character is typed, the program may -produce undesirable results. -.PP -Note that \fBgetch\fR, \fBmvgetch\fR, and \fBmvwgetch\fR may be macros. -.PP -Historically, the set of keypad macros was largely defined by the extremely -function-key-rich keyboard of the AT&T 7300, aka 3B1, aka Safari 4. -Modern -personal computers usually have only a small subset of these. -IBM PC-style -consoles typically support little more than \fBKEY_UP\fR, \fBKEY_DOWN\fR, -\fBKEY_LEFT\fR, \fBKEY_RIGHT\fR, \fBKEY_HOME\fR, \fBKEY_END\fR, -\fBKEY_NPAGE\fR, \fBKEY_PPAGE\fR, and function keys 1 through 12. -The Ins key -is usually mapped to \fBKEY_IC\fR. -.SH PORTABILITY -The *get* functions are described in the XSI Curses standard, Issue 4. -They -read single-byte characters only. -The standard specifies that they return -\fBERR\fR on failure, but specifies no error conditions. -.PP -The echo behavior of these functions on input of \fBKEY_\fR or backspace -characters was not specified in the SVr4 documentation. -This description is -adopted from the XSI Curses standard. -.PP -The behavior of \fBgetch\fR and friends in the presence of handled signals is -unspecified in the SVr4 and XSI Curses documentation. -Under historical curses -implementations, it varied depending on whether the operating system's -implementation of handled signal receipt interrupts a \fBread\fR(2) call in -progress or not, and also (in some implementations) depending on whether an -input timeout or non-blocking mode has been set. -.PP -Programmers concerned about portability should be prepared for either of two -cases: (a) signal receipt does not interrupt \fBgetch\fR; (b) signal receipt -interrupts \fBgetch\fR and causes it to return ERR with \fBerrno\fR set to -\fBEINTR\fR. -Under the \fBncurses\fR implementation, handled signals never -interrupt \fBgetch\fR. -.PP -The \fBhas_key\fR function is unique to \fBncurses\fR. -We recommend that -any code using it be conditionalized on the \fBNCURSES_VERSION\fR feature macro. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_inopts\fR(3X), -\fBcurs_mouse\fR(3X), -\fBcurs_move\fR(3X), -\fBcurs_refresh\fR(3X). -\fBresizeterm\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_getstr.3x b/Build/source/libs/ncurses/man/curs_getstr.3x deleted file mode 100644 index ffbd2887240..00000000000 --- a/Build/source/libs/ncurses/man/curs_getstr.3x +++ /dev/null @@ -1,107 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_getstr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $ -.TH curs_getstr 3X "" -.SH NAME -\fBgetstr\fR, -\fBgetnstr\fR, -\fBwgetstr\fR, -\fBwgetnstr\fR, -\fBmvgetstr\fR, -\fBmvgetnstr\fR, -\fBmvwgetstr\fR, -\fBmvwgetnstr\fR - accept character strings from \fBcurses\fR terminal keyboard -.SH SYNOPSIS -\fB#include \fR - -\fBint getstr(char *str);\fR -.br -\fBint getnstr(char *str, int n);\fR -.br -\fBint wgetstr(WINDOW *win, char *str);\fR -.br -\fBint wgetnstr(WINDOW *win, char *str, int n);\fR -.br -\fBint mvgetstr(int y, int x, char *str);\fR -.br -\fBint mvwgetstr(WINDOW *win, int y, int x, char *str);\fR -.br -\fBint mvgetnstr(int y, int x, char *str, int n);\fR -.br -\fBint mvwgetnstr(WINDOW *, int y, int x, char *str, int n);\fR -.br -.SH DESCRIPTION -The function \fBgetstr\fR is equivalent to a series of calls to \fBgetch\fR, -until a newline or carriage return is received (the terminating character is -not included in the returned string). The resulting value is placed in the -area pointed to by the character pointer \fIstr\fR. - -\fBwgetnstr\fR reads at most \fIn\fR characters, thus preventing a possible -overflow of the input buffer. Any attempt to enter more characters (other -than the terminating newline or carriage return) causes a beep. Function -keys also cause a beep and are ignored. The \fBgetnstr\fR function reads -from the \fIstdscr\fR default window. - -The user's erase and kill characters are interpreted. If keypad -mode is on for the window, \fBKEY_LEFT\fR and \fBKEY_BACKSPACE\fR -are both considered equivalent to the user's kill character. - -Characters input are echoed only if \fBecho\fR is currently on. In that case, -backspace is echoed as deletion of the previous character (typically a left -motion). -.SH RETURN VALUE -All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4 -specifies only "an integer value other than \fBERR\fR") upon successful -completion. -.SH NOTES -Note that \fBgetstr\fR, \fBmvgetstr\fR, and \fBmvwgetstr\fR may be macros. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. -They read single-byte characters only. -The standard does not define any error conditions. -This implementation returns ERR if the window pointer is null, -or if the lower-level \fBwgetch\fR call returns an ERR. - -SVr3 and early SVr4 curses implementations did not reject function keys; -the SVr4.0 documentation claimed that "special keys" (such as function -keys, "home" key, "clear" key, \fIetc\fR.) are "interpreted", without -giving details. It lied. In fact, the `character' value appended to the -string by those implementations was predictable but not useful -(being, in fact, the low-order eight bits of the key's KEY_ value). - -The functions \fBgetnstr\fR, \fBmvgetnstr\fR, and \fBmvwgetnstr\fR were -present but not documented in SVr4. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_getch\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_getyx.3x b/Build/source/libs/ncurses/man/curs_getyx.3x deleted file mode 100644 index 1e1a6eff1f3..00000000000 --- a/Build/source/libs/ncurses/man/curs_getyx.3x +++ /dev/null @@ -1,89 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_getyx.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $ -.TH curs_getyx 3X "" -.SH NAME -\fBgetyx\fR, -\fBgetparyx\fR, -\fBgetbegyx\fR, -\fBgetmaxyx\fR - get \fBcurses\fR cursor and window coordinates -.SH SYNOPSIS -\fB#include \fR - -\fBvoid getyx(WINDOW *win, int y, int x);\fR -.br -\fBvoid getparyx(WINDOW *win, int y, int x);\fR -.br -\fBvoid getbegyx(WINDOW *win, int y, int x);\fR -.br -\fBvoid getmaxyx(WINDOW *win, int y, int x);\fR -.br -.SH DESCRIPTION -The \fBgetyx\fR macro places the current cursor position of the given window in -the two integer variables \fIy\fR and \fIx\fR. - -If \fIwin\fR is a subwindow, the \fBgetparyx\fR macro places the beginning -coordinates of the subwindow relative to the parent window into two integer -variables \fIy\fR and \fIx\fR. -Otherwise, \fB-1\fR is placed into \fIy\fR and \fIx\fR. - -Like \fBgetyx\fR, the \fBgetbegyx\fR and \fBgetmaxyx\fR macros store -the current beginning coordinates and size of the specified window. -.SH RETURN VALUE -The return values of these macros are undefined (i.e., -they should not be used as the right-hand side of assignment statements). -.SH NOTES -All of these interfaces are macros. -A "\fB&\fR" is not necessary before the variables \fIy\fR and \fIx\fR. -.SH PORTABILITY -The -\fBgetyx\fR, -\fBgetparyx\fR, -\fBgetbegyx\fR and -\fBgetmaxyx\fR -functions are described in the XSI Curses standard, Issue 4. -.PP -This implementation also provides -\fBgetbegx\fR, -\fBgetbegy\fR, -\fBgetcurx\fR, -\fBgetcury\fR, -\fBgetmaxx\fR, -\fBgetmaxy\fR, -\fBgetparx\fR and -\fBgetpary\fR -for compatibility with older versions of curses. -.SH SEE ALSO -\fBcurses\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_in_wch.3x b/Build/source/libs/ncurses/man/curs_in_wch.3x deleted file mode 100644 index 668595c6f3e..00000000000 --- a/Build/source/libs/ncurses/man/curs_in_wch.3x +++ /dev/null @@ -1,68 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_in_wch.3x,v 1.1 2002/03/10 15:08:57 tom Exp $ -.TH curs_in_wch 3X "" -.SH NAME -\fBin_wch\fR, -\fBmvin_wch\fR, -\fBmvwin_wch\fR, -\fBwin_wch\fR - extract a complex character and rendition from a window -.SH SYNOPSIS -\fB#include \fR - -\fBint in_wch(cchar_t *\fR\fIwcval\fR\fB);\fR -.br -\fBint mvin_wch(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR -.br -\fBint mvwin_wch(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR -.br -\fBint win_wch(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwcval\fR\fB);\fR -.SH DESCRIPTION -These functions extract the complex character and rendition from -the current position in the named window into the \fBcchar_t\fR object -referenced by wcval. -.SH RETURN VALUE -No errors are defined in the XSI Curses standard. -This implementation checks for null pointers, returns ERR in that case. -Also, the \fImv\fR routines check for error moving the cursor, returning ERR -in that case. -Otherwise they return OK -.SH NOTES -Note that all of these routines may be macros. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_inch\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_in_wchstr.3x b/Build/source/libs/ncurses/man/curs_in_wchstr.3x deleted file mode 100644 index 0012789f70f..00000000000 --- a/Build/source/libs/ncurses/man/curs_in_wchstr.3x +++ /dev/null @@ -1,117 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_in_wchstr.3x,v 1.2 2002/05/18 21:48:30 tom Exp $ -.TH curs_in_wchstr 3X "" -.SH NAME -\fBin_wchstr\fR, -\fBin_wchnstr\fR, -\fBwin_wchstr\fR, -\fBwin_wchnstr\fR, -\fBmvin_wchstr\fR, -\fBmvin_wchnstr\fR, -\fBmvwin_wchstr\fR, -\fBmvwin_wchnstr\fR \- get an array of complex characters and renditions from a curses window -.SH SYNOPSIS -.nf -\fB#include \fR - -\fBint in_wchstr(cchar_t *\fR\fIwchstr\fR\fB);\fR -.br -\fBint in_wchnstr(cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint win_wchstr(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR -.br -\fBint win_wchnstr(WINDOW *\fR\fIwin\fR\fB, cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvin_wchstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR -.br -\fBint mvin_wchnstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvwin_wchstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR\fB);\fR -.br -\fBint mvwin_wchnstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, cchar_t *\fR\fIwchstr\fR, int \fIn\fR\fB);\fR -.fi -.SH DESCRIPTION -These functions return an array of complex characters in \fIwchstr\fR, -starting at the current cursor position in the named window. -Attributes (rendition) are stored with the characters. -.PP -The -\fBin_wchnstr\fR, -\fBmvin_wchnstr\fR, -\fBmvwin_wchnstr\fR -and -\fBwin_wchnstr\fR -fill the array -with at most -\fIn\fR -\fBcchar_t\fR -elements. -.br -.SH NOTES -Note that all routines except -\fBwin_wchnstr\fR -may be -macros. -.PP -Reading a line that overflows the array pointed to by -\fIwchstr\fR -with -\fBin_wchstr\fR, -\fBmvin_wchstr\fR, -\fBmvwin_wchstr\fR -or -\fBwin_wchstr\fR -causes undefined results. Therefore, the use of -\fBin_wchnstr\fR, -\fBmvin_wchnstr\fR, -\fBmvwin_wchnstr\fR, or -\fBwin_wchnstr\fR -is recommended. -.SH RETURN VALUES -Upon successful completion, these functions return -\fBOK\fR. -Otherwise, they return -\fBERR\fR. -.SH PORTABILITY -The XSI Curses defines no error conditions. -This implementation checks for null pointers, -returning ERR in that case. -.SH SEE ALSO -Functions: -\fBcurses\fR(3X), -\fBcurs_in_wch\fR(3X) -\fBcurs_instr\fR(3X), -\fBcurs_inwstr\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_inch.3x b/Build/source/libs/ncurses/man/curs_inch.3x deleted file mode 100644 index bcc8d6f85c6..00000000000 --- a/Build/source/libs/ncurses/man/curs_inch.3x +++ /dev/null @@ -1,73 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_inch.3x,v 1.11 1998/11/29 01:04:34 Rick.Ohnemus Exp $ -.TH curs_inch 3X "" -.SH NAME -\fBinch\fR, \fBwinch\fR, \fBmvinch\fR, \fBmvwinch\fR -- get a character and attributes from a \fBcurses\fR window -.SH SYNOPSIS -\fB#include \fR - -\fBchtype inch(void);\fR -.br -\fBchtype winch(WINDOW *win);\fR -.br -\fBchtype mvinch(int y, int x);\fR -.br -\fBchtype mvwinch(WINDOW *win, int y, int x);\fR -.br -.SH DESCRIPTION -These routines return the character, of type \fBchtype\fR, at the current -position in the named window. If any attributes are set for that position, -their values are OR'ed into the value returned. Constants defined in -\fB\fR can be used with the \fB&\fR (logical AND) operator to -extract the character or attributes alone. - -.SS Attributes -The following bit-masks may be AND-ed with characters returned by \fBwinch\fR. - -.TS -l l . -\fBA_CHARTEXT\fR Bit-mask to extract character -\fBA_ATTRIBUTES\fR Bit-mask to extract attributes -\fBA_COLOR\fR Bit-mask to extract color-pair field information -.TE -.SH NOTES -Note that all of these routines may be macros. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. -.SH SEE ALSO -\fBcurses\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_inchstr.3x b/Build/source/libs/ncurses/man/curs_inchstr.3x deleted file mode 100644 index 60f9d566e9f..00000000000 --- a/Build/source/libs/ncurses/man/curs_inchstr.3x +++ /dev/null @@ -1,88 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_inchstr.3x,v 1.8 2000/07/01 20:16:18 tom Exp $ -.TH curs_inchstr 3X "" -.SH NAME -\fBinchstr\fR, -\fBinchnstr\fR, -\fBwinchstr\fR, -\fBwinchnstr\fR, -\fBmvinchstr\fR, -\fBmvinchnstr\fR, -\fBmvwinchstr\fR, -\fBmvwinchnstr\fR - get a string of characters (and attributes) from a \fBcurses\fR window -.SH SYNOPSIS -\fB#include \fR - -\fBint inchstr(chtype *chstr);\fR -.br -\fBint inchnstr(chtype *chstr, int n);\fR -.br -\fBint winchstr(WINDOW *win, chtype *chstr);\fR -.br -\fBint winchnstr(WINDOW *win, chtype *chstr, int n);\fR -.br -\fBint mvinchstr(int y, int x, chtype *chstr);\fR -.br -\fBint mvinchnstr(int y, int x, chtype *chstr, int n);\fR -.br -\fBint mvwinchstr(WINDOW *win, int y, int x, chtype *chstr);\fR -.br -\fBint mvwinchnstr(WINDOW *win, int y, int x, chtype *chstr, int n);\fR -.br -.SH DESCRIPTION -These routines return a NULL-terminated array of \fBchtype\fR quantities, -starting at the current cursor position in the named window and ending at the -right margin of the window. The four functions with \fIn\fR as -the last argument, return a leading substring at most \fIn\fR characters long -(exclusive of the trailing (chtype)0). -Constants defined in \fB\fR can be used with the \fB&\fR (logical -AND) operator to extract the character or the attribute alone from any position -in the \fIchstr\fR [see \fBcurs_inch\fR(3X)]. -.SH RETURN VALUE -All routines return the integer \fBERR\fR upon failure and an integer value -other than \fBERR\fR upon successful completion (the number of characters -retrieved, exclusive of the trailing 0). -.SH NOTES -Note that all routines except \fBwinchnstr\fR may be macros. SVr4 does not -document whether the result string is 0-terminated; it does not document -whether a length limit argument includes any trailing 0; and it does not -document the meaning of the return value. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. It is no -more specific than the SVr4 documentation on the trailing 0. It does specify -that the successful return of the functions is \fBOK\fR. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_inch\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_initscr.3x b/Build/source/libs/ncurses/man/curs_initscr.3x deleted file mode 100644 index 02f149dff7f..00000000000 --- a/Build/source/libs/ncurses/man/curs_initscr.3x +++ /dev/null @@ -1,124 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_initscr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $ -.TH curs_initscr 3X "" -.SH NAME -\fBinitscr\fR, -\fBnewterm\fR, -\fBendwin\fR, -\fBisendwin\fR, -\fBset_term\fR, -\fBdelscreen\fR - \fBcurses\fR screen initialization and manipulation routines -.SH SYNOPSIS -\fB#include \fR - -\fBWINDOW *initscr(void);\fR -.br -\fBint endwin(void);\fR -.br -\fBbool isendwin(void);\fR -.br -\fBSCREEN *newterm(char *type, FILE *outfd, FILE *infd);\fR -.br -\fBSCREEN *set_term(SCREEN *new);\fR -.br -\fBvoid delscreen(SCREEN* sp);\fR -.br -.SH DESCRIPTION -\fBinitscr\fR is normally the first \fBcurses\fR routine to call when -initializing a program. A few special routines sometimes need to be -called before it; these are \fBslk_init\fR, \fBfilter\fR, \fBripoffline\fR, -\fBuse_env\fR. For multiple-terminal applications, \fBnewterm\fR may be -called before \fBinitscr\fR. - -The initscr code determines the terminal type and initializes all \fBcurses\fR -data structures. \fBinitscr\fR also causes the first call to \fBrefresh\fR to -clear the screen. If errors occur, \fBinitscr\fR writes an appropriate error -message to standard error and exits; otherwise, a pointer is returned to -\fBstdscr\fR. - -A program that outputs to more than one terminal should use the \fBnewterm\fR -routine for each terminal instead of \fBinitscr\fR. A program that needs to -inspect capabilities, so it can continue to run in a line-oriented mode if the -terminal cannot support a screen-oriented program, would also use -\fBnewterm\fR. The routine \fBnewterm\fR should be called once for each -terminal. It returns a variable of type \fBSCREEN *\fR which should be saved -as a reference to that terminal. The arguments are the \fItype\fR of the -terminal to be used in place of \fB$TERM\fR, a file pointer for output to the -terminal, and another file pointer for input from the terminal (if \fItype\fR -is \fBNULL\fR, \fB$TERM\fR will be used). The program must also call -\fBendwin\fR for each terminal being used before exiting from \fBcurses\fR. -If \fBnewterm\fR is called more than once for the same terminal, the first -terminal referred to must be the last one for which \fBendwin\fR is called. - -A program should always call \fBendwin\fR before exiting or escaping from -\fBcurses\fR mode temporarily. This routine restores tty modes, moves the -cursor to the lower left-hand corner of the screen and resets the terminal into -the proper non-visual mode. Calling \fBrefresh\fR or \fBdoupdate\fR after a -temporary escape causes the program to resume visual mode. - -The \fBisendwin\fR routine returns \fBTRUE\fR if \fBendwin\fR has been -called without any subsequent calls to \fBwrefresh\fR, and \fBFALSE\fR -otherwise. - -The \fBset_term\fR routine is used to switch between different -terminals. The screen reference \fBnew\fR becomes the new current -terminal. The previous terminal is returned by the routine. This is -the only routine which manipulates \fBSCREEN\fR pointers; all other -routines affect only the current terminal. - -The \fBdelscreen\fR routine frees storage associated with the -\fBSCREEN\fR data structure. The \fBendwin\fR routine does not do -this, so \fBdelscreen\fR should be called after \fBendwin\fR if a -particular \fBSCREEN\fR is no longer needed. -.SH RETURN VALUE -\fBendwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR -upon successful completion. - -Routines that return pointers always return \fBNULL\fR on error. -.SH NOTES -Note that \fBinitscr\fR and \fBnewterm\fR may be macros. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. It -specifies that portable applications must not call \fBinitscr\fR more than -once. - -Old versions of curses, e.g., BSD 4.4, may have returned a null pointer -from \fBinitscr\fR when an error is detected, rather than exiting. -It is safe but redundant to check the return value of \fBinitscr\fR -in XSI Curses. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_refresh\fR(3X), -\fBcurs_slk\fR(3X), \fBcurs_util\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_inopts.3x b/Build/source/libs/ncurses/man/curs_inopts.3x deleted file mode 100644 index 24a9bd61452..00000000000 --- a/Build/source/libs/ncurses/man/curs_inopts.3x +++ /dev/null @@ -1,214 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_inopts.3x,v 1.11 2003/12/27 18:45:42 tom Exp $ -.TH curs_inopts 3X "" -.SH NAME -\fBcbreak\fR, \fBnocbreak\fR, \fBecho\fR, -\fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR, \fBkeypad\fR, -\fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBraw\fR, \fBnoraw\fR, -\fBnoqiflush\fR, \fBqiflush\fR, \fBtimeout\fR, \fBwtimeout\fR, -\fBtypeahead\fR - \fBcurses\fR input options -.SH SYNOPSIS -\fB#include \fR -.PP -\fBint cbreak(void);\fR -.br -\fBint nocbreak(void);\fR -.br -\fBint echo(void);\fR -.br -\fBint noecho(void);\fR -.br -\fBint halfdelay(int tenths);\fR -.br -\fBint intrflush(WINDOW *win, bool bf);\fR -.br -\fBint keypad(WINDOW *win, bool bf);\fR -.br -\fBint meta(WINDOW *win, bool bf);\fR -.br -\fBint nodelay(WINDOW *win, bool bf);\fR -.br -\fBint raw(void);\fR -.br -\fBint noraw(void);\fR -.br -\fBvoid noqiflush(void);\fR -.br -\fBvoid qiflush(void);\fR -.br -\fBint notimeout(WINDOW *win, bool bf);\fR -.br -\fBvoid timeout(int delay);\fR -.br -\fBvoid wtimeout(WINDOW *win, int delay);\fR -.br -\fBint typeahead(int fd);\fR -.br -.SH DESCRIPTION -Normally, the tty driver buffers typed characters until a newline or carriage -return is typed. The \fBcbreak\fR routine disables line buffering and -erase/kill character-processing (interrupt and flow control characters are -unaffected), making characters typed by the user immediately available to the -program. The \fBnocbreak\fR routine returns the terminal to normal (cooked) -mode. -.PP -Initially the terminal may or may not be in \fBcbreak\fR mode, as the mode is -inherited; therefore, a program should call \fBcbreak\fR or \fBnocbreak\fR -explicitly. Most interactive programs using \fBcurses\fR set the \fBcbreak\fR -mode. Note that \fBcbreak\fR overrides \fBraw\fR. -[See \fBcurs_getch\fR(3X) for a -discussion of how these routines interact with \fBecho\fR and \fBnoecho\fR.] -.PP -The \fBecho\fR and \fBnoecho\fR routines control whether characters typed by -the user are echoed by \fBgetch\fR as they are typed. Echoing by the tty -driver is always disabled, but initially \fBgetch\fR is in echo mode, so -characters typed are echoed. Authors of most interactive programs prefer to do -their own echoing in a controlled area of the screen, or not to echo at all, so -they disable echoing by calling \fBnoecho\fR. -[See \fBcurs_getch\fR(3X) for a -discussion of how these routines interact with \fBcbreak\fR and -\fBnocbreak\fR.] -.PP -The \fBhalfdelay\fR routine is used for half-delay mode, which is similar to -\fBcbreak\fR mode in that characters typed by the user are immediately -available to the program. However, after blocking for \fItenths\fR tenths of -seconds, ERR is returned if nothing has been typed. The value of \fBtenths\fR -must be a number between 1 and 255. Use \fBnocbreak\fR to leave half-delay -mode. -.PP -If the \fBintrflush\fR option is enabled, (\fIbf\fR is \fBTRUE\fR), when an -interrupt key is pressed on the keyboard (interrupt, break, quit) all output in -the tty driver queue will be flushed, giving the effect of faster response to -the interrupt, but causing \fBcurses\fR to have the wrong idea of what is on -the screen. Disabling (\fIbf\fR is \fBFALSE\fR), the option prevents the -flush. The default for the option is inherited from the tty driver settings. -The window argument is ignored. -.PP -The \fBkeypad\fR option enables the keypad of the user's terminal. If -enabled (\fIbf\fR is \fBTRUE\fR), the user can press a function key -(such as an arrow key) and \fBwgetch\fR returns a single value -representing the function key, as in \fBKEY_LEFT\fR. If disabled -(\fIbf\fR is \fBFALSE\fR), \fBcurses\fR does not treat function keys -specially and the program has to interpret the escape sequences -itself. If the keypad in the terminal can be turned on (made to -transmit) and off (made to work locally), turning on this option -causes the terminal keypad to be turned on when \fBwgetch\fR is -called. The default value for keypad is false. -.PP -Initially, whether the terminal returns 7 or 8 significant bits on -input depends on the control mode of the tty driver [see termio(7)]. -To force 8 bits to be returned, invoke \fBmeta\fR(\fIwin\fR, -\fBTRUE\fR); this is equivalent, under POSIX, to setting the CS8 flag -on the terminal. To force 7 bits to be returned, invoke -\fBmeta\fR(\fIwin\fR, \fBFALSE\fR); this is equivalent, under POSIX, -to setting the CS7 flag on the terminal. The window argument, -\fIwin\fR, is always ignored. If the terminfo capabilities \fBsmm\fR -(meta_on) and \fBrmm\fR (meta_off) are defined for the terminal, -\fBsmm\fR is sent to the terminal when \fBmeta\fR(\fIwin\fR, -\fBTRUE\fR) is called and \fBrmm\fR is sent when \fBmeta\fR(\fIwin\fR, -\fBFALSE\fR) is called. -.PP -The \fBnodelay\fR option causes \fBgetch\fR to be a non-blocking call. -If no input is ready, \fBgetch\fR returns \fBERR\fR. If disabled -(\fIbf\fR is \fBFALSE\fR), \fBgetch\fR waits until a key is pressed. -.PP -While interpreting an input escape sequence, \fBwgetch\fR sets a timer -while waiting for the next character. If \fBnotimeout(\fR\fIwin\fR, -\fBTRUE\fR) is called, then \fBwgetch\fR does not set a timer. The -purpose of the timeout is to differentiate between sequences received -from a function key and those typed by a user. -.PP -The \fBraw\fR and \fBnoraw\fR routines place the terminal into or out of raw -mode. Raw mode is similar to \fBcbreak\fR mode, in that characters typed are -immediately passed through to the user program. The differences are that in -raw mode, the interrupt, quit, suspend, and flow control characters are all -passed through uninterpreted, instead of generating a signal. The behavior of -the BREAK key depends on other bits in the tty driver that are not set by -\fBcurses\fR. -.PP -When the \fBnoqiflush\fR routine is used, normal flush of input and -output queues associated with the \fBINTR\fR, \fBQUIT\fR and -\fBSUSP\fR characters will not be done [see termio(7)]. When -\fBqiflush\fR is called, the queues will be flushed when these control -characters are read. You may want to call \fBnoqiflush()\fR in a signal -handler if you want output to continue as though the interrupt -had not occurred, after the handler exits. -.PP -The \fBtimeout\fR and \fBwtimeout\fR routines set blocking or -non-blocking read for a given window. If \fIdelay\fR is negative, -blocking read is used (i.e., waits indefinitely for -input). If \fIdelay\fR is zero, then non-blocking read is used -(i.e., read returns \fBERR\fR if no input is waiting). If -\fIdelay\fR is positive, then read blocks for \fIdelay\fR -milliseconds, and returns \fBERR\fR if there is still no input. -Hence, these routines provide the same functionality as \fBnodelay\fR, -plus the additional capability of being able to block for only -\fIdelay\fR milliseconds (where \fIdelay\fR is positive). -.PP -The \fBcurses\fR library does ``line-breakout optimization'' by looking for -typeahead periodically while updating the screen. If input is found, -and it is coming from a tty, the current update is postponed until -\fBrefresh\fR or \fBdoupdate\fR is called again. This allows faster -response to commands typed in advance. Normally, the input FILE -pointer passed to \fBnewterm\fR, or \fBstdin\fR in the case that -\fBinitscr\fR was used, will be used to do this typeahead checking. -The \fBtypeahead\fR routine specifies that the file descriptor -\fIfd\fR is to be used to check for typeahead instead. If \fIfd\fR is --1, then no typeahead checking is done. -.SH RETURN VALUE -All routines that return an integer return \fBERR\fR upon failure and OK (SVr4 -specifies only "an integer value other than \fBERR\fR") upon successful -completion, unless otherwise noted in the preceding routine descriptions. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. -.PP -The ncurses library obeys the XPG4 standard and the historical practice of the -AT&T curses implementations, in that the echo bit is cleared when curses -initializes the terminal state. BSD curses differed from this slightly; it -left the echo bit on at initialization, but the BSD \fBraw\fR call turned it -off as a side-effect. For best portability, set echo or noecho explicitly -just after initialization, even if your program remains in cooked mode. -.SH NOTES -Note that \fBecho\fR, \fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR, -\fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBnoqiflush\fR, -\fBqiflush\fR, \fBtimeout\fR, and \fBwtimeout\fR may be macros. -.PP -The \fBnoraw\fR and \fBnocbreak\fR calls follow historical practice in that -they attempt to restore to normal (`cooked') mode from raw and cbreak modes -respectively. Mixing raw/noraw and cbreak/nocbreak calls leads to tty driver -control states that are hard to predict or understand; it is not recommended. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_getch\fR(3X), \fBcurs_initscr\fR(3X), \fBtermio\fR(7) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_ins_wch.3x b/Build/source/libs/ncurses/man/curs_ins_wch.3x deleted file mode 100644 index 23cf0999572..00000000000 --- a/Build/source/libs/ncurses/man/curs_ins_wch.3x +++ /dev/null @@ -1,65 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_ins_wch.3x,v 1.2 2002/03/10 23:43:27 tom Exp $ -.TH curs_ins_wch 3X "" -.SH NAME -\fBins_wch\fR, -\fBmvins_wch\fR, -\fBmvwins_wch\fR, -\fBwins_wch\fR \- insert a complex character and rendition into a window -.SH SYNOPSIS -#include - -\fBint ins_wch(const cchar_t *\fR\fIwch\fR\fB);\fR -.br -\fBint wins_wch(WINDOW *\fR\fIwin, const cchar_t *\fR\fIwch\fR\fB);\fR -.br -\fBint mvins_wch(int \fR\fIy, int \fR\fIx, const cchar_t *\fR\fIwch\fR\fB);\fR -.br -\fBint mvwins_wch(WINDOW *\fR\fIwin, int \fR\fIy, int \fR\fIx, const cchar_t *\fR\fIwch\fR\fB);\fR -.SH DESCRIPTION -These routines, insert the complex character \fIwch\fR with rendition -before the character under the cursor. -All characters to the right of the cursor are moved one space to the right, -with the possibility of the rightmost character on the line being lost. -The insertion operation does not change the cursor position. -.SH RETURN VALUE -If successful, these functions return OK. -If not, they return ERR. -.SH ERRORS -No errors are defined. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_insch\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_ins_wstr.3x b/Build/source/libs/ncurses/man/curs_ins_wstr.3x deleted file mode 100644 index 197f30f5cd7..00000000000 --- a/Build/source/libs/ncurses/man/curs_ins_wstr.3x +++ /dev/null @@ -1,104 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_ins_wstr.3x,v 1.2 2002/03/10 23:43:27 tom Exp $ -.TH curs_ins_wstr 3X "" -.SH NAME -\fBins_wstr\fR, -\fBins_nwstr\fR, -\fBwins_wstr\fR, -\fBwins_nwstr\fR, -\fBmvins_wstr\fR, -\fBmvins_nwstr\fR, -\fBmvwins_wstr\fR, -\fBmvwins_nwstr\fR \- insert a wide-character string into a curses window -.SH SYNOPSIS -.nf -\fB#include \fR - -\fBint ins_wstr(const wchar_t *\fR\fIwstr);\fR -.br -\fBint ins_nwstr(const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint wins_wstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint wins_nwstr(WINDOW *\fR\fIwin\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvins_wstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint mvins_nwstr(int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvwins_wstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB);\fR -.br -\fBint mvwins_nwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR -.fi -.SH DESCRIPTION -These routines insert a \fBwchar_t\fR character string -(as many characters as will fit on the line) -before the character under the cursor. -All characters to the right of the cursor are shifted right, -with the possibility of the rightmost characters on the line being lost. -No wrapping is performed. -The cursor position does not change -(after moving to \fIy\fR, \fIx\fR, if specified). -The four routines with \fIn\fR as the last argument -insert a leading substring of at most \fIn\fR \fBwchar_t\fR characters. -If \fIn\fR is less than 1, the entire string is inserted. - -If a character in \fIwstr\fR is a tab, newline, carriage return or -backspace, the cursor is moved appropriately within the window. -A newline also does a \fBclrtoeol\fR before moving. -Tabs are considered to be at every eighth column. -If a character in \fIwstr\fR is another control character, -it is drawn in the \fB^\fR\fIX\fR notation. -Calling \fBwin_wch\fR after adding a control character -(and moving to it, if necessary) -does not return the control character, -but instead returns a character in the ^-representation -of the control character. -.SH NOTES -Note that all but wins_nwstr may be macros. - -If the first character in the string is a nonspacing character, these -functions will fail. -XSI does not define what will happen if a nonspacing character follows -a control character. -.SH RETURN VALUES -Upon successful completion, these functions return OK. -Otherwise, they return ERR. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_insstr\fR(3X), -\fBcurs_in_wch\fR(3X), -\fBcurs_ins_wch\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_insch.3x b/Build/source/libs/ncurses/man/curs_insch.3x deleted file mode 100644 index 44eaa1ecafa..00000000000 --- a/Build/source/libs/ncurses/man/curs_insch.3x +++ /dev/null @@ -1,70 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_insch.3x,v 1.8 2003/05/10 20:33:49 jmc Exp $ -.TH curs_insch 3X "" -.SH NAME -\fBinsch\fR, -\fBwinsch\fR, -\fBmvinsch\fR, -\fBmvwinsch\fR - insert a character before cursor in a \fBcurses\fR window -.SH SYNOPSIS -\fB#include \fR - -\fBint insch(chtype ch);\fR -.br -\fBint winsch(WINDOW *win, chtype ch);\fR -.br -\fBint mvinsch(int y, int x, chtype ch);\fR -.br -\fBint mvwinsch(WINDOW *win, int y, int x, chtype ch);\fR -.br -.SH DESCRIPTION -These routines insert the character \fIch\fR before the character under the -cursor. All characters to the right of the cursor are moved one space to the -right, with the possibility of the rightmost character on the line being lost. -The insertion operation does not change the cursor position. -.SH RETURN VALUE -All routines that return an integer return \fBERR\fR upon failure and OK (SVr4 -specifies only "an integer value other than \fBERR\fR") upon successful -completion, unless otherwise noted in the preceding routine descriptions. -.SH NOTES -These routines do not necessarily imply use of a hardware insert character -feature. - -Note that \fBinsch\fR, \fBmvinsch\fR, and \fBmvwinsch\fR may be macros. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. -.SH SEE ALSO -\fBcurses\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_insstr.3x b/Build/source/libs/ncurses/man/curs_insstr.3x deleted file mode 100644 index c96f2277ecc..00000000000 --- a/Build/source/libs/ncurses/man/curs_insstr.3x +++ /dev/null @@ -1,99 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2001,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_insstr.3x,v 1.14 2004/06/19 22:22:51 tom Exp $ -.TH curs_insstr 3X "" -.SH NAME -\fBinsstr\fR, -\fBinsnstr\fR, -\fBwinsstr\fR, -\fBwinsnstr\fR, -\fBmvinsstr\fR, -\fBmvinsnstr\fR, -\fBmvwinsstr\fR, -\fBmvwinsnstr\fR - insert string before cursor in a \fBcurses\fR window -.SH SYNOPSIS -\fB#include \fR -.br -\fBint insstr(const char *str);\fR -.br -\fBint insnstr(const char *str, int n);\fR -.br -\fBint winsstr(WINDOW *win, const char *str);\fR -.br -\fBint winsnstr(WINDOW *win, const char *str, int n);\fR -.br -\fBint mvinsstr(int y, int x, const char *str);\fR -.br -\fBint mvinsnstr(int y, int x, const char *str, int n);\fR -.br -\fBint mvwinsstr(WINDOW *win, int y, int x, const char *str);\fR -.br -\fBint mvwinsnstr(WINDOW *win, int y, int x, const char *str, int n);\fR -.br -.SH DESCRIPTION -These routines insert a character string -(as many characters as will fit on the line) -before the character under the cursor. -All characters to the right of the cursor are shifted right -with the possibility of the rightmost characters on the line being lost. -The cursor position does not change -(after moving to \fIy\fR, \fIx\fR, if specified). -The functions with \fIn\fR as the last argument -insert a leading substring of at most \fIn\fR characters. -If \fIn\fR<=0, then the entire string is inserted. - -Special characters are handled as in \fBaddch\fP. -.SH RETURN VALUE -All routines that return an integer return \fBERR\fR upon failure and OK (SVr4 -specifies only "an integer value other than \fBERR\fR") upon successful -completion, unless otherwise noted in the preceding routine descriptions. -.SH NOTES -Note that all but \fBwinsnstr\fR may be macros. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4, which adds -const qualifiers to the arguments. The XSI Curses error conditions -\fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with extended-level conformance -are not yet detected (this implementation does not yet support XPG4 multibyte -characters). -.LP -The Single Unix Specification, Version 2 states that -\fBinsnstr\fP and \fBwinsnstr\fP perform wrapping. -This is probably an error, since it makes this group of functions inconsistent. -Also, no implementation of curses documents this inconsistency. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBunctrl\fR(3X), -\fBcurs_clear\fR(3X), -\fBcurs_inch\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_instr.3x b/Build/source/libs/ncurses/man/curs_instr.3x deleted file mode 100644 index 9a09ab278c4..00000000000 --- a/Build/source/libs/ncurses/man/curs_instr.3x +++ /dev/null @@ -1,89 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_instr.3x,v 1.10 2001/11/03 19:58:56 tom Exp $ -.TH curs_instr 3X "" -.SH NAME -\fBinstr\fR, -\fBinnstr\fR, -\fBwinstr\fR, -\fBwinnstr\fR, -\fBmvinstr\fR, -\fBmvinnstr\fR, -\fBmvwinstr\fR, -\fBmvwinnstr\fR - get a string of characters from a \fBcurses\fR window -.SH SYNOPSIS -\fB#include \fR - -\fBint instr(char *str);\fR -.br -\fBint innstr(char *str, int n);\fR -.br -\fBint winstr(WINDOW *win, char *str);\fR -.br -\fBint winnstr(WINDOW *win, char *str, int n);\fR -.br -\fBint mvinstr(int y, int x, char *str);\fR -.br -\fBint mvinnstr(int y, int x, char *str, int n);\fR -.br -\fBint mvwinstr(WINDOW *win, int y, int x, char *str);\fR -.br -\fBint mvwinnstr(WINDOW *win, int y, int x, char *str, int n);\fR -.br -.SH DESCRIPTION -These routines return a string of characters in \fIstr\fR, extracted starting -at the current cursor position in the named window. -Attributes are stripped from the characters. The four -functions with \fIn\fR as the last argument return a leading substring at most -\fIn\fR characters long (exclusive of the trailing NUL). -.SH RETURN VALUE -All of the functions return \fBERR\fR upon failure, -or the number of characters actually read into the string. -.SH NOTES -Note that all routines except \fBwinnstr\fR may be macros. -.SH PORTABILITY -The XSI Curses -error conditions \fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with -extended-level conformance are not yet detected (this implementation does not -yet support XPG4 multibyte characters). -SVr4 does not -document whether a length limit includes or excludes the trailing NUL. -.PP -The ncurses library extends the XSI description by allowing a negative -value for \fIn\fR. -In this case, the functions return the string ending at the right margin. -.SH SEE ALSO -\fBcurses\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: - diff --git a/Build/source/libs/ncurses/man/curs_inwstr.3x b/Build/source/libs/ncurses/man/curs_inwstr.3x deleted file mode 100644 index df32d851c2f..00000000000 --- a/Build/source/libs/ncurses/man/curs_inwstr.3x +++ /dev/null @@ -1,94 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2002,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_inwstr.3x,v 1.3 2004/03/13 19:39:10 tom Exp $ -.TH curs_inwstr 3 "" -.SH NAME -\fBinwstr\fR, -\fBinnwstr\fR, -\fBwinwstr\fR, -\fBwinnwstr\fR, -\fBmvinwstr\fR, -\fBmvinnwstr\fR, -\fBmvwinwstr\fR, -\fBmvwinnwstr\fR \- get a string of \fBwchar_t\fR characters from a curses window -.SH SYNOPSIS -.nf -\fB#include \fR - -\fBint inwstr(\fR\fBwchar_t *\fR\fIstr\fR\fB);\fR -.br -\fBint innwstr(\fR\fBwchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint winwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR -.br -\fBint winnwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvinwstr(\fR\fBint \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR -.br -\fBint mvinnwstr(\fR\fBint \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR -.br -\fBint mvwinwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB);\fR -.br -\fBint mvwinnwstr(\fR\fBWINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, wchar_t *\fR\fIstr\fR\fB, int \fR\fIn\fR\fB);\fR -.fi -.SH DESCRIPTION -These routines return a string of \fBwchar_t\fR characters in \fIwstr\fR, -extracted starting at the current cursor position in the named window. -Attributes are stripped from the characters. -The four functions with \fIn\fR as the last argument return a leading substring at most -\fIn\fR bytes long (exclusive of the trailing NUL). -Transfer stops at the end of the current line, or when \fIn\fR bytes have -been stored at the location referenced by \fIwstr\fR. -.PP -If the size \fIn\fR is not large enough to store a complete character, -an error is generated. -.SH NOTES -Note that all routines except -\fBwinnwstr\fR -may be macros. -.SH RETURN VALUES -All routines return -\fBERR\fR -upon failure. Upon -successful completion, the *\fBinwstr\fR -routines return -\fBOK\fR, and the *\fBinnwstr\fR -routines return the -number of characters read into the string. -.SH SEE ALSO -Functions: -\fBcurses\fR(3X), -\fBcurs_instr\fR(3X), -\fBcurs_in_wchstr\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_kernel.3x b/Build/source/libs/ncurses/man/curs_kernel.3x deleted file mode 100644 index caeb5bba0cd..00000000000 --- a/Build/source/libs/ncurses/man/curs_kernel.3x +++ /dev/null @@ -1,159 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_kernel.3x,v 1.13 2001/12/08 18:01:25 tom Exp $ -.TH curs_kernel 3X "" -.SH NAME -\fBdef_prog_mode\fR, \fBdef_shell_mode\fR, -\fBreset_prog_mode\fR, \fBreset_shell_mode\fR, \fBresetty\fR, -\fBsavetty\fR, \fBgetsyx\fR, \fBsetsyx\fR, \fBripoffline\fR, -\fBcurs_set\fR, \fBnapms\fR - low-level \fBcurses\fR routines -.SH SYNOPSIS -\fB#include \fR - -\fBint def_prog_mode(void);\fR -.br -\fBint def_shell_mode(void);\fR -.br -\fBint reset_prog_mode(void);\fR -.br -\fBint reset_shell_mode(void);\fR -.br -\fBint resetty(void);\fR -.br -\fBint savetty(void);\fR -.br -\fBvoid getsyx(int y, int x);\fR -.br -\fBvoid setsyx(int y, int x);\fR -.br -\fBint ripoffline(int line, int (*init)(WINDOW *, int));\fR -.br -\fBint curs_set(int visibility);\fR -.br -\fBint napms(int ms);\fR -.br -.SH DESCRIPTION -The following routines give low-level access to various \fBcurses\fR -capabilities. Theses routines typically are used inside library -routines. - -The \fBdef_prog_mode\fR and \fBdef_shell_mode\fR routines save the -current terminal modes as the "program" (in \fBcurses\fR) or "shell" -(not in \fBcurses\fR) state for use by the \fBreset_prog_mode\fR and -\fBreset_shell_mode\fR routines. This is done automatically by -\fBinitscr\fR. There is one such save area for each screen context -allocated by \fBnewterm()\fR. - -The \fBreset_prog_mode\fR and \fBreset_shell_mode\fR routines restore -the terminal to "program" (in \fBcurses\fR) or "shell" (out of -\fBcurses\fR) state. These are done automatically by \fBendwin\fR -and, after an \fBendwin\fR, by \fBdoupdate\fR, so they normally are -not called. - -The \fBresetty\fR and \fBsavetty\fR routines save and restore the -state of the terminal modes. \fBsavetty\fR saves the current state in -a buffer and \fBresetty\fR restores the state to what it was at the -last call to \fBsavetty\fR. - -The \fBgetsyx\fR routine returns the current coordinates of the virtual screen -cursor in \fIy\fR and \fIx\fR. If \fBleaveok\fR is currently \fBTRUE\fR, then -\fB-1\fR,\fB-1\fR is returned. If lines have been removed from the top of the -screen, using \fBripoffline\fR, \fIy\fR and \fIx\fR include these lines; -therefore, \fIy\fR and \fIx\fR should be used only as arguments for -\fBsetsyx\fR. - -The \fBsetsyx\fR routine sets the virtual screen cursor to -\fIy\fR, \fIx\fR. If \fIy\fR and \fIx\fR are both \fB-1\fR, then -\fBleaveok\fR is set. The two routines \fBgetsyx\fR and \fBsetsyx\fR -are designed to be used by a library routine, which manipulates -\fBcurses\fR windows but does not want to change the current position -of the program's cursor. The library routine would call \fBgetsyx\fR -at the beginning, do its manipulation of its own windows, do a -\fBwnoutrefresh\fR on its windows, call \fBsetsyx\fR, and then call -\fBdoupdate\fR. - -The \fBripoffline\fR routine provides access to the same facility that -\fBslk_init\fR [see \fBcurs_slk\fR(3X)] uses to reduce the size of the -screen. \fBripoffline\fR must be called before \fBinitscr\fR or -\fBnewterm\fR is called. If \fIline\fR is positive, a line is removed -from the top of \fBstdscr\fR; if \fIline\fR is negative, a line is -removed from the bottom. When this is done inside \fBinitscr\fR, the -routine \fBinit\fR (supplied by the user) is called with two -arguments: a window pointer to the one-line window that has been -allocated and an integer with the number of columns in the window. -Inside this initialization routine, the integer variables \fBLINES\fR -and \fBCOLS\fR (defined in \fB\fR) are not guaranteed to be -accurate and \fBwrefresh\fR or \fBdoupdate\fR must not be called. It -is allowable to call \fBwnoutrefresh\fR during the initialization -routine. - -\fBripoffline\fR can be called up to five times before calling \fBinitscr\fR or -\fBnewterm\fR. - -The \fBcurs_set\fR routine sets the cursor state is set to invisible, -normal, or very visible for \fBvisibility\fR equal to \fB0\fR, -\fB1\fR, or \fB2\fR respectively. If the terminal supports the -\fIvisibility\fR requested, the previous \fIcursor\fR state is -returned; otherwise, \fBERR\fR is returned. - -The \fBnapms\fR routine is used to sleep for \fIms\fR milliseconds. -.SH RETURN VALUE -Except for \fBcurs_set\fR, these routines always return \fBOK\fR. -\fBcurs_set\fR returns the previous cursor state, or \fBERR\fR if the -requested \fIvisibility\fR is not supported. -.SH NOTES -Note that \fBgetsyx\fR is a macro, so \fB&\fR is not necessary before -the variables \fIy\fR and \fIx\fR. - -Older SVr4 man pages warn that the return value of \fBcurs_set\fR "is currently -incorrect". This implementation gets it right, but it may be unwise to count -on the correctness of the return value anywhere else. - -Both ncurses and SVr4 will call \fBcurs_set\fR in \fBendwin\fR -if \fBcurs_set\fR -has been called to make the cursor other than normal, i.e., either -invisible or very visible. -There is no way for ncurses to determine the initial cursor state to -restore that. -.SH PORTABILITY -The functions \fBsetsyx\fR and \fBgetsyx\fR are not described in the XSI -Curses standard, Issue 4. All other functions are as described in XSI Curses. - -The SVr4 documentation describes \fBsetsyx\fR and \fBgetsyx\fR as having return -type int. This is misleading, as they are macros with no documented semantics -for the return value. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X), -\fBcurs_scr_dump\fR(3X), \fBcurs_slk\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_mouse.3x b/Build/source/libs/ncurses/man/curs_mouse.3x deleted file mode 100644 index b15507629b9..00000000000 --- a/Build/source/libs/ncurses/man/curs_mouse.3x +++ /dev/null @@ -1,254 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_mouse.3x,v 1.24 2003/12/27 18:47:54 tom Exp $ -.TH curs_mouse 3X "" -.SH NAME -\fBgetmouse\fR, \fBungetmouse\fR, -\fBmousemask\fR, \fBwenclose\fR, -\fBmouse_trafo\fR, \fBwmouse_trafo\fR, -\fBmouseinterval\fR - mouse interface through curses -.SH SYNOPSIS -.nf -\fB#include -.PP -\fBtypedef unsigned long mmask_t; -.PP -typedef struct -{ - short id; \fI/* ID to distinguish multiple devices */\fB - int x, y, z; \fI/* event coordinates */\fB - mmask_t bstate; \fI/* button state bits */\fB -} -MEVENT;\fR -.fi -.br -\fBint getmouse(MEVENT *event);\fR -.br -\fBint ungetmouse(MEVENT *event);\fR -.br -\fBmmask_t mousemask(mmask_t newmask, mmask_t *oldmask);\fR -.br -\fBbool wenclose(const WINDOW *win, int y, int x);\fR -.br -\fBbool mouse_trafo(int* pY, int* pX, bool to_screen);\fR -.br -\fBbool wmouse_trafo(const WINDOW* win, int* pY, int* pX,\fR -.br - \fBbool to_screen);\fR -.br -\fBint mouseinterval(int erval);\fR -.br -.SH DESCRIPTION -These functions provide an interface to mouse events from -\fBncurses\fR(3X). -Mouse events are represented by \fBKEY_MOUSE\fR -pseudo-key values in the \fBwgetch\fR input stream. -.PP -To make mouse events visible, use the \fBmousemask\fR function. -This will set -the mouse events to be reported. -By default, no mouse events are reported. -The function will return a mask to indicate which of the specified mouse events -can be reported; on complete failure it returns 0. -If oldmask is non-NULL, -this function fills the indicated location with the previous value of the given -window's mouse event mask. -.PP -As a side effect, setting a zero mousemask may turn off the mouse pointer; -setting a nonzero mask may turn it on. -Whether this happens is device-dependent. -.PP -Here are the mouse event type masks: -.PP -.TS -l l -_ _ -l l. -\fIName\fR \fIDescription\fR -BUTTON1_PRESSED mouse button 1 down -BUTTON1_RELEASED mouse button 1 up -BUTTON1_CLICKED mouse button 1 clicked -BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked -BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked -BUTTON2_PRESSED mouse button 2 down -BUTTON2_RELEASED mouse button 2 up -BUTTON2_CLICKED mouse button 2 clicked -BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked -BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked -BUTTON3_PRESSED mouse button 3 down -BUTTON3_RELEASED mouse button 3 up -BUTTON3_CLICKED mouse button 3 clicked -BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked -BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked -BUTTON4_PRESSED mouse button 4 down -BUTTON4_RELEASED mouse button 4 up -BUTTON4_CLICKED mouse button 4 clicked -BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked -BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked -BUTTON_SHIFT shift was down during button state change -BUTTON_CTRL control was down during button state change -BUTTON_ALT alt was down during button state change -ALL_MOUSE_EVENTS report all button state changes -REPORT_MOUSE_POSITION report mouse movement -.TE -.PP -Once a class of mouse events have been made visible in a window, -calling the \fBwgetch\fR function on that window may return -\fBKEY_MOUSE\fR as an indicator that a mouse event has been queued. -To read the event data and pop the event off the queue, call -\fBgetmouse\fR. -This function will return \fBOK\fR if a mouse event -is actually visible in the given window, \fBERR\fR otherwise. -When \fBgetmouse\fR returns \fBOK\fR, the data deposited as y and -x in the event structure coordinates will be screen-relative character-cell -coordinates. -The returned state mask will have exactly one bit set to -indicate the event type. -.PP -The \fBungetmouse\fR function behaves analogously to \fBungetch\fR. -It pushes -a \fBKEY_MOUSE\fR event onto the input queue, and associates with that event -the given state data and screen-relative character-cell coordinates. -.PP -The \fBwenclose\fR function tests whether a given pair of screen-relative -character-cell coordinates is enclosed by a given window, returning TRUE -if it is and FALSE otherwise. -It is useful for determining what subset of -the screen windows enclose the location of a mouse event. -.PP -The \fBwmouse_trafo\fR function transforms a given pair of coordinates from -stdscr-relative coordinates to screen-relative coordinates or vice versa. -Please remember, that stdscr-relative coordinates are not always identical -to screen-relative coordinates due to the mechanism to reserve lines on top -or bottom of the screen for other purposes (ripoff() call, see also slk_... -functions). -If the parameter \fBto_screen\fR is \fBTRUE\fR, the pointers -\fBpY, pX\fR must reference the coordinates of a location inside the window -\fBwin\fR. -They are converted to screen-relative coordinates and returned -through the pointers. -If the conversion was successful, the function returns \fBTRUE\fR. -If one of the parameters was NULL or the location is -not inside the window, \fBFALSE\fR is returned. -If \fBto_screen\fR is -\fBFALSE\fR, the pointers \fBpY, pX\fR must reference screen-relative -coordinates. -They are converted to stdscr-relative coordinates if the -window \fBwin\fR encloses this point. -In this case the function returns \fBTRUE\fR. -If one of the parameters is NULL or the point is not inside the -window, \fBFALSE\fR is returned. -Please notice, that the referenced coordinates -are only replaced by the converted coordinates if the transformation was -successful. -.PP -The \fBmouseinterval\fR function sets the maximum time (in thousands of a -second) that can elapse between press and release events for them to -be recognized as a click. -Use \fBmouseinterval(-1)\fR to disable click resolution. -This function returns the previous interval value. -The default is one sixth of a second. -.PP -Note that mouse events will be ignored when input is in cooked mode, and will -cause an error beep when cooked mode is being simulated in a window by a -function such as \fBgetstr\fR that expects a linefeed for input-loop -termination. -.SH RETURN VALUE -\fBgetmouse\fR, \fBungetmouse\fR and \fBmouseinterval\fR -return the integer \fBERR\fR upon failure or \fBOK\fR -upon successful completion. -\fBmousemask\fR returns the -mask of reportable events. -\fBwenclose\fR and \fBwmouse_trafo\fR -are boolean functions returning \fBTRUE\fR or \fBFALSE\fR depending -on their test result. -.SH PORTABILITY -These calls were designed for \fBncurses\fR(3X), and are not found in SVr4 -curses, 4.4BSD curses, or any other previous version of curses. -.PP -The feature macro \fBNCURSES_MOUSE_VERSION\fR is provided so the preprocessor -can be used to test whether these features are present (its value is 1). -If the interface is changed, the value of \fBNCURSES_MOUSE_VERSION\fR will be -incremented. -.PP -The order of the \fBMEVENT\fR structure members is not guaranteed. -Additional fields may be added to the structure in the future. -.PP -Under \fBncurses\fR(3X), these calls are implemented using either -xterm's built-in mouse-tracking API or -platform-specific drivers including -.RS -Alessandro Rubini's gpm server. -.br -FreeBSD sysmouse -.br -OS/2 EMX -.RE -If you are using an unsupported configuration, -mouse events will not be visible to -\fBncurses\fR(3X) (and the \fBwmousemask\fR function will always -return \fB0\fR). -.PP -If the terminfo entry contains a \fBXM\fR string, -this is used in the xterm mouse driver to control the -way the terminal is initialized for mouse operation. -The default, if \fBXM\fR is not found, -corresponds to private mode 1000 of xterm: -.RS -\\E[?1000%?%p1%{1}%=%th%el%; -.RE -The z member in the event structure is not presently used. -It is intended -for use with touch screens (which may be pressure-sensitive) or with -3D-mice/trackballs/power gloves. -.SH BUGS -Mouse events under xterm will not in fact be ignored during cooked mode, -if they have been enabled by \fBwmousemask\fR. -Instead, the xterm mouse -report sequence will appear in the string read. -.PP -Mouse events under xterm will not be detected correctly in a window with -its keypad bit off, since they are interpreted as a variety of function key. -Your terminfo description must have \fBkmous\fR set to "\\E[M" (the beginning -of the response from xterm for mouse clicks). -.PP -Because there are no standard terminal responses that would serve to identify -terminals which support the xterm mouse protocol, \fBncurses\fR assumes that -if your $TERM environment variable contains "xterm", -or \fBkmous\fR is defined in -the terminal description, then the terminal may send mouse events. -.SH SEE ALSO -\fBcurses\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_move.3x b/Build/source/libs/ncurses/man/curs_move.3x deleted file mode 100644 index 2fff160c2f1..00000000000 --- a/Build/source/libs/ncurses/man/curs_move.3x +++ /dev/null @@ -1,63 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2001 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_move.3x,v 1.7 2001/11/03 19:58:47 tom Exp $ -.TH curs_move 3X "" -.SH NAME -\fBmove\fR, \fBwmove\fR - move \fBcurses\fR window cursor -.SH SYNOPSIS -\fB#include \fR - -\fBint move(int y, int x);\fR -.br -\fBint wmove(WINDOW *win, int y, int x);\fR -.br -.SH DESCRIPTION -These routines move the cursor associated with the window to line \fIy\fR and -column \fIx\fR. This routine does not move the physical cursor of the terminal -until \fBrefresh\fR is called. The position specified is relative to the upper -left-hand corner of the window, which is (0,0). -.SH RETURN VALUE -These routines return \fBERR\fR upon failure and OK (SVr4 -specifies only "an integer value other than \fBERR\fR") upon successful -completion. -.SH NOTES -Note that \fBmove\fR may be a macro. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. The -standard specifies that if (y,x) is within a multi-column character, the cursor -is moved to the first column of that character; however, this implementation -does not yet support the extended-level XSI multibyte characters. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_refresh\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_outopts.3x b/Build/source/libs/ncurses/man/curs_outopts.3x deleted file mode 100644 index c5b518c12eb..00000000000 --- a/Build/source/libs/ncurses/man/curs_outopts.3x +++ /dev/null @@ -1,193 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_outopts.3x,v 1.18 2003/05/10 20:33:49 jmc Exp $ -.TH curs_outopts 3X "" -.SH NAME -\fBclearok\fR, \fBidlok\fR, \fBidcok\fR, \fBimmedok\fR, -\fBleaveok\fR, \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBscrollok\fR, -\fBnl\fR, \fBnonl\fR - \fBcurses\fR output options -.SH SYNOPSIS -\fB#include \fR - -\fBint clearok(WINDOW *win, bool bf);\fR -.br -\fBint idlok(WINDOW *win, bool bf);\fR -.br -\fBvoid idcok(WINDOW *win, bool bf);\fR -.br -\fBvoid immedok(WINDOW *win, bool bf);\fR -.br -\fBint leaveok(WINDOW *win, bool bf);\fR -.br -\fBint setscrreg(int top, int bot);\fR -.br -\fBint wsetscrreg(WINDOW *win, int top, int bot);\fR -.br -\fBint scrollok(WINDOW *win, bool bf);\fR -.br -\fBint nl(void);\fR -.br -\fBint nonl(void);\fR -.br -.SH DESCRIPTION -These routines set options that change the style of output within -\fBcurses\fR. -All options are initially \fBFALSE\fR, unless otherwise stated. -It is not necessary to turn these options off before calling \fBendwin\fR. - -If \fBclearok\fR is called with \fBTRUE\fR as argument, the next -call to \fBwrefresh\fR with this window will clear the screen completely and -redraw the entire screen from scratch. -This is useful when the contents of the -screen are uncertain, or in some cases for a more pleasing visual effect. -If -the \fIwin\fR argument to \fBclearok\fR is the global variable \fBcurscr\fR, -the next call to \fBwrefresh\fR with any window causes the screen to be cleared -and repainted from scratch. - -If \fBidlok\fR is called with \fBTRUE\fR as second argument, \fBcurses\fR -considers using the hardware insert/delete line feature of terminals so -equipped. -Calling \fBidlok\fR with \fBFALSE\fR as second argument disables use -of line insertion and deletion. -This option should be enabled only if the -application needs insert/delete line, for example, for a screen editor. -It is -disabled by default because insert/delete line tends to be visually annoying -when used in applications where it isn't really needed. -If insert/delete line -cannot be used, \fBcurses\fR redraws the changed portions of all lines. - -If \fBidcok\fR is called with \fBFALSE\fR as second argument, \fBcurses\fR -no longer considers using the hardware insert/delete character feature of -terminals so equipped. -Use of character insert/delete is enabled by default. -Calling \fBidcok\fR with \fBTRUE\fR as second argument re-enables use -of character insertion and deletion. - -If \fBimmedok\fR is called with \fBTRUE as argument\fR, any change -in the window image, such as the ones caused by \fBwaddch, wclrtobot, wscrl\fR, -etc., automatically cause a call to \fBwrefresh\fR. -However, it may -degrade performance considerably, due to repeated calls to \fBwrefresh\fR. -It is disabled by default. - -Normally, the hardware cursor is left at the location of the window cursor -being refreshed. -The \fBleaveok\fR option allows the cursor to be left -wherever the update happens to leave it. -It is useful for applications where -the cursor is not used, since it reduces the need for cursor motions. - -The \fBsetscrreg\fR and \fBwsetscrreg\fR routines allow the application -programmer to set a software scrolling region in a window. -\fItop\fR and -\fIbot\fR are the line numbers of the top and bottom margin of the scrolling -region. -(Line 0 is the top line of the window.) If this option and -\fBscrollok\fR are enabled, an attempt to move off the bottom margin line -causes all lines in the scrolling region to scroll one line in the direction -of the first line. -Only the text of the window is scrolled. -(Note that this -has nothing to do with the use of a physical scrolling region capability in the -terminal, like that in the VT100. -If \fBidlok\fR is enabled and the terminal -has either a scrolling region or insert/delete line capability, they will -probably be used by the output routines.) - -The \fBscrollok\fR option controls what happens when the cursor of a window is -moved off the edge of the window or scrolling region, either as a result of a -newline action on the bottom line, or typing the last character of the last -line. -If disabled, (\fIbf\fR is \fBFALSE\fR), the cursor is left on the bottom -line. -If enabled, (\fIbf\fR is \fBTRUE\fR), the window is scrolled up one line -(Note that to get the physical scrolling effect on the terminal, it is -also necessary to call \fBidlok\fR). - -The \fBnl\fR and \fBnonl\fR routines control whether the underlying display -device translates the return key into newline on input, and whether it -translates newline into return and line-feed on output (in either case, the -call \fBaddch('\\n')\fR does the equivalent of return and line feed on the -virtual screen). -Initially, these translations do occur. -If you disable them -using \fBnonl\fR, \fBcurses\fR will be able to make better use of the line-feed -capability, resulting in faster cursor motion. -Also, \fBcurses\fR will then be -able to detect the return key. -.SH RETURN VALUE -The functions \fBsetscrreg\fR and \fBwsetscrreg\fR return \fBOK\fR upon success -and \fBERR\fR upon failure. -All other routines that return an integer always -return \fBOK\fR. -.SH PORTABILITY -These functions are described in the XSI Curses standard, Issue 4. - -The XSI Curses standard is ambiguous on the question of whether \fBraw\fR() -should disable the CRLF translations controlled by \fBnl\fR() and \fBnonl\fR(). -BSD curses did turn off these translations; AT&T curses (at least as late as -SVr1) did not. -We choose to do so, on the theory that a programmer requesting -raw input wants a clean (ideally 8-bit clean) connection that the operating -system does not mess with. - -Some historic curses implementations had, as an undocumented feature, the -ability to do the equivalent of \fBclearok(..., 1)\fR by saying -\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR. -This will not work under -ncurses. - -Earlier System V curses implementations specified that with \fBscrollok\fR -enabled, any window modification triggering a scroll also forced a physical -refresh. -XSI Curses does not require this, and \fBncurses\fR avoids doing -it to perform better vertical-motion optimization at \fBwrefresh\fR -time. - -The XSI Curses standard does not mention that the cursor should be -made invisible as a side-effect of \fBleaveok\fR. -SVr4 curses documentation does this, but the code does not. -Use \fBcurs_set\fR to make the cursor invisible. -.SH NOTES -Note that \fBclearok\fR, \fBleaveok\fR, \fBscrollok\fR, \fBidcok\fR, \fBnl\fR, -\fBnonl\fR and \fBsetscrreg\fR may be macros. - -The \fBimmedok\fR routine is useful for windows that are used as terminal -emulators. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_addch\fR(3X), \fBcurs_clear\fR(3X), -\fBcurs_initscr\fR(3X), \fBcurs_scroll\fR(3X), \fBcurs_refresh\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_overlay.3x b/Build/source/libs/ncurses/man/curs_overlay.3x deleted file mode 100644 index 3d817d41c67..00000000000 --- a/Build/source/libs/ncurses/man/curs_overlay.3x +++ /dev/null @@ -1,76 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_overlay.3x,v 1.11 2002/07/20 14:53:00 tom Exp $ -.TH curs_overlay 3X "" -.SH NAME -\fBoverlay\fR, -\fBoverwrite\fR, -\fBcopywin\fR - overlay and manipulate overlapped \fBcurses\fR windows -.SH SYNOPSIS -\fB#include \fR - -\fBint overlay(const WINDOW *srcwin, WINDOW *dstwin);\fR -.br -\fBint overwrite(const WINDOW *srcwin, WINDOW *dstwin);\fR -.br -\fBint copywin(const WINDOW *srcwin, WINDOW *dstwin, int sminrow,\fR - \fBint smincol, int dminrow, int dmincol, int dmaxrow,\fR - \fBint dmaxcol, int overlay);\fR -.SH DESCRIPTION -The \fBoverlay\fR and \fBoverwrite\fR routines overlay \fIsrcwin\fR on -top of \fIdstwin\fR. \fIscrwin\fR and \fIdstwin\fR are not required -to be the same size; only text where the two windows overlap is -copied. The difference is that \fBoverlay\fR is non-destructive -(blanks are not copied) whereas \fBoverwrite\fR is destructive. - -The \fBcopywin\fR routine provides a finer granularity of control over the -\fBoverlay\fR and \fBoverwrite\fR routines. Like in the \fBprefresh\fR -routine, a rectangle is specified in the destination window, (\fIdminrow\fR, -\fIdmincol\fR) and (\fIdmaxrow\fR, \fIdmaxcol\fR), and the upper-left-corner -coordinates of the source window, (\fIsminrow\fR, \fIsmincol\fR). If the -argument \fIoverlay\fR is \fBtrue\fR, then copying is non-destructive, as in -\fBoverlay\fR. -.SH RETURN VALUE -Routines that return an integer return \fBERR\fR upon failure, and \fBOK\fR -(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful -completion. -.SH NOTES -Note that \fBoverlay\fR and \fBoverwrite\fR may be macros. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions (adding the const -qualifiers). It further specifies their behavior in the presence of characters -with multibyte renditions (not yet supported in this implementation). -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_pad\fR(3X), \fBcurs_refresh\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_pad.3x b/Build/source/libs/ncurses/man/curs_pad.3x deleted file mode 100644 index 4db08dcf440..00000000000 --- a/Build/source/libs/ncurses/man/curs_pad.3x +++ /dev/null @@ -1,133 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_pad.3x,v 1.12 2004/01/04 01:36:49 tom Exp $ -.TH curs_pad 3X "" -.SH NAME -\fBnewpad\fR, \fBsubpad\fR, \fBprefresh\fR, -\fBpnoutrefresh\fR, -\fBpechochar\fR, \fBpecho_wchar\fR - create and display \fBcurses\fR pads -.SH SYNOPSIS -\fB#include \fR -.sp -\fBWINDOW *newpad(int nlines, int ncols);\fR -.br -\fBWINDOW *subpad(WINDOW *orig, int nlines, int ncols,\fR - \fBint begin_y, int begin_x);\fR -.br -\fBint prefresh(WINDOW *pad, int pminrow, int pmincol,\fR - \fBint sminrow, int smincol, int smaxrow, int smaxcol);\fR -.br -\fBint pnoutrefresh(WINDOW *pad, int pminrow, int pmincol,\fR - \fBint sminrow, int smincol, int smaxrow, int smaxcol);\fR -.br -\fBint pechochar(WINDOW *pad, chtype ch);\fR -.br -\fBint pecho_wchar(WINDOW *pad, const cchar_t *wch);\fR -.SH DESCRIPTION -The \fBnewpad\fR routine creates and returns a pointer to a new pad data -structure with the given number of lines, \fInlines\fR, and columns, -\fIncols\fR. -A pad is like a window, except that it is not restricted by the -screen size, and is not necessarily associated with a particular part of the -screen. -Pads can be used when a large window is needed, and only a part of the -window will be on the screen at one time. -Automatic refreshes of pads -(e.g., from scrolling or echoing of input) do not occur. -It is not -legal to call \fBwrefresh\fR with a \fIpad\fR as an argument; the routines -\fBprefresh\fR or \fBpnoutrefresh\fR should be called instead. -Note that these -routines require additional parameters to specify the part of the pad to be -displayed and the location on the screen to be used for the display. -.PP -The \fBsubpad\fR routine creates and returns a pointer to a subwindow within a -pad with the given number of lines, \fInlines\fR, and columns, \fIncols\fR. -Unlike \fBsubwin\fR, which uses screen coordinates, the window is at position -(\fIbegin\fR_\fIx\fR\fB,\fR \fIbegin\fR_\fIy\fR) on the pad. -The window is -made in the middle of the window \fIorig\fR, so that changes made to one window -affect both windows. -During the use of this routine, it will often be -necessary to call \fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before -calling \fBprefresh\fR. -.PP -The \fBprefresh\fR and \fBpnoutrefresh\fR routines are analogous to -\fBwrefresh\fR and \fBwnoutrefresh\fR except that they relate to pads instead -of windows. -The additional parameters are needed to indicate what part of the -pad and screen are involved. -\fIpminrow\fR and \fIpmincol\fR specify the upper -left-hand corner of the rectangle to be displayed in the pad. -\fIsminrow\fR, -\fIsmincol\fR, \fIsmaxrow\fR, and \fIsmaxcol\fR specify the edges of the -rectangle to be displayed on the screen. -The lower right-hand corner of the -rectangle to be displayed in the pad is calculated from the screen coordinates, -since the rectangles must be the same size. -Both rectangles must be entirely -contained within their respective structures. -Negative values of -\fIpminrow\fR, \fIpmincol\fR, \fIsminrow\fR, or \fIsmincol\fR are treated as if -they were zero. -.PP -The \fBpechochar\fR routine is functionally equivalent to a call to \fBaddch\fR -followed by a call to \fBrefresh\fR, a call to \fBwaddch\fR followed by a call -to \fBwrefresh\fR, or a call to \fBwaddch\fR followed by a call to -\fBprefresh\fR. -The knowledge that only a single character is being output is -taken into consideration and, for non-control characters, a considerable -performance gain might be seen by using these routines instead of their -equivalents. -In the case of \fBpechochar\fR, the last location of the pad on -the screen is reused for the arguments to \fBprefresh\fR. -.PP -The \fBpecho_wchar\fR function is the analogous wide-character -form of \fBpechochar\fR. -It outputs one character to a pad and immediately refreshes the pad. -It does this by a call to \fBwadd_wch\fR followed by a call to \fBprefresh\fR. -.SH RETURN VALUE -Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR -(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful -completion. -.PP -Routines that return pointers return \fBNULL\fR on error, and set \fBerrno\fR -to \fBENOMEM\fR. -.SH NOTES -Note that \fBpechochar\fR may be a macro. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_refresh\fR(3X), \fBcurs_touch\fR(3X), \fBcurs_addch\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_print.3x b/Build/source/libs/ncurses/man/curs_print.3x deleted file mode 100644 index 3077d34769e..00000000000 --- a/Build/source/libs/ncurses/man/curs_print.3x +++ /dev/null @@ -1,74 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_print.3x,v 1.6 2003/05/10 20:33:49 jmc Exp $ -.TH curs_print 3X "" -.SH NAME -\fBmcprint\fR - ship binary data to printer -.SH SYNOPSIS -\fB#include \fR - -\fBint mcprint(char *data, int len);\fR -.SH DESCRIPTION -This function uses the \fBmc5p\fR or \fBmc4\fR and \fBmc5\fR capabilities, -if they are present, to ship given data to a printer attached to the terminal. - -Note that the \fBmcprint\fR code has no way to do flow control with the printer -or to know how much buffering it has. Your application is responsible for -keeping the rate of writes to the printer below its continuous throughput rate -(typically about half of its nominal cps rating). Dot-matrix printers and -6-page-per-minute lasers can typically handle 80cps, so a good conservative -rule of thumb is to sleep for a second after shipping each 80-character line. - -.SH RETURN VALUE -The \fBmcprint\fR function returns \fBERR\fR if the write operation aborted -for some reason. In this case, errno will contain either an error associated -with \fBwrite(2)\fR or one of the following: -.TP 5 -ENODEV -Capabilities for printer redirection don't exist. -.TP 5 -ENOMEM -Couldn't allocate sufficient memory to buffer the printer write. - -When \fBmcprint\fR succeeds, it returns the number of characters actually -sent to the printer. -.SH PORTABILITY -The \fBmcprint\fR call was designed for \fBncurses\fR(3X), and is not found -in SVr4 curses, 4.4BSD curses, or any other previous version of curses. -.SH BUGS -Padding in the \fBmc5p\fR, \fBmc4\fR and \fBmc5\fR capabilities will not be -interpreted. -.SH SEE ALSO -\fBcurses\fR(3X)\fR -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_printw.3x b/Build/source/libs/ncurses/man/curs_printw.3x deleted file mode 100644 index f16e2fe05e4..00000000000 --- a/Build/source/libs/ncurses/man/curs_printw.3x +++ /dev/null @@ -1,84 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_printw.3x,v 1.13 2002/11/16 22:28:57 tom Exp $ -.TH curs_printw 3X "" -.SH NAME -\fBprintw\fR, -\fBwprintw\fR, -\fBmvprintw\fR, -\fBmvwprintw\fR, -\fBvwprintw\fR, \fBvw_printw\fR - print formatted output in \fBcurses\fR windows -.SH SYNOPSIS -\fB#include \fR - -\fBint printw(const char *fmt, ...);\fR -.br -\fBint wprintw(WINDOW *win, const char *fmt, ...);\fR -.br -\fBint mvprintw(int y, int x, const char *fmt, ...);\fR -.br -\fBint mvwprintw(WINDOW *win, int y, int x, const char *fmt, ...);\fR -.br -\fBint vwprintw(WINDOW *win, const char *fmt, va_list varglist);\fR -.br -\fBint vw_printw(WINDOW *win, const char *fmt, va_list varglist);\fR -.br -.SH DESCRIPTION -The \fBprintw\fR, \fBwprintw\fR, \fBmvprintw\fR and \fBmvwprintw\fR -routines are analogous to \fBprintf\fR [see \fBprintf\fR(3S)]. In -effect, the string that would be output by \fBprintf\fR is output -instead as though \fBwaddstr\fR were used on the given window. - -The \fBvwprintw\fR and \fBwv_printw\fR routines are analogous -to \fBvprintf\fR [see \fBprintf\fR(3S)] -and perform a \fBwprintw\fR using a variable argument list. -The third argument is a \fBva_list\fR, a pointer to a -list of arguments, as defined in \fB\fR. -.SH RETURN VALUE -Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR -(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful -completion. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions. The function -\fBvwprintw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function -\fBvw_printw\fR using the \fB\fR interface. -The Single Unix Specification, Version 2 states that -\fBvw_printw\fR is preferred to \fBvwprintw\fR since the latter requires -including \fB\fR, which -cannot be used in the same file as \fB\fR. -This implementation uses \fB\fR for both, because that header -is included in \fB. -.SH SEE ALSO -\fBcurses\fR(3X), \fBprintf\fR(3S), \fBvprintf(3S)\fR -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_refresh.3x b/Build/source/libs/ncurses/man/curs_refresh.3x deleted file mode 100644 index 210b326a618..00000000000 --- a/Build/source/libs/ncurses/man/curs_refresh.3x +++ /dev/null @@ -1,126 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_refresh.3x,v 1.10 2001/11/03 18:57:12 tom Exp $ -.TH curs_refresh 3X "" -.SH NAME -\fBdoupdate\fR, -\fBredrawwin\fR, -\fBrefresh\fR, -\fBwnoutrefresh\fR, -\fBwredrawln\fR, -\fBwrefresh\fR - refresh \fBcurses\fR windows and lines -.SH SYNOPSIS -\fB#include \fR - -\fBint refresh(void);\fR -.br -\fBint wrefresh(WINDOW *win);\fR -.br -\fBint wnoutrefresh(WINDOW *win);\fR -.br -\fBint doupdate(void);\fR -.br -\fBint redrawwin(WINDOW *win);\fR -.br -\fBint wredrawln(WINDOW *win, int beg_line, int num_lines);\fR -.br -.SH DESCRIPTION -The \fBrefresh\fR and \fBwrefresh\fR routines (or \fBwnoutrefresh\fR and -\fBdoupdate\fR) must be called to get actual output to the terminal, as other -routines merely manipulate data structures. -The routine \fBwrefresh\fR copies -the named window to the physical terminal screen, taking into account what is -already there to do optimizations. -The \fBrefresh\fR routine is the -same, using \fBstdscr\fR as the default window. -Unless \fBleaveok\fR has been -enabled, the physical cursor of the terminal is left at the location of the -cursor for that window. - -The \fBwnoutrefresh\fR and \fBdoupdate\fR routines allow multiple updates with -more efficiency than \fBwrefresh\fR alone. -In addition to all the window -structures, \fBcurses\fR keeps two data structures representing the terminal -screen: a physical screen, describing what is actually on the screen, and a -virtual screen, describing what the programmer wants to have on the screen. - -The routine \fBwrefresh\fR works by first calling \fBwnoutrefresh\fR, which -copies the named window to the virtual screen, and then calling \fBdoupdate\fR, -which compares the virtual screen to the physical screen and does the actual -update. -If the programmer wishes to output several windows at once, a series -of calls to \fBwrefresh\fR results in alternating calls to \fBwnoutrefresh\fR -and \fBdoupdate\fR, causing several bursts of output to the screen. -By first -calling \fBwnoutrefresh\fR for each window, it is then possible to call -\fBdoupdate\fR once, resulting in only one burst of output, with fewer total -characters transmitted and less CPU time used. -If the \fIwin\fR argument to -\fBwrefresh\fR is the global variable \fBcurscr\fR, the screen is immediately -cleared and repainted from scratch. - -The phrase "copies the named window to the virtual screen" above is ambiguous. -What actually happens is that all \fItouched\fR (changed) lines in the window -are copied to the virtual screen. -This affects programs that use overlapping -windows; it means that if two windows overlap, you can refresh them in either -order and the overlap region will be modified only when it is explicitly -changed. -(But see the section on \fBPORTABILITY\fR below for a warning about -exploiting this behavior.) - -The \fBwredrawln\fR routine indicates to \fBcurses\fR that some screen lines -are corrupted and should be thrown away before anything is written over them. -It touches the indicated lines (marking them changed). -The routine \fBredrawwin\fR() touches the entire window. -.SH RETURN VALUE -Routines that return an integer return \fBERR\fR upon failure, and \fBOK\fR -(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful -completion. -.SH NOTES -Note that \fBrefresh\fR and \fBredrawwin\fR may be macros. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions. - -Whether \fBwnoutrefresh()\fR copies to the virtual screen the entire contents -of a window or just its changed portions has never been well-documented in -historic curses versions (including SVr4). -It might be unwise to rely on -either behavior in programs that might have to be linked with other curses -implementations. -Instead, you can do an explicit \fBtouchwin()\fR before the -\fBwnoutrefresh()\fR call to guarantee an entire-contents copy anywhere. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_outopts\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_scanw.3x b/Build/source/libs/ncurses/man/curs_scanw.3x deleted file mode 100644 index 8b67801f7dd..00000000000 --- a/Build/source/libs/ncurses/man/curs_scanw.3x +++ /dev/null @@ -1,97 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_scanw.3x,v 1.12 2002/07/20 15:48:09 tom Exp $ -.TH curs_scanw 3X "" -.SH NAME -\fBscanw\fR, -\fBwscanw\fR, -\fBmvscanw\fR, -\fBmvwscanw\fR, -\fBvwscanw\fR, \fBvw_scanw\fR - convert formatted input from a \fBcurses\fR window -.SH SYNOPSIS -\fB#include \fR - -\fBint scanw(char *fmt, ...);\fR -.br -\fBint wscanw(WINDOW *win, char *fmt, ...);\fR -.br -\fBint mvscanw(int y, int x, char *fmt, ...);\fR -.br -\fBint mvwscanw(WINDOW *win, int y, int x, char *fmt, ...);\fR -.br -\fBint vw_scanw(WINDOW *win, char *fmt, va_list varglist);\fR -.br -\fBint vwscanw(WINDOW *win, char *fmt, va_list varglist);\fR -.SH DESCRIPTION -The \fBscanw\fR, \fBwscanw\fR and \fBmvscanw\fR routines are analogous to -\fBscanf\fR [see \fBscanf\fR(3S)]. The effect of these routines is as though -\fBwgetstr\fR were called on the window, and the resulting line used as input -for \fBsscanf\fR(3). Fields which do not map to a variable in the \fIfmt\fR -field are lost. - -The \fBvwscanw\fR and \fBvw_scanw\fR routines are analogous to \fBvscanf\fR. -They perform a \fBwscanw\fR using a variable argument list. -The third argument is a \fIva_list\fR, -a pointer to a list of arguments, as defined in \fB\fR. -.SH RETURN VALUE -\fBvwscanw\fR returns \fBERR\fR on failure and an integer equal to the -number of fields scanned on success. - -Applications may use the return value from the \fBscanw\fR, \fBwscanw\fR, -\fBmvscanw\fR and \fBmvwscanw\fR routines to determine the number of fields -which were mapped in the call. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions. The function -\fBvwscanw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function -\fBvw_scanw\fR using the \fB\fR interface. -The Single Unix Specification, Version 2 states that -\fBvw_scanw\fR is preferred to \fBvwscanw\fR since the latter requires -including \fB\fR, which -cannot be used in the same file as \fB\fR. -This implementation uses \fB\fR for both, because that header -is included in \fB. -.LP -Both XSI and The Single Unix Specification, Version 2 state that these -functions return ERR or OK. -Since the underlying \fBscanf\fR can return the number of items scanned, -and the SVr4 code was documented to use this feature, -this is probably an editing error which was introduced in XSI, -rather than being done intentionally. -Portable applications should only test if the return value is ERR, -since the OK value (zero) is likely to be misleading. -One possible way to get useful results would be to use a "%n" conversion -at the end of the format string to ensure that something was processed. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_getstr\fR(3X), \fBcurs_printw\fR(3X), \fBscanf\fR(3S) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_scr_dump.3x b/Build/source/libs/ncurses/man/curs_scr_dump.3x deleted file mode 100644 index a925ea56d94..00000000000 --- a/Build/source/libs/ncurses/man/curs_scr_dump.3x +++ /dev/null @@ -1,94 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_scr_dump.3x,v 1.3 2003/10/25 20:34:06 tom Exp $ -.TH curs_scr_dump 3X "" -.SH NAME -\fBscr_dump\fR, -\fBscr_restore\fR, -\fBscr_init\fR, -\fBscr_set\fR - read (write) a \fBcurses\fR screen from (to) a file -.SH SYNOPSIS -\fB#include \fR - -\fBint scr_dump(const char *filename);\fR -.br -\fBint scr_restore(const char *filename);\fR -.br -\fBint scr_init(const char *filename);\fR -.br -\fBint scr_set(const char *filename);\fR -.br -.SH DESCRIPTION -The \fBscr_dump\fR routine dumps the current contents of the virtual screen -to the file \fIfilename\fR. - -The \fBscr_restore\fR routine sets the virtual screen to the contents -of \fIfilename\fR, which must have been written using \fBscr_dump\fR. The next -call to \fBdoupdate\fR restores the screen to the way it looked in the dump -file. - -The \fBscr_init\fR routine reads in the contents of \fIfilename\fR and uses -them to initialize the \fBcurses\fR data structures about what the terminal -currently has on its screen. If the data is determined to be valid, -\fBcurses\fR bases its next update of the screen on this information rather -than clearing the screen and starting from scratch. \fBscr_init\fR is used -after \fBinitscr\fR or a \fBsystem\fR call to share -the screen with another process which has done a \fBscr_dump\fR after its -\fBendwin\fR call. The data is declared invalid if the terminfo capabilities -\fBrmcup\fR and \fBnrrmc\fR exist; also if the terminal has been written to -since the preceding \fBscr_dump\fR call. - -The \fBscr_set\fR routine is a combination of \fBscr_restore\fR and -\fBscr_init\fR. It tells the program that the information in \fIfilename\fR is -what is currently on the screen, and also what the program wants on the screen. -This can be thought of as a screen inheritance function. - -To read (write) a window from (to) a file, use the \fBgetwin\fR and -\fBputwin\fR routines [see \fBcurs_util\fR(3X)]. -.SH RETURN VALUE -All routines return the integer \fBERR\fR upon failure and \fBOK\fR -upon success. -.SH NOTES -Note that \fBscr_init\fR, \fBscr_set\fR, and \fBscr_restore\fR may be macros. -.SH PORTABILITY -The XSI Curses standard, Issue 4, describes these functions (adding the const -qualifiers). - -The SVr4 docs merely say under \fBscr_init\fR that the dump data is also -considered invalid "if the time-stamp of the tty is old" but don't define -"old". -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X), -\fBcurs_util\fR(3X), \fBsystem\fR(3S) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_scroll.3x b/Build/source/libs/ncurses/man/curs_scroll.3x deleted file mode 100644 index 4e694c33b1f..00000000000 --- a/Build/source/libs/ncurses/man/curs_scroll.3x +++ /dev/null @@ -1,84 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_scroll.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $ -.TH curs_scroll 3X "" -.SH NAME -\fBscroll\fR, \fBscrl\fR, \fBwscrl\fR - scroll a \fBcurses\fR window -.SH SYNOPSIS -\fB#include \fR - -\fBint scroll(WINDOW *win);\fR -.br -\fBint scrl(int n);\fR -.br -\fBint wscrl(WINDOW *win, int n);\fR -.br -.SH DESCRIPTION -The \fBscroll\fR routine scrolls the window up one line. -This involves moving -the lines in the window data structure. -As an optimization, if the scrolling -region of the window is the entire screen, the physical screen may be scrolled -at the same time. - -For positive \fIn\fR, the \fBscrl\fR and \fBwscrl\fR routines scroll the -window up \fIn\fR lines (line \fIi\fR+\fIn\fR becomes \fIi\fR); otherwise -scroll the window down \fIn\fR lines. -This involves moving the lines in the -window character image structure. -The current cursor position is not changed. - -For these functions to work, scrolling must be enabled via \fBscrollok\fR. -.SH RETURN VALUE -These routines return \fBERR\fR upon failure, and \fBOK\fR (SVr4 only specifies -"an integer value other than \fBERR\fR") upon successful completion. -.SH NOTES -Note that \fBscrl\fR and \fBscroll\fR may be macros. - -The SVr4 documentation says that the optimization of physically scrolling -immediately if the scroll region is the entire screen "is" performed, not -"may be" performed. -This implementation deliberately does not guarantee -that this will occur, to leave open the possibility of smarter -optimization of multiple scroll actions on the next update. - -Neither the SVr4 nor the XSI documentation specify whether the current -attribute or -current color-pair of blanks generated by the scroll function is zeroed. -Under this implementation it is. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_outopts\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_slk.3x b/Build/source/libs/ncurses/man/curs_slk.3x deleted file mode 100644 index 1271f859696..00000000000 --- a/Build/source/libs/ncurses/man/curs_slk.3x +++ /dev/null @@ -1,149 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_slk.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $ -.TH curs_slk 3X "" -.SH NAME -\fBslk_init\fR, \fBslk_set\fR, \fBslk_refresh\fR, -\fBslk_noutrefresh\fR, \fBslk_label\fR, -\fBslk_clear\fR, \fBslk_restore\fR, \fBslk_touch\fR, -\fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR, -\fBslk_attr_on\fR, \fBslk_attr_set\fR, \fBslk_attr_off\fR, -\fBslk_attr\fR, \fBslk_color\fR - \fBcurses\fR soft label routines -.SH SYNOPSIS -\fB#include \fR - -\fBint slk_init(int fmt);\fR -.br -\fBint slk_set(int labnum, const char *label, int fmt);\fR -.br -\fBint slk_refresh(void);\fR -.br -\fBint slk_noutrefresh(void);\fR -.br -\fBchar *slk_label(int labnum);\fR -.br -\fBint slk_clear(void);\fR -.br -\fBint slk_restore(void);\fR -.br -\fBint slk_touch(void);\fR -.br -\fBint slk_attron(const chtype attrs);\fR -.br -\fBint slk_attroff(const chtype attrs);\fR -.br -\fBint slk_attrset(const chtype attrs);\fR -.br -\fBint slk_attr_on(attr_t attrs, void* opts);\fR -.br -\fBint slk_attr_off(const attr_t attrs, void * opts);\fR -.br -\fBint slk_attr_set(const attr_t attrs,\fR -.br - \fBshort color_pair_number, void* opts);\fR -.br -\fBattr_t slk_attr(void);\fR -.br -\fBint slk_color(short color_pair_number);\fR -.br -.SH DESCRIPTION -The slk* functions manipulate the set of soft function-key labels that exist on -many terminals. For those terminals that do not have soft labels, -\fBcurses\fR takes over the bottom line of \fBstdscr\fR, reducing the size of -\fBstdscr\fR and the variable \fBLINES\fR. \fBcurses\fR standardizes on eight -labels of up to eight characters each. In addition to this, the ncurses -implementation supports a mode where it simulates 12 labels of up to five -characters each. This is most common for todays PC like enduser devices. -Please note that ncurses simulates this mode by taking over up to two lines at -the bottom of the screen, it doesn't try to use any hardware support for this -mode. - -The \fBslk_init\fR routine must be called before \fBinitscr\fR or \fBnewterm\fR -is called. If \fBinitscr\fR eventually uses a line from \fBstdscr\fR to -emulate the soft labels, then \fIfmt\fR determines how the labels are arranged -on the screen. Setting \fIfmt\fR to \fB0\fR indicates a 3-2-3 arrangement of -the labels, \fB1\fR indicates a 4-4 arrangement and \fB2\fR indicates the -PC like 4-4-4 mode. If \fBfmt\fR is set to \fB3\fR, it is again the PC like -4-4-4 mode, but in addition an index line is generated, helping the user to -identify the key numbers easily. - -The \fBslk_set\fR routine requires \fIlabnum\fR to be a label number, -from \fB1\fR to \fB8\fR (resp. \fB12\fR); \fIlabel\fR must be the string -to be put on the label, up to eight (resp. five) characters in length. -A null string or a null pointer sets up a blank label. \fIfmt\fR is either -\fB0\fR, \fB1\fR, or \fB2\fR, indicating whether the label is to be -left-justified, centered, or right-justified, respectively, within the -label. - -The \fBslk_refresh\fR and \fBslk_noutrefresh\fR routines correspond to -the \fBwrefresh\fR and \fBwnoutrefresh\fR routines. - -The \fBslk_label\fR routine returns the current label for label number -\fIlabnum\fR, with leading and trailing blanks stripped. - -The \fBslk_clear\fR routine clears the soft labels from the screen. - -The \fBslk_restore\fR routine restores the soft labels to the screen -after a \fBslk_clear\fR has been performed. - -The \fBslk_touch\fR routine forces all the soft labels to be output -the next time a \fBslk_noutrefresh\fR is performed. - -The \fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR and \fBslk_attr\fR -routines correspond to \fBattron\fR, \fBattrset\fR, \fBattroff\fR and \fBattr_get\fR. -They have an effect only if soft labels are simulated on the bottom line of -the screen. The default highlight for soft keys is A_STANDOUT (as in -System V curses, which does not document this fact). - -The \fBslk_color\fR routine corresponds to \fBcolor_set\fR. It has an effect only -if soft labels are simulated on the bottom line of the screen. - -.SH RETURN VALUE -These routines return \fBERR\fR upon failure and OK (SVr4 specifies only "an -integer value other than \fBERR\fR") upon successful completion. \fBslk_attr\fR -returns the attribute used for the soft keys. - -\fBslk_label\fR returns \fBNULL\fR on error. -.SH NOTES -Most applications would use \fBslk_noutrefresh\fR because a -\fBwrefresh\fR is likely to follow soon. -.SH PORTABILITY -The XSI Curses standard, Issue 4, describes these functions. It changes the -argument type of the attribute-manipulation functions \fBslk_attron\fR, -\fBslk_attroff\fR, \fBslk_attrset\fR to be \fBattr_t\fR, and adds \fBconst\fR -qualifiers. The format codes \fB2\fR and \fB3\fR for \fBslk_init()\fR and the -function \fBslk_attr\fR are specific to ncurses. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_attr\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_termattrs.3x b/Build/source/libs/ncurses/man/curs_termattrs.3x deleted file mode 100644 index 48ff21ced68..00000000000 --- a/Build/source/libs/ncurses/man/curs_termattrs.3x +++ /dev/null @@ -1,134 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_termattrs.3x,v 1.9 2003/12/27 18:37:47 tom Exp $ -.TH curs_termattrs 3X "" -.SH NAME -\fBbaudrate\fR, -\fBerasechar\fR, -\fBerasewchar\fR, -\fBhas_ic\fR, -\fBhas_il\fR, -\fBkillchar\fR, -\fBkillwchar\fR, -\fBlongname\fR, -\fBterm_attrs\fR, -\fBtermattrs\fR, -\fBtermname\fR - \fBcurses\fR environment query routines -.SH SYNOPSIS -\fB#include \fR -.PP -\fBint baudrate(void);\fR -.br -\fBchar erasechar(void);\fR -.br -\fBint erasewchar(wchar_t *\fR\fIch\fR\fB);\fR -.br -\fBbool has_ic(void);\fR -.br -\fBbool has_il(void);\fR -.br -\fBchar killchar(void);\fR -.br -\fBint killwchar(wchar_t *\fR\fIch\fR\fB);\fR -.br -\fBchar *longname(void);\fR -.br -\fBattr_t term_attrs(void);\fR -.br -\fBchtype termattrs(void);\fR -.br -\fBchar *termname(void);\fR -.br -.SH DESCRIPTION -The \fBbaudrate\fR routine returns the output speed of the terminal. The -number returned is in bits per second, for example \fB9600\fR, and is an -integer. -.PP -The \fBerasechar\fR routine returns the user's current erase character. -.PP -The \fBerasewchar\fR routine stores the current erase character -in the location referenced by \fIch\fR. -If no erase character has been defined, the routine fails -and the location referenced by \fIch\fR is not changed. -.PP -The \fBhas_ic\fR routine is true if the terminal has insert- and delete- -character capabilities. -.PP -The \fBhas_il\fR routine is true if the terminal has insert- and delete-line -capabilities, or can simulate them using scrolling regions. This might -be used to determine if it would be appropriate to turn on physical -scrolling using \fBscrollok\fR. -.PP -The \fBkillchar\fR routine returns the user's current line kill character. -.PP -The \fBkillwchar\fR routine stores the current line-kill character -in the location referenced by \fIch\fR. -If no line-kill character has been defined, -the routine fails and the location referenced by \fIch\fR is not changed. -.PP -The \fBlongname\fR routine returns a pointer to a static area -containing a verbose description of the current terminal. The maximum -length of a verbose description is 128 characters. It is defined only -after the call to \fBinitscr\fR or \fBnewterm\fR. The area is -overwritten by each call to \fBnewterm\fR and is not restored by -\fBset_term\fR, so the value should be saved between calls to -\fBnewterm\fR if \fBlongname\fR is going to be used with multiple -terminals. -.PP -If a given terminal doesn't support a video attribute that an -application program is trying to use, \fBcurses\fR may substitute a -different video attribute for it. -The \fBtermattrs\fR and \fBterm_attrs\fR functions -return a logical \fBOR\fR of all video attributes supported by the -terminal using \fIA_\fR and \fIWA_\fR constants respectively. -This information is useful when a \fBcurses\fR program -needs complete control over the appearance of the screen. -.PP -The \fBtermname\fR routine returns the terminal name used by \fBsetupterm\fR. -.SH RETURN VALUE -\fBlongname\fR and \fBtermname\fR return \fBNULL\fR on error. -.PP -Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR -(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful -completion. -.SH NOTES -Note that \fBtermattrs\fR may be a macro. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions. It changes the -return type of \fBtermattrs\fR to the new type \fBattr_t\fR. -Most versions of curses truncate the result returned by \fBtermname\fR to -14 characters. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_outopts\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_termcap.3x b/Build/source/libs/ncurses/man/curs_termcap.3x deleted file mode 100644 index c5c5517e610..00000000000 --- a/Build/source/libs/ncurses/man/curs_termcap.3x +++ /dev/null @@ -1,164 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_termcap.3x,v 1.18 2003/02/08 22:25:47 tom Exp $ -.TH curs_termcap 3X "" -.ds n 5 -.SH NAME -\fBtgetent\fR, -\fBtgetflag\fR, -\fBtgetnum\fR, -\fBtgetstr\fR, -\fBtgoto\fR, -\fBtputs\fR - direct \fBcurses\fR interface to the terminfo capability database -.SH SYNOPSIS -\fB#include \fR -.br -\fB#include \fR -.br -\fBextern char PC;\fR -\fBextern char * UP;\fR -\fBextern char * BC;\fR -\fBextern @NCURSES_OSPEED@ ospeed;\fR -.br -\fBint tgetent(char *bp, const char *name);\fR -.br -\fBint tgetflag(char *id);\fR -.br -\fBint tgetnum(char *id);\fR -.br -\fBchar *tgetstr(char *id, char **area);\fR -.br -\fBchar *tgoto(const char *cap, int col, int row);\fR -.br -\fBint tputs(const char *str, int affcnt, int (*putc)(int));\fR -.br -.SH DESCRIPTION -These routines are included as a conversion aid for programs that use -the \fItermcap\fR library. Their parameters are the same and the -routines are emulated using the \fIterminfo\fR database. Thus, they -can only be used to query the capabilities of entries for which a -terminfo entry has been compiled. - -The \fBtgetent\fR routine loads the entry for \fIname\fR. -It returns 1 on success, 0 if there is no such entry, and -1 if the -terminfo database could not be found. -The emulation ignores the buffer pointer \fIbp\fR. - -The \fBtgetflag\fR routine gets the boolean entry for \fIid\fR, -or zero if it is not available. - -The \fBtgetnum\fR routine gets the numeric entry for \fIid\fR, -or -1 if it is not available. - -The \fBtgetstr\fR routine returns the string entry for \fIid\fR, -or zero if it is not available. -Use \fBtputs\fR to output the returned string. -The return value will also be copied to the buffer pointed to by \fIarea\fR, -and the \fIarea\fR value will be updated to point past the null ending -this value. - -Only the first two characters of the \fBid\fR parameter of -\fBtgetflag\fR, -\fBtgetnum\fR and -\fBtgetstr\fR are compared in lookups. - -The \fBtgoto\fR routine instantiates the parameters into the given capability. -The output from this routine is to be passed to \fBtputs\fR. - -The \fBtputs\fR routine is described on the \fBcurs_terminfo\fR(3X) manual -page. It can retrieve capabilities by either termcap or terminfo name. - -The variables -\fBPC\fR, -\fBUP\fR and -\fBBC\fR -are set by \fBtgetent\fR to the terminfo entry's data for -\fBpad_char\fR, -\fBcursor_up\fR and -\fBbackspace_if_not_bs\fR, -respectively. -\fBUP\fR is not used by ncurses. -\fBPC\fR is used in the \fBtdelay_output\fR function. -\fBBC\fR is used in the \fBtgoto\fR emulation. -The variable \fBospeed\fR is set by ncurses in a system-specific coding -to reflect the terminal speed. - -.SH RETURN VALUE -Except where explicitly noted, -routines that return an integer return \fBERR\fR upon failure and \fBOK\fR -(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful -completion. - -Routines that return pointers return \fBNULL\fR on error. -.SH BUGS -If you call \fBtgetstr\fR to fetch \fBca\fR or any other parameterized string, -be aware that it will be returned in terminfo notation, not the older and -not-quite-compatible termcap notation. This won't cause problems if all -you do with it is call \fBtgoto\fR or \fBtparm\fR, which both expand -terminfo-style strings as terminfo. -(The \fBtgoto\fR function, if configured to support termcap, will check -if the string is indeed terminfo-style by looking for "%p" parameters or -"$<..>" delays, and invoke a termcap-style parser if the string does not -appear to be terminfo). - -Because terminfo conventions for representing padding in string capabilities -differ from termcap's, \fBtputs("50");\fR will put out a literal "50" rather -than busy-waiting for 50 milliseconds. Cope with it. - -Note that termcap has nothing analogous to terminfo's \fBsgr\fR string. -One consequence of this is that termcap applications assume \fRme\fR -(terminfo \fBsgr0\fR) does not reset the alternate character set. -This implementation checks for, and modifies the data shown to the -termcap interface to accommodate termcap's limitation in this respect. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions. However, they -are marked TO BE WITHDRAWN and may be removed in future versions. - -Neither the XSI Curses standard nor the SVr4 man pages documented the return -values of \fBtgetent\fR correctly, though all three were in fact returned ever -since SVr1. -In particular, an omission in the XSI Curses documentation has been -misinterpreted to mean that \fBtgetent\fR returns \fBOK\fR or \fBERR\fR. -Because the purpose of these functions is to provide compatibility with -the \fItermcap\fR library, that is a defect in XCurses, Issue 4, Version 2 -rather than in ncurses. - -External variables are provided for support of certain termcap applications. -However, termcap applications' use of those variables is poorly documented, -e.g., not distinguishing between input and output. -In particular, some applications are reported to declare and/or -modify \fBospeed\fR. -.SH SEE ALSO -\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBputc\fR(3S). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_terminfo.3x b/Build/source/libs/ncurses/man/curs_terminfo.3x deleted file mode 100644 index d5c9bf68275..00000000000 --- a/Build/source/libs/ncurses/man/curs_terminfo.3x +++ /dev/null @@ -1,294 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_terminfo.3x,v 1.18 2003/12/27 18:48:59 tom Exp $ -.TH curs_terminfo 3X "" -.ds n 5 -.SH NAME -\fBdel_curterm\fR, -\fBmvcur\fR, -\fBputp\fR, -\fBrestartterm\fR, -\fBset_curterm\fR, -\fBsetterm\fR, -\fBsetupterm\fR, -\fBtigetflag\fR, -\fBtigetnum\fR, -\fBtigetstr\fR, -\fBtparm\fR, -\fBtputs\fR, -\fBvid_attr\fR, -\fBvid_puts\fR, -\fBvidattr\fR, -\fBvidputs\fR - \fBcurses\fR interfaces to terminfo database -.SH SYNOPSIS -.nf -\fB#include \fR -.br -\fB#include \fR -.PP -\fBint setupterm(char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR -.br -\fBint setterm(char *\fR\fIterm\fR\fB);\fR -.br -\fBTERMINAL *set_curterm(TERMINAL *\fR\fInterm\fR\fB);\fR -.br -\fBint del_curterm(TERMINAL *\fR\fIoterm\fR\fB);\fR -.br -\fBint restartterm(const char *\fR\fIterm\fR\fB, int \fR\fIfildes\fR\fB, int *\fR\fIerrret\fR\fB);\fR -.br -\fBchar *tparm(char *\fR\fIstr\fR\fB, ...);\fR -.br -\fBint tputs(const char *\fR\fIstr\fR\fB, int \fR\fIaffcnt\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR -.br -\fBint putp(const char *\fR\fIstr\fR\fB);\fR -.br -\fBint vidputs(chtype \fR\fIattrs\fR\fB, int (*\fR\fIputc\fR\fB)(int));\fR -.br -\fBint vidattr(chtype \fR\fIattrs\fR\fB);\fR -.br -\fBint vid_puts(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB, int (*\fR\fIputc\fR\fB)(char));\fR -.br -\fBint vid_attr(attr_t \fR\fIattrs\fR\fB, short \fR\fIpair\fR\fB, void *\fR\fIopts\fR\fB);\fR -.br -\fBint mvcur(int \fR\fIoldrow\fR\fB, int \fR\fIoldcol\fR\fB, int \fR\fInewrow\fR, int \fR\fInewcol\fR\fB);\fR -.br -\fBint tigetflag(char *\fR\fIcapname\fR\fB);\fR -.br -\fBint tigetnum(char *\fR\fIcapname\fR\fB);\fR -.br -\fBchar *tigetstr(char *\fR\fIcapname\fR\fB);\fR -.br -.fi -.SH DESCRIPTION -These low-level routines must be called by programs that have to deal -directly with the \fBterminfo\fR database to handle certain terminal -capabilities, such as programming function keys. For all other -functionality, \fBcurses\fR routines are more suitable and their use is -recommended. -.PP -Initially, \fBsetupterm\fR should be called. Note that -\fBsetupterm\fR is automatically called by \fBinitscr\fR and -\fBnewterm\fR. This defines the set of terminal-dependent variables -[listed in \fBterminfo\fR(\*n)]. The \fBterminfo\fR variables -\fBlines\fR and \fBcolumns\fR are initialized by \fBsetupterm\fR as -follows: If \fBuse_env(FALSE)\fR has been called, values for -\fBlines\fR and \fBcolumns\fR specified in \fBterminfo\fR are used. -Otherwise, if the environment variables \fBLINES\fR and \fBCOLUMNS\fR -exist, their values are used. If these environment variables do not -exist and the program is running in a window, the current window size -is used. Otherwise, if the environment variables do not exist, the -values for \fBlines\fR and \fBcolumns\fR specified in the -\fBterminfo\fR database are used. -.PP -The header files \fBcurses.h\fR and \fBterm.h\fR should be included (in this -order) to get the definitions for these strings, numbers, and flags. -Parameterized strings should be passed through \fBtparm\fR to instantiate them. -All \fBterminfo\fR strings [including the output of \fBtparm\fR] should be printed -with \fBtputs\fR or \fBputp\fR. Call the \fBreset_shell_mode\fR to restore the -tty modes before exiting [see \fBcurs_kernel\fR(3X)]. Programs which use -cursor addressing should output \fBenter_ca_mode\fR upon startup and should -output \fBexit_ca_mode\fR before exiting. Programs desiring shell escapes -should call -.PP -\fBreset_shell_mode\fR and output \fBexit_ca_mode\fR before the shell -is called and should output \fBenter_ca_mode\fR and call -\fBreset_prog_mode\fR after returning from the shell. -.PP -The \fBsetupterm\fR routine reads in the \fBterminfo\fR database, -initializing the \fBterminfo\fR structures, but does not set up the -output virtualization structures used by \fBcurses\fR. The terminal -type is the character string \fIterm\fR; if \fIterm\fR is null, the -environment variable \fBTERM\fR is used. -All output is to file descriptor \fBfildes\fR which is initialized for output. -If \fIerrret\fR is not null, -then \fBsetupterm\fR returns \fBOK\fR or -\fBERR\fR and stores a status value in the integer pointed to by -\fIerrret\fR. -A return value of \fBOK\fR combined with status of \fB1\fR in \fIerrret\fR -is normal. -If \fBERR\fR is returned, examine \fIerrret\fR: -.RS -.TP 5 -.B 1 -means that the terminal is hardcopy, cannot be used for curses applications. -.TP 5 -.B 0 -means that the terminal could not be found, -or that it is a generic type, -having too little information for curses applications to run. -.TP 5 -.B -1 -means that the \fBterminfo\fR database could not be found. -.RE -.PP -If \fIerrret\fR is -null, \fBsetupterm\fR prints an error message upon finding an error -and exits. Thus, the simplest call is: - - \fBsetupterm((char *)0, 1, (int *)0);\fR, - -which uses all the defaults and sends the output to \fBstdout\fR. -.PP -The \fBsetterm\fR routine is being replaced by \fBsetupterm\fR. The call: - - \fBsetupterm(\fR\fIterm\fR\fB, 1, (int *)0)\fR - -provides the same functionality as \fBsetterm(\fR\fIterm\fR\fB)\fR. -The \fBsetterm\fR routine is included here for BSD compatibility, and -is not recommended for new programs. -.PP -The \fBset_curterm\fR routine sets the variable \fBcur_term\fR to -\fInterm\fR, and makes all of the \fBterminfo\fR boolean, numeric, and -string variables use the values from \fInterm\fR. It returns the old value -of \fBcur_term\fR. -.PP -The \fBdel_curterm\fR routine frees the space pointed to by -\fIoterm\fR and makes it available for further use. If \fIoterm\fR is -the same as \fBcur_term\fR, references to any of the \fBterminfo\fR -boolean, numeric, and string variables thereafter may refer to invalid -memory locations until another \fBsetupterm\fR has been called. -.PP -The \fBrestartterm\fR routine is similar to \fBsetupterm\fR and \fBinitscr\fR, -except that it is called after restoring memory to a previous state (for -example, when reloading a game saved as a core image dump). It assumes that -the windows and the input and output options are the same as when memory was -saved, but the terminal type and baud rate may be different. Accordingly, -it saves various tty state bits, does a setupterm, and then restores the bits. -.PP -The \fBtparm\fR routine instantiates the string \fIstr\fR with -parameters \fIpi\fR. A pointer is returned to the result of \fIstr\fR -with the parameters applied. -.PP -The \fBtputs\fR routine applies padding information to the string -\fIstr\fR and outputs it. The \fIstr\fR must be a terminfo string -variable or the return value from \fBtparm\fR, \fBtgetstr\fR, or -\fBtgoto\fR. \fIaffcnt\fR is the number of lines affected, or 1 if -not applicable. \fIputc\fR is a \fBputchar\fR-like routine to which -the characters are passed, one at a time. -.PP -The \fBputp\fR routine calls \fBtputs(\fR\fIstr\fR\fB, 1, putchar)\fR. -Note that the output of \fBputp\fR always goes to \fBstdout\fR, not to -the \fIfildes\fR specified in \fBsetupterm\fR. -.PP -The \fBvidputs\fR routine displays the string on the terminal in the -video attribute mode \fIattrs\fR, which is any combination of the -attributes listed in \fBcurses\fR(3X). The characters are passed to -the \fBputchar\fR-like routine \fIputc\fR. -.PP -The \fBvidattr\fR routine is like the \fBvidputs\fR routine, except -that it outputs through \fBputchar\fR. -.PP -The \fBvid_attr\fR and \fBvid_puts\fR routines correspond to vidattr and vidputs, -respectively. -They use a set of arguments for representing the video attributes plus color, -i.e., -one of type attr_t for the attributes and one of short for -the color_pair number. -The \fBvid_attr\fR and \fBvid_puts\fR routines -are designed to use the attribute constants with the \fIWA_\fR prefix. -The opts argument is reserved for future use. -Currently, applications must provide a null pointer for that argument. -.PP -The \fBmvcur\fR routine provides low-level cursor motion. It takes -effect immediately (rather than at the next refresh). -.PP -The \fBtigetflag\fR, \fBtigetnum\fR and \fBtigetstr\fR routines return -the value of the capability corresponding to the \fBterminfo\fR -\fIcapname\fR passed to them, such as \fBxenl\fR. -.PP -The \fBtigetflag\fR routine returns the value \fB-1\fR if -\fIcapname\fR is not a boolean capability, -or \fB0\fR if it is canceled or absent from the terminal description. -.PP -The \fBtigetnum\fR routine returns the value \fB-2\fR if -\fIcapname\fR is not a numeric capability, -or \fB-1\fR if it is canceled or absent from the terminal description. -.PP -The \fBtigetstr\fR routine returns the value \fB(char *)-1\fR -if \fIcapname\fR is not a string capability, -or \fB0\fR if it is canceled or absent from the terminal description. -.PP -The \fIcapname\fR for each capability is given in the table column entitled -\fIcapname\fR code in the capabilities section of \fBterminfo\fR(\*n). - -\fBchar *boolnames\fR, \fB*boolcodes\fR, \fB*boolfnames\fR - -\fBchar *numnames\fR, \fB*numcodes\fR, \fB*numfnames\fR - -\fBchar *strnames\fR, \fB*strcodes\fR, \fB*strfnames\fR - -These null-terminated arrays contain the \fIcapnames\fR, the -\fBtermcap\fR codes, and the full C names, for each of the -\fBterminfo\fR variables. -.SH RETURN VALUE -Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR -(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful -completion, unless otherwise noted in the preceding routine descriptions. -.PP -Routines that return pointers always return \fBNULL\fR on error. -.SH NOTES -The \fBsetupterm\fR routine should be used in place of \fBsetterm\fR. -It may be useful when you want to test for terminal capabilities without -committing to the allocation of storage involved in \fBinitscr\fR. -.PP -Note that \fBvidattr\fR and \fBvidputs\fR may be macros. -.SH PORTABILITY -The function \fBsetterm\fR is not described in the XSI Curses standard and must -be considered non-portable. All other functions are as described in the XSI -curses standard. -.PP -In System V Release 4, \fBset_curterm\fR has an \fBint\fR return type and -returns \fBOK\fR or \fBERR\fR. We have chosen to implement the XSI Curses -semantics. -.PP -In System V Release 4, the third argument of \fBtputs\fR has the type -\fBint (*putc)(char)\fR. -.PP -The XSI Curses standard prototypes \fBtparm\fR with a fixed number of parameters, -rather than a variable argument list. -This implementation uses a variable argument list. -Portable applications should provide 9 parameters after the format; -zeroes are fine for this purpose. -.PP -XSI notes that after calling \fBmvcur\fR, the curses state may not match the -actual terminal state, and that an application should touch and refresh -the window before resuming normal curses calls. -Both ncurses and System V Release 4 curses implement \fBmvcur\fR using -the SCREEN data allocated in either \fBinitscr\fR or \fBnewterm\fR. -So though it is documented as a terminfo function, -\fBmvcur\fR is really a curses function which is not well specified. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_kernel\fR(3X), \fBcurs_termcap\fR(3X), -\fBputc\fR(3S), \fBterminfo\fR(\*n) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_touch.3x b/Build/source/libs/ncurses/man/curs_touch.3x deleted file mode 100644 index 58ffa9f6042..00000000000 --- a/Build/source/libs/ncurses/man/curs_touch.3x +++ /dev/null @@ -1,96 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_touch.3x,v 1.8 2000/07/08 11:07:57 tom Exp $ -.TH curs_touch 3X "" -.SH NAME -\fBtouchwin\fR, -\fBtouchline\fR, -\fBuntouchwin\fR, -\fBwtouchln\fR, -\fBis_linetouched\fR, -\fBis_wintouched\fR - \fBcurses\fR refresh control routines -.SH SYNOPSIS -\fB#include \fR -.br -\fBint touchwin(WINDOW *win);\fR -.br -\fBint touchline(WINDOW *win, int start, int count);\fR -.br -\fBint untouchwin(WINDOW *win);\fR -.br -\fBint wtouchln(WINDOW *win, int y, int n, int changed);\fR -.br -\fBbool is_linetouched(WINDOW *win, int line);\fR -.br -\fBbool is_wintouched(WINDOW *win);\fR -.br -.SH DESCRIPTION -The \fBtouchwin\fR and \fBtouchline\fR routines throw away all -optimization information about which parts of the window have been -touched, by pretending that the entire window has been drawn on. This -is sometimes necessary when using overlapping windows, since a change -to one window affects the other window, but the records of which lines -have been changed in the other window do not reflect the change. The -routine \fBtouchline\fR only pretends that \fIcount\fR lines have been -changed, beginning with line \fIstart\fR. - -The \fBuntouchwin\fR routine marks all lines in the window as unchanged since -the last call to \fBwrefresh\fR. - -The \fBwtouchln\fR routine makes \fIn\fR lines in the window, starting -at line \fIy\fR, look as if they have (\fIchanged\fR\fB=1\fR) or have -not (\fIchanged\fR\fB=0\fR) been changed since the last call to -\fBwrefresh\fR. - -The \fBis_linetouched\fR and \fBis_wintouched\fR routines return -\fBTRUE\fR if the specified line/window was modified since the last -call to \fBwrefresh\fR; otherwise they return \fBFALSE\fR. In -addition, \fBis_linetouched\fR returns \fBERR\fR if \fIline\fR is not -valid for the given window. -.SH RETURN VALUE -All routines return the integer \fBERR\fR upon failure and an integer value -other than \fBERR\fR upon successful completion, unless otherwise noted in the -preceding routine descriptions. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions. - -Some historic curses implementations had, as an undocumented feature, the -ability to do the equivalent of \fBclearok(..., 1)\fR by saying -\fBtouchwin(stdscr)\fR or \fBclear(stdscr)\fR. This will not work under -ncurses. -.SH NOTES -Note that all routines except \fBwtouchln\fR may be macros. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_refresh\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_trace.3x b/Build/source/libs/ncurses/man/curs_trace.3x deleted file mode 100644 index 4af258da3b0..00000000000 --- a/Build/source/libs/ncurses/man/curs_trace.3x +++ /dev/null @@ -1,149 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2000,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_trace.3x,v 1.5 2002/02/16 22:39:52 tom Exp $ -.TH curs_trace 3X "" -.SH NAME -\fB_tracef\fR, -\fB_tracedump\fR, -\fB_traceattr\fR, -\fB_traceattr2\fR, -\fB_nc_tracebits\fR, -\fB_tracechar\fR, -\fB_tracechtype\fR, -\fB_tracechtype2\fR, -\fB_tracemouse\fR, -\fBtrace\fR - \fBcurses\fR debugging routines -.SH SYNOPSIS -\fB#include \fR -.br -\fBvoid _tracef(const char *format, ...);\fR -.br -\fBvoid _tracedump(const char *label, WINDOW *win);\fR -.br -\fBchar *_traceattr(attr_t attr);\fR -.br -\fBchar *_traceattr2(int buffer, chtype ch);\fR -.br -\fBchar *_nc_tracebits(void);\fR -.br -\fBchar *_tracechar(const unsigned char ch);\fR -.br -\fBchar *_tracechtype(chtype ch);\fR -.br -\fBchar *_tracechtype2(int buffer, chtype ch);\fR -.br -\fBchar *_tracemouse(const MEVENT *event);\fR -.br -\fBvoid trace(const unsigned int param);\fR -.SH DESCRIPTION -The \fBtrace\fR routines are used for debugging the ncurses libraries, -as well as applications which use the ncurses libraries. -These functions are normally available only with the debugging library -\fIlibncurses_g.a\fR, but may be compiled into any model (shared, static, -profile) by defining the symbol \fBTRACE\fR. - -The principal parts of this interface are the \fBtrace\fR routine which -selectively enables different tracing features, and the \fB_tracef\fR -routine which writes formatted data to the \fItrace\fR file. - -Calling \fBtrace\fR with a nonzero parameter opens the file \fBtrace\fR -in the current directory for output. The parameter is formed by OR'ing -values from the list of \fBTRACE_\fP\fIxxx\fR definitions in \fB\fR. -These include: -.TP 5 -TRACE_DISABLE -turn off tracing. -.TP 5 -TRACE_TIMES -trace user and system times of updates. -.TP 5 -TRACE_TPUTS -trace tputs calls. -.TP 5 -TRACE_UPDATE -trace update actions, old & new screens. -.TP 5 -TRACE_MOVE -trace cursor movement and scrolling. -.TP 5 -TRACE_CHARPUT -trace all character outputs. -.TP 5 -TRACE_ORDINARY -trace all update actions. -The old and new screen contents are written to the trace file -for each refresh. -.TP 5 -TRACE_CALLS -trace all curses calls. -The parameters for each call are traced, as well as return values. -.TP 5 -TRACE_VIRTPUT -trace virtual character puts, i.e., calls to \fBaddch\fR. -.TP 5 -TRACE_IEVENT -trace low-level input processing, including timeouts. -.TP 5 -TRACE_BITS -trace state of TTY control bits. -.TP 5 -TRACE_ICALLS -trace internal/nested calls. -.TP 5 -TRACE_CCALLS -trace per-character calls. -.TP 5 -TRACE_DATABASE -trace read/write of terminfo/termcap data. -.TP 5 -TRACE_ATTRS -trace changes to video attributes and colors. -.TP 5 -TRACE_MAXIMUM -maximum trace level, enables all of the separate trace features. - -Some tracing features are enabled whenever the \fBtrace\fR parameter -is nonzero. Some features overlap. -The specific names are used as a guideline. -.SH RETURN VALUE -Routines which return a value are designed to be used as parameters -to the \fB_tracef\fR routine. -.SH PORTABILITY -These functions are not part of the XSI interface. -Some other curses implementations are known to -have similar, undocumented features, -but they are not compatible with ncurses. -.SH SEE ALSO -\fBcurses\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_util.3x b/Build/source/libs/ncurses/man/curs_util.3x deleted file mode 100644 index de19a308c85..00000000000 --- a/Build/source/libs/ncurses/man/curs_util.3x +++ /dev/null @@ -1,146 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_util.3x,v 1.12 2004/01/31 17:24:53 tom Exp $ -.TH curs_util 3X "" -.SH NAME -\fBdelay_output\fR, -\fBfilter\fR, -\fBflushinp\fR, -\fBgetwin\fR, -\fBkey_name\fR, -\fBkeyname\fR, -\fBputwin\fR, -\fBunctrl\fR, -\fBuse_env\fR, -\fBwunctrl\fR - miscellaneous \fBcurses\fR utility routines -.SH SYNOPSIS -\fB#include \fR -.sp -\fBchar *unctrl(chtype c);\fR -.br -\fBchar *wunctrl(cchar_t *c);\fR -.br -\fBchar *keyname(int c);\fR -.br -\fBchar *key_name(wchar_t w);\fR -.br -\fBvoid filter(void);\fR -.br -\fBvoid use_env(bool f);\fR -.br -\fBint putwin(WINDOW *win, FILE *filep);\fR -.br -\fBWINDOW *getwin(FILE *filep);\fR -.br -\fBint delay_output(int ms);\fR -.br -\fBint flushinp(void);\fR -.br -.SH DESCRIPTION -The \fBunctrl\fR routine returns a character string which is a printable -representation of the character \fIc\fR, ignoring attributes. -Control characters are displayed in the \fB^\fR\fIX\fR notation. -Printing characters are displayed as is. -The corresponding \fBwunctrl\fR returns a printable representation of -a wide-character. -.PP -The \fBkeyname\fR routine returns a character string corresponding to the key \fIc\fR. -Control characters are displayed in the \fB^\fR\fIX\fR notation. -Values above 128 are either meta characters, shown in the \fBM-\fR\fIX\fR notation, -or the names of function keys, or null. -The corresponding \fBkey_name\fR returns a character string corresponding -to the wide-character value \fIw\fR. -The two functions do not return the same set of strings; -the latter returns null where the former would display a meta character. -.PP -The \fBfilter\fR routine, if used, must be called before \fBinitscr\fR or -\fBnewterm\fR are called. The effect is that, during those calls, \fBLINES\fR -is set to 1; the capabilities \fBclear\fR, \fBcup\fR, \fBcud\fR, \fBcud1\fR, -\fBcuu1\fR, \fBcuu\fR, \fBvpa\fR are disabled; and the \fBhome\fR string is -set to the value of \fBcr\fR. -.PP -The \fBuse_env\fR routine, if used, is called before \fBinitscr\fR or -\fBnewterm\fR are called. When called with \fBFALSE\fR as an -argument, the values of \fBlines\fR and \fBcolumns\fR specified in the -\fIterminfo\fR database will be used, even if environment variables -\fBLINES\fR and \fBCOLUMNS\fR (used by default) are set, or if -\fBcurses\fR is running in a window (in which case default behavior -would be to use the window size if \fBLINES\fR and \fBCOLUMNS\fR are -not set). -.PP -The \fBputwin\fR routine writes all data associated with window \fIwin\fR into -the file to which \fIfilep\fR points. This information can be later retrieved -using the \fBgetwin\fR function. -.PP -The \fBgetwin\fR routine reads window related data stored in the file by -\fBputwin\fR. The routine then creates and initializes a new window using that -data. It returns a pointer to the new window. -.PP -The \fBdelay_output\fR routine inserts an \fIms\fR millisecond pause -in output. This routine should not be used extensively because -padding characters are used rather than a CPU pause. -If no padding character is specified, this uses \fBnapms\fR to perform the delay. -.PP -The \fBflushinp\fR routine throws away any typeahead that has been typed by the -user and has not yet been read by the program. -.SH RETURN VALUE -Except for \fBflushinp\fR, routines that return an integer return \fBERR\fR -upon failure and \fBOK\fR (SVr4 specifies only "an integer value other than -\fBERR\fR") upon successful completion. -.PP -\fBflushinp\fR always returns \fBOK\fR. -.PP -Routines that return pointers return \fBNULL\fR on error. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions. -It states that \fBunctrl\fR and \fBwunctrl\fR will return a null pointer if -unsuccessful, but does not define any error conditions. -.PP -The SVr4 documentation describes the action of \fBfilter\fR only in the vaguest -terms. The description here is adapted from the XSI Curses standard (which -erroneously fails to describe the disabling of \fBcuu\fR). -.PP -The strings returned by \fBunctrl\fR in this implementation are determined -at compile time, showing C1 controls from the upper-128 codes with a `~' -prefix rather than `^'. -Other implementations typically show both sets of control characters with `^', -and may strip the parameter to 7 bits. -This implementation uses 8 bits but does not modify the string to reflect -locale. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBcurs_initscr\fR(3X), -\fBcurs_kernel\fR(3X), -\fBcurs_scr_dump\fR(3X). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/curs_window.3x b/Build/source/libs/ncurses/man/curs_window.3x deleted file mode 100644 index 6aad4e7f495..00000000000 --- a/Build/source/libs/ncurses/man/curs_window.3x +++ /dev/null @@ -1,159 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: curs_window.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $ -.TH curs_window 3X "" -.SH NAME -\fBnewwin\fR, -\fBdelwin\fR, -\fBmvwin\fR, -\fBsubwin\fR, -\fBderwin\fR, -\fBmvderwin\fR, -\fBdupwin\fR, -\fBwsyncup\fR, -\fBsyncok\fR, -\fBwcursyncup\fR, -\fBwsyncdown\fR - create \fBcurses\fR windows -.SH SYNOPSIS -\fB#include \fR - -\fBWINDOW *newwin(int nlines, int ncols, int begin_y,\fR - \fBint begin_x);\fR -.br -\fBint delwin(WINDOW *win);\fR -.br -\fBint mvwin(WINDOW *win, int y, int x);\fR -.br -\fBWINDOW *subwin(WINDOW *orig, int nlines, int ncols,\fR - \fBint begin_y, int begin_x);\fR -.br -\fBWINDOW *derwin(WINDOW *orig, int nlines, int ncols,\fR - \fBint begin_y, int begin_x);\fR -.br -\fBint mvderwin(WINDOW *win, int par_y, int par_x);\fR -.br -\fBWINDOW *dupwin(WINDOW *win);\fR -.br -\fBvoid wsyncup(WINDOW *win);\fR -.br -\fBint syncok(WINDOW *win, bool bf);\fR -.br -\fBvoid wcursyncup(WINDOW *win);\fR -.br -\fBvoid wsyncdown(WINDOW *win);\fR -.br -.SH DESCRIPTION -Calling \fBnewwin\fR creates and returns a pointer to a new window with the -given number of lines and columns. The upper left-hand corner of the window is -at line \fIbegin\fR_\fIy\fR, column \fIbegin\fR_\fIx\fR. If either -\fInlines\fR or \fIncols\fR is zero, they default to \fBLINES -\fR -\fIbegin\fR_\fIy\fR and \fBCOLS -\fR \fIbegin\fR_\fIx\fR. A new full-screen -window is created by calling \fBnewwin(0,0,0,0)\fR. - -Calling \fBdelwin\fR deletes the named window, freeing all memory -associated with it (it does not actually erase the window's screen -image). Subwindows must be deleted before the main window can be -deleted. - -Calling \fBmvwin\fR moves the window so that the upper left-hand -corner is at position (\fIx\fR, \fIy\fR). If the move would cause the -window to be off the screen, it is an error and the window is not -moved. Moving subwindows is allowed, but should be avoided. - -Calling \fBsubwin\fR creates and returns a pointer to a new window -with the given number of lines, \fInlines\fR, and columns, -\fIncols\fR. The window is at position (\fIbegin\fR_\fIy\fR, -\fIbegin\fR_\fIx\fR) on the screen. (This position is relative to the -screen, and not to the window \fIorig\fR.) The window is made in the -middle of the window \fIorig\fR, so that changes made to one window -will affect both windows. The subwindow shares memory with the window -\fIorig\fR. When using this routine, it is necessary to call -\fBtouchwin\fR or \fBtouchline\fR on \fIorig\fR before calling -\fBwrefresh\fR on the subwindow. - -Calling \fBderwin\fR is the same as calling \fBsubwin,\fR except that -\fIbegin\fR_\fIy\fR and \fIbegin\fR_\fIx\fR are relative to the origin -of the window \fIorig\fR rather than the screen. There is no -difference between the subwindows and the derived windows. - -Calling \fBmvderwin\fR moves a derived window (or subwindow) -inside its parent window. The screen-relative parameters of the -window are not changed. This routine is used to display different -parts of the parent window at the same physical position on the -screen. - -Calling \fBdupwin\fR creates an exact duplicate of the window \fIwin\fR. - -Calling \fBwsyncup\fR touches all locations in ancestors of \fIwin\fR that are -changed in \fIwin\fR. If \fBsyncok\fR is called with second argument -\fBTRUE\fR then \fBwsyncup\fR is called automatically whenever there is a -change in the window. - -The \fBwsyncdown\fR routine touches each location in \fIwin\fR that has been -touched in any of its ancestor windows. This routine is called by -\fBwrefresh\fR, so it should almost never be necessary to call it manually. - -The routine \fBwcursyncup\fR updates the current cursor position of all the -ancestors of the window to reflect the current cursor position of the -window. -.SH RETURN VALUE -Routines that return an integer return the integer \fBERR\fR upon failure and -\fBOK\fR (SVr4 only specifies "an integer value other than \fBERR\fR") upon -successful completion. - -\fBdelwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR -upon successful completion. - -Routines that return pointers return \fBNULL\fR on error. -.SH NOTES -If many small changes are made to the window, the \fBwsyncup\fR option could -degrade performance. - -Note that \fBsyncok\fR may be a macro. -.SH BUGS -The subwindow functions (\fIsubwin\fR, \fIderwin\fR, \fImvderwin\fR, -\fBwsyncup\fR, \fBwsyncdown\fR, \fBwcursyncup\fR, \fBsyncok\fR) are flaky, -incompletely implemented, and not well tested. - -The System V curses documentation is very unclear about what \fBwsyncup\fR -and \fBwsyncdown\fR actually do. It seems to imply that they are only -supposed to touch exactly those lines that are affected by ancestor changes. -The language here, and the behavior of the \fBcurses\fR implementation, -is patterned on the XPG4 curses standard. The weaker XPG4 spec may result -in slower updates. -.SH PORTABILITY -The XSI Curses standard, Issue 4 describes these functions. -.SH SEE ALSO -\fBcurses\fR(3X), \fBcurs_refresh\fR(3X), \fBcurs_touch\fR(3X) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/default_colors.3x b/Build/source/libs/ncurses/man/default_colors.3x deleted file mode 100644 index ae07899dcbf..00000000000 --- a/Build/source/libs/ncurses/man/default_colors.3x +++ /dev/null @@ -1,125 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" Author: Thomas E. Dickey 1997,1999,2000 -.\" -.\" $Id: default_colors.3x,v 1.17 2003/10/25 20:41:08 tom Exp $ -.TH default_colors 3X "" -.SH NAME -\fBuse_default_colors\fR, -\fBassume_default_colors\fR \- use terminal's default colors -.SH SYNOPSIS -\fB#include \fP - -\fBint use_default_colors(void);\fP -.br -\fBint assume_default_colors(int fg, int bg);\fP -.SH DESCRIPTION -The -.I use_default_colors() -and -.I assume_default_colors() -functions are extensions to the curses library. -They are used with terminals that support ISO 6429 color, or equivalent. -These terminals allow the application to reset color to an unspecified -default value (e.g., with SGR 39 or SGR 49). -.PP -Applications that paint a colored background over the whole screen -do not take advantage of SGR 39 and SGR 49. -Some applications are designed to work with the default background, -using colors only for text. -For example, there are several implementations of the \fBls\fP program -which use colors to denote different file types or permissions. -These "color ls" programs do not necessarily modify the background color, -typically using only the \fIsetaf\fP terminfo capability to set the -foreground color. -Full-screen applications that use default colors can achieve similar -visual effects. -.PP -The first function, -.I use_default_colors() -tells the curses library to assign terminal default -foreground/background colors to color number -1. So init_pair(x,COLOR_RED,-1) -will initialize pair x as red on default background and init_pair(x,-1,COLOR_BLUE) will -initialize pair x as default foreground on blue. -.PP -The other, -.I assume_default_colors() -is a refinement which tells which colors to paint for color pair 0. -This function recognizes a special color number -1, -which denotes the default terminal color. -.PP -The following are equivalent: -.RS -.br -.I use_default_colors(); -.br -.I assume_default_colors(-1,-1); -.RE -.PP -These are ncurses extensions. -For other curses implementations, color -number -1 does not mean anything, just as for ncurses before a -successful call of \fIuse_default_colors()\fP or \fIassume_default_colors()\fP. -.PP -Other curses implementations do not allow an application to modify color pair 0. -They assume that the background is COLOR_BLACK, -but do not ensure that the color pair 0 is painted to match the -assumption. -If your application does not use either -.I use_default_colors() -or -.I assume_default_colors() -ncurses will paint a white foreground (text) with black background -for color pair 0. -.SH RETURN VALUE -These functions return the integer \fBERR\fP upon failure and \fBOK\fP on success. -They will fail if either the terminal does not support -the \fIorig_pair\fP or \fIorig_colors\fP capability. -If the \fIinitialize_pair\fP capability is found, this causes an -error as well. -.SH NOTES -Associated with this extension, the \fBinit_pair\fR(3X) function accepts -negative arguments to specify default foreground or background -colors. -.SH PORTABILITY -These routines are specific to ncurses. They were not supported on -Version 7, BSD or System V implementations. It is recommended that -any code depending on them be conditioned using NCURSES_VERSION. -.SH SEE ALSO -\fBcurs_color\fR(3X), -\fBded\fP(1). -.SH AUTHOR -Thomas Dickey (from an analysis of the requirements for color xterm -for XFree86 3.1.2C, February 1996). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/define_key.3x b/Build/source/libs/ncurses/man/define_key.3x deleted file mode 100644 index b7bca879f2a..00000000000 --- a/Build/source/libs/ncurses/man/define_key.3x +++ /dev/null @@ -1,65 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" Author: Thomas E. Dickey 1997 -.\" -.\" $Id: define_key.3x,v 1.11 2004/06/05 19:20:03 tom Exp $ -.TH define_key 3X "" -.SH NAME -\fBdefine_key\fP \- define a keycode -.SH SYNOPSIS -\fB#include \fP - -\fBint define_key(const char *definition, int keycode);\fP -.SH DESCRIPTION -This is an extension to the curses library. -It permits an application to define keycodes with their corresponding control -strings, so that the ncurses library will interpret them just as it would -the predefined codes in the terminfo database. -.PP -If the given string is null, any existing definition for the keycode is -removed. -Similarly, if the given keycode is negative or zero, any existing string -for the given definition is removed. -.SH RETURN VALUE -The keycode must be greater than zero, else ERR is returned. -.SH PORTABILITY -These routines are specific to ncurses. They were not supported on -Version 7, BSD or System V implementations. It is recommended that -any code depending on them be conditioned using NCURSES_VERSION. -.SH SEE ALSO -\fBkeyok\fR(3X), -\fBkey_defined\fR(3X). -.SH AUTHOR -Thomas Dickey. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form.3x b/Build/source/libs/ncurses/man/form.3x deleted file mode 100644 index 811b9ff7473..00000000000 --- a/Build/source/libs/ncurses/man/form.3x +++ /dev/null @@ -1,200 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form.3x,v 1.15 2002/01/19 22:48:05 tom Exp $ -.TH form 3X "" -.SH NAME -\fBform\fR - curses extension for programming forms -.SH SYNOPSIS -\fB#include \fR -.br -.SH DESCRIPTION -The \fBform\fR library provides terminal-independent facilities for composing -form screens on character-cell terminals. The library includes: field -routines, which create and modify form fields; and form routines, which group -fields into forms, display forms on the screen, and handle interaction with the -user. - -The \fBform\fR library uses the \fBcurses\fR libraries, and a curses -initialization routine such as \fBinitscr\fR must be called before using any of -these functions. To use the \fBform\fR library, link with the options -\fB-lform -lcurses\fR. - -.SS Current Default Values for Field Attributes - -The \fBform\fR library maintains a default value for field attributes. You -can get or set this default by calling the appropriate \fBset_\fR -or retrieval -routine with a \fBNULL\fR field pointer. Changing this default with a -\fBset_\fR function affects future field creations, but does not change the -rendering of fields already created. - -.SS Routine Name Index - -The following table lists each \fBform\fR routine and the name of -the manual page on which it is described. - -.TS -l l -l l . -\fBcurses\fR Routine Name Manual Page Name -= -current_field \fBform_page\fR(3X) -data_ahead \fBform_data\fR(3X) -data_behind \fBform_data\fR(3X) -dup_field \fBform_field_new\fR(3X) -dynamic_fieldinfo \fBform_field_info\fR(3X) -field_arg \fBform_field_validation\fR(3X) -field_back \fBform_field_attributes\fR(3X) -field_buffer \fBform_field_buffer\fR(3X) -field_count \fBform_field\fR(3X) -field_fore \fBform_field_attributes\fR(3X) -field_index \fBform_page\fR(3X) -field_info \fBform_field_info\fR(3X) -field_init \fBform_hook\fR(3X) -field_just \fBform_field_just\fR(3X) -field_opts \fBform_field_opts\fR(3X) -field_opts_off \fBform_field_opts\fR(3X) -field_opts_on \fBform_field_opts\fR(3X) -field_pad \fBform_field_attributes\fR(3X) -field_status \fBform_field_buffer\fR(3X) -field_term \fBform_hook\fR(3X) -field_type \fBform_field_validation\fR(3X) -field_userptr \fBform_field_userptr\fR(3X) -form_driver \fBform_driver\fR(3X) -form_fields \fBform_field\fR(3X) -form_init \fBform_hook\fR(3X) -form_opts \fBform_opts\fR(3X) -form_opts_off \fBform_opts\fR(3X) -form_opts_on \fBform_opts\fR(3X) -form_page \fBform_page\fR(3X) -form_request_by_name \fBform_requestname\fR(3X) -form_request_name \fBform_requestname\fR(3X) -form_sub \fBform_win\fR(3X) -form_term \fBform_hook\fR(3X) -form_userptr \fBform_userptr\fR(3X) -form_win \fBform_win\fR(3X) -free_field \fBform_field_new\fR(3X) -free_form \fBform_new\fR(3X) -link_field \fBform_field_new\fR(3X) -link_fieldtype \fBform_fieldtype\fR(3X) -move_field \fBform_field\fR(3X) -new_field \fBform_field_new\fR(3X) -new_form \fBform_new\fR(3X) -new_page \fBform_new_page\fR(3X) -pos_form_cursor \fBform_cursor\fR(3X) -post_form \fBform_post\fR(3X) -scale_form \fBform_win\fR(3X) -set_current_field \fBform_page\fR(3X) -set_field_back \fBform_field_attributes\fR(3X) -set_field_buffer \fBform_field_buffer\fR(3X) -set_field_fore \fBform_field_attributes\fR(3X) -set_field_init \fBform_hook\fR(3X) -set_field_just \fBform_field_just\fR(3X) -set_field_opts \fBform_field_opts\fR(3X) -set_field_pad \fBform_field_attributes\fR(3X) -set_field_status \fBform_field_buffer\fR(3X) -set_field_term \fBform_hook\fR(3X) -set_field_type \fBform_field_validation\fR(3X) -set_field_userptr \fBform_field_userptr\fR(3X) -set_fieldtype_arg \fBform_fieldtype\fR(3X) -set_fieldtype_choice \fBform_fieldtype\fR(3X) -set_form_fields \fBform_field\fR(3X) -set_form_init \fBform_hook\fR(3X) -set_form_opts \fBform_field_opts\fR(3X) -set_form_page \fBform_page\fR(3X) -set_form_sub \fBform_win\fR(3X) -set_form_term \fBform_hook\fR(3X) -set_form_userptr \fBform_userptr\fR(3X) -set_form_win \fBform_win\fR(3X) -set_max_field \fBform_field_buffer\fR(3X) -set_new_page \fBform_new_page\fR(3X) -unpost_form \fBform_post\fR(3X) -.TE -.SH RETURN VALUE -Routines that return pointers return \fBNULL\fR on error. Routines that return -an integer return one of the following error codes: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_CONNECTED\fR -The field is already connected to a form. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The form is already posted. -.TP 5 -\fBE_BAD_STATE\fR -Routine was called from an initialization or termination function. -.TP 5 -\fBE_NO_ROOM\fR -Form is too large for its window. -.TP 5 -\fBE_NOT_POSTED\fR -The form has not been posted. -.TP 5 -\fBE_UNKNOWN_COMMAND\fR -The form driver code saw an unknown request code. -.TP 5 -\fBE_INVALID_FIELD\fR -Contents of a field are not valid. -.TP 5 -\fBE_NOT_CONNECTED\fR -No fields are connected to the form. -.TP 5 -\fBE_REQUEST_DENIED\fR -The form driver could not process the request. -.SH SEE ALSO -\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed -descriptions of the entry points. -.SH NOTES -The header file \fB\fR automatically includes the header files -\fB\fR and \fB\fR. - -In your library list, libform.a should be before libncurses.a; that is, -you want to say `-lform -lncurses', not the other way around (which would -give you a link error using GNU \fBld\fR(1) and many other linkers). -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_cursor.3x b/Build/source/libs/ncurses/man/form_cursor.3x deleted file mode 100644 index ab37c99e7fa..00000000000 --- a/Build/source/libs/ncurses/man/form_cursor.3x +++ /dev/null @@ -1,74 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_cursor.3x,v 1.4 1998/11/29 01:05:43 Rick.Ohnemus Exp $ -.TH form_cursor 3X "" -.SH NAME -\fBform_cursor\fR - position a form window cursor -.SH SYNOPSIS -\fB#include \fR -.br -int pos_form_cursor(FORM *form); -.br -.SH DESCRIPTION -The function \fBpos_form_cursor\fR restores the cursor to the position required -for the forms driver to continue processing requests. This is useful after -\fBcurses\fR routines have been called to do screen-painting in response to a -form operation. -.SH RETURN VALUE -This routine returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_NOT_POSTED\fR -The form has not been posted. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_data.3x b/Build/source/libs/ncurses/man/form_data.3x deleted file mode 100644 index 3767e954590..00000000000 --- a/Build/source/libs/ncurses/man/form_data.3x +++ /dev/null @@ -1,63 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_data.3x,v 1.7 1998/11/29 01:13:22 Rick.Ohnemus Exp $ -.TH form_data 3X "" -.SH NAME -\fBform_data\fR - test for off-screen data in given forms -.SH SYNOPSIS -\fB#include \fR -.br -bool data_ahead(const FORM *form); -.br -bool data_behind(const FORM *form); -.br -.SH DESCRIPTION -The function \fBdata_ahead\fR tests whether there is off-screen data -ahead in the given form. It returns TRUE (1) or FALSE (0). - -The function \fBdata_behind\fR tests whether there is off-screen data -behind in the given form. It returns TRUE (1) or FALSE (0). -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_driver.3x b/Build/source/libs/ncurses/man/form_driver.3x deleted file mode 100644 index 23540891019..00000000000 --- a/Build/source/libs/ncurses/man/form_driver.3x +++ /dev/null @@ -1,272 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_driver.3x,v 1.9 2002/02/16 22:39:52 tom Exp $ -.TH form_driver 3X "" -.SH NAME -\fBform_driver\fR - command-processing loop of the form system -.SH SYNOPSIS -\fB#include \fR -.br -int form_driver(FORM *form, int c); -.br -.SH DESCRIPTION -Once a form has been posted (displayed), you should funnel input events to it -through \fBform_driver\fR. This routine has two major input cases; either -the input is a form navigation request or it's a printable ASCII character. -The form driver requests are as follows: -.TP 5 -REQ_NEXT_PAGE -Move to the next page. -.TP 5 -REQ_PREV_PAGE -Move to the previous page. -.TP 5 -REQ_FIRST_PAGE -Move to the first page. -.TP 5 -REQ_LAST_PAGE -Move to the last field. - -.TP 5 -REQ_NEXT_FIELD -Move to the next field. -.TP 5 -REQ_PREV_FIELD -Move to the previous field. -.TP 5 -REQ_FIRST_FIELD -Move to the first field. -.TP 5 -REQ_LAST_FIELD -Move to the last field. -.TP 5 -REQ_SNEXT_FIELD -Move to the sorted next field. -.TP 5 -REQ_SPREV_FIELD -Move to the sorted previous field. -.TP 5 -REQ_SFIRST_FIELD -Move to the sorted first field. -.TP 5 -REQ_SLAST_FIELD -Move to the sorted last field. -.TP 5 -REQ_LEFT_FIELD -Move left to a field. -.TP 5 -REQ_RIGHT_FIELD -Move right to a field. -.TP 5 -REQ_UP_FIELD -Move up to a field. -.TP 5 -REQ_DOWN_FIELD -Move down to a field. - -.TP 5 -REQ_NEXT_CHAR -Move to the next char. -.TP 5 -REQ_PREV_CHAR -Move to the previous char. -.TP 5 -REQ_NEXT_LINE -Move to the next line. -.TP 5 -REQ_PREV_LINE -Move to the previous line. -.TP 5 -REQ_NEXT_WORD -Move to the next word. -.TP 5 -REQ_PREV_WORD -Move to the previous word. -.TP 5 -REQ_BEG_FIELD -Move to the beginning of the field. -.TP 5 -REQ_END_FIELD -Move to the end of the field. -.TP 5 -REQ_BEG_LINE -Move to the beginning of the line. -.TP 5 -REQ_END_LINE -Move to the end of the line. -.TP 5 -REQ_LEFT_CHAR -Move left in the field. -.TP 5 -REQ_RIGHT_CHAR -Move right in the field. -.TP 5 -REQ_UP_CHAR -Move up in the field. -.TP 5 -REQ_DOWN_CHAR -Move down in the field. - -.TP 5 -REQ_NEW_LINE -Insert or overlay a new line. -.TP 5 -REQ_INS_CHAR -Insert a blank at the cursor. -.TP 5 -REQ_INS_LINE -Insert a blank line at the cursor. -.TP 5 -REQ_DEL_CHAR -Delete character at the cursor. -.TP 5 -REQ_DEL_PREV -Delete character before the cursor. -.TP 5 -REQ_DEL_LINE -Delete line at the cursor. -.TP 5 -REQ_DEL_WORD -Delete blank-delimited word at the cursor. -.TP 5 -REQ_CLR_EOL -Clear to end of line from cursor. -.TP 5 -REQ_CLR_EOF -Clear to end of field from cursor. -.TP 5 -REQ_CLR_FIELD -Clear the entire field. -.TP 5 -REQ_OVL_MODE -Enter overlay mode. -.TP 5 -REQ_INS_MODE -Enter insert mode. - -.TP 5 -REQ_SCR_FLINE -Scroll the field forward a line. -.TP 5 -REQ_SCR_BLINE -Scroll the field backward a line. -.TP 5 -REQ_SCR_FPAGE -Scroll the field forward a page. -.TP 5 -REQ_SCR_BPAGE -Scroll the field backward a page. -.TP 5 -REQ_SCR_FHPAGE -Scroll the field forward half a page. -.TP 5 -REQ_SCR_BHPAGE -Scroll the field backward half a page. - -.TP 5 -REQ_SCR_FCHAR -Scroll the field forward a character. -.TP 5 -REQ_SCR_BCHAR -Scroll the field backward a character. -.TP 5 -REQ_SCR_HFLINE -Horizontal scroll the field forward a line. -.TP 5 -REQ_SCR_HBLINE -Horizontal scroll the field backward a line. -.TP 5 -REQ_SCR_HFHALF -Horizontal scroll the field forward half a line. -.TP 5 -REQ_SCR_HBHALF -Horizontal scroll the field backward half a line. - -.TP -REQ_VALIDATION -Validate field. -.TP -REQ_NEXT_CHOICE -Display next field choice. -.TP -REQ_PREV_CHOICE -Display previous field choice. -.PP -If the second argument is a printable ASCII character, the driver places it -in the current position in the current field. If it is one of the forms -requests listed above, that request is executed. -.PP -If the second argument is neither printable ASCII nor one of the above -pre-defined form requests, the driver assumes it is an application-specific -command and returns \fBE_UNKNOWN_COMMAND\fR. Application-defined commands -should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these -pre-defined requests. -.SH RETURN VALUE -\fBform_driver\fR return one of the following error codes: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_BAD_STATE\fR -Routine was called from an initialization or termination function. -.TP 5 -\fBE_NOT_POSTED\fR -The form has not been posted. -.TP 5 -\fBE_UNKNOWN_COMMAND\fR -The form driver code saw an unknown request code. -.TP 5 -\fBE_INVALID_FIELD\fR -Contents of field is invalid. -.TP 5 -\fBE_REQUEST_DENIED\fR -The form driver could not process the request. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header files -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_field.3x b/Build/source/libs/ncurses/man/form_field.3x deleted file mode 100644 index e916bf18255..00000000000 --- a/Build/source/libs/ncurses/man/form_field.3x +++ /dev/null @@ -1,97 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_field.3x,v 1.6 2003/05/10 20:33:49 jmc Exp $ -.TH form_field 3X "" -.SH NAME -\fBform_field\fR - make and break connections between fields and forms -.SH SYNOPSIS -\fB#include \fR -.br -int set_form_fields(FORM *form, FIELD **fields); -.br -FIELD **form_fields(const FORM *form); -.br -int field_count(const FORM *form); -.br -int move_field(FIELD *field, int frow, int fcol); -.br -.SH DESCRIPTION -The function \fBset_form_fields\fR changes the field pointer array of -the given \fIform\fR. The array must be terminated by a \fBNULL\fR. - -The function \fBform_fields\fR returns the field array of the given form. - -The function \fBfield_count\fR returns the count of fields in \fIform\fR. - -The function \fBmove_field\fR moves the given field (which must be disconnected) -to a specified location on the screen. -.SH RETURN VALUES -The function \fBform_fields\fR returns \fBNULL\fR on error. - -The function \fBfield_count\fR returns \fBERR\fR (the general -\fBcurses\fR error return value) on error. - -The functions \fBset_form_fields\fR and \fBmove_field\fR return one of -the following codes on error: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The form is already posted. -.TP 5 -\fBE_CONNECTED\fR -The field is already connected to a form. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. - -The SVr4 forms library documentation specifies the \fBfield_count\fR error value -as -1 (which is the value of \fBERR\fR). -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_field_attributes.3x b/Build/source/libs/ncurses/man/form_field_attributes.3x deleted file mode 100644 index ac7a3b53eec..00000000000 --- a/Build/source/libs/ncurses/man/form_field_attributes.3x +++ /dev/null @@ -1,91 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2001,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_field_attributes.3x,v 1.7 2002/01/19 22:48:14 tom Exp $ -.TH form_field_attributes 3X "" -.SH NAME -\fBform_field_attributes\fR - color and attribute control for form fields -.SH SYNOPSIS -\fB#include \fR -.br -int set_field_fore(FIELD *field, chtype attr); -.br -chtype field_fore(const FIELD *field); -.br -int set_field_back(FIELD *field, chtype attr); -.br -chtype field_back(const FIELD *field); -.br -int set_field_pad(FIELD *field, int pad); -.br -int field_pad(const FIELD *field); -.br -.SH DESCRIPTION -The function \fBset_field_fore\fR sets the foreground attribute of -\fIfield\fR. This is the highlight used to display the field contents. The -function \fBfield_fore\fR returns the foreground attribute. The default is -\fBA_STANDOUT\fR. - -The function \fBset_field_back\fR sets the background attribute of -\fIform\fR. This is the highlight used to display the extent fields in the -form. The function \fBfield_back\fR returns the background attribute. The -default is \fBA_NORMAL\fR. - -The function \fBset_field_pad\fR sets the character used to fill the field. -The function \fBfield_pad\fR returns the given form's pad character. The -default is a blank. -.SH RETURN VALUE -These routines return one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.SH SEE ALSO -\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed -descriptions of the entry points. -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_field_buffer.3x b/Build/source/libs/ncurses/man/form_field_buffer.3x deleted file mode 100644 index 3432cde19a1..00000000000 --- a/Build/source/libs/ncurses/man/form_field_buffer.3x +++ /dev/null @@ -1,105 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_field_buffer.3x,v 1.11 2004/05/16 15:58:51 tom Exp $ -.TH form_field_buffer 3X "" -.SH NAME -\fBform_field_buffer\fR - field buffer control -.SH SYNOPSIS -\fB#include \fR -.br -int set_field_buffer(FIELD *field, int buf, const char *value); -.br -char *field_buffer(const FIELD *field, int buffer); -.br -int set_field_status(FIELD *field, bool status); -.br -bool field_status(const FIELD *field); -.br -int set_max_field(FIELD *field, int max); -.br -.SH DESCRIPTION -The function \fBset_field_buffer\fR sets the numbered buffer of the given field -to contain a given string. Buffer 0 is the displayed value of the field; other -numbered buffers may be allocated by applications through the \fBnbuf\fR -argument of (see \fBform_field_new\fR(3X)) but are not manipulated by the forms -library. The function \fBfield_buffer\fR returns the address of the buffer. -Please note that this buffer has always the length of the buffer, that means -that it may typically contain trailing spaces. If you entered leading spaces -the buffer may also contain them. If you want the raw data, you must write your -own routine that copies the value out of the buffer and removes the leading -and trailing spaces. Please note also, that subsequent operations on the form -will probably change the content of the buffer. So don't use it for long term -storage of the entered form data. - -The function \fBset_field_status\fR sets the associated status flag of -\fIfield\fR; \fBfield_status\fR gets the current value. The status flag -is set to a nonzero value whenever the field changes. - -The function \fBset_max_field\fR sets the maximum size for a dynamic field. -An argument of 0 turns off any maximum size threshold for that field. -.SH RETURN VALUE -The \fBfield_buffer\fR function returns NULL on error. - -The \fBfield_status\fR function returns \fBTRUE\fR or \fBFALSE\fR. - -The remaining routines return one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.SH SEE ALSO -\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed -descriptions of the entry points. -.SH NOTES -The header file \fB\fR automatically includes the header file - -When configured for wide-characters, \fBfield_buffer\fP returns a pointer -to temporary storage (allocated and freed by the library). -The application should not attempt to modify the data. -It will be freed on the next call to \fBfield_buffer\fP to return the -same buffer. -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_field_info.3x b/Build/source/libs/ncurses/man/form_field_info.3x deleted file mode 100644 index 56b81ac7daa..00000000000 --- a/Build/source/libs/ncurses/man/form_field_info.3x +++ /dev/null @@ -1,84 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_field_info.3x,v 1.8 2002/01/19 22:48:32 tom Exp $ -.TH form_field_info 3X "" -.SH NAME -\fBform_field_info\fR - retrieve field characteristics -.SH SYNOPSIS -\fB#include \fR -.br -int field_info(const FIELD *field, int *rows, int *cols, - int *frow, int *fcol, int *nrow, int *nbuf); -.br -int dynamic_field_info(const FIELD *field, int *rows, int *cols, int *max); -.br -.SH DESCRIPTION -The function \fBfield_info\fR returns the sizes and other attributes passed in -to the field at its creation time. The attributes are: height, width, row of -upper-left corner, column of upper-left corner, number off-screen rows, and -number of working buffers. - -The function \fBdynamic_field_info\fR returns the actual size of the field, and -its maximum possible size. If the field has no size limit, the location -addressed by the third argument will be set to 0. (A field can be made dynamic -by turning off the \fBO_STATIC\fR). -.SH RETURN VALUE -These routines return one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.SH SEE ALSO -\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed -descriptions of the entry points. -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.PP -A null (zero pointer) is accepted for any of the return values, -to ignore that value. -Not all implementations allow this, e.g., Solaris 2.7 does not. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_field_just.3x b/Build/source/libs/ncurses/man/form_field_just.3x deleted file mode 100644 index 61b62b88b93..00000000000 --- a/Build/source/libs/ncurses/man/form_field_just.3x +++ /dev/null @@ -1,78 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_field_just.3x,v 1.7 2003/05/10 20:33:49 jmc Exp $ -.TH form_field_just 3X "" -.SH NAME -\fBform_field_just\fR - retrieve field characteristics -.SH SYNOPSIS -\fB#include \fR -.br -int set_field_just(FIELD *field, int justification); -.br -int field_just(const FIELD *field); -.br -.SH DESCRIPTION -The function \fBset_field_just\fR sets the justification attribute of -a field; \fBfield_just\fR returns a field's justification attribute. -The attribute may be one of NO_JUSTIFICATION, JUSTIFY_RIGHT, -JUSTIFY_LEFT, or JUSTIFY_CENTER. - -.SH RETURN VALUE -The function \fBfield_just\fR returns one of: NO_JUSTIFICATION, -JUSTIFY_RIGHT, JUSTIFY_LEFT, or JUSTIFY_CENTER. - -The function \fBset_field_just\fR returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.SH SEE ALSO -\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed -descriptions of the entry points. -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_field_new.3x b/Build/source/libs/ncurses/man/form_field_new.3x deleted file mode 100644 index a8174a5cad4..00000000000 --- a/Build/source/libs/ncurses/man/form_field_new.3x +++ /dev/null @@ -1,96 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_field_new.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $ -.TH form_field_new 3X "" -.SH NAME -\fBform_field_new\fR - create and destroy form fields -.SH SYNOPSIS -\fB#include \fR -.br -FIELD *new_field(int height, int width, - int toprow, int leftcol, - int offscreen, int nbuffers); -.br -FIELD *dup_field(FIELD *field, int toprow, int leftcol); -.br -FIELD *link_field(FIELD *field, int toprow, int leftcol); -.br -int free_field(FIELD *field); -.br -.SH DESCRIPTION -The function \fBnew_field\fR allocates a new field and initializes it from the -parameters given: height, width, row of upper-left corner, column of upper-left -corner, number off-screen rows, and number of additional working buffers. - -The function \fBdup_field\fR duplicates a field at a new location. Most -attributes (including current contents, size, validation type, buffer count, -growth threshold, justification, foreground, background, pad character, -options, and user pointer) are copied. Field status and the field page bit are -not copied. - -The function \fBlink_field\fR acts like \fBdup_field\fR, but the new field -shares buffers with its parent. Attribute data is separate. - -The function \fBfree_field\fR de-allocates storage associated with a field. -.SH RETURN VALUE -The function, \fBnew_field\fR, \fBdup_field\fR, \fBlink_field\fR return -\fBNULL\fR on error. - -The function \fBfree_field\fR returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. - -It may be unwise to count on the set of attributes copied by -\fBdup_field\fR(3X) being portable; the System V forms library documents are -not very explicit about what gets copied and what doesn't. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_field_opts.3x b/Build/source/libs/ncurses/man/form_field_opts.3x deleted file mode 100644 index 8a3e501840e..00000000000 --- a/Build/source/libs/ncurses/man/form_field_opts.3x +++ /dev/null @@ -1,120 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_field_opts.3x,v 1.8 2003/05/10 20:33:49 jmc Exp $ -.TH form_field_opts 3X "" -.SH NAME -\fBform_field_opts\fR - set and get field options -.SH SYNOPSIS -\fB#include \fR -.br -int set_field_opts(FIELD *field, OPTIONS opts); -.br -int field_opts_on(FIELD *field, OPTIONS opts); -.br -int field_opts_off(FIELD *field, OPTIONS opts); -.br -OPTIONS field_opts(const FIELD *field); -.br -.SH DESCRIPTION -The function \fBset_field_opts\fR sets all the given field's option bits (field -option bits may be logically-OR'ed together). - -The function \fBfield_opts_on\fR turns on the given option bits, and leaves -others alone. - -The function \fBfield_opts_off\fR turns off the given option bits, and leaves -others alone. - -The function \fBfield_opts\fR returns the field's current option bits. - -The following options are defined (all are on by default): -.TP 5 -O_VISIBLE -The field is displayed. If this option is off, display of the field is -suppressed. -.TP 5 -O_ACTIVE -The field is visited during processing. If this option is off, the field will -not be reachable by navigation keys. Please notice that an invisible field -appears to be inactive also. -.TP 5 -O_PUBLIC -The field contents are displayed as data is entered. -.TP 5 -O_EDIT -The field can be edited. -.TP 5 -O_WRAP -Words that don't fit on a line are wrapped to the next line. Words are -blank-separated. -.TP 5 -O_BLANK -The field is cleared whenever a character is entered at the first position. -.TP 5 -O_AUTOSKIP -Skip to the next field when this one fills. -.TP 5 -O_NULLOK -Allow a blank field. -.TP 5 -O_STATIC -Field buffers are fixed to field's original size. -.TP 5 -O_PASSOK -Validate field only if modified by user. -.SH RETURN VALUE -Except for \fBfield_opts\fR, each routine returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_CURRENT\fR -The field is the current field. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.TP 5 -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_field_userptr.3x b/Build/source/libs/ncurses/man/form_field_userptr.3x deleted file mode 100644 index 2aba2083bc0..00000000000 --- a/Build/source/libs/ncurses/man/form_field_userptr.3x +++ /dev/null @@ -1,73 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_field_userptr.3x,v 1.6 1998/11/29 01:07:05 Rick.Ohnemus Exp $ -.TH form_field_userptr 3X "" -.SH NAME -\fBform_field_userptr\fR - associate application data with a form field -.SH SYNOPSIS -\fB#include \fR -.br -int set_field_userptr(FIELD *field, void*userptr); -.br -void *field_userptr(const FIELD *field); -.br -.SH DESCRIPTION -Every form field has a field that can be used to hold application-specific data -(that is, the form-driver code leaves it alone). These functions get and set -that field. -.SH RETURN VALUE -The function \fBfield_userptr\fR returns \fBNULL\fR on error. The function -\fBset_field_userptr\fR returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. - -The user pointer should be a void pointer. We leave it as a char pointer for -SVr4 compatibility. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_field_validation.3x b/Build/source/libs/ncurses/man/form_field_validation.3x deleted file mode 100644 index c82abf3c107..00000000000 --- a/Build/source/libs/ncurses/man/form_field_validation.3x +++ /dev/null @@ -1,144 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_field_validation.3x,v 1.14 2003/05/10 20:33:49 jmc Exp $ -.TH form_field_validation 3X "" -.SH NAME -\fBform_field_validation\fR - data type validation for fields -.SH SYNOPSIS -\fB#include \fR -.br -int set_field_type(FIELD *field, FIELDTYPE *type, ...); -.br -FIELDTYPE *field_type(const FIELD *field); -.br -void *field_arg(const FIELD *field); -.sp -FIELDTYPE *TYPE_ALNUM; -.br -FIELDTYPE *TYPE_ALPHA; -.br -FIELDTYPE *TYPE_ENUM; -.br -FIELDTYPE *TYPE_INTEGER; -.br -FIELDTYPE *TYPE_NUMERIC; -.br -FIELDTYPE *TYPE_REGEXP; -.br -FIELDTYPE *TYPE_IPV4; -.br -.SH DESCRIPTION -The function \fBset_field_type\fR declares a data type for a given form field. -This is the type checked by validation functions. -The predefined types are as follows: -.TP 5 -TYPE_ALNUM -Alphanumeric data. Requires a third \fBint\fR argument, a minimum field width. -.TP 5 -TYPE_ALPHA -Character data. Requires a third \fBint\fR argument, a minimum field width. -.TP 5 -TYPE_ENUM -Accept one of a specified set of strings. Requires a third \fB(char **)\fR -argument pointing to a string list; a fourth \fBint\fR flag argument to enable -case-sensitivity; and a fifth \fBint\fR flag argument specifying whether a partial -match must be a unique one (if this flag is off, a prefix matches the first -of any set of more than one list elements with that prefix). Please notice -that the string list is not copied, only a reference to it is stored in the -field. So you should avoid using a list that lives in automatic variables -on the stack. -.TP 5 -TYPE_INTEGER -Integer data, parsable to an integer by \fBatoi(3)\fR. Requires a third -\fBint\fR argument controlling the precision, a fourth \fBlong\fR argument -constraining minimum value, and a fifth \fBlong\fR constraining maximum value. -If the maximum value is less than or equal to the minimum value, the range is -simply ignored. On return the field buffer is formatted according to the -\fBprintf\fR format specification ".*ld", where the '*' is replaced by the -precision argument. -For details of the precision handling see \fBprintf's\fR man-page. -.TP 5 -TYPE_NUMERIC -Numeric data (may have a decimal-point part). Requires a third -\fBint\fR argument controlling the precision, a fourth \fBdouble\fR -argument constraining minimum value, and a fifth \fBdouble\fR constraining -maximum value. If your system supports locales, the decimal point character -to be used must be the one specified by your locale. -If the maximum value is less than or equal to the minimum value, the range is -simply ignored. On return the field buffer is formatted according to the -\fBprintf\fR format specification ".*f", where the '*' is replaced by the -precision argument. -For details of the precision handling see \fBprintf's\fR man-page. -.TP 5 -TYPE_REGEXP -Regular expression data. Requires a regular expression \fB(char *)\fR third argument; -the data is valid if the regular expression matches it. Regular expressions -are in the format of \fBregcomp\fR(3X) and \fBregexec\fR(3X). Please notice -that the regular expression must match the whole field. If you have for -example an eight character wide field, a regular expression "^[0-9]*$" always -means that you have to fill all eight positions with digits. If you want to -allow fewer digits, you may use for example "^[0-9]* *$" which is good for -trailing spaces (up to an empty field), or "^ *[0-9]* *$" which is good for -leading and trailing spaces around the digits. -.TP 5 -TYPE_IPV4 -An Internet Protocol Version 4 address. This requires no additional argument. It -is checked whether or not the buffer has the form a.b.c.d, where a,b,c and d are -numbers between 0 and 255. Trailing blanks in the buffer are ignored. The address -itself is not validated. Please note that this is an ncurses extension. This -field type may not be available in other curses implementations. -.PP -It is possible to set up new programmer-defined field types. See the -\fBform_fieldtype\fR(3X) manual page. -.SH RETURN VALUE -The functions \fBfield_type\fR and \fBfield_arg\fR return \fBNULL\fR on -error. The function \fBset_field_type\fR returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_fieldtype.3x b/Build/source/libs/ncurses/man/form_fieldtype.3x deleted file mode 100644 index 979258a2ba9..00000000000 --- a/Build/source/libs/ncurses/man/form_fieldtype.3x +++ /dev/null @@ -1,135 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_fieldtype.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $ -.TH form_fieldtype 3X "" -.SH NAME -\fBform_fieldtype\fR - define validation-field types -.SH SYNOPSIS -\fB#include \fR -.br -FIELDTYPE *new_fieldtype( - bool (* const field_check)(FIELD *, const void *), - bool (* const char_check)(int, const void *)); -.br -int free_fieldtype(FIELDTYPE *fieldtype); -.br -int set_fieldtype_arg( - FIELDTYPE *fieldtype, - void *(* const make_arg)(va_list *), - void *(* const copy_arg)(const void *), - void (* const free_arg)(void *)); -.br -int set_fieldtype_choice( - FIELDTYPE *fieldtype, - bool (* const next_choice)(FIELD *, const void *), - bool (* const prev_choice)(FIELD *, const void *)); -.br -FIELDTYPE *link_fieldtype(FIELDTYPE *type1, - FIELDTYPE *type2); -.br -.SH DESCRIPTION -The function \fBnew_fieldtype\fR creates a new field type usable for data -validation. You supply it with \fIfield_check\fR, a predicate to check the -validity of an entered data string whenever the user attempts to leave a field. -The (FIELD *) argument is passed in so the validation predicate can see the -field's buffer, sizes and other attributes; the second argument is an -argument-block structure, about which more below. - -You also supply \fBnew_fieldtype\fR with \fIchar_check\fR, -a function to validate input characters as they are entered; it will be passed -the character to be checked and a pointer to an argument-block structure. - -The function \fBfree_fieldtype\fR frees the space allocated for a given -validation type. - -The function \fBset_fieldtype_arg\fR associates three storage-management functions -with a field type. -The \fImake_arg\fR function is automatically applied to the -list of arguments you give \fBset_field_type\fR when attaching validation -to a field; its job is to bundle these into an allocated argument-block -object which can later be passed to validation predicated. -The other two hook arguments should copy and free argument-block structures. -They will be used by the forms-driver code. -You must supply the \fImake_arg\fR function, -the other two are optional, you may supply NULL for them. -In this case it is assumed -that \fImake_arg\fR does not allocate memory but simply loads the -argument into a single scalar value. - -The function \fBlink_fieldtype\fR creates -a new field type from the two given types. -They are connected by an logical 'OR'. - -The form driver requests \fBREQ_NEXT_CHOICE\fR and \fBREQ_PREV_CHOICE\fR assume -that the possible values of a field form an ordered set, and provide the forms -user with a way to move through the set. -The \fBset_fieldtype_choice\fR -function allows forms programmers to define successor and predecessor functions -for the field type. -These functions take the field pointer and an -argument-block structure as arguments. -.SH RETURN VALUE -The pointer-valued routines return NULL on error. - -The integer-valued routines return one of the following codes on -error: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_CONNECTED\fR -The field is already connected to a form. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. - -All of the \fB(char *)\fR arguments of these functions should actually be -\fB(void *)\fR. The type has been left uncorrected for strict compatibility -with System V. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_hook.3x b/Build/source/libs/ncurses/man/form_hook.3x deleted file mode 100644 index 19c1b9fbd7a..00000000000 --- a/Build/source/libs/ncurses/man/form_hook.3x +++ /dev/null @@ -1,100 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_hook.3x,v 1.6 1999/03/20 22:37:15 Todd.Miller Exp $ -.TH form_hook 3X "" -.SH NAME -\fBform_hook\fR - set hooks for automatic invocation by applications -.SH SYNOPSIS -\fB#include \fR -.br -int set_field_init(FORM *form, void (*func)(FORM *)); -.br -void (*)(FORM *) field_init(const FORM *form); -.br -int set_field_term(FORM *form, void (*func)(FORM *)); -.br -void (*)(FORM *) field_term(const FORM *form); -.br -int set_form_init(FORM *form, void (*func)(FORM *)); -.br -void (*)(FORM *) form_init(const FORM *form); -.br -int set_form_term(FORM *form, void (*func)(FORM *)); -.br -void (*)(FORM *) form_term(const FORM *form); -.br -.SH DESCRIPTION -These functions make it possible to set hook functions to be called at various -points in the automatic processing of input event codes by \fBform_driver\fR. - -The function \fBset_field_init\fR sets a hook to be called at form-post time -and each time the selected field changes (after the change). \fBfield_init\fR -returns the current field init hook, if any (\fBNULL\fR if there is no such -hook). - -The function \fBset_field_term\fR sets a hook to be called at form-unpost time -and each time the selected field changes (before the change). \fBfield_term\fR -returns the current field term hook, if any (\fBNULL\fR if there is no such -hook). - -The function \fBset_form_init\fR sets a hook to be called at form-post time and -just after a page change once it is posted. \fBform_init\fR returns the -current form init hook, if any (\fBNULL\fR if there is no such hook). - -The function \fBset_form_term\fR sets a hook to be called at form-unpost time -and just before a page change once it is posted. \fBform_init\fR -returns the current form term hook, if any (\fBNULL\fR if there is no such -hook). -.SH RETURN VALUE -Routines that return pointers return \fBNULL\fR on error. Other routines -return one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_new.3x b/Build/source/libs/ncurses/man/form_new.3x deleted file mode 100644 index 0f4c5015d11..00000000000 --- a/Build/source/libs/ncurses/man/form_new.3x +++ /dev/null @@ -1,79 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_new.3x,v 1.5 1998/11/29 01:07:37 Rick.Ohnemus Exp $ -.TH form_new 3X "" -.SH NAME -\fBform_new\fR - create and destroy forms -.SH SYNOPSIS -\fB#include \fR -.br -FORM *new_form(FIELD **fields); -.br -int free_form(FORM *form); -.br -.SH DESCRIPTION -The function \fBnew_form\fR creates a new form connected to a specified field -pointer array (which must be \fBNULL\fR-terminated). - -The function \fBfree_form\fR disconnects \fIform\fR from its field array -and frees the storage allocated for the form. -.SH RETURN VALUE -The function \fBnew_form\fR returns \fBNULL\fR on error. - -The function \fBfree_form\fR returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The form has already been posted. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_new_page.3x b/Build/source/libs/ncurses/man/form_new_page.3x deleted file mode 100644 index 432f624f529..00000000000 --- a/Build/source/libs/ncurses/man/form_new_page.3x +++ /dev/null @@ -1,77 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_new_page.3x,v 1.6 2002/01/19 22:48:51 tom Exp $ -.TH form_new_page 3X "" -.SH NAME -\fBform_new_page\fR - form pagination functions -.SH SYNOPSIS -\fB#include \fR -.br -int set_new_page(FIELD *field, bool new_page_flag); -.br -bool new_page(const FIELD *field); -.br -.SH DESCRIPTION -The function \fBset_new_page\fR sets or resets a flag marking the given field -as the beginning of a new page on its form. - -The function \fBnew_page\fR is a predicate which tests if a given field marks -a page beginning on its form. -.SH RETURN VALUE -The function \fBnew_page\fR returns \fBTRUE\fR or \fBFALSE\fR. - -The function \fBset_new_page\fR return one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_CONNECTED\fR -The given field is already connected to a form. -.SH SEE ALSO -\fBcurses\fR(3X) and related pages whose names begin "form_" for detailed -descriptions of the entry points. -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_opts.3x b/Build/source/libs/ncurses/man/form_opts.3x deleted file mode 100644 index 7921b377256..00000000000 --- a/Build/source/libs/ncurses/man/form_opts.3x +++ /dev/null @@ -1,90 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_opts.3x,v 1.6 1998/11/29 01:07:53 Rick.Ohnemus Exp $ -.TH form_opts 3X "" -.SH NAME -\fBform_opts\fR - set and get form options -.SH SYNOPSIS -\fB#include \fR -.br -int set_form_opts(FORM *form, OPTIONS opts); -.br -int form_opts_on(FORM *form, OPTIONS opts); -.br -int form_opts_off(FORM *form, OPTIONS opts); -.br -OPTIONS form_opts(const FORM *form); -.br -.SH DESCRIPTION -The function \fBset_form_opts\fR sets all the given form's option bits (form -option bits may be logically-OR'ed together). - -The function \fBform_opts_on\fR turns on the given option bits, and leaves -others alone. - -The function \fBform_opts_off\fR turns off the given option bits, and leaves -others alone. - -The function \fBform_opts\fR returns the form's current option bits. - -The following options are defined (all are on by default): -.TP 5 -O_NL_OVERLOAD -Overload the \fBREQ_NEW_LINE\fR forms driver request so that calling it at the -end of a field goes to the next field. -.TP 5 -O_BS_OVERLOAD -Overload the \fBREQ_DEL_PREV\fR forms driver request so that calling it at the -beginning of a field goes to the previous field. -.SH RETURN VALUE -Except for \fBform_opts\fR, each routine returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_page.3x b/Build/source/libs/ncurses/man/form_page.3x deleted file mode 100644 index 4b5d15aec18..00000000000 --- a/Build/source/libs/ncurses/man/form_page.3x +++ /dev/null @@ -1,95 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_page.3x,v 1.8 1998/11/29 01:08:02 Rick.Ohnemus Exp $ -.TH form_page 3X "" -.SH NAME -\fBform_page\fR - set and get form page number -.SH SYNOPSIS -\fB#include \fR -.br -int set_current_field(FORM *form, FIELD *field); -.br -FIELD *current_field(const FORM *); -.br -int set_form_page(FORM *form, int n); -.br -int form_page(const FORM *form); -.br -int field_index(const FIELD *field); -.br -.SH DESCRIPTION -The function \fBset_current field\fR sets the current field of the given -form; \fBcurrent_field\fR returns the current field of the given form. -.PP -The function \fBset_form_page\fR sets the form's page number (goes to page -\fIn\fR of the form). -.PP -The function \fBform_page\fR returns the form's current page number. -.PP -The function \fBfield_index\fR returns the index of the field in the -field array of the form it is connected to. It returns \fBERR\fR if -the argument is the null pointer or the field is not connected. -.SH RETURN VALUE -Except for \fBform_page\fR, each routine returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_BAD_STATE\fR -Routine was called from an initialization or termination function. -.TP 5 -\fBE_INVALID_FIELD\fR -Contents of a field are not valid. -.TP 5 -\fBE_REQUEST_DENIED\fR -The form driver could not process the request. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_post.3x b/Build/source/libs/ncurses/man/form_post.3x deleted file mode 100644 index 56e86ab9469..00000000000 --- a/Build/source/libs/ncurses/man/form_post.3x +++ /dev/null @@ -1,90 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_post.3x,v 1.4 1998/11/29 01:08:10 Rick.Ohnemus Exp $ -.TH form_post 3X "" -.SH NAME -\fBform_post\fR - write or erase forms from associated subwindows -.SH SYNOPSIS -\fB#include \fR -.br -int post_form(FORM *form); -.br -int unpost_form(FORM *form); -.br -.SH DESCRIPTION -The function \fBpost_form\fR displays a form to its associated subwindow. To -trigger physical display of the subwindow, use \fBrefresh\fR or some equivalent -\fBcurses\fR routine (the implicit \fBdoupdate\fR triggered by an \fBcurses\fR -input request will do). - -The function \fBunpost_form\fR erases form from its associated subwindow. -.SH RETURN VALUE -These routines return one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The form has already been posted. -.TP 5 -\fBE_BAD_STATE\fR -Routine was called from an initialization or termination function. -.TP 5 -\fBE_NO_ROOM\fR -Form is too large for its window. -.TP 5 -\fBE_NOT_POSTED\fR -The form has not been posted. -.TP 5 -\fBE_NOT_CONNECTED\fR -No items are connected to the form. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_requestname.3x b/Build/source/libs/ncurses/man/form_requestname.3x deleted file mode 100644 index df1f701b382..00000000000 --- a/Build/source/libs/ncurses/man/form_requestname.3x +++ /dev/null @@ -1,69 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_requestname.3x,v 1.6 1998/11/29 01:08:18 Rick.Ohnemus Exp $ -.TH form_requestname 3X "" -.SH NAME -\fBform_requestname\fR - handle printable form request names -.SH SYNOPSIS -\fB#include \fR -.br -const char *form_request_name(int request); -.br -int form_request_by_name(const char *name); -.br -.SH DESCRIPTION -The function \fBform_request_name\fR returns the printable name of a form -request code. -.br -The function \fBform_request_by_name\fR searches in the name-table for a request -with the given name and returns its request code. Otherwise E_NO_MATCH is returned. -.SH RETURN VALUE -\fBform_request_name\fR returns \fBNULL\fR on error and sets errno -to \fBE_BAD_ARGUMENT\fR. -.br -\fBform_request_by_name\fR returns \fBE_NO_MATCH\fR on error. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines are specific to ncurses. They were not supported on -Version 7, BSD or System V implementations. It is recommended that -any code depending on them be conditioned using NCURSES_VERSION. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_userptr.3x b/Build/source/libs/ncurses/man/form_userptr.3x deleted file mode 100644 index 00e3d71aa40..00000000000 --- a/Build/source/libs/ncurses/man/form_userptr.3x +++ /dev/null @@ -1,73 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_userptr.3x,v 1.9 1998/11/29 01:08:39 Rick.Ohnemus Exp $ -.TH form_userptr 3X "" -.SH NAME -\fBform_userptr\fR - associate application data with a form item -.SH SYNOPSIS -\fB#include \fR -.br -int set_form_userptr(FORM *form, void *userptr); -.br -void* form_userptr(const FORM *form); -.br -.SH DESCRIPTION -Every form and every form item has a field that can be used to hold -application-specific data (that is, the form-driver code leaves it alone). -These functions get and set the form user pointer field. -.SH RETURN VALUE -The function \fBform_userptr\fR returns \fBNULL\fR on error. -The function \fBset_form_userptr\fR returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. - -The user pointer should be a void pointer. We leave it as a char pointer for -SVr4 compatibility. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/form_win.3x b/Build/source/libs/ncurses/man/form_win.3x deleted file mode 100644 index e5659702886..00000000000 --- a/Build/source/libs/ncurses/man/form_win.3x +++ /dev/null @@ -1,95 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: form_win.3x,v 1.8 1999/04/10 23:36:08 tom Exp $ -.TH form_win 3X "" -.SH NAME -\fBform_win\fR - make and break form window and subwindow associations -.SH SYNOPSIS -\fB#include \fR -.br -int set_form_win(FORM *form, WINDOW *win); -.br -WINDOW *form_win(const FORM *form); -.br -int set_form_sub(FORM *form, WINDOW *sub); -.br -WINDOW *form_sub(const FORM *form); -.br -int scale_form(const FORM *form, int *rows, int *columns); -.br -.SH DESCRIPTION -Every form has an associated pair of \fBcurses\fR windows. The form window -displays any title and border associated with the window; the form subwindow -displays the items of the form that are currently available for selection. - -The first four functions get and set those windows. It is not necessary to set -either window; by default, the driver code uses \fBstdscr\fR for both. - -In the \fBset_\fR functions, window argument of \fBNULL\fR is treated as though -it were \fBstsdcr\fR. A form argument of \fBNULL\fR is treated as a request -to change the system default form window or subwindow. - -The function \fBscale_form\fR returns the minimum size required for the -subwindow of \fIform\fR. -.SH RETURN VALUE -Routines that return pointers return \fBNULL\fR on error. Routines that return -an integer return one of the following error codes: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The form has already been posted. -.TP 5 -\fBE_NOT_CONNECTED\fR -No items are connected to the form. -.SH SEE ALSO -\fBcurses\fR(3X), \fBform\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V forms library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/infocmp.1m b/Build/source/libs/ncurses/man/infocmp.1m deleted file mode 100644 index 1bf6498032e..00000000000 --- a/Build/source/libs/ncurses/man/infocmp.1m +++ /dev/null @@ -1,424 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: infocmp.1m,v 1.39 2004/08/28 22:43:49 tom Exp $ -.TH infocmp 1M "" -.ds n 5 -.ds d @TERMINFO@ -.SH NAME -\fBinfocmp\fR - compare or print out \fIterminfo\fR descriptions -.SH SYNOPSIS -\fBinfocmp\fR [\fB-\ -1\ -C\ -E\ -F\ -G\ -I\ -L\ -T\ -V\ -c\ -d\ -e\ -g\ -i\ -l\ -n\ -p\ -q\ -r\ -t\ -u\ -x\ -\fR] -.br - [\fB-v\fR \fIn\fR] [\fB-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB-R \fR\fBsubset\fR] -.br - [\fB-w\fR\ \fIwidth\fR] [\fB-A\fR\ \fIdirectory\fR] [\fB-B\fR\ \fIdirectory\fR] -.br - [\fItermname\fR...] -.SH DESCRIPTION -\fBinfocmp\fR can be used to compare a binary \fBterminfo\fR entry with other -terminfo entries, rewrite a \fBterminfo\fR description to take advantage of the -\fBuse=\fR terminfo field, or print out a \fBterminfo\fR description from the -binary file (\fBterm\fR) in a variety of formats. In all cases, the boolean -fields will be printed first, followed by the numeric fields, followed by the -string fields. -.SS Default Options -If no options are specified and zero or one \fItermnames\fR are specified, the -\fB-I\fR option will be assumed. If more than one \fItermname\fR is specified, -the \fB-d\fR option will be assumed. -.SS Comparison Options [-d] [-c] [-n] -\fBinfocmp\fR compares the \fBterminfo\fR description of the first terminal -\fItermname\fR with each of the descriptions given by the entries for the other -terminal's \fItermnames\fR. If a capability is defined for only one of the -terminals, the value returned will depend on the type of the capability: -\fBF\fR for boolean variables, \fB-1\fR for integer variables, and \fBNULL\fR -for string variables. - -The \fB-d\fR option produces a list of each capability that is different -between two entries. This option is useful to show the difference between two -entries, created by different people, for the same or similar terminals. - -The \fB-c\fR option produces a list of each capability that is common between -two entries. Capabilities that are not set are ignored. This option can be -used as a quick check to see if the \fB-u\fR option is worth using. - -The \fB-n\fR option produces a list of each capability that is in neither -entry. If no \fItermnames\fR are given, the environment variable \fBTERM\fR -will be used for both of the \fItermnames\fR. This can be used as a quick -check to see if anything was left out of a description. -.SS Source Listing Options [-I] [-L] [-C] [-r] -The \fB-I\fR, \fB-L\fR, and \fB-C\fR options will produce a source listing for -each terminal named. - -.TS -center tab(/) ; -l l . -\fB-I\fR/use the \fBterminfo\fR names -\fB-L\fR/use the long C variable name listed in <\fBterm.h\fR> -\fB-C\fR/use the \fBtermcap\fR names -\fB-r\fR/when using \fB-C\fR, put out all capabilities in \fBtermcap\fR form -.TE - -If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be -used for the terminal name. - -The source produced by the \fB-C\fR option may be used directly as a -\fBtermcap\fR entry, but not all parameterized strings can be changed to -the \fBtermcap\fR format. \fBinfocmp\fR will attempt to convert most of the -parameterized information, and anything not converted will be plainly marked in -the output and commented out. These should be edited by hand. - -All padding information for strings will be collected together and placed -at the beginning of the string where \fBtermcap\fR expects it. Mandatory -padding (padding information with a trailing '/') will become optional. - -All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which -are derivable from other \fBterminfo\fR variables, will be output. Not all -\fBterminfo\fR capabilities will be translated; only those variables which were -part of \fBtermcap\fR will normally be output. Specifying the \fB-r\fR option -will take off this restriction, allowing all capabilities to be output in -\fItermcap\fR form. - -Note that because padding is collected to the beginning of the capability, not -all capabilities are output. Mandatory padding is not supported. Because -\fBtermcap\fR strings are not as flexible, it is not always possible to convert -a \fBterminfo\fR string capability into an equivalent \fBtermcap\fR format. A -subsequent conversion of the \fBtermcap\fR file back into \fBterminfo\fR format -will not necessarily reproduce the original \fBterminfo\fR -source. - -Some common \fBterminfo\fR parameter sequences, their \fBtermcap\fR -equivalents, and some terminal types which commonly have such sequences, are: - -.TS -center tab(/) ; -l c l -l l l. -\fBterminfo/termcap\fR/Representative Terminals -= -\fB%p1%c/%.\fR/adm -\fB%p1%d/%d\fR/hp, ANSI standard, vt100 -\fB%p1%'x'%+%c/%+x\fR/concept -\fB%i/%i\fRq/ANSI standard, vt100 -\fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fR/concept -\fB%p2\fR is printed before \fB%p1/%r\fR/hp -.TE -.SS Use= Option [-u] -The \fB-u\fR option produces a \fBterminfo\fR source description of the first -terminal \fItermname\fR which is relative to the sum of the descriptions given -by the entries for the other terminals \fItermnames\fR. It does this by -analyzing the differences between the first \fItermname\fR and the other -\fItermnames\fR and producing a description with \fBuse=\fR fields for the -other terminals. In this manner, it is possible to retrofit generic terminfo -entries into a terminal's description. Or, if two similar terminals exist, but -were coded at different times or by different people so that each description -is a full description, using \fBinfocmp\fR will show what can be done to change -one description to be relative to the other. - -A capability will get printed with an at-sign (@) if it no longer exists in the -first \fItermname\fR, but one of the other \fItermname\fR entries contains a -value for it. A capability's value gets printed if the value in the first -\fItermname\fR is not found in any of the other \fItermname\fR entries, or if -the first of the other \fItermname\fR entries that has this capability gives a -different value for the capability than that in the first \fItermname\fR. - -The order of the other \fItermname\fR entries is significant. Since the -terminfo compiler \fBtic\fR does a left-to-right scan of the capabilities, -specifying two \fBuse=\fR entries that contain differing entries for the same -capabilities will produce different results depending on the order that the -entries are given in. \fBinfocmp\fR will flag any such inconsistencies between -the other \fItermname\fR entries as they are found. - -Alternatively, specifying a capability \fIafter\fR a \fBuse=\fR entry that -contains that capability will cause the second specification to be ignored. -Using \fBinfocmp\fR to recreate a description can be a useful check to make -sure that everything was specified correctly in the original source -description. - -Another error that does not cause incorrect compiled files, but will slow down -the compilation time, is specifying extra \fBuse=\fR fields that are -superfluous. \fBinfocmp\fR will flag any other \fItermname use=\fR fields that -were not needed. -.SS Changing Databases [-A \fIdirectory\fR] [-B \fIdirectory\fR] -The location of the compiled \fBterminfo\fR database is taken from the -environment variable \fBTERMINFO\fR . If the variable is not defined, or the -terminal is not found in that location, the system \fBterminfo\fR database, -in \fB@TERMINFO@\fR, will be used. The options \fB-A\fR -and \fB-B\fR may be used to override this location. The \fB-A\fR option will -set \fBTERMINFO\fR for the first \fItermname\fR and the \fB-B\fR option will -set \fBTERMINFO\fR for the other \fItermnames\fR. With this, it is possible to -compare descriptions for a terminal with the same name located in two different -databases. This is useful for comparing descriptions for the same terminal -created by different people. -.SS Other Options -.TP 5 -\fB-1\fR -causes the fields to be printed out one to a line. Otherwise, -the fields will be printed several to a line to a maximum width -of 60 characters. -.TP -\fB-a\fR -tells \fBinfocmp\fP to retain commented-out capabilities rather than discarding -them. Capabilities are commented by prefixing them with a period. -.TP 5 -\fB-E\fR -Dump the capabilities of the given terminal as tables, needed in -the C initializer for a -TERMTYPE structure (the terminal capability structure in the \fB\fR). -This option is useful for preparing versions of the curses library hardwired -for a given terminal type. -The tables are all declared static, and are named according to the type -and the name of the corresponding terminal entry. -.sp -Before ncurses 5.0, the split between the \fB-e\fP and \fB-E\fP -options was not needed; but support for extended names required making -the arrays of terminal capabilities separate from the TERMTYPE structure. -.TP 5 -\fB-e\fR -Dump the capabilities of the given terminal as a C initializer for a -TERMTYPE structure (the terminal capability structure in the \fB\fR). -This option is useful for preparing versions of the curses library hardwired -for a given terminal type. -.TP 5 -\fB-F\fR -compare terminfo files. This assumes that two following arguments are -filenames. The files are searched for pairwise matches between -entries, with two entries considered to match if any of their names do. -The report printed to standard output lists entries with no matches in -the other file, and entries with more than one match. For entries -with exactly one match it includes a difference report. Normally, -to reduce the volume of the report, use references are -not resolved before looking for differences, but resolution can be forced -by also specifying \fB-r\fR. -.TP 5 -\fB-f\fR -Display complex terminfo strings which contain if/then/else/endif expressions -indented for readability. -.TP 5 -\fB-G\fR -Display constant literals in decimal form -rather than their character equivalents. -.TP 5 -\fB-g\fR -Display constant character literals in quoted form -rather than their decimal equivalents. -.TP 5 -\fB-i\fR -Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset -(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry. For each string, the -code tries to analyze it into actions in terms of the other capabilities in the -entry, certain X3.64/ISO 6429/ECMA-48 capabilities, and certain DEC VT-series -private modes (the set of recognized special sequences has been selected for -completeness over the existing terminfo database). Each report line consists -of the capability name, followed by a colon and space, followed by a printable -expansion of the capability string with sections matching recognized actions -translated into {}-bracketed descriptions. Here is a list of the DEC/ANSI -special sequences recognized: - -.TS -center tab(/) ; -l l -l l. -Action/Meaning -= -RIS/full reset -SC/save cursor -RC/restore cursor -LL/home-down -RSR/reset scroll region - -DECSTR/soft reset (VT320) -S7C1T/7-bit controls (VT220) - -ISO DEC G0/enable DEC graphics for G0 -ISO UK G0/enable UK chars for G0 -ISO US G0/enable US chars for G0 -ISO DEC G1/enable DEC graphics for G1 -ISO UK G1/enable UK chars for G1 -ISO US G1/enable US chars for G1 - -DECPAM/application keypad mode -DECPNM/normal keypad mode -DECANSI/enter ANSI mode - -ECMA[+-]AM/keyboard action mode -ECMA[+-]IRM/insert replace mode -ECMA[+-]SRM/send receive mode -ECMA[+-]LNM/linefeed mode - -DEC[+-]CKM/application cursor keys -DEC[+-]ANM/set VT52 mode -DEC[+-]COLM/132-column mode -DEC[+-]SCLM/smooth scroll -DEC[+-]SCNM/reverse video mode -DEC[+-]OM/origin mode -DEC[+-]AWM/wraparound mode -DEC[+-]ARM/auto-repeat mode -.TE -.sp -It also recognizes a SGR action corresponding to ANSI/ISO 6429/ECMA Set -Graphics Rendition, with the values NORMAL, BOLD, UNDERLINE, BLINK, and -REVERSE. All but NORMAL may be prefixed with `+' (turn on) or `-' (turn off). - -An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}). -.TP 5 -\fB-l\fR -Set output format to terminfo. -.TP 5 -\fB-p\fR -Ignore padding specifications when comparing strings. -.TP 5 -\fB-q\fR -Make the comparison listing shorter by omitting subheadings, and using -"-" for absent capabilities, "@" for canceled rather than "NULL". -.TP 5 -\fB-R\fR\fIsubset\fR -Restrict output to a given subset. This option is for use with archaic -versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support -the full set of SVR4/XSI Curses terminfo; and variants such as AIX -that have their own extensions incompatible with SVr4/XSI. Available terminfo -subsets are "SVr1", "Ultrix", "HP", and "AIX"; see \fBterminfo\fR(\*n) for -details. You can also choose the subset "BSD" which selects only capabilities -with termcap equivalents recognized by 4.4BSD. -.TP -\fB-s \fR\fI[d|i|l|c]\fR -The \fB-s\fR option sorts the fields within each type according to the argument -below: -.br -.RS 5 -.TP 5 -\fBd\fR -leave fields in the order that they are stored in the \fIterminfo\fR database. -.TP 5 -\fBi\fR -sort by \fIterminfo\fR name. -.TP 5 -\fBl\fR -sort by the long C variable name. -.TP 5 -\fBc\fR -sort by the \fItermcap\fR name. -.RE -.IP -If the \fB-s\fR option is not given, the fields printed out will be -sorted alphabetically by the \fBterminfo\fR name within each type, -except in the case of the \fB-C\fR or the \fB-L\fR options, which cause the -sorting to be done by the \fBtermcap\fR name or the long C variable -name, respectively. -.TP 5 -\fB-T\fR -eliminates size-restrictions on the generated text. -This is mainly useful for testing and analysis, since the compiled -descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo). -.TP -\fB-t\fR -tells \fBtic\fP to discard commented-out capabilities. -Normally when translating from terminfo to termcap, -untranslatable capabilities are commented-out. -.TP 5 -\fB-V\fR -reports the version of ncurses which was used in this program, and exits. -.TP 5 -\fB-v\fR \fIn\fR -prints out tracing information on standard error as the program runs. -Higher values of n induce greater verbosity. -.TP 5 -\fB-w\fR \fIwidth\fR -changes the output to \fIwidth\fR characters. -.TP -\fB-x\fR -print information for user-defined capabilities. -These are extensions to the terminfo repertoire which can be loaded -using the \fB-x\fR option of \fBtic\fP. -.SH FILES -.TP 20 -\*d -Compiled terminal description database. -.SH EXTENSIONS -The -\fB-E\fR, -\fB-F\fR, -\fB-G\fR, -\fB-R\fR, -\fB-T\fR, -\fB-V\fR, -\fB-a\fR, -\fB-e\fR, -\fB-f\fR, -\fB-g\fR, -\fB-i\fR, -\fB-l\fR, -\fB-p\fR, -\fB-q\fR and -\fB-t\fR -options are not supported in SVr4 curses. - -The \fB-r\fR option's notion of `termcap' capabilities is System V Release 4's. -Actual BSD curses versions will have a more restricted set. To see only the -4.4BSD set, use \fB-r\fR \fB-RBSD\fR. -.SH BUGS -The \fB-F\fR option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode. -.SH SEE ALSO -\fBinfocmp\fR(1M), \fBcaptoinfo\fR(1M), \fBinfotocap\fR(1M), -\fBtic\fR(1M), \fBtoe\fR(1M), -\fBcurses\fR(3X), \fBterminfo\fR(\*n). -.SH AUTHOR -Eric S. Raymond -and -.br -Thomas E. Dickey -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/infotocap.1m b/Build/source/libs/ncurses/man/infotocap.1m deleted file mode 100644 index e1dacc63ad0..00000000000 --- a/Build/source/libs/ncurses/man/infotocap.1m +++ /dev/null @@ -1,74 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1999-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: infotocap.1m,v 1.5 2004/07/05 13:16:08 tom Exp $ -.TH infotocap 1M "" -.ds n 5 -.ds d @TERMINFO@ -.SH NAME -\fBinfotocap\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description -.SH SYNOPSIS -\fBinfotocap\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . . -.SH DESCRIPTION -\fBinfotocap\fR looks in \fIfile\fR for \fBterminfo\fR descriptions. For each -one found, an equivalent \fBtermcap\fR description is written to standard -output. Terminfo \fBuse\fR capabilities are translated directly to termcap -\fBtc\fR capabilities. -.TP 5 -\fB-v\fR -print out tracing information on standard error as the program runs. -.TP 5 -\fB-V\fR -print out the version of the program in use on standard error and exit. -.TP 5 -\fB-1\fR -cause the fields to print out one to a line. Otherwise, the fields -will be printed several to a line to a maximum width of 60 -characters. -.TP 5 -\fB-w\fR -change the output to \fIwidth\fR characters. -.SH FILES -.TP 20 -\*d -Compiled terminal description database. -.SH NOTES -This utility is actually a link to \fItic\fR(1M), running in \fI-C\fR mode. -You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR. -.SH SEE ALSO -\fBcurses\fR(3X), -\fBtic\fR(1M), -\fBinfocmp\fR(1M), -\fBterminfo\fR(\*n) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/key_defined.3x b/Build/source/libs/ncurses/man/key_defined.3x deleted file mode 100644 index a0bf8bb4109..00000000000 --- a/Build/source/libs/ncurses/man/key_defined.3x +++ /dev/null @@ -1,60 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" Author: Thomas E. Dickey 2003 -.\" -.\" $Id: key_defined.3x,v 1.3 2004/06/05 19:19:09 tom Exp $ -.TH key_defined 3X "" -.SH NAME -\fBkey_defined\fP \- check if a keycode is defined -.SH SYNOPSIS -\fB#include \fP - -\fBint key_defined(const char *definition);\fP -.SH DESCRIPTION -This is an extension to the curses library. -It permits an application to determine if a string is currently bound -to any keycode. -.SH RETURN VALUE -If the string is bound to a keycode, its value (greater than zero) is returned. -If no keycode is bound, zero is returned. -If the string conflicts with longer strings which are bound to keys, -1 is returned. -.SH PORTABILITY -These routines are specific to ncurses. They were not supported on -Version 7, BSD or System V implementations. It is recommended that -any code depending on them be conditioned using NCURSES_VERSION. -.SH SEE ALSO -\fBdefine_key\fR(3X). -.SH AUTHOR -Thomas Dickey. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/keybound.3x b/Build/source/libs/ncurses/man/keybound.3x deleted file mode 100644 index 61074e436f7..00000000000 --- a/Build/source/libs/ncurses/man/keybound.3x +++ /dev/null @@ -1,64 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" Author: Thomas E. Dickey 1999 -.\" -.\" $Id: keybound.3x,v 1.5 2003/10/25 20:33:16 tom Exp $ -.TH keyok 3X "" -.SH NAME -\fBkeybound\fP \- return definition of keycode -.SH SYNOPSIS -\fB#include \fP - -\fBchar * keybound(int keycode, int count);\fP -.SH DESCRIPTION -This is an extension to the curses library. -It permits an application to determine the string which is defined -in the terminfo for specific keycodes. -.SH RETURN VALUE -The \fIkeycode\fP parameter must be greater than zero, else NULL is returned. -If it does not correspond to a defined key, then NULL is returned. -The \fIcount\fP parameter is used to allow the application to iterate -through multiple definitions, counting from zero. -When successful, -the function returns a string which must be freed by the caller. -.SH PORTABILITY -These routines are specific to ncurses. They were not supported on -Version 7, BSD or System V implementations. It is recommended that -any code depending on them be conditioned using NCURSES_VERSION. -.SH SEE ALSO -\fBdefine_key\fR(3X), -\fBkeyok\fR(3X). -.SH AUTHOR -Thomas Dickey. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/keyok.3x b/Build/source/libs/ncurses/man/keyok.3x deleted file mode 100644 index f9209089a7a..00000000000 --- a/Build/source/libs/ncurses/man/keyok.3x +++ /dev/null @@ -1,63 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" Author: Thomas E. Dickey 1997 -.\" -.\" $Id: keyok.3x,v 1.8 2003/10/25 20:41:08 tom Exp $ -.TH keyok 3X "" -.SH NAME -\fBkeyok\fP \- enable or disable a keycode -.SH SYNOPSIS -\fB#include \fP - -\fBint keyok(int keycode, bool enable);\fP -.SH DESCRIPTION -This is an extension to the curses library. -It permits an application to disable specific keycodes, rather than -use the \fIkeypad\fP function to disable all keycodes. -Keys that have been disabled can be reenabled. -.SH RETURN VALUE -The keycode must be greater than zero, else ERR is returned. -If it does not correspond to a defined key, then ERR is returned. -If the \fIenable\fP parameter is true, then the key must have been disabled, -and vice versa. -Otherwise, the function returns OK. -.SH PORTABILITY -These routines are specific to ncurses. They were not supported on -Version 7, BSD or System V implementations. It is recommended that -any code depending on them be conditioned using NCURSES_VERSION. -.SH SEE ALSO -\fBdefine_key\fR(3X). -.SH AUTHOR -Thomas Dickey. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/make_sed.sh b/Build/source/libs/ncurses/man/make_sed.sh deleted file mode 100755 index 766801d551a..00000000000 --- a/Build/source/libs/ncurses/man/make_sed.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/sh -# $Id: make_sed.sh,v 1.7 2003/10/25 20:33:16 tom Exp $ -############################################################################## -# Copyright (c) 1998,2003 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1997 -# -# Construct a sed-script to perform renaming within man-pages. Originally -# written in much simpler form, this one accounts for the common cases of -# section-names in man-pages. - -if test $# != 1 ; then - echo '? expected a single filename' - exit 1 -fi - -COL=col$$ -INPUT=input$$ -UPPER=upper$$ -SCRIPT=script$$ -RESULT=result$$ -rm -f $UPPER $SCRIPT $RESULT -trap "rm -f $COL.* $INPUT $UPPER $SCRIPT $RESULT" 0 1 2 5 15 -fgrep -v \# $1 | \ -sed -e 's/[ ][ ]*/ /g' >$INPUT - -for F in 1 2 3 4 -do -sed -e 's/\./ /g' $INPUT | \ -cut -f $F > $COL.$F -done -for F in 2 4 -do - tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ <$COL.$F >$UPPER - mv $UPPER $COL.$F -done -paste $COL.* | \ -sed -e 's/^/s\/\\$UPPER - -# Do the TH lines -sed -e 's/\//\/TH /' \ - -e 's/ / /' \ - -e 's/ / ""\/TH /' \ - -e 's/ / /' \ - -e 's/\/$/ ""\//' \ - $UPPER >>$RESULT - -# Do the embedded references -sed -e 's/>$RESULT - -# Finally, send the result to standard output -cat $RESULT diff --git a/Build/source/libs/ncurses/man/man_db.renames b/Build/source/libs/ncurses/man/man_db.renames deleted file mode 100644 index ff5546b3c98..00000000000 --- a/Build/source/libs/ncurses/man/man_db.renames +++ /dev/null @@ -1,139 +0,0 @@ -# $Id: man_db.renames,v 0.32 2003/05/31 17:27:11 tom Exp $ -# Manual-page renamings for the man_db program -# -# Files: -captoinfo.1m captoinfo.1 -clear.1 clear.1 -curs_add_wch.3x add_wch.3ncurses -curs_add_wchstr.3x add_wchstr.3ncurses -curs_addch.3x addch.3ncurses -curs_addchstr.3x addchstr.3ncurses -curs_addstr.3x addstr.3ncurses -curs_addwstr.3x addwstr.3ncurses -curs_attr.3x attr.3ncurses -curs_beep.3x beep.3ncurses -curs_bkgd.3x bkgd.3ncurses -curs_bkgrnd.3x bkgrnd.3ncurses -curs_border.3x border.3ncurses -curs_border_set.3x border_set.3ncurses -curs_clear.3x clear.3ncurses -curs_color.3x color.3ncurses -curs_delch.3x delch.3ncurses -curs_deleteln.3x deleteln.3ncurses -curs_extend.3x extensions.3ncurses -curs_get_wch.3x get_wch.3ncurses -curs_get_wstr.3x get_wstr.3ncurses -curs_getcchar.3x getcchar.3ncurses -curs_getch.3x getch.3ncurses -curs_getstr.3x getstr.3ncurses -curs_getyx.3x getyx.3ncurses -curs_in_wch.3x in_wch.3ncurses -curs_in_wchstr.3x in_wchstr.3ncurses -curs_inch.3x inch.3ncurses -curs_inchstr.3x inchstr.3ncurses -curs_initscr.3x initscr.3ncurses -curs_inopts.3x inopts.3ncurses -curs_ins_wch.3x ins_wch.3ncurses -curs_ins_wstr.3x ins_wstr.3ncurses -curs_insch.3x insch.3ncurses -curs_insstr.3x insstr.3ncurses -curs_instr.3x instr.3ncurses -curs_inwstr.3x inwstr.3ncurses -curs_kernel.3x kernel.3ncurses -curs_mouse.3x mouse.3ncurses -curs_move.3x move.3ncurses -curs_outopts.3x outopts.3ncurses -curs_overlay.3x overlay.3ncurses -curs_pad.3x pad.3ncurses -curs_print.3x print.3ncurses -curs_printw.3x printw.3ncurses -curs_refresh.3x refresh.3ncurses -curs_scanw.3x scanw.3ncurses -curs_scr_dump.3x scr_dump.3ncurses -curs_scroll.3x scroll.3ncurses -curs_slk.3x slk.3ncurses -curs_termattrs.3x termattrs.3ncurses -curs_termcap.3x termcap.3ncurses -curs_terminfo.3x terminfo.3ncurses -curs_touch.3x touch.3ncurses -curs_trace.3x trace.3ncurses -curs_util.3x util.3ncurses -curs_window.3x window.3ncurses -curses.3x ncurses.3ncurses -default_colors.3x default_colors.3ncurses -define_key.3x define_key.3ncurses -form.3x form.3form -form_cursor.3x cursor.3form -form_data.3x data.3form -form_driver.3x driver.3form -form_field.3x field.3form -form_field_attributes.3x field_attributes.3form -form_field_buffer.3x field_buffer.3form -form_field_info.3x field_info.3form -form_field_just.3x field_just.3form -form_field_new.3x field_new.3form -form_field_opts.3x field_opts.3form -form_field_userptr.3x field_userptr.3form -form_field_validation.3x field_validation.3form -form_fieldtype.3x fieldtype.3form -form_hook.3x hook.3form -form_new.3x new.3form -form_new_page.3x new_page.3form -form_opts.3x opts.3form -form_page.3x page.3form -form_post.3x post.3form -form_requestname.3x requestname.3form -form_userptr.3x userptr.3form -form_win.3x win.3form -infocmp.1m infocmp.1 -infotocap.1m infotocap.1 -keybound.3x keybound.3ncurses -keyok.3x keyok.3ncurses -key_defined.3x key_defined.3ncurses -menu.3x menu.3menu -menu_attributes.3x attributes.3menu -menu_cursor.3x cursor.3menu -menu_driver.3x driver.3menu -menu_format.3x format.3menu -menu_hook.3x hook.3menu -menu_items.3x items.3menu -menu_mark.3x mark.3menu -menu_new.3x new.3menu -menu_opts.3x opts.3menu -menu_pattern.3x pattern.3menu -menu_post.3x post.3menu -menu_requestname.3x requestname.3menu -menu_spacing.3x spacing.3menu -menu_userptr.3x userptr.3menu -menu_win.3x win.3menu -mitem_current.3x menu_current.3menu -mitem_name.3x menu_name.3menu -mitem_new.3x menu_new.3menu -mitem_opts.3x menu_opts.3menu -mitem_userptr.3x menu_userptr.3menu -mitem_value.3x menu_value.3menu -mitem_visible.3x menu_visible.3menu -ncurses.3x ncurses.3ncurses -panel.3x panel.3curses -printf.3s printf.3 -putc.3s putc.3 -resizeterm.3x resizeterm.3ncurses -scanf.3s scanf.3 -system.3s system.3 -term.5 term.5 -term.7 term.7 -terminfo.5 terminfo.5 -terminfo.\\\*n terminfo.5 -tic.1m tic.1 -toe.1m toe.1 -tput.1 tput.1 -tset.1 tset.1 -vprintf.3s vprintf.3 -wresize.3x wresize.3ncurses -# -# Other cross-references: -addch.3x addch.3ncurses -can_change_color.3x can_change_color.3ncurses -curs_attr_get.3x attr_get.3ncurses -dup_field.3x dup_field.3ncurses -init_pair.3x init_pair.3ncurses diff --git a/Build/source/libs/ncurses/man/manlinks.sed b/Build/source/libs/ncurses/man/manlinks.sed deleted file mode 100644 index 4da7790dfd9..00000000000 --- a/Build/source/libs/ncurses/man/manlinks.sed +++ /dev/null @@ -1,101 +0,0 @@ -# $Id: manlinks.sed,v 1.12 2003/12/20 13:17:56 tom Exp $ -############################################################################## -# Copyright (c) 2000-2002,2003 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# Given a manpage (nroff) as input, writes a list of the names that are -# listed in the "NAME" section, i.e., the names that we would like to use -# as aliases for the manpage -T.Dickey -# -# eliminate formatting controls that get in the way -/^'\\"/d -/\.\\"/d -/^\.br/d -/^\.sp/d -s/^\.IX// -s/\\f.//g -s/[:,]/ /g -# -# eliminate unnecessary whitespace, convert multiple blanks to single space -s/^[ ][ ]*// -s/[ ][ ]*$// -s/[ ][ ]*/ /g -# -# convert ".SH" into a more manageable form -s/\.SH[ ][ ]*/.SH_(/ -# -# in ".SH NAME" -# change "\-" to "-", eliminate text after "-", and split the remaining lines -# at each space, making a list of names: -/^\.SH_(NAME/,/^\.SH_(SYNOPSIS/{ -s/\\-.*/ -/ -/ -/{ -s/ -.*// -s/ /\ -/g -} -/^-/{ -d -} -s/ /\ -/g -} -# -# in ".SH SYNOPSIS" -# remove any line that does not contain a '(', since we only want functions. -# then strip off return-type of each function. -# finally, remove the parameter list, which begins with a '('. -/^\.SH_(SYNOPSIS/,/^\.SH_(DESCRIPTION/{ -/^[^(]*$/d -# reduce -# .B "int add_wch( const cchar_t *\fIwch\fB );" -# to -# add_wch( const cchar_t *\fIwch\fB );" -s/^\([^ (]* [^ (]* [*]*\)//g -s/^\([^ (]* [*]*\)//g -# trim blanks in case we have -# void (*) (FORM *) field_init(const FORM *form); -s/) (/)(/g -# reduce stuff like -# void (*)(FORM *) field_init(const FORM *form); -# to -# field_init(const FORM *form); -s/^\(([^)]*)\)\(([^)]*)\)*[ ]*//g -# rename marker temporarily -s/\.SH_(/.SH_/ -# kill lines with ");", and trim off beginning of argument list. -s/[()].*// -# rename marker back -s/\.SH_/.SH_(/ -} -# -# delete ".SH DESCRIPTION" and following lines -/^\.SH_(DESCRIPTION/,${ -d -} -# -# delete any remaining directives -/^\./d diff --git a/Build/source/libs/ncurses/man/menu.3x b/Build/source/libs/ncurses/man/menu.3x deleted file mode 100644 index e81913c43cb..00000000000 --- a/Build/source/libs/ncurses/man/menu.3x +++ /dev/null @@ -1,190 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2000,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu.3x,v 1.15 2002/01/19 22:48:58 tom Exp $ -.TH menu 3X "" -.SH NAME -\fBmenu\fR - curses extension for programming menus -.SH SYNOPSIS -\fB#include \fR -.br -.SH DESCRIPTION -The \fBmenu\fR library provides terminal-independent facilities for composing -menu systems on character-cell terminals. The library includes: item routines, -which create and modify menu items; and menu routines, which group items into -menus, display menus on the screen, and handle interaction with the user. - -The \fBmenu\fR library uses the \fBcurses\fR libraries, and a curses -initialization routine such as \fBinitscr\fR must be called before using any of -these functions. To use the \fBmenu\fR library, link with the options -\fB-lmenu -lcurses\fR. - -.SS Current Default Values for Item Attributes - -The \fBmenu\fR library maintains a default value for item attributes. You can -get or set this default by calling the appropriate \fBget_\fR or \fBset_\fR -routine with a \fBNULL\fR item pointer. Changing this default with a -\fBset_\fR function affects future item creations, but does not change the -rendering of items already created. - -.SS Routine Name Index - -The following table lists each \fBmenu\fR routine and the name of -the manual page on which it is described. - -.TS -l l . -\fBcurses\fR Routine Name Manual Page Name -= -current_item \fBmitem_current\fR(3X) -free_item \fBmitem_new\fR(3X) -free_menu \fBmenu_new\fR(3X) -item_count \fBmenu_items\fR(3X) -item_description \fBmitem_name\fR(3X) -item_index \fBmitem_current\fR(3X) -item_init \fBmenu_hook\fR(3X) -item_name \fBmitem_name\fR(3X) -item_opts \fBmitem_opts\fR(3X) -item_opts_off \fBmitem_opts\fR(3X) -item_opts_on \fBmitem_opts\fR(3X) -item_term \fBmenu_hook\fR(3X) -item_userptr \fBmitem_userptr\fR(3X) -item_value \fBmitem_value\fR(3X) -item_visible \fBmitem_visible\fR(3X) -menu_back \fBmenu_attributes\fR(3X) -menu_driver \fBmenu_driver\fR(3X) -menu_fore \fBmenu_attributes\fR(3X) -menu_format \fBmenu_format\fR(3X) -menu_grey \fBmenu_attributes\fR(3X) -menu_init \fBmenu_hook\fR(3X) -menu_items \fBmenu_items\fR(3X) -menu_mark \fBmenu_mark\fR(3X) -menu_opts \fBmenu_opts\fR(3X) -menu_opts_off \fBmenu_opts\fR(3X) -menu_opts_on \fBmenu_opts\fR(3X) -menu_pad \fBmenu_attributes\fR(3X) -menu_pattern \fBmenu_pattern\fR(3X) -menu_request_by_name \fBmenu_requestname\fR(3X) -menu_request_name \fBmenu_requestname\fR(3X) -menu_spacing \fBmenu_spacing\fR(3X) -menu_sub \fBmenu_win\fR(3X) -menu_term \fBmenu_hook\fR(3X) -menu_userptr \fBmenu_userptr\fR(3X) -menu_win \fBmenu_win\fR(3X) -new_item \fBmitem_new\fR(3X) -new_menu \fBmenu_new\fR(3X) -pos_menu_cursor \fBmenu_cursor\fR(3X) -post_menu \fBmenu_post\fR(3X) -scale_menu \fBmenu_win\fR(3X) -set_current_item \fBmitem_current\fR(3X) -set_item_init \fBmenu_hook\fR(3X) -set_item_opts \fBmitem_opts\fR(3X) -set_item_term \fBmenu_hook\fR(3X) -set_item_userptr \fBmitem_userptr\fR(3X) -set_item_value \fBmitem_value\fR(3X) -set_menu_back \fBmenu_attributes\fR(3X) -set_menu_fore \fBmenu_attributes\fR(3X) -set_menu_format \fBmenu_format\fR(3X) -set_menu_grey \fBmenu_attributes\fR(3X) -set_menu_init \fBmenu_hook\fR(3X) -set_menu_items \fBmenu_items\fR(3X) -set_menu_mark \fBmenu_mark\fR(3X) -set_menu_opts \fBmitem_opts\fR(3X) -set_menu_pad \fBmenu_attributes\fR(3X) -set_menu_pattern \fBmenu_pattern\fR(3X) -set_menu_spacing \fBmenu_spacing\fR(3X) -set_menu_sub \fBmenu_win\fR(3X) -set_menu_term \fBmenu_hook\fR(3X) -set_menu_userptr \fBmenu_userptr\fR(3X) -set_menu_win \fBmenu_win\fR(3X) -set_top_row \fBmitem_current\fR(3X) -top_row \fBmitem_current\fR(3X) -unpost_menu \fBmenu_post\fR(3X) -.TE -.SH RETURN VALUE -Routines that return pointers return \fBNULL\fR on error. Routines that return -an integer return one of the following error codes: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The menu is already posted. -.TP 5 -\fBE_BAD_STATE\fR -Routine was called from an initialization or termination function. -.TP 5 -\fBE_NO_ROOM\fR -Menu is too large for its window. -.TP 5 -\fBE_NOT_POSTED\fR -The menu has not been posted. -.TP 5 -\fBE_UNKNOWN_COMMAND\fR -The menu driver code saw an unknown request code. -.TP 5 -\fBE_NO_MATCH\fR -Character failed to match. -.TP 5 -\fBE_NOT_SELECTABLE\fR -The designated item cannot be selected. -.TP 5 -\fBE_NOT_CONNECTED\fR -No items are connected to the menu. -.TP 5 -\fBE_REQUEST_DENIED\fR -The menu driver could not process the request. -.SH SEE ALSO -\fBcurses\fR(3X) and related pages whose names begin "menu_" for detailed -descriptions of the entry points. -.SH NOTES -The header file \fB\fR automatically includes the header files -\fB\fR and \fB\fR. - -In your library list, libmenu.a should be before libncurses.a; that is, -you want to say `-lmenu -lncurses', not the other way around (which would -give you a link error using GNU \fBld\fR(1) and many other linkers). -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for ncurses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_attributes.3x b/Build/source/libs/ncurses/man/menu_attributes.3x deleted file mode 100644 index 99a2ac2bc10..00000000000 --- a/Build/source/libs/ncurses/man/menu_attributes.3x +++ /dev/null @@ -1,100 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_attributes.3x,v 1.7 2002/01/19 22:49:06 tom Exp $ -.TH menu_attributes 3X "" -.SH NAME -\fBmenu_attributes\fR - color and attribute control for menus -.SH SYNOPSIS -\fB#include \fR -.br -int set_menu_fore(MENU *menu, chtype attr); -.br -chtype menu_fore(const MENU *menu); -.br -int set_menu_back(MENU *menu, chtype attr); -.br -chtype menu_back(const MENU *menu); -.br -int set_menu_grey(MENU *menu, chtype attr); -.br -chtype menu_grey(const MENU *menu); -.br -int set_menu_pad(MENU *menu, int pad); -.br -int menu_pad(const MENU *menu); -.br -.SH DESCRIPTION -The function \fBset_menu_fore\fR sets the foreground attribute of -\fImenu\fR. This is the highlight used for selected menu items. -\fBmenu_fore\fR returns the foreground attribute. The default -is \fBA_STANDOUT\fR. - -The function \fBset_menu_back\fR sets the background attribute of -\fImenu\fR. This is the highlight used for selectable (but not currently -selected) menu items. The function \fBmenu_back\fR returns the background -attribute. The default is \fBA_NORMAL\fR. - -The function \fBset_menu_grey\fR sets the grey attribute of \fImenu\fR. This is -the highlight used for un-selectable menu items in menus that permit more than -one selection. The function \fBmenu_grey\fR returns the grey attribute. -The default is \fBA_UNDERLINE\fR. - -The function \fBset_menu_pad\fR sets the character used to fill the space -between the name and description parts of a menu item. \fBmenu_pad\fR returns -the given menu's pad character. The default is a blank. -.SH RETURN VALUE -These routines return one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.SH SEE ALSO -\fBcurses\fR(3X) and related pages whose names begin "menu_" for detailed -descriptions of the entry points. -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_cursor.3x b/Build/source/libs/ncurses/man/menu_cursor.3x deleted file mode 100644 index 2cc58507de6..00000000000 --- a/Build/source/libs/ncurses/man/menu_cursor.3x +++ /dev/null @@ -1,73 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_cursor.3x,v 1.5 1998/11/29 01:09:30 Rick.Ohnemus Exp $ -.TH menu_cursor 3X "" -.SH NAME -\fBmenu_cursor\fR - position a menu's cursor -.SH SYNOPSIS -\fB#include \fR -.br -int pos_menu_cursor(const MENU *menu); -.br -.SH DESCRIPTION -The function \fBpos_menu_cursor\fR restores the cursor to the current position -associated with the menu's selected item. This is useful after \fBcurses\fR -routines have been called to do screen-painting in response to a menu select. -.SH RETURN VALUE -This routine returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_NOT_POSTED\fR -The menu has not been posted. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_driver.3x b/Build/source/libs/ncurses/man/menu_driver.3x deleted file mode 100644 index 1651724b0bf..00000000000 --- a/Build/source/libs/ncurses/man/menu_driver.3x +++ /dev/null @@ -1,170 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_driver.3x,v 1.11 2003/05/10 20:22:01 tom Exp $ -.TH menu_driver 3X "" -.SH NAME -\fBmenu_driver\fR - command-processing loop of the menu system -.SH SYNOPSIS -\fB#include \fR -.br -int menu_driver(MENU *menu, int c); -.br -.SH DESCRIPTION -Once a menu has been posted (displayed), you should funnel input events to it -through \fBmenu_driver\fR. This routine has three major input cases; either -the input is a menu navigation request, it's a printable ASCII character or it -is the KEY_MOUSE special key associated with an mouse event. -The menu driver requests are as follows: -.TP 5 -REQ_LEFT_ITEM -Move left to an item. -.TP 5 -REQ_RIGHT_ITEM -Move right to an item. -.TP 5 -REQ_UP_ITEM -Move up to an item. -.TP 5 -REQ_DOWN_ITEM -Move down to an item. -.TP 5 -REQ_SCR_ULINE -Scroll up a line. -.TP 5 -REQ_SCR_DLINE -Scroll down a line. -.TP 5 -REQ_SCR_DPAGE -Scroll down a page. -.TP 5 -REQ_SCR_UPAGE -Scroll up a page. -.TP 5 -REQ_FIRST_ITEM -Move to the first item. -.TP 5 -REQ_LAST_ITEM -Move to the last item. -.TP 5 -REQ_NEXT_ITEM -Move to the next item. -.TP 5 -REQ_PREV_ITEM -Move to the previous item. -.TP 5 -REQ_TOGGLE_ITEM -Select/deselect an item. -.TP 5 -REQ_CLEAR_PATTERN -Clear the menu pattern buffer. -.TP 5 -REQ_BACK_PATTERN -Delete the previous character from the pattern buffer. -.TP 5 -REQ_NEXT_MATCH -Move to the next item matching the pattern match. -.TP 5 -REQ_PREV_MATCH -Move to the previous item matching the pattern match. -.PP -If the second argument is a printable ASCII character, the code appends -it to the pattern buffer and attempts to move to the next item matching -the new pattern. If there is no such match, \fBmenu_driver\fR returns -\fBE_NO_MATCH\fR and deletes the appended character from the buffer. -.PP -If the second argument is one of the above pre-defined requests, the -corresponding action is performed. -.PP -If the second argument is the KEY_MOUSE special key, the associated -mouse event is translated into one of the above pre-defined requests. -Currently only clicks in the user window (e.g. inside the menu display -area or the decoration window) are handled. If you click above the -display region of the menu, a REQ_SCR_ULINE is generated, if you -doubleclick a REQ_SCR_UPAGE is generated and if you tripleclick a -REQ_FIRST_ITEM is generated. If you click below the display region of -the menu, a REQ_SCR_DLINE is generated, if you doubleclick a REQ_SCR_DPAGE -is generated and if you tripleclick a REQ_LAST_ITEM is generated. If you -click at an item inside the display area of the menu, the menu cursor -is positioned to that item. If you double-click at an item a REQ_TOGGLE_ITEM -is generated and \fBE_UNKNOWN_COMMAND\fR is returned. This return value makes -sense, because a double click usually means that an item-specific action should -be returned. It's exactly the purpose of this return value to signal that an -application specific command should be executed. If a translation -into a request was done, \fBmenu_driver\fR returns the result of this request. -If you clicked outside the user window or the mouse event couldn't be translated -into a menu request an \fBE_REQUEST_DENIED\fR is returned. -.PP -If the second argument is neither printable ASCII nor one of the above -pre-defined menu requests or KEY_MOUSE, the drive assumes it is an application-specific -command and returns \fBE_UNKNOWN_COMMAND\fR. Application-defined commands -should be defined relative to \fBMAX_COMMAND\fR, the maximum value of these -pre-defined requests. -.SH RETURN VALUE -\fBmenu_driver\fR return one of the following error codes: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_BAD_STATE\fR -Routine was called from an initialization or termination function. -.TP 5 -\fBE_NOT_POSTED\fR -The menu has not been posted. -.TP 5 -\fBE_UNKNOWN_COMMAND\fR -The menu driver code saw an unknown request code. -.TP 5 -\fBE_NO_MATCH\fR -Character failed to match. -.TP 5 -\fBE_REQUEST_DENIED\fR -The menu driver could not process the request. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header files -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. The support for mouse events is ncurses specific. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_format.3x b/Build/source/libs/ncurses/man/menu_format.3x deleted file mode 100644 index 7dde28face8..00000000000 --- a/Build/source/libs/ncurses/man/menu_format.3x +++ /dev/null @@ -1,84 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2001 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_format.3x,v 1.8 2001/08/04 20:36:19 William.Setzer Exp $ -.TH menu_format 3X "" -.SH NAME -\fBmenu_format\fR - set and get menu sizes -.SH SYNOPSIS -\fB#include \fR -.br -int set_menu_format(MENU *menu, int rows, int cols); -.br -void menu_format(const MENU *menu, int *rows, int *cols); -.br -.SH DESCRIPTION -The function \fBset_menu_format\fR sets the maximum display size of the given -menu. If this size is too small to display all menu items, the menu will be -made scrollable. If this size is larger than the menus subwindow and the -subwindow is too small to display all menu items, \fBpost_menu()\fR will fail. - -The default format is 16 rows, 1 column. Calling \fBset_menu_format\fR with a -null menu pointer will change this default. A zero row or column argument to -\fBset_menu_format\fR is interpreted as a request not to change the current -value. - -The function \fBmenu_format\fR returns the maximum-size constraints for the -given menu into the storage addressed by \fBrows\fR and \fBcols\fR. -.SH RETURN VALUE -These routines returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The menu is already posted. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_hook.3x b/Build/source/libs/ncurses/man/menu_hook.3x deleted file mode 100644 index 531528a6078..00000000000 --- a/Build/source/libs/ncurses/man/menu_hook.3x +++ /dev/null @@ -1,101 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_hook.3x,v 1.6 1998/11/29 01:09:47 Rick.Ohnemus Exp $ -.TH menu_hook 3X "" -.SH NAME -\fBmenu_hook\fR - set hooks for automatic invocation by applications -.SH SYNOPSIS -\fB#include \fR -.br -int set_item_init(MENU *menu, void (*func)(MENU *)); -.br -void (*)(MENU *) item_init(const MENU *menu); -.br -int set_item_term(MENU *menu, void (*func)(MENU *)); -.br -void (*)(MENU *) item_term(const MENU *menu); -.br -int set_menu_init(MENU *menu, void (*func)(MENU *)); -.br -void (*)(MENU *) menu_init(const MENU *menu); -.br -int set_menu_term(MENU *menu, void (*func)(MENU *)); -.br -void (*)(MENU *) menu_term(const MENU *menu); -.br -.SH DESCRIPTION -These functions make it possible to set hook functions to be called at various -points in the automatic processing of input event codes by \fBmenu_driver\fR. - -The function \fBset_item_init\fR sets a hook to be called at menu-post time and -each time the selected item changes (after the change). \fBitem_init\fR -returns the current item init hook, if any (\fBNULL\fR if there is no such -hook). - -The function \fBset_item_term\fR sets a hook to be called at menu-unpost time -and each time the selected item changes (before the change). \fBitem_term\fR -returns the current item term hook, if any (\fBNULL\fR if there is no such -hook). - -The function \fBset_menu_init\fR sets a hook to be called at menu-post time and -just after the top row on the menu changes once it is posted. \fBmenu_init\fR -returns the current menu init hook, if any (\fBNULL\fR if there is no such -hook). - -The function \fBset_menu_term\fR sets a hook to be called at menu-unpost time -and just before the top row on the menu changes once it is posted. -\fBmenu_term\fR returns the current menu term hook, if any (\fBNULL\fR if there -is no such hook). -.SH RETURN VALUE -Routines that return pointers return \fBNULL\fR on error. Other routines -return one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_items.3x b/Build/source/libs/ncurses/man/menu_items.3x deleted file mode 100644 index 7ec7db5604b..00000000000 --- a/Build/source/libs/ncurses/man/menu_items.3x +++ /dev/null @@ -1,91 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_items.3x,v 1.5 1998/11/29 01:09:56 Rick.Ohnemus Exp $ -.TH menu_items 3X "" -.SH NAME -\fBmenu_items\fR - make and break connections between items and menus -.SH SYNOPSIS -\fB#include \fR -.br -int set_menu_items(MENU *menu, ITEM **items); -.br -ITEM **menu_items(const MENU *menu); -.br -int item_count(const MENU *menu); -.br -.SH DESCRIPTION -The function \fBset_menu_items\fR changes the item pointer array of the given -\fImenu\fR. The array must be terminated by a \fBNULL\fR. - -The function \fBmenu_items\fR returns the item array of the given menu. - -The function \fBitem_count\fR returns the count of items in \fImenu\fR. -.SH RETURN VALUES -The function \fBmenu_items\fR returns \fBNULL\fR on error. - -The function \fBitem_count\fR returns \fBERR\fR (the general \fBcurses\fR error -return value) on error. - -The function \fBset_menu_items\fR returns one of the following codes on error: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The menu is already posted. -.TP 5 -\fBE_NOT_CONNECTED\fR -No items are connected to the menu. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. - -The SVr4 menu library documentation specifies the \fBitem_count\fR error value -as -1 (which is the value of \fBERR\fR). -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_mark.3x b/Build/source/libs/ncurses/man/menu_mark.3x deleted file mode 100644 index 72ea000335e..00000000000 --- a/Build/source/libs/ncurses/man/menu_mark.3x +++ /dev/null @@ -1,84 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_mark.3x,v 1.6 1998/11/29 01:10:03 Rick.Ohnemus Exp $ -.TH menu_mark 3X "" -.SH NAME -\fBmenu_mark\fR - get and set the menu mark string -.SH SYNOPSIS -\fB#include \fR -.br -int set_menu_mark(MENU *menu, const char *mark); -.br -const char *menu_mark(const MENU *menu); -.br -.SH DESCRIPTION -In order to make menu selections visible on older terminals without -highlighting or color capability, the menu library marks selected items -in a menu with a prefix string. - -The function \fBset_menu_mark\fR sets the mark string for the given menu. -Calling \fBset_menu_mark\fR with a null menu item will abolish the mark string. -Note that changing the length of the mark string for a menu while the -menu is posted is likely to produce unhelpful behavior. - -The default string is "-" (a dash). Calling \fBset_menu_mark\fR with -a \fBNULL\fR menu argument will change this default. - -The function \fBmenu_mark\fR returns the menu's mark string (or \fBNULL\fR if -there is none). -.SH RETURN VALUE -The function \fBmenu_mark\fR returns \fBNULL\fR on error. The function -\fBset_menu_mark\fR may return the following error codes: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_new.3x b/Build/source/libs/ncurses/man/menu_new.3x deleted file mode 100644 index c53bd9b8cb6..00000000000 --- a/Build/source/libs/ncurses/man/menu_new.3x +++ /dev/null @@ -1,79 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_new.3x,v 1.7 1998/11/29 01:10:13 Rick.Ohnemus Exp $ -.TH menu_new 3X "" -.SH NAME -\fBmenu_new\fR - create and destroy menus -.SH SYNOPSIS -\fB#include \fR -.br -MENU *new_menu(ITEM **items); -.br -int free_menu(MENU *menu); -.br -.SH DESCRIPTION -The function \fBnew_menu\fR creates a new menu connected to a specified item -pointer array (which must be \fBNULL\fR-terminated). - -The function \fBfree_menu\fR disconnects \fImenu\fR from its item array -and frees the storage allocated for the menu. -.SH RETURN VALUE -The function \fBnew_menu\fR returns \fBNULL\fR on error. - -The function \fBfree_menu\fR returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The menu has already been posted. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_opts.3x b/Build/source/libs/ncurses/man/menu_opts.3x deleted file mode 100644 index 30cad58d495..00000000000 --- a/Build/source/libs/ncurses/man/menu_opts.3x +++ /dev/null @@ -1,104 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_opts.3x,v 1.7 1998/11/29 01:10:21 Rick.Ohnemus Exp $ -.TH menu_opts 3X "" -.SH NAME -\fBmenu_opts\fR - set and get menu options -.SH SYNOPSIS -\fB#include \fR -.br -int set_menu_opts(MENU *menu, OPTIONS opts); -.br -int menu_opts_on(MENU *menu, OPTIONS opts); -.br -int menu_opts_off(MENU *menu, OPTIONS opts); -.br -OPTIONS menu_opts(const MENU *menu); -.br -.SH DESCRIPTION -The function \fBset_menu_opts\fR sets all the given menu's option bits (menu -option bits may be logically-OR'ed together). - -The function \fBmenu_opts_on\fR turns on the given option bits, and leaves -others alone. - -The function \fBmenu_opts_off\fR turns off the given option bits, and leaves -others alone. - -The function \fBmenu_opts\fR returns the menu's current option bits. - -The following options are defined (all are on by default): -.TP 5 -O_ONEVALUE -Only one item can be selected for this menu. -.TP 5 -O_SHOWDESC -Display the item descriptions when the menu is posted. -.TP 5 -O_ROWMAJOR -Display the menu in row-major order. -.TP 5 -O_IGNORECASE -Ignore the case when pattern-matching. -.TP 5 -O_SHOWMATCH -Move the cursor to within the item name while pattern-matching. -.TP 5 -O_NONCYCLIC -Don't wrap around next-item and previous-item, -requests to the other end of the menu. -.SH RETURN VALUE -Except for \fBmenu_opts\fR, each routine returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_POSTED\fR -The menu is already posted. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_pattern.3x b/Build/source/libs/ncurses/man/menu_pattern.3x deleted file mode 100644 index 2fdc09a6158..00000000000 --- a/Build/source/libs/ncurses/man/menu_pattern.3x +++ /dev/null @@ -1,82 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_pattern.3x,v 1.8 2003/05/10 20:22:01 tom Exp $ -.TH menu_pattern 3X "" -.SH NAME -\fBmenu_pattern\fR - get and set a menu's pattern buffer -.SH SYNOPSIS -\fB#include \fR -.br -int set_menu_pattern(MENU *menu, const char *pattern); -.br -char *menu_pattern(const MENU *menu); -.br -.SH DESCRIPTION -Every menu has an associated pattern match buffer. As input events that are -printable ASCII characters come in, they are appended to this match buffer -and tested for a match, as described in \fBmenu_driver\fR(3X). - -The function \fBset_menu_pattern\fR sets the pattern buffer for the given menu -and tries to find the first matching item. If it succeeds, that item becomes -current; if not, the current item does not change. - -The function \fBmenu_pattern\fR returns the pattern buffer of the given -\fImenu\fR. -.SH RETURN VALUE -The function \fBmenu_pattern\fR returns \fBNULL\fR on error. The function -\fBset_menu_pattern\fR may return the following error codes: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_NO_MATCH\fR -Character failed to match. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_post.3x b/Build/source/libs/ncurses/man/menu_post.3x deleted file mode 100644 index a4182d64952..00000000000 --- a/Build/source/libs/ncurses/man/menu_post.3x +++ /dev/null @@ -1,91 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_post.3x,v 1.7 1998/11/29 01:10:33 Rick.Ohnemus Exp $ -.TH menu_post 3X "" -.SH NAME -\fBmenu_post\fR - write or erase menus from associated subwindows -.SH SYNOPSIS -\fB#include \fR -.br -int post_menu(MENU *menu); -.br -int unpost_menu(MENU *menu); -.br -.SH DESCRIPTION -The function \fBpost_menu\fR displays a menu to its associated subwindow. To -trigger physical display of the subwindow, use \fBrefresh\fR or some equivalent -\fBcurses\fR routine (the implicit \fBdoupdate\fR triggered by an \fBcurses\fR -input request will do). \fBpost_menu\fR resets the selection status of all items. - -The function \fBunpost_menu\fR erases menu from its associated subwindow. -.SH RETURN VALUE -These routines return one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The menu has already been posted. -.TP 5 -\fBE_BAD_STATE\fR -Routine was called from an initialization or termination function. -.TP 5 -\fBE_NO_ROOM\fR -Menu is too large for its window. You should consider to use -\fBset_menu_format()\fR to solve the problem. -.TP 5 -\fBE_NOT_POSTED\fR -The menu has not been posted. -.TP 5 -\fBE_NOT_CONNECTED\fR -No items are connected to the menu. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_requestname.3x b/Build/source/libs/ncurses/man/menu_requestname.3x deleted file mode 100644 index f4b646a455f..00000000000 --- a/Build/source/libs/ncurses/man/menu_requestname.3x +++ /dev/null @@ -1,69 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_requestname.3x,v 1.6 1998/11/29 01:10:40 Rick.Ohnemus Exp $ -.TH menu_requestname 3X "" -.SH NAME -\fBmenu_requestname\fR - handle printable menu request names -.SH SYNOPSIS -\fB#include \fR -.br -const char *menu_request_name(int request); -.br -int menu_request_by_name(const char *name); -.br -.SH DESCRIPTION -The function \fBmenu_request_name\fR returns the printable name of a menu -request code. -.br -The function \fBmenu_request_by_name\fR searches in the name-table for a request -with the given name and returns its request code. Otherwise E_NO_MATCH is returned. -.SH RETURN VALUE -\fBmenu_request_name\fR returns \fBNULL\fR on error and sets errno -to \fBE_BAD_ARGUMENT\fR. -.br -\fBmenu_request_by_name\fR returns \fBE_NO_MATCH\fR on error. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines are specific to ncurses. They were not supported on -Version 7, BSD or System V implementations. It is recommended that -any code depending on them be conditioned using NCURSES_VERSION. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_spacing.3x b/Build/source/libs/ncurses/man/menu_spacing.3x deleted file mode 100644 index 18316219320..00000000000 --- a/Build/source/libs/ncurses/man/menu_spacing.3x +++ /dev/null @@ -1,84 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2001 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_spacing.3x,v 1.6 2001/08/04 20:36:16 William.Setzer Exp $ -.TH menu_spacing 3X "" -.SH NAME -\fBmenu_spacing\fR - Control spacing between menu items. -.SH SYNOPSIS -\fB#include \fR -.br -int set_menu_spacing(MENU *menu, - int spc_description, - int spc_rows, - int spc_columns); -.br -int menu_spacing(const MENU *menu, - int* spc_description, - int* spc_rows, - int* spc_columns); -.br -.SH DESCRIPTION -The function \fBset_menu_spacing\fR sets the spacing informations for the menu. -\fBspc_description\fR controls the number of spaces between an item name and an item -description. It must not be larger than \fBTABSIZE\fR. The menu system puts in the -middle of this spacing area the pad character. The remaining parts are filled with -spaces. -\fBspc_rows\fR controls the number of rows that are used for an item. It must not be -larger than 3. The menu system inserts then blank lines between item rows, these lines -will contain the pad character in the appropriate positions. -\fBspc_columns\fR controls the number of blanks between columns of items. It must not -be larger than TABSIZE. -A value of 0 for all the spacing values resets them to the default, which is 1 for all -of them. -.br -The function \fBmenu_spacing\fR passes back the spacing info for the menu. If a -pointer is NULL, this specific info is simply not returned. -.SH RETURN VALUE -Both routines return \fBE_OK\fR on success. \fBset_menu_spacing\fR may return -\fBE_POSTED\fR if the menu is posted, or \fBE_BAD_ARGUMENT\fR if one of the -spacing values is out of range. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines are specific to ncurses. They were not supported on -Version 7, BSD or System V implementations. It is recommended that -any code depending on them be conditioned using NCURSES_VERSION. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_userptr.3x b/Build/source/libs/ncurses/man/menu_userptr.3x deleted file mode 100644 index 1fe354183d8..00000000000 --- a/Build/source/libs/ncurses/man/menu_userptr.3x +++ /dev/null @@ -1,73 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_userptr.3x,v 1.6 1998/11/29 01:11:02 Rick.Ohnemus Exp $ -.TH menu_userptr 3X "" -.SH NAME -\fBmenu_userptr\fR - associate application data with a menu item -.SH SYNOPSIS -\fB#include \fR -.br -int set_menu_userptr(MENU *menu, void *userptr); -.br -void *menu_userptr(const MENU *menu); -.br -.SH DESCRIPTION -Every menu and every menu item has a field that can be used to hold -application-specific data (that is, the menu-driver code leaves it alone). -These functions get and set the menu user pointer field. -.SH RETURN VALUE -Except for \fBmenu_userptr\fR (which returns \fBNULL\fR on error), each -function returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. - -The user pointer should be a void pointer. We leave it as a char pointer for -SVr4 compatibility. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/menu_win.3x b/Build/source/libs/ncurses/man/menu_win.3x deleted file mode 100644 index 336da44b0c5..00000000000 --- a/Build/source/libs/ncurses/man/menu_win.3x +++ /dev/null @@ -1,95 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: menu_win.3x,v 1.6 1998/11/29 01:11:11 Rick.Ohnemus Exp $ -.TH menu_win 3X "" -.SH NAME -\fBmenu_win\fR - make and break menu window and subwindow associations -.SH SYNOPSIS -\fB#include \fR -.br -int set_menu_win(MENU *menu, WINDOW *win); -.br -WINDOW *menu_win(const MENU *menu); -.br -int set_menu_sub(MENU *menu, WINDOW *sub); -.br -WINDOW *menu_sub(const MENU *menu); -.br -int scale_menu(const MENU *menu, int *rows, int *columns); -.br -.SH DESCRIPTION -Every menu has an associated pair of \fBcurses\fR windows. The menu window -displays any title and border associated with the window; the menu subwindow -displays the items of the menu that are currently available for selection. - -The first four functions get and set those windows. It is not necessary to set -either window; by default, the driver code uses \fBstdscr\fR for both. - -In the \fBset_\fR functions, window argument of \fBNULL\fR is treated as though -it were \fBstsdcr\fR. A menu argument of \fBNULL\fR is treated as a request -to change the system default menu window or subwindow. - -The function \fBscale_menu\fR returns the minimum size required for the -subwindow of \fImenu\fR. -.SH RETURN VALUE -Routines that return pointers return \fBNULL\fR on error. Routines that return -an integer return one of the following error codes: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_POSTED\fR -The menu has already been posted. -.TP 5 -\fBE_NOT_CONNECTED\fR -No items are connected to the menu. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/mitem_current.3x b/Build/source/libs/ncurses/man/mitem_current.3x deleted file mode 100644 index 179a23be3b2..00000000000 --- a/Build/source/libs/ncurses/man/mitem_current.3x +++ /dev/null @@ -1,101 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: mitem_current.3x,v 1.9 1998/12/26 19:52:34 tom Exp $ -.TH mitem_current 3X "" -.SH NAME -\fBmitem_current\fR - set and get current_menu_item -.SH SYNOPSIS -\fB#include \fR -.br -int set_current_item(MENU *menu, const ITEM *item); -.br -ITEM *current_item(const MENU *menu); -.br -int set_top_row(MENU *menu, int row); -.br -int top_row(const MENU *menu); -.br -int item_index(const ITEM *item); -.br -.SH DESCRIPTION -The function \fBset_current_item\fR sets the current item (the item on which -the menu cursor is positioned). \fBcurrent_item\fR returns a pointer to the -current item in the given menu. - -The function \fBset_top_row\fR sets the top row of the menu to show the given -row (the top row is initially 0, and is reset to this value whenever the -\fBO_ROWMAJOR\fR option is toggled). The item leftmost on the given row -becomes current. The function \fBtop_row\fR returns the number of the top menu -row being displayed. - -The function \fBitem_index\fR returns the (zero-origin) index of \fIitem\fR in -the menu's item pointer list. -.SH RETURN VALUE -\fBcurrent_item\fR returns \fBNULL\fR on error. - -\fBtop_row\fR and \fBitem_index\fR return \fBERR\fR (the general \fBcurses\fR -error value) on error. - -\fBset_current_item\fR and \fBset_top_row\fR return one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_BAD_STATE\fR -Routine was called from an initialization or termination function. -.TP 5 -\fBE_NOT_CONNECTED\fR -No items are connected to the menu. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. - -The SVr4 menu library documentation specifies the \fBtop_row\fR and -\fBindex_item\fR error value as -1 (which is the value of \fBERR\fR). -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/mitem_name.3x b/Build/source/libs/ncurses/man/mitem_name.3x deleted file mode 100644 index 007752e0bbe..00000000000 --- a/Build/source/libs/ncurses/man/mitem_name.3x +++ /dev/null @@ -1,64 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: mitem_name.3x,v 1.5 1998/11/29 01:11:29 Rick.Ohnemus Exp $ -.TH mitem_name 3X "" -.SH NAME -\fBmitem_name\fR - get menu item name and description fields -.SH SYNOPSIS -\fB#include \fR -.br -const char *item_name(const ITEM *item); -.br -const char *item_description(const ITEM *item); -.br -.SH DESCRIPTION -The function \fBitem_name\fR returns the name part of the given item. -.br -The function \fBitem_description\fR returns the description part of the given -item. -.SH RETURN VALUE -These routines returns \fBNULL\fR on error. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/mitem_new.3x b/Build/source/libs/ncurses/man/mitem_new.3x deleted file mode 100644 index afba950b13b..00000000000 --- a/Build/source/libs/ncurses/man/mitem_new.3x +++ /dev/null @@ -1,83 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: mitem_new.3x,v 1.8 2003/10/25 20:08:57 Jared.Yanovich Exp $ -.TH mitem_new 3X "" -.SH NAME -\fBmitem_new\fR - create and destroy menu items -.SH SYNOPSIS -\fB#include \fR -.br -ITEM *new_item(const char *name, const char *description); -.br -int free_item(ITEM *item); -.br -.SH DESCRIPTION -The function \fBnew_item\fR allocates a new item and initializes it from the -\fBname\fR and \fBdescription\fR pointers. Please notice that the item stores -only the pointers to the name and description. Those pointers must be valid -during the lifetime of the item. So you should be very careful with names -or descriptions allocated on the stack of some routines. -.br -The function \fBfree_item\fR de-allocates an item. Please notice that it -is the responsibility of the application to release the memory for the -name or the description of the item. -.SH RETURN VALUE -The function \fBnew_item\fR returns \fBNULL\fR on error. - -The function \fBfree_item\fR returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_BAD_ARGUMENT\fR -Routine detected an incorrect or out-of-range argument. -.TP 5 -\fBE_CONNECTED\fR -Item is connected to a menu. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/mitem_opts.3x b/Build/source/libs/ncurses/man/mitem_opts.3x deleted file mode 100644 index 99e4e5ea7e9..00000000000 --- a/Build/source/libs/ncurses/man/mitem_opts.3x +++ /dev/null @@ -1,84 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: mitem_opts.3x,v 1.6 1998/11/29 01:12:37 Rick.Ohnemus Exp $ -.TH mitem_opts 3X "" -.SH NAME -\fBmitem_opts\fR - set and get menu item options -.SH SYNOPSIS -\fB#include \fR -.br -int set_item_opts(ITEM *item, OPTIONS opts); -.br -int item_opts_on(ITEM *item, OPTIONS opts); -.br -int item_opts_off(ITEM *item, OPTIONS opts); -.br -OPTIONS item_opts(const ITEM *item); -.br -.SH DESCRIPTION -The function \fBset_item_opts\fR sets all the given item's option bits (menu -option bits may be logically-OR'ed together). - -The function \fBitem_opts_on\fR turns on the given option bits, and leaves -others alone. - -The function \fBitem_opts_off\fR turns off the given option bits, and leaves -others alone. - -The function \fBitem_opts\fR returns the item's current option bits. - -There is only one defined option bit mask, \fBO_SELECTABLE\fR. When this is -on, the item may be selected during menu processing. This option defaults -to on. -.SH RETURN VALUE -Except for \fBitem_opts\fR, each routine returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/mitem_userptr.3x b/Build/source/libs/ncurses/man/mitem_userptr.3x deleted file mode 100644 index 2dd564fd61e..00000000000 --- a/Build/source/libs/ncurses/man/mitem_userptr.3x +++ /dev/null @@ -1,72 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: mitem_userptr.3x,v 1.6 1998/11/29 01:12:47 Rick.Ohnemus Exp $ -.TH mitem_userptr 3X "" -.SH NAME -\fBmitem_userptr\fR - associate application data with a menu item -.SH SYNOPSIS -\fB#include \fR -.br -int set_item_userptr(ITEM *item, void *userptr); -.br -void *item_userptr(const ITEM *item); -.br -.SH DESCRIPTION -Every menu item has a field that can be used to hold application-specific data -(that is, the menu-driver code leaves it alone). These functions get and set -that field. -.SH RETURN VALUE -Except for \fBitem_userptr\fR (which returns \fBNULL\fR on error), each function returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. - -The user pointer should be a void pointer. We leave it as a char pointer for -SVr4 compatibility. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/mitem_value.3x b/Build/source/libs/ncurses/man/mitem_value.3x deleted file mode 100644 index 5817d8d277b..00000000000 --- a/Build/source/libs/ncurses/man/mitem_value.3x +++ /dev/null @@ -1,76 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998,2002 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: mitem_value.3x,v 1.6 2002/02/16 22:40:59 tom Exp $ -.TH mitem_value 3X "" -.SH NAME -\fBmitem_value\fR - set and get menu item values -.SH SYNOPSIS -\fB#include \fR -.br -int set_item_value(ITEM *item, bool value); -.br -bool item_value(const ITEM *item); -.br -.SH DESCRIPTION -If you turn off the menu option \fBO_ONEVALUE\fR (e.g., with -\fBset_menu_opts\fR or \fBmenu_opts_off\fR; see \fBmenu_opts\fR(3X)), the menu -becomes multi-valued; that is, more than one item may simultaneously be -selected. - -In a multi_valued menu, you can used \fBset_item_value\fR to select the -given menu item (second argument \fBTRUE\fR) or deselect it (second argument -\fBFALSE\fR). -.SH RETURN VALUE -The function \fBset_item_value\fR returns one of the following: -.TP 5 -\fBE_OK\fR -The routine succeeded. -.TP 5 -\fBE_SYSTEM_ERROR\fR -System error occurred (see \fBerrno\fR). -.TP 5 -\fBE_REQUEST_DENIED\fR -The menu driver could not process the request. -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/mitem_visible.3x b/Build/source/libs/ncurses/man/mitem_visible.3x deleted file mode 100644 index 8f9039c2f6d..00000000000 --- a/Build/source/libs/ncurses/man/mitem_visible.3x +++ /dev/null @@ -1,59 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: mitem_visible.3x,v 1.5 1998/11/29 01:12:55 Rick.Ohnemus Exp $ -.TH mitem_visible 3X "" -.SH NAME -\fBmitem_visible\fR - check visibility of a menu item -.SH SYNOPSIS -\fB#include \fR -.br -bool item_visible(const ITEM *item); -.br -.SH DESCRIPTION -A menu item is visible when it is in the portion of a posted menu that -is mapped onto the screen (if the menu is scrollable, in particular, this -portion will be smaller than the whole menu). -.SH SEE ALSO -\fBcurses\fR(3X), \fBmenu\fR(3X). -.SH NOTES -The header file \fB\fR automatically includes the header file -\fB\fR. -.SH PORTABILITY -These routines emulate the System V menu library. They were not supported on -Version 7 or BSD versions. -.SH AUTHORS -Juergen Pfeifer. Manual pages and adaptation for new curses by Eric -S. Raymond. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/ncurses.3x b/Build/source/libs/ncurses/man/ncurses.3x deleted file mode 100644 index 4e9b8ca46ce..00000000000 --- a/Build/source/libs/ncurses/man/ncurses.3x +++ /dev/null @@ -1,919 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: ncurses.3x,v 1.72 2004/09/25 19:06:20 tom Exp $ -.hy 0 -.TH ncurses 3X "" -.ds n 5 -.ds d @TERMINFO@ -.SH NAME -\fBncurses\fR - CRT screen handling and optimization package -.SH SYNOPSIS -\fB#include \fR -.br -.SH DESCRIPTION -The \fBncurses\fR library routines give the user a terminal-independent method -of updating character screens with reasonable optimization. This -implementation is ``new curses'' (ncurses) and is the approved replacement for -4.4BSD classic curses, which has been discontinued. -.PP -The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V -Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR -library is freely redistributable in source form. Differences from the SVr4 -curses are summarized under the EXTENSIONS and BUGS sections below and -described in detail in the EXTENSIONS and BUGS sections of individual man -pages. -.PP -A program using these routines must be linked with the \fB-lncurses\fR option, -or (if it has been generated) with the debugging library \fB-lncurses_g\fR. -(Your system integrator may also have installed these libraries under -the names \fB-lcurses\fR and \fB-lcurses_g\fR.) -The ncurses_g library generates trace logs (in a file called 'trace' in the -current directory) that describe curses actions. -.PP -The \fBncurses\fR package supports: overall screen, window and pad -manipulation; output to windows and pads; reading terminal input; control over -terminal and \fBcurses\fR input and output options; environment query -routines; color manipulation; use of soft label keys; terminfo capabilities; -and access to low-level terminal-manipulation routines. -.PP -To initialize the routines, the routine \fBinitscr\fR or \fBnewterm\fR -must be called before any of the other routines that deal with windows -and screens are used. The routine \fBendwin\fR must be called before -exiting. To get character-at-a-time input without echoing (most -interactive, screen oriented programs want this), the following -sequence should be used: -.sp - \fBinitscr(); cbreak(); noecho();\fR -.sp -Most programs would additionally use the sequence: -.sp - \fBnonl();\fR - \fBintrflush(stdscr, FALSE);\fR - \fBkeypad(stdscr, TRUE);\fR -.sp -Before a \fBcurses\fR program is run, the tab stops of the terminal -should be set and its initialization strings, if defined, must be -output. This can be done by executing the \fBtput init\fR command -after the shell environment variable \fBTERM\fR has been exported. -\fBtset(1)\fR is usually responsible for doing this. -[See \fBterminfo\fR(\*n) for further details.] -.PP -The \fBncurses\fR library permits manipulation of data structures, -called \fIwindows\fR, which can be thought of as two-dimensional -arrays of characters representing all or part of a CRT screen. A -default window called \fBstdscr\fR, which is the size of the terminal -screen, is supplied. Others may be created with \fBnewwin\fR. -.PP -Note that \fBcurses\fR does not handle overlapping windows, that's done by -the \fBpanel\fR(3X) library. This means that you can either use -\fBstdscr\fR or divide the screen into tiled windows and not using -\fBstdscr\fR at all. Mixing the two will result in unpredictable, and -undesired, effects. -.PP -Windows are referred to by variables declared as \fBWINDOW *\fR. -These data structures are manipulated with routines described here and -elsewhere in the \fBncurses\fR manual pages. Among which the most basic -routines are \fBmove\fR and \fBaddch\fR. More general versions of -these routines are included with names beginning with \fBw\fR, -allowing the user to specify a window. The routines not beginning -with \fBw\fR affect \fBstdscr\fR.) -.PP -After using routines to manipulate a window, \fBrefresh\fR is called, -telling \fBcurses\fR to make the user's CRT screen look like -\fBstdscr\fR. The characters in a window are actually of type -\fBchtype\fR, (character and attribute data) so that other information -about the character may also be stored with each character. -.PP -Special windows called \fIpads\fR may also be manipulated. These are windows -which are not constrained to the size of the screen and whose contents need not -be completely displayed. See \fBcurs_pad\fR(3X) for more information. -.PP -In addition to drawing characters on the screen, video attributes and colors -may be supported, causing the characters to show up in such modes as -underlined, in reverse video, or in color on terminals that support such -display enhancements. Line drawing characters may be specified to be output. -On input, \fBcurses\fR is also able to translate arrow and function keys that -transmit escape sequences into single values. The video attributes, line -drawing characters, and input values use names, defined in \fB\fR, -such as \fBA_REVERSE\fR, \fBACS_HLINE\fR, and \fBKEY_LEFT\fR. -.PP -If the environment variables \fBLINES\fR and \fBCOLUMNS\fR are set, or if the -program is executing in a window environment, line and column information in -the environment will override information read by \fIterminfo\fR. This would -effect a program running in an AT&T 630 layer, for example, where the size of a -screen is changeable (see \fBENVIRONMENT\fR). -.PP -If the environment variable \fBTERMINFO\fR is defined, any program using -\fBcurses\fR checks for a local terminal definition before checking in the -standard place. For example, if \fBTERM\fR is set to \fBatt4424\fR, then the -compiled terminal definition is found in -.sp - \fB\*d/a/att4424\fR. -.sp -(The \fBa\fR is copied from the first letter of \fBatt4424\fR to avoid -creation of huge directories.) However, if \fBTERMINFO\fR is set to -\fB$HOME/myterms\fR, \fBcurses\fR first checks -.sp - \fB$HOME/myterms/a/att4424\fR, -.sp -and if that fails, it then checks -.sp - \fB\*d/a/att4424\fR. -.sp -This is useful for developing experimental definitions or when write -permission in \fB\*d\fR is not available. -.PP -The integer variables \fBLINES\fR and \fBCOLS\fR are defined in -\fB\fR and will be filled in by \fBinitscr\fR with the size of the -screen. The constants \fBTRUE\fR and \fBFALSE\fR have the values \fB1\fR and -\fB0\fR, respectively. -.PP -The \fBcurses\fR routines also define the \fBWINDOW *\fR variable \fBcurscr\fR -which is used for certain low-level operations like clearing and redrawing a -screen containing garbage. The \fBcurscr\fR can be used in only a few -routines. -. -.SS Routine and Argument Names -Many \fBcurses\fR routines have two or more versions. The routines prefixed -with \fBw\fR require a window argument. The routines prefixed with \fBp\fR -require a pad argument. Those without a prefix generally use \fBstdscr\fR. -.PP -The routines prefixed with \fBmv\fR require a \fIy\fR and \fIx\fR -coordinate to move to before performing the appropriate action. The -\fBmv\fR routines imply a call to \fBmove\fR before the call to the -other routine. The coordinate \fIy\fR always refers to the row (of -the window), and \fIx\fR always refers to the column. The upper -left-hand corner is always (0,0), not (1,1). -.PP -The routines prefixed with \fBmvw\fR take both a window argument and -\fIx\fR and \fIy\fR coordinates. The window argument is always -specified before the coordinates. -.PP -In each case, \fIwin\fR is the window affected, and \fIpad\fR is the -pad affected; \fIwin\fR and \fIpad\fR are always pointers to type -\fBWINDOW\fR. -.PP -Option setting routines require a Boolean flag \fIbf\fR with the value -\fBTRUE\fR or \fBFALSE\fR; \fIbf\fR is always of type \fBbool\fR. The -variables \fIch\fR and \fIattrs\fR below are always of type -\fBchtype\fR. The types \fBWINDOW\fR, \fBSCREEN\fR, \fBbool\fR, and -\fBchtype\fR are defined in \fB\fR. The type \fBTERMINAL\fR -is defined in \fB\fR. All other arguments are integers. -.SS Routine Name Index -The following table lists each \fBcurses\fR routine and the name of -the manual page on which it is described. Routines flagged with `*' -are ncurses-specific, not described by XPG4 or present in SVr4. -.PP -.TS -center tab(/); -l l -l l . -\fBcurses\fR Routine Name/Manual Page Name -= -COLOR_PAIR/\fBcurs_color\fR(3X) -PAIR_NUMBER/\fBcurs_attr\fR(3X) -_nc_tracebits/\fBcurs_trace\fR(3X)* -_traceattr/\fBcurs_trace\fR(3X)* -_traceattr2/\fBcurs_trace\fR(3X)* -_tracechar/\fBcurs_trace\fR(3X)* -_tracechtype/\fBcurs_trace\fR(3X)* -_tracechtype2/\fBcurs_trace\fR(3X)* -_tracedump/\fBcurs_trace\fR(3X)* -_tracef/\fBcurs_trace\fR(3X)* -_tracemouse/\fBcurs_trace\fR(3X)* -add_wch/\fBcurs_add_wch\fR(3X) -add_wchnstr/\fBcurs_add_wchstr\fR(3X) -add_wchstr/\fBcurs_add_wchstr\fR(3X) -addch/\fBcurs_addch\fR(3X) -addchnstr/\fBcurs_addchstr\fR(3X) -addchstr/\fBcurs_addchstr\fR(3X) -addnstr/\fBcurs_addstr\fR(3X) -addnwstr/\fBcurs_addwstr\fR(3X) -addstr/\fBcurs_addstr\fR(3X) -addwstr/\fBcurs_addwstr\fR(3X) -assume_default_colors/\fBdefault_colors\fR(3X)* -attr_get/\fBcurs_attr\fR(3X) -attr_off/\fBcurs_attr\fR(3X) -attr_on/\fBcurs_attr\fR(3X) -attr_set/\fBcurs_attr\fR(3X) -attroff/\fBcurs_attr\fR(3X) -attron/\fBcurs_attr\fR(3X) -attrset/\fBcurs_attr\fR(3X) -baudrate/\fBcurs_termattrs\fR(3X) -beep/\fBcurs_beep\fR(3X) -bkgd/\fBcurs_bkgd\fR(3X) -bkgdset/\fBcurs_bkgd\fR(3X) -bkgrnd/\fBcurs_bkgrnd\fR(3X) -bkgrndset/\fBcurs_bkgrnd\fR(3X) -border/\fBcurs_border\fR(3X) -border_set/\fBcurs_border_set\fR(3X) -box/\fBcurs_border\fR(3X) -box_set/\fBcurs_border_set\fR(3X) -can_change_color/\fBcurs_color\fR(3X) -cbreak/\fBcurs_inopts\fR(3X) -chgat/\fBcurs_attr\fR(3X) -clear/\fBcurs_clear\fR(3X) -clearok/\fBcurs_outopts\fR(3X) -clrtobot/\fBcurs_clear\fR(3X) -clrtoeol/\fBcurs_clear\fR(3X) -color_content/\fBcurs_color\fR(3X) -color_set/\fBcurs_attr\fR(3X) -copywin/\fBcurs_overlay\fR(3X) -curs_set/\fBcurs_kernel\fR(3X) -curses_version/\fBcurs_extend\fR(3X)* -def_prog_mode/\fBcurs_kernel\fR(3X) -def_shell_mode/\fBcurs_kernel\fR(3X) -define_key/\fBdefine_key\fR(3X)* -del_curterm/\fBcurs_terminfo\fR(3X) -delay_output/\fBcurs_util\fR(3X) -delch/\fBcurs_delch\fR(3X) -deleteln/\fBcurs_deleteln\fR(3X) -delscreen/\fBcurs_initscr\fR(3X) -delwin/\fBcurs_window\fR(3X) -derwin/\fBcurs_window\fR(3X) -doupdate/\fBcurs_refresh\fR(3X) -dupwin/\fBcurs_window\fR(3X) -echo/\fBcurs_inopts\fR(3X) -echo_wchar/\fBcurs_add_wch\fR(3X) -echochar/\fBcurs_addch\fR(3X) -endwin/\fBcurs_initscr\fR(3X) -erase/\fBcurs_clear\fR(3X) -erasechar/\fBcurs_termattrs\fR(3X) -erasewchar/\fBcurs_termattrs\fR(3X) -filter/\fBcurs_util\fR(3X) -flash/\fBcurs_beep\fR(3X) -flushinp/\fBcurs_util\fR(3X) -get_wch/\fBcurs_get_wch\fR(3X) -get_wstr/\fBcurs_get_wstr\fR(3X) -getbegyx/\fBcurs_getyx\fR(3X) -getbkgd/\fBcurs_bkgd\fR(3X) -getbkgrnd/\fBcurs_bkgrnd\fR(3X) -getcchar/\fBcurs_getcchar\fR(3X) -getch/\fBcurs_getch\fR(3X) -getmaxyx/\fBcurs_getyx\fR(3X) -getmouse/\fBcurs_mouse\fR(3X)* -getn_wstr/\fBcurs_get_wstr\fR(3X) -getnstr/\fBcurs_getstr\fR(3X) -getparyx/\fBcurs_getyx\fR(3X) -getstr/\fBcurs_getstr\fR(3X) -getsyx/\fBcurs_kernel\fR(3X) -getwin/\fBcurs_util\fR(3X) -getyx/\fBcurs_getyx\fR(3X) -halfdelay/\fBcurs_inopts\fR(3X) -has_colors/\fBcurs_color\fR(3X) -has_ic/\fBcurs_termattrs\fR(3X) -has_il/\fBcurs_termattrs\fR(3X) -has_key/\fBcurs_getch\fR(3X)* -hline/\fBcurs_border\fR(3X) -hline_set/\fBcurs_border_set\fR(3X) -idcok/\fBcurs_outopts\fR(3X) -idlok/\fBcurs_outopts\fR(3X) -immedok/\fBcurs_outopts\fR(3X) -in_wch/\fBcurs_in_wch\fR(3X) -in_wchnstr/\fBcurs_in_wchstr\fR(3X) -in_wchstr/\fBcurs_in_wchstr\fR(3X) -inch/\fBcurs_inch\fR(3X) -inchnstr/\fBcurs_inchstr\fR(3X) -inchstr/\fBcurs_inchstr\fR(3X) -init_color/\fBcurs_color\fR(3X) -init_pair/\fBcurs_color\fR(3X) -initscr/\fBcurs_initscr\fR(3X) -innstr/\fBcurs_instr\fR(3X) -innwstr/\fBcurs_inwstr\fR(3X) -ins_nwstr/\fBcurs_ins_wstr\fR(3X) -ins_wch/\fBcurs_ins_wch\fR(3X) -ins_wstr/\fBcurs_ins_wstr\fR(3X) -insch/\fBcurs_insch\fR(3X) -insdelln/\fBcurs_deleteln\fR(3X) -insertln/\fBcurs_deleteln\fR(3X) -insnstr/\fBcurs_insstr\fR(3X) -insstr/\fBcurs_insstr\fR(3X) -instr/\fBcurs_instr\fR(3X) -intrflush/\fBcurs_inopts\fR(3X) -inwstr/\fBcurs_inwstr\fR(3X) -is_linetouched/\fBcurs_touch\fR(3X) -is_wintouched/\fBcurs_touch\fR(3X) -isendwin/\fBcurs_initscr\fR(3X) -key_defined/\fBkey_defined\fR(3X)* -key_name/\fBcurs_util\fR(3X) -keybound/\fBkeybound\fR(3X)* -keyname/\fBcurs_util\fR(3X) -keyok/\fBkeyok\fR(3X)* -keypad/\fBcurs_inopts\fR(3X) -killchar/\fBcurs_termattrs\fR(3X) -killwchar/\fBcurs_termattrs\fR(3X) -leaveok/\fBcurs_outopts\fR(3X) -longname/\fBcurs_termattrs\fR(3X) -mcprint/\fBcurs_print\fR(3X)* -meta/\fBcurs_inopts\fR(3X) -mouse_trafo/\fBcurs_mouse\fR(3X)* -mouseinterval/\fBcurs_mouse\fR(3X)* -mousemask/\fBcurs_mouse\fR(3X)* -move/\fBcurs_move\fR(3X) -mvadd_wch/\fBcurs_add_wch\fR(3X) -mvadd_wchnstr/\fBcurs_add_wchstr\fR(3X) -mvadd_wchstr/\fBcurs_add_wchstr\fR(3X) -mvaddch/\fBcurs_addch\fR(3X) -mvaddchnstr/\fBcurs_addchstr\fR(3X) -mvaddchstr/\fBcurs_addchstr\fR(3X) -mvaddnstr/\fBcurs_addstr\fR(3X) -mvaddnwstr/\fBcurs_addwstr\fR(3X) -mvaddstr/\fBcurs_addstr\fR(3X) -mvaddwstr/\fBcurs_addwstr\fR(3X) -mvchgat/\fBcurs_attr\fR(3X) -mvcur/\fBcurs_terminfo\fR(3X) -mvdelch/\fBcurs_delch\fR(3X) -mvderwin/\fBcurs_window\fR(3X) -mvget_wch/\fBcurs_get_wch\fR(3X) -mvget_wstr/\fBcurs_get_wstr\fR(3X) -mvgetch/\fBcurs_getch\fR(3X) -mvgetn_wstr/\fBcurs_get_wstr\fR(3X) -mvgetnstr/\fBcurs_getstr\fR(3X) -mvgetstr/\fBcurs_getstr\fR(3X) -mvhline/\fBcurs_border\fR(3X) -mvhline_set/\fBcurs_border_set\fR(3X) -mvin_wch/\fBcurs_in_wch\fR(3X) -mvin_wchnstr/\fBcurs_in_wchstr\fR(3X) -mvin_wchstr/\fBcurs_in_wchstr\fR(3X) -mvinch/\fBcurs_inch\fR(3X) -mvinchnstr/\fBcurs_inchstr\fR(3X) -mvinchstr/\fBcurs_inchstr\fR(3X) -mvinnstr/\fBcurs_instr\fR(3X) -mvinnwstr/\fBcurs_inwstr\fR(3X) -mvins_nwstr/\fBcurs_ins_wstr\fR(3X) -mvins_wch/\fBcurs_ins_wch\fR(3X) -mvins_wstr/\fBcurs_ins_wstr\fR(3X) -mvinsch/\fBcurs_insch\fR(3X) -mvinsnstr/\fBcurs_insstr\fR(3X) -mvinsstr/\fBcurs_insstr\fR(3X) -mvinstr/\fBcurs_instr\fR(3X) -mvinwstr/\fBcurs_inwstr\fR(3X) -mvprintw/\fBcurs_printw\fR(3X) -mvscanw/\fBcurs_scanw\fR(3X) -mvvline/\fBcurs_border\fR(3X) -mvvline_set/\fBcurs_border_set\fR(3X) -mvwadd_wch/\fBcurs_add_wch\fR(3X) -mvwadd_wchnstr/\fBcurs_add_wchstr\fR(3X) -mvwadd_wchstr/\fBcurs_add_wchstr\fR(3X) -mvwaddch/\fBcurs_addch\fR(3X) -mvwaddchnstr/\fBcurs_addchstr\fR(3X) -mvwaddchstr/\fBcurs_addchstr\fR(3X) -mvwaddnstr/\fBcurs_addstr\fR(3X) -mvwaddnwstr/\fBcurs_addwstr\fR(3X) -mvwaddstr/\fBcurs_addstr\fR(3X) -mvwaddwstr/\fBcurs_addwstr\fR(3X) -mvwchgat/\fBcurs_attr\fR(3X) -mvwdelch/\fBcurs_delch\fR(3X) -mvwget_wch/\fBcurs_get_wch\fR(3X) -mvwget_wstr/\fBcurs_get_wstr\fR(3X) -mvwgetch/\fBcurs_getch\fR(3X) -mvwgetn_wstr/\fBcurs_get_wstr\fR(3X) -mvwgetnstr/\fBcurs_getstr\fR(3X) -mvwgetstr/\fBcurs_getstr\fR(3X) -mvwhline/\fBcurs_border\fR(3X) -mvwhline_set/\fBcurs_border_set\fR(3X) -mvwin/\fBcurs_window\fR(3X) -mvwin_wch/\fBcurs_in_wch\fR(3X) -mvwin_wchnstr/\fBcurs_in_wchstr\fR(3X) -mvwin_wchstr/\fBcurs_in_wchstr\fR(3X) -mvwinch/\fBcurs_inch\fR(3X) -mvwinchnstr/\fBcurs_inchstr\fR(3X) -mvwinchstr/\fBcurs_inchstr\fR(3X) -mvwinnstr/\fBcurs_instr\fR(3X) -mvwinnwstr/\fBcurs_inwstr\fR(3X) -mvwins_nwstr/\fBcurs_ins_wstr\fR(3X) -mvwins_wch/\fBcurs_ins_wch\fR(3X) -mvwins_wstr/\fBcurs_ins_wstr\fR(3X) -mvwinsch/\fBcurs_insch\fR(3X) -mvwinsnstr/\fBcurs_insstr\fR(3X) -mvwinsstr/\fBcurs_insstr\fR(3X) -mvwinstr/\fBcurs_instr\fR(3X) -mvwinwstr/\fBcurs_inwstr\fR(3X) -mvwprintw/\fBcurs_printw\fR(3X) -mvwscanw/\fBcurs_scanw\fR(3X) -mvwvline/\fBcurs_border\fR(3X) -mvwvline_set/\fBcurs_border_set\fR(3X) -napms/\fBcurs_kernel\fR(3X) -newpad/\fBcurs_pad\fR(3X) -newterm/\fBcurs_initscr\fR(3X) -newwin/\fBcurs_window\fR(3X) -nl/\fBcurs_outopts\fR(3X) -nocbreak/\fBcurs_inopts\fR(3X) -nodelay/\fBcurs_inopts\fR(3X) -noecho/\fBcurs_inopts\fR(3X) -nonl/\fBcurs_outopts\fR(3X) -noqiflush/\fBcurs_inopts\fR(3X) -noraw/\fBcurs_inopts\fR(3X) -notimeout/\fBcurs_inopts\fR(3X) -overlay/\fBcurs_overlay\fR(3X) -overwrite/\fBcurs_overlay\fR(3X) -pair_content/\fBcurs_color\fR(3X) -pechochar/\fBcurs_pad\fR(3X) -pnoutrefresh/\fBcurs_pad\fR(3X) -prefresh/\fBcurs_pad\fR(3X) -printw/\fBcurs_printw\fR(3X) -putp/\fBcurs_terminfo\fR(3X) -putwin/\fBcurs_util\fR(3X) -qiflush/\fBcurs_inopts\fR(3X) -raw/\fBcurs_inopts\fR(3X) -redrawwin/\fBcurs_refresh\fR(3X) -refresh/\fBcurs_refresh\fR(3X) -reset_prog_mode/\fBcurs_kernel\fR(3X) -reset_shell_mode/\fBcurs_kernel\fR(3X) -resetty/\fBcurs_kernel\fR(3X) -resizeterm/\fBresizeterm\fR(3X)* -restartterm/\fBcurs_terminfo\fR(3X) -ripoffline/\fBcurs_kernel\fR(3X) -savetty/\fBcurs_kernel\fR(3X) -scanw/\fBcurs_scanw\fR(3X) -scr_dump/\fBcurs_scr_dump\fR(3X) -scr_init/\fBcurs_scr_dump\fR(3X) -scr_restore/\fBcurs_scr_dump\fR(3X) -scr_set/\fBcurs_scr_dump\fR(3X) -scrl/\fBcurs_scroll\fR(3X) -scroll/\fBcurs_scroll\fR(3X) -scrollok/\fBcurs_outopts\fR(3X) -set_curterm/\fBcurs_terminfo\fR(3X) -set_term/\fBcurs_initscr\fR(3X) -setcchar/\fBcurs_getcchar\fR(3X) -setscrreg/\fBcurs_outopts\fR(3X) -setsyx/\fBcurs_kernel\fR(3X) -setterm/\fBcurs_terminfo\fR(3X) -setupterm/\fBcurs_terminfo\fR(3X) -slk_attr/\fBcurs_slk\fR(3X)* -slk_attr_off/\fBcurs_slk\fR(3X) -slk_attr_on/\fBcurs_slk\fR(3X) -slk_attr_set/\fBcurs_slk\fR(3X) -slk_attroff/\fBcurs_slk\fR(3X) -slk_attron/\fBcurs_slk\fR(3X) -slk_attrset/\fBcurs_slk\fR(3X) -slk_clear/\fBcurs_slk\fR(3X) -slk_color/\fBcurs_slk\fR(3X) -slk_init/\fBcurs_slk\fR(3X) -slk_label/\fBcurs_slk\fR(3X) -slk_noutrefresh/\fBcurs_slk\fR(3X) -slk_refresh/\fBcurs_slk\fR(3X) -slk_restore/\fBcurs_slk\fR(3X) -slk_set/\fBcurs_slk\fR(3X) -slk_touch/\fBcurs_slk\fR(3X) -standend/\fBcurs_attr\fR(3X) -standout/\fBcurs_attr\fR(3X) -start_color/\fBcurs_color\fR(3X) -subpad/\fBcurs_pad\fR(3X) -subwin/\fBcurs_window\fR(3X) -syncok/\fBcurs_window\fR(3X) -term_attrs/\fBcurs_termattrs\fR(3X) -termattrs/\fBcurs_termattrs\fR(3X) -termname/\fBcurs_termattrs\fR(3X) -tgetent/\fBcurs_termcap\fR(3X) -tgetflag/\fBcurs_termcap\fR(3X) -tgetnum/\fBcurs_termcap\fR(3X) -tgetstr/\fBcurs_termcap\fR(3X) -tgoto/\fBcurs_termcap\fR(3X) -tigetflag/\fBcurs_terminfo\fR(3X) -tigetnum/\fBcurs_terminfo\fR(3X) -tigetstr/\fBcurs_terminfo\fR(3X) -timeout/\fBcurs_inopts\fR(3X) -touchline/\fBcurs_touch\fR(3X) -touchwin/\fBcurs_touch\fR(3X) -tparm/\fBcurs_terminfo\fR(3X) -tputs/\fBcurs_termcap\fR(3X) -tputs/\fBcurs_terminfo\fR(3X) -trace/\fBcurs_trace\fR(3X)* -typeahead/\fBcurs_inopts\fR(3X) -unctrl/\fBcurs_util\fR(3X) -unget_wch/\fBcurs_get_wch\fR(3X) -ungetch/\fBcurs_getch\fR(3X) -ungetmouse/\fBcurs_mouse\fR(3X)* -untouchwin/\fBcurs_touch\fR(3X) -use_default_colors/\fBdefault_colors\fR(3X)* -use_env/\fBcurs_util\fR(3X) -use_extended_names/\fBcurs_extend\fR(3X)* -vid_attr/\fBcurs_terminfo\fR(3X) -vid_puts/\fBcurs_terminfo\fR(3X) -vidattr/\fBcurs_terminfo\fR(3X) -vidputs/\fBcurs_terminfo\fR(3X) -vline/\fBcurs_border\fR(3X) -vline_set/\fBcurs_border_set\fR(3X) -vw_printw/\fBcurs_printw\fR(3X) -vw_scanw/\fBcurs_scanw\fR(3X) -vwprintw/\fBcurs_printw\fR(3X) -vwscanw/\fBcurs_scanw\fR(3X) -wadd_wch/\fBcurs_add_wch\fR(3X) -wadd_wchnstr/\fBcurs_add_wchstr\fR(3X) -wadd_wchstr/\fBcurs_add_wchstr\fR(3X) -waddch/\fBcurs_addch\fR(3X) -waddchnstr/\fBcurs_addchstr\fR(3X) -waddchstr/\fBcurs_addchstr\fR(3X) -waddnstr/\fBcurs_addstr\fR(3X) -waddnwstr/\fBcurs_addwstr\fR(3X) -waddstr/\fBcurs_addstr\fR(3X) -waddwstr/\fBcurs_addwstr\fR(3X) -wattr_get/\fBcurs_attr\fR(3X) -wattr_off/\fBcurs_attr\fR(3X) -wattr_on/\fBcurs_attr\fR(3X) -wattr_set/\fBcurs_attr\fR(3X) -wattroff/\fBcurs_attr\fR(3X) -wattron/\fBcurs_attr\fR(3X) -wattrset/\fBcurs_attr\fR(3X) -wbkgd/\fBcurs_bkgd\fR(3X) -wbkgdset/\fBcurs_bkgd\fR(3X) -wbkgrnd/\fBcurs_bkgrnd\fR(3X) -wbkgrndset/\fBcurs_bkgrnd\fR(3X) -wborder/\fBcurs_border\fR(3X) -wborder_set/\fBcurs_border_set\fR(3X) -wchgat/\fBcurs_attr\fR(3X) -wclear/\fBcurs_clear\fR(3X) -wclrtobot/\fBcurs_clear\fR(3X) -wclrtoeol/\fBcurs_clear\fR(3X) -wcolor_set/\fBcurs_attr\fR(3X) -wcursyncup/\fBcurs_window\fR(3X) -wdelch/\fBcurs_delch\fR(3X) -wdeleteln/\fBcurs_deleteln\fR(3X) -wecho_wchar/\fBcurs_add_wch\fR(3X) -wechochar/\fBcurs_addch\fR(3X) -wenclose/\fBcurs_mouse\fR(3X)* -werase/\fBcurs_clear\fR(3X) -wget_wch/\fBcurs_get_wch\fR(3X) -wget_wstr/\fBcurs_get_wstr\fR(3X) -wgetbkgrnd/\fBcurs_bkgrnd\fR(3X) -wgetch/\fBcurs_getch\fR(3X) -wgetn_wstr/\fBcurs_get_wstr\fR(3X) -wgetnstr/\fBcurs_getstr\fR(3X) -wgetstr/\fBcurs_getstr\fR(3X) -whline/\fBcurs_border\fR(3X) -whline_set/\fBcurs_border_set\fR(3X) -win_wch/\fBcurs_in_wch\fR(3X) -win_wchnstr/\fBcurs_in_wchstr\fR(3X) -win_wchstr/\fBcurs_in_wchstr\fR(3X) -winch/\fBcurs_inch\fR(3X) -winchnstr/\fBcurs_inchstr\fR(3X) -winchstr/\fBcurs_inchstr\fR(3X) -winnstr/\fBcurs_instr\fR(3X) -winnwstr/\fBcurs_inwstr\fR(3X) -wins_nwstr/\fBcurs_ins_wstr\fR(3X) -wins_wch/\fBcurs_ins_wch\fR(3X) -wins_wstr/\fBcurs_ins_wstr\fR(3X) -winsch/\fBcurs_insch\fR(3X) -winsdelln/\fBcurs_deleteln\fR(3X) -winsertln/\fBcurs_deleteln\fR(3X) -winsnstr/\fBcurs_insstr\fR(3X) -winsstr/\fBcurs_insstr\fR(3X) -winstr/\fBcurs_instr\fR(3X) -winwstr/\fBcurs_inwstr\fR(3X) -wmouse_trafo/\fBcurs_mouse\fR(3X)* -wmove/\fBcurs_move\fR(3X) -wnoutrefresh/\fBcurs_refresh\fR(3X) -wprintw/\fBcurs_printw\fR(3X) -wredrawln/\fBcurs_refresh\fR(3X) -wrefresh/\fBcurs_refresh\fR(3X) -wresize/\fBwresize\fR(3X)* -wscanw/\fBcurs_scanw\fR(3X) -wscrl/\fBcurs_scroll\fR(3X) -wsetscrreg/\fBcurs_outopts\fR(3X) -wstandend/\fBcurs_attr\fR(3X) -wstandout/\fBcurs_attr\fR(3X) -wsyncdown/\fBcurs_window\fR(3X) -wsyncup/\fBcurs_window\fR(3X) -wtimeout/\fBcurs_inopts\fR(3X) -wtouchln/\fBcurs_touch\fR(3X) -wunctrl/\fBcurs_util\fR(3X) -wvline/\fBcurs_border\fR(3X) -wvline_set/\fBcurs_border_set\fR(3X) -.TE -.SH RETURN VALUE -Routines that return an integer return \fBERR\fR upon failure and an -integer value other than \fBERR\fR upon successful completion, unless -otherwise noted in the routine descriptions. -.PP -All macros return the value of the \fBw\fR version, except \fBsetscrreg\fR, -\fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and \fBgetmaxyx\fR. The return -values of \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBgetyx\fR, \fBgetbegyx\fR, and -\fBgetmaxyx\fR are undefined (i.e., these should not be used as the -right-hand side of assignment statements). -.PP -Routines that return pointers return \fBNULL\fR on error. -.SH ENVIRONMENT -The following environment symbols are useful for customizing the -runtime behavior of the \fBncurses\fR library. The most important -ones have been already discussed in detail. -.TP 5 -BAUDRATE -The debugging library checks this environment symbol when the application -has redirected output to a file. -The symbol's numeric value is used for the baudrate. -If no value is found, \fBncurses\fR uses 9600. -This allows testers to construct repeatable test-cases -that take into account costs that depend on baudrate. -.TP 5 -CC -When set, change occurrences of the command_character -(i.e., the \fBcmdch\fP capability) -of the loaded terminfo entries to the value of this symbol. -Very few terminfo entries provide this feature. -.TP 5 -COLUMNS -Specify the width of the screen in characters. -Applications running in a windowing environment usually are able to -obtain the width of the window in which they are executing. -If neither the $COLUMNS value nor the terminal's screen size is available, -\fBncurses\fR uses the size which may be specified in the terminfo database -(i.e., the \fBcols\fR capability). -.IP -It is important that your application use a correct size for the screen. -However, this is not always possible because your application may be -running on a host which does not honor NAWS (Negotiations About Window -Size), or because you are temporarily running as another user. -.IP -Either COLUMNS or LINES symbols may be specified independently. -This is mainly useful to circumvent legacy misfeatures of terminal descriptions, -e.g., xterm which commonly specifies a 65 line screen. -For best results, \fBlines\fR and \fBcols\fR should not be specified in -a terminal description for terminals which are run as emulations. -.IP -Use the \fBuse_env\fR function to disable this feature. -.TP 5 -ESCDELAY -Specifies the total time, in milliseconds, for which ncurses will -await a character sequence, e.g., a function key. -The default value, 1000 milliseconds, is enough for most uses. -However, it is made a variable to accommodate unusual applications. -.IP -The most common instance where you may wish to change this value -is to work with slow hosts, e.g., running on a network. -If the host cannot read characters rapidly enough, it will have the same -effect as if the terminal did not send characters rapidly enough. -The library will still see a timeout. -.IP -Note that xterm mouse events are built up from character sequences -received from the xterm. -If your application makes heavy use of multiple-clicking, you may -wish to lengthen this default value because the timeout applies -to the composed multi-click event as well as the individual clicks. -.IP -In addition to the environment variable, -this implementation provides a global variable with the same name. -Portable applications should not rely upon the presence of ESCDELAY -in either form, -but setting the environment variable rather than the global variable -does not create problems when compiling an application. -.TP 5 -HOME -Tells \fBncurses\fR where your home directory is. -That is where it may read and write auxiliary terminal descriptions: -.IP -$HOME/.termcap -.br -$HOME/.terminfo -.TP 5 -LINES -Like COLUMNS, specify the height of the screen in characters. -See COLUMNS for a detailed description. -.TP 5 -MOUSE_BUTTONS_123 -This applies only to the OS/2 EMX port. -It specifies the order of buttons on the mouse. -OS/2 numbers a 3-button mouse inconsistently from other -platforms: -.sp -1 = left -.br -2 = right -.br -3 = middle. -.sp -This symbol lets you customize the mouse. -The symbol must be three numeric digits 1-3 in any order, e.g., 123 or 321. -If it is not specified, \fBncurses\fR uses 132. -.TP 5 -NCURSES_ASSUMED_COLORS -Override the compiled-in assumption that the -terminal's default colors are white-on-black -(see \fBassume_default_colors\fR(3X)). -You may set the foreground and background color values with this environment -variable by proving a 2-element list: foreground,background. -For example, to tell ncurses to not assume anything -about the colors, set this to "-1,-1". -To make it green-on-black, set it to "2,0". -Any positive value from zero to the terminfo \fBmax_colors\fR value is allowed. -.TP 5 -NCURSES_NO_PADDING -Most of the terminal descriptions in the terminfo database are written -for real "hardware" terminals. -Many people use terminal emulators -which run in a windowing environment and use curses-based applications. -Terminal emulators can duplicate -all of the important aspects of a hardware terminal, but they do not -have the same limitations. -The chief limitation of a hardware terminal from the standpoint -of your application is the management of dataflow, i.e., timing. -Unless a hardware terminal is interfaced into a terminal concentrator -(which does flow control), -it (or your application) must manage dataflow, preventing overruns. -The cheapest solution (no hardware cost) -is for your program to do this by pausing after -operations that the terminal does slowly, such as clearing the display. -.IP -As a result, many terminal descriptions (including the vt100) -have delay times embedded. You may wish to use these descriptions, -but not want to pay the performance penalty. -.IP -Set the NCURSES_NO_PADDING symbol to disable all but mandatory -padding. Mandatory padding is used as a part of special control -sequences such as \fIflash\fR. -.TP 5 -NCURSES_NO_SETBUF -Normally \fBncurses\fR enables buffered output during terminal initialization. -This is done (as in SVr4 curses) for performance reasons. -For testing purposes, both of \fBncurses\fR and certain applications, -this feature is made optional. Setting the NCURSES_NO_SETBUF variable -disables output buffering, leaving the output in the original (usually -line buffered) mode. -.TP 5 -NCURSES_TRACE -During initialization, the \fBncurses\fR debugging library -checks the NCURSES_TRACE symbol. -If it is defined, to a numeric value, \fBncurses\fR calls the \fBtrace\fR -function, using that value as the argument. -.IP -The argument values, which are defined in \fBcurses.h\fR, provide several -types of information. -When running with traces enabled, your application will write the -file \fBtrace\fR to the current directory. -.TP 5 -TERM -Denotes your terminal type. -Each terminal type is distinct, though many are similar. -.TP 5 -TERMCAP -If the \fBncurses\fR library has been configured with \fItermcap\fR -support, \fBncurses\fR will check for a terminal's description in -termcap form if it is not available in the terminfo database. -.IP -The TERMCAP symbol contains either a terminal description (with -newlines stripped out), -or a file name telling where the information denoted by the TERM symbol exists. -In either case, setting it directs \fBncurses\fR to ignore -the usual place for this information, e.g., /etc/termcap. -.TP 5 -TERMINFO -Overrides the directory in which \fBncurses\fR searches for your terminal -description. -This is the simplest, but not the only way to change the list of directories. -The complete list of directories in order follows: -.RS -.TP 3 -- -the last directory to which \fBncurses\fR wrote, if any, is searched first -.TP 3 -- -the directory specified by the TERMINFO symbol -.TP 3 -- -$HOME/.terminfo -.TP 3 -- -directories listed in the TERMINFO_DIRS symbol -.TP 3 -- -one or more directories whose names are configured and compiled into the -ncurses library, e.g., -@TERMINFO@ -.RE -.TP 5 -TERMINFO_DIRS -Specifies a list of directories to search for terminal descriptions. -The list is separated by colons (i.e., ":") on Unix, semicolons on OS/2 EMX. -All of the terminal descriptions are in terminfo form, which makes -a subdirectory named for the first letter of the terminal names therein. -.TP 5 -TERMPATH -If TERMCAP does not hold a file name then \fBncurses\fR checks -the TERMPATH symbol. -This is a list of filenames separated by spaces or colons (i.e., ":") on Unix, semicolons on OS/2 EMX. -If the TERMPATH symbol is not set, \fBncurses\fR looks in the files -/etc/termcap, /usr/share/misc/termcap and $HOME/.termcap, in that order. -.PP -The library may be configured to disregard the following variables when the -current user is the superuser (root), or if the application uses setuid or -setgid permissions: -$TERMINFO, $TERMINFO_DIRS, $TERMPATH, as well as $HOME. -.SH FILES -.TP 5 -@DATADIR@/tabset -directory containing initialization files for the terminal capability database -@TERMINFO@ -terminal capability database -.SH SEE ALSO -\fBterminfo\fR(\*n) and related pages whose names begin "curs_" for detailed routine -descriptions. -.SH EXTENSIONS -The \fBncurses\fR library can be compiled with an option (\fB-DUSE_GETCAP\fR) -that falls back to the old-style /etc/termcap file if the terminal setup code -cannot find a terminfo entry corresponding to \fBTERM\fR. Use of this feature -is not recommended, as it essentially includes an entire termcap compiler in -the \fBncurses\fR startup code, at significant cost in core and startup cycles. -.PP -The \fBncurses\fR library includes facilities for capturing mouse events on -certain terminals (including xterm). See the \fBcurs_mouse\fR(3X) -manual page for details. -.PP -The \fBncurses\fR library includes facilities for responding to window -resizing events, e.g., when running in an xterm. -See the \fBresizeterm\fR(3X) -and \fBwresize\fR(3X) manual pages for details. -In addition, the library may be configured with a SIGWINCH handler. -.PP -The \fBncurses\fR library extends the fixed set of function key capabilities -of terminals by allowing the application designer to define additional -key sequences at runtime. -See the \fBdefine_key\fR(3X) -\fBkey_defined\fR(3X), -and \fBkeyok\fR(3X) manual pages for details. -.PP -The \fBncurses\fR library can exploit the capabilities of terminals which -implement the ISO-6429 SGR 39 and SGR 49 controls, which allow an application -to reset the terminal to its original foreground and background colors. -From the users' perspective, the application is able to draw colored -text on a background whose color is set independently, providing better -control over color contrasts. -See the \fBdefault_colors\fR(3X) manual page for details. -.PP -The \fBncurses\fR library includes a function for directing application output -to a printer attached to the terminal device. See the \fBcurs_print\fR(3X) -manual page for details. -.SH PORTABILITY -The \fBncurses\fR library is intended to be BASE-level conformant with the XSI -Curses standard. The EXTENDED XSI Curses functionality -(including color support) is supported. -.PP -A small number of local differences (that is, individual differences between -the XSI Curses and \fBncurses\fR calls) are described in \fBPORTABILITY\fR -sections of the library man pages. -.PP -The routine \fBhas_key\fR is not part of XPG4, nor is it present in SVr4. See -the \fBcurs_getch\fR(3X) manual page for details. -.PP -The routine \fBslk_attr\fR is not part of XPG4, nor is it present in SVr4. See -the \fBcurs_slk\fR(3X) manual page for details. -.PP -The routines \fBgetmouse\fR, \fBmousemask\fR, \fBungetmouse\fR, -\fBmouseinterval\fR, and \fBwenclose\fR relating to mouse interfacing are not -part of XPG4, nor are they present in SVr4. See the \fBcurs_mouse\fR(3X) -manual page for details. -.PP -The routine \fBmcprint\fR was not present in any previous curses -implementation. See the \fBcurs_print\fR(3X) manual page for details. -.PP -The routine \fBwresize\fR is not part of XPG4, nor is it present in SVr4. See -the \fBwresize\fR(3X) manual page for details. -.PP -In historic curses versions, delays embedded in the capabilities \fBcr\fR, -\fBind\fR, \fBcub1\fR, \fBff\fR and \fBtab\fR activated corresponding delay -bits in the UNIX tty driver. In this implementation, all padding is done by -NUL sends. This method is slightly more expensive, but narrows the interface -to the UNIX kernel significantly and increases the package's portability -correspondingly. -.SH NOTES -The header file \fB\fR automatically includes the header files -\fB\fR and \fB\fR. -.PP -If standard output from a \fBncurses\fR program is re-directed to something -which is not a tty, screen updates will be directed to standard error. This -was an undocumented feature of AT&T System V Release 3 curses. -.SH AUTHORS -Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. -Based on pcurses by Pavel Curtis. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/panel.3x b/Build/source/libs/ncurses/man/panel.3x deleted file mode 100644 index 800ad32ee11..00000000000 --- a/Build/source/libs/ncurses/man/panel.3x +++ /dev/null @@ -1,182 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: panel.3x,v 1.11 2003/05/17 22:44:09 jmc Exp $ -.TH panel 3X "" -.ds n 5 -.ds d @TERMINFO@ -.SH NAME -panel - panel stack extension for curses -.SH SYNOPSIS -\fB#include \fR -.P -\fBcc [flags] sourcefiles -lpanel -lncurses\fR -.P -\fBPANEL *new_panel(WINDOW *win)\fR -.br -\fBint bottom_panel(PANEL *pan)\fR -.br -\fBint top_panel(PANEL *pan)\fR -.br -\fBint show_panel(PANEL *pan)\fR -.br -\fBvoid update_panels();\fR -.br -\fBint hide_panel(PANEL *pan)\fR -.br -\fBWINDOW *panel_window(const PANEL *pan)\fR -.br -\fBint replace_panel(PANEL *pan, WINDOW *window)\fR -.br -\fBint move_panel(PANEL *pan, int starty, int startx)\fR -.br -\fBint panel_hidden(const PANEL *pan)\fR -.br -\fBPANEL *panel_above(const PANEL *pan)\fR -.br -\fBPANEL *panel_below(const PANEL *pan)\fR -.br -\fBint set_panel_userptr(PANEL *pan, const void *ptr)\fR -.br -\fBconst void *panel_userptr(const PANEL *pan)\fR -.br -\fBint del_panel(PANEL *pan)\fR -.br -.SH DESCRIPTION -Panels are \fBcurses\fR(3X) windows with the added feature of -depth. Panel functions allow the use of stacked windows and ensure -the proper portions of each window and the curses \fBstdscr\fR window are -hidden or displayed when panels are added, moved, modified or removed. -The set of currently visible panels is the stack of panels. The -\fBstdscr\fR window is beneath all panels, and is not considered part -of the stack. -.P -A window is associated with every panel. The panel routines enable -you to create, move, hide, and show panels, as well as position a -panel at any desired location in the stack. -.P -Panel routines are a functional layer added to \fBcurses\fR(3X), make only -high-level curses calls, and work anywhere terminfo curses does. -.SH FUNCTIONS -.TP -\fBnew_panel(win)\fR -allocates a \fBPANEL\fR structure, associates it with -\fBwin\fR, places the panel on the top of the stack (causes it -to be displayed above any other panel) and returns a -pointer to the new panel. -.TP -\fBvoid update_panels()\fR -refreshes the virtual screen to reflect the relations between the -panels in the stack, but does not call doupdate() to refresh the -physical screen. Use this function and not wrefresh or wnoutrefresh. -update_panels() may be called more than once before a call to -doupdate(), but doupdate() is the function responsible for updating -the physical screen. -.TP -\fBdel_panel(pan)\fR -removes the given panel from the stack and deallocates the -\fBPANEL\fR structure (but not its associated window). -.TP -\fBhide_panel(pan)\fR -removes the given panel from the panel stack and thus hides it from -view. The \fBPANEL\fR structure is not lost, merely removed from the stack. -.TP -\fBshow_panel(pan)\fR -makes a hidden panel visible by placing it on top of the panels in the -panel stack. See COMPATIBILITY below. -.TP -\fBtop_panel(pan)\fR -puts the given visible panel on top of all panels in the stack. See -COMPATIBILITY below. -.TP -\fBbottom_panel(pan)\fR -puts panel at the bottom of all panels. -.TP -\fBmove_panel(pan,starty,startx)\fR -moves the given panel window so that its upper-left corner is at -\fBstarty\fR, \fBstartx\fR. It does not change the position of the -panel in the stack. Be sure to use this function, not \fBmvwin()\fR, -to move a panel window. -.TP -\fBreplace_panel(pan,window)\fR -replaces the current window of panel with \fBwindow\fR (useful, for -example if you want to resize a panel; if you're using \fBncurses\fR, -you can call \fBreplace_panel\fR on the output of \fBwresize\fR(3X)). -It does not change the position of the panel in the stack. -.TP -\fBpanel_above(pan)\fR -returns a pointer to the panel above pan. If the panel argument is -\fB(PANEL *)0\fR, it returns a pointer to the bottom panel in the stack. -.TP -\fBpanel_below(pan)\fR -returns a pointer to the panel just below pan. If the panel argument -is \fB(PANEL *)0\fR, it returns a pointer to the top panel in the stack. -.TP -\fBset_panel_userptr(pan,ptr)\fR -sets the panel's user pointer. -.TP -\fBpanel_userptr(pan)\fR -returns the user pointer for a given panel. -.TP -\fBpanel_window(pan)\fR -returns a pointer to the window of the given panel. -.SH DIAGNOSTICS -Each routine that returns a pointer returns \fBNULL\fR if an error -occurs. Each routine that returns an int value returns \fBOK\fR if it -executes successfully and \fBERR\fR if not. -.SH COMPATIBILITY -Reasonable care has been taken to ensure compatibility -with the native panel facility introduced in SVr3.2 (inspection of -the SVr4 manual pages suggests the programming interface is unchanged). -The \fBPANEL\fR data structures are merely similar. The programmer -is cautioned not to directly use \fBPANEL\fR fields. -.P -The functions \fBshow_panel()\fR and \fBtop_panel()\fR are identical -in this implementation, and work equally well with displayed or hidden -panels. In the native System V implementation, \fBshow_panel()\fR is -intended for making a hidden panel visible (at the top of the stack) -and \fBtop_panel()\fR is intended for making an already-visible panel -move to the top of the stack. You are cautioned to use the correct -function to ensure compatibility with native panel libraries. -.SH NOTE -In your library list, libpanel.a should be before libncurses.a; that is, -you want to say `-lpanel -lncurses', not the other way around (which would -give you a link error using GNU \fBld\fR(1) and some other linkers). -.SH FILES -.P -panel.h -interface for the panels library -.P -libpanel.a -the panels library itself -.SH SEE ALSO -\fBcurses\fR(3X) -.SH AUTHOR -Originally written by Warren Tucker , -primarily to assist in porting u386mon to systems without a native -panels library. Repackaged for ncurses by Zeyd ben-Halim. diff --git a/Build/source/libs/ncurses/man/resizeterm.3x b/Build/source/libs/ncurses/man/resizeterm.3x deleted file mode 100644 index da5d84df748..00000000000 --- a/Build/source/libs/ncurses/man/resizeterm.3x +++ /dev/null @@ -1,92 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" Author: Thomas E. Dickey 1996,1997,2002 -.\" -.\" $Id: resizeterm.3x,v 1.10 2003/10/25 20:41:08 tom Exp $ -.TH resizeterm 3X "" -.SH NAME -\fBis_term_resized\fR, -\fBresize_term\fR, -\fBresizeterm\fR - change the curses terminal size -.SH SYNOPSIS -\fB#include \fR - -\fBbool is_term_resized(int lines, int columns);\fR -.br -\fBint resize_term(int lines, int columns);\fR -.br -\fBint resizeterm(int lines, int columns);\fR -.SH DESCRIPTION -This is an extension to the curses library. -It provides callers with a hook into the \fBncurses\fR data to resize windows, -primarily for use by programs running in an X Window terminal (e.g., xterm). -The function \fBresizeterm\fR resizes the standard and current windows -to the specified dimensions, and adjusts other bookkeeping data used by -the \fBncurses\fR library that record the window dimensions. - -Most of the work is done by the inner function \fBresize_term\fR. -The outer function \fBresizeterm\fR adds bookkeeping for the SIGWINCH handler. -When resizing the windows, -\fBresize_term\fR blank-fills the areas that are extended. -The calling application should fill in these areas with appropriate data. -The \fBresize_term\fR function attempts to resize all windows. -However, due to the calling convention of pads, -it is not possible to resize these -without additional interaction with the application. - -A support function \fBis_term_resized\fR is provided so that applications -can check if the \fBresize_term\fR function would modify the window structures. -It returns TRUE if the windows would be modified, and FALSE otherwise. -.SH RETURN VALUE -Except as notes, these function return -the integer \fBERR\fR upon failure and \fBOK\fR on success. -They will fail if either of the dimensions are less than or equal to zero, -or if an error occurs while (re)allocating memory for the windows. -.SH NOTES -While these functions are intended to be used to support a signal handler -(i.e., for SIGWINCH), care should be taken to avoid invoking them in a -context where \fBmalloc\fR or \fBrealloc\fR may have been interrupted, -since it uses those functions. -.PP -If ncurses is configured to supply its own SIGWINCH handler, -the \fBresizeterm\fR function ungetch's a \fBKEY_RESIZE\fR which -will be read on the next call to \fBgetch\fR. -This is used to alert an application that the screen size has changed, -and that it should repaint special features such as pads that cannot -be done automatically. -.SH SEE ALSO -\fBwresize\fR(3X). -.SH AUTHOR -Thomas Dickey (from an equivalent function written in 1988 for BSD curses). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/term.5 b/Build/source/libs/ncurses/man/term.5 deleted file mode 100644 index e999b2e8c51..00000000000 --- a/Build/source/libs/ncurses/man/term.5 +++ /dev/null @@ -1,208 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: term.5,v 1.16 2004/07/05 13:16:08 tom Exp $ -.TH TERM 5 -.ds n 5 -.ds d @TERMINFO@ -.SH NAME -term \- format of compiled term file. -.SH SYNOPSIS -.B term -.SH DESCRIPTION -.PP -Compiled terminfo descriptions are placed under the directory \fB\*d\fP. -In order to avoid a linear search of a huge \s-1UNIX\s+1 system directory, a -two-level scheme is used: \fB\*d/c/name\fP -where -.I name -is the name of the terminal, and -.I c -is the first character of -.IR name . -Thus, -.I act4 -can be found in the file \fB\*d/a/act4\fP. -Synonyms for the same terminal are implemented by multiple -links to the same compiled file. -.PP -The format has been chosen so that it will be the same on all hardware. -An 8 or more bit byte is assumed, but no assumptions about byte ordering -or sign extension are made. -.PP -The compiled file is created with the -.I tic -program, and read by the routine -.IR setupterm . -The file is divided into six parts: -the header, -terminal names, -boolean flags, -numbers, -strings, -and -string table. -.PP -The header section begins the file. -This section contains six short integers in the format -described below. -These integers are -(1) the magic number (octal 0432); -(2) the size, in bytes, of the names section; -(3) the number of bytes in the boolean section; -(4) the number of short integers in the numbers section; -(5) the number of offsets (short integers) in the strings section; -(6) the size, in bytes, of the string table. -.PP -Short integers are stored in two 8-bit bytes. -The first byte contains the least significant 8 bits of the value, -and the second byte contains the most significant 8 bits. -(Thus, the value represented is 256*second+first.) -The value -1 is represented by the two bytes 0377, 0377; other negative -values are illegal. This value generally -means that the corresponding capability is missing from this terminal. -Note that this format corresponds to the hardware of the \s-1VAX\s+1 -and \s-1PDP\s+1-11 (that is, little-endian machines). -Machines where this does not correspond to the hardware must read the -integers as two bytes and compute the little-endian value. -.PP -The terminal names section comes next. -It contains the first line of the terminfo description, -listing the various names for the terminal, -separated by the `|' character. -The section is terminated with an \s-1ASCII NUL\s+1 character. -.PP -The boolean flags have one byte for each flag. -This byte is either 0 or 1 as the flag is present or absent. -The capabilities are in the same order as the file . -.PP -Between the boolean section and the number section, -a null byte will be inserted, if necessary, -to ensure that the number section begins on an even byte (this is a -relic of the PDP-11's word-addressed architecture, originally -designed in to avoid IOT traps induced by addressing a word on an -odd byte boundary). -All short integers are aligned on a short word boundary. -.PP -The numbers section is similar to the flags section. -Each capability takes up two bytes, -and is stored as a little-endian short integer. -If the value represented is -1, the capability is taken to be missing. -.PP -The strings section is also similar. -Each capability is stored as a short integer, in the format above. -A value of -1 means the capability is missing. -Otherwise, the value is taken as an offset from the beginning -of the string table. -Special characters in ^X or \ec notation are stored in their -interpreted form, not the printing representation. -Padding information $ and parameter information %x are -stored intact in uninterpreted form. -.PP -The final section is the string table. -It contains all the values of string capabilities referenced in -the string section. -Each string is null terminated. -.PP -Note that it is possible for -.I setupterm -to expect a different set of capabilities -than are actually present in the file. -Either the database may have been updated since -.I setupterm -has been recompiled -(resulting in extra unrecognized entries in the file) -or the program may have been recompiled more recently -than the database was updated -(resulting in missing entries). -The routine -.I setupterm -must be prepared for both possibilities \- -this is why the numbers and sizes are included. -Also, new capabilities must always be added at the end of the lists -of boolean, number, and string capabilities. -.PP -Despite the consistent use of little-endian for numbers and the otherwise -self-describing format, it is not wise to count on portability of binary -terminfo entries between commercial UNIX versions. The problem is that there -are at least three versions of terminfo (under HP-UX, AIX, and OSF/1) which -diverged from System V terminfo after SVr1, and have added extension -capabilities to the string table that (in the binary format) collide with -System V and XSI Curses extensions. See \fBterminfo\fR(\*n) for detailed -discussion of terminfo source compatibility issues. -.PP -As an example, here is a hex dump of the description for the Lear-Siegler -ADM-3, a popular though rather stupid early terminal: -.nf -.sp -adm3a|lsi adm3a, - am, - cols#80, lines#24, - bel=^G, clear=\032$<1>, cr=^M, cub1=^H, cud1=^J, - cuf1=^L, cup=\\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, - home=^^, ind=^J, -.sp -.ft CW -\s-20000 1a 01 10 00 02 00 03 00 82 00 31 00 61 64 6d 33 ........ ..1.adm3 -0010 61 7c 6c 73 69 20 61 64 6d 33 61 00 00 01 50 00 a|lsi ad m3a...P. -0020 ff ff 18 00 ff ff 00 00 02 00 ff ff ff ff 04 00 ........ ........ -0030 ff ff ff ff ff ff ff ff 0a 00 25 00 27 00 ff ff ........ ..%.'... -0040 29 00 ff ff ff ff 2b 00 ff ff 2d 00 ff ff ff ff ).....+. ..-..... -0050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -0060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -0070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -0080 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -0090 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -00a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -00b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -00c0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -00d0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -00e0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -00f0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -0100 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -0110 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ........ ........ -0120 ff ff ff ff ff ff 2f 00 07 00 0d 00 1a 24 3c 31 ....../. .....$<1 -0130 3e 00 1b 3d 25 70 31 25 7b 33 32 7d 25 2b 25 63 >..=%p1% {32}%+%c -0140 25 70 32 25 7b 33 32 7d 25 2b 25 63 00 0a 00 1e %p2%{32} %+%c.... -0150 00 08 00 0c 00 0b 00 0a 00 ........ .\s+2 -.ft R -.fi -.sp -.PP -Some limitations: total compiled entries cannot exceed 4096 bytes. -The name field cannot exceed 128 bytes. -.SH FILES -\*d/*/* compiled terminal capability data base -.SH SEE ALSO -\fBcurses\fR(3X), \fBterminfo\fR(\*n). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/term.7 b/Build/source/libs/ncurses/man/term.7 deleted file mode 100644 index e3be223b042..00000000000 --- a/Build/source/libs/ncurses/man/term.7 +++ /dev/null @@ -1,204 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: term.7,v 1.14 2003/05/10 20:33:49 jmc Exp $ -.TH TERM 7 -.ds n 5 -.ds d @TERMINFO@ -.SH NAME -term \- conventions for naming terminal types -.SH DESCRIPTION -.PP -The environment variable \fBTERM\fR should normally contain the type name of -the terminal, console or display-device type you are using. This information -is critical for all screen-oriented programs, including your editor and mailer. -.PP -A default \fBTERM\fR value will be set on a per-line basis by either -\fB/etc/inittab\fR (Linux and System-V-like UNIXes) or \fB/etc/ttys\fR (BSD -UNIXes). This will nearly always suffice for workstation and microcomputer -consoles. -.PP -If you use a dialup line, the type of device attached to it may vary. Older -UNIX systems pre-set a very dumb terminal type like `dumb' or `dialup' on -dialup lines. Newer ones may pre-set `vt100', reflecting the prevalence of DEC -VT100-compatible terminals and personal-computer emulators. -.PP -Modern telnets pass your \fBTERM\fR environment variable from the local side to -the remote one. There can be problems if the remote terminfo or termcap entry -for your type is not compatible with yours, but this situation is rare and -can almost always be avoided by explicitly exporting `vt100' (assuming you -are in fact using a VT100-superset console, terminal, or terminal emulator.) -.PP -In any case, you are free to override the system \fBTERM\fR setting to your -taste in your shell profile. The \fBtset\fP(1) utility may be of assistance; -you can give it a set of rules for deducing or requesting a terminal type based -on the tty device and baud rate. -.PP -Setting your own \fBTERM\fR value may also be useful if you have created a -custom entry incorporating options (such as visual bell or reverse-video) -which you wish to override the system default type for your line. -.PP -Terminal type descriptions are stored as files of capability data underneath -\*d. To browse a list of all terminal names recognized by the system, do - - toe | more - -from your shell. These capability files are in a binary format optimized for -retrieval speed (unlike the old text-based \fBtermcap\fR format they replace); -to examine an entry, you must use the \fBinfocmp\fR(1) command. Invoke it as -follows: - - infocmp \fIentry-name\fR - -where \fIentry-name\fR is the name of the type you wish to examine (and the -name of its capability file the subdirectory of \*d named for its first -letter). This command dumps a capability file in the text format described by -\fBterminfo\fR(\*n). -.PP -The first line of a \fBterminfo\fR(\*n) description gives the names by which -terminfo knows a terminal, separated by `|' (pipe-bar) characters with the last -name field terminated by a comma. The first name field is the type's -\fIprimary name\fR, and is the one to use when setting \fBTERM\fR. The last -name field (if distinct from the first) is actually a description of the -terminal type (it may contain blanks; the others must be single words). Name -fields between the first and last (if present) are aliases for the terminal, -usually historical names retained for compatibility. -.PP -There are some conventions for how to choose terminal primary names that help -keep them informative and unique. Here is a step-by-step guide to naming -terminals that also explains how to parse them: -.PP -First, choose a root name. The root will consist of a lower-case letter -followed by up to seven lower-case letters or digits. You need to avoid using -punctuation characters in root names, because they are used and interpreted as -filenames and shell meta-characters (such as !, $, *, ?, etc.) embedded in them -may cause odd and unhelpful behavior. The slash (/), or any other character -that may be interpreted by anyone's file system (\e, $, [, ]), is especially -dangerous (terminfo is platform-independent, and choosing names with special -characters could someday make life difficult for users of a future port). The -dot (.) character is relatively safe as long as there is at most one per root -name; some historical terminfo names use it. -.PP -The root name for a terminal or workstation console type should almost always -begin with a vendor prefix (such as \fBhp\fR for Hewlett-Packard, \fBwy\fR for -Wyse, or \fBatt\fR for AT&T terminals), or a common name of the terminal line -(\fBvt\fR for the VT series of terminals from DEC, or \fBsun\fR for Sun -Microsystems workstation consoles, or \fBregent\fR for the ADDS Regent series. -You can list the terminfo tree to see what prefixes are already in common use. -The root name prefix should be followed when appropriate by a model number; -thus \fBvt100\fR, \fBhp2621\fR, \fBwy50\fR. -.PP -The root name for a PC-Unix console type should be the OS name, -i.e. \fBlinux\fR, \fBbsdos\fR, \fBfreebsd\fR, \fBnetbsd\fR. It should -\fInot\fR be \fBconsole\fR or any other generic that might cause confusion in a -multi-platform environment! If a model number follows, it should indicate -either the OS release level or the console driver release level. -.PP -The root name for a terminal emulator (assuming it doesn't fit one of the -standard ANSI or vt100 types) should be the program name or a readily -recognizable abbreviation of it (i.e. \fBversaterm\fR, \fBctrm\fR). -.PP -Following the root name, you may add any reasonable number of hyphen-separated -feature suffixes. -.TP 5 -2p -Has two pages of memory. Likewise 4p, 8p, etc. -.TP 5 -mc -Magic-cookie. Some terminals (notably older Wyses) can only support one -attribute without magic-cookie lossage. Their base entry is usually paired -with another that has this suffix and uses magic cookies to support multiple -attributes. -.TP 5 --am -Enable auto-margin (right-margin wraparound). -.TP 5 --m -Mono mode - suppress color support. -.TP 5 --na -No arrow keys - termcap ignores arrow keys which are actually there on the -terminal, so the user can use the arrow keys locally. -.TP 5 --nam -No auto-margin - suppress am capability. -.TP 5 --nl -No labels - suppress soft labels. -.TP 5 --nsl -No status line - suppress status line. -.TP 5 --pp -Has a printer port which is used. -.TP 5 --rv -Terminal in reverse video mode (black on white). -.TP 5 --s -Enable status line. -.TP 5 --vb -Use visible bell (flash) rather than beep. -.TP 5 --w -Wide; terminal is in 132 column mode. -.PP -Conventionally, if your terminal type is a variant intended to specify a -line height, that suffix should go first. So, for a hypothetical FuBarCo -model 2317 terminal in 30-line mode with reverse video, best form would be -\fBfubar-30-rv\fR (rather than, say, `fubar-rv-30'). -.PP -Terminal types that are written not as standalone entries, but rather as -components to be plugged into other entries via \fBuse\fP capabilities, -are distinguished by using embedded plus signs rather than dashes. -.PP -Commands which use a terminal type to control display often accept a -T -option that accepts a terminal name argument. Such programs should fall back -on the \fBTERM\fR environment variable when no -T option is specified. -.SH PORTABILITY -For maximum compatibility with older System V UNIXes, names and aliases -should be unique within the first 14 characters. -.SH FILES -.TP 5 -\*d/?/* -compiled terminal capability data base -.TP 5 -/etc/inittab -tty line initialization (AT&T-like UNIXes) -.TP 5 -/etc/ttys -tty line initialization (BSD-like UNIXes) -.SH SEE ALSO -\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBterm\fR(\*n). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/terminfo.head b/Build/source/libs/ncurses/man/terminfo.head deleted file mode 100644 index 398170fffda..00000000000 --- a/Build/source/libs/ncurses/man/terminfo.head +++ /dev/null @@ -1,105 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: terminfo.head,v 1.12 2004/09/25 19:07:11 tom Exp $ -.TH TERMINFO 5 "" "" "File Formats" -.ds n 5 -.ds d @TERMINFO@ -.SH NAME -terminfo \- terminal capability data base -.SH SYNOPSIS -\*d/*/* -.SH DESCRIPTION -.I Terminfo -is a data base describing terminals, used by screen-oriented programs such as -\fBnvi\fR(1), -\fBrogue\fR(1) -and libraries such as -\fBcurses\fR(3X). -.I Terminfo -describes terminals by giving a set of capabilities which they -have, by specifying how to perform screen operations, and by -specifying padding requirements and initialization sequences. -.PP -Entries in -.I terminfo -consist of a sequence of `,' separated fields (embedded commas may be -escaped with a backslash or notated as \e054). -White space after the `,' separator is ignored. -The first entry for each terminal gives the names which are known for the -terminal, separated by `|' characters. -The first name given is the most common abbreviation for the terminal, -the last name given should be a long name fully identifying the terminal, -and all others are understood as synonyms for the terminal name. -All names but the last should be in lower case and contain no blanks; -the last name may well contain upper case and blanks for readability. -.PP -Lines beginning with a `#' in the first column are treated as comments. -While comment lines are legal at any point, the output of \fIcaptoinfo\fP -and \fIinfotocap\fP (aliases for \fItic\fP) -will move comments so they occur only between entries. -.PP -Newlines and leading tabs may be used for formatting entries for readability. -These are removed from parsed entries. -The \fIinfocmp\ -f\fP option relies on this to format if-then-else expressions: -the result can be read by \fItic\fP. -.PP -Terminal names (except for the last, verbose entry) should -be chosen using the following conventions. -The particular piece of hardware making up the terminal should -have a root name, thus ``hp2621''. -This name should not contain hyphens. -Modes that the hardware can be in, or user preferences, should -be indicated by appending a hyphen and a mode suffix. -Thus, a vt100 in 132 column mode would be vt100-w. -The following suffixes should be used where possible: -.PP -.TS -center ; -l c l -l l l. -\fBSuffix Meaning Example\fP --\fInn\fP Number of lines on the screen aaa-60 --\fIn\fPp Number of pages of memory c100-4p --am With automargins (usually the default) vt100-am --m Mono mode; suppress color ansi-m --mc Magic cookie; spaces when highlighting wy30-mc --na No arrow keys (leave them in local) c100-na --nam Without automatic margins vt100-nam --nl No status line att4415-nl --ns No status line hp2626-ns --rv Reverse video c100-rv --s Enable status line vt100-s --vb Use visible bell instead of beep wy370-vb --w Wide mode (> 80 columns, usually 132) vt100-w -.TE -.PP -For more on terminal naming conventions, see the \fBterm(7)\fR manual page. -.SS Capabilities -.\" Head of terminfo man page ends here -.ps -1 diff --git a/Build/source/libs/ncurses/man/terminfo.tail b/Build/source/libs/ncurses/man/terminfo.tail deleted file mode 100644 index 0178e307ecd..00000000000 --- a/Build/source/libs/ncurses/man/terminfo.tail +++ /dev/null @@ -1,1666 +0,0 @@ -.\" $Id: terminfo.tail,v 1.41 2004/07/05 13:08:56 tom Exp $ -.\" Beginning of terminfo.tail file -.\" See "terminfo.head" for copyright. -.ps +1 -.PP -.SS A Sample Entry -.PP -The following entry, describing an ANSI-standard terminal, is representative -of what a \fBterminfo\fR entry for a modern terminal typically looks like. -.PP -.nf -.in -2 -.ta .3i -.ft CW -\s-2ansi|ansi/pc-term compatible with color, - mc5i, - colors#8, ncv#3, pairs#64, - cub=\\E[%p1%dD, cud=\\E[%p1%dB, cuf=\\E[%p1%dC, - cuu=\\E[%p1%dA, dch=\\E[%p1%dP, dl=\\E[%p1%dM, - ech=\\E[%p1%dX, el1=\\E[1K, hpa=\\E[%p1%dG, ht=\\E[I, - ich=\\E[%p1%d@, il=\\E[%p1%dL, indn=\\E[%p1%dS, .indn=\\E[%p1%dT, - kbs=^H, kcbt=\\E[Z, kcub1=\\E[D, kcud1=\\E[B, - kcuf1=\\E[C, kcuu1=\\E[A, kf1=\\E[M, kf10=\\E[V, - kf11=\\E[W, kf12=\\E[X, kf2=\\E[N, kf3=\\E[O, kf4=\\E[P, - kf5=\\E[Q, kf6=\\E[R, kf7=\\E[S, kf8=\\E[T, kf9=\\E[U, - kich1=\\E[L, mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S, - op=\\E[37;40m, rep=%p1%c\\E[%p2%{1}%-%db, - rin=\\E[%p1%dT, s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B, - s3ds=\\E+B, setab=\\E[4%p1%dm, setaf=\\E[3%p1%dm, - setb=\\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, - setf=\\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m, - sgr=\\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m, - sgr0=\\E[0;10m, tbc=\\E[2g, u6=\\E[%d;%dR, u7=\\E[6n, - u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%p1%dd,\s+2 -.in +2 -.fi -.ft R -.PP -Entries may continue onto multiple lines by placing white space at -the beginning of each line except the first. -Comments may be included on lines beginning with ``#''. -Capabilities in -.I terminfo -are of three types: -Boolean capabilities which indicate that the terminal has -some particular feature, numeric capabilities giving the size of the terminal -or the size of particular delays, and string -capabilities, which give a sequence which can be used to perform particular -terminal operations. -.PP -.SS Types of Capabilities -.PP -All capabilities have names. -For instance, the fact that -ANSI-standard terminals have -.I "automatic margins" -(i.e., an automatic return and line-feed -when the end of a line is reached) is indicated by the capability \fBam\fR. -Hence the description of ansi includes \fBam\fR. -Numeric capabilities are followed by the character `#' and then a positive value. -Thus \fBcols\fR, which indicates the number of columns the terminal has, -gives the value `80' for ansi. -Values for numeric capabilities may be specified in decimal, octal or hexadecimal, -using the C programming language conventions (e.g., 255, 0377 and 0xff or 0xFF). -.PP -Finally, string valued capabilities, such as \fBel\fR (clear to end of line -sequence) are given by the two-character code, an `=', and then a string -ending at the next following `,'. -.PP -A number of escape sequences are provided in the string valued capabilities -for easy encoding of characters there. -Both \fB\eE\fR and \fB\ee\fR -map to an \s-1ESCAPE\s0 character, -\fB^x\fR maps to a control-x for any appropriate x, and the sequences -\fB\en \el \er \et \eb \ef \es\fR give -a newline, line-feed, return, tab, backspace, form-feed, and space. -Other escapes include \fB\e^\fR for \fB^\fR, -\fB\e\e\fR for \fB\e\fR, -\fB\e\fR, for comma, -\fB\e:\fR for \fB:\fR, -and \fB\e0\fR for null. -(\fB\e0\fR will produce \e200, which does not terminate a string but behaves -as a null character on most terminals, providing CS7 is specified. -See stty(1).) -Finally, characters may be given as three octal digits after a \fB\e\fR. -.PP -A delay in milliseconds may appear anywhere in a string capability, enclosed in -$<..> brackets, as in \fBel\fP=\eEK$<5>, and padding characters are supplied by -.I tputs -to provide this delay. -The delay must be a number with at most one decimal -place of precision; it may be followed by suffixes `*' or '/' or both. -A `*' -indicates that the padding required is proportional to the number of lines -affected by the operation, and the amount given is the per-affected-unit -padding required. -(In the case of insert character, the factor is still the -number of -.IR lines -affected.) Normally, padding is advisory if the device has the \fBxon\fR -capability; it is used for cost computation but does not trigger delays. -A `/' -suffix indicates that the padding is mandatory and forces a delay of the given -number of milliseconds even on devices for which \fBxon\fR is present to -indicate flow control. -.PP -Sometimes individual capabilities must be commented out. -To do this, put a period before the capability name. -For example, see the second -.B ind -in the example above. -.br -.ne 5 -.PP -.SS Fetching Compiled Descriptions -.PP -If the environment variable TERMINFO is set, it is interpreted as the pathname -of a directory containing the compiled description you are working on. -Only -that directory is searched. -.PP -If TERMINFO is not set, the \fBncurses\fR version of the terminfo reader code -will instead look in the directory \fB$HOME/.terminfo\fR -for a compiled description. -If it fails to find one there, and the environment variable TERMINFO_DIRS is -set, it will interpret the contents of that variable as a list of colon- -separated directories to be searched (an empty entry is interpreted as a -command to search \fI\*d\fR). -If no description is found in any of the -TERMINFO_DIRS directories, the fetch fails. -.PP -If neither TERMINFO nor TERMINFO_DIRS is set, the last place tried will be the -system terminfo directory, \fI\*d\fR. -.PP -(Neither the \fB$HOME/.terminfo\fR lookups nor TERMINFO_DIRS extensions are -supported under stock System V terminfo/curses.) -.PP -.SS Preparing Descriptions -.PP -We now outline how to prepare descriptions of terminals. -The most effective way to prepare a terminal description is by imitating -the description of a similar terminal in -.I terminfo -and to build up a description gradually, using partial descriptions -with -.I vi -or some other screen-oriented program to check that they are correct. -Be aware that a very unusual terminal may expose deficiencies in -the ability of the -.I terminfo -file to describe it -or bugs in the screen-handling code of the test program. -.PP -To get the padding for insert line right (if the terminal manufacturer -did not document it) a severe test is to edit a large file at 9600 baud, -delete 16 or so lines from the middle of the screen, then hit the `u' -key several times quickly. -If the terminal messes up, more padding is usually needed. -A similar test can be used for insert character. -.PP -.SS Basic Capabilities -.PP -The number of columns on each line for the terminal is given by the -\fBcols\fR numeric capability. -If the terminal is a \s-1CRT\s0, then the -number of lines on the screen is given by the \fBlines\fR capability. -If the terminal wraps around to the beginning of the next line when -it reaches the right margin, then it should have the \fBam\fR capability. -If the terminal can clear its screen, leaving the cursor in the home -position, then this is given by the \fBclear\fR string capability. -If the terminal overstrikes -(rather than clearing a position when a character is struck over) -then it should have the \fBos\fR capability. -If the terminal is a printing terminal, with no soft copy unit, -give it both -.B hc -and -.BR os . -.RB ( os -applies to storage scope terminals, such as \s-1TEKTRONIX\s+1 4010 -series, as well as hard copy and APL terminals.) -If there is a code to move the cursor to the left edge of the current -row, give this as -.BR cr . -(Normally this will be carriage return, control M.) -If there is a code to produce an audible signal (bell, beep, etc) -give this as -.BR bel . -.PP -If there is a code to move the cursor one position to the left -(such as backspace) that capability should be given as -.BR cub1 . -Similarly, codes to move to the right, up, and down should be -given as -.BR cuf1 , -.BR cuu1 , -and -.BR cud1 . -These local cursor motions should not alter the text they pass over, -for example, you would not normally use `\fBcuf1\fP=\ ' because the -space would erase the character moved over. -.PP -A very important point here is that the local cursor motions encoded -in -.I terminfo -are undefined at the left and top edges of a \s-1CRT\s0 terminal. -Programs should never attempt to backspace around the left edge, -unless -.B bw -is given, -and never attempt to go up locally off the top. -In order to scroll text up, a program will go to the bottom left corner -of the screen and send the -.B ind -(index) string. -.PP -To scroll text down, a program goes to the top left corner -of the screen and sends the -.B ri -(reverse index) string. -The strings -.B ind -and -.B ri -are undefined when not on their respective corners of the screen. -.PP -Parameterized versions of the scrolling sequences are -.B indn -and -.B rin -which have the same semantics as -.B ind -and -.B ri -except that they take one parameter, and scroll that many lines. -They are also undefined except at the appropriate edge of the screen. -.PP -The \fBam\fR capability tells whether the cursor sticks at the right -edge of the screen when text is output, but this does not necessarily -apply to a -.B cuf1 -from the last column. -The only local motion which is defined from the left edge is if -.B bw -is given, then a -.B cub1 -from the left edge will move to the right edge of the previous row. -If -.B bw -is not given, the effect is undefined. -This is useful for drawing a box around the edge of the screen, for example. -If the terminal has switch selectable automatic margins, -the -.I terminfo -file usually assumes that this is on; i.e., \fBam\fR. -If the terminal has a command which moves to the first column of the next -line, that command can be given as -.B nel -(newline). -It does not matter if the command clears the remainder of the current line, -so if the terminal has no -.B cr -and -.B lf -it may still be possible to craft a working -.B nel -out of one or both of them. -.PP -These capabilities suffice to describe hard-copy and \*(lqglass-tty\*(rq terminals. -Thus the model 33 teletype is described as -.PP -.DT -.nf -.ft CW -.\".in -2 -\s-133\||\|tty33\||\|tty\||\|model 33 teletype, - bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1 -.\".in +2 -.ft R -.PP -while the Lear Siegler \s-1ADM-3\s0 is described as -.PP -.DT -.nf -.ft CW -.\".in -2 -\s-1adm3\||\|3\||\|lsi adm3, - am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J, - ind=^J, lines#24,\s+1 -.\".in +2 -.ft R -.fi -.PP -.SS Parameterized Strings -.PP -Cursor addressing and other strings requiring parameters -in the terminal are described by a -parameterized string capability, with -.IR printf (3S) -like escapes \fB%x\fR in it. -For example, to address the cursor, the -.B cup -capability is given, using two parameters: -the row and column to address to. -(Rows and columns are numbered from zero and refer to the -physical screen visible to the user, not to any unseen memory.) -If the terminal has memory relative cursor addressing, -that can be indicated by -.BR mrcup . -.PP -The parameter mechanism uses a stack and special \fB%\fP codes -to manipulate it. -Typically a sequence will push one of the -parameters onto the stack and then print it in some format. -Print (e.g., "%d") is a special case. -Other operations, including "%t" pop their operand from the stack. -It is noted that more complex operations are often necessary, -e.g., in the \fBsgr\fP string. -.PP -The \fB%\fR encodings have the following meanings: -.PP -.TP 5 -\s-1%% -outputs `%' -.TP -%\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP -as in \fBprintf\fP, flags are [-+#] and space -.TP -%c -print pop() like %c in \fBprintf\fP -.TP -%s -print pop() like %s in \fBprintf\fP -.TP -%p[1-9] -push \fIi\fP'th parameter -.TP -%P[a-z] -set dynamic variable [a-z] to pop() -.TP -%g[a-z] -get dynamic variable [a-z] and push it -.TP -%P[A-Z] -set static variable [a-z] to pop() -.TP -%g[A-Z] -get static variable [a-z] and push it -.IP -The terms "static" and "dynamic" are misleading. -Historically, these are simply two different sets of variables, -whose values are not reset between calls to \fBtparm\fP. -However, that fact is not documented in other implementations. -Relying on it will adversely impact portability to other implementations. -.TP -%'\fIc\fP' -char constant \fIc\fP -.TP -%{\fInn\fP} -integer constant \fInn\fP -.TP -%l -push strlen(pop) -.TP -%+ %- %* %/ %m -arithmetic (%m is mod): push(pop() op pop()) -.TP -%& %| %^ -bit operations: push(pop() op pop()) -.TP -%= %> %< -logical operations: push(pop() op pop()) -.TP -%A, %O -logical and & or operations (for conditionals) -.TP -%! %~ -unary operations push(op pop()) -.TP -%i -add 1 to first two parameters (for ANSI terminals) -.TP -%? \fIexpr\fP %t \fIthenpart\fP %e \fIelsepart\fP %; -This forms an if-then-else. -The %e \fIelsepart\fP is optional. -Usually the %? \fIexpr\fP part pushes a value onto the stack, -and %t pops it from the stack, testing if it is nonzero (true). -If it is zero (false), control passes to the %e (else) part. -.IP -It is possible to form else-if's a la Algol 68: -.RS -%? c\d1\u %t b\d1\u %e c\d2\u %t b\d2\u %e c\d3\u %t b\d3\u %e c\d4\u %t b\d4\u %e %; -.RE -.IP -where c\di\u are conditions, b\di\u are bodies. -.IP -Use the \fB-f\fP option of \fBtic\fP or \fBinfocmp\fP to see -the structure of if-the-else's. -Some strings, e.g., \fBsgr\fP can be very complicated when written -on one line. -The \fB-f\fP option splits the string into lines with the parts indented. -.PP -Binary operations are in postfix form with the operands in the usual order. -That is, to get x-5 one would use "%gx%{5}%-". -%P and %g variables are -persistent across escape-string evaluations. -.PP -Consider the HP2645, which, to get to row 3 and column 12, needs -to be sent \eE&a12c03Y padded for 6 milliseconds. -Note that the order -of the rows and columns is inverted here, and that the row and column -are printed as two digits. -Thus its \fBcup\fR capability is \*(lqcup=6\eE&%p2%2dc%p1%2dY\*(rq. -.PP -The Microterm \s-1ACT-IV\s0 needs the current row and column sent -preceded by a \fB^T\fR, with the row and column simply encoded in binary, -\*(lqcup=^T%p1%c%p2%c\*(rq. -Terminals which use \*(lq%c\*(rq need to be able to -backspace the cursor (\fBcub1\fR), -and to move the cursor up one line on the screen (\fBcuu1\fR). -This is necessary because it is not always safe to transmit \fB\en\fR -\fB^D\fR and \fB\er\fR, as the system may change or discard them. -(The library routines dealing with terminfo set tty modes so that -tabs are never expanded, so \et is safe to send. -This turns out to be essential for the Ann Arbor 4080.) -.PP -A final example is the \s-1LSI ADM\s0-3a, which uses row and column -offset by a blank character, thus \*(lqcup=\eE=%p1%' '%+%c%p2%' '%+%c\*(rq. -After sending `\eE=', this pushes the first parameter, pushes the -ASCII value for a space (32), adds them (pushing the sum on the stack -in place of the two previous values) and outputs that value as a character. -Then the same is done for the second parameter. -More complex arithmetic is possible using the stack. -.PP -.SS Cursor Motions -.PP -If the terminal has a fast way to home the cursor -(to very upper left corner of screen) then this can be given as -\fBhome\fR; similarly a fast way of getting to the lower left-hand corner -can be given as \fBll\fR; this may involve going up with \fBcuu1\fR -from the home position, -but a program should never do this itself (unless \fBll\fR does) because it -can make no assumption about the effect of moving up from the home position. -Note that the home position is the same as addressing to (0,0): -to the top left corner of the screen, not of memory. -(Thus, the \eEH sequence on HP terminals cannot be used for -.BR home .) -.PP -If the terminal has row or column absolute cursor addressing, -these can be given as single parameter capabilities -.B hpa -(horizontal position absolute) -and -.B vpa -(vertical position absolute). -Sometimes these are shorter than the more general two parameter -sequence (as with the hp2645) and can be used in preference to -.BR cup . -If there are parameterized local motions (e.g., move -.I n -spaces to the right) these can be given as -.BR cud , -.BR cub , -.BR cuf , -and -.BR cuu -with a single parameter indicating how many spaces to move. -These are primarily useful if the terminal does not have -.BR cup , -such as the \s-1TEKTRONIX\s+1 4025. -.PP -If the terminal needs to be in a special mode when running -a program that uses these capabilities, -the codes to enter and exit this mode can be given as \fBsmcup\fR and \fBrmcup\fR. -This arises, for example, from terminals like the Concept with more than -one page of memory. -If the terminal has only memory relative cursor addressing and not screen -relative cursor addressing, a one screen-sized window must be fixed into -the terminal for cursor addressing to work properly. -This is also used for the \s-1TEKTRONIX\s+1 4025, -where -.B smcup -sets the command character to be the one used by terminfo. -If the \fBsmcup\fP sequence will not restore the screen after an -\fBrmcup\fP sequence is output (to the state prior to outputting -\fBrmcup\fP), specify \fBnrrmc\fP. -.PP -.SS Area Clears -.PP -If the terminal can clear from the current position to the end of the -line, leaving the cursor where it is, this should be given as \fBel\fR. -If the terminal can clear from the beginning of the line to the current -position inclusive, leaving -the cursor where it is, this should be given as \fBel1\fP. -If the terminal can clear from the current position to the end of the -display, then this should be given as \fBed\fR. -\fBEd\fR is only defined from the first column of a line. -(Thus, it can be simulated by a request to delete a large number of lines, -if a true -.B ed -is not available.) -.PP -.SS Insert/delete line and vertical motions -.PP -If the terminal can open a new blank line before the line where the cursor -is, this should be given as \fBil1\fR; this is done only from the first -position of a line. -The cursor must then appear on the newly blank line. -If the terminal can delete the line which the cursor is on, then this -should be given as \fBdl1\fR; this is done only from the first position on -the line to be deleted. -Versions of -.B il1 -and -.B dl1 -which take a single parameter and insert or delete that many lines can -be given as -.B il -and -.BR dl . -.PP -If the terminal has a settable scrolling region (like the vt100) -the command to set this can be described with the -.B csr -capability, which takes two parameters: -the top and bottom lines of the scrolling region. -The cursor position is, alas, undefined after using this command. -.PP -It is possible to get the effect of insert or delete line using -.B csr -on a properly chosen region; the -.B sc -and -.B rc -(save and restore cursor) commands may be useful for ensuring that -your synthesized insert/delete string does not move the cursor. -(Note that the \fBncurses\fR(3X) library does this synthesis -automatically, so you need not compose insert/delete strings for -an entry with \fBcsr\fR). -.PP -Yet another way to construct insert and delete might be to use a combination of -index with the memory-lock feature found on some terminals (like the HP-700/90 -series, which however also has insert/delete). -.PP -Inserting lines at the top or bottom of the screen can also be -done using -.B ri -or -.B ind -on many terminals without a true insert/delete line, -and is often faster even on terminals with those features. -.PP -The boolean \fBnon_dest_scroll_region\fR should be set if each scrolling -window is effectively a view port on a screen-sized canvas. -To test for -this capability, create a scrolling region in the middle of the screen, -write something to the bottom line, move the cursor to the top of the region, -and do \fBri\fR followed by \fBdl1\fR or \fBind\fR. -If the data scrolled -off the bottom of the region by the \fBri\fR re-appears, then scrolling -is non-destructive. -System V and XSI Curses expect that \fBind\fR, \fBri\fR, -\fBindn\fR, and \fBrin\fR will simulate destructive scrolling; their -documentation cautions you not to define \fBcsr\fR unless this is true. -This \fBcurses\fR implementation is more liberal and will do explicit erases -after scrolling if \fBndstr\fR is defined. -.PP -If the terminal has the ability to define a window as part of -memory, which all commands affect, -it should be given as the parameterized string -.BR wind . -The four parameters are the starting and ending lines in memory -and the starting and ending columns in memory, in that order. -.PP -If the terminal can retain display memory above, then the -\fBda\fR capability should be given; if display memory can be retained -below, then \fBdb\fR should be given. -These indicate -that deleting a line or scrolling may bring non-blank lines up from below -or that scrolling back with \fBri\fR may bring down non-blank lines. -.PP -.SS Insert/Delete Character -.PP -There are two basic kinds of intelligent terminals with respect to -insert/delete character which can be described using -.I terminfo. -The most common insert/delete character operations affect only the characters -on the current line and shift characters off the end of the line rigidly. -Other terminals, such as the Concept 100 and the Perkin Elmer Owl, make -a distinction between typed and untyped blanks on the screen, shifting -upon an insert or delete only to an untyped blank on the screen which is -either eliminated, or expanded to two untyped blanks. -You can determine the -kind of terminal you have by clearing the screen and then typing -text separated by cursor motions. -Type \*(lqabc\ \ \ \ def\*(rq using local -cursor motions (not spaces) between the \*(lqabc\*(rq and the \*(lqdef\*(rq. -Then position the cursor before the \*(lqabc\*(rq and put the terminal in insert -mode. -If typing characters causes the rest of the line to shift -rigidly and characters to fall off the end, then your terminal does -not distinguish between blanks and untyped positions. -If the \*(lqabc\*(rq -shifts over to the \*(lqdef\*(rq which then move together around the end of the -current line and onto the next as you insert, you have the second type of -terminal, and should give the capability \fBin\fR, which stands for -\*(lqinsert null\*(rq. -While these are two logically separate attributes (one line versus multi-line -insert mode, and special treatment of untyped spaces) we have seen no -terminals whose insert mode cannot be described with the single attribute. -.PP -Terminfo can describe both terminals which have an insert mode, and terminals -which send a simple sequence to open a blank position on the current line. -Give as \fBsmir\fR the sequence to get into insert mode. -Give as \fBrmir\fR the sequence to leave insert mode. -Now give as \fBich1\fR any sequence needed to be sent just before sending -the character to be inserted. -Most terminals with a true insert mode -will not give \fBich1\fR; terminals which send a sequence to open a screen -position should give it here. -.PP -If your terminal has both, insert mode is usually preferable to \fBich1\fR. -Technically, you should not give both unless the terminal actually requires -both to be used in combination. -Accordingly, some non-curses applications get -confused if both are present; the symptom is doubled characters in an update -using insert. -This requirement is now rare; most \fBich\fR sequences do not -require previous smir, and most smir insert modes do not require \fBich1\fR -before each character. -Therefore, the new \fBcurses\fR actually assumes this -is the case and uses either \fBrmir\fR/\fBsmir\fR or \fBich\fR/\fBich1\fR as -appropriate (but not both). -If you have to write an entry to be used under -new curses for a terminal old enough to need both, include the -\fBrmir\fR/\fBsmir\fR sequences in \fBich1\fR. -.PP -If post insert padding is needed, give this as a number of milliseconds -in \fBip\fR (a string option). -Any other sequence which may need to be -sent after an insert of a single character may also be given in \fBip\fR. -If your terminal needs both to be placed into an `insert mode' and -a special code to precede each inserted character, then both -.BR smir / rmir -and -.B ich1 -can be given, and both will be used. -The -.B ich -capability, with one parameter, -.IR n , -will repeat the effects of -.B ich1 -.I n -times. -.PP -If padding is necessary between characters typed while not -in insert mode, give this as a number of milliseconds padding in \fBrmp\fP. -.PP -It is occasionally necessary to move around while in insert mode -to delete characters on the same line (e.g., if there is a tab after -the insertion position). -If your terminal allows motion while in -insert mode you can give the capability \fBmir\fR to speed up inserting -in this case. -Omitting \fBmir\fR will affect only speed. -Some terminals -(notably Datamedia's) must not have \fBmir\fR because of the way their -insert mode works. -.PP -Finally, you can specify -.B dch1 -to delete a single character, -.B dch -with one parameter, -.IR n , -to delete -.I n characters, -and delete mode by giving \fBsmdc\fR and \fBrmdc\fR -to enter and exit delete mode (any mode the terminal needs to be placed -in for -.B dch1 -to work). -.PP -A command to erase -.I n -characters (equivalent to outputting -.I n -blanks without moving the cursor) -can be given as -.B ech -with one parameter. -.PP -.SS "Highlighting, Underlining, and Visible Bells" -.PP -If your terminal has one or more kinds of display attributes, -these can be represented in a number of different ways. -You should choose one display form as -\f2standout mode\fR, -representing a good, high contrast, easy-on-the-eyes, -format for highlighting error messages and other attention getters. -(If you have a choice, reverse video plus half-bright is good, -or reverse video alone.) -The sequences to enter and exit standout mode -are given as \fBsmso\fR and \fBrmso\fR, respectively. -If the code to change into or out of standout -mode leaves one or even two blank spaces on the screen, -as the TVI 912 and Teleray 1061 do, -then \fBxmc\fR should be given to tell how many spaces are left. -.PP -Codes to begin underlining and end underlining can be given as \fBsmul\fR -and \fBrmul\fR respectively. -If the terminal has a code to underline the current character and move -the cursor one space to the right, -such as the Microterm Mime, -this can be given as \fBuc\fR. -.PP -Other capabilities to enter various highlighting modes include -.B blink -(blinking) -.B bold -(bold or extra bright) -.B dim -(dim or half-bright) -.B invis -(blanking or invisible text) -.B prot -(protected) -.B rev -(reverse video) -.B sgr0 -(turn off -.I all -attribute modes) -.B smacs -(enter alternate character set mode) -and -.B rmacs -(exit alternate character set mode). -Turning on any of these modes singly may or may not turn off other modes. -.PP -If there is a sequence to set arbitrary combinations of modes, -this should be given as -.B sgr -(set attributes), -taking 9 parameters. -Each parameter is either 0 or nonzero, as the corresponding attribute is on or off. -The 9 parameters are, in order: -standout, underline, reverse, blink, dim, bold, blank, protect, alternate -character set. -Not all modes need be supported by -.BR sgr , -only those for which corresponding separate attribute commands exist. -.PP -For example, the DEC vt220 supports most of the modes: -.PP -.TS -center; -l c c -l c c -lw28 lw6 lw2 lw20. -\fBtparm parameter attribute escape sequence\fP - -none none \\E[0m -p1 standout \\E[0;1;7m -p2 underline \\E[0;4m -p3 reverse \\E[0;7m -p4 blink \\E[0;5m -p5 dim not available -p6 bold \\E[0;1m -p7 invis \\E[0;8m -p8 protect not used -p9 altcharset ^O (off) ^N (on) -.TE -.PP -We begin each escape sequence by turning off any existing modes, since -there is no quick way to determine whether they are active. -Standout is set up to be the combination of reverse and bold. -The vt220 terminal has a protect mode, -though it is not commonly used in sgr -because it protects characters on the screen from the host's erasures. -The altcharset mode also is different in that it is either ^O or ^N, -depending on whether it is off or on. -If all modes are turned on, the resulting sequence is \\E[0;1;4;5;7;8m^N. -.PP -Some sequences are common to different modes. -For example, ;7 is output when either p1 or p3 is true, that is, if -either standout or reverse modes are turned on. -.PP -Writing out the above sequences, along with their dependencies yields -.PP -.TS -center; -l c c -l c c -lw28 lw6 lw2 lw20. -\fBsequence when to output terminfo translation\fP - -\\E[0 always \\E[0 -;1 if p1 or p6 %?%p1%p6%|%t;1%; -;4 if p2 %?%p2%|%t;4%; -;5 if p4 %?%p4%|%t;5%; -;7 if p1 or p3 %?%p1%p3%|%t;7%; -;8 if p7 %?%p7%|%t;8%; -m always m -^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%; -.TE -.PP -Putting this all together into the sgr sequence gives: -.PP -.nf - sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%; - %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;, -.fi -.PP -Remember that if you specify sgr, you must also specify sgr0. -Also, some implementations rely on sgr being given if sgr0 is, -Not all terminfo entries necessarily have an sgr string, however. -Many terminfo entries are derived from termcap entries -which have no sgr string. -The only drawback to adding an sgr string is that termcap also -assumes that sgr0 does not exit alternate character set mode. -.PP -Terminals with the ``magic cookie'' glitch -.RB ( xmc ) -deposit special ``cookies'' when they receive mode-setting sequences, -which affect the display algorithm rather than having extra bits for -each character. -Some terminals, such as the HP 2621, automatically leave standout -mode when they move to a new line or the cursor is addressed. -Programs using standout mode should exit standout mode before -moving the cursor or sending a newline, -unless the -.B msgr -capability, asserting that it is safe to move in standout mode, is present. -.PP -If the terminal has -a way of flashing the screen to indicate an error quietly (a bell replacement) -then this can be given as \fBflash\fR; it must not move the cursor. -.PP -If the cursor needs to be made more visible than normal when it is -not on the bottom line (to make, for example, a non-blinking underline into an -easier to find block or blinking underline) -give this sequence as -.BR cvvis . -If there is a way to make the cursor completely invisible, give that as -.BR civis . -The capability -.BR cnorm -should be given which undoes the effects of both of these modes. -.PP -If your terminal correctly generates underlined characters -(with no special codes needed) -even though it does not overstrike, -then you should give the capability \fBul\fR. -If a character overstriking another leaves both characters on the screen, -specify the capability \fBos\fP. -If overstrikes are erasable with a blank, -then this should be indicated by giving \fBeo\fR. -.PP -.SS Keypad and Function Keys -.PP -If the terminal has a keypad that transmits codes when the keys are pressed, -this information can be given. -Note that it is not possible to handle -terminals where the keypad only works in local (this applies, for example, -to the unshifted HP 2621 keys). -If the keypad can be set to transmit or not transmit, -give these codes as \fBsmkx\fR and \fBrmkx\fR. -Otherwise the keypad is assumed to always transmit. -The codes sent by the left arrow, right arrow, up arrow, down arrow, -and home keys can be given as -\fBkcub1, kcuf1, kcuu1, kcud1, \fRand\fB khome\fR respectively. -If there are function keys such as f0, f1, ..., f10, the codes they send -can be given as \fBkf0, kf1, ..., kf10\fR. -If these keys have labels other than the default f0 through f10, the labels -can be given as \fBlf0, lf1, ..., lf10\fR. -The codes transmitted by certain other special keys can be given: -.B kll -(home down), -.B kbs -(backspace), -.B ktbc -(clear all tabs), -.B kctab -(clear the tab stop in this column), -.B kclr -(clear screen or erase key), -.B kdch1 -(delete character), -.B kdl1 -(delete line), -.B krmir -(exit insert mode), -.B kel -(clear to end of line), -.B ked -(clear to end of screen), -.B kich1 -(insert character or enter insert mode), -.B kil1 -(insert line), -.B knp -(next page), -.B kpp -(previous page), -.B kind -(scroll forward/down), -.B kri -(scroll backward/up), -.B khts -(set a tab stop in this column). -In addition, if the keypad has a 3 by 3 array of keys including the four -arrow keys, the other five keys can be given as -.BR ka1 , -.BR ka3 , -.BR kb2 , -.BR kc1 , -and -.BR kc3 . -These keys are useful when the effects of a 3 by 3 directional pad are needed. -.PP -Strings to program function keys can be given as -.BR pfkey , -.BR pfloc , -and -.BR pfx . -A string to program screen labels should be specified as \fBpln\fP. -Each of these strings takes two parameters: the function key number to -program (from 0 to 10) and the string to program it with. -Function key numbers out of this range may program undefined keys in -a terminal dependent manner. -The difference between the capabilities is that -.B pfkey -causes pressing the given key to be the same as the user typing the -given string; -.B pfloc -causes the string to be executed by the terminal in local; and -.B pfx -causes the string to be transmitted to the computer. -.PP -The capabilities \fBnlab\fP, \fBlw\fP and \fBlh\fP -define the number of programmable -screen labels and their width and height. -If there are commands to turn the labels on and off, -give them in \fBsmln\fP and \fBrmln\fP. -\fBsmln\fP is normally output after one or more pln -sequences to make sure that the change becomes visible. -.PP -.SS Tabs and Initialization -.PP -If the terminal has hardware tabs, the command to advance to the next -tab stop can be given as -.B ht -(usually control I). -A ``back-tab'' command which moves leftward to the preceding tab stop can -be given as -.BR cbt . -By convention, if the teletype modes indicate that tabs are being -expanded by the computer rather than being sent to the terminal, -programs should not use -.B ht -or -.B cbt -even if they are present, since the user may not have the tab stops -properly set. -If the terminal has hardware tabs which are initially set every -.I n -spaces when the terminal is powered up, -the numeric parameter -.B it -is given, showing the number of spaces the tabs are set to. -This is normally used by the -.IR tset -command to determine whether to set the mode for hardware tab expansion, -and whether to set the tab stops. -If the terminal has tab stops that can be saved in non-volatile memory, -the terminfo description can assume that they are properly set. -.PP -Other capabilities -include -.BR is1 , -.BR is2 , -and -.BR is3 , -initialization strings for the terminal, -.BR iprog , -the path name of a program to be run to initialize the terminal, -and \fBif\fR, the name of a file containing long initialization strings. -These strings are expected to set the terminal into modes consistent -with the rest of the terminfo description. -They are normally sent to the terminal, by the -.I init -option of the -.IR tput -program, each time the user logs in. -They will be printed in the following order: -run the program -.BR iprog ; -output -.BR is1 ; -.BR is2 ; -set the margins using -.BR mgc , -.BR smgl -and -.BR smgr ; -set tabs using -.B tbc -and -.BR hts ; -print the file -.BR if ; -and finally -output -.BR is3 . -.PP -Most initialization is done with -.BR is2 . -Special terminal modes can be set up without duplicating strings -by putting the common sequences in -.B is2 -and special cases in -.B is1 -and -.BR is3 . -A pair of sequences that does a harder reset from a totally unknown state -can be analogously given as -.BR rs1 , -.BR rs2 , -.BR rf , -and -.BR rs3 , -analogous to -.B is2 -and -.BR if . -These strings are output by the -.IR reset -program, which is used when the terminal gets into a wedged state. -Commands are normally placed in -.BR rs1 , -.BR rs2 -.B rs3 -and -.B rf -only if they produce annoying effects on the screen and are not -necessary when logging in. -For example, the command to set the vt100 into 80-column mode would -normally be part of -.BR is2 , -but it causes an annoying glitch of the screen and is not normally -needed since the terminal is usually already in 80 column mode. -.PP -If there are commands to set and clear tab stops, they can be given as -.B tbc -(clear all tab stops) -and -.B hts -(set a tab stop in the current column of every row). -If a more complex sequence is needed to set the tabs than can be -described by this, the sequence can be placed in -.B is2 -or -.BR if . -.SS Delays and Padding -.PP -Many older and slower terminals don't support either XON/XOFF or DTR -handshaking, including hard copy terminals and some very archaic CRTs -(including, for example, DEC VT100s). -These may require padding characters -after certain cursor motions and screen changes. -.PP -If the terminal uses xon/xoff handshaking for flow control (that is, -it automatically emits ^S back to the host when its input buffers are -close to full), set -.BR xon . -This capability suppresses the emission of padding. -You can also set it -for memory-mapped console devices effectively that don't have a speed limit. -Padding information should still be included so that routines can -make better decisions about relative costs, but actual pad characters will -not be transmitted. -.PP -If \fBpb\fR (padding baud rate) is given, padding is suppressed at baud rates -below the value of \fBpb\fR. -If the entry has no padding baud rate, then -whether padding is emitted or not is completely controlled by \fBxon\fR. -.PP -If the terminal requires other than a null (zero) character as a pad, -then this can be given as \fBpad\fR. -Only the first character of the -.B pad -string is used. -.PP -.SS Status Lines -Some terminals have an extra `status line' which is not normally used by -software (and thus not counted in the terminal's \fBlines\fR capability). -.PP -The simplest case is a status line which is cursor-addressable but not -part of the main scrolling region on the screen; the Heathkit H19 has -a status line of this kind, as would a 24-line VT100 with a 23-line -scrolling region set up on initialization. -This situation is indicated -by the \fBhs\fR capability. -.PP -Some terminals with status lines need special sequences to access the -status line. -These may be expressed as a string with single parameter -\fBtsl\fR which takes the cursor to a given zero-origin column on the -status line. -The capability \fBfsl\fR must return to the main-screen -cursor positions before the last \fBtsl\fR. -You may need to embed the -string values of \fBsc\fR (save cursor) and \fBrc\fR (restore cursor) -in \fBtsl\fR and \fBfsl\fR to accomplish this. -.PP -The status line is normally assumed to be the same width as the width -of the terminal. -If this is untrue, you can specify it with the numeric -capability \fBwsl\fR. -.PP -A command to erase or blank the status line may be specified as \fBdsl\fR. -.PP -The boolean capability \fBeslok\fR specifies that escape sequences, tabs, -etc., work ordinarily in the status line. -.PP -The \fBncurses\fR implementation does not yet use any of these capabilities. -They are documented here in case they ever become important. -.PP -.SS Line Graphics -.PP -Many terminals have alternate character sets useful for forms-drawing. -Terminfo and \fBcurses\fR build in support for the drawing characters -supported by the VT100, with some characters from the AT&T 4410v1 added. -This alternate character set may be specified by the \fBacsc\fR capability. -.PP -.TS H -center expand; -c l l c -c l l c -lw28 lw6 lw2 lw20. -.\".TH -\fBGlyph ACS Ascii VT100\fR -\fBName Name Default Name\fR -UK pound sign ACS_STERLING f } -arrow pointing down ACS_DARROW v . -arrow pointing left ACS_LARROW < , -arrow pointing right ACS_RARROW > + -arrow pointing up ACS_UARROW ^ - -board of squares ACS_BOARD # h -bullet ACS_BULLET o ~ -checker board (stipple) ACS_CKBOARD : a -degree symbol ACS_DEGREE \e f -diamond ACS_DIAMOND + ` -greater-than-or-equal-to ACS_GEQUAL > z -greek pi ACS_PI * { -horizontal line ACS_HLINE - q -lantern symbol ACS_LANTERN # i -large plus or crossover ACS_PLUS + n -less-than-or-equal-to ACS_LEQUAL < y -lower left corner ACS_LLCORNER + m -lower right corner ACS_LRCORNER + j -not-equal ACS_NEQUAL ! | -plus/minus ACS_PLMINUS # g -scan line 1 ACS_S1 ~ o -scan line 3 ACS_S3 - p -scan line 7 ACS_S7 - r -scan line 9 ACS_S9 \&_ s -solid square block ACS_BLOCK # 0 -tee pointing down ACS_TTEE + w -tee pointing left ACS_RTEE + u -tee pointing right ACS_LTEE + t -tee pointing up ACS_BTEE + v -upper left corner ACS_ULCORNER + l -upper right corner ACS_URCORNER + k -vertical line ACS_VLINE | x -.TE -.PP -The best way to define a new device's graphics set is to add a column -to a copy of this table for your terminal, giving the character which -(when emitted between \fBsmacs\fR/\fBrmacs\fR switches) will be rendered -as the corresponding graphic. -Then read off the VT100/your terminal -character pairs right to left in sequence; these become the ACSC string. -.PP -.SS Color Handling -.PP -Most color terminals are either `Tektronix-like' or `HP-like'. -Tektronix-like -terminals have a predefined set of N colors (where N usually 8), and can set -character-cell foreground and background characters independently, mixing them -into N * N color-pairs. -On HP-like terminals, the use must set each color -pair up separately (foreground and background are not independently settable). -Up to M color-pairs may be set up from 2*M different colors. -ANSI-compatible -terminals are Tektronix-like. -.PP -Some basic color capabilities are independent of the color method. -The numeric -capabilities \fBcolors\fR and \fBpairs\fR specify the maximum numbers of colors -and color-pairs that can be displayed simultaneously. -The \fBop\fR (original -pair) string resets foreground and background colors to their default values -for the terminal. -The \fBoc\fR string resets all colors or color-pairs to -their default values for the terminal. -Some terminals (including many PC -terminal emulators) erase screen areas with the current background color rather -than the power-up default background; these should have the boolean capability -\fBbce\fR. -.PP -To change the current foreground or background color on a Tektronix-type -terminal, use \fBsetaf\fR (set ANSI foreground) and \fBsetab\fR (set ANSI -background) or \fBsetf\fR (set foreground) and \fBsetb\fR (set background). -These take one parameter, the color number. -The SVr4 documentation describes -only \fBsetaf\fR/\fBsetab\fR; the XPG4 draft says that "If the terminal -supports ANSI escape sequences to set background and foreground, they should -be coded as \fBsetaf\fR and \fBsetab\fR, respectively. -If the terminal -supports other escape sequences to set background and foreground, they should -be coded as \fBsetf\fR and \fBsetb\fR, respectively. -The \fIvidputs()\fR -function and the refresh functions use \fBsetaf\fR and \fBsetab\fR if they are -defined." -.PP -The \fBsetaf\fR/\fBsetab\fR and \fBsetf\fR/\fBsetb\fR capabilities take a -single numeric argument each. -Argument values 0-7 of \fBsetaf\fR/\fBsetab\fR are portably defined as -follows (the middle column is the symbolic #define available in the header for -the \fBcurses\fR or \fBncurses\fR libraries). -The terminal hardware is free to -map these as it likes, but the RGB values indicate normal locations in color -space. -.PP -.TS H -center; -l c c c -l l n l. -\fBColor #define Value RGB\fR -black \fBCOLOR_BLACK\fR 0 0, 0, 0 -red \fBCOLOR_RED\ \fR 1 max,0,0 -green \fBCOLOR_GREEN\fR 2 0,max,0 -yellow \fBCOLOR_YELLOW\fR 3 max,max,0 -blue \fBCOLOR_BLUE\fR 4 0,0,max -magenta \fBCOLOR_MAGENTA\fR 5 max,0,max -cyan \fBCOLOR_CYAN\fR 6 0,max,max -white \fBCOLOR_WHITE\fR 7 max,max,max -.TE -.PP -The argument values of \fBsetf\fR/\fBsetb\fR historically correspond to -a different mapping, i.e., -.TS H -center; -l c c c -l l n l. -\fBColor #define Value RGB\fR -black \fBCOLOR_BLACK\fR 0 0, 0, 0 -blue \fBCOLOR_BLUE\fR 1 0,0,max -green \fBCOLOR_GREEN\fR 2 0,max,0 -cyan \fBCOLOR_CYAN\fR 3 0,max,max -red \fBCOLOR_RED\ \fR 4 max,0,0 -magenta \fBCOLOR_MAGENTA\fR 5 max,0,max -yellow \fBCOLOR_YELLOW\fR 6 max,max,0 -white \fBCOLOR_WHITE\fR 7 max,max,max -.TE -It is important to not confuse the two sets of color capabilities; -otherwise red/blue will be interchanged on the display. -.PP -On an HP-like terminal, use \fBscp\fR with a color-pair number parameter to set -which color pair is current. -.PP -On a Tektronix-like terminal, the capability \fBccc\fR may be present to -indicate that colors can be modified. -If so, the \fBinitc\fR capability will -take a color number (0 to \fBcolors\fR - 1)and three more parameters which -describe the color. -These three parameters default to being interpreted as RGB -(Red, Green, Blue) values. -If the boolean capability \fBhls\fR is present, -they are instead as HLS (Hue, Lightness, Saturation) indices. -The ranges are -terminal-dependent. -.PP -On an HP-like terminal, \fBinitp\fR may give a capability for changing a -color-pair value. -It will take seven parameters; a color-pair number (0 to -\fBmax_pairs\fR - 1), and two triples describing first background and then -foreground colors. -These parameters must be (Red, Green, Blue) or -(Hue, Lightness, Saturation) depending on \fBhls\fR. -.PP -On some color terminals, colors collide with highlights. -You can register -these collisions with the \fBncv\fR capability. -This is a bit-mask of -attributes not to be used when colors are enabled. -The correspondence with the -attributes understood by \fBcurses\fR is as follows: -.PP -.TS -center; -l c c -lw25 lw2 lw10. -\fBAttribute Bit Decimal\fR -A_STANDOUT 0 1 -A_UNDERLINE 1 2 -A_REVERSE 2 4 -A_BLINK 3 8 -A_DIM 4 16 -A_BOLD 5 32 -A_INVIS 6 64 -A_PROTECT 7 128 -A_ALTCHARSET 8 256 -.TE -.PP -For example, on many IBM PC consoles, the underline attribute collides with the -foreground color blue and is not available in color mode. -These should have -an \fBncv\fR capability of 2. -.PP -SVr4 curses does nothing with \fBncv\fR, ncurses recognizes it and optimizes -the output in favor of colors. -.PP -.SS Miscellaneous -If the terminal requires other than a null (zero) character as a pad, then this -can be given as pad. -Only the first character of the pad string is used. -If the terminal does not have a pad character, specify npc. -Note that ncurses implements the termcap-compatible \fBPC\fR variable; -though the application may set this value to something other than -a null, ncurses will test \fBnpc\fR first and use napms if the terminal -has no pad character. -.PP -If the terminal can move up or down half a line, -this can be indicated with -.B hu -(half-line up) -and -.B hd -(half-line down). -This is primarily useful for superscripts and subscripts on hard-copy terminals. -If a hard-copy terminal can eject to the next page (form feed), give this as -.B ff -(usually control L). -.PP -If there is a command to repeat a given character a given number of -times (to save time transmitting a large number of identical characters) -this can be indicated with the parameterized string -.BR rep . -The first parameter is the character to be repeated and the second -is the number of times to repeat it. -Thus, tparm(repeat_char, 'x', 10) is the same as `xxxxxxxxxx'. -.PP -If the terminal has a settable command character, such as the \s-1TEKTRONIX\s+1 4025, -this can be indicated with -.BR cmdch . -A prototype command character is chosen which is used in all capabilities. -This character is given in the -.B cmdch -capability to identify it. -The following convention is supported on some UNIX systems: -The environment is to be searched for a -.B CC -variable, and if found, all -occurrences of the prototype character are replaced with the character -in the environment variable. -.PP -Terminal descriptions that do not represent a specific kind of known -terminal, such as -.IR switch , -.IR dialup , -.IR patch , -and -.IR network , -should include the -.B gn -(generic) capability so that programs can complain that they do not know -how to talk to the terminal. -(This capability does not apply to -.I virtual -terminal descriptions for which the escape sequences are known.) -.PP -If the terminal has a ``meta key'' which acts as a shift key, -setting the 8th bit of any character transmitted, this fact can -be indicated with -.BR km . -Otherwise, software will assume that the 8th bit is parity and it -will usually be cleared. -If strings exist to turn this ``meta mode'' on and off, they -can be given as -.B smm -and -.BR rmm . -.PP -If the terminal has more lines of memory than will fit on the screen -at once, the number of lines of memory can be indicated with -.BR lm . -A value of -.BR lm #0 -indicates that the number of lines is not fixed, -but that there is still more memory than fits on the screen. -.PP -If the terminal is one of those supported by the \s-1UNIX\s+1 virtual -terminal protocol, the terminal number can be given as -.BR vt . -.PP -Media copy -strings which control an auxiliary printer connected to the terminal -can be given as -.BR mc0 : -print the contents of the screen, -.BR mc4 : -turn off the printer, and -.BR mc5 : -turn on the printer. -When the printer is on, all text sent to the terminal will be sent -to the printer. -It is undefined whether the text is also displayed on the terminal screen -when the printer is on. -A variation -.B mc5p -takes one parameter, and leaves the printer on for as many characters -as the value of the parameter, then turns the printer off. -The parameter should not exceed 255. -All text, including -.BR mc4 , -is transparently passed to the printer while an -.B mc5p -is in effect. -.PP -.SS Glitches and Braindamage -.PP -Hazeltine terminals, which do not allow `~' characters to be displayed should -indicate \fBhz\fR. -.PP -Terminals which ignore a line-feed immediately after an \fBam\fR wrap, -such as the Concept and vt100, -should indicate \fBxenl\fR. -.PP -If -.B el -is required to get rid of standout -(instead of merely writing normal text on top of it), -\fBxhp\fP should be given. -.PP -Teleray terminals, where tabs turn all characters moved over to blanks, -should indicate \fBxt\fR (destructive tabs). -Note: the variable indicating this is now `dest_tabs_magic_smso'; in -older versions, it was teleray_glitch. -This glitch is also taken to mean that it is not possible to position -the cursor on top of a ``magic cookie'', -that to erase standout mode it is instead necessary to use -delete and insert line. -The ncurses implementation ignores this glitch. -.PP -The Beehive Superbee, which is unable to correctly transmit the escape -or control C characters, has -.BR xsb , -indicating that the f1 key is used for escape and f2 for control C. -(Only certain Superbees have this problem, depending on the ROM.) -Note that in older terminfo versions, this capability was called -`beehive_glitch'; it is now `no_esc_ctl_c'. -.PP -Other specific terminal problems may be corrected by adding more -capabilities of the form \fBx\fR\fIx\fR. -.PP -.SS Similar Terminals -.PP -If there are two very similar terminals, one (the variant) can be defined as -being just like the other (the base) with certain exceptions. -In the -definition of the variant, the string capability \fBuse\fR can be given with -the name of the base terminal. -The capabilities given before -.B use -override those in the base type named by -.BR use . -If there are multiple \fBuse\fR capabilities, they are merged in reverse order. -That is, the rightmost \fBuse\fR reference is processed first, then the one to -its left, and so forth. -Capabilities given explicitly in the entry override -those brought in by \fBuse\fR references. -.PP -A capability can be canceled by placing \fBxx@\fR to the left of the -use reference that imports it, where \fIxx\fP is the capability. -For example, the entry -.PP - 2621-nl, smkx@, rmkx@, use=2621, -.PP -defines a 2621-nl that does not have the \fBsmkx\fR or \fBrmkx\fR capabilities, -and hence does not turn on the function key labels when in visual mode. -This is useful for different modes for a terminal, or for different -user preferences. -.PP -.SS Pitfalls of Long Entries -.PP -Long terminfo entries are unlikely to be a problem; to date, no entry has even -approached terminfo's 4096-byte string-table maximum. -Unfortunately, the termcap -translations are much more strictly limited (to 1023 bytes), thus termcap translations -of long terminfo entries can cause problems. -.PP -The man pages for 4.3BSD and older versions of \fBtgetent()\fP instruct the user to -allocate a 1024-byte buffer for the termcap entry. -The entry gets null-terminated by -the termcap library, so that makes the maximum safe length for a termcap entry -1k-1 (1023) bytes. -Depending on what the application and the termcap library -being used does, and where in the termcap file the terminal type that \fBtgetent()\fP -is searching for is, several bad things can happen. -.PP -Some termcap libraries print a warning message or exit if they find an -entry that's longer than 1023 bytes; others don't; others truncate the -entries to 1023 bytes. -Some application programs allocate more than -the recommended 1K for the termcap entry; others don't. -.PP -Each termcap entry has two important sizes associated with it: before -"tc" expansion, and after "tc" expansion. -"tc" is the capability that -tacks on another termcap entry to the end of the current one, to add -on its capabilities. -If a termcap entry doesn't use the "tc" -capability, then of course the two lengths are the same. -.PP -The "before tc expansion" length is the most important one, because it -affects more than just users of that particular terminal. -This is the -length of the entry as it exists in /etc/termcap, minus the -backslash-newline pairs, which \fBtgetent()\fP strips out while reading it. -Some termcap libraries strip off the final newline, too (GNU termcap does not). -Now suppose: -.TP 5 -* -a termcap entry before expansion is more than 1023 bytes long, -.TP 5 -* -and the application has only allocated a 1k buffer, -.TP 5 -* -and the termcap library (like the one in BSD/OS 1.1 and GNU) reads -the whole entry into the buffer, no matter what its length, to see -if it's the entry it wants, -.TP 5 -* -and \fBtgetent()\fP is searching for a terminal type that either is the -long entry, appears in the termcap file after the long entry, or -doesn't appear in the file at all (so that \fBtgetent()\fP has to search -the whole termcap file). -.PP -Then \fBtgetent()\fP will overwrite memory, perhaps its stack, and probably core dump -the program. -Programs like telnet are particularly vulnerable; modern telnets -pass along values like the terminal type automatically. -The results are almost -as undesirable with a termcap library, like SunOS 4.1.3 and Ultrix 4.4, that -prints warning messages when it reads an overly long termcap entry. -If a -termcap library truncates long entries, like OSF/1 3.0, it is immune to dying -here but will return incorrect data for the terminal. -.PP -The "after tc expansion" length will have a similar effect to the -above, but only for people who actually set TERM to that terminal -type, since \fBtgetent()\fP only does "tc" expansion once it's found the -terminal type it was looking for, not while searching. -.PP -In summary, a termcap entry that is longer than 1023 bytes can cause, -on various combinations of termcap libraries and applications, a core -dump, warnings, or incorrect operation. -If it's too long even before -"tc" expansion, it will have this effect even for users of some other -terminal types and users whose TERM variable does not have a termcap -entry. -.PP -When in -C (translate to termcap) mode, the \fBncurses\fR implementation of -\fBtic\fR(1) issues warning messages when the pre-tc length of a termcap -translation is too long. -The -c (check) option also checks resolved (after tc -expansion) lengths. -.SS Binary Compatibility -It is not wise to count on portability of binary terminfo entries between -commercial UNIX versions. -The problem is that there are at least two versions -of terminfo (under HP-UX and AIX) which diverged from System V terminfo after -SVr1, and have added extension capabilities to the string table that (in the -binary format) collide with System V and XSI Curses extensions. -.SH EXTENSIONS -Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, don't -interpret the %A and %O operators in parameter strings. -.PP -SVr4/XPG4 do not specify whether \fBmsgr\fR licenses movement while in -an alternate-character-set mode (such modes may, among other things, map -CR and NL to characters that don't trigger local motions). -The \fBncurses\fR implementation ignores \fBmsgr\fR in \fBALTCHARSET\fR -mode. -This raises the possibility that an XPG4 -implementation making the opposite interpretation may need terminfo -entries made for \fBncurses\fR to have \fBmsgr\fR turned off. -.PP -The \fBncurses\fR library handles insert-character and insert-character modes -in a slightly non-standard way to get better update efficiency. -See -the \fBInsert/Delete Character\fR subsection above. -.PP -The parameter substitutions for \fBset_clock\fR and \fBdisplay_clock\fR are -not documented in SVr4 or the XSI Curses standard. -They are deduced from the -documentation for the AT&T 505 terminal. -.PP -Be careful assigning the \fBkmous\fR capability. -The \fBncurses\fR wants to -interpret it as \fBKEY_MOUSE\fR, for use by terminals and emulators like xterm -that can return mouse-tracking information in the keyboard-input stream. -.PP -Different commercial ports of terminfo and curses support different subsets of -the XSI Curses standard and (in some cases) different extension sets. -Here -is a summary, accurate as of October 1995: -.PP -\fBSVR4, Solaris, ncurses\fR -- -These support all SVr4 capabilities. -.PP -\fBSGI\fR -- -Supports the SVr4 set, adds one undocumented extended string -capability (\fBset_pglen\fR). -.PP -\fBSVr1, Ultrix\fR -- -These support a restricted subset of terminfo capabilities. -The booleans -end with \fBxon_xoff\fR; the numerics with \fBwidth_status_line\fR; and the -strings with \fBprtr_non\fR. -.PP -\fBHP/UX\fR -- -Supports the SVr1 subset, plus the SVr[234] numerics \fBnum_labels\fR, -\fBlabel_height\fR, \fBlabel_width\fR, plus function keys 11 through 63, plus -\fBplab_norm\fR, \fBlabel_on\fR, and \fBlabel_off\fR, plus some incompatible -extensions in the string table. -.PP -\fBAIX\fR -- -Supports the SVr1 subset, plus function keys 11 through 63, plus a number -of incompatible string table extensions. -.PP -\fBOSF\fR -- -Supports both the SVr4 set and the AIX extensions. -.SH FILES -.TP 25 -\*d/?/* -files containing terminal descriptions -.SH SEE ALSO -\fBtic\fR(1M), -\fBinfocmp\fR(1M), -\fBcurses\fR(3X), -\fBprintf\fR(3S), -\fBterm\fR(\*n). -.SH AUTHORS -Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey. -Based on pcurses by Pavel Curtis. -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/tic.1m b/Build/source/libs/ncurses/man/tic.1m deleted file mode 100644 index 053b31f0f8e..00000000000 --- a/Build/source/libs/ncurses/man/tic.1m +++ /dev/null @@ -1,313 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: tic.1m,v 1.37 2004/07/05 13:09:39 tom Exp $ -.TH tic 1M "" -.ds n 5 -.ds d @TERMINFO@ -.SH NAME -\fBtic\fR - the \fIterminfo\fR entry-description compiler -.SH SYNOPSIS -\fBtic\fR -[\fB-\ -1\ -C\ -G\ -I\ -L\ -N\ -T\ -V\ -a\ -c\ -f\ -g\ -r\ -s\ -t\ -x\ -\fR] -[\fB-e\fR \fInames\fR] -[\fB-o\fR \fIdir\fR] -[\fB-R\fR \fIsubset\fR] -[\fB-v\fR[\fIn\fR]] -[\fB-w\fR[\fIn\fR]] -\fIfile\fR -.br -.SH DESCRIPTION -The command \fBtic\fR translates a \fBterminfo\fR file from source -format into compiled format. The compiled format is necessary for use with -the library routines in \fBncurses\fR(3X). -.PP -The results are normally placed in the system terminfo -directory \fB\*d\fR. There are two ways to change this behavior. -.PP -First, you may override the system default by setting the variable -\fBTERMINFO\fR in your shell environment to a valid (existing) directory name. -.PP -Secondly, if \fBtic\fR cannot get access to \fI\*d\fR or your TERMINFO -directory, it looks for the directory \fI$HOME/.terminfo\fR; if that directory -exists, the entry is placed there. -.PP -Libraries that read terminfo entries are expected to check for a TERMINFO -directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and -finally look in \fI\*d\fR. -.TP -\fB-1\fR -restricts the output to a single column -.TP -\fB-a\fR -tells \fBtic\fP to retain commented-out capabilities rather than discarding -them. Capabilities are commented by prefixing them with a period. -This sets the \fB-x\fR option, because it treats the commented-out -entries as user-defined names. -If the source is termcap, accept the 2-character names required by version 6. -Otherwise these are ignored. -.TP -\fB-C\fR -Force source translation to termcap format. Note: this differs from the \fB-C\fR -option of \fIinfocmp\fR(1M) in that it does not merely translate capability -names, but also translates terminfo strings to termcap format. Capabilities -that are not translatable are left in the entry under their terminfo names -but commented out with two preceding dots. -.TP -\fB-c\fR -tells \fBtic\fP to only check \fIfile\fR for errors, including syntax problems and -bad use links. If you specify \fB-C\fR (\fB-I\fR) with this option, the code -will print warnings about entries which, after use resolution, are more than -1023 (4096) bytes long. Due to a fixed buffer length in older termcap -libraries (and a documented limit in terminfo), these entries may cause core -dumps. -.TP -\fB-e \fR\fInames\fR -Limit writes and translations to the following comma-separated list of -terminals. -If any name or alias of a terminal matches one of the names in -the list, the entry will be written or translated as normal. -Otherwise no output will be generated for it. -The option value is interpreted as a file containing the list if it -contains a '/'. -(Note: depending on how tic was compiled, this option may require \fB-I\fR or \fB-C\fR.) -.TP -\fB-f\fR -Display complex terminfo strings which contain if/then/else/endif expressions -indented for readability. -.TP -\fB-G\fR -Display constant literals in decimal form -rather than their character equivalents. -.TP -\fB-g\fR -Display constant character literals in quoted form -rather than their decimal equivalents. -.TP -\fB-I\fR -Force source translation to terminfo format. -.TP -\fB-L\fR -Force source translation to terminfo format -using the long C variable names listed in <\fBterm.h\fR> -.TP -\fB-N\fR -Disable smart defaults. -Normally, when translating from termcap to terminfo, the compiler makes -a number of assumptions about the defaults of string capabilities -\fBreset1_string\fR, \fBcarriage_return\fR, \fBcursor_left\fR, -\fBcursor_down\fR, \fBscroll_forward\fR, \fBtab\fR, \fBnewline\fR, -\fBkey_backspace\fR, \fBkey_left\fR, and \fBkey_down\fR, then attempts -to use obsolete termcap capabilities to deduce correct values. It also -normally suppresses output of obsolete termcap capabilities such as \fBbs\fR. -This option forces a more literal translation that also preserves the -obsolete capabilities. -.TP -\fB-o\fR\fIdir\fR -Write compiled entries to given directory. Overrides the TERMINFO environment -variable. -.TP -\fB-R\fR\fIsubset\fR -Restrict output to a given subset. This option is for use with archaic -versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support -the full set of SVR4/XSI Curses terminfo; and outright broken ports like AIX 3.x -that have their own extensions incompatible with SVr4/XSI. Available subsets -are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see \fBterminfo\fR(\*n) for details. -.TP -\fB-r\fR -Force entry resolution (so there are no remaining tc capabilities) even -when doing translation to termcap format. This may be needed if you are -preparing a termcap file for a termcap library (such as GNU termcap through -version 1.3 or BSD termcap through 4.3BSD) that does not handle multiple -tc capabilities per entry. -.TP -\fB-s\fR -Summarize the compile by showing the directory into which entries -are written, and the number of entries which are compiled. -.TP -\fB-T\fR -eliminates size-restrictions on the generated text. -This is mainly useful for testing and analysis, since the compiled -descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo). -.TP -\fB-t\fR -tells \fBtic\fP to discard commented-out capabilities. -Normally when translating from terminfo to termcap, -untranslatable capabilities are commented-out. -.TP -\fB-V\fR -reports the version of ncurses which was used in this program, and exits. -.TP -\fB-v\fR\fIn\fR -specifies that (verbose) output be written to standard error trace -information showing \fBtic\fR's progress. The optional integer -\fIn\fR is a number from 1 to 10, inclusive, indicating the desired -level of detail of information. If \fIn\fR is omitted, the default -level is 1. If \fIn\fR is specified and greater than 1, the level of -detail is increased. -.TP -\fB-w\fR\fIn\fR -specifies the width of the output. -.TP -\fB-x\fR -Treat unknown capabilities as user-defined. -That is, if you supply a capability name which \fBtic\fP does not recognize, -it will infer its type (boolean, number or string) from the syntax and -make an extended table entry for that. -.TP -\fIfile\fR -contains one or more \fBterminfo\fR terminal descriptions in source -format [see \fBterminfo\fR(\*n)]. Each description in the file -describes the capabilities of a particular terminal. -.PP -The debug flag levels are as follows: -.TP -1 -Names of files created and linked -.TP -2 -Information related to the ``use'' facility -.TP -3 -Statistics from the hashing algorithm -.TP -5 -String-table memory allocations -.TP -7 -Entries into the string-table -.TP -8 -List of tokens encountered by scanner -.TP -9 -All values computed in construction of the hash table -.LP -If the debug level \fIn\fR is not given, it is taken to be one. -.PP -All but one of the capabilities recognized by \fBtic\fR are documented -in \fBterminfo\fR(\*n). The exception is the \fBuse\fR capability. - -When a \fBuse\fR=\fIentry\fR-\fIname\fR field is discovered in a -terminal entry currently being compiled, \fBtic\fR reads in the binary -from \fB\*d\fR to complete the entry. (Entries created from -\fIfile\fR will be used first. If the environment variable -\fBTERMINFO\fR is set, that directory is searched instead of -\fB\*d\fR.) \fBtic\fR duplicates the capabilities in -\fIentry\fR-\fIname\fR for the current entry, with the exception of -those capabilities that explicitly are defined in the current entry. - -When an entry, e.g., \fBentry_name_1\fR, contains a -\fBuse=\fR\fIentry\fR_\fIname\fR_\fI2\fR field, any canceled -capabilities in \fIentry\fR_\fIname\fR_\fI2\fR must also appear in -\fBentry_name_1\fR before \fBuse=\fR for these capabilities to be -canceled in \fBentry_name_1\fR. - -If the environment variable \fBTERMINFO\fR is set, the compiled -results are placed there instead of \fB\*d\fR. - -Total compiled entries cannot exceed 4096 bytes. The name field cannot -exceed 512 bytes. Terminal names exceeding the maximum alias length -(32 characters on systems with long filenames, 14 characters otherwise) -will be truncated to the maximum alias length and a warning message will be printed. -.SH COMPATIBILITY -There is some evidence that historic \fBtic\fR implementations treated -description fields with no whitespace in them as additional aliases or -short names. This \fBtic\fR does not do that, but it does warn when -description fields may be treated that way and check them for dangerous -characters. -.SH EXTENSIONS -Unlike the stock SVr4 \fBtic\fR command, this implementation can actually -compile termcap sources. In fact, entries in terminfo and termcap syntax can -be mixed in a single source file. See \fBterminfo\fR(\*n) for the list of -termcap names taken to be equivalent to terminfo names. - -The SVr4 manual pages are not clear on the resolution rules for \fBuse\fR -capabilities. -This implementation of \fBtic\fR will find \fBuse\fR targets anywhere -in the source file, or anywhere in the file tree rooted at \fBTERMINFO\fR (if -\fBTERMINFO\fR is defined), or in the user's \fI$HOME/.terminfo\fR directory -(if it exists), or (finally) anywhere in the system's file tree of -compiled entries. - -The error messages from this \fBtic\fR have the same format as GNU C -error messages, and can be parsed by GNU Emacs's compile facility. - -The -\fB-C\fR, -\fB-G\fR, -\fB-I\fR, -\fB-N\fR, -\fB-R\fR, -\fB-T\fR, -\fB-V\fR, -\fB-a\fR, -\fB-e\fR, -\fB-f\fR, -\fB-g\fR, -\fB-o\fR, -\fB-r\fR, -\fB-s\fR, -\fB-t\fR and -\fB-x\fR -options -are not supported under SVr4. -The SVr4 \fB-c\fR mode does not report bad use links. - -System V does not compile entries to or read entries from your -\fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it. -.SH FILES -.TP 5 -\fB\*d/?/*\fR -Compiled terminal description database. -.SH SEE ALSO -\fB@INFOCMP@\fR(1M), \fB@CAPTOINFO@\fR(1M), \fB@INFOTOCAP@\fR(1M), -\fB@TOE@\fR(1M), \fBcurses\fR(3X), \fBterminfo\fR(\*n). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/toe.1m b/Build/source/libs/ncurses/man/toe.1m deleted file mode 100644 index b7dc95963e4..00000000000 --- a/Build/source/libs/ncurses/man/toe.1m +++ /dev/null @@ -1,81 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: toe.1m,v 1.13 2004/07/05 13:16:08 tom Exp $ -.TH toe 1M "" -.ds n 5 -.ds d @TERMINFO@ -.SH NAME -\fBtoe\fR - table of (terminfo) entries -.SH SYNOPSIS -\fBtoe\fR [\fB-v\fR[\fIn\fR]] [\fB-huUV\fR] \fIfile...\fR -.br -.SH DESCRIPTION -.PP -With no options, \fBtoe\fR lists all available terminal types by primary name -with descriptions. File arguments specify the directories to be scanned; if no -such arguments are given, your default terminfo directory is scanned. If you -also specify the \fB-h\fR option, a directory header will be issued as each -directory is entered. -.PP -There are other options intended for use by terminfo file maintainers: -.TP -\fB-u\fR \fIfile\fR -says to issue a report on dependencies in the given file. This report condenses -the `use' relation: each line consists of the primary name of a terminal that -has use capabilities, followed by a colon, followed by the -whitespace-separated primary names of all terminals which occur in those use -capabilities, followed by a newline -.TP -\fB-U\fR \fIfile\fR -says to issue a report on reverse dependencies in the given file. This report -reverses the `use' relation: each line consists of the primary name of a -terminal that occurs in use capabilities, followed by a colon, followed by the -whitespace-separated primary names of all terminals which depend on it, -followed by a newline. -.TP -\fB-v\fR\fIn\fR -specifies that (verbose) output be written to standard error trace -information showing \fBtoe\fR's progress. The optional integer -\fIn\fR is a number from 1 to 10, interpreted as for \fBtic\fR(1). -.TP 5 -\fB-V\fR -reports the version of ncurses which was used in this program, and exits. -.SH FILES -.TP 5 -\fB\*d/?/*\fR -Compiled terminal description database. -.SH SEE ALSO -\fB@TIC@\fR(1M), \fB@INFOCMP@\fR(1M), \fB@CAPTOINFO@\fR(1M), -\fB@INFOTOCAP@\fR(1M), \fBcurses\fR(3X), \fBterminfo\fR(\*n). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/tput.1 b/Build/source/libs/ncurses/man/tput.1 deleted file mode 100644 index 7aedb352063..00000000000 --- a/Build/source/libs/ncurses/man/tput.1 +++ /dev/null @@ -1,288 +0,0 @@ -'\" t -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: tput.1,v 1.21 2004/07/05 13:16:08 tom Exp $ -.TH tput 1 "" -.ds d @TERMINFO@ -.ds n 1 -.SH NAME -\fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database -.SH SYNOPSIS -\fBtput\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ] -.br -\fBtput\fR [\fB-T\fR\fItype\fR] \fBinit\fR -.br -\fBtput\fR [\fB-T\fR\fItype\fR] \fBreset\fR -.br -\fBtput\fR [\fB-T\fR\fItype\fR] \fBlongname\fR -.br -\fBtput -S\fR \fB<<\fR -.br -\fBtput -V\fR -.br -.SH DESCRIPTION -The \fBtput\fR utility uses the \fBterminfo\fR database to make the -values of terminal-dependent capabilities and information available to -the shell (see \fBsh\fR(1)), to initialize or reset the terminal, or -return the long name of the requested terminal type. \fBtput\fR -outputs a string if the attribute (\fIcap\fRability \fIname\fR) is of -type string, or an integer if the attribute is of type integer. If -the attribute is of type boolean, \fBtput\fR simply sets the exit code -(\fB0\fR for TRUE if the terminal has the capability, \fB1\fR for -FALSE if it does not), and produces no output. Before using a value -returned on standard output, the user should test the exit code -[\fB$?\fR, see \fBsh\fR(1)] to be sure it is \fB0\fR. -(See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.) -For a complete list of capabilities -and the \fIcapname\fR associated with each, see \fBterminfo\fR(\*n). -.TP -\fB-T\fR\fItype\fR -indicates the \fItype\fR of terminal. Normally this option is -unnecessary, because the default is taken from the environment -variable \fBTERM\fR. If \fB-T\fR is specified, then the shell -variables \fBLINES\fR and \fBCOLUMNS\fR will be ignored,and the -operating system will not be queried for the actual screen size. -.TP -\fIcapname\fR -indicates the attribute from the \fBterminfo\fR database. When -\fBtermcap\fR support is compiled in, the \fBtermcap\fR name for -the attribute is also accepted. -.TP -\fIparms\fR -If the attribute is a string that takes parameters, the arguments -\fIparms\fR will be instantiated into the string. -An all-numeric argument will be passed to the attribute as a number. -.IP -Only a few terminfo capabilities require string parameters; -\fBtput\fR uses a table to decide which to pass as strings. -Normally \fBtput\fR uses \fBtparm\fR (3X) to perform the substitution. -If no parameters are given for the attribute, -\fBtput\fR writes the string without performing the substitution. -.TP -\fB-S\fR -allows more than one capability per invocation of \fBtput\fR. The -capabilities must be passed to \fBtput\fR from the standard input -instead of from the command line (see example). -Only one \fIcapname\fR is allowed per line. -The \fB-S\fR option changes the -meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the -EXIT CODES section). -.IP -Again, \fBtput\fR uses a table and the presence of parameters in its input -to decide whether to use \fBtparm\fR (3X), -and how to interpret the parameters. -.TP -\fB-V\fR -reports the version of ncurses which was used in this program, and exits. -.TP -\fBinit\fR -If the \fBterminfo\fR database is present and an entry for the user's -terminal exists (see \fB-T\fR\fItype\fR, above), the following will -occur: (1) if present, the terminal's initialization strings will be -output (\fBis1\fR, \fBis2\fR, \fBis3\fR, \fBif\fR, \fBiprog\fR), (2) -any delays (e.g., newline) specified in the entry will be set in the -tty driver, (3) tabs expansion will be turned on or off according to -the specification in the entry, and (4) if tabs are not expanded, -standard tabs will be set (every 8 spaces). If an entry does not -contain the information needed for any of the four above activities, -that activity will silently be skipped. -.TP -\fBreset\fR -Instead of putting out initialization strings, the terminal's -reset strings will be output if present (\fBrs1\fR, \fBrs2\fR, \fBrs3\fR, \fBrf\fR). -If the reset strings are not present, but initialization -strings are, the initialization strings will be output. -Otherwise, \fBreset\fR acts identically to \fBinit\fR. -.TP -\fBlongname\fR -If the \fBterminfo\fR database is present and an entry for the -user's terminal exists (see \fB-T\fR\fItype\fR above), then the long name -of the terminal will be put out. The long name is the last -name in the first line of the terminal's description in the -\fBterminfo\fR database [see \fBterm\fR(5)]. -.PP -If \fBtput\fR is invoked by a link named \fBreset\fR, this has the -same effect as \fBtput reset\fR. -See \fBtset\fR for comparison, which has similar behavior. -.SH EXAMPLES -.TP 5 -\fBtput init\fR -Initialize the terminal according to the type of -terminal in the environmental variable \fBTERM\fR. This -command should be included in everyone's .profile after -the environmental variable \fBTERM\fR has been exported, as -illustrated on the \fBprofile\fR(5) manual page. -.TP 5 -\fBtput -T5620 reset\fR -Reset an AT&T 5620 terminal, overriding the type of -terminal in the environmental variable \fBTERM\fR. -.TP 5 -\fBtput cup 0 0\fR -Send the sequence to move the cursor to row \fB0\fR, column \fB0\fR -(the upper left corner of the screen, usually known as the "home" -cursor position). -.TP 5 -\fBtput clear\fR -Echo the clear-screen sequence for the current terminal. -.TP 5 -\fBtput cols\fR -Print the number of columns for the current terminal. -.TP 5 -\fBtput -T450 cols\fR -Print the number of columns for the 450 terminal. -.TP 5 -\fBbold=`tput smso` offbold=`tput rmso`\fR -Set the shell variables \fBbold\fR, to begin stand-out mode -sequence, and \fBoffbold\fR, to end standout mode sequence, -for the current terminal. This might be followed by a -prompt: \fBecho "${bold}Please type in your name: ${offbold}\\c"\fR -.TP 5 -\fBtput hc\fR -Set exit code to indicate if the current terminal is a hard copy terminal. -.TP 5 -\fBtput cup 23 4\fR -Send the sequence to move the cursor to row 23, column 4. -.TP 5 -\fBtput cup\fR -Send the terminfo string for cursor-movement, with no parameters substituted. -.TP 5 -\fBtput longname\fR -Print the long name from the \fBterminfo\fR database for the -type of terminal specified in the environmental -variable \fBTERM\fR. -.PP -.RS 5 -\fBtput -S < clear\fR -.br -\fB> cup 10 10\fR -.br -\fB> bold\fR -.br -\fB> !\fR -.RE -.TP 5 -\& -This example shows \fBtput\fR processing several capabilities in one invocation. -It clears the screen, -moves the cursor to position 10, 10 -and turns on bold (extra bright) mode. -The list is terminated by an exclamation mark (\fB!\fR) on a line by itself. -.SH FILES -.TP -\fB\*d\fR -compiled terminal description database -.TP -\fB/usr/include/curses.h\fR -\fBcurses\fR(3X) header file -.TP -\fB/usr/include/term.h\fR -\fBterminfo\fR header file -.TP -\fB@DATADIR@/tabset/*\fR -tab settings for some terminals, in a format -appropriate to be output to the terminal (escape -sequences that set margins and tabs); for more -information, see the "Tabs and Initialization" -section of \fBterminfo\fR(5) -.SH EXIT CODES -If the \fB-S\fR option is used, -\fBtput\fR checks for errors from each line, -and if any errors are found, will set the exit code to 4 plus the -number of lines with errors. -If no errors are found, the exit code is \fB0\fR. -No indication of which line failed can be given so -exit code \fB1\fR will never appear. Exit codes \fB2\fR, \fB3\fR, and -\fB4\fR retain their usual interpretation. -If the \fB-S\fR option is not used, -the exit code depends on the type of \fIcapname\fR: -.RS 5 -.TP -.I boolean -a value of \fB0\fR is set for TRUE and \fB1\fR for FALSE. -.TP -.I string -a value of \fB0\fR is set if the -\fIcapname\fR is defined for this terminal \fItype\fR (the value of -\fIcapname\fR is returned on standard output); -a value of \fB1\fR is set if \fIcapname\fR -is not defined for this terminal \fItype\fR -(nothing is written to standard output). -.TP -.I integer -a value of \fB0\fR is always set, -whether or not \fIcapname\fR is defined for this terminal \fItype\fR. -To determine if \fIcapname\fR is defined for this terminal \fItype\fR, -the user must test the value written to standard output. -A value of \fB-1\fR -means that \fIcapname\fR is not defined for this terminal \fItype\fR. -.TP -.I other -\fBreset\fR or \fBinit\fR may fail to find their respective files. -In that case, the exit code is set to 4 + \fBerrno\fR. -.RE -.PP -Any other exit code indicates an error; see the DIAGNOSTICS section. -.SH DIAGNOSTICS -\fBtput\fR prints the following error messages and sets the corresponding exit -codes. -.PP -.ne 15 -.TS -l l. -exit code error message -= -\fB0\fR T{ -(\fIcapname\fR is a numeric variable that is not specified in the -\fBterminfo\fR(\*n) database for this terminal type, e.g. -\fBtput -T450 lines\fR and \fBtput -T2621 xmc\fR) -T} -\fB1\fR no error message is printed, see the \fBEXIT CODES\fR section. -\fB2\fR usage error -\fB3\fR unknown terminal \fItype\fR or no \fBterminfo\fR database -\fB4\fR unknown \fBterminfo\fR capability \fIcapname\fR -\fB>4\fR error occurred in -S -= -.TE -.SH PORTABILITY -The \fBlongname\fR and \fB-S\fR options, and the parameter-substitution -features used in the \fBcup\fR example, are not supported in BSD curses or in -AT&T/USL curses before SVr4. -.SH SEE ALSO -\fB@CLEAR@\fR(1), -\fBstty\fR(1), -\fBtabs\fR(\*n), -\fBterminfo\fR(5). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/man/tset.1 b/Build/source/libs/ncurses/man/tset.1 deleted file mode 100644 index 5f89b725e10..00000000000 --- a/Build/source/libs/ncurses/man/tset.1 +++ /dev/null @@ -1,254 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" $Id: tset.1,v 1.14 2004/07/05 13:16:08 tom Exp $ -.TH tset 1 "" -.SH NAME -\fBtset\fR, \fBreset\fR - terminal initialization -.SH SYNOPSIS -\fBtset\fR [\fB-IQVqrs\fR] [\fB-\fR] [\fB-e\fR \fIch\fR] [\fB-i\fR \fIch\fR] [\fB-k\fR \fIch\fR] [\fB-m\fR \fImapping\fR] [\fIterminal\fR] -.br -A -\fBreset\fR [\fB-IQVqrs\fR] [\fB-\fR] [\fB-e\fR \fIch\fR] [\fB-i\fR \fIch\fR] [\fB-k\fR \fIch\fR] [\fB-m\fR \fImapping\fR] [\fIterminal\fR] -.SH DESCRIPTION -\&\fBTset\fR initializes terminals. -\fBTset\fR first determines the type of terminal that you are using. -This determination is done as follows, using the first terminal type found. -.PP -1. The \fBterminal\fR argument specified on the command line. -.PP -2. The value of the \fBTERM\fR environmental variable. -.PP -3. (BSD systems only.) The terminal type associated with the standard -error output device in the \fI/etc/ttys\fR file. (On Linux and -System-V-like UNIXes, \fIgetty\fR does this job by setting -\fBTERM\fR according to the type passed to it by \fI/etc/inittab\fR.) -.PP -4. The default terminal type, ``unknown''. -.PP -If the terminal type was not specified on the command-line, the \fB-m\fR -option mappings are then applied (see below for more information). -Then, if the terminal type begins with a question mark (``?''), the -user is prompted for confirmation of the terminal type. An empty -response confirms the type, or, another type can be entered to specify -a new type. Once the terminal type has been determined, the terminfo -entry for the terminal is retrieved. If no terminfo entry is found -for the type, the user is prompted for another terminal type. -.PP -Once the terminfo entry is retrieved, the window size, backspace, interrupt -and line kill characters (among many other things) are set and the terminal -and tab initialization strings are sent to the standard error output. -Finally, if the erase, interrupt and line kill characters have changed, -or are not set to their default values, their values are displayed to the -standard error output. -.PP -When invoked as \fBreset\fR, \fBtset\fR sets cooked and echo modes, -turns off cbreak and raw modes, turns on newline translation and -resets any unset special characters to their default values before -doing the terminal initialization described above. This is useful -after a program dies leaving a terminal in an abnormal state. Note, -you may have to type - - \fBreset\fR - -(the line-feed character is normally control-J) to get the terminal -to work, as carriage-return may no longer work in the abnormal state. -Also, the terminal will often not echo the command. -.PP -The options are as follows: -.TP 5 -.B -q -The terminal type is displayed to the standard output, and the terminal is -not initialized in any way. The option `-' by itself is equivalent but -archaic. -.TP -.B -e -Set the erase character to \fIch\fR. -.TP -.B -I -Do not send the terminal or tab initialization strings to the terminal. -.TP -.B -Q -Don't display any values for the erase, interrupt and line kill characters. -.TP -.B -V -reports the version of ncurses which was used in this program, and exits. -.TP -.B -i -Set the interrupt character to \fIch\fR. -.TP -.B -k -Set the line kill character to \fIch\fR. -.TP -.B -m -Specify a mapping from a port type to a terminal. -See below for more information. -.TP -.B -r -Print the terminal type to the standard error output. -.TP -.B -s -Print the sequence of shell commands to initialize the environment variable -\fBTERM\fR to the standard output. -See the section below on setting the environment for details. -.PP -The arguments for the \fB-e\fR, \fB-i\fR, and \fB-k\fR -options may either be entered as actual characters or by using the `hat' -notation, i.e. control-h may be specified as ``^H'' or ``^h''. -.SH SETTING THE ENVIRONMENT -It is often desirable to enter the terminal type and information about -the terminal's capabilities into the shell's environment. -This is done using the \fB-s\fR option. -.PP -When the \fB-s\fR option is specified, the commands to enter the information -into the shell's environment are written to the standard output. If -the \fBSHELL\fR environmental variable ends in ``csh'', the commands -are for \fBcsh\fR, otherwise, they are for \fBsh\fR. -Note, the \fBcsh\fR commands set and unset the shell variable -\fBnoglob\fR, leaving it unset. The following line in the \fB.login\fR -or \fB.profile\fR files will initialize the environment correctly: - - eval \`tset -s options ... \` - -.SH TERMINAL TYPE MAPPING -When the terminal is not hardwired into the system (or the current -system information is incorrect) the terminal type derived from the -\fI/etc/ttys\fR file or the \fBTERM\fR environmental variable is often -something generic like \fBnetwork\fR, \fBdialup\fR, or \fBunknown\fR. -When \fBtset\fR is used in a startup script it is often desirable to -provide information about the type of terminal used on such ports. -.PP -The purpose of the \fB-m\fR option is to map -from some set of conditions to a terminal type, that is, to -tell \fBtset\fR -``If I'm on this port at a particular speed, guess that I'm on that -kind of terminal''. -.PP -The argument to the \fB-m\fR option consists of an optional port type, an -optional operator, an optional baud rate specification, an optional -colon (``:'') character and a terminal type. The port type is a -string (delimited by either the operator or the colon character). The -operator may be any combination of ``>'', ``<'', ``@'', and ``!''; ``>'' -means greater than, ``<'' means less than, ``@'' means equal to -and ``!'' inverts the sense of the test. -The baud rate is specified as a number and is compared with the speed -of the standard error output (which should be the control terminal). -The terminal type is a string. -.PP -If the terminal type is not specified on the command line, the \fB-m\fR -mappings are applied to the terminal type. If the port type and baud -rate match the mapping, the terminal type specified in the mapping -replaces the current type. If more than one mapping is specified, the -first applicable mapping is used. -.PP -For example, consider the following mapping: \fBdialup>9600:vt100\fR. -The port type is dialup , the operator is >, the baud rate -specification is 9600, and the terminal type is vt100. The result of -this mapping is to specify that if the terminal type is \fBdialup\fR, -and the baud rate is greater than 9600 baud, a terminal type of -\fBvt100\fR will be used. -.PP -If no baud rate is specified, the terminal type will match any baud rate. -If no port type is specified, the terminal type will match any port type. -For example, \fB-m dialup:vt100 -m :?xterm\fR -will cause any dialup port, regardless of baud rate, to match the terminal -type vt100, and any non-dialup port type to match the terminal type ?xterm. -Note, because of the leading question mark, the user will be -queried on a default port as to whether they are actually using an xterm -terminal. -.PP -No whitespace characters are permitted in the \fB-m\fR option argument. -Also, to avoid problems with meta-characters, it is suggested that the -entire \fB-m\fR option argument be placed within single quote characters, -and that \fBcsh\fR users insert a backslash character (``\e'') before -any exclamation marks (``!''). -.SH HISTORY -The \fBtset\fR command appeared in BSD 3.0. The \fBncurses\fR implementation -was lightly adapted from the 4.4BSD sources for a terminfo environment by Eric -S. Raymond . -.SH COMPATIBILITY -The \fBtset\fR utility has been provided for backward-compatibility with BSD -environments (under most modern UNIXes, \fB/etc/inittab\fR and \fIgetty\fR(1) -can set \fBTERM\fR appropriately for each dial-up line; this obviates what was -\fBtset\fR's most important use). This implementation behaves like 4.4BSD -tset, with a few exceptions specified here. -.PP -The \fB-S\fR option of BSD tset no longer works; it prints an error message to stderr -and dies. The \fB-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP. Both these -changes are because the \fBTERMCAP\fR variable is no longer supported under -terminfo-based \fBncurses\fR, which makes \fBtset -S\fR useless (we made it die -noisily rather than silently induce lossage). -.PP -There was an undocumented 4.4BSD feature that invoking tset via a link named -`TSET` (or via any other name beginning with an upper-case letter) set the -terminal to use upper-case only. This feature has been omitted. -.PP -The \fB-A\fR, \fB-E\fR, \fB-h\fR, \fB-u\fR and \fB-v\fR -options were deleted from the \fBtset\fR -utility in 4.4BSD. -None of them were documented in 4.3BSD and all are -of limited utility at best. -The \fB-a\fR, \fB-d\fR, and \fB-p\fR options are similarly -not documented or useful, but were retained as they appear to be in -widespread use. It is strongly recommended that any usage of these -three options be changed to use the \fB-m\fR option instead. The --n option remains, but has no effect. The \fB-adnp\fR options are therefore -omitted from the usage summary above. -.PP -It is still permissible to specify the \fB-e\fR, \fB-i\fR, and \fB-k\fR options without -arguments, although it is strongly recommended that such usage be fixed to -explicitly specify the character. -.PP -As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the \fB-Q\fR -option. Also, the interaction between the - option and the \fIterminal\fR -argument in some historic implementations of \fBtset\fR has been removed. -.SH ENVIRONMENT -The \fBtset\fR command uses the \fBSHELL\fR and \fBTERM\fR -environment variables. -.SH FILES -.TP 5 -/etc/ttys -system port name to terminal type mapping database (BSD versions only). -.TP -@TERMINFO@ -terminal capability database -.SH SEE ALSO -csh(1), -sh(1), -stty(1), -tty(4), -termcap(5), -ttys(5), -environ(7) -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: - diff --git a/Build/source/libs/ncurses/man/wresize.3x b/Build/source/libs/ncurses/man/wresize.3x deleted file mode 100644 index ce7c10b8d95..00000000000 --- a/Build/source/libs/ncurses/man/wresize.3x +++ /dev/null @@ -1,64 +0,0 @@ -.\"*************************************************************************** -.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * -.\" * -.\" 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, distribute with modifications, 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 ABOVE 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. * -.\" * -.\" Except as contained in this notice, the name(s) of the above copyright * -.\" holders shall not be used in advertising or otherwise to promote the * -.\" sale, use or other dealings in this Software without prior written * -.\" authorization. * -.\"*************************************************************************** -.\" -.\" Author: Thomas E. Dickey 1996 -.\" -.\" $Id: wresize.3x,v 1.8 2003/10/25 20:41:08 tom Exp $ -.TH wresize 3X "" -.SH NAME -\fBwresize\fR - resize a curses window -.SH SYNOPSIS -\fB#include \fR - -\fBint wresize(WINDOW *win, int lines, int columns);\fR -.SH DESCRIPTION -The \fBwresize\fR function reallocates storage for an \fBncurses\fR -window to adjust its dimensions to the specified values. -If either dimension is larger than the current values, the -window's data is filled with blanks that have the current background rendition -(as set by \fBwbkgndset\fR) merged into them. -.SH RETURN VALUE -The function returns the integer \fBERR\fR upon failure and \fBOK\fR on success. -It will fail if either of the dimensions less than or equal to zero, -or if an error occurs while (re)allocating memory for the window. -.SH NOTES -The only restriction placed on the dimensions is that they be greater than zero. -The dimensions are not compared to \fBcurses\fR screen dimensions to -simplify the logic of \fBresizeterm\fR. -The caller must ensure that the window's dimensions fit within the -actual screen dimensions. -.SH SEE ALSO -\fBresizeterm\fR(3X). -.SH AUTHOR -Thomas Dickey (from an equivalent function written in 1988 for BSD curses). -.\"# -.\"# The following sets edit modes for GNU EMACS -.\"# Local Variables: -.\"# mode:nroff -.\"# fill-column:79 -.\"# End: diff --git a/Build/source/libs/ncurses/mk-0th.awk b/Build/source/libs/ncurses/mk-0th.awk deleted file mode 100644 index 7d3bac76d21..00000000000 --- a/Build/source/libs/ncurses/mk-0th.awk +++ /dev/null @@ -1,101 +0,0 @@ -# $Id: mk-0th.awk,v 1.15 2004/04/04 00:07:38 tom Exp $ -############################################################################## -# Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996,1997 -# -# Generate list of sources for a library, together with lint/lintlib rules -# -# Variables: -# libname (library name, e.g., "ncurses", "panel", "forms", "menus") -# -BEGIN { - print "" - print "# generated by mk-0th.awk" - print "" - print ".SUFFIXES: .c .cc .h .i .ii" - print ".c.i :" - printf "\t$(CPP) $(CPPFLAGS) $< >$@\n" - print ".cc.ii :" - printf "\t$(CPP) $(CPPFLAGS) $< >$@\n" - print ".h.i :" - printf "\t$(CPP) $(CPPFLAGS) $< >$@\n" - print "" - found = 0; - } - !/^[@#]/ { - if ( $0 != "" && $1 != "link_test" ) - { - if ( found == 0 ) - { - if ( subsets ~ /widechar/ ) - widechar = 1; - else - widechar = 0; - printf "C_SRC =" - if ( $2 == "lib" ) - found = 1 - else - found = 2 - } - if ( libname == "c++" || libname == "c++w" ) { - printf " \\\n\t%s/%s.cc", $3, $1 - } else if ( widechar == 1 || $3 != "$(wide)" ) { - printf " \\\n\t%s/%s.c", $3, $1 - } - } - } -END { - print "" - if ( found == 1 ) - { - print "" - printf "# Producing llib-l%s is time-consuming, so there's no direct-dependency for\n", libname - print "# it in the lintlib rule. We'll only remove in the cleanest setup." - print "clean ::" - printf "\trm -f llib-l%s.*\n", libname - print "" - print "realclean ::" - printf "\trm -f llib-l%s\n", libname - print "" - printf "llib-l%s : $(C_SRC)\n", libname - printf "\tcproto -a -l -DNCURSES_ENABLE_STDBOOL_H=0 -DLINT $(CPPFLAGS) $(C_SRC) >$@\n" - print "" - print "lintlib :" - printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)", libname - print "" - print "lint :" - print "\t$(LINT) $(LINT_OPTS) $(CPPFLAGS) $(C_SRC) $(LINT_LIBS)" - } - else - { - print "" - print "lintlib :" - print "\t@echo no action needed" - } - } diff --git a/Build/source/libs/ncurses/mk-1st.awk b/Build/source/libs/ncurses/mk-1st.awk deleted file mode 100644 index 4f045e7cf50..00000000000 --- a/Build/source/libs/ncurses/mk-1st.awk +++ /dev/null @@ -1,373 +0,0 @@ -# $Id: mk-1st.awk,v 1.63 2004/01/31 23:40:12 tom Exp $ -############################################################################## -# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey -# -# Generate list of objects for a given model library -# Variables: -# name (library name, e.g., "ncurses", "panel", "forms", "menus") -# model (directory into which we compile, e.g., "obj") -# prefix (e.g., "lib", for Unix-style libraries) -# suffix (e.g., "_g.a", for debug libraries) -# MODEL (e.g., "DEBUG", uppercase; toupper is not portable) -# depend (optional dependencies for all objects, e.g, ncurses_cfg.h) -# subset ("none", "base", "base+ext_funcs" or "termlib") -# host (cross-compile host, if any) -# ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable) -# ShlibVerInfix ("yes" or "no", determines location of version #) -# DoLinks ("yes", "reverse" or "no", flag to add symbolic links) -# rmSoLocs ("yes" or "no", flag to add extra clean target) -# overwrite ("yes" or "no", flag to add link to libcurses.a -# -# Notes: -# CLIXs nawk does not like underscores in command-line variable names. -# Mixed-case is ok. -# HP/UX requires shared libraries to have executable permissions. -# -function symlink(src,dst) { - if ( src != dst ) { - printf "rm -f %s; ", dst - printf "$(LN_S) %s %s; ", src, dst - } - } -function rmlink(directory, dst) { - printf "\t-rm -f %s/%s\n", directory, dst -} -function removelinks(directory) { - rmlink(directory, end_name); - if ( DoLinks == "reverse" ) { - if ( ShlibVer == "rel" ) { - rmlink(directory, abi_name); - rmlink(directory, rel_name); - } else if ( ShlibVer == "abi" ) { - rmlink(directory, abi_name); - } - } else { - if ( ShlibVer == "rel" ) { - rmlink(directory, abi_name); - rmlink(directory, lib_name); - } else if ( ShlibVer == "abi" ) { - rmlink(directory, lib_name); - } - } - } -function sharedlinks(directory) { - if ( ShlibVer != "auto" && ShlibVer != "cygdll" ) { - printf "\tcd %s && (", directory - if ( DoLinks == "reverse" ) { - if ( ShlibVer == "rel" ) { - symlink(lib_name, abi_name); - symlink(abi_name, rel_name); - } else if ( ShlibVer == "abi" ) { - symlink(lib_name, abi_name); - } - } else { - if ( ShlibVer == "rel" ) { - symlink(rel_name, abi_name); - symlink(abi_name, lib_name); - } else if ( ShlibVer == "abi" ) { - symlink(abi_name, lib_name); - } - } - printf ")\n" - } - } -BEGIN { - found = 0 - using = 0 - } - /^@/ { - using = 0 - if (subset == "none") { - using = 1 - } else if (index(subset,$2) > 0) { - if (using == 0) { - if (found == 0) { - print "" - printf "# generated by mk-1st.awk (subset=%s)\n", subset - print "" - } - using = 1 - } - if ( subset == "termlib" || subset == "termlib+ext_tinfo" ) { - OBJS = MODEL "_T" - } else { - OBJS = MODEL - } - } - } - /^[@#]/ { - next - } - $1 ~ /trace/ { - if (traces != "all" && traces != MODEL && $1 != "lib_trace") - next - } - { - if (using \ - && ( $1 != "link_test" ) \ - && ( $2 == "lib" \ - || $2 == "progs" \ - || $2 == "c++" \ - || $2 == "tack" )) - { - if ( found == 0 ) - { - printf "%s_OBJS =", OBJS - if ( $2 == "lib" ) - found = 1 - else - found = 2 - } - printf " \\\n\t../%s/%s$o", model, $1 - } - } -END { - print "" - if ( found != 0 ) - { - printf "\n$(%s_OBJS) : %s\n", OBJS, depend - } - if ( found == 1 ) - { - print "" - lib_name = sprintf("%s%s%s", prefix, name, suffix) - if ( MODEL == "SHARED" ) - { - if (ShlibVerInfix == "cygdll") { - abi_name = sprintf("%s%s$(ABI_VERSION)%s", "cyg", name, suffix); - rel_name = sprintf("%s%s$(REL_VERSION)%s", "cyg", name, suffix); - imp_name = sprintf("%s%s%s.a", prefix, name, suffix); - } else if (ShlibVerInfix == "yes") { - abi_name = sprintf("%s%s.$(ABI_VERSION)%s", prefix, name, suffix); - rel_name = sprintf("%s%s.$(REL_VERSION)%s", prefix, name, suffix); - } else { - abi_name = sprintf("%s.$(ABI_VERSION)", lib_name); - rel_name = sprintf("%s.$(REL_VERSION)", lib_name); - } - if ( DoLinks == "reverse") { - end_name = lib_name; - } else { - if ( ShlibVer == "rel" ) { - end_name = rel_name; - } else if ( ShlibVer == "abi" || ShlibVer == "cygdll" ) { - end_name = abi_name; - } else { - end_name = lib_name; - } - } - - if ( ShlibVer == "cygdll" ) { - dst_dirs = "$(DESTDIR)$(bindir) $(DESTDIR)$(libdir)"; - printf "$(SHARED_LIB) $(IMPORT_LIB) : $(%s_OBJS)\n", OBJS; - print "\t-@rm -f $(SHARED_LIB) $(IMPORT_LIB)"; - } else { - dst_dirs = "$(DESTDIR)$(libdir)"; - printf "../lib/%s : $(%s_OBJS)\n", end_name, OBJS - print "\t-@rm -f $@"; - } - if ( subset == "termlib" || subset == "termlib+ext_tinfo" ) { - printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(TINFO_LIST) $(LDFLAGS)\n", OBJS - } else { - printf "\t$(MK_SHARED_LIB) $(%s_OBJS) $(SHLIB_LIST) $(LDFLAGS)\n", OBJS - } - sharedlinks("../lib") - - print "" - print "install \\" - print "install.libs \\" - printf "install.%s :: %s $(LIBRARIES)\n", name, dst_dirs - - if ( ShlibVer == "cygdll" ) { - - src_name = sprintf("../lib/%s", end_name); - dst_name = sprintf("$(DESTDIR)$(bindir)/%s", end_name); - printf "\t@echo installing %s as %s\n", src_name, dst_name - printf "\t-@rm -f %s\n", dst_name - printf "\t$(INSTALL_LIB) %s %s\n", src_name, dst_name - - src_name = sprintf("../lib/%s", imp_name); - dst_name = sprintf("$(DESTDIR)$(libdir)/%s", imp_name); - printf "\t@echo installing %s as %s\n", src_name, dst_name - printf "\t-@rm -f %s\n", dst_name - printf "\t$(INSTALL_LIB) %s %s\n", src_name, dst_name - - } else { - - src_name = sprintf("../lib/%s", end_name); - dst_name = sprintf("$(DESTDIR)$(libdir)/%s", end_name); - printf "\t@echo installing %s as %s\n", src_name, dst_name - printf "\t-@rm -f %s\n", dst_name - printf "\t$(INSTALL_LIB) %s %s\n", src_name, dst_name - - sharedlinks("$(DESTDIR)$(libdir)") - - } - - if ( overwrite == "yes" && name == "ncurses" ) - { - if ( ShlibVer == "cygdll" ) { - ovr_name = sprintf("libcurses%s.a", suffix) - printf "\t@echo linking %s to %s\n", imp_name, ovr_name - printf "\tcd $(DESTDIR)$(libdir) && (rm -f %s; $(LN_S) %s %s; )\n", ovr_name, imp_name, ovr_name - } else { - ovr_name = sprintf("libcurses%s", suffix) - printf "\t@echo linking %s to %s\n", end_name, ovr_name - printf "\tcd $(DESTDIR)$(libdir) && (rm -f %s; $(LN_S) %s %s; )\n", ovr_name, end_name, ovr_name - } - } - if ( ldconfig != "" ) { - printf "\t- test -z \"$(DESTDIR)\" && %s\n", ldconfig - } - print "" - print "uninstall \\" - print "uninstall.libs \\" - printf "uninstall.%s ::\n", name - if ( ShlibVer == "cygdll" ) { - - printf "\t@echo uninstalling $(DESTDIR)$(bindir)/%s\n", end_name - printf "\t-@rm -f $(DESTDIR)$(bindir)/%s\n", end_name - - printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", imp_name - printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", imp_name - - } else { - printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", end_name - removelinks("$(DESTDIR)$(libdir)") - if ( overwrite == "yes" && name == "ncurses" ) - { - if ( ShlibVer == "cygdll" ) { - ovr_name = sprintf("libcurses%s.a", suffix) - } else { - ovr_name = sprintf("libcurses%s", suffix) - } - printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", ovr_name - } - } - if ( rmSoLocs == "yes" ) { - print "" - print "mostlyclean \\" - print "clean ::" - printf "\t-@rm -f so_locations\n" - } - } - else if ( MODEL == "LIBTOOL" ) - { - if ( $2 == "c++" ) { - compile="CXX" - } else { - compile="CC" - } - end_name = lib_name; - printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS - printf "\tcd ../lib && $(LIBTOOL_LINK) $(%s) -o %s $(%s_OBJS:$o=.lo) -rpath $(DESTDIR)$(libdir) -version-info $(NCURSES_MAJOR):$(NCURSES_MINOR) $(SHLIB_LIST)\n", compile, lib_name, OBJS - print "" - print "install \\" - print "install.libs \\" - printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name - printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name - printf "\tcd ../lib; $(LIBTOOL_INSTALL) $(INSTALL) %s $(DESTDIR)$(libdir)\n", lib_name - print "" - print "uninstall \\" - print "uninstall.libs \\" - printf "uninstall.%s ::\n", name - printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name - printf "\t-@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name - } - else - { - end_name = lib_name; - printf "../lib/%s : $(%s_OBJS)\n", lib_name, OBJS - printf "\t$(AR) $(AR_OPTS) $@ $?\n" - printf "\t$(RANLIB) $@\n" - if ( host == "vxworks" ) - { - printf "\t$(LD) $(LD_OPTS) $? -o $(@:.a=$o)\n" - } - print "" - print "install \\" - print "install.libs \\" - printf "install.%s :: $(DESTDIR)$(libdir) ../lib/%s\n", name, lib_name - printf "\t@echo installing ../lib/%s as $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name - printf "\t$(INSTALL_DATA) ../lib/%s $(DESTDIR)$(libdir)/%s\n", lib_name, lib_name - if ( overwrite == "yes" && lib_name == "libncurses.a" ) - { - printf "\t@echo linking libcurses.a to libncurses.a\n" - printf "\t-@rm -f $(DESTDIR)$(libdir)/libcurses.a\n" - printf "\t(cd $(DESTDIR)$(libdir) && $(LN_S) libncurses.a libcurses.a)\n" - } - printf "\t$(RANLIB) $(DESTDIR)$(libdir)/%s\n", lib_name - if ( host == "vxworks" ) - { - printf "\t@echo installing ../lib/lib%s$o as $(DESTDIR)$(libdir)/lib%s$o\n", name, name - printf "\t$(INSTALL_DATA) ../lib/lib%s$o $(DESTDIR)$(libdir)/lib%s$o\n", name, name - } - print "" - print "uninstall \\" - print "uninstall.libs \\" - printf "uninstall.%s ::\n", name - printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name - printf "\t-@rm -f $(DESTDIR)$(libdir)/%s\n", lib_name - if ( overwrite == "yes" && lib_name == "libncurses.a" ) - { - printf "\t@echo linking libcurses.a to libncurses.a\n" - printf "\t-@rm -f $(DESTDIR)$(libdir)/libcurses.a\n" - } - if ( host == "vxworks" ) - { - printf "\t@echo uninstalling $(DESTDIR)$(libdir)/lib%s$o\n", name - printf "\t-@rm -f $(DESTDIR)$(libdir)/lib%s$o\n", name - } - } - print "" - print "clean ::" - removelinks("../lib"); - print "" - print "mostlyclean::" - printf "\t-rm -f $(%s_OBJS)\n", OBJS - if ( MODEL == "LIBTOOL" ) { - printf "\t-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:$o=.lo)\n", OBJS - } - } - else if ( found == 2 ) - { - print "" - print "mostlyclean::" - printf "\t-rm -f $(%s_OBJS)\n", OBJS - if ( MODEL == "LIBTOOL" ) { - printf "\t-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:$o=.lo)\n", OBJS - } - print "" - print "clean ::" - printf "\t-rm -f $(%s_OBJS)\n", OBJS - if ( MODEL == "LIBTOOL" ) { - printf "\t-$(LIBTOOL_CLEAN) rm -f $(%s_OBJS:$o=.lo)\n", OBJS - } - } - } diff --git a/Build/source/libs/ncurses/mk-2nd.awk b/Build/source/libs/ncurses/mk-2nd.awk deleted file mode 100644 index c58e072209d..00000000000 --- a/Build/source/libs/ncurses/mk-2nd.awk +++ /dev/null @@ -1,128 +0,0 @@ -# $Id: mk-2nd.awk,v 1.17 2004/02/15 01:31:16 tom Exp $ -############################################################################## -# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey -# -# Generate compile-rules for the modules that we are using in libraries or -# programs. We are listing them explicitly because we have turned off the -# suffix rules (to force compilation with the appropriate flags). We could use -# make-recursion but that would result in makefiles that are useless for -# development. -# -# Variables: -# model -# MODEL (uppercase version of "model"; toupper is not portable) -# echo (yes iff we will show the $(CC) lines) -# subset ("none", "base", "base+ext_funcs" or "termlib") -# crenames ("yes" or "no", flag to control whether -c & -o options are used) -# cxxrenames ("yes" or "no", flag to control whether -c & -o options are used) -# -# Fields in src/modules: -# $1 = module name -# $2 = progs|lib|c++ -# $3 = source-directory -# -# Fields in src/modules past $3 are dependencies -# -BEGIN { - found = 0 - using = 0 - } - /^@/ { - using = 0 - if (subset == "none") { - using = 1 - } else if (index(subset,$2) > 0) { - if (using == 0) { - if (found == 0) { - print "" - print "# generated by mk-2nd.awk" - print "" - } - using = 1 - } - } - } - /^[@#]/ { - next - } - $1 ~ /trace/ { - if (traces != "all" && traces != MODEL && $1 != "lib_trace") - next - } - { - if ($0 != "" \ - && using != 0) { - found = 1 - if ( $1 != "" ) { - print "" - if ( $2 == "c++" ) { - compile="CXX" - suffix=".cc" - use_c_o=cxxrenames - } else { - compile="CC" - suffix=".c" - use_c_o=crenames - } - printf "../%s/%s$o :\t%s/%s%s", model, $1, $3, $1, suffix - for (n = 4; n <= NF; n++) printf " \\\n\t\t\t%s", $n - print "" - if ( echo == "yes" ) - atsign="" - else { - atsign="@" - printf "\t@echo 'compiling %s (%s)'\n", $1, model - } - printf "\t%s", atsign; - if ( use_c_o != "yes" ) { - printf "cd ../%s; ", model; - } - printf "$(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s) -c ", compile, MODEL - if ( $3 == "." || srcdir == "." ) { - dir = $3 "/" - sub("^\\$\\(srcdir\\)/","",dir); - sub("^\\./","",dir); - printf "../%s/%s%s%s", name, dir, $1, suffix - } else { - printf "%s/%s%s", $3, $1, suffix - } - if ( use_c_o == "yes" ) { - printf " -o ../%s/%s$o", model, $1 - } - } else { - printf "%s", $1 - for (n = 2; n <= NF; n++) printf " %s", $n - } - print "" - } - } -END { - print "" - } diff --git a/Build/source/libs/ncurses/mkinstalldirs b/Build/source/libs/ncurses/mkinstalldirs deleted file mode 100755 index ef7e16fdafe..00000000000 --- a/Build/source/libs/ncurses/mkinstalldirs +++ /dev/null @@ -1,161 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy - -scriptversion=2006-05-11.19 - -# Original author: Noah Friedman -# Created: 1993-05-16 -# Public domain. -# -# This file is maintained in Automake, please report -# bugs to or send patches to -# . - -nl=' -' -IFS=" "" $nl" -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 ." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" - exit $? - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --version) - echo "$0 $scriptversion" - exit $? - ;; - --) # 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 - case $file in - /*) pathcomp=/ ;; - *) pathcomp= ;; - esac - oIFS=$IFS - IFS=/ - set fnord $file - shift - IFS=$oIFS - - for d - do - test "x$d" = x && continue - - 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/Build/source/libs/ncurses/ncurses.ac b/Build/source/libs/ncurses/ncurses.ac deleted file mode 100644 index d59c1857544..00000000000 --- a/Build/source/libs/ncurses/ncurses.ac +++ /dev/null @@ -1,105 +0,0 @@ -if test "$needs_ncurses" = no; then - CURSESCPPFLAGS= - LDCURSESLIB= - CURSESDEP= -else - # - # Check for ncurses. - # - have_ncurses=no - HAVE_NCURSES_CURSES_H=no - - EXTRA_NCURSES_INCLUDE= - EXTRA_NCURSES_LIBDIR= - - if test "$with_system_ncurses" = yes; then - if test "x$with_ncurses_libdir" != x; then - EXTRA_NCURSES_LIBDIR="-L$with_ncurses_libdir" - fi - if test "x$with_ncurses_include" != x; then - EXTRA_NCURSES_INCLUDE="-I$with_ncurses_include" - fi - fi - - OLD_LDFLAGS=$LDFLAGS - OLD_CPP=$CPP - OLD_LIBS=$LIBS - - LDFLAGS="$LDFLAGS $EXTRA_NCURSES_LIBDIR" - CPP="$CPP $EXTRA_NCURSES_INCLUDE" - - CURSESCPPFLAGS= - if test "$try_ncurses" = yes; then - AC_CHECK_LIB(ncurses, wresize, have_ncurses=yes, have_ncurses=no) - if test "${have_ncurses}" = "yes" ; then - AC_DEFINE(HAVE_NCURSES) - if ( - AC_CHECK_HEADERS(ncurses/curses.h, HAVE_NCURSES_CURSES_H=yes, HAVE_NCURSES_CURSES_H=no) - test $HAVE_NCURSES_CURSES_H = yes && exit 0 - exit 1 - ) - then - HAVE_NCURSES_CURSES_H=yes - else - HAVE_NCURSES_CURSES_H=no - fi - - if ( - AC_CHECK_HEADERS(ncurses.h, HAVE_NCURSES_H=yes, HAVE_NCURSES_H=no) - test $HAVE_NCURSES_H = yes && exit 0 - exit 1 - ) - then - HAVE_NCURSES_H=yes - else - HAVE_NCURSES_H=no - fi - - if test "${HAVE_NCURSES_CURSES_H}" = no && test "${HAVE_NCURSES_H}" = no; then - # Try again, and check for the bogus ncurses/ include bug. - # (i.e. ncurses/curses.h bogusly includes instead of - # ) - AC_MSG_RESULT(Trying again with -I/usr/include/ncurses...) - OLD_CPP="${CPP}" - CPP="${CPP} -I/usr/include/ncurses" - if ( - AC_CHECK_HEADERS(ncurses/curses.h, HAVE_NCURSES_CURSES_H=yes, HAVE_NCURSES_CURSES_H=no) - test $HAVE_NCURSES_CURSES_H = yes && exit 0 - exit 1 - ) - then - HAVE_NCURSES_CURSES_H=yes - else - HAVE_NCURSES_CURSES_H=no - fi - - if test "${HAVE_NCURSES_CURSES_H}" = "yes" ; then - CURSESCPPFLAGS=-I/usr/include/ncurses - AC_MSG_RESULT([ Your system has the bogus ncurses include bug.]) - else - CPP="${OLD_CPP}" - fi - fi - fi - fi - - LDFLAGS=$OLD_LDFLAGS - CPP=$OLD_CPP - LIBS=$OLD_LIBS - - if test "${have_ncurses}" = yes && { test "${HAVE_NCURSES_CURSES_H}" = yes || test "${HAVE_NCURSES_H}" = yes; }; then - LDCURSESLIB="$EXTRA_NCURSES_LIBDIR -lncurses" - CURSESDEP= - CURSESCPPFLAGS="$CURSESCPPFLAGS $EXTRA_NCURSES_INCLUDE" - using_system_ncurses=yes - else - CURSESCPPFLAGS='-I$(NCURSESDIR)/include -I$(NCURSESSRCDIR)/include' - LDCURSESLIB='$(NCURSESDIR)/lib/libncurses.a' - CURSESDEP='$(NCURSESDIR)/lib/libncurses.a' - using_system_ncurses=no - fi -fi - -AC_SUBST(CURSESCPPFLAGS) -AC_SUBST(LDCURSESLIB) -AC_SUBST(CURSESDEP) diff --git a/Build/source/libs/ncurses/ncurses/Makefile.in b/Build/source/libs/ncurses/ncurses/Makefile.in deleted file mode 100644 index d260b02c4b3..00000000000 --- a/Build/source/libs/ncurses/ncurses/Makefile.in +++ /dev/null @@ -1,288 +0,0 @@ -# $Id: Makefile.in,v 1.94 2004/08/14 17:20:11 tom Exp $ -############################################################################## -# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996-2002 -# -# Makefile for ncurses source code. -# -# This makes the following: -# programs -# includes -# libraries (normal/debug/profile/shared) -# -# The variable 'srcdir' refers to the source-distribution, and can be set with -# the configure script by "--srcdir=DIR". -# -# The rules are organized to produce the libraries for the configured models, -# and the programs with the configured default model. - -# turn off _all_ suffix rules; we'll generate our own -.SUFFIXES: - -SHELL = /bin/sh -THIS = Makefile - -CF_MFLAGS = @cf_cv_makeflags@ -@SET_MAKE@ - -x = @EXEEXT@ -o = .@OBJEXT@ - -MODEL = @DFT_LWR_MODEL@ -DESTDIR = @DESTDIR@ -top_srcdir = @top_srcdir@ -srcdir = @srcdir@ -prefix = @prefix@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -libdir = @libdir@ -includedir = @includedir@ -datadir = @datadir@ - -LIBTOOL = @LIBTOOL@ -LIBTOOL_CLEAN = @LIB_CLEAN@ -LIBTOOL_COMPILE = @LIB_COMPILE@ -LIBTOOL_LINK = @LIB_LINK@ -LIBTOOL_INSTALL = @LIB_INSTALL@ -LIBTOOL_UNINSTALL = @LIB_UNINSTALL@ - -INSTALL = @INSTALL@ -INSTALL_LIB = @INSTALL@ @INSTALL_LIB@ -INSTALL_PROG = @INSTALL_PROG@ -INSTALL_DATA = @INSTALL_DATA@ - -AR = @AR@ -AR_OPTS = @AR_OPTS@ -AWK = @AWK@ -LD = @LD@ -LN_S = @LN_S@ - -CC = @CC@ -CPP = @CPP@ -CFLAGS = @CFLAGS@ - -INCDIR = $(srcdir)/../include -CPPFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @CPPFLAGS@ - -CCFLAGS = $(CPPFLAGS) $(CFLAGS) - -BUILD_CPPFLAGS = -I../include @BUILD_CPPFLAGS@ -BUILD_CC = @BUILD_CC@ -BUILD_CCFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) -I$(INCDIR) $(BUILD_CPPFLAGS) @BUILD_CFLAGS@ -BUILD_LDFLAGS = @BUILD_LDFLAGS@ -BUILD_LIBS = @BUILD_LIBS@ - -# The executables built in this directory are used for generating source that -# is compiled into the build, or are test-programs that are not installed. - -BUILD_EXEEXT = @BUILD_EXEEXT@ -x = @PROG_EXT@ - -CFLAGS_LIBTOOL = $(CCFLAGS) -CFLAGS_NORMAL = $(CCFLAGS) -CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE -CFLAGS_PROFILE = $(CCFLAGS) -pg -CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@ - -CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@) - -LINK = $(LIBTOOL) $(CC) -LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@ - -SHLIB_DIRS = -L../lib -SHLIB_LIST = $(SHLIB_DIRS) @SHLIB_LIST@ -TINFO_LIST = $(SHLIB_DIRS) @TINFO_LIST@ - -MK_SHARED_LIB = @MK_SHARED_LIB@ - -NCURSES_MAJOR = @NCURSES_MAJOR@ -NCURSES_MINOR = @NCURSES_MINOR@ -REL_VERSION = @cf_cv_rel_version@ -ABI_VERSION = @cf_cv_abi_version@ - -RANLIB = @LIB_PREP@ - -IMPORT_LIB = @IMPORT_LIB@ -SHARED_LIB = @SHARED_LIB@ -LIBRARIES = @LIBS_TO_MAKE@ - -LINT = @LINT@ -LINT_OPTS = @LINT_OPTS@ -LINT_LIBS = -lncurses @LIBS@ - -FALLBACK_LIST = @FALLBACK_LIST@ - -TERMINFO_CAPS = $(top_srcdir)/include/@TERMINFO_CAPS@ - -AUTO_SRC = \ - ../include/nomacros.h \ - codes.c \ - comp_captab.c \ - expanded.c \ - fallback.c \ - init_keytry.h \ - keys.list \ - lib_gen.c \ - lib_keyname.c \ - link_test.c \ - names.c \ - unctrl.c - -TEST_DEPS = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@ -TEST_ARGS = -L../lib -lncurses@DFT_ARG_SUFFIX@ -TEST_LDFLAGS = @LD_MODEL@ $(TEST_ARGS) @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@ - -TEST_PROGS = \ - captoinfo$x \ - hardscroll$x \ - link_test$x \ - hashmap$x \ - lib_mvcur$x - -base = $(srcdir)/base -serial = $(srcdir)/tty -tinfo = $(srcdir)/tinfo -trace = $(srcdir)/trace -wide = $(srcdir)/widechar - -################################################################################ -all \ -libs :: $(AUTO_SRC) ../lib $(LIBRARIES) - -sources: $(AUTO_SRC) - -$(DESTDIR)$(bindir) \ -$(DESTDIR)$(libdir) : - sh $(srcdir)/../mkinstalldirs $@ - -../lib : ; mkdir $@ - -fallback.c : $(tinfo)/MKfallback.sh - sh $(tinfo)/MKfallback.sh @TERMINFO@ @TERMINFO_SRC@ $(FALLBACK_LIST) >$@ - -lib_gen.c : $(base)/MKlib_gen.sh ../include/curses.h - sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h >$@ - -../include/nomacros.h : $(base)/MKlib_gen.sh ../include/curses.h - sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" generated <../include/curses.h | \ - fgrep undef >$@ - -init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list - ./make_keys keys.list > $@ - -keys.list : $(tinfo)/MKkeys_list.sh - AWK=$(AWK) sh $(tinfo)/MKkeys_list.sh $(TERMINFO_CAPS) | sort >$@ - -make_keys$(BUILD_EXEEXT) : \ - $(tinfo)/make_keys.c \ - names.c - $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) $(tinfo)/make_keys.c $(BUILD_LDFLAGS) $(BUILD_LIBS) - -make_hash$(BUILD_EXEEXT) : \ - $(tinfo)/comp_hash.c \ - ../include/hashsize.h - $(BUILD_CC) -o $@ $(BUILD_CCFLAGS) -DMAIN_PROGRAM $(tinfo)/comp_hash.c $(BUILD_LDFLAGS) $(BUILD_LIBS) - -expanded.c : $(serial)/MKexpanded.sh - sh $(serial)/MKexpanded.sh "$(CPP)" $(CPPFLAGS) > $@ - -comp_captab.c: \ - make_hash$(BUILD_EXEEXT) \ - ../include/hashsize.h \ - $(tinfo)/MKcaptab.awk - sh $(tinfo)/MKcaptab.awk $(AWK) $(srcdir)/../include/@TERMINFO_CAPS@ > $@ - -lib_keyname.c: keys.list $(base)/MKkeyname.awk - $(AWK) -f $(base)/MKkeyname.awk keys.list > $@ - -names.c codes.c: $(tinfo)/MKnames.awk - $(AWK) -f $(tinfo)/MKnames.awk $(srcdir)/../include/@TERMINFO_CAPS@ - cat namehdr boolnames boolfnames numnames numfnames strnames strfnames nameftr >names.c - cat namehdr boolcodes numcodes strcodes codeftr >codes.c - -rm -f namehdr nameftr codeftr boolnames boolfnames boolcodes numnames numfnames numcodes strnames strfnames strcodes - -unctrl.c: $(base)/MKunctrl.awk - echo | $(AWK) -f $(base)/MKunctrl.awk >$@ - -tags: - ctags *.[ch] */*.[ch] - -@MAKE_UPPER_TAGS@TAGS: -@MAKE_UPPER_TAGS@ etags *.[ch] */*.[ch] - -mostlyclean :: - -rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace - -rm -f $(TEST_PROGS) - -clean :: mostlyclean - -rm -f $(AUTO_SRC) - -rm -f make_keys$(BUILD_EXEEXT) - -rm -f make_hash$(BUILD_EXEEXT) - -rm -rf .libs - -distclean :: clean - -rm -f Makefile - -realclean :: distclean - -# These rules are used to allow "make -n" to work on a clean directory-tree -../include/hashsize.h \ -../include/parametrized.h \ -../include/term.h : - cd ../include; $(MAKE) $(CF_MFLAGS) - -# These rules build test-programs for the modules that have test-drivers -test_progs : $(TEST_PROGS) - -link_test.c : $(base)/MKlib_gen.sh ../include/curses.h - sh $(base)/MKlib_gen.sh "$(CPP) $(CPPFLAGS)" "$(AWK)" implemented <../include/curses.h >$@ - -captoinfo$x : $(tinfo)/captoinfo.c $(TEST_DEPS) - @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DMAIN $(tinfo)/captoinfo.c $(TEST_LDFLAGS) - -hardscroll$x : $(serial)/hardscroll.c $(TEST_DEPS) - @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DSCROLLDEBUG $(serial)/hardscroll.c $(TEST_LDFLAGS) - -hashmap$x : $(serial)/hashmap.c $(TEST_DEPS) - @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DHASHDEBUG $(serial)/hashmap.c $(TEST_LDFLAGS) - -lib_mvcur$x : $(serial)/lib_mvcur.c $(TEST_DEPS) \ - ../@DFT_OBJ_SUBDIR@/dump_entry$o - @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) -DNCURSES_TEST -I$(serial)/../../progs $(serial)/lib_mvcur.c ../@DFT_OBJ_SUBDIR@/dump_entry$o $(TEST_LDFLAGS) - -link_test$x : link_test.c $(TEST_DEPS) \ - ../@DFT_OBJ_SUBDIR@/link_test$o - @ECHO_LINK@ $(CC) -o $@ $(CFLAGS_DEFAULT) ../@DFT_OBJ_SUBDIR@/link_test$o $(TEST_LDFLAGS) - -../@DFT_OBJ_SUBDIR@/dump_entry$o: - cd ../progs && $(MAKE) ../@DFT_OBJ_SUBDIR@/dump_entry$o - -############################################################################### -# The remainder of this file is automatically generated during configuration -############################################################################### diff --git a/Build/source/libs/ncurses/ncurses/README b/Build/source/libs/ncurses/ncurses/README deleted file mode 100644 index 20c94d3c289..00000000000 --- a/Build/source/libs/ncurses/ncurses/README +++ /dev/null @@ -1,2 +0,0 @@ -For discussion of the package internals, see hackguide.html in the doc/html -directory. diff --git a/Build/source/libs/ncurses/ncurses/README.IZ b/Build/source/libs/ncurses/ncurses/README.IZ deleted file mode 100644 index 2952f6854e5..00000000000 --- a/Build/source/libs/ncurses/ncurses/README.IZ +++ /dev/null @@ -1,65 +0,0 @@ -Here is the patch. I did no testing whatsoever with event watching -requests present (I need some applications which exersize this before -this, probably lynx ;-), but the code looks working "the normal way". - -I had no way to test that the poll() branch compiles/works... - -Here is the API: - -*) two new functions wgetch_events() wgetstrn_event() are introduced, - which allow an event-watch specification given as the last argument; - -*) if the last argument is NULL, they behave as wgetch() and - wgetstrn() (TESTED!); - -*) the event specification is a pointer to _nc_eventlist, which - contains bookkeeping elements (count and the summary of results), - and an array of pointers to _nc_event; - -*) each _nc_event is a typed union, with two types supported "as - shipped": _NC_EVENT_TIMEOUT_MSEC, _NC_EVENT_FILE. For - _NC_EVENT_FILE the fields are fd, flag, and the output field. - -*) The only supported flag "as shipped" is _NC_EVENT_FILE_READABLE. - If the file was found readable, the return field is set to this, - otherwise to 0; - -*) If these functions return KEY_EVENT, this means that the return - fields in both the _nc_eventlist and _nc_event structures make - sense. The field result_flags of _nc_eventlist may have a - combination of bits _NC_EVENT_TIMEOUT_MSEC and _NC_EVENT_FILE_READABLE - set; - -*) The timeout_msec field of _NC_EVENT_TIMEOUT_MSEC _nc_event's is - updated on return, even if the return is not KEY_EVENT. However, - the change in the value represents only the amount of time spent in - waiting for events, not the amount of time spent bookkeeping; - -*) the return KEY_EVENT of wgetstrn_event() means that the output - string includes the user input typed so far, but the user did not have - a chance to press ENTER (or whatever). This call should be - repeated (with "shifted" pointer to a buffer, of course) to - complete the input; - -*) The presence of this extension can be checked via inspecting - #ifdef NCURSES_EVENT_VERSION. This symbol is not defined on BeOS, - since there is no support for this on BeOS. - -Known issues: calls interrupted by KEY_EVENT reset the ESCDELAY -timer. This is not entirely new, since other synthetic events behave -the same (see "if (ch >= KEY_MIN)" branch of kgetch()). However, -KEY_EVENT may be generated in a continuous stream (say, when -downloading a file), thus this may be more important than with other -synthetic keys. An additional field in window structure which keeps -timestamp of the first raw key in the queue may be needed to -circumvent this. - -Another possible issue: KEY_EVENT has a preference over a user input, -so a stream of KEY_EVENT's can make input hard. Maybe use -result_flags as in input parameter too, which specifies whether the -user input should have higher precedence? - -Also: I took an opportunity to document kgetch() better. - -Enjoy, -Ilya diff --git a/Build/source/libs/ncurses/ncurses/SigAction.h b/Build/source/libs/ncurses/ncurses/SigAction.h deleted file mode 100644 index 150fc42b05a..00000000000 --- a/Build/source/libs/ncurses/ncurses/SigAction.h +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * $Id: SigAction.h,v 1.7 2003/12/07 01:00:03 tom Exp $ - * - * This file exists to handle non-POSIX systems which don't have , - * and usually no sigaction() nor - */ - -#ifndef _SIGACTION_H -#define _SIGACTION_H - -#ifndef HAVE_SIGACTION -#define HAVE_SIGACTION 0 -#endif - -#ifndef HAVE_SIGVEC -#define HAVE_SIGVEC 0 -#endif - -#if HAVE_SIGACTION - -#if !HAVE_TYPE_SIGACTION -typedef struct sigaction sigaction_t; -#endif - -#else /* !HAVE_SIGACTION */ - -#if HAVE_SIGVEC - -#if HAVE_LIBC_H -#include -#endif - -#undef SIG_BLOCK -#define SIG_BLOCK 00 - -#undef SIG_UNBLOCK -#define SIG_UNBLOCK 01 - -#undef SIG_SETMASK -#define SIG_SETMASK 02 - - /* - * is in the Linux 1.2.8 + gcc 2.7.0 configuration, - * and is useful for testing this header file. - */ -#if HAVE_BSD_SIGNAL_H -#include -#endif - -typedef struct sigvec sigaction_t; - -#define sigset_t _nc_sigset_t -typedef unsigned long sigset_t; - -#undef sa_mask -#define sa_mask sv_mask -#undef sa_handler -#define sa_handler sv_handler -#undef sa_flags -#define sa_flags sv_flags - -#undef sigaction -#define sigaction _nc_sigaction -#undef sigprocmask -#define sigprocmask _nc_sigprocmask -#undef sigemptyset -#define sigemptyset _nc_sigemptyset -#undef sigsuspend -#define sigsuspend _nc_sigsuspend -#undef sigdelset -#define sigdelset _nc_sigdelset -#undef sigaddset -#define sigaddset _nc_sigaddset - -/* tty/lib_tstp.c is the only user */ -#include - -#endif /* HAVE_SIGVEC */ -#endif /* HAVE_SIGACTION */ -#endif /* !defined(_SIGACTION_H) */ diff --git a/Build/source/libs/ncurses/ncurses/base/MKkeyname.awk b/Build/source/libs/ncurses/ncurses/base/MKkeyname.awk deleted file mode 100644 index 4bf83eafbca..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/MKkeyname.awk +++ /dev/null @@ -1,90 +0,0 @@ -# $Id: MKkeyname.awk,v 1.24 2002/09/01 19:43:34 tom Exp $ -############################################################################## -# Copyright (c) 1999-2001,2002 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -BEGIN { - print "/* generated by MKkeyname.awk */" - print "" - print "#include " - print "#include " - print "" - print "const struct kn _nc_key_names[] = {" -} - -/^[^#]/ { - printf "\t{ \"%s\", %s },\n", $1, $1; - } - -END { - printf "\t{ 0, 0 }};\n" - print "" - print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)" - print "{" - print "static char **table;" - print "int i;" - print "char name[20];" - print "char *p;" - print "" - print "\tif (c == -1) return \"-1\";" - print "" - print "\tfor (i = 0; _nc_key_names[i].name != 0; i++)" - print "\t\tif (_nc_key_names[i].code == c)" - print "\t\t\treturn (NCURSES_CONST char *)_nc_key_names[i].name;" - print "\tif (c < 0 || c >= 256) return 0;" - print "" - print "\tif (table == 0)" - print "\t\ttable = typeCalloc(char *, 256);" - print "\tif (table == 0)" - print "\t\treturn keyname(256);" - print "" - print "\tif (table[c] == 0) {" - print "\t\tp = name;" - print "\t\tif (c >= 128) {" - print "\t\t\tstrcpy(p, \"M-\");" - print "\t\t\tp += 2;" - print "\t\t\tc -= 128;" - print "\t\t}" - print "\t\tif (c < 32)" - print "\t\t\tsprintf(p, \"^%c\", c + '@');" - print "\t\telse if (c == 127)" - print "\t\t\tstrcpy(p, \"^?\");" - print "\t\telse" - print "\t\t\tsprintf(p, \"%c\", c);" - print "\t\ttable[c] = strdup(name);" - print "\t}" - print "\treturn (NCURSES_CONST char *)table[c];" - print "}" - print "" - print "#if USE_WIDEC_SUPPORT" - print "NCURSES_EXPORT(NCURSES_CONST char *) key_name (wchar_t c)" - print "{" - print "\tNCURSES_CONST char *result = keyname((int)c);" - print "\tif (!strncmp(result, \"M-\", 2)) result = 0;" - print "\treturn result;" - print "}" - print "#endif" -} diff --git a/Build/source/libs/ncurses/ncurses/base/MKlib_gen.sh b/Build/source/libs/ncurses/ncurses/base/MKlib_gen.sh deleted file mode 100755 index 583a349b6bf..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/MKlib_gen.sh +++ /dev/null @@ -1,401 +0,0 @@ -#!/bin/sh -# -# MKlib_gen.sh -- generate sources from curses.h macro definitions -# -# ($Id: MKlib_gen.sh,v 1.23 2004/02/07 13:31:35 tom Exp $) -# -############################################################################## -# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# The XSI Curses standard requires all curses entry points to exist as -# functions, even though many definitions would normally be shadowed -# by macros. Rather than hand-hack all that code, we actually -# generate functions from the macros. -# -# This script accepts a file of prototypes on standard input. It discards -# any that don't have a `generated' comment attached. It then parses each -# prototype (relying on the fact that none of the macros take function -# pointer or array arguments) and generates C source from it. -# -# Here is what the pipeline stages are doing: -# -# 1. sed: extract prototypes of generated functions -# 2. sed: decorate prototypes with generated arguments a1. a2,...z -# 3. awk: generate the calls with args matching the formals -# 4. sed: prefix function names in prototypes so the preprocessor won't expand -# them. -# 5. cpp: macro-expand the file so the macro calls turn into C calls -# 6. awk: strip the expansion junk off the front and add the new header -# 7. sed: squeeze spaces, strip off gen_ prefix, create needed #undef -# - -# keep the editing independent of locale: -if test "${LANGUAGE+set}" = set; then LANGUAGE=C; export LANGUAGE; fi -if test "${LANG+set}" = set; then LANG=C; export LANG; fi -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi -if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi -if test "${LC_COLLATE+set}" = set; then LC_COLLATE=C; export LC_COLLATE; fi - -preprocessor="$1 -I../include" -AWK="$2" -USE="$3" - -PID=$$ -ED1=sed1_${PID}.sed -ED2=sed2_${PID}.sed -ED3=sed3_${PID}.sed -ED4=sed4_${PID}.sed -AW1=awk1_${PID}.awk -AW2=awk2_${PID}.awk -TMP=gen__${PID}.c -trap "rm -f $ED1 $ED2 $ED3 $ED4 $AW1 $AW2 $TMP" 0 1 2 5 15 - -ALL=$USE -if test "$USE" = implemented ; then - CALL="call_" - cat >$ED1 <$ED1 <$ED2 <$ED3 <$ED4 <$ED4 <$AW1 <<\EOF1 -BEGIN { - skip=0; - } -/^P_POUNDCif/ { - print "\n" - print $0 - skip=0; -} -/^P_POUNDCendif/ { - print $0 - skip=1; -} -$0 !~ /^P_/ { - if (skip) - print "\n" - skip=1; - - first=$1 - for (i = 1; i <= NF; i++) { - if ( $i != "NCURSES_CONST" ) { - first = i; - break; - } - } - second = first + 1; - if ( $first == "chtype" ) { - returnType = "Char"; - } else if ( $first == "SCREEN" ) { - returnType = "SP"; - } else if ( $first == "WINDOW" ) { - returnType = "Win"; - } else if ( $first == "attr_t" || $second == "attrset" || $second == "standout" || $second == "standend" || $second == "wattrset" || $second == "wstandout" || $second == "wstandend" ) { - returnType = "Attr"; - } else if ( $first == "bool" || $first == "NCURSES_BOOL" ) { - returnType = "Bool"; - } else if ( $second == "*" ) { - returnType = "Ptr"; - } else { - returnType = "Code"; - } - myfunc = second; - for (i = second; i <= NF; i++) { - if ($i != "*") { - myfunc = i; - break; - } - } - if (using == "generated") { - print "M_" $myfunc - } - print $0; - print "{"; - argcount = 1; - check = NF - 1; - if ($check == "void") - argcount = 0; - if (argcount != 0) { - for (i = 1; i <= NF; i++) - if ($i == ",") - argcount++; - } - - # suppress trace-code for functions that we cannot do properly here, - # since they return data. - dotrace = 1; - if ($myfunc ~ /innstr/) - dotrace = 0; - if ($myfunc ~ /innwstr/) - dotrace = 0; - - # workaround functions that we do not parse properly - if ($myfunc ~ /ripoffline/) { - dotrace = 0; - argcount = 2; - } - if ($myfunc ~ /wunctrl/) { - dotrace = 0; - } - - call = "%%T((T_CALLED(\"" - args = "" - comma = "" - num = 0; - pointer = 0; - argtype = "" - for (i = myfunc; i <= NF; i++) { - ch = $i; - if ( ch == "*" ) - pointer = 1; - else if ( ch == "va_list" ) - pointer = 1; - else if ( ch == "char" ) - argtype = "char"; - else if ( ch == "int" ) - argtype = "int"; - else if ( ch == "short" ) - argtype = "short"; - else if ( ch == "chtype" ) - argtype = "chtype"; - else if ( ch == "attr_t" || ch == "NCURSES_ATTR_T" ) - argtype = "attr"; - - if ( ch == "," || ch == ")" ) { - if (pointer) { - if ( argtype == "char" ) { - call = call "%s" - comma = comma "_nc_visbuf2(" num "," - pointer = 0; - } else - call = call "%p" - } else if (argcount != 0) { - if ( argtype == "int" || argtype == "short" ) { - call = call "%d" - argtype = "" - } else if ( argtype != "" ) { - call = call "%s" - comma = comma "_trace" argtype "2(" num "," - } else { - call = call "%#lx" - comma = comma "(long)" - } - } - if (ch == ",") - args = args comma "a" ++num; - else if ( argcount != 0 && $check != "..." ) - args = args comma "z" - call = call ch - if (pointer == 0 && argcount != 0 && argtype != "" ) - args = args ")" - if (args != "") - comma = ", " - pointer = 0; - argtype = "" - } - if ( i == 2 || ch == "(" ) - call = call ch - } - call = call "\")" - if (args != "") - call = call ", " args - call = call ")); " - - if (dotrace) - printf "%s", call - - if (match($0, "^void")) - call = "" - else if (dotrace) - call = sprintf("return%s( ", returnType); - else - call = "%%return "; - - call = call $myfunc "("; - for (i = 1; i < argcount; i++) { - if (i != 1) - call = call ", "; - call = call "a" i; - } - if ( argcount != 0 && $check != "..." ) { - if (argcount != 1) - call = call ", "; - call = call "z"; - } - if (!match($0, "^void")) - call = call ") "; - if (dotrace) - call = call ")"; - print call ";" - - if (match($0, "^void")) - print "%%returnVoid;" - print "}"; -} -EOF1 - -cat >$AW2 <" - print "" - } -/^DECLARATIONS/ {start = 1; next;} - {if (start) print \$0;} -END { - if ( "$USE" != "generated" ) { - print "int main(void) { return 0; }" - } - } -EOF1 - -cat >$TMP < -#include - -DECLARATIONS - -EOF - -sed -n -f $ED1 \ -| sed -e 's/NCURSES_EXPORT(\(.*\)) \(.*\) (\(.*\))/\1 \2(\3)/' \ -| sed -f $ED2 \ -| $AWK -f $AW1 using=$USE \ -| sed -e 's/^\([a-z_][a-z_]*[ *]*\)/\1 gen_/' -e 's/ / /g' >>$TMP - -$preprocessor $TMP 2>/dev/null \ -| sed -e 's/ / /g' -e 's/^ //' \ -| $AWK -f $AW2 \ -| sed -f $ED3 \ -| sed \ - -e 's/^.*T_CALLED.*returnCode( \([a-z].*) \));/ return \1;/' \ - -e 's/^.*T_CALLED.*returnCode( \((wmove.*) \));/ return \1;/' \ -| sed -f $ED4 diff --git a/Build/source/libs/ncurses/ncurses/base/MKunctrl.awk b/Build/source/libs/ncurses/ncurses/base/MKunctrl.awk deleted file mode 100644 index 79ca5fc5673..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/MKunctrl.awk +++ /dev/null @@ -1,72 +0,0 @@ -# $Id: MKunctrl.awk,v 1.10 2004/04/03 22:50:37 tom Exp $ -############################################################################## -# Copyright (c) 1998,2001,2004 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1997 -# - -BEGIN { - print "/* generated by MKunctrl.awk */" - print "" - print "#include " - print "" - print "#undef unctrl" - print "" - } -END { - print "NCURSES_EXPORT(NCURSES_CONST char *) unctrl (register chtype ch)" - print "{" - printf "static const char* const table[] = {" - for ( ch = 0; ch < 256; ch++ ) { - gap = "," - if ((ch % 8) == 0) - printf "\n " - if (ch < 32) { - printf "\"^\\%03o\"", ch + 64 - } else if (ch == 127) { - printf "\"^?\"" - } else if (ch >= 128 && ch < 160) { - printf "\"~\\%03o\"", ch - 64 - } else { - printf "\"\\%03o\"", ch - gap = gap " " - } - if (ch == 255) - gap = "\n" - else if (((ch + 1) % 8) != 0) - gap = gap " " - printf "%s", gap - } - print "};" - print "int check = ChCharOf(ch);" - print "" - print "\tif (check < 0 || check >= (int)SIZEOF(table)) return 0;" - print "" - print "\treturn (NCURSES_CONST char *)table[check];" - print "}" - } diff --git a/Build/source/libs/ncurses/ncurses/base/README b/Build/source/libs/ncurses/ncurses/base/README deleted file mode 100644 index ffa16963e9e..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/README +++ /dev/null @@ -1,7 +0,0 @@ --- $Id: README,v 1.1 1998/11/14 22:58:22 tom Exp $ - -The functions in this directory are the generic (not device-specific) modules -of ncurses. - -As a rule, these modules should not depend directly on term.h references and -associated terminfo function and variables. diff --git a/Build/source/libs/ncurses/ncurses/base/define_key.c b/Build/source/libs/ncurses/ncurses/base/define_key.c deleted file mode 100644 index 0c8bc48debe..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/define_key.c +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: define_key.c,v 1.8 2003/05/17 23:28:05 tom Exp $") - -NCURSES_EXPORT(int) -define_key(const char *str, int keycode) -{ - int code = ERR; - - T((T_CALLED("define_key(%s,%d)"), _nc_visbuf(str), keycode)); - if (keycode > 0) { - if (str != 0) { - define_key(str, 0); - } else if (has_key(keycode)) { - while (_nc_remove_key(&(SP->_keytry), keycode)) - code = OK; - } - if (str != 0) { - if (key_defined(str) == 0) { - (void) _nc_add_to_try(&(SP->_keytry), str, keycode); - code = OK; - } else { - code = ERR; - } - } - } else { - while (_nc_remove_string(&(SP->_keytry), str)) - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/key_defined.c b/Build/source/libs/ncurses/ncurses/base/key_defined.c deleted file mode 100644 index dac18874877..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/key_defined.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey, 2003 * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: key_defined.c,v 1.3 2003/05/17 23:12:27 tom Exp $") - -static int -find_definition(struct tries *tree, const char *str) -{ - struct tries *ptr; - int result = 0; - - if (str != 0 && *str != '\0') { - for (ptr = tree; ptr != 0; ptr = ptr->sibling) { - if (UChar(*str) == UChar(ptr->ch)) { - if (str[1] == '\0' && ptr->child != 0) { - result = -1; - } else if ((result = find_definition(ptr->child, str + 1)) == 0) { - result = ptr->value; - } else if (str[1] == '\0') { - result = -1; - } - } - if (result != 0) - break; - } - } - return (result); -} - -/* - * Returns the keycode associated with the given string. If none is found, - * return 0. If the string is only a prefix to other strings, return -1. - */ -NCURSES_EXPORT(int) -key_defined(const char *str) -{ - int code = ERR; - - T((T_CALLED("key_defined(%s)"), _nc_visbuf(str))); - if (SP != 0 && str != 0) { - code = find_definition(SP->_keytry, str); - } - - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/keybound.c b/Build/source/libs/ncurses/ncurses/base/keybound.c deleted file mode 100644 index 06a1f44fc2f..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/keybound.c +++ /dev/null @@ -1,47 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1999-2000,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1999 * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: keybound.c,v 1.4 2003/03/08 19:39:31 tom Exp $") - -/* - * Returns the count'th string definition which is associated with the - * given keycode. The result is malloc'd, must be freed by the caller. - */ - -NCURSES_EXPORT(char *) -keybound(int code, int count) -{ - T((T_CALLED("keybound(%d,%d)"), code, count)); - returnPtr(_nc_expand_try(SP->_keytry, code, &count, 0)); -} diff --git a/Build/source/libs/ncurses/ncurses/base/keyok.c b/Build/source/libs/ncurses/ncurses/base/keyok.c deleted file mode 100644 index e3b4be297c1..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/keyok.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: keyok.c,v 1.5 2000/12/10 02:43:26 tom Exp $") - -/* - * Enable (or disable) ncurses' interpretation of a keycode by adding (or - * removing) the corresponding 'tries' entry. - * - * Do this by storing a second tree of tries, which records the disabled keys. - * The simplest way to copy is to make a function that returns the string (with - * nulls set to 0200), then use that to reinsert the string into the - * corresponding tree. - */ - -NCURSES_EXPORT(int) -keyok(int c, bool flag) -{ - int code = ERR; - int count = 0; - char *s; - - T((T_CALLED("keyok(%d,%d)"), c, flag)); - if (flag) { - while ((s = _nc_expand_try(SP->_key_ok, c, &count, 0)) != 0 - && _nc_remove_key(&(SP->_key_ok), c)) { - _nc_add_to_try(&(SP->_keytry), s, c); - free(s); - code = OK; - count = 0; - } - } else { - while ((s = _nc_expand_try(SP->_keytry, c, &count, 0)) != 0 - && _nc_remove_key(&(SP->_keytry), c)) { - _nc_add_to_try(&(SP->_key_ok), s, c); - free(s); - code = OK; - count = 0; - } - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_addch.c b/Build/source/libs/ncurses/ncurses/base/lib_addch.c deleted file mode 100644 index 08651a04aa7..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_addch.c +++ /dev/null @@ -1,413 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/* -** lib_addch.c -** -** The routine waddch(). -** -*/ - -#include -#include - -MODULE_ID("$Id: lib_addch.c,v 1.84 2004/09/26 00:10:54 tom Exp $") - -/* - * Ugly microtweaking alert. Everything from here to end of module is - * likely to be speed-critical -- profiling data sure says it is! - * Most of the important screen-painting functions are shells around - * waddch(). So we make every effort to reduce function-call overhead - * by inlining stuff, even at the cost of making wrapped copies for - * export. Also we supply some internal versions that don't call the - * window sync hook, for use by string-put functions. - */ - -/* Return bit mask for clearing color pair number if given ch has color */ -#define COLOR_MASK(ch) (~(attr_t)((ch)&A_COLOR?A_COLOR:0)) - -static inline NCURSES_CH_T -render_char(WINDOW *win, NCURSES_CH_T ch) -/* compute a rendition of the given char correct for the current context */ -{ - attr_t a = win->_attrs; - - if (ISBLANK(ch) && AttrOf(ch) == A_NORMAL) { - /* color in attrs has precedence over bkgrnd */ - ch = win->_nc_bkgd; - SetAttr(ch, a | (AttrOf(win->_nc_bkgd) & COLOR_MASK(a))); - } else { - /* color in attrs has precedence over bkgrnd */ - a |= AttrOf(win->_nc_bkgd) & COLOR_MASK(a); - /* color in ch has precedence */ - AddAttr(ch, (a & COLOR_MASK(AttrOf(ch)))); - } - - TR(TRACE_VIRTPUT, ("render_char bkg %s, attrs %s -> ch %s", - _tracech_t2(1, CHREF(win->_nc_bkgd)), - _traceattr(win->_attrs), - _tracech_t2(3, CHREF(ch)))); - - return (ch); -} - -NCURSES_EXPORT(NCURSES_CH_T) -_nc_render(WINDOW *win, NCURSES_CH_T ch) -/* make render_char() visible while still allowing us to inline it below */ -{ - return render_char(win, ch); -} - -/* check if position is legal; if not, return error */ -#ifndef NDEBUG /* treat this like an assertion */ -#define CHECK_POSITION(win, x, y) \ - if (y > win->_maxy \ - || x > win->_maxx \ - || y < 0 \ - || x < 0) { \ - TR(TRACE_VIRTPUT, ("Alert! Win=%p _curx = %d, _cury = %d " \ - "(_maxx = %d, _maxy = %d)", win, x, y, \ - win->_maxx, win->_maxy)); \ - return(ERR); \ - } -#else -#define CHECK_POSITION(win, x, y) /* nothing */ -#endif - -static -#if !USE_WIDEC_SUPPORT /* cannot be inline if it is recursive */ -inline -#endif -int -waddch_literal(WINDOW *win, NCURSES_CH_T ch) -{ - int x; - int y; - struct ldat *line; - - x = win->_curx; - y = win->_cury; - - CHECK_POSITION(win, x, y); - - /* - * If we're trying to add a character at the lower-right corner more - * than once, fail. (Moving the cursor will clear the flag). - */ -#if 0 /* Solaris 2.6 allows updating the corner more than once */ - if (win->_flags & _WRAPPED) { - if (x >= win->_maxx) - return (ERR); - win->_flags &= ~_WRAPPED; - } -#endif - - ch = render_char(win, ch); - - line = win->_line + y; - - CHANGED_CELL(line, x); - - /* - * Build up multibyte characters until we have a wide-character. - */ - if_WIDEC({ - if (WINDOW_EXT(win, addch_used) != 0 || !Charable(ch)) { - char *buffer = WINDOW_EXT(win, addch_work); - int len; - mbstate_t state; - wchar_t result; - - if ((WINDOW_EXT(win, addch_used) != 0) && - (WINDOW_EXT(win, addch_x) != x || - WINDOW_EXT(win, addch_y) != y)) { - /* discard the incomplete multibyte character */ - WINDOW_EXT(win, addch_used) = 0; - TR(TRACE_VIRTPUT, - ("Alert discarded multibyte on move (%d,%d) -> (%d,%d)", - WINDOW_EXT(win, addch_y), WINDOW_EXT(win, addch_x), - y, x)); - } - WINDOW_EXT(win, addch_x) = x; - WINDOW_EXT(win, addch_y) = y; - - memset(&state, 0, sizeof(state)); - buffer[WINDOW_EXT(win, addch_used)] = CharOf(ch); - WINDOW_EXT(win, addch_used) += 1; - buffer[WINDOW_EXT(win, addch_used)] = '\0'; - if ((len = mbrtowc(&result, - buffer, - WINDOW_EXT(win, addch_used), &state)) > 0) { - attr_t attrs = AttrOf(ch); - SetChar(ch, result, attrs); - WINDOW_EXT(win, addch_used) = 0; - if (is8bits(CharOf(ch))) { - const char *s = unctrl(CharOf(ch)); - if (s[1] != 0) { - return waddstr(win, s); - } - } - } else { - if (len == -1) { - /* - * An error occurred. We could either discard everything, - * or assume that the error was in the previous input. - * Try the latter. - */ - TR(TRACE_VIRTPUT, ("Alert! mbrtowc returns error")); - buffer[0] = CharOf(ch); - WINDOW_EXT(win, addch_used) = 1; - } - return OK; - } - } - }); - - /* - * Handle non-spacing characters - */ - if_WIDEC({ - if (wcwidth(CharOf(ch)) == 0) { - int i; - if ((x > 0 && y >= 0) - || ((y = win->_cury - 1) >= 0 && - (x = win->_maxx) > 0)) { - wchar_t *chars = (win->_line[y].text[x - 1].chars); - for (i = 0; i < CCHARW_MAX; ++i) { - if (chars[i] == 0) { - chars[i] = CharOf(ch); - break; - } - } - } - goto testwrapping; - } - }); - line->text[x++] = ch; - /* - * Provide for multi-column characters - */ - if_WIDEC({ - int len = wcwidth(CharOf(ch)); - while (len-- > 1) { - if (x + (len - 1) > win->_maxx) { - NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR); - AddAttr(blank, AttrOf(ch)); - if (waddch_literal(win, blank) != ERR) - return waddch_literal(win, ch); - return ERR; - } - AddAttr(line->text[x++], WA_NAC); - TR(TRACE_VIRTPUT, ("added NAC %d", x - 1)); - } - } - testwrapping: - ); - - TR(TRACE_VIRTPUT, ("cell (%d, %d..%d) = %s", - win->_cury, win->_curx, x - 1, - _tracech_t(CHREF(ch)))); - - if (x > win->_maxx) { - /* - * The _WRAPPED flag is useful only for telling an application that - * we've just wrapped the cursor. We don't do anything with this flag - * except set it when wrapping, and clear it whenever we move the - * cursor. If we try to wrap at the lower-right corner of a window, we - * cannot move the cursor (since that wouldn't be legal). So we return - * an error (which is what SVr4 does). Unlike SVr4, we can - * successfully add a character to the lower-right corner (Solaris 2.6 - * does this also, however). - */ - win->_flags |= _WRAPPED; - if (++win->_cury > win->_regbottom) { - win->_cury = win->_regbottom; - win->_curx = win->_maxx; - if (!win->_scroll) - return (ERR); - scroll(win); - } - win->_curx = 0; - return (OK); - } - win->_curx = x; - return OK; -} - -static inline int -waddch_nosync(WINDOW *win, const NCURSES_CH_T ch) -/* the workhorse function -- add a character to the given window */ -{ - int x, y; - chtype t = CharOf(ch); - const char *s = 0; - - /* - * If we are using the alternate character set, forget about locale. - * Otherwise, if unctrl() returns a single-character or the locale - * claims the code is printable, treat it that way. - */ - if ((AttrOf(ch) & A_ALTCHARSET) - || ((s = unctrl(t))[1] == 0 || - ( - isprint(t) -#if USE_WIDEC_SUPPORT - || WINDOW_EXT(win, addch_used) -#endif - ))) - return waddch_literal(win, ch); - - /* - * Handle carriage control and other codes that are not printable, or are - * known to expand to more than one character according to unctrl(). - */ - x = win->_curx; - y = win->_cury; - - switch (t) { - case '\t': - x += (TABSIZE - (x % TABSIZE)); - - /* - * Space-fill the tab on the bottom line so that we'll get the - * "correct" cursor position. - */ - if ((!win->_scroll && (y == win->_regbottom)) - || (x <= win->_maxx)) { - NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR); - AddAttr(blank, AttrOf(ch)); - while (win->_curx < x) { - if (waddch_literal(win, blank) == ERR) - return (ERR); - } - break; - } else { - wclrtoeol(win); - win->_flags |= _WRAPPED; - if (++y > win->_regbottom) { - x = win->_maxx; - y--; - if (win->_scroll) { - scroll(win); - x = 0; - } - } else { - x = 0; - } - } - break; - case '\n': - wclrtoeol(win); - if (++y > win->_regbottom) { - y--; - if (win->_scroll) - scroll(win); - else - return (ERR); - } - /* FALLTHRU */ - case '\r': - x = 0; - win->_flags &= ~_WRAPPED; - break; - case '\b': - if (x == 0) - return (OK); - x--; - win->_flags &= ~_WRAPPED; - break; - default: - while (*s) { - NCURSES_CH_T sch; - SetChar(sch, *s++, AttrOf(ch)); - if (waddch_literal(win, sch) == ERR) - return ERR; - } - return (OK); - } - - win->_curx = x; - win->_cury = y; - - return (OK); -} - -NCURSES_EXPORT(int) -_nc_waddch_nosync(WINDOW *win, const NCURSES_CH_T c) -/* export copy of waddch_nosync() so the string-put functions can use it */ -{ - return (waddch_nosync(win, c)); -} - -/* - * The versions below call _nc_synhook(). We wanted to avoid this in the - * version exported for string puts; they'll call _nc_synchook once at end - * of run. - */ - -/* These are actual entry points */ - -NCURSES_EXPORT(int) -waddch(WINDOW *win, const chtype ch) -{ - int code = ERR; - NCURSES_CH_T wch; - SetChar2(wch, ch); - - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("waddch(%p, %s)"), win, - _tracechtype(ch))); - - if (win && (waddch_nosync(win, wch) != ERR)) { - _nc_synchook(win); - code = OK; - } - - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code)); - return (code); -} - -NCURSES_EXPORT(int) -wechochar(WINDOW *win, const chtype ch) -{ - int code = ERR; - NCURSES_CH_T wch; - SetChar2(wch, ch); - - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wechochar(%p, %s)"), win, - _tracechtype(ch))); - - if (win && (waddch_nosync(win, wch) != ERR)) { - bool save_immed = win->_immed; - win->_immed = TRUE; - _nc_synchook(win); - win->_immed = save_immed; - code = OK; - } - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code)); - return (code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_addstr.c b/Build/source/libs/ncurses/ncurses/base/lib_addstr.c deleted file mode 100644 index 93d6743c0ce..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_addstr.c +++ /dev/null @@ -1,209 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * * - * Rewritten 2001-2002 to support wide-characters by * - * Sven Verdoolaege * - * Thomas Dickey * - ****************************************************************************/ - -/* -** lib_addstr.c -* -** The routines waddnstr(), waddchnstr(). -** -*/ - -#include - -MODULE_ID("$Id: lib_addstr.c,v 1.40 2004/07/10 20:39:03 tom Exp $") - -NCURSES_EXPORT(int) -waddnstr(WINDOW *win, const char *astr, int n) -{ - const char *str = astr; - int code = ERR; - - T((T_CALLED("waddnstr(%p,%s,%d)"), win, _nc_visbufn(astr, n), n)); - - if (win && (str != 0)) { - TR(TRACE_VIRTPUT | TRACE_ATTRS, ("... current %s", _traceattr(win->_attrs))); - code = OK; - if (n < 0) - n = (int) strlen(astr); - - TR(TRACE_VIRTPUT, ("str is not null, length = %d", n)); - while ((n-- > 0) && (*str != '\0')) { - NCURSES_CH_T ch; - TR(TRACE_VIRTPUT, ("*str = %#o", UChar(*str))); - SetChar(ch, UChar(*str++), A_NORMAL); - if (_nc_waddch_nosync(win, ch) == ERR) { - code = ERR; - break; - } - } - _nc_synchook(win); - } - TR(TRACE_VIRTPUT, ("waddnstr returns %d", code)); - returnCode(code); -} - -NCURSES_EXPORT(int) -waddchnstr(WINDOW *win, const chtype *astr, int n) -{ - NCURSES_SIZE_T y = win->_cury; - NCURSES_SIZE_T x = win->_curx; - int code = OK; - struct ldat *line; - - T((T_CALLED("waddchnstr(%p,%p,%d)"), win, astr, n)); - - if (!win) - returnCode(ERR); - - if (n < 0) { - const chtype *str; - n = 0; - for (str = (const chtype *) astr; *str != 0; str++) - n++; - } - if (n > win->_maxx - x + 1) - n = win->_maxx - x + 1; - if (n == 0) - returnCode(code); - - line = &(win->_line[y]); -#if USE_WIDEC_SUPPORT - { - int i; - for (i = 0; i < n; ++i) - SetChar(line->text[i + x], ChCharOf(astr[i]), ChAttrOf(astr[i])); - } -#else - memcpy(line->text + x, astr, n * sizeof(*astr)); -#endif - CHANGED_RANGE(line, x, x + n - 1); - - _nc_synchook(win); - returnCode(code); -} - -#if USE_WIDEC_SUPPORT - -NCURSES_EXPORT(int) -_nc_wchstrlen(const cchar_t * s) -{ - int result = 0; - while (CharOf(s[result]) != L'\0') { - result++; - } - return result; -} - -NCURSES_EXPORT(int) -wadd_wchnstr(WINDOW *win, const cchar_t * astr, int n) -{ - NCURSES_CH_T blank = NewChar(BLANK_TEXT); - NCURSES_SIZE_T y = win->_cury; - NCURSES_SIZE_T x = win->_curx; - int code = OK; - struct ldat *line; - int i, start, end; - - T((T_CALLED("wadd_wchnstr(%p,%s,%d)"), win, _nc_viscbuf(astr, n), n)); - - if (!win) - returnCode(ERR); - - if (n < 0) { - n = _nc_wchstrlen(astr); - } - if (n > win->_maxx - x + 1) - n = win->_maxx - x + 1; - if (n == 0) - returnCode(code); - - line = &(win->_line[y]); - start = x; - end = x + n - 1; - if (isnac(line->text[x])) { - line->text[x - 1] = _nc_render(win, blank); - --start; - } - for (i = 0; i < n && x <= win->_maxx; ++i) { - line->text[x++] = _nc_render(win, astr[i]); - if (wcwidth(CharOf(astr[i])) > 1) { - if (x <= win->_maxx) - AddAttr(line->text[x++], WA_NAC); - else - line->text[x - 1] = _nc_render(win, blank); - } - } - if (x <= win->_maxx && isnac(line->text[x])) { - line->text[x] = _nc_render(win, blank); - ++end; - } - CHANGED_RANGE(line, start, end); - - _nc_synchook(win); - returnCode(code); -} - -NCURSES_EXPORT(int) -waddnwstr(WINDOW *win, const wchar_t * str, int n) -{ - int code = ERR; - - T((T_CALLED("waddnwstr(%p,%s,%d)"), win, _nc_viswbufn(str, n), n)); - - if (win && (str != 0)) { - TR(TRACE_VIRTPUT | TRACE_ATTRS, ("... current %s", _traceattr(win->_attrs))); - code = OK; - if (n < 0) - n = (int) wcslen(str); - - TR(TRACE_VIRTPUT, ("str is not null, length = %d", n)); - while ((n-- > 0) && (*str != L('\0'))) { - NCURSES_CH_T ch; - TR(TRACE_VIRTPUT, ("*str[0] = %#lx", (unsigned long) *str)); - SetChar(ch, *str++, A_NORMAL); - if (wadd_wch(win, &ch) == ERR) { - code = ERR; - break; - } - } - _nc_synchook(win); - } - TR(TRACE_VIRTPUT, ("waddnwstr returns %d", code)); - returnCode(code); -} - -#endif diff --git a/Build/source/libs/ncurses/ncurses/base/lib_beep.c b/Build/source/libs/ncurses/ncurses/base/lib_beep.c deleted file mode 100644 index c23d0a1d2ff..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_beep.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * beep.c - * - * The routine beep(). - * - */ - -#include -#include /* beep, flash */ - -MODULE_ID("$Id: lib_beep.c,v 1.9 2000/12/10 02:43:26 tom Exp $") - -/* - * beep() - * - * Sound the current terminal's audible bell if it has one. If not, - * flash the screen if possible. - * - */ - -NCURSES_EXPORT(int) -beep(void) -{ - int res = ERR; - - T((T_CALLED("beep()"))); - - /* FIXME: should make sure that we are not in altchar mode */ - if (bell) { - TPUTS_TRACE("bell"); - res = putp(bell); - _nc_flush(); - } else if (flash_screen) { - TPUTS_TRACE("flash_screen"); - res = putp(flash_screen); - _nc_flush(); - } - - returnCode(res); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_bkgd.c b/Build/source/libs/ncurses/ncurses/base/lib_bkgd.c deleted file mode 100644 index 3f3a2ac79bd..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_bkgd.c +++ /dev/null @@ -1,138 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2001-2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: lib_bkgd.c,v 1.30 2003/07/05 16:46:49 tom Exp $") - -/* - * Set the window's background information. - */ -#if USE_WIDEC_SUPPORT -NCURSES_EXPORT(void) -#else -static inline void -#endif -wbkgrndset(WINDOW *win, const ARG_CH_T ch) -{ - T((T_CALLED("wbkgdset(%p,%s)"), win, _tracech_t(ch))); - - if (win) { - attr_t off = AttrOf(win->_nc_bkgd); - attr_t on = AttrOf(CHDEREF(ch)); - - toggle_attr_off(win->_attrs, off); - toggle_attr_on(win->_attrs, on); - - if (CharOf(CHDEREF(ch)) == L('\0')) - SetChar(win->_nc_bkgd, BLANK_TEXT, AttrOf(CHDEREF(ch))); - else - win->_nc_bkgd = CHDEREF(ch); -#if USE_WIDEC_SUPPORT - /* - * If we're compiled for wide-character support, _bkgrnd is the - * preferred location for the background information since it stores - * more than _bkgd. Update _bkgd each time we modify _bkgrnd, so the - * macro getbkgd() will work. - */ - { - cchar_t wch; - int tmp; - - wgetbkgrnd(win, &wch); - tmp = _nc_to_char(CharOf(wch)); - - win->_bkgd = ((tmp == EOF) ? ' ' : (chtype) tmp) | AttrOf(wch); - } -#endif - } - returnVoid; -} - -NCURSES_EXPORT(void) -wbkgdset(WINDOW *win, chtype ch) -{ - NCURSES_CH_T wch; - SetChar2(wch, ch); - wbkgrndset(win, CHREF(wch)); -} - -/* - * Set the window's background information and apply it to each cell. - */ -#if USE_WIDEC_SUPPORT -NCURSES_EXPORT(int) -#else -static inline int -#undef wbkgrnd -#endif -wbkgrnd(WINDOW *win, const ARG_CH_T ch) -{ - int code = ERR; - int x, y; - NCURSES_CH_T new_bkgd = CHDEREF(ch); - - T((T_CALLED("wbkgd(%p,%s)"), win, _tracech_t(ch))); - - if (win) { - NCURSES_CH_T old_bkgrnd; - wgetbkgrnd(win, &old_bkgrnd); - - wbkgrndset(win, CHREF(new_bkgd)); - wattrset(win, AttrOf(win->_nc_bkgd)); - - for (y = 0; y <= win->_maxy; y++) { - for (x = 0; x <= win->_maxx; x++) { - if (CharEq(win->_line[y].text[x], old_bkgrnd)) - win->_line[y].text[x] = win->_nc_bkgd; - else { - NCURSES_CH_T wch = win->_line[y].text[x]; - RemAttr(wch, (~A_ALTCHARSET)); - win->_line[y].text[x] = _nc_render(win, wch); - } - } - } - touchwin(win); - _nc_synchook(win); - code = OK; - } - returnCode(code); -} - -NCURSES_EXPORT(int) -wbkgd(WINDOW *win, chtype ch) -{ - NCURSES_CH_T wch; - SetChar2(wch, ch); - return wbkgrnd(win, CHREF(wch)); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_box.c b/Build/source/libs/ncurses/ncurses/base/lib_box.c deleted file mode 100644 index 50f436592de..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_box.c +++ /dev/null @@ -1,126 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_box.c -** -** The routine wborder(). -** -*/ - -#include - -MODULE_ID("$Id: lib_box.c,v 1.21 2002/09/15 01:04:27 tom Exp $") - -#if USE_WIDEC_SUPPORT -static inline chtype -_my_render(WINDOW *win, chtype ch) -{ - NCURSES_CH_T wch; - SetChar2(wch, ch); - wch = _nc_render(win, wch); - return CharOf(wch) | AttrOf(wch); -} -#define RENDER_WITH_DEFAULT(ch,def) w ## ch = _my_render(win, (ch == 0) ? def : ch) -#else -#define RENDER_WITH_DEFAULT(ch,def) w ## ch = _nc_render(win, (ch == 0) ? def : ch) -#endif - -NCURSES_EXPORT(int) -wborder(WINDOW *win, - chtype ls, chtype rs, - chtype ts, chtype bs, - chtype tl, chtype tr, - chtype bl, chtype br) -{ - NCURSES_SIZE_T i; - NCURSES_SIZE_T endx, endy; - chtype wls, wrs, wts, wbs, wtl, wtr, wbl, wbr; - - T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"), - win, - _tracechtype2(1, ls), - _tracechtype2(2, rs), - _tracechtype2(3, ts), - _tracechtype2(4, bs), - _tracechtype2(5, tl), - _tracechtype2(6, tr), - _tracechtype2(7, bl), - _tracechtype2(8, br))); - - if (!win) - returnCode(ERR); - - RENDER_WITH_DEFAULT(ls, ACS_VLINE); - RENDER_WITH_DEFAULT(rs, ACS_VLINE); - RENDER_WITH_DEFAULT(ts, ACS_HLINE); - RENDER_WITH_DEFAULT(bs, ACS_HLINE); - RENDER_WITH_DEFAULT(tl, ACS_ULCORNER); - RENDER_WITH_DEFAULT(tr, ACS_URCORNER); - RENDER_WITH_DEFAULT(bl, ACS_LLCORNER); - RENDER_WITH_DEFAULT(br, ACS_LRCORNER); - - T(("using %s, %s, %s, %s, %s, %s, %s, %s", - _tracechtype2(1, wls), - _tracechtype2(2, wrs), - _tracechtype2(3, wts), - _tracechtype2(4, wbs), - _tracechtype2(5, wtl), - _tracechtype2(6, wtr), - _tracechtype2(7, wbl), - _tracechtype2(8, wbr))); - - endx = win->_maxx; - endy = win->_maxy; - - for (i = 0; i <= endx; i++) { - SetChar2(win->_line[0].text[i], wts); - SetChar2(win->_line[endy].text[i], wbs); - } - win->_line[endy].firstchar = win->_line[0].firstchar = 0; - win->_line[endy].lastchar = win->_line[0].lastchar = endx; - - for (i = 0; i <= endy; i++) { - SetChar2(win->_line[i].text[0], wls); - SetChar2(win->_line[i].text[endx], wrs); - win->_line[i].firstchar = 0; - win->_line[i].lastchar = endx; - } - SetChar2(win->_line[0].text[0], wtl); - SetChar2(win->_line[0].text[endx], wtr); - SetChar2(win->_line[endy].text[0], wbl); - SetChar2(win->_line[endy].text[endx], wbr); - - _nc_synchook(win); - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_chgat.c b/Build/source/libs/ncurses/ncurses/base/lib_chgat.c deleted file mode 100644 index 54e66ed1ffa..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_chgat.c +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_chgat.c -** -** The routine wchgat(). -** -*/ - -#include - -MODULE_ID("$Id: lib_chgat.c,v 1.5 2001/06/03 00:05:02 skimo Exp $") - -NCURSES_EXPORT(int) -wchgat -(WINDOW *win, int n, attr_t attr, short color, const void *opts GCC_UNUSED) -{ - int i; - - T((T_CALLED("wchgat(%p,%d,%s,%d)"), win, n, _traceattr(attr), color)); - - if (win) { - toggle_attr_on(attr, COLOR_PAIR(color)); - - for (i = win->_curx; i <= win->_maxx && (n == -1 || (n-- > 0)); i++) - SetAttr(win->_line[win->_cury].text[i], attr); - - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_clear.c b/Build/source/libs/ncurses/ncurses/base/lib_clear.c deleted file mode 100644 index e0b4edf9e22..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_clear.c +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_clear.c -** -** The routine wclear(). -** -*/ - -#include - -MODULE_ID("$Id: lib_clear.c,v 1.7 2000/12/10 02:43:26 tom Exp $") - -NCURSES_EXPORT(int) -wclear(WINDOW *win) -{ - int code = ERR; - - T((T_CALLED("wclear(%p)"), win)); - - if ((code = werase(win)) != ERR) - win->_clear = TRUE; - - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_clearok.c b/Build/source/libs/ncurses/ncurses/base/lib_clearok.c deleted file mode 100644 index 9b56bd1ec63..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_clearok.c +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_clearok.c -** -** The routine clearok. -** -*/ - -#include - -MODULE_ID("$Id: lib_clearok.c,v 1.4 2000/12/10 02:43:26 tom Exp $") - -NCURSES_EXPORT(int) -clearok(WINDOW *win, bool flag) -{ - T((T_CALLED("clearok(%p,%d)"), win, flag)); - - if (win) { - win->_clear = flag; - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_clrbot.c b/Build/source/libs/ncurses/ncurses/base/lib_clrbot.c deleted file mode 100644 index bc12960e48f..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_clrbot.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_clrbot.c -** -** The routine wclrtobot(). -** -*/ - -#include - -MODULE_ID("$Id: lib_clrbot.c,v 1.19 2001/12/19 01:05:59 tom Exp $") - -NCURSES_EXPORT(int) -wclrtobot(WINDOW *win) -{ - int code = ERR; - - T((T_CALLED("wclrtobot(%p)"), win)); - - if (win) { - NCURSES_SIZE_T y; - NCURSES_SIZE_T startx = win->_curx; - NCURSES_CH_T blank = win->_nc_bkgd; - - T(("clearing from y = %d to y = %d with maxx = %d", - win->_cury, win->_maxy, win->_maxx)); - - for (y = win->_cury; y <= win->_maxy; y++) { - struct ldat *line = &(win->_line[y]); - NCURSES_CH_T *ptr = &(line->text[startx]); - NCURSES_CH_T *end = &(line->text[win->_maxx]); - - CHANGED_TO_EOL(line, startx, win->_maxx); - - while (ptr <= end) - *ptr++ = blank; - - startx = 0; - } - _nc_synchook(win); - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_clreol.c b/Build/source/libs/ncurses/ncurses/base/lib_clreol.c deleted file mode 100644 index c46ebd93a33..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_clreol.c +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_clreol.c -** -** The routine wclrtoeol(). -** -*/ - -#include - -MODULE_ID("$Id: lib_clreol.c,v 1.21 2001/12/19 01:06:04 tom Exp $") - -NCURSES_EXPORT(int) -wclrtoeol(WINDOW *win) -{ - int code = ERR; - - T((T_CALLED("wclrtoeol(%p)"), win)); - - if (win) { - NCURSES_CH_T blank; - NCURSES_CH_T *ptr, *end; - struct ldat *line; - NCURSES_SIZE_T y = win->_cury; - NCURSES_SIZE_T x = win->_curx; - - /* - * If we have just wrapped the cursor, the clear applies to the - * new line, unless we are at the lower right corner. - */ - if ((win->_flags & _WRAPPED) != 0 - && y < win->_maxy) { - win->_flags &= ~_WRAPPED; - } - - /* - * There's no point in clearing if we're not on a legal - * position, either. - */ - if ((win->_flags & _WRAPPED) != 0 - || y > win->_maxy - || x > win->_maxx) - returnCode(ERR); - - blank = win->_nc_bkgd; - line = &win->_line[y]; - CHANGED_TO_EOL(line, x, win->_maxx); - - ptr = &(line->text[x]); - end = &(line->text[win->_maxx]); - - while (ptr <= end) - *ptr++ = blank; - - _nc_synchook(win); - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_color.c b/Build/source/libs/ncurses/ncurses/base/lib_color.c deleted file mode 100644 index e4abf1b3725..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_color.c +++ /dev/null @@ -1,535 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* lib_color.c - * - * Handles color emulation of SYS V curses - */ - -#include - -#include -#include - -MODULE_ID("$Id: lib_color.c,v 1.64 2004/09/25 22:49:16 tom Exp $") - -/* - * These should be screen structure members. They need to be globals for - * historical reasons. So we assign them in start_color() and also in - * set_term()'s screen-switching logic. - */ -NCURSES_EXPORT_VAR(int) COLOR_PAIRS = 0; -NCURSES_EXPORT_VAR(int) COLORS = 0; - -#define DATA(r,g,b) {r,g,b, 0,0,0, 0} - -#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts)) - -/* - * Given a RGB range of 0..1000, we'll normally set the individual values - * to about 2/3 of the maximum, leaving full-range for bold/bright colors. - */ -#define RGB_ON 680 -#define RGB_OFF 0 -/* *INDENT-OFF* */ -static const color_t cga_palette[] = -{ - /* R G B */ - DATA(RGB_OFF, RGB_OFF, RGB_OFF), /* COLOR_BLACK */ - DATA(RGB_ON, RGB_OFF, RGB_OFF), /* COLOR_RED */ - DATA(RGB_OFF, RGB_ON, RGB_OFF), /* COLOR_GREEN */ - DATA(RGB_ON, RGB_ON, RGB_OFF), /* COLOR_YELLOW */ - DATA(RGB_OFF, RGB_OFF, RGB_ON), /* COLOR_BLUE */ - DATA(RGB_ON, RGB_OFF, RGB_ON), /* COLOR_MAGENTA */ - DATA(RGB_OFF, RGB_ON, RGB_ON), /* COLOR_CYAN */ - DATA(RGB_ON, RGB_ON, RGB_ON), /* COLOR_WHITE */ -}; - -static const color_t hls_palette[] = -{ - /* H L S */ - DATA( 0, 0, 0), /* COLOR_BLACK */ - DATA( 120, 50, 100), /* COLOR_RED */ - DATA( 240, 50, 100), /* COLOR_GREEN */ - DATA( 180, 50, 100), /* COLOR_YELLOW */ - DATA( 330, 50, 100), /* COLOR_BLUE */ - DATA( 60, 50, 100), /* COLOR_MAGENTA */ - DATA( 300, 50, 100), /* COLOR_CYAN */ - DATA( 0, 50, 100), /* COLOR_WHITE */ -}; -/* *INDENT-ON* */ - -#if NCURSES_EXT_FUNCS -/* - * These are called from _nc_do_color(), which in turn is called from - * vidattr - so we have to assume that SP may be null. - */ -static int -default_fg(void) -{ - return (SP != 0) ? SP->_default_fg : COLOR_WHITE; -} - -static int -default_bg(void) -{ - return SP != 0 ? SP->_default_bg : COLOR_BLACK; -} -#else -#define default_fg() COLOR_WHITE -#define default_bg() COLOR_BLACK -#endif - -/* - * SVr4 curses is known to interchange color codes (1,4) and (3,6), possibly - * to maintain compatibility with a pre-ANSI scheme. The same scheme is - * also used in the FreeBSD syscons. - */ -static int -toggled_colors(int c) -{ - if (c < 16) { - static const int table[] = - {0, 4, 2, 6, 1, 5, 3, 7, - 8, 12, 10, 14, 9, 13, 11, 15}; - c = table[c]; - } - return c; -} - -static void -set_background_color(int bg, int (*outc) (int)) -{ - if (set_a_background) { - TPUTS_TRACE("set_a_background"); - tputs(tparm(set_a_background, bg), 1, outc); - } else { - TPUTS_TRACE("set_background"); - tputs(tparm(set_background, toggled_colors(bg)), 1, outc); - } -} - -static void -set_foreground_color(int fg, int (*outc) (int)) -{ - if (set_a_foreground) { - TPUTS_TRACE("set_a_foreground"); - tputs(tparm(set_a_foreground, fg), 1, outc); - } else { - TPUTS_TRACE("set_foreground"); - tputs(tparm(set_foreground, toggled_colors(fg)), 1, outc); - } -} - -static void -init_color_table(void) -{ - const color_t *tp; - int n; - - tp = (hue_lightness_saturation) ? hls_palette : cga_palette; - for (n = 0; n < COLORS; n++) { - if (n < 8) { - SP->_color_table[n] = tp[n]; - } else { - SP->_color_table[n] = tp[n % 8]; - if (hue_lightness_saturation) { - SP->_color_table[n].green = 100; - } else { - if (SP->_color_table[n].red) - SP->_color_table[n].red = 1000; - if (SP->_color_table[n].green) - SP->_color_table[n].green = 1000; - if (SP->_color_table[n].blue) - SP->_color_table[n].blue = 1000; - } - } - } -} - -/* - * Reset the color pair, e.g., to whatever color pair 0 is. - */ -static bool -reset_color_pair(void) -{ - bool result = FALSE; - - if (orig_pair != 0) { - TPUTS_TRACE("orig_pair"); - putp(orig_pair); - result = TRUE; - } - return result; -} - -/* - * Reset color pairs and definitions. Actually we do both more to accommodate - * badly-written terminal descriptions than for the relatively rare case where - * someone has changed the color definitions. - */ -bool -_nc_reset_colors(void) -{ - int result = FALSE; - - T((T_CALLED("_nc_reset_colors()"))); - if (SP->_color_defs > 0) - SP->_color_defs = -(SP->_color_defs); - - if (reset_color_pair()) - result = TRUE; - if (orig_colors != 0) { - TPUTS_TRACE("orig_colors"); - putp(orig_colors); - result = TRUE; - } - returnBool(result); -} - -NCURSES_EXPORT(int) -start_color(void) -{ - int result = ERR; - - T((T_CALLED("start_color()"))); - - if (!SP->_coloron) { - - if (reset_color_pair() != TRUE) { - set_foreground_color(default_fg(), _nc_outch); - set_background_color(default_bg(), _nc_outch); - } - - if (max_pairs > 0 && max_colors > 0) { - COLOR_PAIRS = SP->_pair_count = max_pairs; - COLORS = SP->_color_count = max_colors; - - if ((SP->_color_pairs = TYPE_CALLOC(unsigned short, - max_pairs)) != 0) { - if ((SP->_color_table = TYPE_CALLOC(color_t, - max_colors)) != 0) { - SP->_color_pairs[0] = PAIR_OF(default_fg(), default_bg()); - init_color_table(); - - T(("started color: COLORS = %d, COLOR_PAIRS = %d", - COLORS, COLOR_PAIRS)); - - SP->_coloron = 1; - result = OK; - } else { - FreeAndNull(SP->_color_pairs); - } - } - } - } - returnCode(OK); -} - -/* This function was originally written by Daniel Weaver */ -static void -rgb2hls(short r, short g, short b, short *h, short *l, short *s) -/* convert RGB to HLS system */ -{ - short min, max, t; - - if ((min = g < r ? g : r) > b) - min = b; - if ((max = g > r ? g : r) < b) - max = b; - - /* calculate lightness */ - *l = (min + max) / 20; - - if (min == max) { /* black, white and all shades of gray */ - *h = 0; - *s = 0; - return; - } - - /* calculate saturation */ - if (*l < 50) - *s = ((max - min) * 100) / (max + min); - else - *s = ((max - min) * 100) / (2000 - max - min); - - /* calculate hue */ - if (r == max) - t = 120 + ((g - b) * 60) / (max - min); - else if (g == max) - t = 240 + ((b - r) * 60) / (max - min); - else - t = 360 + ((r - g) * 60) / (max - min); - - *h = t % 360; -} - -/* - * Extension (1997/1/18) - Allow negative f/b values to set default color - * values. - */ -NCURSES_EXPORT(int) -init_pair(short pair, short f, short b) -{ - unsigned result; - - T((T_CALLED("init_pair(%d,%d,%d)"), pair, f, b)); - - if ((pair < 0) || (pair >= COLOR_PAIRS)) - returnCode(ERR); -#if NCURSES_EXT_FUNCS - if (SP->_default_color) { - if (f < 0) - f = C_MASK; - if (b < 0) - b = C_MASK; - if (f >= COLORS && f != C_MASK) - returnCode(ERR); - if (b >= COLORS && b != C_MASK) - returnCode(ERR); - } else -#endif - { - if ((f < 0) || (f >= COLORS) - || (b < 0) || (b >= COLORS) - || (pair < 1)) - returnCode(ERR); - } - - /* - * When a pair's content is changed, replace its colors (if pair was - * initialized before a screen update is performed replacing original - * pair colors with the new ones). - */ - result = PAIR_OF(f, b); - if (SP->_color_pairs[pair] != 0 - && SP->_color_pairs[pair] != result) { - int y, x; - attr_t z = COLOR_PAIR(pair); - - for (y = 0; y <= curscr->_maxy; y++) { - struct ldat *ptr = &(curscr->_line[y]); - bool changed = FALSE; - for (x = 0; x <= curscr->_maxx; x++) { - if ((AttrOf(ptr->text[x]) & A_COLOR) == z) { - /* Set the old cell to zero to ensure it will be - updated on the next doupdate() */ - SetChar(ptr->text[x], 0, 0); - CHANGED_CELL(ptr, x); - changed = TRUE; - } - } - if (changed) - _nc_make_oldhash(y); - } - } - SP->_color_pairs[pair] = result; - if ((int) (SP->_current_attr & A_COLOR) == COLOR_PAIR(pair)) - SP->_current_attr |= A_COLOR; /* force attribute update */ - - if (initialize_pair) { - const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette; - - T(("initializing pair: pair = %d, fg=(%d,%d,%d), bg=(%d,%d,%d)", - pair, - tp[f].red, tp[f].green, tp[f].blue, - tp[b].red, tp[b].green, tp[b].blue)); - - if (initialize_pair) { - TPUTS_TRACE("initialize_pair"); - putp(tparm(initialize_pair, - pair, - tp[f].red, tp[f].green, tp[f].blue, - tp[b].red, tp[b].green, tp[b].blue)); - } - } - - returnCode(OK); -} - -#define okRGB(n) ((n) >= 0 && (n) <= 1000) - -NCURSES_EXPORT(int) -init_color(short color, short r, short g, short b) -{ - int result = ERR; - - T((T_CALLED("init_color(%d,%d,%d,%d)"), color, r, g, b)); - - if (initialize_color != NULL - && (color >= 0 && color < COLORS) - && (okRGB(r) && okRGB(g) && okRGB(b))) { - - SP->_color_table[color].init = 1; - SP->_color_table[color].r = r; - SP->_color_table[color].g = g; - SP->_color_table[color].b = b; - - if (hue_lightness_saturation) { - rgb2hls(r, g, b, - &SP->_color_table[color].red, - &SP->_color_table[color].green, - &SP->_color_table[color].blue); - } else { - SP->_color_table[color].red = r; - SP->_color_table[color].green = g; - SP->_color_table[color].blue = b; - } - - TPUTS_TRACE("initialize_color"); - putp(tparm(initialize_color, color, r, g, b)); - SP->_color_defs = max(color + 1, SP->_color_defs); - result = OK; - } - returnCode(result); -} - -NCURSES_EXPORT(bool) -can_change_color(void) -{ - T((T_CALLED("can_change_color()"))); - returnCode((can_change != 0) ? TRUE : FALSE); -} - -NCURSES_EXPORT(bool) -has_colors(void) -{ - T((T_CALLED("has_colors()"))); - returnCode((VALID_NUMERIC(max_colors) && VALID_NUMERIC(max_pairs) - && (((set_foreground != NULL) - && (set_background != NULL)) - || ((set_a_foreground != NULL) - && (set_a_background != NULL)) - || set_color_pair)) ? TRUE : FALSE); -} - -NCURSES_EXPORT(int) -color_content(short color, short *r, short *g, short *b) -{ - T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b)); - if (color < 0 || color >= COLORS) - returnCode(ERR); - - if (r) - *r = SP->_color_table[color].red; - if (g) - *g = SP->_color_table[color].green; - if (b) - *b = SP->_color_table[color].blue; - T(("...color_content(%d,%d,%d,%d)", color, *r, *g, *b)); - returnCode(OK); -} - -NCURSES_EXPORT(int) -pair_content(short pair, short *f, short *b) -{ - T((T_CALLED("pair_content(%d,%p,%p)"), pair, f, b)); - - if ((pair < 0) || (pair >= COLOR_PAIRS)) - returnCode(ERR); - if (f) - *f = ((SP->_color_pairs[pair] >> C_SHIFT) & C_MASK); - if (b) - *b = (SP->_color_pairs[pair] & C_MASK); - - T(("...pair_content(%d,%d,%d)", pair, *f, *b)); - returnCode(OK); -} - -NCURSES_EXPORT(void) -_nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int)) -{ - NCURSES_COLOR_T fg = C_MASK, bg = C_MASK; - NCURSES_COLOR_T old_fg, old_bg; - - if (pair < 0 || pair >= COLOR_PAIRS) { - return; - } else if (pair != 0) { - if (set_color_pair) { - TPUTS_TRACE("set_color_pair"); - tputs(tparm(set_color_pair, pair), 1, outc); - return; - } else if (SP != 0) { - pair_content(pair, &fg, &bg); - } - } - - if (old_pair >= 0 - && SP != 0 - && pair_content(old_pair, &old_fg, &old_bg) != ERR) { - if ((fg == C_MASK && old_fg != C_MASK) - || (bg == C_MASK && old_bg != C_MASK)) { -#if NCURSES_EXT_FUNCS - /* - * A minor optimization - but extension. If "AX" is specified in - * the terminal description, treat it as screen's indicator of ECMA - * SGR 39 and SGR 49, and assume the two sequences are independent. - */ - if (SP->_has_sgr_39_49 && old_bg == C_MASK && old_fg != C_MASK) { - tputs("\033[39m", 1, outc); - } else if (SP->_has_sgr_39_49 && old_fg == C_MASK && old_bg != C_MASK) { - tputs("\033[49m", 1, outc); - } else -#endif - reset_color_pair(); - } - } else { - reset_color_pair(); - if (old_pair < 0) - return; - } - -#if NCURSES_EXT_FUNCS - if (fg == C_MASK) - fg = default_fg(); - if (bg == C_MASK) - bg = default_bg(); -#endif - - if (reverse) { - NCURSES_COLOR_T xx = fg; - fg = bg; - bg = xx; - } - - TR(TRACE_ATTRS, ("setting colors: pair = %d, fg = %d, bg = %d", pair, - fg, bg)); - - if (fg != C_MASK) { - set_foreground_color(fg, outc); - } - if (bg != C_MASK) { - set_background_color(bg, outc); - } -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_colorset.c b/Build/source/libs/ncurses/ncurses/base/lib_colorset.c deleted file mode 100644 index cd3f7f6638d..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_colorset.c +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer, 1998 * - ****************************************************************************/ - -/* -** lib_colorset.c -** -** The routine wcolor_set(). -** -*/ - -#include -#include - -MODULE_ID("$Id: lib_colorset.c,v 1.10 2003/12/07 00:15:27 tom Exp $") - -NCURSES_EXPORT(int) -wcolor_set(WINDOW *win, short color_pair_number, void *opts) -{ - T((T_CALLED("wcolor_set(%p,%d)"), win, color_pair_number)); - if (win - && !opts - && (color_pair_number >= 0) - && (color_pair_number < COLOR_PAIRS)) { - TR(TRACE_ATTRS, ("... current %ld", (long) PAIR_NUMBER(win->_attrs))); - win->_attrs &= ALL_BUT_COLOR; - win->_attrs |= COLOR_PAIR(color_pair_number); - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_delch.c b/Build/source/libs/ncurses/ncurses/base/lib_delch.c deleted file mode 100644 index 0c30f2d93c1..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_delch.c +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_delch.c -** -** The routine wdelch(). -** -*/ - -#include - -MODULE_ID("$Id: lib_delch.c,v 1.12 2001/12/19 01:06:09 tom Exp $") - -NCURSES_EXPORT(int) -wdelch(WINDOW *win) -{ - int code = ERR; - - T((T_CALLED("wdelch(%p)"), win)); - - if (win) { - NCURSES_CH_T blank = win->_nc_bkgd; - struct ldat *line = &(win->_line[win->_cury]); - NCURSES_CH_T *end = &(line->text[win->_maxx]); - NCURSES_CH_T *temp2 = &(line->text[win->_curx + 1]); - NCURSES_CH_T *temp1 = temp2 - 1; - - CHANGED_TO_EOL(line, win->_curx, win->_maxx); - while (temp1 < end) - *temp1++ = *temp2++; - - *temp1 = blank; - - _nc_synchook(win); - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_delwin.c b/Build/source/libs/ncurses/ncurses/base/lib_delwin.c deleted file mode 100644 index 89d8e7c32ec..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_delwin.c +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_delwin.c -** -** The routine delwin(). -** -*/ - -#include - -MODULE_ID("$Id: lib_delwin.c,v 1.13 2001/08/26 00:40:20 tom Exp $") - -static bool -cannot_delete(WINDOW *win) -{ - WINDOWLIST *p; - bool result = TRUE; - - for (p = _nc_windows; p != 0; p = p->next) { - if (&(p->win) == win) { - result = FALSE; - } else if ((p->win._flags & _SUBWIN) != 0 - && p->win._parent == win) { - result = TRUE; - break; - } - } - return result; -} - -NCURSES_EXPORT(int) -delwin(WINDOW *win) -{ - T((T_CALLED("delwin(%p)"), win)); - - if (win == 0 - || cannot_delete(win)) - returnCode(ERR); - - if (win->_flags & _SUBWIN) - touchwin(win->_parent); - else if (curscr != 0) - touchwin(curscr); - - returnCode(_nc_freewin(win)); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_dft_fgbg.c b/Build/source/libs/ncurses/ncurses/base/lib_dft_fgbg.c deleted file mode 100644 index 24705c9615e..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_dft_fgbg.c +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997,1999 * - ****************************************************************************/ - -#include -#include - -MODULE_ID("$Id: lib_dft_fgbg.c,v 1.15 2000/12/10 02:43:27 tom Exp $") - -/* - * Modify the behavior of color-pair 0 so that the library doesn't assume that - * it is white on black. This is an extension to XSI curses. - */ -NCURSES_EXPORT(int) -use_default_colors(void) -{ - T((T_CALLED("use_default_colors()"))); - returnCode(assume_default_colors(C_MASK, C_MASK)); -} - -/* - * Modify the behavior of color-pair 0 so that the library assumes that it - * is something specific, possibly not white on black. - */ -NCURSES_EXPORT(int) -assume_default_colors(int fg, int bg) -{ - T((T_CALLED("assume_default_colors(%d,%d)"), fg, bg)); - - if (!orig_pair && !orig_colors) - returnCode(ERR); - - if (initialize_pair) /* don't know how to handle this */ - returnCode(ERR); - - SP->_default_color = (fg < 0 || fg == C_MASK) || (bg < 0 || bg == C_MASK); - SP->_has_sgr_39_49 = (tigetflag("AX") == TRUE); - SP->_default_fg = (fg >= 0) ? (fg & C_MASK) : C_MASK; - SP->_default_bg = (bg >= 0) ? (bg & C_MASK) : C_MASK; - if (SP->_color_pairs != 0) - init_pair(0, fg, bg); - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_echo.c b/Build/source/libs/ncurses/ncurses/base/lib_echo.c deleted file mode 100644 index df44713d1a1..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_echo.c +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * echo.c - * - * Routines: - * echo() - * noecho() - * - */ - -#include - -MODULE_ID("$Id: lib_echo.c,v 1.5 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -echo(void) -{ - T((T_CALLED("echo()"))); - SP->_echo = TRUE; - returnCode(OK); -} - -NCURSES_EXPORT(int) -noecho(void) -{ - T((T_CALLED("noecho()"))); - SP->_echo = FALSE; - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_endwin.c b/Build/source/libs/ncurses/ncurses/base/lib_endwin.c deleted file mode 100644 index 66662871962..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_endwin.c +++ /dev/null @@ -1,60 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_endwin.c -** -** The routine endwin(). -** -*/ - -#include -#include - -MODULE_ID("$Id: lib_endwin.c,v 1.19 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -endwin(void) -{ - T((T_CALLED("endwin()"))); - - if (SP) { - SP->_endwin = TRUE; - SP->_mouse_wrap(SP); - _nc_screen_wrap(); - _nc_mvcur_wrap(); /* wrap up cursor addressing */ - returnCode(reset_shell_mode()); - } - - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_erase.c b/Build/source/libs/ncurses/ncurses/base/lib_erase.c deleted file mode 100644 index 5e397312ffe..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_erase.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_erase.c -** -** The routine werase(). -** -*/ - -#include - -MODULE_ID("$Id: lib_erase.c,v 1.15 2001/12/19 01:06:13 tom Exp $") - -NCURSES_EXPORT(int) -werase(WINDOW *win) -{ - int code = ERR; - int y; - NCURSES_CH_T blank; - NCURSES_CH_T *sp, *end, *start; - - T((T_CALLED("werase(%p)"), win)); - - if (win) { - blank = win->_nc_bkgd; - for (y = 0; y <= win->_maxy; y++) { - start = win->_line[y].text; - end = &start[win->_maxx]; - - for (sp = start; sp <= end; sp++) - *sp = blank; - - win->_line[y].firstchar = 0; - win->_line[y].lastchar = win->_maxx; - } - win->_curx = win->_cury = 0; - win->_flags &= ~_WRAPPED; - _nc_synchook(win); - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_flash.c b/Build/source/libs/ncurses/ncurses/base/lib_flash.c deleted file mode 100644 index a6b022a8e81..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_flash.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * flash.c - * - * The routine flash(). - * - */ - -#include -#include /* beep, flash */ - -MODULE_ID("$Id: lib_flash.c,v 1.6 2000/12/10 02:43:27 tom Exp $") - -/* - * flash() - * - * Flash the current terminal's screen if possible. If not, - * sound the audible bell if one exists. - * - */ - -NCURSES_EXPORT(int) -flash(void) -{ - int res = ERR; - - T((T_CALLED("flash()"))); - - /* FIXME: should make sure that we are not in altchar mode */ - if (flash_screen) { - TPUTS_TRACE("flash_screen"); - res = putp(flash_screen); - _nc_flush(); - } else if (bell) { - TPUTS_TRACE("bell"); - res = putp(bell); - _nc_flush(); - } - - returnCode(res); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_freeall.c b/Build/source/libs/ncurses/ncurses/base/lib_freeall.c deleted file mode 100644 index 78f38203755..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_freeall.c +++ /dev/null @@ -1,129 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1996,1997 * - ****************************************************************************/ - -#include -#include -#include - -#if HAVE_NC_FREEALL - -#if HAVE_LIBDBMALLOC -extern int malloc_errfd; /* FIXME */ -#endif - -MODULE_ID("$Id: lib_freeall.c,v 1.29 2004/05/16 15:49:05 tom Exp $") - -/* - * Free all ncurses data. This is used for testing only (there's no practical - * use for it as an extension). - */ -NCURSES_EXPORT(void) -_nc_freeall(void) -{ - WINDOWLIST *p, *q; - char *s; - - T((T_CALLED("_nc_freeall()"))); -#if NO_LEAKS - _nc_free_tparm(); - FreeAndNull(_nc_oldnums); -#endif - if (SP != 0) { - while (_nc_windows != 0) { - /* Delete only windows that're not a parent */ - for (p = _nc_windows; p != 0; p = p->next) { - bool found = FALSE; - - for (q = _nc_windows; q != 0; q = q->next) { - if ((p != q) - && (q->win._flags & _SUBWIN) - && (&(p->win) == q->win._parent)) { - found = TRUE; - break; - } - } - - if (!found) { - delwin(&(p->win)); - break; - } - } - } - delscreen(SP); - } - - del_curterm(cur_term); - _nc_free_entries(_nc_head); - _nc_get_type(0); - _nc_first_name(0); -#if USE_WIDEC_SUPPORT - FreeIfNeeded(_nc_wacs); -#endif - - if ((s = _nc_home_terminfo()) != 0) - free(s); - - (void) _nc_printf_string(0, 0); -#ifdef TRACE - (void) _nc_trace_buf(-1, 0); -#endif - -#if HAVE_LIBDBMALLOC - malloc_dump(malloc_errfd); -#elif HAVE_LIBDMALLOC -#elif HAVE_PURIFY - purify_all_inuse(); -#endif - returnVoid; -} - -NCURSES_EXPORT(void) -_nc_free_and_exit(int code) -{ - char *last_setbuf = (SP != 0) ? SP->_setbuf : 0; - - _nc_freeall(); -#ifdef TRACE - trace(0); /* close trace file, freeing its setbuf */ - free(_nc_varargs("?", 0)); -#endif - fclose(stdout); - FreeIfNeeded(last_setbuf); - exit(code); -} - -#else -NCURSES_EXPORT(void) -_nc_freeall(void) -{ -} -#endif diff --git a/Build/source/libs/ncurses/ncurses/base/lib_getch.c b/Build/source/libs/ncurses/ncurses/base/lib_getch.c deleted file mode 100644 index 84700cc7a1b..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_getch.c +++ /dev/null @@ -1,575 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_getch.c -** -** The routine getch(). -** -*/ - -#include - -MODULE_ID("$Id: lib_getch.c,v 1.71 2003/05/17 23:49:28 tom Exp $") - -#include - -NCURSES_EXPORT_VAR(int) -ESCDELAY = 1000; /* max interval betw. chars in funkeys, in millisecs */ - -#ifdef NCURSES_WGETCH_EVENTS -#define TWAIT_MASK 7 -#else -#define TWAIT_MASK 3 -#endif - -/* - * Check for mouse activity, returning nonzero if we find any. - */ -static int -check_mouse_activity(int delay EVENTLIST_2nd(_nc_eventlist * evl)) -{ - int rc; - -#if USE_SYSMOUSE - if ((SP->_mouse_type == M_SYSMOUSE) - && (SP->_sysmouse_head < SP->_sysmouse_tail)) { - return 2; - } -#endif - rc = _nc_timed_wait(TWAIT_MASK, delay, (int *) 0 EVENTLIST_2nd(evl)); -#if USE_SYSMOUSE - if ((SP->_mouse_type == M_SYSMOUSE) - && (SP->_sysmouse_head < SP->_sysmouse_tail) - && (rc == 0) - && (errno == EINTR)) { - rc |= 2; - } -#endif - return rc; -} - -static inline int -fifo_peek(void) -{ - int ch = SP->_fifo[peek]; - TR(TRACE_IEVENT, ("peeking at %d", peek)); - - p_inc(); - return ch; -} - -static inline int -fifo_pull(void) -{ - int ch; - ch = SP->_fifo[head]; - TR(TRACE_IEVENT, ("pulling %s from %d", _tracechar(ch), head)); - - if (peek == head) { - h_inc(); - peek = head; - } else - h_inc(); - -#ifdef TRACE - if (_nc_tracing & TRACE_IEVENT) - _nc_fifo_dump(); -#endif - return ch; -} - -static inline int -fifo_push(EVENTLIST_0th(_nc_eventlist * evl)) -{ - int n; - int ch = 0; - int mask = 0; - - (void) mask; - if (tail == -1) - return ERR; - -#ifdef HIDE_EINTR - again: - errno = 0; -#endif - -#ifdef NCURSES_WGETCH_EVENTS - if (evl -#if USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE - || (SP->_mouse_fd >= 0) -#endif - ) { - mask = check_mouse_activity(-1 EVENTLIST_2nd(evl)); - } else - mask = 0; - - if (mask & 4) { - T(("fifo_push: ungetch KEY_EVENT")); - ungetch(KEY_EVENT); - return KEY_EVENT; - } -#elif USE_GPM_SUPPORT || USE_EMX_MOUSE || USE_SYSMOUSE - if (SP->_mouse_fd >= 0) { - mask = check_mouse_activity(-1 EVENTLIST_2nd(evl)); - } -#endif - -#if USE_GPM_SUPPORT || USE_EMX_MOUSE - if ((SP->_mouse_fd >= 0) && (mask & 2)) { - SP->_mouse_event(SP); - ch = KEY_MOUSE; - n = 1; - } else -#endif -#if USE_SYSMOUSE - if ((SP->_mouse_type == M_SYSMOUSE) - && (SP->_sysmouse_head < SP->_sysmouse_tail)) { - SP->_mouse_event(SP); - ch = KEY_MOUSE; - n = 1; - } else if ((SP->_mouse_type == M_SYSMOUSE) - && (mask <= 0) && errno == EINTR) { - SP->_mouse_event(SP); - ch = KEY_MOUSE; - n = 1; - } else -#endif - { /* Can block... */ - unsigned char c2 = 0; - n = read(SP->_ifd, &c2, 1); - ch = c2; - } - -#ifdef HIDE_EINTR - /* - * Under System V curses with non-restarting signals, getch() returns - * with value ERR when a handled signal keeps it from completing. - * If signals restart system calls, OTOH, the signal is invisible - * except to its handler. - * - * We don't want this difference to show. This piece of code - * tries to make it look like we always have restarting signals. - */ - if (n <= 0 && errno == EINTR) - goto again; -#endif - - if ((n == -1) || (n == 0)) { - TR(TRACE_IEVENT, ("read(%d,&ch,1)=%d, errno=%d", SP->_ifd, n, errno)); - ch = ERR; - } - TR(TRACE_IEVENT, ("read %d characters", n)); - - SP->_fifo[tail] = ch; - SP->_fifohold = 0; - if (head == -1) - head = peek = tail; - t_inc(); - TR(TRACE_IEVENT, ("pushed %s at %d", _tracechar(ch), tail)); -#ifdef TRACE - if (_nc_tracing & TRACE_IEVENT) - _nc_fifo_dump(); -#endif - return ch; -} - -static inline void -fifo_clear(void) -{ - memset(SP->_fifo, 0, sizeof(SP->_fifo)); - head = -1; - tail = peek = 0; -} - -static int kgetch(EVENTLIST_0th(_nc_eventlist * evl)); - -#define wgetch_should_refresh(win) (\ - (is_wintouched(win) || (win->_flags & _HASMOVED)) \ - && !(win->_flags & _ISPAD)) - -NCURSES_EXPORT(int) -_nc_wgetch(WINDOW *win, - unsigned long *result, - int use_meta - EVENTLIST_2nd(_nc_eventlist * evl)) -{ - int ch; -#ifdef NCURSES_WGETCH_EVENTS - long event_delay = -1; -#endif - - T((T_CALLED("_nc_wgetch(%p)"), win)); - - *result = 0; - if (!win) - returnCode(ERR); - - if (cooked_key_in_fifo()) { - if (wgetch_should_refresh(win)) - wrefresh(win); - - *result = fifo_pull(); - returnCode(OK); - } -#ifdef NCURSES_WGETCH_EVENTS - if (evl && (evl->count == 0)) - evl = NULL; - event_delay = _nc_eventlist_timeout(evl); -#endif - - /* - * Handle cooked mode. Grab a string from the screen, - * stuff its contents in the FIFO queue, and pop off - * the first character to return it. - */ - if (head == -1 && - !SP->_notty && - !SP->_raw && - !SP->_cbreak && - !SP->_called_wgetch) { - char buf[MAXCOLUMNS], *sp; - int rc; - - TR(TRACE_IEVENT, ("filling queue in cooked mode")); - - SP->_called_wgetch = TRUE; - rc = wgetnstr(win, buf, MAXCOLUMNS); - SP->_called_wgetch = FALSE; - - /* ungetch in reverse order */ -#ifdef NCURSES_WGETCH_EVENTS - if (rc != KEY_EVENT) -#endif - ungetch('\n'); - for (sp = buf + strlen(buf); sp > buf; sp--) - ungetch(sp[-1]); - -#ifdef NCURSES_WGETCH_EVENTS - /* Return it first */ - if (rc == KEY_EVENT) { - *result = rc; - returnCode(OK); - } -#endif - - *result = fifo_pull(); - returnCode(OK); - } - - if (win->_use_keypad != SP->_keypad_on) - _nc_keypad(win->_use_keypad); - - if (wgetch_should_refresh(win)) - wrefresh(win); - - if (!win->_notimeout && (win->_delay >= 0 || SP->_cbreak > 1)) { - int delay; - - TR(TRACE_IEVENT, ("timed delay in wgetch()")); - if (SP->_cbreak > 1) - delay = (SP->_cbreak - 1) * 100; - else - delay = win->_delay; - -#ifdef NCURSES_WGETCH_EVENTS - if (event_delay >= 0 && delay > event_delay) - delay = event_delay; -#endif - - TR(TRACE_IEVENT, ("delay is %d milliseconds", delay)); - - if (head == -1) { /* fifo is empty */ - int rc = check_mouse_activity(delay EVENTLIST_2nd(evl)); - -#ifdef NCURSES_WGETCH_EVENTS - if (rc & 4) { - *result = KEY_EVENT; - returnCode(OK); - } -#endif - if (!rc) - returnCode(ERR); - } - /* else go on to read data available */ - } - - if (win->_use_keypad) { - /* - * This is tricky. We only want to get special-key - * events one at a time. But we want to accumulate - * mouse events until either (a) the mouse logic tells - * us it's picked up a complete gesture, or (b) - * there's a detectable time lapse after one. - * - * Note: if the mouse code starts failing to compose - * press/release events into clicks, you should probably - * increase the wait with mouseinterval(). - */ - int runcount = 0; - int rc; - - do { - ch = kgetch(EVENTLIST_1st(evl)); - if (ch == KEY_MOUSE) { - ++runcount; - if (SP->_mouse_inline(SP)) - break; - } - if (SP->_maxclick < 0) - break; - } while - (ch == KEY_MOUSE - && (((rc = check_mouse_activity(SP->_maxclick - EVENTLIST_2nd(evl))) != 0 - && !(rc & 4)) - || !SP->_mouse_parse(runcount))); -#ifdef NCURSES_WGETCH_EVENTS - if ((rc & 4) && !ch == KEY_EVENT) { - ungetch(ch); - ch = KEY_EVENT; - } -#endif - if (runcount > 0 && ch != KEY_MOUSE) { -#ifdef NCURSES_WGETCH_EVENTS - /* mouse event sequence ended by an event, report event */ - if (ch == KEY_EVENT) { - ungetch(KEY_MOUSE); /* FIXME This interrupts a gesture... */ - } else -#endif - { - /* mouse event sequence ended by keystroke, store keystroke */ - ungetch(ch); - ch = KEY_MOUSE; - } - } - } else { - if (head == -1) - fifo_push(EVENTLIST_1st(evl)); - ch = fifo_pull(); - } - - if (ch == ERR) { -#if USE_SIZECHANGE - if (SP->_sig_winch) { - _nc_update_screensize(); - /* resizeterm can push KEY_RESIZE */ - if (cooked_key_in_fifo()) { - *result = fifo_pull(); - returnCode(*result >= KEY_MIN ? KEY_CODE_YES : OK); - } - } -#endif - returnCode(ERR); - } - - /* - * If echo() is in effect, display the printable version of the - * key on the screen. Carriage return and backspace are treated - * specially by Solaris curses: - * - * If carriage return is defined as a function key in the - * terminfo, e.g., kent, then Solaris may return either ^J (or ^M - * if nonl() is set) or KEY_ENTER depending on the echo() mode. - * We echo before translating carriage return based on nonl(), - * since the visual result simply moves the cursor to column 0. - * - * Backspace is a different matter. Solaris curses does not - * translate it to KEY_BACKSPACE if kbs=^H. This does not depend - * on the stty modes, but appears to be a hardcoded special case. - * This is a difference from ncurses, which uses the terminfo entry. - * However, we provide the same visual result as Solaris, moving the - * cursor to the left. - */ - if (SP->_echo && !(win->_flags & _ISPAD)) { - chtype backup = (ch == KEY_BACKSPACE) ? '\b' : ch; - if (backup < KEY_MIN) - wechochar(win, backup); - } - - /* - * Simulate ICRNL mode - */ - if ((ch == '\r') && SP->_nl) - ch = '\n'; - - /* Strip 8th-bit if so desired. We do this only for characters that - * are in the range 128-255, to provide compatibility with terminals - * that display only 7-bit characters. Note that 'ch' may be a - * function key at this point, so we mustn't strip _those_. - */ - if (!use_meta) - if ((ch < KEY_MIN) && (ch & 0x80)) - ch &= 0x7f; - - T(("wgetch returning : %s", _tracechar(ch))); - - *result = ch; - returnCode(ch >= KEY_MIN ? KEY_CODE_YES : OK); -} - -#ifdef NCURSES_WGETCH_EVENTS -NCURSES_EXPORT(int) -wgetch_events(WINDOW *win, _nc_eventlist * evl) -{ - int code; - unsigned long value; - - T((T_CALLED("wgetch_events(%p,%p)"), win, evl)); - code = _nc_wgetch(win, - &value, - SP->_use_meta - EVENTLIST_2nd(evl)); - if (code != ERR) - code = value; - returnCode(code); -} -#endif - -NCURSES_EXPORT(int) -wgetch(WINDOW *win) -{ - int code; - unsigned long value; - - T((T_CALLED("wgetch(%p)"), win)); - code = _nc_wgetch(win, - &value, - SP->_use_meta - EVENTLIST_2nd((_nc_eventlist *) 0)); - if (code != ERR) - code = value; - returnCode(code); -} - -/* -** int -** kgetch() -** -** Get an input character, but take care of keypad sequences, returning -** an appropriate code when one matches the input. After each character -** is received, set an alarm call based on ESCDELAY. If no more of the -** sequence is received by the time the alarm goes off, pass through -** the sequence gotten so far. -** -** This function must be called when there are no cooked keys in queue. -** (that is head==-1 || peek==head) -** -*/ - -static int -kgetch(EVENTLIST_0th(_nc_eventlist * evl)) -{ - struct tries *ptr; - int ch = 0; - int timeleft = ESCDELAY; - - TR(TRACE_IEVENT, ("kgetch() called")); - - ptr = SP->_keytry; - - for (;;) { - if (cooked_key_in_fifo() && SP->_fifo[head] >= KEY_MIN) { - break; - } else if (!raw_key_in_fifo()) { - ch = fifo_push(EVENTLIST_1st(evl)); - if (ch == ERR) { - peek = head; /* the keys stay uninterpreted */ - return ERR; - } -#ifdef NCURSES_WGETCH_EVENTS - else if (ch == KEY_EVENT) { - peek = head; /* the keys stay uninterpreted */ - return fifo_pull(); /* Remove KEY_EVENT from the queue */ - } -#endif - } - - ch = fifo_peek(); - if (ch >= KEY_MIN) { - /* If not first in queue, somebody put this key there on purpose in - * emergency. Consider it higher priority than the unfinished - * keysequence we are parsing. - */ - peek = head; - /* assume the key is the last in fifo */ - t_dec(); /* remove the key */ - return ch; - } - - TR(TRACE_IEVENT, ("ch: %s", _tracechar((unsigned char) ch))); - while ((ptr != NULL) && (ptr->ch != (unsigned char) ch)) - ptr = ptr->sibling; - - if (ptr == NULL) { - TR(TRACE_IEVENT, ("ptr is null")); - break; - } - TR(TRACE_IEVENT, ("ptr=%p, ch=%d, value=%d", - ptr, ptr->ch, ptr->value)); - - if (ptr->value != 0) { /* sequence terminated */ - TR(TRACE_IEVENT, ("end of sequence")); - if (peek == tail) - fifo_clear(); - else - head = peek; - return (ptr->value); - } - - ptr = ptr->child; - - if (!raw_key_in_fifo()) { - int rc; - - TR(TRACE_IEVENT, ("waiting for rest of sequence")); - rc = check_mouse_activity(timeleft EVENTLIST_2nd(evl)); -#ifdef NCURSES_WGETCH_EVENTS - if (rc & 4) { - TR(TRACE_IEVENT, ("interrupted by a user event")); - /* FIXME Should have preserved remainder timeleft for reusal... */ - peek = head; /* Restart interpreting later */ - return KEY_EVENT; - } -#endif - if (!rc) { - TR(TRACE_IEVENT, ("ran out of time")); - break; - } - } - } - ch = fifo_pull(); - peek = head; - return ch; -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_getstr.c b/Build/source/libs/ncurses/ncurses/base/lib_getstr.c deleted file mode 100644 index 76170382449..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_getstr.c +++ /dev/null @@ -1,215 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_getstr.c -** -** The routine wgetstr(). -** -*/ - -#include -#include - -MODULE_ID("$Id: lib_getstr.c,v 1.24 2002/09/01 17:31:12 tom Exp $") - -/* - * This wipes out the last character, no matter whether it was a tab, control - * or other character, and handles reverse wraparound. - */ -static char * -WipeOut(WINDOW *win, int y, int x, char *first, char *last, bool echoed) -{ - if (last > first) { - *--last = '\0'; - if (echoed) { - int y1 = win->_cury; - int x1 = win->_curx; - - wmove(win, y, x); - waddstr(win, first); - getyx(win, y, x); - while (win->_cury < y1 - || (win->_cury == y1 && win->_curx < x1)) - waddch(win, (chtype) ' '); - - wmove(win, y, x); - } - } - return last; -} - -NCURSES_EXPORT(int) -wgetnstr_events(WINDOW *win, - char *str, - int maxlen, - EVENTLIST_1st(_nc_eventlist * evl)) -{ - TTY buf; - bool oldnl, oldecho, oldraw, oldcbreak; - char erasec; - char killc; - char *oldstr; - int ch; - int y, x; - - T((T_CALLED("wgetnstr(%p,%p, %d)"), win, str, maxlen)); - - if (!win) - returnCode(ERR); - - _nc_get_tty_mode(&buf); - - oldnl = SP->_nl; - oldecho = SP->_echo; - oldraw = SP->_raw; - oldcbreak = SP->_cbreak; - nl(); - noecho(); - noraw(); - cbreak(); - - erasec = erasechar(); - killc = killchar(); - - oldstr = str; - getyx(win, y, x); - - if (is_wintouched(win) || (win->_flags & _HASMOVED)) - wrefresh(win); - - while ((ch = wgetch_events(win, evl)) != ERR) { - /* - * Some terminals (the Wyse-50 is the most common) generate - * a \n from the down-arrow key. With this logic, it's the - * user's choice whether to set kcud=\n for wgetch(); - * terminating *getstr() with \n should work either way. - */ - if (ch == '\n' - || ch == '\r' - || ch == KEY_DOWN - || ch == KEY_ENTER) { - if (oldecho == TRUE - && win->_cury == win->_maxy - && win->_scroll) - wechochar(win, (chtype) '\n'); - break; - } -#ifdef KEY_EVENT - if (ch == KEY_EVENT) - break; -#endif - if (ch == erasec || ch == KEY_LEFT || ch == KEY_BACKSPACE) { - if (str > oldstr) { - str = WipeOut(win, y, x, oldstr, str, oldecho); - } - } else if (ch == killc) { - while (str > oldstr) { - str = WipeOut(win, y, x, oldstr, str, oldecho); - } - } else if (ch >= KEY_MIN - || (maxlen >= 0 && str - oldstr >= maxlen)) { - beep(); - } else { - *str++ = ch; - if (oldecho == TRUE) { - int oldy = win->_cury; - if (waddch(win, (chtype) ch) == ERR) { - /* - * We can't really use the lower-right - * corner for input, since it'll mess - * up bookkeeping for erases. - */ - win->_flags &= ~_WRAPPED; - waddch(win, (chtype) ' '); - str = WipeOut(win, y, x, oldstr, str, oldecho); - continue; - } else if (win->_flags & _WRAPPED) { - /* - * If the last waddch forced a wrap & - * scroll, adjust our reference point - * for erasures. - */ - if (win->_scroll - && oldy == win->_maxy - && win->_cury == win->_maxy) { - if (--y <= 0) { - y = 0; - } - } - win->_flags &= ~_WRAPPED; - } - wrefresh(win); - } - } - } - - win->_curx = 0; - win->_flags &= ~_WRAPPED; - if (win->_cury < win->_maxy) - win->_cury++; - wrefresh(win); - - /* Restore with a single I/O call, to fix minor asymmetry between - * raw/noraw, etc. - */ - SP->_nl = oldnl; - SP->_echo = oldecho; - SP->_raw = oldraw; - SP->_cbreak = oldcbreak; - - _nc_set_tty_mode(&buf); - - *str = '\0'; - if (ch == ERR) - returnCode(ch); -#ifdef KEY_EVENT - if (ch == KEY_EVENT) - returnCode(ch); -#endif - - T(("wgetnstr returns %s", _nc_visbuf(oldstr))); - - returnCode(OK); -} - -#ifdef NCURSES_WGETCH_EVENTS -NCURSES_EXPORT(int) -wgetnstr(WINDOW *win, char *str, int maxlen) -{ - returnCode(wgetnstr_events(win, - str, - maxlen, - EVENTLIST_1st((_nc_eventlist *) 0))); -} -#endif diff --git a/Build/source/libs/ncurses/ncurses/base/lib_hline.c b/Build/source/libs/ncurses/ncurses/base/lib_hline.c deleted file mode 100644 index 2cb6cc5ce6f..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_hline.c +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_hline.c -** -** The routine whline(). -** -*/ - -#include - -MODULE_ID("$Id: lib_hline.c,v 1.10 2001/06/03 00:39:24 skimo Exp $") - -NCURSES_EXPORT(int) -whline(WINDOW *win, chtype ch, int n) -{ - int code = ERR; - NCURSES_SIZE_T start; - NCURSES_SIZE_T end; - - T((T_CALLED("whline(%p,%s,%d)"), win, _tracechtype(ch), n)); - - if (win) { - struct ldat *line = &(win->_line[win->_cury]); - NCURSES_CH_T wch; - - start = win->_curx; - end = start + n - 1; - if (end > win->_maxx) - end = win->_maxx; - - CHANGED_RANGE(line, start, end); - - if (ch == 0) - SetChar(wch, ChCharOf(ACS_HLINE), ChAttrOf(ACS_HLINE)); - else - SetChar(wch, ChCharOf(ch), ChAttrOf(ch)); - wch = _nc_render(win, wch); - - while (end >= start) { - line->text[end] = wch; - end--; - } - - _nc_synchook(win); - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_immedok.c b/Build/source/libs/ncurses/ncurses/base/lib_immedok.c deleted file mode 100644 index 87988b66f1a..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_immedok.c +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_immedok.c -** -** The routine immedok. -** -*/ - -#include - -MODULE_ID("$Id: lib_immedok.c,v 1.4 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(void) -immedok(WINDOW *win, bool flag) -{ - T((T_CALLED("immedok(%p,%d)"), win, flag)); - - if (win) - win->_immed = flag; - - returnVoid; -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_inchstr.c b/Build/source/libs/ncurses/ncurses/base/lib_inchstr.c deleted file mode 100644 index 6ff01687826..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_inchstr.c +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_inchstr.c -** -** The routine winchnstr(). -** -*/ - -#include - -MODULE_ID("$Id: lib_inchstr.c,v 1.10 2001/06/02 23:37:58 skimo Exp $") - -NCURSES_EXPORT(int) -winchnstr(WINDOW *win, chtype * str, int n) -{ - int i = 0; - - T((T_CALLED("winchnstr(%p,%p,%d)"), win, str, n)); - - if (!str) - returnCode(0); - - if (win) { - for (; (n < 0 || (i < n)) && (win->_curx + i <= win->_maxx); i++) - str[i] = - CharOf(win->_line[win->_cury].text[win->_curx + i]) | - AttrOf(win->_line[win->_cury].text[win->_curx + i]); - } - str[i] = (chtype) 0; - - returnCode(i); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_initscr.c b/Build/source/libs/ncurses/ncurses/base/lib_initscr.c deleted file mode 100644 index d8ac5c6ce3f..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_initscr.c +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-2003 * - ****************************************************************************/ - -/* -** lib_initscr.c -** -** The routines initscr(), and termname(). -** -*/ - -#include - -#if HAVE_SYS_TERMIO_H -#include /* needed for ISC */ -#endif - -MODULE_ID("$Id: lib_initscr.c,v 1.33 2003/12/27 19:13:51 tom Exp $") - -NCURSES_EXPORT(WINDOW *) -initscr(void) -{ - static bool initialized = FALSE; - NCURSES_CONST char *name; - int value; - - START_TRACE(); - T((T_CALLED("initscr()"))); - /* Portable applications must not call initscr() more than once */ - if (!initialized) { - initialized = TRUE; - - if ((name = getenv("TERM")) == 0 - || *name == '\0') - name = "unknown"; -#ifdef __CYGWIN__ - /* - * 2002/9/21 - * Work around a bug in Cygwin. Full-screen subprocesses run from - * bash, in turn spawned from another full-screen process, will dump - * core when attempting to write to stdout. Opening /dev/tty - * explicitly seems to fix the problem. - */ - if (isatty(fileno(stdout))) { - FILE *fp = fopen("/dev/tty", "w"); - if (fp != 0 && isatty(fileno(fp))) { - fclose(stdout); - dup2(fileno(fp), STDOUT_FILENO); - stdout = fdopen(STDOUT_FILENO, "w"); - } - } -#endif - if (newterm(name, stdout, stdin) == 0) { - fprintf(stderr, "Error opening terminal: %s.\n", name); - exit(EXIT_FAILURE); - } - - /* allow user to set maximum escape delay from the environment */ - if ((value = _nc_getenv_num("ESCDELAY")) >= 0) { - ESCDELAY = value; - } - - /* def_shell_mode - done in newterm/_nc_setupscreen */ - def_prog_mode(); - } - returnWin(stdscr); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_insch.c b/Build/source/libs/ncurses/ncurses/base/lib_insch.c deleted file mode 100644 index f20b987971a..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_insch.c +++ /dev/null @@ -1,137 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Sven Verdoolaege * - * and: Thomas E. Dickey * - ****************************************************************************/ - -/* -** lib_insch.c -** -** The routine winsch(). -** -*/ - -#include -#include - -MODULE_ID("$Id: lib_insch.c,v 1.21 2004/06/19 22:52:59 tom Exp $") - -/* - * Insert the given character, updating the current location to simplify - * inserting a string. - */ -void -_nc_insert_ch(WINDOW *win, chtype ch) -{ - NCURSES_CH_T wch; - int count; - NCURSES_CONST char *s; - - switch (ch) { - case '\t': - for (count = (TABSIZE - (win->_curx % TABSIZE)); count > 0; count--) - _nc_insert_ch(win, ' '); - break; - case '\n': - case '\r': - case '\b': - SetChar2(wch, ch); - _nc_waddch_nosync(win, wch); - break; - default: - if ( -#if USE_WIDEC_SUPPORT - WINDOW_EXT(win, addch_used) == 0 && -#endif - is8bits(ChCharOf(ch)) && - isprint(ChCharOf(ch))) { - if (win->_curx <= win->_maxx) { - struct ldat *line = &(win->_line[win->_cury]); - NCURSES_CH_T *end = &(line->text[win->_curx]); - NCURSES_CH_T *temp1 = &(line->text[win->_maxx]); - NCURSES_CH_T *temp2 = temp1 - 1; - - SetChar2(wch, ch); - - CHANGED_TO_EOL(line, win->_curx, win->_maxx); - while (temp1 > end) - *temp1-- = *temp2--; - - *temp1 = _nc_render(win, wch); - - win->_curx++; - } - } else if (is8bits(ChCharOf(ch)) && iscntrl(ChCharOf(ch))) { - s = unctrl(ChCharOf(ch)); - while (*s != '\0') { - _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s)); - ++s; - } - } -#if USE_WIDEC_SUPPORT - else { - /* - * Handle multibyte characters here - */ - if (WINDOW_EXT(win, addch_used) == 0) { - _nc_insert_ch(win, ChAttrOf(ch) | ' '); - } - SetChar2(wch, ch); - _nc_waddch_nosync(win, wch); - } -#endif - break; - } -} - -NCURSES_EXPORT(int) -winsch(WINDOW *win, chtype c) -{ - NCURSES_SIZE_T oy; - NCURSES_SIZE_T ox; - int code = ERR; - - T((T_CALLED("winsch(%p, %s)"), win, _tracechtype(c))); - - if (win != 0) { - oy = win->_cury; - ox = win->_curx; - - _nc_insert_ch(win, c); - - win->_curx = ox; - win->_cury = oy; - _nc_synchook(win); - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_insdel.c b/Build/source/libs/ncurses/ncurses/base/lib_insdel.c deleted file mode 100644 index 342c6541f95..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_insdel.c +++ /dev/null @@ -1,63 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_insdel.c -** -** The routine winsdelln(win, n). -** positive n insert n lines above current line -** negative n delete n lines starting from current line -** -*/ - -#include - -MODULE_ID("$Id: lib_insdel.c,v 1.12 2003/07/26 22:40:06 tom Exp $") - -NCURSES_EXPORT(int) -winsdelln(WINDOW *win, int n) -{ - int code = ERR; - - T((T_CALLED("winsdelln(%p,%d)"), win, n)); - - if (win) { - if (n != 0) { - _nc_scroll_window(win, -n, win->_cury, win->_maxy, - win->_nc_bkgd); - _nc_synchook(win); - } - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_insnstr.c b/Build/source/libs/ncurses/ncurses/base/lib_insnstr.c deleted file mode 100644 index b6ddfde3c52..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_insnstr.c +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey * - ****************************************************************************/ - -/* -** lib_insnstr.c -** -** The routine winsnstr(). -** -*/ - -#include -#include - -MODULE_ID("$Id: lib_insnstr.c,v 1.1 2004/02/28 23:44:56 tom Exp $") - -NCURSES_EXPORT(int) -winsnstr(WINDOW *win, const char *s, int n) -{ - int code = ERR; - NCURSES_SIZE_T oy; - NCURSES_SIZE_T ox; - const unsigned char *str = (const unsigned char *) s; - const unsigned char *cp; - - T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s, n), n)); - - if (win != 0 && str != 0) { - oy = win->_cury; - ox = win->_curx; - for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) { - _nc_insert_ch(win, (chtype) UChar(*cp)); - } - win->_curx = ox; - win->_cury = oy; - _nc_synchook(win); - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_instr.c b/Build/source/libs/ncurses/ncurses/base/lib_instr.c deleted file mode 100644 index 157d2ec9b4f..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_instr.c +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_instr.c -** -** The routine winnstr(). -** -*/ - -#include - -MODULE_ID("$Id: lib_instr.c,v 1.12 2002/10/05 23:23:05 tom Exp $") - -NCURSES_EXPORT(int) -winnstr(WINDOW *win, char *str, int n) -{ - int i = 0, row, col; - - T((T_CALLED("winnstr(%p,%p,%d)"), win, str, n)); - - if (!str) - returnCode(0); - - if (win) { - getyx(win, row, col); - - if (n < 0) - n = win->_maxx - win->_curx + 1; - - for (; i < n;) { - str[i++] = CharOf(win->_line[row].text[col]); - if (++col > win->_maxx) { - col = 0; - if (++row > win->_maxy) - break; - } - } - } - str[i] = '\0'; /* SVr4 does not seem to count the null */ - T(("winnstr returns %s", _nc_visbuf(str))); - returnCode(i); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_isendwin.c b/Build/source/libs/ncurses/ncurses/base/lib_isendwin.c deleted file mode 100644 index b337d97a94c..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_isendwin.c +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_endwin.c -** -** The routine endwin(). -** -*/ - -#include - -MODULE_ID("$Id: lib_isendwin.c,v 1.6 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(bool) -isendwin(void) -{ - if (SP == NULL) - return FALSE; - return SP->_endwin; -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_leaveok.c b/Build/source/libs/ncurses/ncurses/base/lib_leaveok.c deleted file mode 100644 index 17d095d0f8c..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_leaveok.c +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_leaveok.c -** -** The routine leaveok. -** -*/ - -#include - -MODULE_ID("$Id: lib_leaveok.c,v 1.5 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -leaveok(WINDOW *win, bool flag) -{ - T((T_CALLED("leaveok(%p,%d)"), win, flag)); - - if (win) { - win->_leaveok = flag; - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_mouse.c b/Build/source/libs/ncurses/ncurses/base/lib_mouse.c deleted file mode 100644 index 556d2b60792..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_mouse.c +++ /dev/null @@ -1,1296 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * This module is intended to encapsulate ncurses's interface to pointing - * devices. - * - * The first method used is xterm's internal mouse-tracking facility. - * The second is Alessandro Rubini's GPM server. - * - * Notes for implementors of new mouse-interface methods: - * - * The code is logically split into a lower level that accepts event reports - * in a device-dependent format and an upper level that parses mouse gestures - * and filters events. The mediating data structure is a circular queue of - * MEVENT structures. - * - * Functionally, the lower level's job is to pick up primitive events and - * put them on the circular queue. This can happen in one of two ways: - * either (a) _nc_mouse_event() detects a series of incoming mouse reports - * and queues them, or (b) code in lib_getch.c detects the kmous prefix in - * the keyboard input stream and calls _nc_mouse_inline to queue up a series - * of adjacent mouse reports. - * - * In either case, _nc_mouse_parse() should be called after the series is - * accepted to parse the digested mouse reports (low-level MEVENTs) into - * a gesture (a high-level or composite MEVENT). - * - * Don't be too shy about adding new event types or modifiers, if you can find - * room for them in the 32-bit mask. The API is written so that users get - * feedback on which theoretical event types they won't see when they call - * mousemask. There's one bit per button (the RESERVED_EVENT bit) not being - * used yet, and a couple of bits open at the high end. - */ - -#ifdef __EMX__ -# include -# define INCL_DOS -# define INCL_VIO -# define INCL_KBD -# define INCL_MOU -# define INCL_DOSPROCESS -# include /* Need to include before the others */ -#endif - -#include - -MODULE_ID("$Id: lib_mouse.c,v 1.69 2004/10/09 17:50:31 tom Exp $") - -#include -#include - -#if USE_GPM_SUPPORT -#ifndef LINT /* don't need this for llib-lncurses */ -#undef buttons /* term.h defines this, and gpm uses it! */ -#include -#include /* defines KG_* macros */ -/* use dynamic loader to avoid linkage dependency */ -#include -#ifdef RTLD_NOW -#define my_RTLD RTLD_NOW -#else -#ifdef RTLD_LAZY -#define my_RTLD RTLD_LAZY -#else -make an error -#endif -#endif -#endif -#endif /* USE_GPM_SUPPORT */ - -#if USE_SYSMOUSE -#undef buttons /* symbol conflict in consio.h */ -#undef mouse_info /* symbol conflict in consio.h */ -#include -#if (__FreeBSD_version >= 400017) -#include -#include -#else -#include -#endif -#endif /* use_SYSMOUSE */ - -#define MY_TRACE TRACE_ICALLS|TRACE_IEVENT - -#define MASK_RELEASE(x) ((001 << (6 * ((x) - 1)))) -#define MASK_PRESS(x) ((002 << (6 * ((x) - 1)))) -#define MASK_CLICK(x) ((004 << (6 * ((x) - 1)))) -#define MASK_DOUBLE_CLICK(x) ((010 << (6 * ((x) - 1)))) -#define MASK_TRIPLE_CLICK(x) ((020 << (6 * ((x) - 1)))) -#define MASK_RESERVED_EVENT(x) ((040 << (6 * ((x) - 1)))) - -#define BUTTON_CLICKED (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED) -#define BUTTON_PRESSED (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED) -#define BUTTON_RELEASED (BUTTON1_RELEASED | BUTTON2_RELEASED | BUTTON3_RELEASED) - -#define INVALID_EVENT -1 -#define NORMAL_EVENT 0 - -#if USE_GPM_SUPPORT -#ifndef LINT -static Gpm_Connect gpm_connect; -static int (*my_Gpm_Open) (Gpm_Connect *, int); -static int (*my_Gpm_GetEvent) (Gpm_Event *); -static int *my_gpm_fd; -#endif -#endif - -static mmask_t eventmask; /* current event mask */ - -static bool _nc_mouse_parse(int); -static void _nc_mouse_resume(SCREEN *); -static void _nc_mouse_wrap(SCREEN *); - -/* maintain a circular list of mouse events */ - -/* The definition of the circular list size (EV_MAX), is in curses.priv.h, so - * wgetch() may refer to the size and call _nc_mouse_parse() before circular - * list overflow. - */ -static MEVENT events[EV_MAX]; /* hold the last mouse event seen */ -static MEVENT *eventp = events; /* next free slot in event queue */ - -#undef NEXT -#define NEXT(ep) ((ep == events + EV_MAX - 1) ? events : ep + 1) - -#undef PREV -#define PREV(ep) ((ep == events) ? events + EV_MAX - 1 : ep - 1) - -#ifdef TRACE -static void -_trace_slot(const char *tag) -{ - MEVENT *ep; - - _tracef(tag); - - for (ep = events; ep < events + EV_MAX; ep++) - _tracef("mouse event queue slot %ld = %s", - (long) (ep - events), - _tracemouse(ep)); -} -#endif - -#if USE_EMX_MOUSE - -# define TOP_ROW 0 -# define LEFT_COL 0 - -static int mouse_wfd; -static int mouse_thread; -static int mouse_activated; -static char mouse_buttons[] = -{0, 1, 3, 2}; - -# define M_FD(sp) sp->_mouse_fd - -static void -write_event(int down, int button, int x, int y) -{ - char buf[6]; - unsigned long ignore; - - strncpy(buf, key_mouse, 3); /* should be "\033[M" */ - buf[3] = ' ' + (button - 1) + (down ? 0 : 0x40); - buf[4] = ' ' + x - LEFT_COL + 1; - buf[5] = ' ' + y - TOP_ROW + 1; - DosWrite(mouse_wfd, buf, 6, &ignore); -} - -static void -mouse_server(unsigned long ignored GCC_UNUSED) -{ - unsigned short fWait = MOU_WAIT; - /* NOPTRRECT mourt = { 0,0,24,79 }; */ - MOUEVENTINFO mouev; - HMOU hmou; - unsigned short mask = MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN; - int nbuttons = 3; - int oldstate = 0; - char err[80]; - unsigned long rc; - - /* open the handle for the mouse */ - if (MouOpen(NULL, &hmou) == 0) { - rc = MouSetEventMask(&mask, hmou); - if (rc) { /* retry with 2 buttons */ - mask = MOUSE_BN1_DOWN | MOUSE_BN2_DOWN; - rc = MouSetEventMask(&mask, hmou); - nbuttons = 2; - } - if (rc == 0 && MouDrawPtr(hmou) == 0) { - for (;;) { - /* sit and wait on the event queue */ - rc = MouReadEventQue(&mouev, &fWait, hmou); - if (rc) { - sprintf(err, "Error reading mouse queue, rc=%lu.\r\n", rc); - break; - } - if (!mouse_activated) - goto finish; - - /* - * OS/2 numbers a 3-button mouse inconsistently from other - * platforms: - * 1 = left - * 2 = right - * 3 = middle. - */ - if ((mouev.fs ^ oldstate) & MOUSE_BN1_DOWN) - write_event(mouev.fs & MOUSE_BN1_DOWN, - mouse_buttons[1], mouev.col, mouev.row); - if ((mouev.fs ^ oldstate) & MOUSE_BN2_DOWN) - write_event(mouev.fs & MOUSE_BN2_DOWN, - mouse_buttons[3], mouev.col, mouev.row); - if ((mouev.fs ^ oldstate) & MOUSE_BN3_DOWN) - write_event(mouev.fs & MOUSE_BN3_DOWN, - mouse_buttons[2], mouev.col, mouev.row); - - finish: - oldstate = mouev.fs; - } - } else - sprintf(err, "Error setting event mask, buttons=%d, rc=%lu.\r\n", - nbuttons, rc); - - DosWrite(2, err, strlen(err), &rc); - MouClose(hmou); - } - DosExit(EXIT_THREAD, 0L); -} - -static void -server_state(const int state) -{ /* It would be nice to implement pointer-off and stop looping... */ - mouse_activated = state; -} - -#endif /* USE_EMX_MOUSE */ - -#if USE_SYSMOUSE -static void -handle_sysmouse(int sig GCC_UNUSED) -{ - struct mouse_info the_mouse; - MEVENT *work; - - the_mouse.operation = MOUSE_GETINFO; - if (SP != 0 - && SP->_mouse_fd >= 0 - && SP->_sysmouse_tail < FIFO_SIZE - && ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) { - - if (SP->_sysmouse_head > SP->_sysmouse_tail) { - SP->_sysmouse_tail = 0; - SP->_sysmouse_head = 0; - } - work = &(SP->_sysmouse_fifo[SP->_sysmouse_tail]); - memset(work, 0, sizeof(*work)); - work->id = NORMAL_EVENT; /* there's only one mouse... */ - - SP->_sysmouse_old_buttons = SP->_sysmouse_new_buttons; - SP->_sysmouse_new_buttons = the_mouse.u.data.buttons & 0x7; - - if (SP->_sysmouse_new_buttons) { - if (SP->_sysmouse_new_buttons & 1) - work->bstate |= BUTTON1_PRESSED; - if (SP->_sysmouse_new_buttons & 2) - work->bstate |= BUTTON2_PRESSED; - if (SP->_sysmouse_new_buttons & 4) - work->bstate |= BUTTON3_PRESSED; - } else { - if (SP->_sysmouse_old_buttons & 1) - work->bstate |= BUTTON1_RELEASED; - if (SP->_sysmouse_old_buttons & 2) - work->bstate |= BUTTON2_RELEASED; - if (SP->_sysmouse_old_buttons & 4) - work->bstate |= BUTTON3_RELEASED; - } - - /* for cosmetic bug in syscons.c on FreeBSD 3.[34] */ - the_mouse.operation = MOUSE_HIDE; - ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse); - the_mouse.operation = MOUSE_SHOW; - ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse); - - /* - * We're only interested if the button is pressed or released. - * FIXME: implement continuous event-tracking. - */ - if (SP->_sysmouse_new_buttons != SP->_sysmouse_old_buttons) { - SP->_sysmouse_tail += 1; - } - work->x = the_mouse.u.data.x / SP->_sysmouse_char_width; - work->y = the_mouse.u.data.y / SP->_sysmouse_char_height; - } -} -#endif - -static int initialized; - -static void -init_xterm_mouse(void) -{ - SP->_mouse_type = M_XTERM; - SP->_mouse_xtermcap = tigetstr("XM"); - if (!VALID_STRING(SP->_mouse_xtermcap)) - SP->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;"; -} - -#if !USE_EMX_MOUSE -static void -enable_xterm_mouse(int enable) -{ - putp(tparm(SP->_mouse_xtermcap, enable)); -} -#endif /* !USE_EMX_MOUSE */ - -static void -initialize_mousetype(void) -{ - static const char *xterm_kmous = "\033[M"; - - /* Try gpm first, because gpm may be configured to run in xterm */ -#if USE_GPM_SUPPORT - /* GPM does printf's without checking if stdout is a terminal */ - if (isatty(fileno(stdout))) { - static bool first = TRUE; - static bool found = FALSE; - - if (first) { - void *obj; - first = FALSE; - - if ((obj = dlopen("libgpm.so", my_RTLD)) != 0) { - if ((my_gpm_fd = dlsym(obj, "gpm_fd")) == 0 || - (my_Gpm_Open = dlsym(obj, "Gpm_Open")) == 0 || - (my_Gpm_GetEvent = dlsym(obj, "Gpm_GetEvent")) == 0) { - T(("GPM initialization failed: %s", dlerror())); - dlclose(obj); - } else { - found = TRUE; - } - } - } - - if (found) { - /* GPM: initialize connection to gpm server */ - gpm_connect.eventMask = GPM_DOWN | GPM_UP; - gpm_connect.defaultMask = ~(gpm_connect.eventMask | GPM_HARD); - gpm_connect.minMod = 0; - gpm_connect.maxMod = ~((1 << KG_SHIFT) | - (1 << KG_SHIFTL) | - (1 << KG_SHIFTR)); - if (my_Gpm_Open(&gpm_connect, 0) >= 0) { /* returns the file-descriptor */ - SP->_mouse_type = M_GPM; - SP->_mouse_fd = *my_gpm_fd; - return; - } - } - } -#endif - - /* OS/2 VIO */ -#if USE_EMX_MOUSE - if (!mouse_thread - && strstr(cur_term->type.term_names, "xterm") == 0 - && key_mouse) { - int handles[2]; - - if (pipe(handles) < 0) { - perror("mouse pipe error"); - return; - } else { - int rc; - - if (!mouse_buttons[0]) { - char *s = getenv("MOUSE_BUTTONS_123"); - - mouse_buttons[0] = 1; - if (s && strlen(s) >= 3) { - mouse_buttons[1] = s[0] - '0'; - mouse_buttons[2] = s[1] - '0'; - mouse_buttons[3] = s[2] - '0'; - } - } - mouse_wfd = handles[1]; - M_FD(SP) = handles[0]; - /* Needed? */ - setmode(handles[0], O_BINARY); - setmode(handles[1], O_BINARY); - /* Do not use CRT functions, we may single-threaded. */ - rc = DosCreateThread((unsigned long *) &mouse_thread, - mouse_server, 0, 0, 8192); - if (rc) { - printf("mouse thread error %d=%#x", rc, rc); - return; - } else { - SP->_mouse_type = M_XTERM; - return; - } - } - } -#endif - -#if USE_SYSMOUSE - { - struct mouse_info the_mouse; - char *the_device = 0; - - if (isatty(SP->_ifd)) - the_device = ttyname(SP->_ifd); - if (the_device == 0) - the_device = "/dev/tty"; - - SP->_mouse_fd = open(the_device, O_RDWR); - - if (SP->_mouse_fd >= 0) { - /* - * sysmouse does not have a usable user interface for obtaining - * mouse events. The logical way to proceed (reading data on a - * stream) only works if one opens the device as root. Even in - * that mode, careful examination shows we lose events - * occasionally. The interface provided for user programs is to - * establish a signal handler. really. - * - * Take over SIGUSR2 for this purpose since SIGUSR1 is more - * likely to be used by an application. getch() will have to - * handle the misleading EINTR's. - */ - signal(SIGUSR2, SIG_IGN); - the_mouse.operation = MOUSE_MODE; - the_mouse.u.mode.mode = 0; - the_mouse.u.mode.signal = SIGUSR2; - if (ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse) != -1) { - signal(SIGUSR2, handle_sysmouse); - the_mouse.operation = MOUSE_SHOW; - ioctl(SP->_mouse_fd, CONS_MOUSECTL, &the_mouse); - -#if defined(FBIO_MODEINFO) || defined(CONS_MODEINFO) /* FreeBSD > 2.x */ - { -#ifndef FBIO_GETMODE /* FreeBSD 3.x */ -#define FBIO_GETMODE CONS_GET -#define FBIO_MODEINFO CONS_MODEINFO -#endif /* FBIO_GETMODE */ - video_info_t the_video; - - if (ioctl(SP->_mouse_fd, - FBIO_GETMODE, - &the_video.vi_mode) != -1 - && ioctl(SP->_mouse_fd, - FBIO_MODEINFO, - &the_video) != -1) { - SP->_sysmouse_char_width = the_video.vi_cwidth; - SP->_sysmouse_char_height = the_video.vi_cheight; - } - } -#endif /* defined(FBIO_MODEINFO) || defined(CONS_MODEINFO) */ - - if (SP->_sysmouse_char_width <= 0) - SP->_sysmouse_char_width = 8; - if (SP->_sysmouse_char_height <= 0) - SP->_sysmouse_char_height = 16; - SP->_mouse_type = M_SYSMOUSE; - return; - } - } - } -#endif /* USE_SYSMOUSE */ - - /* we know how to recognize mouse events under "xterm" */ - if (key_mouse != 0) { - if (!strcmp(key_mouse, xterm_kmous)) { - init_xterm_mouse(); - return; - } - } else if (strstr(cur_term->type.term_names, "xterm") != 0) { - (void) _nc_add_to_try(&(SP->_keytry), xterm_kmous, KEY_MOUSE); - init_xterm_mouse(); - return; - } -} - -static void -_nc_mouse_init(void) -/* initialize the mouse */ -{ - int i; - - if (!initialized) { - initialized = TRUE; - - TR(MY_TRACE, ("_nc_mouse_init() called")); - - for (i = 0; i < EV_MAX; i++) - events[i].id = INVALID_EVENT; - - initialize_mousetype(); - - T(("_nc_mouse_init() set mousetype to %d", SP->_mouse_type)); - } -} - -/* - * Query to see if there is a pending mouse event. This is called from - * fifo_push() in lib_getch.c - */ -static bool -_nc_mouse_event(SCREEN *sp GCC_UNUSED) -{ - bool result = FALSE; - - switch (SP->_mouse_type) { - case M_XTERM: - /* xterm: never have to query, mouse events are in the keyboard stream */ -#if USE_EMX_MOUSE - { - char kbuf[3]; - - int i, res = read(M_FD(sp), &kbuf, 3); /* Eat the prefix */ - if (res != 3) - printf("Got %d chars instead of 3 for prefix.\n", res); - for (i = 0; i < res; i++) { - if (kbuf[i] != key_mouse[i]) - printf("Got char %d instead of %d for prefix.\n", - (int) kbuf[i], (int) key_mouse[i]); - } - result = TRUE; - } -#endif /* USE_EMX_MOUSE */ - break; - -#if USE_GPM_SUPPORT - case M_GPM: - { - /* query server for event, return TRUE if we find one */ - Gpm_Event ev; - - if (my_Gpm_GetEvent(&ev) == 1) { - /* there's only one mouse... */ - eventp->id = NORMAL_EVENT; - - eventp->bstate = 0; - switch (ev.type & 0x0f) { - case (GPM_DOWN): - if (ev.buttons & GPM_B_LEFT) - eventp->bstate |= BUTTON1_PRESSED; - if (ev.buttons & GPM_B_MIDDLE) - eventp->bstate |= BUTTON2_PRESSED; - if (ev.buttons & GPM_B_RIGHT) - eventp->bstate |= BUTTON3_PRESSED; - break; - case (GPM_UP): - if (ev.buttons & GPM_B_LEFT) - eventp->bstate |= BUTTON1_RELEASED; - if (ev.buttons & GPM_B_MIDDLE) - eventp->bstate |= BUTTON2_RELEASED; - if (ev.buttons & GPM_B_RIGHT) - eventp->bstate |= BUTTON3_RELEASED; - break; - default: - break; - } - - eventp->x = ev.x - 1; - eventp->y = ev.y - 1; - eventp->z = 0; - - /* bump the next-free pointer into the circular list */ - eventp = NEXT(eventp); - result = TRUE; - } - } - break; -#endif - -#if USE_SYSMOUSE - case M_SYSMOUSE: - if (SP->_sysmouse_head < SP->_sysmouse_tail) { - *eventp = SP->_sysmouse_fifo[SP->_sysmouse_head]; - - /* - * Point the fifo-head to the next possible location. If there - * are none, reset the indices. This may be interrupted by the - * signal handler, doing essentially the same reset. - */ - SP->_sysmouse_head += 1; - if (SP->_sysmouse_head == SP->_sysmouse_tail) { - SP->_sysmouse_tail = 0; - SP->_sysmouse_head = 0; - } - - /* bump the next-free pointer into the circular list */ - eventp = NEXT(eventp); - result = TRUE; - } - break; -#endif /* USE_SYSMOUSE */ - - case M_NONE: - break; - } - - return result; /* true if we found an event */ -} - -static bool -_nc_mouse_inline(SCREEN *sp) -/* mouse report received in the keyboard stream -- parse its info */ -{ - bool result = FALSE; - - TR(MY_TRACE, ("_nc_mouse_inline() called")); - - if (SP->_mouse_type == M_XTERM) { - unsigned char kbuf[4]; - mmask_t prev; - size_t grabbed; - int res; - - /* This code requires that your xterm entry contain the kmous - * capability and that it be set to the \E[M documented in the - * Xterm Control Sequences reference. This is how we - * arrange for mouse events to be reported via a KEY_MOUSE - * return value from wgetch(). After this value is received, - * _nc_mouse_inline() gets called and is immediately - * responsible for parsing the mouse status information - * following the prefix. - * - * The following quotes from the ctrlseqs.ms document in the - * X distribution, describing the X mouse tracking feature: - * - * Parameters for all mouse tracking escape sequences - * generated by xterm encode numeric parameters in a single - * character as value+040. For example, ! is 1. - * - * On button press or release, xterm sends ESC [ M CbCxCy. - * The low two bits of Cb encode button information: 0=MB1 - * pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release. The - * upper bits encode what modifiers were down when the - * button was pressed and are added together. 4=Shift, - * 8=Meta, 16=Control. Cx and Cy are the x and y coordinates - * of the mouse event. The upper left corner is (1,1). - * - * (End quote) By the time we get here, we've eaten the - * key prefix. FYI, the loop below is necessary because - * mouse click info isn't guaranteed to present as a - * single clist item. It always does under Linux but often - * fails to under Solaris. - */ - for (grabbed = 0; grabbed < 3; grabbed += res) { - - /* For VIO mouse we add extra bit 64 to disambiguate button-up. */ -#if USE_EMX_MOUSE - res = read(M_FD(sp) >= 0 ? M_FD(sp) : sp->_ifd, &kbuf, 3); -#else - res = read(sp->_ifd, kbuf + grabbed, 3 - grabbed); -#endif - if (res == -1) - break; - } - kbuf[3] = '\0'; - - TR(TRACE_IEVENT, - ("_nc_mouse_inline sees the following xterm data: '%s'", kbuf)); - - /* there's only one mouse... */ - eventp->id = NORMAL_EVENT; - - /* processing code goes here */ - eventp->bstate = 0; - prev = PREV(eventp)->bstate; - -#if USE_EMX_MOUSE -#define PRESS_POSITION(n) \ - eventp->bstate = MASK_PRESS(n); \ - if (kbuf[0] & 0x40) \ - eventp->bstate = MASK_RELEASE(n) -#else -#define PRESS_POSITION(n) \ - eventp->bstate = (prev & MASK_PRESS(n) \ - ? REPORT_MOUSE_POSITION \ - : MASK_PRESS(n)) -#endif - - switch (kbuf[0] & 0x3) { - case 0x0: - PRESS_POSITION(1); - break; - - case 0x1: - PRESS_POSITION(2); - break; - - case 0x2: - PRESS_POSITION(3); - break; - - case 0x3: - /* - * Release events aren't reported for individual buttons, just for - * the button set as a whole. However, because there are normally - * no mouse events under xterm that intervene between press and - * release, we can infer the button actually released by looking at - * the previous event. - */ - if (prev & (BUTTON_PRESSED | BUTTON_RELEASED)) { - eventp->bstate = BUTTON_RELEASED; - if (!(prev & BUTTON1_PRESSED)) - eventp->bstate &= ~BUTTON1_RELEASED; - if (!(prev & BUTTON2_PRESSED)) - eventp->bstate &= ~BUTTON2_RELEASED; - if (!(prev & BUTTON3_PRESSED)) - eventp->bstate &= ~BUTTON3_RELEASED; - } else { - /* - * XFree86 xterm will return a stream of release-events to - * let the application know where the mouse is going, if the - * private mode 1002 or 1003 is enabled. - */ - eventp->bstate = REPORT_MOUSE_POSITION; - } - break; - } - result = (eventp->bstate & REPORT_MOUSE_POSITION) ? TRUE : FALSE; - - if (kbuf[0] & 4) { - eventp->bstate |= BUTTON_SHIFT; - } - if (kbuf[0] & 8) { - eventp->bstate |= BUTTON_ALT; - } - if (kbuf[0] & 16) { - eventp->bstate |= BUTTON_CTRL; - } - - eventp->x = (kbuf[1] - ' ') - 1; - eventp->y = (kbuf[2] - ' ') - 1; - TR(MY_TRACE, - ("_nc_mouse_inline: primitive mouse-event %s has slot %ld", - _tracemouse(eventp), - (long) (eventp - events))); - - /* bump the next-free pointer into the circular list */ - eventp = NEXT(eventp); -#if 0 /* this return would be needed for QNX's mods to lib_getch.c */ - return (TRUE); -#endif - } - - return (result); -} - -static void -mouse_activate(bool on) -{ - if (!on && !initialized) - return; - - _nc_mouse_init(); - - if (on) { - - switch (SP->_mouse_type) { - case M_XTERM: -#if NCURSES_EXT_FUNCS - keyok(KEY_MOUSE, on); -#endif - TPUTS_TRACE("xterm mouse initialization"); -#if USE_EMX_MOUSE - server_state(1); -#else - enable_xterm_mouse(1); -#endif - break; -#if USE_GPM_SUPPORT - case M_GPM: - SP->_mouse_fd = *my_gpm_fd; - break; -#endif -#if USE_SYSMOUSE - case M_SYSMOUSE: - signal(SIGUSR2, handle_sysmouse); - break; -#endif - case M_NONE: - return; - } - /* Make runtime binding to cut down on object size of applications that - * do not use the mouse (e.g., 'clear'). - */ - SP->_mouse_event = _nc_mouse_event; - SP->_mouse_inline = _nc_mouse_inline; - SP->_mouse_parse = _nc_mouse_parse; - SP->_mouse_resume = _nc_mouse_resume; - SP->_mouse_wrap = _nc_mouse_wrap; - - } else { - - switch (SP->_mouse_type) { - case M_XTERM: - TPUTS_TRACE("xterm mouse deinitialization"); -#if USE_EMX_MOUSE - server_state(0); -#else - enable_xterm_mouse(0); -#endif - break; -#if USE_GPM_SUPPORT - case M_GPM: - break; -#endif -#if USE_SYSMOUSE - case M_SYSMOUSE: - signal(SIGUSR2, SIG_IGN); - break; -#endif - case M_NONE: - return; - } - } - _nc_flush(); -} - -/************************************************************************** - * - * Device-independent code - * - **************************************************************************/ - -static bool -_nc_mouse_parse(int runcount) -/* parse a run of atomic mouse events into a gesture */ -{ - MEVENT *ep, *runp, *next, *prev = PREV(eventp); - int n; - bool merge; - - TR(MY_TRACE, ("_nc_mouse_parse(%d) called", runcount)); - - /* - * When we enter this routine, the event list next-free pointer - * points just past a run of mouse events that we know were separated - * in time by less than the critical click interval. The job of this - * routine is to collapse this run into a single higher-level event - * or gesture. - * - * We accomplish this in two passes. The first pass merges press/release - * pairs into click events. The second merges runs of click events into - * double or triple-click events. - * - * It's possible that the run may not resolve to a single event (for - * example, if the user quadruple-clicks). If so, leading events - * in the run are ignored. - * - * Note that this routine is independent of the format of the specific - * format of the pointing-device's reports. We can use it to parse - * gestures on anything that reports press/release events on a per- - * button basis, as long as the device-dependent mouse code puts stuff - * on the queue in MEVENT format. - */ - if (runcount == 1) { - TR(MY_TRACE, - ("_nc_mouse_parse: returning simple mouse event %s at slot %ld", - _tracemouse(prev), - (long) (prev - events))); - return (prev->id >= NORMAL_EVENT) - ? ((prev->bstate & eventmask) ? TRUE : FALSE) - : FALSE; - } - - /* find the start of the run */ - runp = eventp; - for (n = runcount; n > 0; n--) { - runp = PREV(runp); - } - -#ifdef TRACE - if (_nc_tracing & TRACE_IEVENT) { - _trace_slot("before mouse press/release merge:"); - _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", - (long) (runp - events), - (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX, - runcount); - } -#endif /* TRACE */ - - /* first pass; merge press/release pairs */ - do { - merge = FALSE; - for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) { - if (ep->x == next->x && ep->y == next->y - && (ep->bstate & BUTTON_PRESSED) - && (!(ep->bstate & BUTTON1_PRESSED) - == !(next->bstate & BUTTON1_RELEASED)) - && (!(ep->bstate & BUTTON2_PRESSED) - == !(next->bstate & BUTTON2_RELEASED)) - && (!(ep->bstate & BUTTON3_PRESSED) - == !(next->bstate & BUTTON3_RELEASED)) - ) { - if ((eventmask & BUTTON1_CLICKED) - && (ep->bstate & BUTTON1_PRESSED)) { - ep->bstate &= ~BUTTON1_PRESSED; - ep->bstate |= BUTTON1_CLICKED; - merge = TRUE; - } - if ((eventmask & BUTTON2_CLICKED) - && (ep->bstate & BUTTON2_PRESSED)) { - ep->bstate &= ~BUTTON2_PRESSED; - ep->bstate |= BUTTON2_CLICKED; - merge = TRUE; - } - if ((eventmask & BUTTON3_CLICKED) - && (ep->bstate & BUTTON3_PRESSED)) { - ep->bstate &= ~BUTTON3_PRESSED; - ep->bstate |= BUTTON3_CLICKED; - merge = TRUE; - } - if (merge) - next->id = INVALID_EVENT; - } - } - } while - (merge); - -#ifdef TRACE - if (_nc_tracing & TRACE_IEVENT) { - _trace_slot("before mouse click merge:"); - _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", - (long) (runp - events), - (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX, - runcount); - } -#endif /* TRACE */ - - /* - * Second pass; merge click runs. At this point, click events are - * each followed by one invalid event. We merge click events - * forward in the queue. - * - * NOTE: There is a problem with this design! If the application - * allows enough click events to pile up in the circular queue so - * they wrap around, it will cheerfully merge the newest forward - * into the oldest, creating a bogus doubleclick and confusing - * the queue-traversal logic rather badly. Generally this won't - * happen, because calling getmouse() marks old events invalid and - * ineligible for merges. The true solution to this problem would - * be to timestamp each MEVENT and perform the obvious sanity check, - * but the timer element would have to have sub-second resolution, - * which would get us into portability trouble. - */ - do { - MEVENT *follower; - - merge = FALSE; - for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) - if (ep->id != INVALID_EVENT) { - if (next->id != INVALID_EVENT) - continue; - follower = NEXT(next); - if (follower->id == INVALID_EVENT) - continue; - - /* merge click events forward */ - if ((ep->bstate & BUTTON_CLICKED) - && (follower->bstate & BUTTON_CLICKED)) { - if ((eventmask & BUTTON1_DOUBLE_CLICKED) - && (follower->bstate & BUTTON1_CLICKED)) { - follower->bstate &= ~BUTTON1_CLICKED; - follower->bstate |= BUTTON1_DOUBLE_CLICKED; - merge = TRUE; - } - if ((eventmask & BUTTON2_DOUBLE_CLICKED) - && (follower->bstate & BUTTON2_CLICKED)) { - follower->bstate &= ~BUTTON2_CLICKED; - follower->bstate |= BUTTON2_DOUBLE_CLICKED; - merge = TRUE; - } - if ((eventmask & BUTTON3_DOUBLE_CLICKED) - && (follower->bstate & BUTTON3_CLICKED)) { - follower->bstate &= ~BUTTON3_CLICKED; - follower->bstate |= BUTTON3_DOUBLE_CLICKED; - merge = TRUE; - } - if (merge) - ep->id = INVALID_EVENT; - } - - /* merge double-click events forward */ - if ((ep->bstate & - (BUTTON1_DOUBLE_CLICKED - | BUTTON2_DOUBLE_CLICKED - | BUTTON3_DOUBLE_CLICKED)) - && (follower->bstate & BUTTON_CLICKED)) { - if ((eventmask & BUTTON1_TRIPLE_CLICKED) - && (follower->bstate & BUTTON1_CLICKED)) { - follower->bstate &= ~BUTTON1_CLICKED; - follower->bstate |= BUTTON1_TRIPLE_CLICKED; - merge = TRUE; - } - if ((eventmask & BUTTON2_TRIPLE_CLICKED) - && (follower->bstate & BUTTON2_CLICKED)) { - follower->bstate &= ~BUTTON2_CLICKED; - follower->bstate |= BUTTON2_TRIPLE_CLICKED; - merge = TRUE; - } - if ((eventmask & BUTTON3_TRIPLE_CLICKED) - && (follower->bstate & BUTTON3_CLICKED)) { - follower->bstate &= ~BUTTON3_CLICKED; - follower->bstate |= BUTTON3_TRIPLE_CLICKED; - merge = TRUE; - } - if (merge) - ep->id = INVALID_EVENT; - } - } - } while - (merge); - -#ifdef TRACE - if (_nc_tracing & TRACE_IEVENT) { - _trace_slot("before mouse event queue compaction:"); - _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", - (long) (runp - events), - (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX, - runcount); - } -#endif /* TRACE */ - - /* - * Now try to throw away trailing events flagged invalid, or that - * don't match the current event mask. - */ - for (; runcount; prev = PREV(eventp), runcount--) - if (prev->id == INVALID_EVENT || !(prev->bstate & eventmask)) { - eventp = prev; - } -#ifdef TRACE - if (_nc_tracing & TRACE_IEVENT) { - _trace_slot("after mouse event queue compaction:"); - _tracef("_nc_mouse_parse: run starts at %ld, ends at %ld, count %d", - (long) (runp - events), - (long) ((eventp - events) + (EV_MAX - 1)) % EV_MAX, - runcount); - } - for (ep = runp; ep != eventp; ep = NEXT(ep)) - if (ep->id != INVALID_EVENT) - TR(MY_TRACE, - ("_nc_mouse_parse: returning composite mouse event %s at slot %ld", - _tracemouse(ep), - (long) (ep - events))); -#endif /* TRACE */ - - /* after all this, do we have a valid event? */ - return (PREV(eventp)->id != INVALID_EVENT); -} - -static void -_nc_mouse_wrap(SCREEN *sp GCC_UNUSED) -/* release mouse -- called by endwin() before shellout/exit */ -{ - TR(MY_TRACE, ("_nc_mouse_wrap() called")); - - switch (SP->_mouse_type) { - case M_XTERM: - if (eventmask) - mouse_activate(FALSE); - break; -#if USE_GPM_SUPPORT - /* GPM: pass all mouse events to next client */ - case M_GPM: - break; -#endif -#if USE_SYSMOUSE - case M_SYSMOUSE: - mouse_activate(FALSE); - break; -#endif - case M_NONE: - break; - } -} - -static void -_nc_mouse_resume(SCREEN *sp GCC_UNUSED) -/* re-connect to mouse -- called by doupdate() after shellout */ -{ - TR(MY_TRACE, ("_nc_mouse_resume() called")); - - switch (SP->_mouse_type) { - case M_XTERM: - /* xterm: re-enable reporting */ - if (eventmask) - mouse_activate(TRUE); - break; - -#if USE_GPM_SUPPORT - case M_GPM: - /* GPM: reclaim our event set */ - break; -#endif - -#if USE_SYSMOUSE - case M_SYSMOUSE: - mouse_activate(TRUE); - break; -#endif - case M_NONE: - break; - } -} - -/************************************************************************** - * - * Mouse interface entry points for the API - * - **************************************************************************/ - -NCURSES_EXPORT(int) -getmouse(MEVENT * aevent) -/* grab a copy of the current mouse event */ -{ - T((T_CALLED("getmouse(%p)"), aevent)); - - if (aevent && (SP->_mouse_type != M_NONE)) { - /* compute the current-event pointer */ - MEVENT *prev = PREV(eventp); - - /* copy the event we find there */ - *aevent = *prev; - - TR(TRACE_IEVENT, ("getmouse: returning event %s from slot %ld", - _tracemouse(prev), - (long) (prev - events))); - - prev->id = INVALID_EVENT; /* so the queue slot becomes free */ - returnCode(OK); - } - returnCode(ERR); -} - -NCURSES_EXPORT(int) -ungetmouse(MEVENT * aevent) -/* enqueue a synthesized mouse event to be seen by the next wgetch() */ -{ - T((T_CALLED("ungetmouse(%p)"), aevent)); - - /* stick the given event in the next-free slot */ - *eventp = *aevent; - - /* bump the next-free pointer into the circular list */ - eventp = NEXT(eventp); - - /* push back the notification event on the keyboard queue */ - returnCode(ungetch(KEY_MOUSE)); -} - -NCURSES_EXPORT(mmask_t) -mousemask(mmask_t newmask, mmask_t * oldmask) -/* set the mouse event mask */ -{ - mmask_t result = 0; - - T((T_CALLED("mousemask(%#lx,%p)"), newmask, oldmask)); - - if (oldmask) - *oldmask = eventmask; - - if (!newmask && !initialized) - returnBits(0); - - _nc_mouse_init(); - if (SP->_mouse_type != M_NONE) { - eventmask = newmask & - (REPORT_MOUSE_POSITION | BUTTON_ALT | BUTTON_CTRL | BUTTON_SHIFT - | BUTTON_PRESSED - | BUTTON_RELEASED - | BUTTON_CLICKED - | BUTTON1_DOUBLE_CLICKED | BUTTON1_TRIPLE_CLICKED - | BUTTON2_DOUBLE_CLICKED | BUTTON2_TRIPLE_CLICKED - | BUTTON3_DOUBLE_CLICKED | BUTTON3_TRIPLE_CLICKED); - - mouse_activate(eventmask != 0); - - result = eventmask; - } - - returnBits(result); -} - -NCURSES_EXPORT(bool) -wenclose(const WINDOW *win, int y, int x) -/* check to see if given window encloses given screen location */ -{ - bool result = FALSE; - - T((T_CALLED("wenclose(%p,%d,%d)"), win, y, x)); - - if (win != 0) { - y -= win->_yoffset; - result = ((win->_begy <= y && - win->_begx <= x && - (win->_begx + win->_maxx) >= x && - (win->_begy + win->_maxy) >= y) ? TRUE : FALSE); - } - returnBool(result); -} - -NCURSES_EXPORT(int) -mouseinterval(int maxclick) -/* set the maximum mouse interval within which to recognize a click */ -{ - int oldval; - - T((T_CALLED("mouseinterval(%d)"), maxclick)); - - if (SP != 0) { - oldval = SP->_maxclick; - if (maxclick >= 0) - SP->_maxclick = maxclick; - } else { - oldval = DEFAULT_MAXCLICK; - } - - returnCode(oldval); -} - -/* This may be used by other routines to ask for the existence of mouse - support */ -NCURSES_EXPORT(int) -_nc_has_mouse(void) -{ - return (SP->_mouse_type == M_NONE ? 0 : 1); -} - -NCURSES_EXPORT(bool) -wmouse_trafo(const WINDOW *win, int *pY, int *pX, bool to_screen) -{ - bool result = FALSE; - - T((T_CALLED("wmouse_trafo(%p,%p,%p,%d)"), win, pY, pX, to_screen)); - - if (win && pY && pX) { - int y = *pY; - int x = *pX; - - if (to_screen) { - y += win->_begy + win->_yoffset; - x += win->_begx; - if (wenclose(win, y, x)) - result = TRUE; - } else { - if (wenclose(win, y, x)) { - y -= (win->_begy + win->_yoffset); - x -= win->_begx; - result = TRUE; - } - } - if (result) { - *pX = x; - *pY = y; - } - } - returnBool(result); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_move.c b/Build/source/libs/ncurses/ncurses/base/lib_move.c deleted file mode 100644 index e917eb78052..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_move.c +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_move.c -** -** The routine wmove(). -** -*/ - -#include - -MODULE_ID("$Id: lib_move.c,v 1.11 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -wmove(WINDOW *win, int y, int x) -{ - T((T_CALLED("wmove(%p,%d,%d)"), win, y, x)); - - if (win && - x >= 0 && x <= win->_maxx && - y >= 0 && y <= win->_maxy) { - win->_curx = (NCURSES_SIZE_T) x; - win->_cury = (NCURSES_SIZE_T) y; - - win->_flags &= ~_WRAPPED; - win->_flags |= _HASMOVED; - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_mvwin.c b/Build/source/libs/ncurses/ncurses/base/lib_mvwin.c deleted file mode 100644 index 63d54ccda57..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_mvwin.c +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_mvwin.c -** -** The routine mvwin(). -** -*/ - -#include - -MODULE_ID("$Id: lib_mvwin.c,v 1.12 2001/12/19 01:06:22 tom Exp $") - -NCURSES_EXPORT(int) -mvwin(WINDOW *win, int by, int bx) -{ - T((T_CALLED("mvwin(%p,%d,%d)"), win, by, bx)); - - if (!win || (win->_flags & _ISPAD)) - returnCode(ERR); - - /* Copying subwindows is allowed, but it is expensive... */ - if (win->_flags & _SUBWIN) { - int err = ERR; - WINDOW *parent = win->_parent; - if (parent) { /* Now comes the complicated and costly part, you should really - * try to avoid to move subwindows. Because a subwindow shares - * the text buffers with its parent, one can't do a simple - * memmove of the text buffers. One has to create a copy, then - * to relocate the subwindow and then to do a copy. - */ - if ((by - parent->_begy == win->_pary) && - (bx - parent->_begx == win->_parx)) - err = OK; /* we don't actually move */ - else { - WINDOW *clone = dupwin(win); - if (clone) { - /* now we have the clone, so relocate win */ - - werase(win); /* Erase the original place */ - /* fill with parents background */ - wbkgrnd(win, CHREF(parent->_nc_bkgd)); - wsyncup(win); /* Tell the parent(s) */ - - err = mvderwin(win, - by - parent->_begy, - bx - parent->_begx); - if (err != ERR) { - err = copywin(clone, win, - 0, 0, 0, 0, win->_maxy, win->_maxx, 0); - if (ERR != err) - wsyncup(win); - } - if (ERR == delwin(clone)) - err = ERR; - } - } - } - returnCode(err); - } - - if (by + win->_maxy > screen_lines - 1 - || bx + win->_maxx > screen_columns - 1 - || by < 0 - || bx < 0) - returnCode(ERR); - - /* - * Whether or not the window is moved, touch the window's contents so - * that a following call to 'wrefresh()' will paint the window at the - * new location. This ensures that if the caller has refreshed another - * window at the same location, that this one will be displayed. - */ - win->_begy = by; - win->_begx = bx; - returnCode(touchwin(win)); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_newterm.c b/Build/source/libs/ncurses/ncurses/base/lib_newterm.c deleted file mode 100644 index ad7b122be8a..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_newterm.c +++ /dev/null @@ -1,211 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_newterm.c -** -** The newterm() function. -** -*/ - -#include - -#if SVR4_TERMIO && !defined(_POSIX_SOURCE) -#define _POSIX_SOURCE -#endif - -#include /* clear_screen, cup & friends, cur_term */ -#include - -MODULE_ID("$Id: lib_newterm.c,v 1.58 2004/08/14 20:36:39 tom Exp $") - -#ifndef ONLCR /* Allows compilation under the QNX 4.2 OS */ -#define ONLCR 0 -#endif - -/* - * SVr4/XSI Curses specify that hardware echo is turned off in initscr, and not - * restored during the curses session. The library simulates echo in software. - * (The behavior is unspecified if the application enables hardware echo). - * - * The newterm function also initializes terminal settings, and since initscr - * is supposed to behave as if it calls newterm, we do it here. - */ -static inline int -_nc_initscr(void) -{ - int result = ERR; - - /* for extended XPG4 conformance requires cbreak() at this point */ - /* (SVr4 curses does this anyway) */ - if (cbreak() == OK) { - TTY buf; - - buf = cur_term->Nttyb; -#ifdef TERMIOS - buf.c_lflag &= ~(ECHO | ECHONL); - buf.c_iflag &= ~(ICRNL | INLCR | IGNCR); - buf.c_oflag &= ~(ONLCR); -#else - buf.sg_flags &= ~(ECHO | CRMOD); -#endif - if ((result = _nc_set_tty_mode(&buf)) == OK) - cur_term->Nttyb = buf; - } - return result; -} - -/* - * filter() has to be called before either initscr() or newterm(), so there is - * apparently no way to make this flag apply to some terminals and not others, - * aside from possibly delaying a filter() call until some terminals have been - * initialized. - */ -static int filter_mode = FALSE; - -NCURSES_EXPORT(void) -filter(void) -{ - T((T_CALLED("filter"))); - filter_mode = TRUE; - returnVoid; -} - -NCURSES_EXPORT(SCREEN *) -newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp) -{ - int errret; - int slk_format = _nc_slk_format; - SCREEN *current; - - START_TRACE(); - T((T_CALLED("newterm(\"%s\",%p,%p)"), name, ofp, ifp)); - - /* this loads the capability entry, then sets LINES and COLS */ - if (setupterm(name, fileno(ofp), &errret) == ERR) - returnSP(0); - - /* implement filter mode */ - if (filter_mode) { - LINES = 1; - - clear_screen = 0; - cursor_down = parm_down_cursor = 0; - cursor_address = 0; - cursor_up = parm_up_cursor = 0; - row_address = 0; - - cursor_home = carriage_return; - } - - /* If we must simulate soft labels, grab off the line to be used. - We assume that we must simulate, if it is none of the standard - formats (4-4 or 3-2-3) for which there may be some hardware - support. */ - if (num_labels <= 0 || !SLK_STDFMT(slk_format)) - if (slk_format) { - if (ERR == _nc_ripoffline(-SLK_LINES(slk_format), - _nc_slk_initialize)) - returnSP(0); - } - /* this actually allocates the screen structure, and saves the - * original terminal settings. - */ - current = SP; - _nc_set_screen(0); - if (_nc_setupscreen(LINES, COLS, ofp) == ERR) { - _nc_set_screen(current); - returnSP(0); - } - - /* if the terminal type has real soft labels, set those up */ - if (slk_format && num_labels > 0 && SLK_STDFMT(slk_format)) - _nc_slk_initialize(stdscr, COLS); - - SP->_ifd = fileno(ifp); - typeahead(fileno(ifp)); -#ifdef TERMIOS - SP->_use_meta = ((cur_term->Ottyb.c_cflag & CSIZE) == CS8 && - !(cur_term->Ottyb.c_iflag & ISTRIP)); -#else - SP->_use_meta = FALSE; -#endif - SP->_endwin = FALSE; - - /* Check whether we can optimize scrolling under dumb terminals in case - * we do not have any of these capabilities, scrolling optimization - * will be useless. - */ - SP->_scrolling = ((scroll_forward && scroll_reverse) || - ((parm_rindex || parm_insert_line || insert_line) && - (parm_index || parm_delete_line || delete_line))); - - baudrate(); /* sets a field in the SP structure */ - - SP->_keytry = 0; - - /* - * Check for mismatched graphic-rendition capabilities. Most SVr4 - * terminfo trees contain entries that have rmul or rmso equated to - * sgr0 (Solaris curses copes with those entries). We do this only for - * curses, since many termcap applications assume that smso/rmso and - * smul/rmul are paired, and will not function properly if we remove - * rmso or rmul. Curses applications shouldn't be looking at this - * detail. - */ -#define SGR0_TEST(mode) (mode != 0) && (exit_attribute_mode == 0 || strcmp(mode, exit_attribute_mode)) - SP->_use_rmso = SGR0_TEST(exit_standout_mode); - SP->_use_rmul = SGR0_TEST(exit_underline_mode); - - /* compute movement costs so we can do better move optimization */ - _nc_mvcur_init(); - - /* initialize terminal to a sane state */ - _nc_screen_init(); - - /* Initialize the terminal line settings. */ - _nc_initscr(); - - _nc_signal_handler(TRUE); - -#if USE_SIZECHANGE - /* - * Pretend we received a SIGWINCH, just in case we're starting up in a - * terminal that cannot initialize its size properly (Debian #265631). - */ - SP->_sig_winch = TRUE; -#endif - - returnSP(SP); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_newwin.c b/Build/source/libs/ncurses/ncurses/base/lib_newwin.c deleted file mode 100644 index f17264c65ef..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_newwin.c +++ /dev/null @@ -1,303 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_newwin.c -** -** The routines newwin(), subwin() and their dependent -** -*/ - -#include - -MODULE_ID("$Id: lib_newwin.c,v 1.35 2004/04/10 23:42:00 tom Exp $") - -static WINDOW * -remove_window_from_screen(WINDOW *win) -{ - SCREEN **scan = &_nc_screen_chain; - - while (*scan) { - SCREEN *sp = *scan; - if (sp->_curscr == win) { - sp->_curscr = 0; - if (win == curscr) - curscr = 0; - } else if (sp->_stdscr == win) { - sp->_stdscr = 0; - if (win == stdscr) - stdscr = 0; - } else if (sp->_newscr == win) { - sp->_newscr = 0; - if (win == newscr) - newscr = 0; - } else { - scan = &(*scan)->_next_screen; - continue; - } - break; - } - - return 0; -} - -NCURSES_EXPORT(int) -_nc_freewin(WINDOW *win) -{ - WINDOWLIST *p, *q; - int i; - int result = ERR; - - if (win != 0) { - for (p = _nc_windows, q = 0; p != 0; q = p, p = p->next) { - if (&(p->win) == win) { - remove_window_from_screen(win); - if (q == 0) - _nc_windows = p->next; - else - q->next = p->next; - - if (!(win->_flags & _SUBWIN)) { - for (i = 0; i <= win->_maxy; i++) - FreeIfNeeded(win->_line[i].text); - } - free(win->_line); - free(p); - - result = OK; - T(("...deleted win=%p", win)); - break; - } - } - } - return result; -} - -NCURSES_EXPORT(WINDOW *) -newwin(int num_lines, int num_columns, int begy, int begx) -{ - WINDOW *win; - NCURSES_CH_T *ptr; - int i; - - T((T_CALLED("newwin(%d,%d,%d,%d)"), num_lines, num_columns, begy, begx)); - - if (begy < 0 || begx < 0 || num_lines < 0 || num_columns < 0) - returnWin(0); - - if (num_lines == 0) - num_lines = SP->_lines_avail - begy; - if (num_columns == 0) - num_columns = screen_columns - begx; - - if ((win = _nc_makenew(num_lines, num_columns, begy, begx, 0)) == 0) - returnWin(0); - - for (i = 0; i < num_lines; i++) { - win->_line[i].text = typeCalloc(NCURSES_CH_T, (unsigned) num_columns); - if (win->_line[i].text == 0) { - (void) _nc_freewin(win); - returnWin(0); - } - for (ptr = win->_line[i].text; - ptr < win->_line[i].text + num_columns; - ptr++) - SetChar(*ptr, BLANK_TEXT, BLANK_ATTR); - } - - returnWin(win); -} - -NCURSES_EXPORT(WINDOW *) -derwin(WINDOW *orig, int num_lines, int num_columns, int begy, int begx) -{ - WINDOW *win; - int i; - int flags = _SUBWIN; - - T((T_CALLED("derwin(%p,%d,%d,%d,%d)"), orig, num_lines, num_columns, - begy, begx)); - - /* - * make sure window fits inside the original one - */ - if (begy < 0 || begx < 0 || orig == 0 || num_lines < 0 || num_columns < 0) - returnWin(0); - if (begy + num_lines > orig->_maxy + 1 - || begx + num_columns > orig->_maxx + 1) - returnWin(0); - - if (num_lines == 0) - num_lines = orig->_maxy + 1 - begy; - - if (num_columns == 0) - num_columns = orig->_maxx + 1 - begx; - - if (orig->_flags & _ISPAD) - flags |= _ISPAD; - - if ((win = _nc_makenew(num_lines, num_columns, orig->_begy + begy, - orig->_begx + begx, flags)) == 0) - returnWin(0); - - win->_pary = begy; - win->_parx = begx; - win->_attrs = orig->_attrs; - win->_nc_bkgd = orig->_nc_bkgd; - - for (i = 0; i < num_lines; i++) - win->_line[i].text = &orig->_line[begy++].text[begx]; - - win->_parent = orig; - - returnWin(win); -} - -NCURSES_EXPORT(WINDOW *) -subwin(WINDOW *w, int l, int c, int y, int x) -{ - T((T_CALLED("subwin(%p, %d, %d, %d, %d)"), w, l, c, y, x)); - T(("parent has begy = %d, begx = %d", w->_begy, w->_begx)); - - returnWin(derwin(w, l, c, y - w->_begy, x - w->_begx)); -} - -static bool -dimension_limit(int value) -{ - NCURSES_SIZE_T test = value; - return (test == value && value > 0); -} - -NCURSES_EXPORT(WINDOW *) -_nc_makenew(int num_lines, int num_columns, int begy, int begx, int flags) -{ - int i; - WINDOWLIST *wp; - WINDOW *win; - bool is_pad = (flags & _ISPAD); - - T(("_nc_makenew(%d,%d,%d,%d)", num_lines, num_columns, begy, begx)); - - if (!dimension_limit(num_lines) || !dimension_limit(num_columns)) - return 0; - - if ((wp = typeCalloc(WINDOWLIST, 1)) == 0) - return 0; - - win = &(wp->win); - - if ((win->_line = typeCalloc(struct ldat, ((unsigned) num_lines))) == 0) { - free(win); - return 0; - } - - win->_curx = 0; - win->_cury = 0; - win->_maxy = num_lines - 1; - win->_maxx = num_columns - 1; - win->_begy = begy; - win->_begx = begx; - win->_yoffset = SP->_topstolen; - - win->_flags = flags; - win->_attrs = A_NORMAL; - SetChar(win->_nc_bkgd, BLANK_TEXT, BLANK_ATTR); - - win->_clear = is_pad ? FALSE : (num_lines == screen_lines - && num_columns == screen_columns); - win->_idlok = FALSE; - win->_idcok = TRUE; - win->_scroll = FALSE; - win->_leaveok = FALSE; - win->_use_keypad = FALSE; - win->_delay = -1; - win->_immed = FALSE; - win->_sync = 0; - win->_parx = -1; - win->_pary = -1; - win->_parent = 0; - - win->_regtop = 0; - win->_regbottom = num_lines - 1; - - win->_pad._pad_y = -1; - win->_pad._pad_x = -1; - win->_pad._pad_top = -1; - win->_pad._pad_bottom = -1; - win->_pad._pad_left = -1; - win->_pad._pad_right = -1; - - for (i = 0; i < num_lines; i++) { - /* - * This used to do - * - * win->_line[i].firstchar = win->_line[i].lastchar = _NOCHANGE; - * - * which marks the whole window unchanged. That's how - * SVr1 curses did it, but SVr4 curses marks the whole new - * window changed. - * - * With the old SVr1-like code, say you have stdscr full of - * characters, then create a new window with newwin(), - * then do a printw(win, "foo ");, the trailing spaces are - * completely ignored by the following refreshes. So, you - * get "foojunkjunk" on the screen instead of "foo " as - * you actually intended. - * - * SVr4 doesn't do this. Instead the spaces are actually written. - * So that's how we want ncurses to behave. - */ - win->_line[i].firstchar = 0; - win->_line[i].lastchar = num_columns - 1; - - if_USE_SCROLL_HINTS(win->_line[i].oldindex = i); - } - - if (!is_pad && (begx + num_columns == screen_columns)) { - win->_flags |= _ENDLINE; - - if (begx == 0 && num_lines == screen_lines && begy == 0) - win->_flags |= _FULLWIN; - - if (begy + num_lines == screen_lines) - win->_flags |= _SCROLLWIN; - } - - wp->next = _nc_windows; - _nc_windows = wp; - - T((T_CREATE("window %p"), win)); - - return (win); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_nl.c b/Build/source/libs/ncurses/ncurses/base/lib_nl.c deleted file mode 100644 index 32515da0be8..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_nl.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * nl.c - * - * Routines: - * nl() - * nonl() - * - */ - -#include - -MODULE_ID("$Id: lib_nl.c,v 1.8 2000/12/10 02:43:27 tom Exp $") - -#ifdef __EMX__ -#include -#endif - -NCURSES_EXPORT(int) -nl(void) -{ - T((T_CALLED("nl()"))); - - SP->_nl = TRUE; - -#ifdef __EMX__ - _nc_flush(); - _fsetmode(NC_OUTPUT, "t"); -#endif - - returnCode(OK); -} - -NCURSES_EXPORT(int) -nonl(void) -{ - T((T_CALLED("nonl()"))); - - SP->_nl = FALSE; - -#ifdef __EMX__ - _nc_flush(); - _fsetmode(NC_OUTPUT, "b"); -#endif - - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_overlay.c b/Build/source/libs/ncurses/ncurses/base/lib_overlay.c deleted file mode 100644 index 7840b45036e..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_overlay.c +++ /dev/null @@ -1,184 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_overlay.c -** -** The routines overlay(), copywin(), and overwrite(). -** -*/ - -#include - -MODULE_ID("$Id: lib_overlay.c,v 1.21 2002/09/21 23:03:32 tom Exp $") - -static int -overlap(const WINDOW *const s, WINDOW *const d, int const flag) -{ - int sx1, sy1, sx2, sy2; - int dx1, dy1, dx2, dy2; - int sminrow, smincol; - int dminrow, dmincol; - int dmaxrow, dmaxcol; - - T((T_CALLED("overlap(%p,%p,%d)"), s, d, flag)); - - if (s == 0 || d == 0) { - returnCode(ERR); - } else { - T(("src : begy %d, begx %d, maxy %d, maxx %d", - s->_begy, s->_begx, s->_maxy, s->_maxx)); - T(("dst : begy %d, begx %d, maxy %d, maxx %d", - d->_begy, d->_begx, d->_maxy, d->_maxx)); - - sx1 = s->_begx; - sy1 = s->_begy; - sx2 = sx1 + s->_maxx; - sy2 = sy1 + s->_maxy; - - dx1 = d->_begx; - dy1 = d->_begy; - dx2 = dx1 + d->_maxx; - dy2 = dy1 + d->_maxy; - - if (dx2 < sx1 || dx1 > sx2 || dy2 < sy1 || dy1 > sy2) { - returnCode(ERR); /* No intersection */ - } else { - sminrow = max(sy1, dy1) - sy1; - smincol = max(sx1, dx1) - sx1; - dminrow = max(sy1, dy1) - dy1; - dmincol = max(sx1, dx1) - dx1; - dmaxrow = min(sy2, dy2) - dy1; - dmaxcol = min(sx2, dx2) - dx1; - - returnCode(copywin(s, d, - sminrow, smincol, - dminrow, dmincol, - dmaxrow, dmaxcol, - flag)); - } - } -} - -/* -** -** overlay(win1, win2) -** -** -** overlay() writes the overlapping area of win1 behind win2 -** on win2 non-destructively. -** -**/ - -NCURSES_EXPORT(int) -overlay(const WINDOW *win1, WINDOW *win2) -{ - T((T_CALLED("overlay(%p,%p)"), win1, win2)); - returnCode(overlap(win1, win2, TRUE)); -} - -/* -** -** overwrite(win1, win2) -** -** -** overwrite() writes the overlapping area of win1 behind win2 -** on win2 destructively. -** -**/ - -NCURSES_EXPORT(int) -overwrite(const WINDOW *win1, WINDOW *win2) -{ - T((T_CALLED("overwrite(%p,%p)"), win1, win2)); - returnCode(overlap(win1, win2, FALSE)); -} - -NCURSES_EXPORT(int) -copywin(const WINDOW *src, WINDOW *dst, - int sminrow, int smincol, - int dminrow, int dmincol, - int dmaxrow, int dmaxcol, - int over) -{ - int sx, sy, dx, dy; - bool touched; - attr_t bk = AttrOf(dst->_nc_bkgd); - attr_t mask = ~(attr_t) ((bk & A_COLOR) ? A_COLOR : 0); - - T((T_CALLED("copywin(%p, %p, %d, %d, %d, %d, %d, %d, %d)"), - src, dst, sminrow, smincol, dminrow, dmincol, dmaxrow, dmaxcol, over)); - - if (!src || !dst) - returnCode(ERR); - - /* make sure rectangle exists in source */ - if ((sminrow + dmaxrow - dminrow) > (src->_maxy + 1) || - (smincol + dmaxcol - dmincol) > (src->_maxx + 1)) { - returnCode(ERR); - } - - T(("rectangle exists in source")); - - /* make sure rectangle fits in destination */ - if (dmaxrow > dst->_maxy || dmaxcol > dst->_maxx) { - returnCode(ERR); - } - - T(("rectangle fits in destination")); - - for (dy = dminrow, sy = sminrow; dy <= dmaxrow; sy++, dy++) { - touched = FALSE; - for (dx = dmincol, sx = smincol; dx <= dmaxcol; sx++, dx++) { - if (over) { - if ((CharOf(src->_line[sy].text[sx]) != L(' ')) && - (!CharEq(dst->_line[dy].text[dx], src->_line[sy].text[sx]))) { - dst->_line[dy].text[dx] = src->_line[sy].text[sx]; - SetAttr(dst->_line[dy].text[dx], - (AttrOf(src->_line[sy].text[sx]) & mask) | bk); - touched = TRUE; - } - } else { - if (!CharEq(dst->_line[dy].text[dx], src->_line[sy].text[sx])) { - dst->_line[dy].text[dx] = src->_line[sy].text[sx]; - touched = TRUE; - } - } - } - if (touched) { - touchline(dst, dminrow, (dmaxrow - dminrow + 1)); - } - } - T(("finished copywin")); - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_pad.c b/Build/source/libs/ncurses/ncurses/base/lib_pad.c deleted file mode 100644 index 97b2d357acb..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_pad.c +++ /dev/null @@ -1,313 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_pad.c - * newpad -- create a new pad - * pnoutrefresh -- refresh a pad, no update - * pechochar -- add a char to a pad and refresh - */ - -#include - -MODULE_ID("$Id: lib_pad.c,v 1.38 2002/08/03 23:29:26 Philippe.Blain Exp $") - -NCURSES_EXPORT(WINDOW *) -newpad(int l, int c) -{ - WINDOW *win; - NCURSES_CH_T *ptr; - int i; - - T((T_CALLED("newpad(%d, %d)"), l, c)); - - if (l <= 0 || c <= 0) - returnWin(0); - - if ((win = _nc_makenew(l, c, 0, 0, _ISPAD)) == NULL) - returnWin(0); - - for (i = 0; i < l; i++) { - if_USE_SCROLL_HINTS(win->_line[i].oldindex = _NEWINDEX); - if ((win->_line[i].text = typeCalloc(NCURSES_CH_T, ((size_t) c))) == 0) { - (void) _nc_freewin(win); - returnWin(0); - } - for (ptr = win->_line[i].text; ptr < win->_line[i].text + c; ptr++) - SetChar(*ptr, BLANK_TEXT, BLANK_ATTR); - } - - returnWin(win); -} - -NCURSES_EXPORT(WINDOW *) -subpad -(WINDOW *orig, int l, int c, int begy, int begx) -{ - WINDOW *win = (WINDOW *) 0; - - T((T_CALLED("subpad(%d, %d)"), l, c)); - - if (orig) { - if (!(orig->_flags & _ISPAD) - || ((win = derwin(orig, l, c, begy, begx)) == NULL)) - returnWin(0); - } - returnWin(win); -} - -NCURSES_EXPORT(int) -prefresh -(WINDOW *win, int pminrow, int pmincol, - int sminrow, int smincol, int smaxrow, int smaxcol) -{ - T((T_CALLED("prefresh()"))); - if (pnoutrefresh(win, pminrow, pmincol, sminrow, smincol, smaxrow, - smaxcol) != ERR - && doupdate() != ERR) { - returnCode(OK); - } - returnCode(ERR); -} - -NCURSES_EXPORT(int) -pnoutrefresh -(WINDOW *win, int pminrow, int pmincol, - int sminrow, int smincol, int smaxrow, int smaxcol) -{ - NCURSES_SIZE_T i, j; - NCURSES_SIZE_T m, n; - NCURSES_SIZE_T pmaxrow; - NCURSES_SIZE_T pmaxcol; - -#if USE_SCROLL_HINTS - const int my_len = 2; /* parameterize the threshold for hardscroll */ - NCURSES_SIZE_T displaced; - bool wide; -#endif - - T((T_CALLED("pnoutrefresh(%p, %d, %d, %d, %d, %d, %d)"), - win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol)); - - if (win == 0) - returnCode(ERR); - - if (!(win->_flags & _ISPAD)) - returnCode(ERR); - - /* negative values are interpreted as zero */ - if (pminrow < 0) - pminrow = 0; - if (pmincol < 0) - pmincol = 0; - if (sminrow < 0) - sminrow = 0; - if (smincol < 0) - smincol = 0; - - pmaxrow = pminrow + smaxrow - sminrow; - pmaxcol = pmincol + smaxcol - smincol; - - T((" pminrow + smaxrow - sminrow %d, win->_maxy %d", pmaxrow, win->_maxy)); - T((" pmincol + smaxcol - smincol %d, win->_maxx %d", pmaxcol, win->_maxx)); - - /* - * Trim the caller's screen size back to the actual limits. - */ - if (pmaxrow > win->_maxy) { - smaxrow -= (pmaxrow - win->_maxy); - pmaxrow = pminrow + smaxrow - sminrow; - } - if (pmaxcol > win->_maxx) { - smaxcol -= (pmaxcol - win->_maxx); - pmaxcol = pmincol + smaxcol - smincol; - } - - if (smaxrow >= screen_lines - || smaxcol >= screen_columns - || sminrow > smaxrow - || smincol > smaxcol) - returnCode(ERR); - - T(("pad being refreshed")); - -#if USE_SCROLL_HINTS - if (win->_pad._pad_y >= 0) { - displaced = pminrow - win->_pad._pad_y - - (sminrow - win->_pad._pad_top); - T(("pad being shifted by %d line(s)", displaced)); - } else - displaced = 0; -#endif - - /* - * For pure efficiency, we'd want to transfer scrolling information - * from the pad to newscr whenever the window is wide enough that - * its update will dominate the cost of the update for the horizontal - * band of newscr that it occupies. Unfortunately, this threshold - * tends to be complex to estimate, and in any case scrolling the - * whole band and rewriting the parts outside win's image would look - * really ugly. So. What we do is consider the pad "wide" if it - * either (a) occupies the whole width of newscr, or (b) occupies - * all but at most one column on either vertical edge of the screen - * (this caters to fussy people who put boxes around full-screen - * windows). Note that changing this formula will not break any code, - * merely change the costs of various update cases. - */ -#if USE_SCROLL_HINTS - wide = (smincol < my_len && smaxcol > (newscr->_maxx - my_len)); -#endif - - for (i = pminrow, m = sminrow + win->_yoffset; - i <= pmaxrow && m <= newscr->_maxy; - i++, m++) { - register struct ldat *nline = &newscr->_line[m]; - register struct ldat *oline = &win->_line[i]; - for (j = pmincol, n = smincol; j <= pmaxcol; j++, n++) { - NCURSES_CH_T ch = oline->text[j]; -#if USE_WIDEC_SUPPORT - /* - * Special case for leftmost character of the displayed area. - * Only half of a double-width character may be visible. - */ - if (j == pmincol - && j > 0 - && isnac(ch)) { - SetChar(ch, L(' '), AttrOf(oline->text[j - 1])); - } -#endif - if (!CharEq(ch, nline->text[n])) { - nline->text[n] = ch; - CHANGED_CELL(nline, n); - } - } - -#if USE_SCROLL_HINTS - if (wide) { - int nind = m + displaced; - if (oline->oldindex < 0 - || nind < sminrow - || nind > smaxrow) { - nind = _NEWINDEX; - } else if (displaced) { - register struct ldat *pline = &curscr->_line[nind]; - for (j = 0; j <= my_len; j++) { - int k = newscr->_maxx - j; - if (pline->text[j] != nline->text[j] - || pline->text[k] != nline->text[k]) { - nind = _NEWINDEX; - break; - } - } - } - - nline->oldindex = nind; - } -#endif /* USE_SCROLL_HINTS */ - oline->firstchar = oline->lastchar = _NOCHANGE; - if_USE_SCROLL_HINTS(oline->oldindex = i); - } - - /* - * Clean up debris from scrolling or resizing the pad, so we do not - * accidentally pick up the index value during the next call to this - * procedure. The only rows that should have an index value are those - * that are displayed during this cycle. - */ -#if USE_SCROLL_HINTS - for (i = pminrow - 1; (i >= 0) && (win->_line[i].oldindex >= 0); i--) - win->_line[i].oldindex = _NEWINDEX; - for (i = pmaxrow + 1; (i <= win->_maxy) - && (win->_line[i].oldindex >= 0); i++) - win->_line[i].oldindex = _NEWINDEX; -#endif - - win->_begx = smincol; - win->_begy = sminrow; - - if (win->_clear) { - win->_clear = FALSE; - newscr->_clear = TRUE; - } - - /* - * Use the pad's current position, if it will be visible. - * If not, don't do anything; it's not an error. - */ - if (win->_leaveok == FALSE - && win->_cury >= pminrow - && win->_curx >= pmincol - && win->_cury <= pmaxrow - && win->_curx <= pmaxcol) { - newscr->_cury = win->_cury - pminrow + win->_begy + win->_yoffset; - newscr->_curx = win->_curx - pmincol + win->_begx; - } - newscr->_leaveok = win->_leaveok; - win->_flags &= ~_HASMOVED; - - /* - * Update our cache of the line-numbers that we displayed from the pad. - * We will use this on subsequent calls to this function to derive - * values to stuff into 'oldindex[]' -- for scrolling optimization. - */ - win->_pad._pad_y = pminrow; - win->_pad._pad_x = pmincol; - win->_pad._pad_top = sminrow; - win->_pad._pad_left = smincol; - win->_pad._pad_bottom = smaxrow; - win->_pad._pad_right = smaxcol; - - returnCode(OK); -} - -NCURSES_EXPORT(int) -pechochar(WINDOW *pad, const chtype ch) -{ - T((T_CALLED("pechochar(%p, %s)"), pad, _tracechtype(ch))); - - if (pad == 0) - returnCode(ERR); - - if (!(pad->_flags & _ISPAD)) - returnCode(wechochar(pad, ch)); - - waddch(pad, ch); - prefresh(pad, pad->_pad._pad_y, - pad->_pad._pad_x, - pad->_pad._pad_top, - pad->_pad._pad_left, - pad->_pad._pad_bottom, - pad->_pad._pad_right); - - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_printw.c b/Build/source/libs/ncurses/ncurses/base/lib_printw.c deleted file mode 100644 index 03ec64294c0..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_printw.c +++ /dev/null @@ -1,139 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ - -/* -** lib_printw.c -** -** The routines printw(), wprintw() and friends. -** -*/ - -#include - -MODULE_ID("$Id: lib_printw.c,v 1.15 2003/02/08 20:50:13 tom Exp $") - -NCURSES_EXPORT(int) -printw(const char *fmt,...) -{ - va_list argp; - int code; - -#ifdef TRACE - va_start(argp, fmt); - T((T_CALLED("printw(%s%s)"), - _nc_visbuf(fmt), _nc_varargs(fmt, argp))); - va_end(argp); -#endif - - va_start(argp, fmt); - code = vwprintw(stdscr, fmt, argp); - va_end(argp); - - returnCode(code); -} - -NCURSES_EXPORT(int) -wprintw(WINDOW *win, const char *fmt,...) -{ - va_list argp; - int code; - -#ifdef TRACE - va_start(argp, fmt); - T((T_CALLED("wprintw(%p,%s%s)"), - win, _nc_visbuf(fmt), _nc_varargs(fmt, argp))); - va_end(argp); -#endif - - va_start(argp, fmt); - code = vwprintw(win, fmt, argp); - va_end(argp); - - returnCode(code); -} - -NCURSES_EXPORT(int) -mvprintw(int y, int x, const char *fmt,...) -{ - va_list argp; - int code; - -#ifdef TRACE - va_start(argp, fmt); - T((T_CALLED("mvprintw(%d,%d,%s%s)"), - y, x, _nc_visbuf(fmt), _nc_varargs(fmt, argp))); - va_end(argp); -#endif - - if ((code = move(y, x)) != ERR) { - va_start(argp, fmt); - code = vwprintw(stdscr, fmt, argp); - va_end(argp); - } - returnCode(code); -} - -NCURSES_EXPORT(int) -mvwprintw(WINDOW *win, int y, int x, const char *fmt,...) -{ - va_list argp; - int code; - -#ifdef TRACE - va_start(argp, fmt); - T((T_CALLED("mvwprintw(%d,%d,%p,%s%s)"), - y, x, win, _nc_visbuf(fmt), _nc_varargs(fmt, argp))); - va_end(argp); -#endif - - if ((code = wmove(win, y, x)) != ERR) { - va_start(argp, fmt); - code = vwprintw(win, fmt, argp); - va_end(argp); - } - returnCode(code); -} - -NCURSES_EXPORT(int) -vwprintw(WINDOW *win, const char *fmt, va_list argp) -{ - char *buf; - int code = ERR; - - T((T_CALLED("vwprintw(%p,%s,%p)"), - win, _nc_visbuf(fmt), argp)); - - if ((buf = _nc_printf_string(fmt, argp)) != 0) { - code = waddstr(win, buf); - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_redrawln.c b/Build/source/libs/ncurses/ncurses/base/lib_redrawln.c deleted file mode 100644 index 91a03711de7..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_redrawln.c +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ - -/* - * lib_redrawln.c - * - * The routine wredrawln(). - * - */ - -#include - -MODULE_ID("$Id: lib_redrawln.c,v 1.10 2001/09/29 17:41:31 tom Exp $") - -NCURSES_EXPORT(int) -wredrawln(WINDOW *win, int beg, int num) -{ - int i; - int end; - size_t len = (win->_maxx + 1); - - T((T_CALLED("wredrawln(%p,%d,%d)"), win, beg, num)); - - if (beg < 0) - beg = 0; - - if (touchline(win, beg, num) == ERR) - returnCode(ERR); - - end = beg + num; - if (end > curscr->_maxy + 1) - end = curscr->_maxy + 1; - if (end > win->_maxy + 1) - end = win->_maxy + 1; - - if (len > (size_t) (curscr->_maxx + 1)) - len = (size_t) (curscr->_maxx + 1); - len *= sizeof(curscr->_line[0].text[0]); - - for (i = beg; i < end; i++) { - memset(curscr->_line[i + win->_begy].text + win->_begx, 0, len); - _nc_make_oldhash(i + win->_begy); - } - - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_refresh.c b/Build/source/libs/ncurses/ncurses/base/lib_refresh.c deleted file mode 100644 index e5908a39e92..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_refresh.c +++ /dev/null @@ -1,187 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_refresh.c - * - * The routines wrefresh() and wnoutrefresh(). - * - */ - -#include - -MODULE_ID("$Id: lib_refresh.c,v 1.32 2002/05/26 00:17:04 tom Exp $") - -NCURSES_EXPORT(int) -wrefresh(WINDOW *win) -{ - int code; - - T((T_CALLED("wrefresh(%p)"), win)); - - if (win == curscr) { - curscr->_clear = TRUE; - code = doupdate(); - } else if ((code = wnoutrefresh(win)) == OK) { - if (win->_clear) - newscr->_clear = TRUE; - code = doupdate(); - /* - * Reset the clearok() flag in case it was set for the special - * case in hardscroll.c (if we don't reset it here, we'll get 2 - * refreshes because the flag is copied from stdscr to newscr). - * Resetting the flag shouldn't do any harm, anyway. - */ - win->_clear = FALSE; - } - returnCode(code); -} - -NCURSES_EXPORT(int) -wnoutrefresh(WINDOW *win) -{ - NCURSES_SIZE_T limit_x; - NCURSES_SIZE_T i, j; - NCURSES_SIZE_T begx; - NCURSES_SIZE_T begy; - NCURSES_SIZE_T m, n; -#if USE_SCROLL_HINTS - bool wide; -#endif - - T((T_CALLED("wnoutrefresh(%p)"), win)); -#ifdef TRACE - if (_nc_tracing & TRACE_UPDATE) - _tracedump("...win", win); -#endif /* TRACE */ - - /* - * This function will break badly if we try to refresh a pad. - */ - if ((win == 0) - || (win->_flags & _ISPAD)) - returnCode(ERR); - - /* put them here so "win == 0" won't break our code */ - begx = win->_begx; - begy = win->_begy; - - newscr->_nc_bkgd = win->_nc_bkgd; - newscr->_attrs = win->_attrs; - - /* merge in change information from all subwindows of this window */ - wsyncdown(win); - -#if USE_SCROLL_HINTS - /* - * For pure efficiency, we'd want to transfer scrolling information - * from the window to newscr whenever the window is wide enough that - * its update will dominate the cost of the update for the horizontal - * band of newscr that it occupies. Unfortunately, this threshold - * tends to be complex to estimate, and in any case scrolling the - * whole band and rewriting the parts outside win's image would look - * really ugly. So. What we do is consider the window "wide" if it - * either (a) occupies the whole width of newscr, or (b) occupies - * all but at most one column on either vertical edge of the screen - * (this caters to fussy people who put boxes around full-screen - * windows). Note that changing this formula will not break any code, - * merely change the costs of various update cases. - */ - wide = (begx <= 1 && win->_maxx >= (newscr->_maxx - 1)); -#endif - - win->_flags &= ~_HASMOVED; - - /* - * Microtweaking alert! This double loop is one of the genuine - * hot spots in the code. Even gcc doesn't seem to do enough - * common-subexpression chunking to make it really tense, - * so we'll force the issue. - */ - - /* limit(n) */ - limit_x = win->_maxx; - /* limit(j) */ - if (limit_x > newscr->_maxx - begx) - limit_x = newscr->_maxx - begx; - - for (i = 0, m = begy + win->_yoffset; - i <= win->_maxy && m <= newscr->_maxy; - i++, m++) { - register struct ldat *nline = &newscr->_line[m]; - register struct ldat *oline = &win->_line[i]; - - if (oline->firstchar != _NOCHANGE) { - int last = oline->lastchar; - - if (last > limit_x) - last = limit_x; - - for (j = oline->firstchar, n = j + begx; j <= last; j++, n++) { - if (!CharEq(oline->text[j], nline->text[n])) { - nline->text[n] = oline->text[j]; - CHANGED_CELL(nline, n); - } - } - - } -#if USE_SCROLL_HINTS - if (wide) { - int oind = oline->oldindex; - - nline->oldindex = (oind == _NEWINDEX) ? _NEWINDEX : begy + oind - + win->_yoffset; - } -#endif /* USE_SCROLL_HINTS */ - - oline->firstchar = oline->lastchar = _NOCHANGE; - if_USE_SCROLL_HINTS(oline->oldindex = i); - } - - if (win->_clear) { - win->_clear = FALSE; - newscr->_clear = TRUE; - } - - if (!win->_leaveok) { - newscr->_cury = win->_cury + win->_begy + win->_yoffset; - newscr->_curx = win->_curx + win->_begx; - } - newscr->_leaveok = win->_leaveok; - -#ifdef TRACE - if (_nc_tracing & TRACE_UPDATE) - _tracedump("newscr", newscr); -#endif /* TRACE */ - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_restart.c b/Build/source/libs/ncurses/ncurses/base/lib_restart.c deleted file mode 100644 index 31da4b7cb89..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_restart.c +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * Terminfo-only terminal setup routines: - * - * int restartterm(const char *, int, int *) - * TERMINAL *set_curterm(TERMINAL *) - * int del_curterm(TERMINAL *) - */ - -#include - -#if SVR4_TERMIO && !defined(_POSIX_SOURCE) -#define _POSIX_SOURCE -#endif - -#include /* lines, columns, cur_term */ - -MODULE_ID("$Id: lib_restart.c,v 1.5 2002/08/31 22:30:10 Philippe.Blain Exp $") - -NCURSES_EXPORT(int) -restartterm(NCURSES_CONST char *termp, int filenum, int *errret) -{ - int saveecho = SP->_echo; - int savecbreak = SP->_cbreak; - int saveraw = SP->_raw; - int savenl = SP->_nl; - - T((T_CALLED("restartterm(%s,%d,%p)"), termp, filenum, errret)); - - if (setupterm(termp, filenum, errret) != OK) - returnCode(ERR); - - if (saveecho) - echo(); - else - noecho(); - - if (savecbreak) { - cbreak(); - noraw(); - } else if (saveraw) { - nocbreak(); - raw(); - } else { - nocbreak(); - noraw(); - } - if (savenl) - nl(); - else - nonl(); - - reset_prog_mode(); - -#if USE_SIZECHANGE - _nc_update_screensize(); -#endif - - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_scanw.c b/Build/source/libs/ncurses/ncurses/base/lib_scanw.c deleted file mode 100644 index b8a5a227a1a..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_scanw.c +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_scanw.c -** -** The routines scanw(), wscanw() and friends. -** -*/ - -#include - -MODULE_ID("$Id: lib_scanw.c,v 1.11 2001/06/30 23:39:41 tom Exp $") - -NCURSES_EXPORT(int) -vwscanw(WINDOW *win, NCURSES_CONST char *fmt, va_list argp) -{ - char buf[BUFSIZ]; - - if (wgetnstr(win, buf, sizeof(buf) - 1) == ERR) - return (ERR); - - return (vsscanf(buf, fmt, argp)); -} - -NCURSES_EXPORT(int) -scanw(NCURSES_CONST char *fmt,...) -{ - int code; - va_list ap; - - T(("scanw(\"%s\",...) called", fmt)); - - va_start(ap, fmt); - code = vwscanw(stdscr, fmt, ap); - va_end(ap); - return (code); -} - -NCURSES_EXPORT(int) -wscanw(WINDOW *win, NCURSES_CONST char *fmt,...) -{ - int code; - va_list ap; - - T(("wscanw(%p,\"%s\",...) called", win, fmt)); - - va_start(ap, fmt); - code = vwscanw(win, fmt, ap); - va_end(ap); - return (code); -} - -NCURSES_EXPORT(int) -mvscanw(int y, int x, NCURSES_CONST char *fmt,...) -{ - int code; - va_list ap; - - va_start(ap, fmt); - code = (move(y, x) == OK) ? vwscanw(stdscr, fmt, ap) : ERR; - va_end(ap); - return (code); -} - -NCURSES_EXPORT(int) -mvwscanw(WINDOW *win, int y, int x, NCURSES_CONST char *fmt,...) -{ - int code; - va_list ap; - - va_start(ap, fmt); - code = (wmove(win, y, x) == OK) ? vwscanw(win, fmt, ap) : ERR; - va_end(ap); - return (code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_screen.c b/Build/source/libs/ncurses/ncurses/base/lib_screen.c deleted file mode 100644 index 43f848d8a64..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_screen.c +++ /dev/null @@ -1,205 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996 on * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: lib_screen.c,v 1.28 2002/09/14 23:30:41 tom Exp $") - -NCURSES_EXPORT(WINDOW *) -getwin(FILE * filep) -{ - WINDOW tmp, *nwin; - int n; - - T((T_CALLED("getwin(%p)"), filep)); - - clearerr(filep); - (void) fread(&tmp, sizeof(WINDOW), 1, filep); - if (ferror(filep)) - returnWin(0); - - if (tmp._flags & _ISPAD) { - nwin = newpad(tmp._maxy + 1, tmp._maxx + 1); - } else { - nwin = newwin(tmp._maxy + 1, tmp._maxx + 1, 0, 0); - } - - /* - * We deliberately do not restore the _parx, _pary, or _parent - * fields, because the window hierarchy within which they - * made sense is probably gone. - */ - if (nwin != 0) { - nwin->_curx = tmp._curx; - nwin->_cury = tmp._cury; - nwin->_maxy = tmp._maxy; - nwin->_maxx = tmp._maxx; - nwin->_begy = tmp._begy; - nwin->_begx = tmp._begx; - nwin->_yoffset = tmp._yoffset; - nwin->_flags = tmp._flags & ~(_SUBWIN); - - nwin->_attrs = tmp._attrs; - nwin->_nc_bkgd = tmp._nc_bkgd; - - nwin->_notimeout = tmp._notimeout; - nwin->_clear = tmp._clear; - nwin->_leaveok = tmp._leaveok; - nwin->_idlok = tmp._idlok; - nwin->_idcok = tmp._idcok; - nwin->_immed = tmp._immed; - nwin->_scroll = tmp._scroll; - nwin->_sync = tmp._sync; - nwin->_use_keypad = tmp._use_keypad; - nwin->_delay = tmp._delay; - - nwin->_regtop = tmp._regtop; - nwin->_regbottom = tmp._regbottom; - - if (tmp._flags & _ISPAD) - nwin->_pad = tmp._pad; - - for (n = 0; n <= nwin->_maxy; n++) { - clearerr(filep); - (void) fread(nwin->_line[n].text, - sizeof(NCURSES_CH_T), - (size_t) (nwin->_maxx + 1), - filep); - if (ferror(filep)) { - delwin(nwin); - returnWin(0); - } - } - touchwin(nwin); - } - returnWin(nwin); -} - -NCURSES_EXPORT(int) -putwin(WINDOW *win, FILE * filep) -{ - int code = ERR; - int n; - - T((T_CALLED("putwin(%p,%p)"), win, filep)); - - if (win != 0) { - size_t len = (win->_maxx + 1); - - clearerr(filep); - if (fwrite(win, sizeof(WINDOW), 1, filep) != 1 - || ferror(filep)) - returnCode(code); - - for (n = 0; n <= win->_maxy; n++) { - if (fwrite(win->_line[n].text, - sizeof(NCURSES_CH_T), len, filep) != len - || ferror(filep)) { - returnCode(code); - } - } - code = OK; - } - returnCode(code); -} - -NCURSES_EXPORT(int) -scr_restore(const char *file) -{ - FILE *fp = 0; - - T((T_CALLED("scr_restore(%s)"), _nc_visbuf(file))); - - if (_nc_access(file, R_OK) < 0 - || (fp = fopen(file, "rb")) == 0) { - returnCode(ERR); - } else { - delwin(newscr); - SP->_newscr = newscr = getwin(fp); - (void) fclose(fp); - returnCode(OK); - } -} - -NCURSES_EXPORT(int) -scr_dump(const char *file) -{ - FILE *fp = 0; - - T((T_CALLED("scr_dump(%s)"), _nc_visbuf(file))); - - if (_nc_access(file, W_OK) < 0 - || (fp = fopen(file, "wb")) == 0) { - returnCode(ERR); - } else { - (void) putwin(newscr, fp); - (void) fclose(fp); - returnCode(OK); - } -} - -NCURSES_EXPORT(int) -scr_init(const char *file) -{ - FILE *fp = 0; - - T((T_CALLED("scr_init(%s)"), _nc_visbuf(file))); - - if (exit_ca_mode && non_rev_rmcup) - returnCode(ERR); - - if (_nc_access(file, R_OK) < 0 - || (fp = fopen(file, "rb")) == 0) { - returnCode(ERR); - } else { - delwin(curscr); - SP->_curscr = curscr = getwin(fp); - (void) fclose(fp); - returnCode(OK); - } -} - -NCURSES_EXPORT(int) -scr_set(const char *file) -{ - T((T_CALLED("scr_set(%s)"), _nc_visbuf(file))); - - if (scr_init(file) == ERR) { - returnCode(ERR); - } else { - delwin(newscr); - SP->_newscr = newscr = dupwin(curscr); - returnCode(OK); - } -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_scroll.c b/Build/source/libs/ncurses/ncurses/base/lib_scroll.c deleted file mode 100644 index f8e16bafa87..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_scroll.c +++ /dev/null @@ -1,130 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2001,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1996-2003 * - * and: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_scroll.c -** -** The routine wscrl(win, n). -** positive n scroll the window up (ie. move lines down) -** negative n scroll the window down (ie. move lines up) -** -*/ - -#include - -MODULE_ID("$Id: lib_scroll.c,v 1.24 2003/07/26 23:25:26 tom Exp $") - -NCURSES_EXPORT(void) -_nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top, - NCURSES_SIZE_T const bottom, NCURSES_CH_T blank) -{ - int limit; - int line; - int j; - size_t to_copy = (size_t) (sizeof(NCURSES_CH_T) * (win->_maxx + 1)); - - TR(TRACE_MOVE, ("_nc_scroll_window(%p, %d, %d, %d)", win, n, top, bottom)); - - if (top < 0 - || bottom < top - || bottom > win->_maxy) { - TR(TRACE_MOVE, ("nothing to scroll")); - return; - } - - /* - * This used to do a line-text pointer-shuffle instead of text copies. - * That (a) doesn't work when the window is derived and doesn't have - * its own storage, (b) doesn't save you a lot on modern machines - * anyway. Your typical memcpy implementations are coded in - * assembler using a tight BLT loop; for the size of copies we're - * talking here, the total execution time is dominated by the one-time - * setup cost. So there is no point in trying to be excessively - * clever -- esr. - */ - - /* shift n lines downwards */ - if (n < 0) { - limit = top - n; - for (line = bottom; line >= limit && line >= 0; line--) { - TR(TRACE_MOVE, ("...copying %d to %d", line + n, line)); - memcpy(win->_line[line].text, - win->_line[line + n].text, - to_copy); - if_USE_SCROLL_HINTS(win->_line[line].oldindex = - win->_line[line + n].oldindex); - } - for (line = top; line < limit && line <= win->_maxy; line++) { - TR(TRACE_MOVE, ("...filling %d", line)); - for (j = 0; j <= win->_maxx; j++) - win->_line[line].text[j] = blank; - if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX); - } - } - - /* shift n lines upwards */ - if (n > 0) { - limit = bottom - n; - for (line = top; line <= limit && line <= win->_maxy; line++) { - memcpy(win->_line[line].text, - win->_line[line + n].text, - to_copy); - if_USE_SCROLL_HINTS(win->_line[line].oldindex = - win->_line[line + n].oldindex); - } - for (line = bottom; line > limit && line >= 0; line--) { - for (j = 0; j <= win->_maxx; j++) - win->_line[line].text[j] = blank; - if_USE_SCROLL_HINTS(win->_line[line].oldindex = _NEWINDEX); - } - } - touchline(win, top, bottom - top + 1); -} - -NCURSES_EXPORT(int) -wscrl(WINDOW *win, int n) -{ - T((T_CALLED("wscrl(%p,%d)"), win, n)); - - if (!win || !win->_scroll) { - TR(TRACE_MOVE, ("...scrollok is false")); - returnCode(ERR); - } - - if (n != 0) { - _nc_scroll_window(win, n, win->_regtop, win->_regbottom, win->_nc_bkgd); - _nc_synchook(win); - } - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_scrollok.c b/Build/source/libs/ncurses/ncurses/base/lib_scrollok.c deleted file mode 100644 index f6b30259be7..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_scrollok.c +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_scrollok.c -** -** The routine scrollok. -** -*/ - -#include - -MODULE_ID("$Id: lib_scrollok.c,v 1.4 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -scrollok(WINDOW *win, bool flag) -{ - T((T_CALLED("scrollok(%p,%d)"), win, flag)); - - if (win) { - win->_scroll = flag; - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_scrreg.c b/Build/source/libs/ncurses/ncurses/base/lib_scrreg.c deleted file mode 100644 index c85d60f1164..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_scrreg.c +++ /dev/null @@ -1,60 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_scrreg.c -** -** The routine wsetscrreg(). -** -*/ - -#include - -MODULE_ID("$Id: lib_scrreg.c,v 1.10 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -wsetscrreg(WINDOW *win, int top, int bottom) -{ - T((T_CALLED("wsetscrreg(%p,%d,%d)"), win, top, bottom)); - - if (win && - top >= 0 && top <= win->_maxy && - bottom >= 0 && bottom <= win->_maxy && - bottom > top) { - win->_regtop = (NCURSES_SIZE_T) top; - win->_regbottom = (NCURSES_SIZE_T) bottom; - - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_set_term.c b/Build/source/libs/ncurses/ncurses/base/lib_set_term.c deleted file mode 100644 index bfa0f70185a..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_set_term.c +++ /dev/null @@ -1,497 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* -** lib_set_term.c -** -** The routine set_term(). -** -*/ - -#include - -#include /* cur_term */ -#include - -MODULE_ID("$Id: lib_set_term.c,v 1.82 2004/04/24 20:17:39 tom Exp $") - -NCURSES_EXPORT(SCREEN *) -set_term(SCREEN * screenp) -{ - SCREEN *oldSP; - - T((T_CALLED("set_term(%p)"), screenp)); - - oldSP = SP; - _nc_set_screen(screenp); - - set_curterm(SP->_term); - curscr = SP->_curscr; - newscr = SP->_newscr; - stdscr = SP->_stdscr; - COLORS = SP->_color_count; - COLOR_PAIRS = SP->_pair_count; - - T((T_RETURN("%p"), oldSP)); - return (oldSP); -} - -static void -_nc_free_keytry(struct tries *kt) -{ - if (kt != 0) { - _nc_free_keytry(kt->child); - _nc_free_keytry(kt->sibling); - free(kt); - } -} - -/* - * Free the storage associated with the given SCREEN sp. - */ -NCURSES_EXPORT(void) -delscreen(SCREEN * sp) -{ - SCREEN **scan = &_nc_screen_chain; - int i; - - T((T_CALLED("delscreen(%p)"), sp)); - - while (*scan) { - if (*scan == sp) { - *scan = sp->_next_screen; - break; - } - scan = &(*scan)->_next_screen; - } - - (void) _nc_freewin(sp->_curscr); - (void) _nc_freewin(sp->_newscr); - (void) _nc_freewin(sp->_stdscr); - - if (sp->_slk != 0) { - if (sp->_slk->ent != 0) { - for (i = 0; i < sp->_slk->labcnt; ++i) { - FreeIfNeeded(sp->_slk->ent[i].ent_text); - FreeIfNeeded(sp->_slk->ent[i].form_text); - } - free(sp->_slk->ent); - } - free(sp->_slk); - sp->_slk = 0; - } - - _nc_free_keytry(sp->_keytry); - sp->_keytry = 0; - - _nc_free_keytry(sp->_key_ok); - sp->_key_ok = 0; - - FreeIfNeeded(sp->_color_table); - FreeIfNeeded(sp->_color_pairs); - - FreeIfNeeded(sp->oldhash); - FreeIfNeeded(sp->newhash); - FreeIfNeeded(sp->hashtab); - - del_curterm(sp->_term); - - /* - * If the associated output stream has been closed, we can discard the - * set-buffer. Limit the error check to EBADF, since fflush may fail - * for other reasons than trying to operate upon a closed stream. - */ - if (sp->_ofp != 0 - && sp->_setbuf != 0 - && fflush(sp->_ofp) != 0 - && errno == EBADF) { - free(sp->_setbuf); - } - - free(sp); - - /* - * If this was the current screen, reset everything that the - * application might try to use (except cur_term, which may have - * multiple references in different screens). - */ - if (sp == SP) { - curscr = 0; - newscr = 0; - stdscr = 0; - COLORS = 0; - COLOR_PAIRS = 0; - _nc_set_screen(0); - } - returnVoid; -} - -static ripoff_t rippedoff[5]; -static ripoff_t *rsp = rippedoff; -#define N_RIPS SIZEOF(SP->_rippedoff) - -static bool -no_mouse_event(SCREEN * sp GCC_UNUSED) -{ - return FALSE; -} - -static bool -no_mouse_inline(SCREEN * sp GCC_UNUSED) -{ - return FALSE; -} - -static bool -no_mouse_parse(int code GCC_UNUSED) -{ - return TRUE; -} - -static void -no_mouse_resume(SCREEN * sp GCC_UNUSED) -{ -} - -static void -no_mouse_wrap(SCREEN * sp GCC_UNUSED) -{ -} - -#if NCURSES_EXT_FUNCS && USE_COLORFGBG -static char * -extract_fgbg(char *src, int *result) -{ - char *dst = 0; - long value = strtol(src, &dst, 0); - - if (dst == 0) { - dst = src; - } else if (value >= 0) { - *result = value; - } - while (*dst != 0 && *dst != ';') - dst++; - if (*dst == ';') - dst++; - return dst; -} -#endif - -NCURSES_EXPORT(int) -_nc_setupscreen(short slines, short const scolumns, FILE *output) -/* OS-independent screen initializations */ -{ - int bottom_stolen = 0; - int i; - - T((T_CALLED("_nc_setupscreen(%d, %d, %p)"), slines, scolumns, output)); - assert(SP == 0); /* has been reset in newterm() ! */ - if (!_nc_alloc_screen()) - returnCode(ERR); - - SP->_next_screen = _nc_screen_chain; - _nc_screen_chain = SP; - -#ifdef __DJGPP__ - T(("setting output mode to binary")); - fflush(output); - setmode(output, O_BINARY); -#endif - _nc_set_buffer(output, TRUE); - SP->_term = cur_term; - SP->_lines = slines; - SP->_lines_avail = slines; - SP->_columns = scolumns; - SP->_cursrow = -1; - SP->_curscol = -1; - SP->_nl = TRUE; - SP->_raw = FALSE; - SP->_cbreak = 0; - SP->_echo = TRUE; - SP->_fifohead = -1; - SP->_endwin = TRUE; - SP->_ofp = output; - SP->_cursor = -1; /* cannot know real cursor shape */ - -#if NCURSES_NO_PADDING - SP->_no_padding = getenv("NCURSES_NO_PADDING") != 0; - TR(TRACE_CHARPUT | TRACE_MOVE, ("padding will%s be used", - SP->_no_padding ? " not" : "")); -#endif - -#if NCURSES_EXT_FUNCS - SP->_default_color = FALSE; - SP->_has_sgr_39_49 = FALSE; - - /* - * Set our assumption of the terminal's default foreground and background - * colors. The curs_color man-page states that we can assume that the - * background is black. The origin of this assumption appears to be - * terminals that displayed colored text, but no colored backgrounds, e.g., - * the first colored terminals around 1980. More recent ones with better - * technology can display not only colored backgrounds, but all - * combinations. So a terminal might be something other than "white" on - * black (green/black looks monochrome too), but black on white or even - * on ivory. - * - * White-on-black is the simplest thing to use for monochrome. Almost - * all applications that use color paint both text and background, so - * the distinction is moot. But a few do not - which is why we leave this - * configurable (a better solution is to use assume_default_colors() for - * the rare applications that do require that sort of appearance, since - * is appears that more users expect to be able to make a white-on-black - * or black-on-white display under control of the application than not). - */ -#ifdef USE_ASSUMED_COLOR - SP->_default_fg = COLOR_WHITE; - SP->_default_bg = COLOR_BLACK; -#else - SP->_default_fg = C_MASK; - SP->_default_bg = C_MASK; -#endif - - /* - * Allow those assumed/default color assumptions to be overridden at - * runtime: - */ - if (getenv("NCURSES_ASSUMED_COLORS") != 0) { - char *p = getenv("NCURSES_ASSUMED_COLORS"); - int fg, bg; - char sep1, sep2; - int count = sscanf(p, "%d%c%d%c", &fg, &sep1, &bg, &sep2); - if (count >= 1) { - SP->_default_fg = (fg >= 0 && fg < max_colors) ? fg : C_MASK; - if (count >= 3) { - SP->_default_bg = (bg >= 0 && bg < max_colors) ? bg : C_MASK; - } - TR(TRACE_CHARPUT | TRACE_MOVE, - ("from environment assumed fg=%d, bg=%d", - SP->_default_fg, - SP->_default_bg)); - } - } -#if USE_COLORFGBG - /* - * If rxvt's $COLORFGBG variable is set, use it to specify the assumed - * default colors. Note that rxvt (mis)uses bold colors, equating a bold - * color to that value plus 8. We'll only use the non-bold color for now - - * decide later if it is worth having default attributes as well. - */ - if (getenv("COLORFGBG") != 0) { - char *p = getenv("COLORFGBG"); - TR(TRACE_CHARPUT | TRACE_MOVE, ("decoding COLORFGBG %s", p)); - p = extract_fgbg(p, &(SP->_default_fg)); - p = extract_fgbg(p, &(SP->_default_bg)); - if (*p) /* assume rxvt was compiled with xpm support */ - p = extract_fgbg(p, &(SP->_default_bg)); - TR(TRACE_CHARPUT | TRACE_MOVE, ("decoded fg=%d, bg=%d", - SP->_default_fg, SP->_default_bg)); - if (SP->_default_fg >= max_colors) { - if (set_a_foreground != ABSENT_STRING - && !strcmp(set_a_foreground, "\033[3%p1%dm")) { - set_a_foreground = "\033[3%?%p1%{8}%>%t9%e%p1%d%;m"; - } else { - SP->_default_fg %= max_colors; - } - } - if (SP->_default_bg >= max_colors) { - if (set_a_background != ABSENT_STRING - && !strcmp(set_a_background, "\033[4%p1%dm")) { - set_a_background = "\033[4%?%p1%{8}%>%t9%e%p1%d%;m"; - } else { - SP->_default_bg %= max_colors; - } - } - } -#endif -#endif /* NCURSES_EXT_FUNCS */ - - SP->_maxclick = DEFAULT_MAXCLICK; - SP->_mouse_event = no_mouse_event; - SP->_mouse_inline = no_mouse_inline; - SP->_mouse_parse = no_mouse_parse; - SP->_mouse_resume = no_mouse_resume; - SP->_mouse_wrap = no_mouse_wrap; - SP->_mouse_fd = -1; - - /* initialize the panel hooks */ - SP->_panelHook.top_panel = (struct panel *) 0; - SP->_panelHook.bottom_panel = (struct panel *) 0; - SP->_panelHook.stdscr_pseudo_panel = (struct panel *) 0; - - /* - * If we've no magic cookie support, we suppress attributes that xmc - * would affect, i.e., the attributes that affect the rendition of a - * space. Note that this impacts the alternate character set mapping - * as well. - */ - if (magic_cookie_glitch > 0) { - - SP->_xmc_triggers = termattrs() & ( - A_ALTCHARSET | - A_BLINK | - A_BOLD | - A_REVERSE | - A_STANDOUT | - A_UNDERLINE - ); - SP->_xmc_suppress = SP->_xmc_triggers & (chtype) ~(A_BOLD); - - T(("magic cookie attributes %s", _traceattr(SP->_xmc_suppress))); -#if USE_XMC_SUPPORT - /* - * To keep this simple, suppress all of the optimization hooks - * except for clear_screen and the cursor addressing. - */ - clr_eol = 0; - clr_eos = 0; - set_attributes = 0; -#else - magic_cookie_glitch = ABSENT_NUMERIC; - acs_chars = 0; -#endif - } - - /* initialize normal acs before wide, since we use mapping in the latter */ - _nc_init_acs(); -#if USE_WIDEC_SUPPORT - _nc_init_wacs(); - - SP->_screen_acs_fix = (_nc_unicode_locale() && _nc_locale_breaks_acs()); - { - char *env = _nc_get_locale(); - SP->_legacy_coding = ((env == 0) - || !strcmp(env, "C") - || !strcmp(env, "POSIX")); - } -#endif - - _nc_idcok = TRUE; - _nc_idlok = FALSE; - - _nc_windows = 0; /* no windows yet */ - - SP->oldhash = 0; - SP->newhash = 0; - - T(("creating newscr")); - if ((newscr = newwin(slines, scolumns, 0, 0)) == 0) - returnCode(ERR); - - T(("creating curscr")); - if ((curscr = newwin(slines, scolumns, 0, 0)) == 0) - returnCode(ERR); - - SP->_newscr = newscr; - SP->_curscr = curscr; -#if USE_SIZECHANGE - SP->_resize = resizeterm; -#endif - - newscr->_clear = TRUE; - curscr->_clear = FALSE; - - def_shell_mode(); - def_prog_mode(); - - for (i = 0, rsp = rippedoff; rsp->line && (i < (int) N_RIPS); rsp++, i++) { - T(("ripping off line %d at %s", i, rsp->line < 0 ? "bottom" : "top")); - SP->_rippedoff[i] = rippedoff[i]; - if (rsp->hook) { - int count = (rsp->line < 0) ? -rsp->line : rsp->line; - - SP->_rippedoff[i].w = newwin(count, - scolumns, - ((rsp->line < 0) - ? SP->_lines_avail - count - : 0), - 0); - if (SP->_rippedoff[i].w != 0) - SP->_rippedoff[i].hook(SP->_rippedoff[i].w, scolumns); - else - returnCode(ERR); - if (rsp->line < 0) - bottom_stolen += count; - else - SP->_topstolen += count; - SP->_lines_avail -= count; - } - rsp->line = 0; - } - SP->_rip_count = i; - /* reset the stack */ - rsp = rippedoff; - - T(("creating stdscr")); - assert((SP->_lines_avail + SP->_topstolen + bottom_stolen) == slines); - if ((stdscr = newwin(LINES = SP->_lines_avail, scolumns, 0, 0)) == 0) - returnCode(ERR); - SP->_stdscr = stdscr; - - returnCode(OK); -} - -/* The internal implementation interprets line as the number of - lines to rip off from the top or bottom. - */ -NCURSES_EXPORT(int) -_nc_ripoffline(int line, int (*init) (WINDOW *, int)) -{ - T((T_CALLED("_nc_ripoffline(%d, %p)"), line, init)); - - if (line != 0) { - - if (rsp >= rippedoff + N_RIPS) - returnCode(ERR); - - rsp->line = line; - rsp->hook = init; - rsp->w = 0; - rsp++; - } - - returnCode(OK); -} - -NCURSES_EXPORT(int) -ripoffline(int line, int (*init) (WINDOW *, int)) -{ - T((T_CALLED("ripoffline(%d,%p)"), line, init)); - - if (line == 0) - returnCode(OK); - - returnCode(_nc_ripoffline((line < 0) ? -1 : 1, init)); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slk.c b/Build/source/libs/ncurses/ncurses/base/lib_slk.c deleted file mode 100644 index 4bdf8afc45c..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slk.c +++ /dev/null @@ -1,215 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slk.c - * Soft key routines. - */ - -#include - -#include -#include /* num_labels, label_*, plab_norm */ - -MODULE_ID("$Id: lib_slk.c,v 1.28 2003/05/24 21:10:28 tom Exp $") - -/* - * We'd like to move these into the screen context structure, but cannot, - * because slk_init() is called before initscr()/newterm(). - */ -NCURSES_EXPORT_VAR(int) -_nc_slk_format = 0; /* one more than format specified in slk_init() */ - -/* - * Paint the info line for the PC style SLK emulation. - * - */ -static void -slk_paint_info(WINDOW *win) -{ - if (win && SP->slk_format == 4) { - int i; - - mvwhline(win, 0, 0, 0, getmaxx(win)); - wmove(win, 0, 0); - - for (i = 0; i < SP->_slk->maxlab; i++) { - mvwprintw(win, 0, SP->_slk->ent[i].ent_x, "F%d", i + 1); - } - } -} - -/* - * Free any memory related to soft labels, return an error. - */ -static int -slk_failed(void) -{ - if (SP->_slk) { - FreeIfNeeded(SP->_slk->ent); - free(SP->_slk); - SP->_slk = (SLK *) 0; - } - return ERR; -} - -/* - * Initialize soft labels. - * Called from newterm() - */ -NCURSES_EXPORT(int) -_nc_slk_initialize(WINDOW *stwin, int cols) -{ - int i, x; - int res = OK; - unsigned max_length; - - T((T_CALLED("_nc_slk_initialize()"))); - - if (SP->_slk) { /* we did this already, so simply return */ - returnCode(OK); - } else if ((SP->_slk = typeCalloc(SLK, 1)) == 0) - returnCode(ERR); - - SP->_slk->ent = NULL; - - /* - * If we use colors, vidputs() will suppress video attributes that conflict - * with colors. In that case, we're still guaranteed that "reverse" would - * work. - */ - if ((no_color_video & 1) == 0) - SP->_slk->attr = A_STANDOUT; - else - SP->_slk->attr = A_REVERSE; - - SP->_slk->maxlab = ((num_labels > 0) - ? num_labels - : MAX_SKEY(_nc_slk_format)); - SP->_slk->maxlen = ((num_labels > 0) - ? label_width * label_height - : MAX_SKEY_LEN(_nc_slk_format)); - SP->_slk->labcnt = ((SP->_slk->maxlab < MAX_SKEY(_nc_slk_format)) - ? MAX_SKEY(_nc_slk_format) - : SP->_slk->maxlab); - - if (SP->_slk->maxlen <= 0 - || SP->_slk->labcnt <= 0 - || (SP->_slk->ent = typeCalloc(slk_ent, - (unsigned) SP->_slk->labcnt)) == NULL) - returnCode(slk_failed()); - - max_length = SP->_slk->maxlen; - for (i = 0; i < SP->_slk->labcnt; i++) { - - if ((SP->_slk->ent[i].ent_text = (char *)_nc_doalloc(0, max_length + 1)) == 0) - returnCode(slk_failed()); - memset(SP->_slk->ent[i].ent_text, 0, max_length + 1); - - if ((SP->_slk->ent[i].form_text = (char *)_nc_doalloc(0, max_length + 1)) == 0) - returnCode(slk_failed()); - memset(SP->_slk->ent[i].form_text, 0, max_length + 1); - - memset(SP->_slk->ent[i].form_text, ' ', max_length); - SP->_slk->ent[i].visible = (i < SP->_slk->maxlab); - } - if (_nc_slk_format >= 3) { /* PC style */ - int gap = (cols - 3 * (3 + 4 * max_length)) / 2; - - if (gap < 1) - gap = 1; - - for (i = x = 0; i < SP->_slk->maxlab; i++) { - SP->_slk->ent[i].ent_x = x; - x += max_length; - x += (i == 3 || i == 7) ? gap : 1; - } - slk_paint_info(stwin); - } else { - if (_nc_slk_format == 2) { /* 4-4 */ - int gap = cols - (SP->_slk->maxlab * max_length) - 6; - - if (gap < 1) - gap = 1; - for (i = x = 0; i < SP->_slk->maxlab; i++) { - SP->_slk->ent[i].ent_x = x; - x += max_length; - x += (i == 3) ? gap : 1; - } - } else { - if (_nc_slk_format == 1) { /* 1 -> 3-2-3 */ - int gap = (cols - (SP->_slk->maxlab * max_length) - 5) - / 2; - - if (gap < 1) - gap = 1; - for (i = x = 0; i < SP->_slk->maxlab; i++) { - SP->_slk->ent[i].ent_x = x; - x += max_length; - x += (i == 2 || i == 4) ? gap : 1; - } - } else - returnCode(slk_failed()); - } - } - SP->_slk->dirty = TRUE; - if ((SP->_slk->win = stwin) == NULL) { - returnCode(slk_failed()); - } - - /* We now reset the format so that the next newterm has again - * per default no SLK keys and may call slk_init again to - * define a new layout. (juergen 03-Mar-1999) - */ - SP->slk_format = _nc_slk_format; - _nc_slk_format = 0; - returnCode(res); -} - -/* - * Restore the soft labels on the screen. - */ -NCURSES_EXPORT(int) -slk_restore(void) -{ - T((T_CALLED("slk_restore()"))); - - if (SP->_slk == NULL) - return (ERR); - SP->_slk->hidden = FALSE; - SP->_slk->dirty = TRUE; - /* we have to repaint info line eventually */ - slk_paint_info(SP->_slk->win); - - returnCode(slk_refresh()); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slkatr_set.c b/Build/source/libs/ncurses/ncurses/base/lib_slkatr_set.c deleted file mode 100644 index 45cc89cb0d8..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slkatr_set.c +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer, 1998 * - ****************************************************************************/ - -/* - * lib_slkatr_set.c - * Soft key routines. - * Set the labels attributes - */ -#include - -MODULE_ID("$Id: lib_slkatr_set.c,v 1.7 2003/10/25 15:27:03 tom Exp $") - -NCURSES_EXPORT(int) -slk_attr_set -(const attr_t attr, short color_pair_number, void *opts) -{ - T((T_CALLED("slk_attr_set(%s,%d)"), _traceattr(attr), color_pair_number)); - - if (SP != 0 && SP->_slk != 0 && !opts && - color_pair_number >= 0 && color_pair_number < COLOR_PAIRS) { - SP->_slk->attr = attr; - toggle_attr_on(SP->_slk->attr, COLOR_PAIR(color_pair_number)); - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slkatrof.c b/Build/source/libs/ncurses/ncurses/base/lib_slkatrof.c deleted file mode 100644 index c271c342101..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slkatrof.c +++ /dev/null @@ -1,53 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slkatrof.c - * Soft key routines. - * Switch off labels attributes - */ -#include - -MODULE_ID("$Id: lib_slkatrof.c,v 1.6 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -slk_attroff(const chtype attr) -{ - T((T_CALLED("slk_attroff(%s)"), _traceattr(attr))); - - if (SP != 0 && SP->_slk != 0) { - toggle_attr_off(SP->_slk->attr, attr); - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slkatron.c b/Build/source/libs/ncurses/ncurses/base/lib_slkatron.c deleted file mode 100644 index d174b039492..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slkatron.c +++ /dev/null @@ -1,53 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slkatron.c - * Soft key routines. - * Switch on labels attributes - */ -#include - -MODULE_ID("$Id: lib_slkatron.c,v 1.6 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -slk_attron(const chtype attr) -{ - T((T_CALLED("slk_attron(%s)"), _traceattr(attr))); - - if (SP != 0 && SP->_slk != 0) { - toggle_attr_on(SP->_slk->attr, attr); - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slkatrset.c b/Build/source/libs/ncurses/ncurses/base/lib_slkatrset.c deleted file mode 100644 index cda74cad42d..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slkatrset.c +++ /dev/null @@ -1,53 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slkatrset.c - * Soft key routines. - * Set the labels attributes - */ -#include - -MODULE_ID("$Id: lib_slkatrset.c,v 1.6 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -slk_attrset(const chtype attr) -{ - T((T_CALLED("slk_attrset(%s)"), _traceattr(attr))); - - if (SP != 0 && SP->_slk != 0) { - SP->_slk->attr = attr; - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slkattr.c b/Build/source/libs/ncurses/ncurses/base/lib_slkattr.c deleted file mode 100644 index 5044a08d727..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slkattr.c +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slkattr.c - * Soft key routines. - * Fetch the labels attributes - */ -#include - -MODULE_ID("$Id: lib_slkattr.c,v 1.5 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(attr_t) -slk_attr(void) -{ - T((T_CALLED("slk_attr()"))); - - if (SP != 0 && SP->_slk != 0) { - returnAttr(SP->_slk->attr); - } else - returnAttr(0); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slkclear.c b/Build/source/libs/ncurses/ncurses/base/lib_slkclear.c deleted file mode 100644 index 03e6721cbb2..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slkclear.c +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slkclear.c - * Soft key routines. - * Remove soft labels from the screen. - */ -#include - -MODULE_ID("$Id: lib_slkclear.c,v 1.8 2001/12/19 01:07:01 tom Exp $") - -NCURSES_EXPORT(int) -slk_clear(void) -{ - T((T_CALLED("slk_clear()"))); - - if (SP == NULL || SP->_slk == NULL) - returnCode(ERR); - SP->_slk->hidden = TRUE; - /* For simulated SLK's it's looks much more natural to - inherit those attributes from the standard screen */ - SP->_slk->win->_nc_bkgd = stdscr->_nc_bkgd; - SP->_slk->win->_attrs = stdscr->_attrs; - if (SP->_slk->win == stdscr) { - returnCode(OK); - } else { - werase(SP->_slk->win); - returnCode(wrefresh(SP->_slk->win)); - } -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slkcolor.c b/Build/source/libs/ncurses/ncurses/base/lib_slkcolor.c deleted file mode 100644 index d7af4a258d8..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slkcolor.c +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Juergen Pfeifer, 1998 * - ****************************************************************************/ - -/* - * lib_slkcolor.c - */ -#include - -MODULE_ID("$Id: lib_slkcolor.c,v 1.9 2003/10/25 15:27:03 tom Exp $") - -NCURSES_EXPORT(int) -slk_color(short color_pair_number) -{ - T((T_CALLED("slk_color(%d)"), color_pair_number)); - - if (SP != 0 && SP->_slk != 0 && - color_pair_number >= 0 && color_pair_number < COLOR_PAIRS) { - T(("... current %ld", (long) PAIR_NUMBER(SP->_slk->attr))); - toggle_attr_on(SP->_slk->attr, COLOR_PAIR(color_pair_number)); - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slkinit.c b/Build/source/libs/ncurses/ncurses/base/lib_slkinit.c deleted file mode 100644 index f003b5f033f..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slkinit.c +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slkinit.c - * Soft key routines. - * Initialize soft labels. Called by the user before initscr(). - */ -#include - -MODULE_ID("$Id: lib_slkinit.c,v 1.5 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -slk_init(int format) -{ - T((T_CALLED("slk_init(%d)"), format)); - if (format < 0 || format > 3) - returnCode(ERR); - _nc_slk_format = 1 + format; - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slklab.c b/Build/source/libs/ncurses/ncurses/base/lib_slklab.c deleted file mode 100644 index 42bb4ac1425..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slklab.c +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slklab.c - * Soft key routines. - * Fetch the label text. - */ -#include - -MODULE_ID("$Id: lib_slklab.c,v 1.7 2003/03/29 22:53:48 tom Exp $") - -NCURSES_EXPORT(char *) -slk_label(int n) -{ - T((T_CALLED("slk_label(%d)"), n)); - - if (SP == NULL || SP->_slk == NULL || n < 1 || n > SP->_slk->labcnt) - returnPtr(0); - returnPtr(SP->_slk->ent[n - 1].ent_text); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slkrefr.c b/Build/source/libs/ncurses/ncurses/base/lib_slkrefr.c deleted file mode 100644 index 9040cc0429e..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slkrefr.c +++ /dev/null @@ -1,120 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slkrefr.c - * Write SLK window to the (virtual) screen. - */ -#include -#include /* num_labels, label_*, plab_norm */ - -MODULE_ID("$Id: lib_slkrefr.c,v 1.11 2003/03/29 22:53:48 tom Exp $") - -/* - * Write the soft labels to the soft-key window. - */ -static void -slk_intern_refresh(SLK * slk) -{ - int i; - int fmt = SP->slk_format; - - for (i = 0; i < slk->labcnt; i++) { - if (slk->dirty || slk->ent[i].dirty) { - if (slk->ent[i].visible) { - if (num_labels > 0 && SLK_STDFMT(fmt)) { - if (i < num_labels) { - TPUTS_TRACE("plab_norm"); - putp(tparm(plab_norm, i + 1, slk->ent[i].form_text)); - } - } else { - wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x); - if (SP && SP->_slk) - wattrset(slk->win, SP->_slk->attr); - waddnstr(slk->win, slk->ent[i].form_text, - MAX_SKEY_LEN(fmt)); - /* if we simulate SLK's, it's looking much more - natural to use the current ATTRIBUTE also - for the label window */ - wattrset(slk->win, stdscr->_attrs); - } - } - slk->ent[i].dirty = FALSE; - } - } - slk->dirty = FALSE; - - if (num_labels > 0) { - if (slk->hidden) { - TPUTS_TRACE("label_off"); - putp(label_off); - } else { - TPUTS_TRACE("label_on"); - putp(label_on); - } - } -} - -/* - * Refresh the soft labels. - */ -NCURSES_EXPORT(int) -slk_noutrefresh(void) -{ - T((T_CALLED("slk_noutrefresh()"))); - - if (SP == NULL || SP->_slk == NULL) - returnCode(ERR); - if (SP->_slk->hidden) - returnCode(OK); - slk_intern_refresh(SP->_slk); - - returnCode(wnoutrefresh(SP->_slk->win)); -} - -/* - * Refresh the soft labels. - */ -NCURSES_EXPORT(int) -slk_refresh(void) -{ - T((T_CALLED("slk_refresh()"))); - - if (SP == NULL || SP->_slk == NULL) - returnCode(ERR); - if (SP->_slk->hidden) - returnCode(OK); - slk_intern_refresh(SP->_slk); - - returnCode(wrefresh(SP->_slk->win)); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slkset.c b/Build/source/libs/ncurses/ncurses/base/lib_slkset.c deleted file mode 100644 index 595a8ad1b9b..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slkset.c +++ /dev/null @@ -1,95 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slkset.c - * Set soft label text. - */ -#include -#include - -MODULE_ID("$Id: lib_slkset.c,v 1.10 2003/04/12 21:32:16 tom Exp $") - -NCURSES_EXPORT(int) -slk_set(int i, const char *astr, int format) -{ - SLK *slk = SP->_slk; - size_t len; - int offset; - const char *str = astr; - const char *p; - - T((T_CALLED("slk_set(%d, \"%s\", %d)"), i, str, format)); - - if (slk == NULL || i < 1 || i > slk->labcnt || format < 0 || format > 2) - returnCode(ERR); - if (str == NULL) - str = ""; - - while (isspace(UChar(*str))) - str++; /* skip over leading spaces */ - p = str; - while (isprint(UChar(*p))) - p++; /* The first non-print stops */ - - --i; /* Adjust numbering of labels */ - - len = (size_t) (p - str); - if (len > (size_t) slk->maxlen) - len = slk->maxlen; - if (len == 0) - slk->ent[i].ent_text[0] = 0; - else - strncpy(slk->ent[i].ent_text, str, len)[len] = 0; - memset(slk->ent[i].form_text, ' ', (unsigned) slk->maxlen); - slk->ent[i].ent_text[slk->maxlen] = 0; - - switch (format) { - default: - case 0: /* left-justified */ - offset = 0; - break; - case 1: /* centered */ - offset = (slk->maxlen - len) / 2; - break; - case 2: /* right-justified */ - offset = slk->maxlen - len; - break; - } - memcpy(slk->ent[i].form_text + offset, - slk->ent[i].ent_text, - len); - slk->ent[i].form_text[slk->maxlen] = 0; - slk->ent[i].dirty = TRUE; - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_slktouch.c b/Build/source/libs/ncurses/ncurses/base/lib_slktouch.c deleted file mode 100644 index 5eb5df385b8..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_slktouch.c +++ /dev/null @@ -1,53 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_slktouch.c - * Soft key routines. - * Force the code to believe that the soft keys have been changed. - */ -#include - -MODULE_ID("$Id: lib_slktouch.c,v 1.5 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(int) -slk_touch(void) -{ - T((T_CALLED("slk_touch()"))); - - if (SP == NULL || SP->_slk == NULL) - returnCode(ERR); - SP->_slk->dirty = TRUE; - - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_touch.c b/Build/source/libs/ncurses/ncurses/base/lib_touch.c deleted file mode 100644 index 2ac21f2e0d1..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_touch.c +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_touch.c -** -** The routines untouchwin(), -** wtouchln(), -** is_linetouched() -** is_wintouched(). -** -*/ - -#include - -MODULE_ID("$Id: lib_touch.c,v 1.9 2000/12/10 02:43:27 tom Exp $") - -NCURSES_EXPORT(bool) -is_linetouched(WINDOW *win, int line) -{ - T((T_CALLED("is_linetouched(%p,%d)"), win, line)); - - /* XSI doesn't define any error */ - if (!win || (line > win->_maxy) || (line < 0)) - returnCode((bool) ERR); - - returnCode(win->_line[line].firstchar != _NOCHANGE ? TRUE : FALSE); -} - -NCURSES_EXPORT(bool) -is_wintouched(WINDOW *win) -{ - int i; - - T((T_CALLED("is_wintouched(%p)"), win)); - - if (win) - for (i = 0; i <= win->_maxy; i++) - if (win->_line[i].firstchar != _NOCHANGE) - returnCode(TRUE); - returnCode(FALSE); -} - -NCURSES_EXPORT(int) -wtouchln(WINDOW *win, int y, int n, int changed) -{ - int i; - - T((T_CALLED("wtouchln(%p,%d,%d,%d)"), win, y, n, changed)); - - if (!win || (n < 0) || (y < 0) || (y > win->_maxy)) - returnCode(ERR); - - for (i = y; i < y + n; i++) { - if (i > win->_maxy) - break; - win->_line[i].firstchar = changed ? 0 : _NOCHANGE; - win->_line[i].lastchar = changed ? win->_maxx : _NOCHANGE; - } - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_ungetch.c b/Build/source/libs/ncurses/ncurses/base/lib_ungetch.c deleted file mode 100644 index a6164df5edc..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_ungetch.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_ungetch.c -** -** The routine ungetch(). -** -*/ - -#include - -MODULE_ID("$Id: lib_ungetch.c,v 1.8 2002/08/24 22:08:48 tom Exp $") - -#include - -#ifdef TRACE -NCURSES_EXPORT(void) -_nc_fifo_dump(void) -{ - int i; - T(("head = %d, tail = %d, peek = %d", head, tail, peek)); - for (i = 0; i < 10; i++) - T(("char %d = %s", i, _tracechar(SP->_fifo[i]))); -} -#endif /* TRACE */ - -NCURSES_EXPORT(int) -ungetch(int ch) -{ - T((T_CALLED("ungetch(%s)"), _tracechar(ch))); - - if (tail == -1) - returnCode(ERR); - if (head == -1) { - head = 0; - t_inc() - peek = tail; /* no raw keys */ - } else - h_dec(); - - SP->_fifo[head] = ch; - T(("ungetch %s ok", _tracechar(ch))); -#ifdef TRACE - if (_nc_tracing & TRACE_IEVENT) - _nc_fifo_dump(); -#endif - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_vline.c b/Build/source/libs/ncurses/ncurses/base/lib_vline.c deleted file mode 100644 index c19570b6626..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_vline.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_vline.c -** -** The routine wvline(). -** -*/ - -#include - -MODULE_ID("$Id: lib_vline.c,v 1.9 2001/06/03 00:39:24 skimo Exp $") - -NCURSES_EXPORT(int) -wvline(WINDOW *win, chtype ch, int n) -{ - int code = ERR; - NCURSES_SIZE_T row, col; - NCURSES_SIZE_T end; - - T((T_CALLED("wvline(%p,%s,%d)"), win, _tracechtype(ch), n)); - - if (win) { - NCURSES_CH_T wch; - row = win->_cury; - col = win->_curx; - end = row + n - 1; - if (end > win->_maxy) - end = win->_maxy; - - if (ch == 0) - SetChar(wch, ChCharOf(ACS_VLINE), ChAttrOf(ACS_VLINE)); - else - SetChar(wch, ChCharOf(ch), ChAttrOf(ch)); - wch = _nc_render(win, wch); - - while (end >= row) { - struct ldat *line = &(win->_line[end]); - line->text[col] = wch; - CHANGED_CELL(line, col); - end--; - } - - _nc_synchook(win); - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_wattroff.c b/Build/source/libs/ncurses/ncurses/base/lib_wattroff.c deleted file mode 100644 index 2cfe6947cc8..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_wattroff.c +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_wattroff.c -** -** The routine wattr_off(). -** -*/ - -#include -#include - -MODULE_ID("$Id: lib_wattroff.c,v 1.7 2002/07/20 17:07:16 tom Exp $") - -NCURSES_EXPORT(int) -wattr_off(WINDOW *win, attr_t at, void *opts GCC_UNUSED) -{ - T((T_CALLED("wattr_off(%p,%s)"), win, _traceattr(at))); - if (win) { - T(("... current %s", _traceattr(win->_attrs))); - toggle_attr_off(win->_attrs, at); - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_wattron.c b/Build/source/libs/ncurses/ncurses/base/lib_wattron.c deleted file mode 100644 index 5d1a6a9d22b..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_wattron.c +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_wattron.c -** -** The routines wattr_on(). -** -*/ - -#include -#include - -MODULE_ID("$Id: lib_wattron.c,v 1.7 2002/07/20 17:07:16 tom Exp $") - -NCURSES_EXPORT(int) -wattr_on(WINDOW *win, attr_t at, void *opts GCC_UNUSED) -{ - T((T_CALLED("wattr_on(%p,%s)"), win, _traceattr(at))); - if (win) { - T(("... current %s", _traceattr(win->_attrs))); - toggle_attr_on(win->_attrs, at); - returnCode(OK); - } else - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_winch.c b/Build/source/libs/ncurses/ncurses/base/lib_winch.c deleted file mode 100644 index 18da9c59494..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_winch.c +++ /dev/null @@ -1,54 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1998 * - ****************************************************************************/ - -/* -** lib_winch.c -** -** The routine winch(). -** -*/ - -#include - -MODULE_ID("$Id: lib_winch.c,v 1.5 2001/06/02 23:42:08 skimo Exp $") - -NCURSES_EXPORT(chtype) -winch(WINDOW *win) -{ - T((T_CALLED("winch(%p)"), win)); - if (win != 0) { - returnChar(CharOf(win->_line[win->_cury].text[win->_curx]) | - AttrOf(win->_line[win->_cury].text[win->_curx])); - } else { - returnChar(0); - } -} diff --git a/Build/source/libs/ncurses/ncurses/base/lib_window.c b/Build/source/libs/ncurses/ncurses/base/lib_window.c deleted file mode 100644 index 25101673044..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/lib_window.c +++ /dev/null @@ -1,248 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_window.c -** -** -*/ - -#include - -MODULE_ID("$Id: lib_window.c,v 1.21 2002/09/14 23:28:02 tom Exp $") - -NCURSES_EXPORT(void) -_nc_synchook(WINDOW *win) -/* hook to be called after each window change */ -{ - if (win->_immed) - wrefresh(win); - if (win->_sync) - wsyncup(win); -} - -NCURSES_EXPORT(int) -mvderwin(WINDOW *win, int y, int x) -/* move a derived window */ -{ - WINDOW *orig; - int i; - - T((T_CALLED("mvderwin(%p,%d,%d)"), win, y, x)); - - if (win && (orig = win->_parent)) { - if (win->_parx == x && win->_pary == y) - returnCode(OK); - if (x < 0 || y < 0) - returnCode(ERR); - if ((x + getmaxx(win) > getmaxx(orig)) || - (y + getmaxy(win) > getmaxy(orig))) - returnCode(ERR); - } else - returnCode(ERR); - wsyncup(win); - win->_parx = x; - win->_pary = y; - for (i = 0; i < getmaxy(win); i++) - win->_line[i].text = &(orig->_line[y++].text[x]); - returnCode(OK); -} - -NCURSES_EXPORT(int) -syncok(WINDOW *win, bool bf) -/* enable/disable automatic wsyncup() on each change to window */ -{ - T((T_CALLED("syncok(%p,%d)"), win, bf)); - - if (win) { - win->_sync = bf; - returnCode(OK); - } else - returnCode(ERR); -} - -NCURSES_EXPORT(void) -wsyncup(WINDOW *win) -/* mark changed every cell in win's ancestors that is changed in win */ -/* Rewritten by J. Pfeifer, 1-Apr-96 (don't even think that...) */ -{ - WINDOW *wp; - - T((T_CALLED("wsyncup(%p)"), win)); - if (win && win->_parent) { - for (wp = win; wp->_parent; wp = wp->_parent) { - int y; - WINDOW *pp = wp->_parent; - - assert((wp->_pary <= pp->_maxy) && - ((wp->_pary + wp->_maxy) <= pp->_maxy)); - - for (y = 0; y <= wp->_maxy; y++) { - int left = wp->_line[y].firstchar; - if (left >= 0) { /* line is touched */ - struct ldat *line = &(pp->_line[wp->_pary + y]); - /* left & right character in parent window coordinates */ - int right = wp->_line[y].lastchar + wp->_parx; - left += wp->_parx; - - CHANGED_RANGE(line, left, right); - } - } - } - } - returnVoid; -} - -NCURSES_EXPORT(void) -wsyncdown(WINDOW *win) -/* mark changed every cell in win that is changed in any of its ancestors */ -/* Rewritten by J. Pfeifer, 1-Apr-96 (don't even think that...) */ -{ - T((T_CALLED("wsyncdown(%p)"), win)); - - if (win && win->_parent) { - WINDOW *pp = win->_parent; - int y; - - /* This recursion guarantees, that the changes are propagated down- - wards from the root to our direct parent. */ - wsyncdown(pp); - - /* and now we only have to propagate the changes from our direct - parent, if there are any. */ - assert((win->_pary <= pp->_maxy) && - ((win->_pary + win->_maxy) <= pp->_maxy)); - - for (y = 0; y <= win->_maxy; y++) { - if (pp->_line[win->_pary + y].firstchar >= 0) { /* parent changed */ - struct ldat *line = &(win->_line[y]); - /* left and right character in child coordinates */ - int left = pp->_line[win->_pary + y].firstchar - win->_parx; - int right = pp->_line[win->_pary + y].lastchar - win->_parx; - /* The change maybe outside the childs range */ - if (left < 0) - left = 0; - if (right > win->_maxx) - right = win->_maxx; - CHANGED_RANGE(line, left, right); - } - } - } - returnVoid; -} - -NCURSES_EXPORT(void) -wcursyncup(WINDOW *win) -/* sync the cursor in all derived windows to its value in the base window */ -{ - WINDOW *wp; - - T((T_CALLED("wcursyncup(%p)"), win)); - for (wp = win; wp && wp->_parent; wp = wp->_parent) { - wmove(wp->_parent, wp->_pary + wp->_cury, wp->_parx + wp->_curx); - } - returnVoid; -} - -NCURSES_EXPORT(WINDOW *) -dupwin(WINDOW *win) -/* make an exact duplicate of the given window */ -{ - WINDOW *nwin = 0; - size_t linesize; - int i; - - T((T_CALLED("dupwin(%p)"), win)); - - if (win != 0) { - - if (win->_flags & _ISPAD) { - nwin = newpad(win->_maxy + 1, - win->_maxx + 1); - } else { - nwin = newwin(win->_maxy + 1, - win->_maxx + 1, - win->_begy, - win->_begx); - } - - if (nwin != 0) { - - nwin->_curx = win->_curx; - nwin->_cury = win->_cury; - nwin->_maxy = win->_maxy; - nwin->_maxx = win->_maxx; - nwin->_begy = win->_begy; - nwin->_begx = win->_begx; - nwin->_yoffset = win->_yoffset; - - nwin->_flags = win->_flags & ~_SUBWIN; - /* Due to the use of newwin(), the clone is not a subwindow. - * The text is really copied into the clone. - */ - - nwin->_attrs = win->_attrs; - nwin->_nc_bkgd = win->_nc_bkgd; - - nwin->_notimeout = win->_notimeout; - nwin->_clear = win->_clear; - nwin->_leaveok = win->_leaveok; - nwin->_scroll = win->_scroll; - nwin->_idlok = win->_idlok; - nwin->_idcok = win->_idcok; - nwin->_immed = win->_immed; - nwin->_sync = win->_sync; - nwin->_use_keypad = win->_use_keypad; - nwin->_delay = win->_delay; - - nwin->_parx = 0; - nwin->_pary = 0; - nwin->_parent = (WINDOW *) 0; - /* See above: the clone isn't a subwindow! */ - - nwin->_regtop = win->_regtop; - nwin->_regbottom = win->_regbottom; - - if (win->_flags & _ISPAD) - nwin->_pad = win->_pad; - - linesize = (win->_maxx + 1) * sizeof(NCURSES_CH_T); - for (i = 0; i <= nwin->_maxy; i++) { - memcpy(nwin->_line[i].text, win->_line[i].text, linesize); - nwin->_line[i].firstchar = win->_line[i].firstchar; - nwin->_line[i].lastchar = win->_line[i].lastchar; - } - } - } - returnWin(nwin); -} diff --git a/Build/source/libs/ncurses/ncurses/base/memmove.c b/Build/source/libs/ncurses/ncurses/base/memmove.c deleted file mode 100644 index 4fafc4cda9d..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/memmove.c +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: memmove.c,v 1.4 2000/12/10 02:43:28 tom Exp $") - -/**************************************************************************** - * Author: Thomas E. Dickey 1998 * - ****************************************************************************/ - -#if USE_MY_MEMMOVE -#define DST ((char *)s1) -#define SRC ((const char *)s2) -NCURSES_EXPORT(void *) -_nc_memmove(void *s1, const void *s2, size_t n) -{ - if (n != 0) { - if ((DST + n > SRC) && (SRC + n > DST)) { - static char *bfr; - static size_t length; - register size_t j; - if (length < n) { - length = (n * 3) / 2; - bfr = typeRealloc(char, length, bfr); - } - for (j = 0; j < n; j++) - bfr[j] = SRC[j]; - SRC = bfr; - } - while (n-- != 0) - DST[n] = SRC[n]; - } - return s1; -} -#else -extern -NCURSES_EXPORT(void) -_nc_memmove(void); /* quiet's gcc warning */ -NCURSES_EXPORT(void) -_nc_memmove(void) -{ -} /* nonempty for strict ANSI compilers */ -#endif /* USE_MY_MEMMOVE */ diff --git a/Build/source/libs/ncurses/ncurses/base/nc_panel.c b/Build/source/libs/ncurses/ncurses/base/nc_panel.c deleted file mode 100644 index 59bfbbe86ef..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/nc_panel.c +++ /dev/null @@ -1,41 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: nc_panel.c,v 1.4 2000/12/10 02:43:28 tom Exp $") - -NCURSES_EXPORT(struct panelhook *) -_nc_panelhook(void) -{ - return (SP ? &(SP->_panelHook) : NULL); -} diff --git a/Build/source/libs/ncurses/ncurses/base/resizeterm.c b/Build/source/libs/ncurses/ncurses/base/resizeterm.c deleted file mode 100644 index 09ba6007e53..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/resizeterm.c +++ /dev/null @@ -1,330 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey * - ****************************************************************************/ - -/* - * This is an extension to the curses library. It provides callers with a hook - * into the NCURSES data to resize windows, primarily for use by programs - * running in an X Window terminal (e.g., xterm). I abstracted this module - * from my application library for NCURSES because it must be compiled with - * the private data structures -- T.Dickey 1995/7/4. - */ - -#include -#include - -MODULE_ID("$Id: resizeterm.c,v 1.17 2004/07/31 20:24:38 tom Exp $") - -#define stolen_lines (screen_lines - SP->_lines_avail) - -static int current_lines; -static int current_cols; - -#ifdef TRACE -static void -show_window_sizes(const char *name) -{ - WINDOWLIST *wp; - - _tracef("%s resizing: %2d x %2d (%2d x %2d)", name, LINES, COLS, - screen_lines, screen_columns); - for (wp = _nc_windows; wp != 0; wp = wp->next) { - _tracef(" window %p is %2d x %2d at %2d,%2d", - &(wp->win), - wp->win._maxy + 1, - wp->win._maxx + 1, - wp->win._begy, - wp->win._begx); - } -} -#endif - -NCURSES_EXPORT(bool) -is_term_resized(int ToLines, int ToCols) -{ - T((T_CALLED("is_term_resized(%d, %d)"), ToLines, ToCols)); - returnCode(ToLines > 0 - && ToCols > 0 - && (ToLines != screen_lines - || ToCols != screen_columns)); -} - -/* - * Return the number of levels of child-windows under the current window. - */ -static int -child_depth(WINDOW *cmp) -{ - int depth = 0; - - if (cmp != 0) { - WINDOWLIST *wp; - - for (wp = _nc_windows; wp != 0; wp = wp->next) { - WINDOW *tst = &(wp->win); - if (tst->_parent == cmp) { - depth = 1 + child_depth(tst); - break; - } - } - } - return depth; -} - -/* - * Return the number of levels of parent-windows above the current window. - */ -static int -parent_depth(WINDOW *cmp) -{ - int depth = 0; - - if (cmp != 0) { - WINDOW *tst; - while ((tst = cmp->_parent) != 0) { - ++depth; - cmp = tst; - } - } - return depth; -} - -/* - * FIXME: must adjust position so it's within the parent! - */ -static int -adjust_window(WINDOW *win, int ToLines, int ToCols, int stolen) -{ - int result; - int bottom = current_lines + SP->_topstolen - stolen; - int myLines = win->_maxy + 1; - int myCols = win->_maxx + 1; - - T((T_CALLED("adjust_window(%p,%d,%d) currently %dx%d at %d,%d"), - win, ToLines, ToCols, - getmaxy(win), getmaxx(win), - getbegy(win), getbegx(win))); - - if (win->_begy >= bottom) { - win->_begy += (ToLines - current_lines); - } else { - if (myLines == current_lines - stolen - && ToLines != current_lines) - myLines = ToLines - stolen; - else if (myLines == current_lines - && ToLines != current_lines) - myLines = ToLines; - } - - if (myLines > ToLines) - myLines = ToLines; - - if (myCols > ToCols) - myCols = ToCols; - - if (myLines == current_lines - && ToLines != current_lines) - myLines = ToLines; - - if (myCols == current_cols - && ToCols != current_cols) - myCols = ToCols; - - result = wresize(win, myLines, myCols); - returnCode(result); -} - -/* - * If we're decreasing size, recursively search for windows that have no - * children, decrease those to fit, then decrease the containing window, etc. - */ -static int -decrease_size(int ToLines, int ToCols, int stolen) -{ - bool found; - int depth = 0; - WINDOWLIST *wp; - - T((T_CALLED("decrease_size(%d, %d)"), ToLines, ToCols)); - - do { - found = FALSE; - TR(TRACE_UPDATE, ("decreasing size of windows to %dx%d, depth=%d", - ToLines, ToCols, depth)); - for (wp = _nc_windows; wp != 0; wp = wp->next) { - WINDOW *win = &(wp->win); - - if (!(win->_flags & _ISPAD)) { - if (child_depth(win) == depth) { - found = TRUE; - if (adjust_window(win, ToLines, ToCols, stolen) != OK) - returnCode(ERR); - } - } - } - ++depth; - } while (found); - returnCode(OK); -} - -/* - * If we're increasing size, recursively search for windows that have no - * parent, increase those to fit, then increase the contained window, etc. - */ -static int -increase_size(int ToLines, int ToCols, int stolen) -{ - bool found; - int depth = 0; - WINDOWLIST *wp; - - T((T_CALLED("increase_size(%d, %d)"), ToLines, ToCols)); - - do { - found = FALSE; - TR(TRACE_UPDATE, ("increasing size of windows to %dx%d, depth=%d", - ToLines, ToCols, depth)); - for (wp = _nc_windows; wp != 0; wp = wp->next) { - WINDOW *win = &(wp->win); - - if (!(win->_flags & _ISPAD)) { - if (parent_depth(win) == depth) { - found = TRUE; - if (adjust_window(win, ToLines, ToCols, stolen) != OK) - returnCode(ERR); - } - } - } - ++depth; - } while (found); - returnCode(OK); -} - -/* - * This function reallocates NCURSES window structures, with no side-effects - * such as ungetch(). - */ -NCURSES_EXPORT(int) -resize_term(int ToLines, int ToCols) -{ - int result = OK; - int was_stolen = (screen_lines - SP->_lines_avail); - - T((T_CALLED("resize_term(%d,%d) old(%d,%d)"), - ToLines, ToCols, - screen_lines, screen_columns)); - - if (is_term_resized(ToLines, ToCols)) { - int myLines = current_lines = screen_lines; - int myCols = current_cols = screen_columns; - -#ifdef TRACE - if (_nc_tracing & TRACE_UPDATE) - show_window_sizes("before"); -#endif - if (ToLines > screen_lines) { - increase_size(myLines = ToLines, myCols, was_stolen); - current_lines = myLines; - current_cols = myCols; - } - - if (ToCols > screen_columns) { - increase_size(myLines, myCols = ToCols, was_stolen); - current_lines = myLines; - current_cols = myCols; - } - - if (ToLines < myLines || - ToCols < myCols) { - decrease_size(ToLines, ToCols, was_stolen); - } - - screen_lines = lines = ToLines; - screen_columns = columns = ToCols; - - SP->_lines_avail = lines - was_stolen; - - if (SP->oldhash) { - FreeAndNull(SP->oldhash); - } - if (SP->newhash) { - FreeAndNull(SP->newhash); - } -#ifdef TRACE - if (_nc_tracing & TRACE_UPDATE) { - LINES = ToLines - was_stolen; - COLS = ToCols; - show_window_sizes("after"); - } -#endif - } - - /* - * Always update LINES, to allow for call from lib_doupdate.c which - * needs to have the count adjusted by the stolen (ripped off) lines. - */ - LINES = ToLines - was_stolen; - COLS = ToCols; - - returnCode(result); -} - -/* - * This function reallocates NCURSES window structures. It is invoked in - * response to a SIGWINCH interrupt. Other user-defined windows may also need - * to be reallocated. - * - * Because this performs memory allocation, it should not (in general) be - * invoked directly from the signal handler. - */ -NCURSES_EXPORT(int) -resizeterm(int ToLines, int ToCols) -{ - int result = OK; - - SP->_sig_winch = FALSE; - - T((T_CALLED("resizeterm(%d,%d) old(%d,%d)"), - ToLines, ToCols, - screen_lines, screen_columns)); - - if (is_term_resized(ToLines, ToCols)) { - -#if USE_SIGWINCH - ungetch(KEY_RESIZE); /* so application can know this */ - clearok(curscr, TRUE); /* screen contents are unknown */ -#endif - - result = resize_term(ToLines, ToCols); - } - - returnCode(result); -} diff --git a/Build/source/libs/ncurses/ncurses/base/safe_sprintf.c b/Build/source/libs/ncurses/ncurses/base/safe_sprintf.c deleted file mode 100644 index 81fe44f0c78..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/safe_sprintf.c +++ /dev/null @@ -1,262 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ - -#include -#include - -MODULE_ID("$Id: safe_sprintf.c,v 1.18 2003/08/09 21:52:04 tom Exp $") - -#if USE_SAFE_SPRINTF - -typedef enum { - Flags, Width, Prec, Type, Format -} PRINTF; - -#define VA_INTGR(type) ival = va_arg(ap, type) -#define VA_FLOAT(type) fval = va_arg(ap, type) -#define VA_POINT(type) pval = (void *)va_arg(ap, type) - -/* - * Scan a variable-argument list for printf to determine the number of - * characters that would be emitted. - */ -static int -_nc_printf_length(const char *fmt, va_list ap) -{ - size_t length = BUFSIZ; - char *buffer; - char *format; - int len = 0; - size_t fmt_len; - char fmt_arg[BUFSIZ]; - - if (fmt == 0 || *fmt == '\0') - return 0; - fmt_len = strlen(fmt) + 1; - if ((format = typeMalloc(char, fmt_len)) == 0) - return -1; - if ((buffer = typeMalloc(char, length)) == 0) { - free(format); - return -1; - } - - while (*fmt != '\0') { - if (*fmt == '%') { - static char dummy[] = ""; - PRINTF state = Flags; - char *pval = dummy; /* avoid const-cast */ - double fval = 0.0; - int done = FALSE; - int ival = 0; - int prec = -1; - int type = 0; - int used = 0; - int width = -1; - size_t f = 0; - - format[f++] = *fmt; - while (*++fmt != '\0' && len >= 0 && !done) { - format[f++] = *fmt; - - if (isdigit(UChar(*fmt))) { - int num = *fmt - '0'; - if (state == Flags && num != 0) - state = Width; - if (state == Width) { - if (width < 0) - width = 0; - width = (width * 10) + num; - } else if (state == Prec) { - if (prec < 0) - prec = 0; - prec = (prec * 10) + num; - } - } else if (*fmt == '*') { - VA_INTGR(int); - if (state == Flags) - state = Width; - if (state == Width) { - width = ival; - } else if (state == Prec) { - prec = ival; - } - sprintf(fmt_arg, "%d", ival); - fmt_len += strlen(fmt_arg); - if ((format = realloc(format, fmt_len)) == 0) { - return -1; - } - strcpy(&format[--f], fmt_arg); - f = strlen(format); - } else if (isalpha(UChar(*fmt))) { - done = TRUE; - switch (*fmt) { - case 'Z': /* FALLTHRU */ - case 'h': /* FALLTHRU */ - case 'l': /* FALLTHRU */ - done = FALSE; - type = *fmt; - break; - case 'i': /* FALLTHRU */ - case 'd': /* FALLTHRU */ - case 'u': /* FALLTHRU */ - case 'x': /* FALLTHRU */ - case 'X': /* FALLTHRU */ - if (type == 'l') - VA_INTGR(long); - else if (type == 'Z') - VA_INTGR(size_t); - else - VA_INTGR(int); - used = 'i'; - break; - case 'f': /* FALLTHRU */ - case 'e': /* FALLTHRU */ - case 'E': /* FALLTHRU */ - case 'g': /* FALLTHRU */ - case 'G': /* FALLTHRU */ - VA_FLOAT(double); - used = 'f'; - break; - case 'c': - VA_INTGR(int); - used = 'i'; - break; - case 's': - VA_POINT(char *); - if (prec < 0) - prec = strlen(pval); - if (prec > (int) length) { - length = length + prec; - buffer = typeRealloc(char, length, buffer); - if (buffer == 0) { - free(format); - return -1; - } - } - used = 'p'; - break; - case 'p': - VA_POINT(void *); - used = 'p'; - break; - case 'n': - VA_POINT(int *); - used = 0; - break; - default: - break; - } - } else if (*fmt == '.') { - state = Prec; - } else if (*fmt == '%') { - done = TRUE; - used = 'p'; - } - } - format[f] = '\0'; - switch (used) { - case 'i': - sprintf(buffer, format, ival); - break; - case 'f': - sprintf(buffer, format, fval); - break; - default: - sprintf(buffer, format, pval); - break; - } - len += (int) strlen(buffer); - } else { - fmt++; - len++; - } - } - - free(buffer); - free(format); - return len; -} -#endif - -/* - * Wrapper for vsprintf that allocates a buffer big enough to hold the result. - */ -NCURSES_EXPORT(char *) -_nc_printf_string(const char *fmt, va_list ap) -{ - static char *buf; - static size_t used; - char *result = 0; - - if (fmt != 0) { -#if USE_SAFE_SPRINTF - int len = _nc_printf_length(fmt, ap); - - if ((int) used < len + 1) { - used = 2 * (len + 1); - buf = typeRealloc(char, used, buf); - } - if (buf != 0) { - *buf = '\0'; - if (len >= 0) { - vsprintf(buf, fmt, ap); - } - result = buf; - } -#else - static int rows, cols; - - if (screen_lines > rows || screen_columns > cols) { - if (screen_lines > rows) - rows = screen_lines; - if (screen_columns > cols) - cols = screen_columns; - used = (rows * (cols + 1)) + 1; - buf = typeRealloc(char, used, buf); - } - - if (buf != 0) { -# if HAVE_VSNPRINTF - vsnprintf(buf, used, fmt, ap); /* GNU extension */ -# else - vsprintf(buf, fmt, ap); /* ANSI */ -# endif - result = buf; - } -#endif - } else if (buf != 0) { /* see _nc_freeall() */ - free(buf); - buf = 0; - used = 0; - } - return result; -} diff --git a/Build/source/libs/ncurses/ncurses/base/sigaction.c b/Build/source/libs/ncurses/ncurses/base/sigaction.c deleted file mode 100644 index 36442e090a4..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/sigaction.c +++ /dev/null @@ -1,99 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-2003 * - ****************************************************************************/ - -/* This file provides sigaction() emulation using sigvec() */ -/* Use only if this is non POSIX system */ - -MODULE_ID("$Id: sigaction.c,v 1.14 2003/12/07 01:06:52 tom Exp $") - -static int -_nc_sigaction(int sig, sigaction_t * sigact, sigaction_t * osigact) -{ - return sigvec(sig, sigact, osigact); -} - -static int -_nc_sigemptyset(sigset_t * mask) -{ - *mask = 0; - return 0; -} - -static int -_nc_sigprocmask(int mode, sigset_t * mask, sigset_t * omask) -{ - sigset_t current = sigsetmask(0); - - if (omask) - *omask = current; - - if (mode == SIG_BLOCK) - current |= *mask; - else if (mode == SIG_UNBLOCK) - current &= ~*mask; - else if (mode == SIG_SETMASK) - current = *mask; - - sigsetmask(current); - return 0; -} - -static int -_nc_sigaddset(sigset_t * mask, int sig) -{ - *mask |= sigmask(sig); - return 0; -} - -/* not used in lib_tstp.c */ -#if 0 -static int -_nc_sigsuspend(sigset_t * mask) -{ - return sigpause(*mask); -} - -static int -_nc_sigdelset(sigset_t * mask, int sig) -{ - *mask &= ~sigmask(sig); - return 0; -} - -static int -_nc_sigismember(sigset_t * mask, int sig) -{ - return (*mask & sigmask(sig)) != 0; -} -#endif diff --git a/Build/source/libs/ncurses/ncurses/base/tries.c b/Build/source/libs/ncurses/ncurses/base/tries.c deleted file mode 100644 index 3ae47898b29..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/tries.c +++ /dev/null @@ -1,141 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ - -/* -** tries.c -** -** Functions to manage the tree of partial-completions for keycodes. -** -*/ - -#include - -MODULE_ID("$Id: tries.c,v 1.19 2003/05/17 23:11:24 tom Exp $") - -/* - * Expand a keycode into the string that it corresponds to, returning null if - * no match was found, otherwise allocating a string of the result. - */ -NCURSES_EXPORT(char *) -_nc_expand_try(struct tries *tree, unsigned short code, int *count, size_t len) -{ - struct tries *ptr = tree; - char *result = 0; - - if (code != 0) { - while (ptr != 0) { - if ((result = _nc_expand_try(ptr->child, code, count, len + 1)) - != 0) { - break; - } - if (ptr->value == code) { - *count -= 1; - if (*count == -1) { - result = typeCalloc(char, len + 2); - break; - } - } - ptr = ptr->sibling; - } - } - if (result != 0) { - if ((result[len] = ptr->ch) == 0) - *((unsigned char *) (result + len)) = 128; -#ifdef TRACE - if (len == 0) - _tracef("expand_key %s %s", _tracechar(code), _nc_visbuf(result)); -#endif - } - return result; -} - -/* - * Remove a code from the specified tree, freeing the unused nodes. Returns - * true if the code was found/removed. - */ -NCURSES_EXPORT(int) -_nc_remove_key(struct tries **tree, unsigned short code) -{ - T((T_CALLED("_nc_remove_key(%p,%d)"), tree, code)); - - if (code == 0) - returnCode(FALSE); - - while (*tree != 0) { - if (_nc_remove_key(&(*tree)->child, code)) { - returnCode(TRUE); - } - if ((*tree)->value == code) { - if ((*tree)->child) { - /* don't cut the whole sub-tree */ - (*tree)->value = 0; - } else { - struct tries *to_free = *tree; - *tree = (*tree)->sibling; - free(to_free); - } - returnCode(TRUE); - } - tree = &(*tree)->sibling; - } - returnCode(FALSE); -} - -/* - * Remove a string from the specified tree, freeing the unused nodes. Returns - * true if the string was found/removed. - */ -NCURSES_EXPORT(int) -_nc_remove_string(struct tries **tree, const char *string) -{ - T((T_CALLED("_nc_remove_string(%p,%s)"), tree, _nc_visbuf(string))); - - if (string == 0 || *string == 0) - returnCode(FALSE); - - while (*tree != 0) { - if (UChar((*tree)->ch) == UChar(*string)) { - if (string[1] != 0) - returnCode(_nc_remove_string(&(*tree)->child, string + 1)); - if ((*tree)->child == 0) { - struct tries *to_free = *tree; - *tree = (*tree)->sibling; - free(to_free); - returnCode(TRUE); - } else { - returnCode(FALSE); - } - } - tree = &(*tree)->sibling; - } - returnCode(FALSE); -} diff --git a/Build/source/libs/ncurses/ncurses/base/version.c b/Build/source/libs/ncurses/ncurses/base/version.c deleted file mode 100644 index 6e7a9870d3b..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/version.c +++ /dev/null @@ -1,42 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1999-2000,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1999 * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: version.c,v 1.5 2004/01/10 21:18:17 tom Exp $") - -NCURSES_EXPORT(const char *) -curses_version(void) -{ - T((T_CALLED("curses_version()"))); - returnPtr("ncurses " NCURSES_VERSION_STRING); -} diff --git a/Build/source/libs/ncurses/ncurses/base/vsscanf.c b/Build/source/libs/ncurses/ncurses/base/vsscanf.c deleted file mode 100644 index e6253c3a38a..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/vsscanf.c +++ /dev/null @@ -1,356 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * State-machine fallback written by Thomas E. Dickey 2002 * - ****************************************************************************/ - -/* - * This function is needed to support vwscanw - */ - -#include - -#if !HAVE_VSSCANF - -MODULE_ID("$Id: vsscanf.c,v 1.18 2004/04/03 20:27:02 tom Exp $") - -#if !(HAVE_VFSCANF || HAVE__DOSCAN) - -#include - -#define L_SQUARE '[' -#define R_SQUARE ']' - -typedef enum { - cUnknown - ,cError /* anything that isn't ANSI */ - ,cAssigned - ,cChar - ,cInt - ,cFloat - ,cDouble - ,cPointer - ,cLong - ,cShort - ,cRange - ,cString -} ChunkType; - -typedef enum { - oUnknown - ,oShort - ,oLong -} OtherType; - -typedef enum { - sUnknown - ,sPercent /* last was '%' beginning a format */ - ,sNormal /* ...somewhere in the middle */ - ,sLeft /* last was left square bracket beginning a range */ - ,sRange /* ...somewhere in the middle */ - ,sFinal /* last finished a format */ -} ScanState; - -static ChunkType -final_ch(int ch, OtherType other) -{ - ChunkType result = cUnknown; - - switch (ch) { - case 'c': - if (other == oUnknown) - result = cChar; - else - result = cError; - break; - case 'd': - case 'i': - case 'X': - case 'x': - switch (other) { - case oUnknown: - result = cInt; - break; - case oShort: - result = cShort; - break; - case oLong: - result = cLong; - break; - } - break; - case 'E': - case 'e': - case 'f': - case 'g': - switch (other) { - case oUnknown: - result = cFloat; - break; - case oShort: - result = cError; - break; - case oLong: - result = cDouble; - break; - } - break; - case 'n': - if (other == oUnknown) - result = cAssigned; - else - result = cError; - break; - case 'p': - if (other == oUnknown) - result = cPointer; - else - result = cError; - break; - case 's': - if (other == oUnknown) - result = cString; - else - result = cError; - break; - } - return result; -} - -static OtherType -other_ch(int ch) -{ - OtherType result = oUnknown; - switch (ch) { - case 'h': - result = oShort; - break; - case 'l': - result = oLong; - break; - } - return result; -} -#endif - -/*VARARGS2*/ -NCURSES_EXPORT(int) -vsscanf(const char *str, const char *format, va_list ap) -{ -#if HAVE_VFSCANF || HAVE__DOSCAN - /* - * This code should work on anything descended from AT&T SVr1. - */ - FILE strbuf; - - strbuf._flag = _IOREAD; - strbuf._ptr = strbuf._base = (unsigned char *) str; - strbuf._cnt = strlen(str); - strbuf._file = _NFILE; - -#if HAVE_VFSCANF - return (vfscanf(&strbuf, format, ap)); -#else - return (_doscan(&strbuf, format, ap)); -#endif -#else - static int can_convert = -1; - - int assigned = 0; - int consumed = 0; - - T((T_CALLED("vsscanf(%s,%s,...)"), - _nc_visbuf2(1, str), - _nc_visbuf2(2, format))); - - /* - * This relies on having a working "%n" format conversion. Check if it - * works. Only very old C libraries do not support it. - * - * FIXME: move this check into the configure script. - */ - if (can_convert < 0) { - int check1; - int check2; - if (sscanf("123", "%d%n", &check1, &check2) > 0 - && check1 == 123 - && check2 == 3) { - can_convert = 1; - } else { - can_convert = 0; - } - } - - if (can_convert) { - size_t len_fmt = strlen(format) + 32; - char *my_fmt = malloc(len_fmt); - ChunkType chunk, ctest; - OtherType other, otest; - ScanState state; - unsigned n; - int eaten; - void *pointer; - - if (my_fmt != 0) { - /* - * Split the original format into chunks, adding a "%n" to the end - * of each (except of course if it used %n), and use that - * information to decide where to start scanning the next chunk. - * - * FIXME: does %n count bytes or characters? If the latter, this - * will require further work for multibyte strings. - */ - while (*format != '\0') { - /* find a chunk */ - state = sUnknown; - chunk = cUnknown; - other = oUnknown; - pointer = 0; - for (n = 0; format[n] != 0 && state != sFinal; ++n) { - my_fmt[n] = format[n]; - switch (state) { - case sUnknown: - if (format[n] == '%') - state = sPercent; - break; - case sPercent: - if (format[n] == '%') { - state = sUnknown; - } else if (format[n] == L_SQUARE) { - state = sLeft; - } else { - state = sNormal; - --n; - } - break; - case sLeft: - state = sRange; - if (format[n] == '^') { - ++n; - my_fmt[n] = format[n]; - } - break; - case sRange: - if (format[n] == R_SQUARE) { - state = sFinal; - chunk = cRange; - } - break; - case sNormal: - if (format[n] == '*') { - state = sUnknown; - } else { - if ((ctest = final_ch(format[n], other)) != cUnknown) { - state = sFinal; - chunk = ctest; - } else if ((otest = other_ch(format[n])) != oUnknown) { - other = otest; - } else if (isalpha(UChar(format[n]))) { - state = sFinal; - chunk = cError; - } - } - break; - case sFinal: - break; - } - } - my_fmt[n] = '\0'; - format += n; - - if (chunk == cUnknown - || chunk == cError) { - if (assigned == 0) - assigned = EOF; - break; - } - - /* add %n, if the format was not that */ - if (chunk != cAssigned) { - strcat(my_fmt, "%n"); - } - - switch (chunk) { - case cAssigned: - strcat(my_fmt, "%n"); - pointer = &eaten; - break; - case cInt: - pointer = va_arg(ap, int *); - break; - case cShort: - pointer = va_arg(ap, short *); - break; - case cFloat: - pointer = va_arg(ap, float *); - break; - case cDouble: - pointer = va_arg(ap, double *); - break; - case cLong: - pointer = va_arg(ap, long *); - break; - case cPointer: - pointer = va_arg(ap, void *); - break; - case cChar: - case cRange: - case cString: - pointer = va_arg(ap, char *); - break; - case cError: - case cUnknown: - break; - } - /* do the conversion */ - T(("...converting chunk #%d type %d(%s,%s)", - assigned + 1, chunk, - _nc_visbuf2(1, str + consumed), - _nc_visbuf2(2, my_fmt))); - if (sscanf(str + consumed, my_fmt, pointer, &eaten) > 0) - consumed += eaten; - else - break; - ++assigned; - } - free(my_fmt); - } - } - returnCode(assigned); -#endif -} -#else -extern -NCURSES_EXPORT(void) -_nc_vsscanf(void); /* quiet's gcc warning */ -NCURSES_EXPORT(void) -_nc_vsscanf(void) -{ -} /* nonempty for strict ANSI compilers */ -#endif /* !HAVE_VSSCANF */ diff --git a/Build/source/libs/ncurses/ncurses/base/wresize.c b/Build/source/libs/ncurses/ncurses/base/wresize.c deleted file mode 100644 index a61742a57c6..00000000000 --- a/Build/source/libs/ncurses/ncurses/base/wresize.c +++ /dev/null @@ -1,239 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1996-2002 * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: wresize.c,v 1.23 2002/09/28 15:15:51 tom Exp $") - -static int -cleanup_lines(struct ldat *data, int length) -{ - while (--length >= 0) - free(data->text); - free(data); - return ERR; -} - -/* - * If we have reallocated the ldat structs, we will have to repair pointers - * used in subwindows. - */ -static void -repair_subwindows(WINDOW *cmp) -{ - WINDOWLIST *wp; - struct ldat *pline = cmp->_line; - int row; - - for (wp = _nc_windows; wp != 0; wp = wp->next) { - WINDOW *tst = &(wp->win); - - if (tst->_parent == cmp) { - - if (tst->_pary > cmp->_maxy) - tst->_pary = cmp->_maxy; - if (tst->_parx > cmp->_maxx) - tst->_parx = cmp->_maxx; - - if (tst->_maxy + tst->_pary > cmp->_maxy) - tst->_maxy = cmp->_maxy - tst->_pary; - if (tst->_maxx + tst->_parx > cmp->_maxx) - tst->_maxx = cmp->_maxx - tst->_parx; - - for (row = 0; row <= tst->_maxy; ++row) { - tst->_line[row].text = &pline[tst->_pary + row].text[tst->_parx]; - } - repair_subwindows(tst); - } - } -} - -/* - * Reallocate a curses WINDOW struct to either shrink or grow to the specified - * new lines/columns. If it grows, the new character cells are filled with - * blanks. The application is responsible for repainting the blank area. - */ -NCURSES_EXPORT(int) -wresize(WINDOW *win, int ToLines, int ToCols) -{ - int col, row, size_x, size_y; - struct ldat *pline; - struct ldat *new_lines = 0; - -#ifdef TRACE - T((T_CALLED("wresize(%p,%d,%d)"), win, ToLines, ToCols)); - if (win) { - TR(TRACE_UPDATE, ("...beg (%d, %d), max(%d,%d), reg(%d,%d)", - win->_begy, win->_begx, - win->_maxy, win->_maxx, - win->_regtop, win->_regbottom)); - if (_nc_tracing & TRACE_UPDATE) - _tracedump("...before", win); - } -#endif - - if (!win || --ToLines < 0 || --ToCols < 0) - returnCode(ERR); - - size_x = win->_maxx; - size_y = win->_maxy; - - if (ToLines == size_y - && ToCols == size_x) - returnCode(OK); - - if ((win->_flags & _SUBWIN)) { - /* - * Check if the new limits will fit into the parent window's size. If - * not, do not resize. We could adjust the location of the subwindow, - * but the application may not like that. - */ - if (win->_pary + ToLines > win->_parent->_maxy - || win->_parx + ToCols > win->_parent->_maxx) { - returnCode(ERR); - } - pline = win->_parent->_line; - } else { - pline = 0; - } - - /* - * Allocate new memory as needed. Do the allocations without modifying - * the original window, in case an allocation fails. Always allocate - * (at least temporarily) the array pointing to the individual lines. - */ - new_lines = typeCalloc(struct ldat, (unsigned) (ToLines + 1)); - if (new_lines == 0) - returnCode(ERR); - - /* - * For each line in the target, allocate or adjust pointers for the - * corresponding text, depending on whether this is a window or a - * subwindow. - */ - for (row = 0; row <= ToLines; ++row) { - int begin = (row > size_y) ? 0 : (size_x + 1); - int end = ToCols; - NCURSES_CH_T *s; - - if (!(win->_flags & _SUBWIN)) { - if (row <= size_y) { - if (ToCols != size_x) { - if ((s = typeMalloc(NCURSES_CH_T, ToCols + 1)) == 0) - returnCode(cleanup_lines(new_lines, row)); - for (col = 0; col <= ToCols; ++col) { - s[col] = (col <= size_x - ? win->_line[row].text[col] - : win->_nc_bkgd); - } - } else { - s = win->_line[row].text; - } - } else { - if ((s = typeMalloc(NCURSES_CH_T, ToCols + 1)) == 0) - returnCode(cleanup_lines(new_lines, row)); - for (col = 0; col <= ToCols; ++col) - s[col] = win->_nc_bkgd; - } - } else { - s = &pline[win->_pary + row].text[win->_parx]; - } - - if_USE_SCROLL_HINTS(new_lines[row].oldindex = row); - if (row <= size_y) { - new_lines[row].firstchar = win->_line[row].firstchar; - new_lines[row].lastchar = win->_line[row].lastchar; - } - if ((ToCols != size_x) || (row > size_y)) { - if (end >= begin) { /* growing */ - if (new_lines[row].firstchar < begin) - new_lines[row].firstchar = begin; - } else { /* shrinking */ - new_lines[row].firstchar = 0; - } - new_lines[row].lastchar = ToCols; - } - new_lines[row].text = s; - } - - /* - * Dispose of unwanted memory. - */ - if (!(win->_flags & _SUBWIN)) { - if (ToCols == size_x) { - for (row = ToLines + 1; row <= size_y; row++) { - free(win->_line[row].text); - } - } else { - for (row = 0; row <= size_y; row++) { - free(win->_line[row].text); - } - } - } - - free(win->_line); - win->_line = new_lines; - - /* - * Finally, adjust the parameters showing screen size and cursor - * position: - */ - win->_maxx = ToCols; - win->_maxy = ToLines; - - if (win->_regtop > win->_maxy) - win->_regtop = win->_maxy; - if (win->_regbottom > win->_maxy - || win->_regbottom == size_y) - win->_regbottom = win->_maxy; - - if (win->_curx > win->_maxx) - win->_curx = win->_maxx; - if (win->_cury > win->_maxy) - win->_cury = win->_maxy; - - /* - * Check for subwindows of this one, and readjust pointers to our text, - * if needed. - */ - repair_subwindows(win); - -#ifdef TRACE - TR(TRACE_UPDATE, ("...beg (%d, %d), max(%d,%d), reg(%d,%d)", - win->_begy, win->_begx, - win->_maxy, win->_maxx, - win->_regtop, win->_regbottom)); - if (_nc_tracing & TRACE_UPDATE) - _tracedump("...after:", win); -#endif - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/curses.priv.h b/Build/source/libs/ncurses/ncurses/curses.priv.h deleted file mode 100644 index a34f679401c..00000000000 --- a/Build/source/libs/ncurses/ncurses/curses.priv.h +++ /dev/null @@ -1,1131 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - - -/* - * $Id: curses.priv.h,v 1.260 2004/10/16 15:19:14 tom Exp $ - * - * curses.priv.h - * - * Header file for curses library objects which are private to - * the library. - * - */ - -#ifndef CURSES_PRIV_H -#define CURSES_PRIV_H 1 - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#include - -#if USE_RCS_IDS -#define MODULE_ID(id) static const char Ident[] = id; -#else -#define MODULE_ID(id) /*nothing*/ -#endif - -#include -#include -#include - -#if HAVE_UNISTD_H -#include -#endif - -#if HAVE_SYS_BSDTYPES_H -#include /* needed for ISC */ -#endif - -#if HAVE_LIMITS_H -# include -#elif HAVE_SYS_PARAM_H -# include -#endif - -#include -#include - -#include - -#ifndef PATH_MAX -# if defined(_POSIX_PATH_MAX) -# define PATH_MAX _POSIX_PATH_MAX -# elif defined(MAXPATHLEN) -# define PATH_MAX MAXPATHLEN -# else -# define PATH_MAX 255 /* the Posix minimum path-size */ -# endif -#endif - -#if DECL_ERRNO -extern int errno; -#endif - -#include - -/* Some systems have a broken 'select()', but workable 'poll()'. Use that */ -#if HAVE_WORKING_POLL -#define USE_FUNC_POLL 1 -#if HAVE_POLL_H -#include -#else -#include -#endif -#else -#define USE_FUNC_POLL 0 -#endif - -/* include signal.h before curses.h to work-around defect in glibc 2.1.3 */ -#include - -/* Alessandro Rubini's GPM (general-purpose mouse) */ -#if HAVE_LIBGPM && HAVE_GPM_H -#define USE_GPM_SUPPORT 1 -#else -#define USE_GPM_SUPPORT 0 -#endif - -/* QNX mouse support */ -#if defined(__QNX__) && !defined(__QNXNTO__) -#define USE_QNX_MOUSE 1 -#else -#define USE_QNX_MOUSE 0 -#endif - -/* EMX mouse support */ -#ifdef __EMX__ -#define USE_EMX_MOUSE 1 -#else -#define USE_EMX_MOUSE 0 -#endif - -#define DEFAULT_MAXCLICK 166 -#define EV_MAX 8 /* size of mouse circular event queue */ - -/* - * If we don't have signals to support it, don't add a sigwinch handler. - * In any case, resizing is an extended feature. Use it if we've got it. - */ -#if !NCURSES_EXT_FUNCS -#undef HAVE_SIZECHANGE -#define HAVE_SIZECHANGE 0 -#endif - -#if HAVE_SIZECHANGE && defined(SIGWINCH) -#define USE_SIZECHANGE 1 -#else -#define USE_SIZECHANGE 0 -#undef USE_SIGWINCH -#define USE_SIGWINCH 0 -#endif - -/* - * If desired, one can configure this, disabling environment variables that - * point to custom terminfo/termcap locations. - */ -#ifdef USE_ROOT_ENVIRON -#define use_terminfo_vars() 1 -#else -#define use_terminfo_vars() _nc_env_access() -extern NCURSES_EXPORT(int) _nc_env_access (void); -#endif - -/* - * Not all platforms have memmove; some have an equivalent bcopy. (Some may - * have neither). - */ -#if USE_OK_BCOPY -#define memmove(d,s,n) bcopy(s,d,n) -#elif USE_MY_MEMMOVE -#define memmove(d,s,n) _nc_memmove(d,s,n) -extern NCURSES_EXPORT(void *) _nc_memmove (void *, const void *, size_t); -#endif - -/* - * Scroll hints are useless when hashmap is used - */ -#if !USE_SCROLL_HINTS -#if !USE_HASHMAP -#define USE_SCROLL_HINTS 1 -#else -#define USE_SCROLL_HINTS 0 -#endif -#endif - -#if USE_SCROLL_HINTS -#define if_USE_SCROLL_HINTS(stmt) stmt -#else -#define if_USE_SCROLL_HINTS(stmt) /*nothing*/ -#endif - -/* - * Note: ht/cbt expansion flakes out randomly under Linux 1.1.47, but only - * when we're throwing control codes at the screen at high volume. To see - * this, re-enable USE_HARD_TABS and run worm for a while. Other systems - * probably don't want to define this either due to uncertainties about tab - * delays and expansion in raw mode. - */ - -struct tries { - struct tries *child; /* ptr to child. NULL if none */ - struct tries *sibling; /* ptr to sibling. NULL if none */ - unsigned char ch; /* character at this node */ - unsigned short value; /* code of string so far. 0 if none. */ -}; - -/* - * Definitions for color pairs - */ -#define C_SHIFT 8 /* we need more bits than there are colors */ -#define C_MASK ((1 << C_SHIFT) - 1) - -#define PAIR_OF(fg, bg) ((((fg) & C_MASK) << C_SHIFT) | ((bg) & C_MASK)) - -/* - * Common/troublesome character definitions - */ -#define L_BRACE '{' -#define R_BRACE '}' -#define S_QUOTE '\'' -#define D_QUOTE '"' - -#define VT_ACSC "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~" - -/* - * Structure for palette tables - */ - -typedef struct -{ - short red, green, blue; /* what color_content() returns */ - short r, g, b; /* params to init_color() */ - int init; /* true if we called init_color() */ -} -color_t; - -#define MAXCOLUMNS 135 -#define MAXLINES 66 -#define FIFO_SIZE MAXCOLUMNS+2 /* for nocbreak mode input */ - -#define ACS_LEN 128 - -#define WINDOWLIST struct _win_list - -#if USE_WIDEC_SUPPORT -#define _nc_bkgd _bkgrnd -#else -#undef _XOPEN_SOURCE_EXTENDED -#define _nc_bkgd _bkgd -#define wgetbkgrnd(win, wch) *wch = win->_bkgd -#define wbkgrnd wbkgd -#endif - -#include /* we'll use -Ipath directive to get the right one! */ -#include - -struct ldat -{ - NCURSES_CH_T *text; /* text of the line */ - NCURSES_SIZE_T firstchar; /* first changed character in the line */ - NCURSES_SIZE_T lastchar; /* last changed character in the line */ - NCURSES_SIZE_T oldindex; /* index of the line at last update */ -}; - -typedef enum { - M_XTERM = -1 /* use xterm's mouse tracking? */ - ,M_NONE = 0 /* no mouse device */ -#if USE_GPM_SUPPORT - ,M_GPM /* use GPM */ -#endif -#if USE_SYSMOUSE - ,M_SYSMOUSE /* FreeBSD sysmouse on console */ -#endif -} MouseType; - -/* - * Structure for soft labels. - */ - -typedef struct -{ - char *ent_text; /* text for the label */ - char *form_text; /* formatted text (left/center/...) */ - int ent_x; /* x coordinate of this field */ - char dirty; /* this label has changed */ - char visible; /* field is visible */ -} slk_ent; - -typedef struct { - char dirty; /* all labels have changed */ - char hidden; /* soft labels are hidden */ - WINDOW *win; - slk_ent *ent; - short maxlab; /* number of available labels */ - short labcnt; /* number of allocated labels */ - short maxlen; /* length of labels */ - chtype attr; /* soft label attribute */ -} SLK; - -typedef struct { - unsigned long hashval; - int oldcount, newcount; - int oldindex, newindex; -} HASHMAP; - -typedef struct { - int line; /* lines to take, < 0 => from bottom*/ - int (*hook)(WINDOW *, int); /* callback for user */ - WINDOW *w; /* maybe we need this for cleanup */ -} ripoff_t; - -struct screen { - int _ifd; /* input file ptr for screen */ - FILE *_ofp; /* output file ptr for screen */ - char *_setbuf; /* buffered I/O for output */ - int _buffered; /* setvbuf uses _setbuf data */ - int _checkfd; /* filedesc for typeahead check */ - TERMINAL *_term; /* terminal type information */ - short _lines; /* screen lines */ - short _columns; /* screen columns */ - - short _lines_avail; /* lines available for stdscr */ - short _topstolen; /* lines stolen from top */ - ripoff_t _rippedoff[5]; /* list of lines stolen */ - int _rip_count; /* ...and total lines stolen */ - - WINDOW *_curscr; /* current screen */ - WINDOW *_newscr; /* virtual screen to be updated to */ - WINDOW *_stdscr; /* screen's full-window context */ - - struct tries *_keytry; /* "Try" for use with keypad mode */ - struct tries *_key_ok; /* Disabled keys via keyok(,FALSE) */ - bool _tried; /* keypad mode was initialized */ - bool _keypad_on; /* keypad mode is currently on */ - - bool _called_wgetch; /* check for recursion in wgetch() */ - int _fifo[FIFO_SIZE]; /* input push-back buffer */ - short _fifohead, /* head of fifo queue */ - _fifotail, /* tail of fifo queue */ - _fifopeek, /* where to peek for next char */ - _fifohold; /* set if breakout marked */ - - int _endwin; /* are we out of window mode? */ - attr_t _current_attr; /* terminal attribute current set */ - int _coloron; /* is color enabled? */ - int _color_defs; /* are colors modified */ - int _cursor; /* visibility of the cursor */ - int _cursrow; /* physical cursor row */ - int _curscol; /* physical cursor column */ - bool _notty; /* true if we cannot switch non-tty */ - int _nl; /* True if NL -> CR/NL is on */ - int _raw; /* True if in raw mode */ - int _cbreak; /* 1 if in cbreak mode */ - /* > 1 if in halfdelay mode */ - int _echo; /* True if echo on */ - int _use_meta; /* use the meta key? */ - SLK *_slk; /* ptr to soft key struct / NULL */ - int slk_format; /* selected format for this screen */ - /* cursor movement costs; units are 10ths of milliseconds */ -#if NCURSES_NO_PADDING - int _no_padding; /* flag to set if padding disabled */ -#endif - int _char_padding; /* cost of character put */ - int _cr_cost; /* cost of (carriage_return) */ - int _cup_cost; /* cost of (cursor_address) */ - int _home_cost; /* cost of (cursor_home) */ - int _ll_cost; /* cost of (cursor_to_ll) */ -#if USE_HARD_TABS - int _ht_cost; /* cost of (tab) */ - int _cbt_cost; /* cost of (backtab) */ -#endif /* USE_HARD_TABS */ - int _cub1_cost; /* cost of (cursor_left) */ - int _cuf1_cost; /* cost of (cursor_right) */ - int _cud1_cost; /* cost of (cursor_down) */ - int _cuu1_cost; /* cost of (cursor_up) */ - int _cub_cost; /* cost of (parm_cursor_left) */ - int _cuf_cost; /* cost of (parm_cursor_right) */ - int _cud_cost; /* cost of (parm_cursor_down) */ - int _cuu_cost; /* cost of (parm_cursor_up) */ - int _hpa_cost; /* cost of (column_address) */ - int _vpa_cost; /* cost of (row_address) */ - /* used in tty_update.c, must be chars */ - int _ed_cost; /* cost of (clr_eos) */ - int _el_cost; /* cost of (clr_eol) */ - int _el1_cost; /* cost of (clr_bol) */ - int _dch1_cost; /* cost of (delete_character) */ - int _ich1_cost; /* cost of (insert_character) */ - int _dch_cost; /* cost of (parm_dch) */ - int _ich_cost; /* cost of (parm_ich) */ - int _ech_cost; /* cost of (erase_chars) */ - int _rep_cost; /* cost of (repeat_char) */ - int _hpa_ch_cost; /* cost of (column_address) */ - int _cup_ch_cost; /* cost of (cursor_address) */ - int _cuf_ch_cost; /* cost of (parm_cursor_right) */ - int _inline_cost; /* cost of inline-move */ - int _smir_cost; /* cost of (enter_insert_mode) */ - int _rmir_cost; /* cost of (exit_insert_mode) */ - int _ip_cost; /* cost of (insert_padding) */ - /* used in lib_mvcur.c */ - char * _address_cursor; - /* used in tty_update.c */ - int _scrolling; /* 1 if terminal's smart enough to */ - - /* used in lib_color.c */ - color_t *_color_table; /* screen's color palette */ - int _color_count; /* count of colors in palette */ - unsigned short *_color_pairs; /* screen's color pair list */ - int _pair_count; /* count of color pairs */ -#if NCURSES_EXT_FUNCS - bool _default_color; /* use default colors */ - bool _has_sgr_39_49; /* has ECMA default color support */ - int _default_fg; /* assumed default foreground */ - int _default_bg; /* assumed default background */ -#endif - chtype _xmc_suppress; /* attributes to suppress if xmc */ - chtype _xmc_triggers; /* attributes to process if xmc */ - chtype _acs_map[ACS_LEN]; /* the real alternate-charset map */ - - /* used in lib_vidattr.c */ - bool _use_rmso; /* true if we may use 'rmso' */ - bool _use_rmul; /* true if we may use 'rmul' */ - - /* - * These data correspond to the state of the idcok() and idlok() - * functions. A caveat is in order here: the XSI and SVr4 - * documentation specify that these functions apply to the window which - * is given as an argument. However, ncurses implements this logic - * only for the newscr/curscr update process, _not_ per-window. - */ - bool _nc_sp_idlok; - bool _nc_sp_idcok; -#define _nc_idlok SP->_nc_sp_idlok -#define _nc_idcok SP->_nc_sp_idcok - - /* - * These are the data that support the mouse interface. - */ - MouseType _mouse_type; - int _maxclick; - bool (*_mouse_event) (SCREEN *); - bool (*_mouse_inline)(SCREEN *); - bool (*_mouse_parse) (int); - void (*_mouse_resume)(SCREEN *); - void (*_mouse_wrap) (SCREEN *); - int _mouse_fd; /* file-descriptor, if any */ - NCURSES_CONST char *_mouse_xtermcap; /* string to enable/disable mouse */ -#if USE_SYSMOUSE - MEVENT _sysmouse_fifo[FIFO_SIZE]; - int _sysmouse_head; - int _sysmouse_tail; - int _sysmouse_char_width; /* character width */ - int _sysmouse_char_height; /* character height */ - int _sysmouse_old_buttons; - int _sysmouse_new_buttons; -#endif - - /* - * This supports automatic resizing - */ -#if USE_SIZECHANGE - int (*_resize)(int,int); -#endif - - /* - * These are data that support the proper handling of the panel stack on an - * per screen basis. - */ - struct panelhook _panelHook; - /* - * Linked-list of all windows, to support '_nc_resizeall()' and - * '_nc_freeall()' - */ - WINDOWLIST *_nc_sp_windows; -#define _nc_windows SP->_nc_sp_windows - - bool _sig_winch; - SCREEN *_next_screen; - - /* hashes for old and new lines */ - unsigned long *oldhash, *newhash; - HASHMAP *hashtab; - int hashtab_len; - - bool _cleanup; /* cleanup after int/quit signal */ - int (*_outch)(int); /* output handler if not putc */ - - /* recent versions of 'screen' have partially-working support for - * UTF-8, but do not permit ACS at the same time (see tty_update.c). - */ -#if USE_WIDEC_SUPPORT - bool _legacy_coding; - bool _screen_acs_fix; -#endif - bool _screen_acs_map[ACS_LEN]; -}; - -extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain; - -#if NCURSES_NOMACROS -#include -#endif - - WINDOWLIST { - WINDOW win; /* first, so WINDOW_EXT() works */ - WINDOWLIST *next; -#ifdef _XOPEN_SOURCE_EXTENDED - char addch_work[(MB_LEN_MAX * 9) + 1]; - int addch_used; - int addch_x; - int addch_y; -#endif -}; - -#define WINDOW_EXT(win,field) (((WINDOWLIST *)(win))->field) - -/* usually in */ -#ifndef UCHAR_MAX -#define UCHAR_MAX 255 -#endif - -/* The terminfo source is assumed to be 7-bit ASCII */ -#define is7bits(c) ((unsigned)(c) < 128) - -/* Checks for isprint() should be done on 8-bit characters (non-wide) */ -#define is8bits(c) ((unsigned)(c) <= UCHAR_MAX) - -#ifndef min -#define min(a,b) ((a) > (b) ? (b) : (a)) -#endif - -#ifndef max -#define max(a,b) ((a) < (b) ? (b) : (a)) -#endif - -/* usually in */ -#ifndef STDIN_FILENO -#define STDIN_FILENO 0 -#endif - -#ifndef STDOUT_FILENO -#define STDOUT_FILENO 1 -#endif - -#ifndef STDERR_FILENO -#define STDERR_FILENO 2 -#endif - -#ifndef EXIT_SUCCESS -#define EXIT_SUCCESS 0 -#endif - -#ifndef EXIT_FAILURE -#define EXIT_FAILURE 1 -#endif - -#ifndef R_OK -#define R_OK 4 /* Test for read permission. */ -#endif -#ifndef W_OK -#define W_OK 2 /* Test for write permission. */ -#endif -#ifndef X_OK -#define X_OK 1 /* Test for execute permission. */ -#endif -#ifndef F_OK -#define F_OK 0 /* Test for existence. */ -#endif - -#if HAVE_FCNTL_H -#include /* may define O_BINARY */ -#endif - -#ifndef O_BINARY -#define O_BINARY 0 -#endif - -#ifdef TRACE -#define TRACE_OUTCHARS(n) _nc_outchars += (n); -#else -#define TRACE_OUTCHARS(n) /* nothing */ -#endif - -#define UChar(c) ((unsigned char)(c)) -#define ChCharOf(c) ((c) & (chtype)A_CHARTEXT) -#define ChAttrOf(c) ((c) & (chtype)A_ATTRIBUTES) - -#ifndef MB_LEN_MAX -#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */ -#endif - -#if USE_WIDEC_SUPPORT /* { */ -#define NulChar 0,0,0,0 /* FIXME: see CCHARW_MAX */ -#define CharOf(c) ((c).chars[0]) -#define AttrOf(c) ((c).attr) -#define AddAttr(c,a) (c).attr |= a -#define RemAttr(c,a) (c).attr &= ~(a) -#define SetAttr(c,a) (c).attr = a -#define NewChar(ch) { ChAttrOf(ch), { ChCharOf(ch), NulChar } } -#define NewChar2(c,a) { a, { c, NulChar } } -#define CharEq(a,b) (!memcmp(&a, &b, sizeof(a))) -#define SetChar(ch,c,a) do { \ - NCURSES_CH_T *_cp = &ch; \ - memset(_cp,0,sizeof(ch)); _cp->chars[0] = c; _cp->attr = a; \ - } while (0) -#define CHREF(wch) (&wch) -#define CHDEREF(wch) (*wch) -#define ARG_CH_T NCURSES_CH_T * -#define CARG_CH_T const NCURSES_CH_T * -#define PUTC_DATA char PUTC_buf[MB_LEN_MAX]; int PUTC_i, PUTC_n; \ - mbstate_t PUT_st; wchar_t PUTC_ch -#define PUTC_INIT memset (&PUT_st, '\0', sizeof (PUT_st)); \ - PUTC_i = 0 -#define PUTC(ch,b) do { if(!isnac(ch)) { \ - if (Charable(ch)) { \ - fputc(CharOf(ch), b); \ - TRACE_OUTCHARS(1); \ - } else { \ - PUTC_INIT; \ - do { \ - PUTC_ch = PUTC_i < CCHARW_MAX ? \ - (ch).chars[PUTC_i] : L'\0'; \ - PUTC_n = wcrtomb(PUTC_buf, \ - (ch).chars[PUTC_i], &PUT_st); \ - if (PUTC_ch == L'\0') \ - --PUTC_n; \ - if (PUTC_n <= 0) \ - break; \ - fwrite(PUTC_buf, (unsigned) PUTC_n, 1, b); \ - ++PUTC_i; \ - } while (PUTC_ch != L'\0'); \ - TRACE_OUTCHARS(PUTC_i); \ - } } } while (0) - -#define BLANK { WA_NORMAL, {' '} } -#define ISBLANK(ch) ((ch).chars[0] == L' ' && (ch).chars[1] == L'\0') - -#define WA_NAC 1 -#define isnac(ch) (AttrOf(ch) & WA_NAC) -#define if_WIDEC(code) code -#define Charable(ch) ((SP != 0 && SP->_legacy_coding) \ - || (AttrOf(ch) & A_ALTCHARSET) \ - || (!isnac(ch) && \ - (ch).chars[1] == L'\0' && \ - _nc_is_charable(CharOf(ch)))) - -#define L(ch) L ## ch -#else /* }{ */ -#define CharOf(c) ChCharOf(c) -#define AttrOf(c) ChAttrOf(c) -#define AddAttr(c,a) c |= a -#define RemAttr(c,a) c &= ~(a & A_ATTRIBUTES) -#define SetAttr(c,a) c = (c & ~A_ATTRIBUTES) | a -#define NewChar(ch) (ch) -#define NewChar2(c,a) (c | a) -#define CharEq(a,b) (a == b) -#define SetChar(ch,c,a) ch = c | a -#define CHREF(wch) wch -#define CHDEREF(wch) wch -#define ARG_CH_T NCURSES_CH_T -#define CARG_CH_T NCURSES_CH_T -#define PUTC_DATA int data = 0 -#define PUTC(a,b) do { data = CharOf(ch); putc(data,b); } while (0) - -#define BLANK (' '|A_NORMAL) -#define ISBLANK(ch) (CharOf(ch) == ' ') - -#define isnac(ch) (0) -#define if_WIDEC(code) /* nothing */ - -#define L(ch) ch -#endif /* } */ - -#define AttrOfD(ch) AttrOf(CHDEREF(ch)) -#define CharOfD(ch) CharOf(CHDEREF(ch)) -#define SetChar2(wch,ch) SetChar(wch,ChCharOf(ch),ChAttrOf(ch)) - -#define BLANK_ATTR A_NORMAL -#define BLANK_TEXT L(' ') - -#define CHANGED -1 - -#define CHANGED_CELL(line,col) \ - if (line->firstchar == _NOCHANGE) \ - line->firstchar = line->lastchar = col; \ - else if ((col) < line->firstchar) \ - line->firstchar = col; \ - else if ((col) > line->lastchar) \ - line->lastchar = col - -#define CHANGED_RANGE(line,start,end) \ - if (line->firstchar == _NOCHANGE \ - || line->firstchar > (start)) \ - line->firstchar = start; \ - if (line->lastchar == _NOCHANGE \ - || line->lastchar < (end)) \ - line->lastchar = end - -#define CHANGED_TO_EOL(line,start,end) \ - if (line->firstchar == _NOCHANGE \ - || line->firstchar > (start)) \ - line->firstchar = start; \ - line->lastchar = end - -#define SIZEOF(v) (sizeof(v)/sizeof(v[0])) - -#define FreeIfNeeded(p) if ((p) != 0) free(p) - -/* FreeAndNull() is not a comma-separated expression because some compilers - * do not accept a mixture of void with values. - */ -#define FreeAndNull(p) free(p); p = 0 - -#include - -/* - * Prefixes for call/return points of library function traces. We use these to - * instrument the public functions so that the traces can be easily transformed - * into regression scripts. - */ -#define T_CALLED(fmt) "called {" fmt -#define T_CREATE(fmt) "create :" fmt -#define T_RETURN(fmt) "return }" fmt - -#ifdef TRACE - -#define START_TRACE() \ - if ((_nc_tracing & TRACE_MAXIMUM) == 0) { \ - int t = _nc_getenv_num("NCURSES_TRACE"); \ - if (t >= 0) \ - trace((unsigned) t); \ - } - -#define TR(n, a) if (_nc_tracing & (n)) _tracef a -#define T(a) TR(TRACE_CALLS, a) -#define TPUTS_TRACE(s) _nc_tputs_trace = s; -#define TRACE_RETURN(value,type) return _nc_retrace_##type(value) - -#define returnAttr(code) TRACE_RETURN(code,attr_t) -#define returnChar(code) TRACE_RETURN(code,chtype) -#define returnBool(code) TRACE_RETURN(code,bool) -#define returnBits(code) TRACE_RETURN(code,unsigned) -#define returnCode(code) TRACE_RETURN(code,int) -#define returnPtr(code) TRACE_RETURN(code,ptr) -#define returnSP(code) TRACE_RETURN(code,sp) -#define returnVoid T((T_RETURN(""))); return -#define returnWin(code) TRACE_RETURN(code,win) - -extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (NCURSES_BOOL); -extern NCURSES_EXPORT(SCREEN *) _nc_retrace_sp (SCREEN *); -extern NCURSES_EXPORT(WINDOW *) _nc_retrace_win (WINDOW *); -extern NCURSES_EXPORT(attr_t) _nc_retrace_attr_t (attr_t); -extern NCURSES_EXPORT(char *) _nc_retrace_ptr (char *); -extern NCURSES_EXPORT(char *) _nc_trace_ttymode(TTY *tty); -extern NCURSES_EXPORT(char *) _nc_varargs (const char *, va_list); -extern NCURSES_EXPORT(chtype) _nc_retrace_chtype (chtype); -extern NCURSES_EXPORT(const char *) _nc_altcharset_name(attr_t, chtype); -extern NCURSES_EXPORT(int) _nc_retrace_int (int); -extern NCURSES_EXPORT(unsigned) _nc_retrace_unsigned (unsigned); -extern NCURSES_EXPORT(void) _nc_fifo_dump (void); -extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace; -extern NCURSES_EXPORT_VAR(long) _nc_outchars; -extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing; - -#if USE_WIDEC_SUPPORT -extern NCURSES_EXPORT(const char *) _nc_viswbuf2 (int, const wchar_t *); -extern NCURSES_EXPORT(const char *) _nc_viswbufn (const wchar_t *, int); -extern NCURSES_EXPORT(const char *) _nc_viscbuf2 (int, const cchar_t *, int); -extern NCURSES_EXPORT(const char *) _nc_viscbuf (const cchar_t *, int); -#endif - -#else /* !TRACE */ - -#define START_TRACE() /* nothing */ - -#define T(a) -#define TR(n, a) -#define TPUTS_TRACE(s) - -#define returnAttr(code) return code -#define returnBits(code) return code -#define returnBool(code) return code -#define returnChar(code) return code -#define returnCode(code) return code -#define returnPtr(code) return code -#define returnSP(code) return code -#define returnVoid return -#define returnWin(code) return code - -#endif /* TRACE/!TRACE */ - -extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *); -extern NCURSES_EXPORT(const char *) _nc_visbufn (const char *, int); - -#define empty_module(name) \ -extern NCURSES_EXPORT(void) name (void); \ - NCURSES_EXPORT(void) name (void) { } - -#define ALL_BUT_COLOR ((chtype)~(A_COLOR)) -#define IGNORE_COLOR_OFF FALSE -#define NONBLANK_ATTR (A_NORMAL|A_BOLD|A_DIM|A_BLINK) -#define XMC_CHANGES(c) ((c) & SP->_xmc_suppress) - -#define toggle_attr_on(S,at) {\ - if (PAIR_NUMBER(at) > 0)\ - (S) = ((S) & ALL_BUT_COLOR) | (at);\ - else\ - (S) |= (at);\ - TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));} - - -#define toggle_attr_off(S,at) {\ - if (IGNORE_COLOR_OFF == TRUE) {\ - if (PAIR_NUMBER(at) == 0xff) /* turn off color */\ - (S) &= ~(at);\ - else /* leave color alone */\ - (S) &= ~((at)&ALL_BUT_COLOR);\ - } else {\ - if (PAIR_NUMBER(at) > 0x00) /* turn off color */\ - (S) &= ~(at|A_COLOR);\ - else /* leave color alone */\ - (S) &= ~(at);\ - }\ - TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));} - -#define DelCharCost(count) \ - ((parm_dch != 0) \ - ? SP->_dch_cost \ - : ((delete_character != 0) \ - ? (SP->_dch1_cost * count) \ - : INFINITY)) - -#define InsCharCost(count) \ - ((parm_ich != 0) \ - ? SP->_ich_cost \ - : ((enter_insert_mode && exit_insert_mode) \ - ? SP->_smir_cost + SP->_rmir_cost + (SP->_ip_cost * count) \ - : ((insert_character != 0) \ - ? ((SP->_ich1_cost + SP->_ip_cost) * count) \ - : INFINITY))) - -#if USE_XMC_SUPPORT -#define UpdateAttrs(a) if (SP->_current_attr != (a)) { \ - attr_t chg = SP->_current_attr; \ - vidattr((a)); \ - if (magic_cookie_glitch > 0 \ - && XMC_CHANGES((chg ^ SP->_current_attr))) { \ - T(("%s @%d before glitch %d,%d", \ - __FILE__, __LINE__, \ - SP->_cursrow, \ - SP->_curscol)); \ - _nc_do_xmc_glitch(chg); \ - } \ - } -#else -#define UpdateAttrs(a) if (SP->_current_attr != (a)) \ - vidattr((a)); -#endif - -/* - * Macros to make additional parameter to implement wgetch_events() - */ -#ifdef NCURSES_WGETCH_EVENTS -#define EVENTLIST_0th(param) param -#define EVENTLIST_1st(param) param -#define EVENTLIST_2nd(param) , param -#else -#define EVENTLIST_0th(param) void -#define EVENTLIST_1st(param) /* nothing */ -#define EVENTLIST_2nd(param) /* nothing */ -#endif - -#if NCURSES_EXPANDED && NCURSES_EXT_FUNCS - -#undef toggle_attr_on -#define toggle_attr_on(S,at) _nc_toggle_attr_on(&(S), at) -extern NCURSES_EXPORT(void) _nc_toggle_attr_on (attr_t *, attr_t); - -#undef toggle_attr_off -#define toggle_attr_off(S,at) _nc_toggle_attr_off(&(S), at) -extern NCURSES_EXPORT(void) _nc_toggle_attr_off (attr_t *, attr_t); - -#undef DelCharCost -#define DelCharCost(count) _nc_DelCharCost(count) -extern NCURSES_EXPORT(int) _nc_DelCharCost (int); - -#undef InsCharCost -#define InsCharCost(count) _nc_InsCharCost(count) -extern NCURSES_EXPORT(int) _nc_InsCharCost (int); - -#undef UpdateAttrs -#define UpdateAttrs(c) _nc_UpdateAttrs(c) -extern NCURSES_EXPORT(void) _nc_UpdateAttrs (chtype); - -#else - -extern NCURSES_EXPORT(void) _nc_expanded (void); - -#endif - -#if !HAVE_GETCWD -#define getcwd(buf,len) getwd(buf) -#endif - -/* charable.c */ -#if USE_WIDEC_SUPPORT -extern NCURSES_EXPORT(bool) _nc_is_charable(wchar_t); -extern NCURSES_EXPORT(int) _nc_to_char(wint_t); -extern NCURSES_EXPORT(wint_t) _nc_to_widechar(int); -#endif - -/* doupdate.c */ -#if USE_XMC_SUPPORT -extern NCURSES_EXPORT(void) _nc_do_xmc_glitch (attr_t); -#endif - -/* hardscroll.c */ -#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG) -extern NCURSES_EXPORT(void) _nc_linedump (void); -#endif - -/* lib_acs.c */ -extern NCURSES_EXPORT(void) _nc_init_acs (void); /* corresponds to traditional 'init_acs()' */ -extern NCURSES_EXPORT(int) _nc_msec_cost (const char *const, int); /* used by 'tack' program */ - -/* lib_addstr.c */ -#if USE_WIDEC_SUPPORT -extern NCURSES_EXPORT(int) _nc_wchstrlen(const cchar_t *); -#endif - -/* lib_color.c */ -extern NCURSES_EXPORT(bool) _nc_reset_colors(void); - -/* lib_getch.c */ -extern NCURSES_EXPORT(int) _nc_wgetch(WINDOW *, unsigned long *, int EVENTLIST_2nd(_nc_eventlist *)); - -/* lib_insch.c */ -extern NCURSES_EXPORT(void) _nc_insert_ch(WINDOW *, chtype); - -/* lib_mvcur.c */ -#define INFINITY 1000000 /* cost: too high to use */ - -extern NCURSES_EXPORT(void) _nc_mvcur_init (void); -extern NCURSES_EXPORT(void) _nc_mvcur_resume (void); -extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void); - -extern NCURSES_EXPORT(int) _nc_scrolln (int, int, int, int); - -extern NCURSES_EXPORT(void) _nc_screen_init (void); -extern NCURSES_EXPORT(void) _nc_screen_resume (void); -extern NCURSES_EXPORT(void) _nc_screen_wrap (void); - -/* lib_mouse.c */ -extern NCURSES_EXPORT(int) _nc_has_mouse (void); - -/* lib_mvcur.c */ -#define INFINITY 1000000 /* cost: too high to use */ -#define BAUDBYTE 9 /* 9 = 7 bits + 1 parity + 1 stop */ - -/* lib_setup.c */ -extern NCURSES_EXPORT(char *) _nc_get_locale(void); -extern NCURSES_EXPORT(int) _nc_unicode_locale(void); -extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(void); - -/* lib_wacs.c */ -#if USE_WIDEC_SUPPORT -extern NCURSES_EXPORT(void) _nc_init_wacs(void); -#endif - -typedef struct { - char *s_head; /* beginning of the string (may be null) */ - char *s_tail; /* end of the string (may be null) */ - size_t s_size; /* current remaining size available */ - size_t s_init; /* total size available */ -} string_desc; - -/* strings.c */ -extern NCURSES_EXPORT(string_desc *) _nc_str_init (string_desc *, char *, size_t); -extern NCURSES_EXPORT(string_desc *) _nc_str_null (string_desc *, size_t); -extern NCURSES_EXPORT(string_desc *) _nc_str_copy (string_desc *, string_desc *); -extern NCURSES_EXPORT(bool) _nc_safe_strcat (string_desc *, const char *); -extern NCURSES_EXPORT(bool) _nc_safe_strcpy (string_desc *, const char *); - -extern NCURSES_EXPORT(void) _nc_mvcur_init (void); -extern NCURSES_EXPORT(void) _nc_mvcur_resume (void); -extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void); - -extern NCURSES_EXPORT(int) _nc_scrolln (int, int, int, int); - -extern NCURSES_EXPORT(void) _nc_screen_init (void); -extern NCURSES_EXPORT(void) _nc_screen_resume (void); -extern NCURSES_EXPORT(void) _nc_screen_wrap (void); - -#if !HAVE_STRSTR -#define strstr _nc_strstr -extern NCURSES_EXPORT(char *) _nc_strstr (const char *, const char *); -#endif - -/* safe_sprintf.c */ -extern NCURSES_EXPORT(char *) _nc_printf_string (const char *, va_list); - -/* tries.c */ -extern NCURSES_EXPORT(void) _nc_add_to_try (struct tries **, const char *, unsigned short); -extern NCURSES_EXPORT(char *) _nc_expand_try (struct tries *, unsigned short, int *, size_t); -extern NCURSES_EXPORT(int) _nc_remove_key (struct tries **, unsigned short); -extern NCURSES_EXPORT(int) _nc_remove_string (struct tries **, const char *); - -/* elsewhere ... */ -extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T); -extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int); -extern NCURSES_EXPORT(char *) _nc_home_terminfo (void); -extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t); -extern NCURSES_EXPORT(char *) _nc_trace_bufcat (int, const char *); -extern NCURSES_EXPORT(int) _nc_access (const char *, int); -extern NCURSES_EXPORT(int) _nc_baudrate (int); -extern NCURSES_EXPORT(int) _nc_freewin (WINDOW *); -extern NCURSES_EXPORT(int) _nc_getenv_num (const char *); -extern NCURSES_EXPORT(int) _nc_keypad (bool); -extern NCURSES_EXPORT(int) _nc_ospeed (int); -extern NCURSES_EXPORT(int) _nc_outch (int); -extern NCURSES_EXPORT(int) _nc_setupscreen (short, short const, FILE *); -extern NCURSES_EXPORT(int) _nc_timed_wait(int, int, int * EVENTLIST_2nd(_nc_eventlist *)); -extern NCURSES_EXPORT(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T); -extern NCURSES_EXPORT(void) _nc_do_color (int, int, bool, int (*)(int)); -extern NCURSES_EXPORT(void) _nc_flush (void); -extern NCURSES_EXPORT(void) _nc_freeall (void); -extern NCURSES_EXPORT(void) _nc_hash_map (void); -extern NCURSES_EXPORT(void) _nc_init_keytry (void); -extern NCURSES_EXPORT(void) _nc_keep_tic_dir (const char *); -extern NCURSES_EXPORT(void) _nc_make_oldhash (int i); -extern NCURSES_EXPORT(void) _nc_scroll_oldhash (int n, int top, int bot); -extern NCURSES_EXPORT(void) _nc_scroll_optimize (void); -extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, short const, short const, NCURSES_CH_T); -extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool); -extern NCURSES_EXPORT(void) _nc_signal_handler (bool); -extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *); -extern NCURSES_EXPORT(void) _nc_trace_tries (struct tries *); - -#if USE_SIZECHANGE -extern NCURSES_EXPORT(void) _nc_update_screensize (void); -#endif - -#if HAVE_RESIZETERM -extern NCURSES_EXPORT(void) _nc_resize_margins (WINDOW *); -#else -#define _nc_resize_margins(wp) /* nothing */ -#endif - -#ifdef NCURSES_WGETCH_EVENTS -extern NCURSES_EXPORT(int) _nc_eventlist_timeout(_nc_eventlist *); -#else -#define wgetch_events(win, evl) wgetch(win) -#define wgetnstr_events(win, str, maxlen, evl) wgetnstr(win, str, maxlen) -#endif - -/* - * Not everyone has vsscanf(), but we'd like to use it for scanw(). - */ -#if !HAVE_VSSCANF -extern int vsscanf(const char *str, const char *format, va_list __arg); -#endif - -/* scroll indices */ -extern NCURSES_EXPORT_VAR(int *) _nc_oldnums; - -#define USE_SETBUF_0 0 - -#define NC_BUFFERED(flag) _nc_set_buffer(SP->_ofp, flag) - -#define NC_OUTPUT ((SP != 0) ? SP->_ofp : stdout) - -/* - * On systems with a broken linker, define 'SP' as a function to force the - * linker to pull in the data-only module with 'SP'. - */ -#if BROKEN_LINKER -#define SP _nc_screen() -extern NCURSES_EXPORT(SCREEN *) _nc_screen (void); -extern NCURSES_EXPORT(int) _nc_alloc_screen (void); -extern NCURSES_EXPORT(void) _nc_set_screen (SCREEN *); -#else -/* current screen is private data; avoid possible linking conflicts too */ -extern NCURSES_EXPORT_VAR(SCREEN *) SP; -#define _nc_alloc_screen() ((SP = typeCalloc(SCREEN, 1)) != 0) -#define _nc_set_screen(sp) SP = sp -#endif - -/* - * We don't want to use the lines or columns capabilities internally, because - * if the application is running multiple screens under X, it's quite possible - * they could all have type xterm but have different sizes! So... - */ -#define screen_lines SP->_lines -#define screen_columns SP->_columns - -extern NCURSES_EXPORT_VAR(int) _nc_slk_format; /* != 0 if slk_init() called */ -extern NCURSES_EXPORT(int) _nc_slk_initialize (WINDOW *, int); - -/* - * Some constants related to SLK's - */ -#define MAX_SKEY_OLD 8 /* count of soft keys */ -#define MAX_SKEY_LEN_OLD 8 /* max length of soft key text */ -#define MAX_SKEY_PC 12 /* This is what most PC's have */ -#define MAX_SKEY_LEN_PC 5 - -/* Macro to check whether or not we use a standard format */ -#define SLK_STDFMT(fmt) (fmt < 3) -/* Macro to determine height of label window */ -#define SLK_LINES(fmt) (SLK_STDFMT(fmt) ? 1 : ((fmt) - 2)) - -#define MAX_SKEY(fmt) (SLK_STDFMT(fmt)? MAX_SKEY_OLD : MAX_SKEY_PC) -#define MAX_SKEY_LEN(fmt) (SLK_STDFMT(fmt)? MAX_SKEY_LEN_OLD : MAX_SKEY_LEN_PC) - -extern NCURSES_EXPORT(int) _nc_ripoffline (int line, int (*init)(WINDOW *,int)); - -/* - * Common error messages - */ -#define MSG_NO_MEMORY "Out of memory" -#define MSG_NO_INPUTS "Premature EOF" - -#ifdef __cplusplus -} -#endif - -#endif /* CURSES_PRIV_H */ diff --git a/Build/source/libs/ncurses/ncurses/fifo_defs.h b/Build/source/libs/ncurses/ncurses/fifo_defs.h deleted file mode 100644 index 67799577aea..00000000000 --- a/Build/source/libs/ncurses/ncurses/fifo_defs.h +++ /dev/null @@ -1,59 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * Common macros for lib_getch.c, lib_ungetch.c - * - * $Id: fifo_defs.h,v 1.4 2002/03/16 20:47:50 tom Exp $ - */ - -#ifndef FIFO_DEFS_H -#define FIFO_DEFS_H 1 - -#define head SP->_fifohead -#define tail SP->_fifotail -/* peek points to next uninterpreted character */ -#define peek SP->_fifopeek - -#define h_inc() { head == FIFO_SIZE-1 ? head = 0 : head++; if (head == tail) head = -1, tail = 0;} -#define h_dec() { head == 0 ? head = FIFO_SIZE-1 : head--; if (head == tail) tail = -1;} -#define t_inc() { tail == FIFO_SIZE-1 ? tail = 0 : tail++; if (tail == head) tail = -1;} -#define t_dec() { tail == 0 ? tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear();} -#define p_inc() { peek == FIFO_SIZE-1 ? peek = 0 : peek++;} - -#define cooked_key_in_fifo() ((head != -1) && (peek != head)) -#define raw_key_in_fifo() ((head != -1) && (peek != tail)) - -#undef HIDE_EINTR - -#endif /* FIFO_DEFS_H */ diff --git a/Build/source/libs/ncurses/ncurses/llib-lncurses b/Build/source/libs/ncurses/ncurses/llib-lncurses deleted file mode 100644 index 9ebdc234f42..00000000000 --- a/Build/source/libs/ncurses/ncurses/llib-lncurses +++ /dev/null @@ -1,3080 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1996-2003,2004 * - ****************************************************************************/ -/* LINTLIBRARY */ - -/* ./tty/hardscroll.c */ - -#include - -#undef _nc_oldnums -int *_nc_oldnums; - -#undef _nc_scroll_optimize -void _nc_scroll_optimize(void) - { /* void */ } - -#undef _nc_linedump -void _nc_linedump(void) - { /* void */ } - -/* ./tty/hashmap.c */ - -#include - -#undef _nc_hash_map -void _nc_hash_map(void) - { /* void */ } - -#undef _nc_make_oldhash -void _nc_make_oldhash( - int i) - { /* void */ } - -#undef _nc_scroll_oldhash -void _nc_scroll_oldhash( - int n, - int top, - int bot) - { /* void */ } - -/* ./base/lib_addch.c */ - -#include - -#undef _nc_render -chtype _nc_render( - WINDOW *win, - chtype ch) - { return(*(chtype *)0); } - -#undef _nc_waddch_nosync -int _nc_waddch_nosync( - WINDOW *win, - const chtype c) - { return(*(int *)0); } - -#undef waddch -int waddch( - WINDOW *win, - const chtype ch) - { return(*(int *)0); } - -#undef wechochar -int wechochar( - WINDOW *win, - const chtype ch) - { return(*(int *)0); } - -/* ./base/lib_addstr.c */ - -#undef waddnstr -int waddnstr( - WINDOW *win, - const char *astr, - int n) - { return(*(int *)0); } - -#undef waddchnstr -int waddchnstr( - WINDOW *win, - const chtype *astr, - int n) - { return(*(int *)0); } - -/* ./base/lib_beep.c */ - -#undef beep -int beep(void) - { return(*(int *)0); } - -/* ./base/lib_bkgd.c */ - -#undef wbkgdset -void wbkgdset( - WINDOW *win, - chtype ch) - { /* void */ } - -#undef wbkgd -int wbkgd( - WINDOW *win, - chtype ch) - { return(*(int *)0); } - -/* ./base/lib_box.c */ - -#undef wborder -int wborder( - WINDOW *win, - chtype ls, - chtype rs, - chtype ts, - chtype bs, - chtype tl, - chtype tr, - chtype bl, - chtype br) - { return(*(int *)0); } - -/* ./base/lib_chgat.c */ - -#undef wchgat -int wchgat( - WINDOW *win, - int n, - attr_t attr, - short color, - const void *opts) - { return(*(int *)0); } - -/* ./base/lib_clear.c */ - -#undef wclear -int wclear( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_clearok.c */ - -#undef clearok -int clearok( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./base/lib_clrbot.c */ - -#undef wclrtobot -int wclrtobot( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_clreol.c */ - -#undef wclrtoeol -int wclrtoeol( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_color.c */ - -#include - -#undef COLOR_PAIRS -int COLOR_PAIRS; -#undef COLORS -int COLORS; - -#undef _nc_reset_colors -NCURSES_BOOL _nc_reset_colors(void) - { return(*(NCURSES_BOOL *)0); } - -#undef start_color -int start_color(void) - { return(*(int *)0); } - -#undef init_pair -int init_pair( - short pair, - short f, - short b) - { return(*(int *)0); } - -#undef init_color -int init_color( - short color, - short r, - short g, - short b) - { return(*(int *)0); } - -#undef can_change_color -NCURSES_BOOL can_change_color(void) - { return(*(NCURSES_BOOL *)0); } - -#undef has_colors -NCURSES_BOOL has_colors(void) - { return(*(NCURSES_BOOL *)0); } - -#undef color_content -int color_content( - short color, - short *r, - short *g, - short *b) - { return(*(int *)0); } - -#undef pair_content -int pair_content( - short pair, - short *f, - short *b) - { return(*(int *)0); } - -#undef _nc_do_color -void _nc_do_color( - int old_pair, - int pair, - NCURSES_BOOL reverse, - int (*outc)( - int p1)) - { /* void */ } - -/* ./base/lib_colorset.c */ - -#undef wcolor_set -int wcolor_set( - WINDOW *win, - short color_pair_number, - void *opts) - { return(*(int *)0); } - -/* ./base/lib_delch.c */ - -#undef wdelch -int wdelch( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_delwin.c */ - -#undef delwin -int delwin( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_echo.c */ - -#undef echo -int echo(void) - { return(*(int *)0); } - -#undef noecho -int noecho(void) - { return(*(int *)0); } - -/* ./base/lib_endwin.c */ - -#undef endwin -int endwin(void) - { return(*(int *)0); } - -/* ./base/lib_erase.c */ - -#undef werase -int werase( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_flash.c */ - -#undef flash -int flash(void) - { return(*(int *)0); } - -/* ./lib_gen.c */ - -#undef addch -int addch( - const chtype z) - { return(*(int *)0); } - -#undef addchnstr -int addchnstr( - const chtype *a1, - int z) - { return(*(int *)0); } - -#undef addchstr -int addchstr( - const chtype *z) - { return(*(int *)0); } - -#undef addnstr -int addnstr( - const char *a1, - int z) - { return(*(int *)0); } - -#undef addstr -int addstr( - const char *z) - { return(*(int *)0); } - -#undef attroff -int attroff( - NCURSES_ATTR_T z) - { return(*(int *)0); } - -#undef attron -int attron( - NCURSES_ATTR_T z) - { return(*(int *)0); } - -#undef attrset -int attrset( - NCURSES_ATTR_T z) - { return(*(int *)0); } - -#undef attr_get -int attr_get( - attr_t *a1, - short *a2, - void *z) - { return(*(int *)0); } - -#undef attr_off -int attr_off( - attr_t a1, - void *z) - { return(*(int *)0); } - -#undef attr_on -int attr_on( - attr_t a1, - void *z) - { return(*(int *)0); } - -#undef attr_set -int attr_set( - attr_t a1, - short a2, - void *z) - { return(*(int *)0); } - -#undef bkgd -int bkgd( - chtype z) - { return(*(int *)0); } - -#undef bkgdset -void bkgdset( - chtype z) - { /* void */ } - -#undef border -int border( - chtype a1, - chtype a2, - chtype a3, - chtype a4, - chtype a5, - chtype a6, - chtype a7, - chtype z) - { return(*(int *)0); } - -#undef box -int box( - WINDOW *a1, - chtype a2, - chtype z) - { return(*(int *)0); } - -#undef chgat -int chgat( - int a1, - attr_t a2, - short a3, - const void *z) - { return(*(int *)0); } - -#undef clear -int clear(void) - { return(*(int *)0); } - -#undef clrtobot -int clrtobot(void) - { return(*(int *)0); } - -#undef clrtoeol -int clrtoeol(void) - { return(*(int *)0); } - -#undef color_set -int color_set( - short a1, - void *z) - { return(*(int *)0); } - -#undef COLOR_PAIR -int COLOR_PAIR( - int z) - { return(*(int *)0); } - -#undef delch -int delch(void) - { return(*(int *)0); } - -#undef deleteln -int deleteln(void) - { return(*(int *)0); } - -#undef echochar -int echochar( - const chtype z) - { return(*(int *)0); } - -#undef erase -int erase(void) - { return(*(int *)0); } - -#undef getbkgd -chtype getbkgd( - WINDOW *z) - { return(*(chtype *)0); } - -#undef getch -int getch(void) - { return(*(int *)0); } - -#undef getnstr -int getnstr( - char *a1, - int z) - { return(*(int *)0); } - -#undef getstr -int getstr( - char *z) - { return(*(int *)0); } - -#undef hline -int hline( - chtype a1, - int z) - { return(*(int *)0); } - -#undef inch -chtype inch(void) - { return(*(chtype *)0); } - -#undef inchnstr -int inchnstr( - chtype *a1, - int z) - { return(*(int *)0); } - -#undef inchstr -int inchstr( - chtype *z) - { return(*(int *)0); } - -#undef innstr -int innstr( - char *a1, - int z) - { return(*(int *)0); } - -#undef insch -int insch( - chtype z) - { return(*(int *)0); } - -#undef insdelln -int insdelln( - int z) - { return(*(int *)0); } - -#undef insertln -int insertln(void) - { return(*(int *)0); } - -#undef insnstr -int insnstr( - const char *a1, - int z) - { return(*(int *)0); } - -#undef insstr -int insstr( - const char *z) - { return(*(int *)0); } - -#undef instr -int instr( - char *z) - { return(*(int *)0); } - -#undef move -int move( - int a1, - int z) - { return(*(int *)0); } - -#undef mvaddch -int mvaddch( - int a1, - int a2, - const chtype z) - { return(*(int *)0); } - -#undef mvaddchnstr -int mvaddchnstr( - int a1, - int a2, - const chtype *a3, - int z) - { return(*(int *)0); } - -#undef mvaddchstr -int mvaddchstr( - int a1, - int a2, - const chtype *z) - { return(*(int *)0); } - -#undef mvaddnstr -int mvaddnstr( - int a1, - int a2, - const char *a3, - int z) - { return(*(int *)0); } - -#undef mvaddstr -int mvaddstr( - int a1, - int a2, - const char *z) - { return(*(int *)0); } - -#undef mvchgat -int mvchgat( - int a1, - int a2, - int a3, - attr_t a4, - short a5, - const void *z) - { return(*(int *)0); } - -#undef mvdelch -int mvdelch( - int a1, - int z) - { return(*(int *)0); } - -#undef mvgetch -int mvgetch( - int a1, - int z) - { return(*(int *)0); } - -#undef mvgetnstr -int mvgetnstr( - int a1, - int a2, - char *a3, - int z) - { return(*(int *)0); } - -#undef mvgetstr -int mvgetstr( - int a1, - int a2, - char *z) - { return(*(int *)0); } - -#undef mvhline -int mvhline( - int a1, - int a2, - chtype a3, - int z) - { return(*(int *)0); } - -#undef mvinch -chtype mvinch( - int a1, - int z) - { return(*(chtype *)0); } - -#undef mvinchnstr -int mvinchnstr( - int a1, - int a2, - chtype *a3, - int z) - { return(*(int *)0); } - -#undef mvinchstr -int mvinchstr( - int a1, - int a2, - chtype *z) - { return(*(int *)0); } - -#undef mvinnstr -int mvinnstr( - int a1, - int a2, - char *a3, - int z) - { return(*(int *)0); } - -#undef mvinsch -int mvinsch( - int a1, - int a2, - chtype z) - { return(*(int *)0); } - -#undef mvinsnstr -int mvinsnstr( - int a1, - int a2, - const char *a3, - int z) - { return(*(int *)0); } - -#undef mvinsstr -int mvinsstr( - int a1, - int a2, - const char *z) - { return(*(int *)0); } - -#undef mvinstr -int mvinstr( - int a1, - int a2, - char *z) - { return(*(int *)0); } - -#undef mvvline -int mvvline( - int a1, - int a2, - chtype a3, - int z) - { return(*(int *)0); } - -#undef mvwaddch -int mvwaddch( - WINDOW *a1, - int a2, - int a3, - const chtype z) - { return(*(int *)0); } - -#undef mvwaddchnstr -int mvwaddchnstr( - WINDOW *a1, - int a2, - int a3, - const chtype *a4, - int z) - { return(*(int *)0); } - -#undef mvwaddchstr -int mvwaddchstr( - WINDOW *a1, - int a2, - int a3, - const chtype *z) - { return(*(int *)0); } - -#undef mvwaddnstr -int mvwaddnstr( - WINDOW *a1, - int a2, - int a3, - const char *a4, - int z) - { return(*(int *)0); } - -#undef mvwaddstr -int mvwaddstr( - WINDOW *a1, - int a2, - int a3, - const char *z) - { return(*(int *)0); } - -#undef mvwchgat -int mvwchgat( - WINDOW *a1, - int a2, - int a3, - int a4, - attr_t a5, - short a6, - const void *z) - { return(*(int *)0); } - -#undef mvwdelch -int mvwdelch( - WINDOW *a1, - int a2, - int z) - { return(*(int *)0); } - -#undef mvwgetch -int mvwgetch( - WINDOW *a1, - int a2, - int z) - { return(*(int *)0); } - -#undef mvwgetnstr -int mvwgetnstr( - WINDOW *a1, - int a2, - int a3, - char *a4, - int z) - { return(*(int *)0); } - -#undef mvwgetstr -int mvwgetstr( - WINDOW *a1, - int a2, - int a3, - char *z) - { return(*(int *)0); } - -#undef mvwhline -int mvwhline( - WINDOW *a1, - int a2, - int a3, - chtype a4, - int z) - { return(*(int *)0); } - -#undef mvwinch -chtype mvwinch( - WINDOW *a1, - int a2, - int z) - { return(*(chtype *)0); } - -#undef mvwinchnstr -int mvwinchnstr( - WINDOW *a1, - int a2, - int a3, - chtype *a4, - int z) - { return(*(int *)0); } - -#undef mvwinchstr -int mvwinchstr( - WINDOW *a1, - int a2, - int a3, - chtype *z) - { return(*(int *)0); } - -#undef mvwinnstr -int mvwinnstr( - WINDOW *a1, - int a2, - int a3, - char *a4, - int z) - { return(*(int *)0); } - -#undef mvwinsch -int mvwinsch( - WINDOW *a1, - int a2, - int a3, - chtype z) - { return(*(int *)0); } - -#undef mvwinsnstr -int mvwinsnstr( - WINDOW *a1, - int a2, - int a3, - const char *a4, - int z) - { return(*(int *)0); } - -#undef mvwinsstr -int mvwinsstr( - WINDOW *a1, - int a2, - int a3, - const char *z) - { return(*(int *)0); } - -#undef mvwinstr -int mvwinstr( - WINDOW *a1, - int a2, - int a3, - char *z) - { return(*(int *)0); } - -#undef mvwvline -int mvwvline( - WINDOW *a1, - int a2, - int a3, - chtype a4, - int z) - { return(*(int *)0); } - -#undef PAIR_NUMBER -int PAIR_NUMBER( - int z) - { return(*(int *)0); } - -#undef redrawwin -int redrawwin( - WINDOW *z) - { return(*(int *)0); } - -#undef refresh -int refresh(void) - { return(*(int *)0); } - -#undef scrl -int scrl( - int z) - { return(*(int *)0); } - -#undef scroll -int scroll( - WINDOW *z) - { return(*(int *)0); } - -#undef setscrreg -int setscrreg( - int a1, - int z) - { return(*(int *)0); } - -#undef standout -int standout(void) - { return(*(int *)0); } - -#undef standend -int standend(void) - { return(*(int *)0); } - -#undef timeout -void timeout( - int z) - { /* void */ } - -#undef touchline -int touchline( - WINDOW *a1, - int a2, - int z) - { return(*(int *)0); } - -#undef touchwin -int touchwin( - WINDOW *z) - { return(*(int *)0); } - -#undef untouchwin -int untouchwin( - WINDOW *z) - { return(*(int *)0); } - -#undef vline -int vline( - chtype a1, - int z) - { return(*(int *)0); } - -#undef vw_printw -int vw_printw( - WINDOW *a1, - const char *a2, - va_list z) - { return(*(int *)0); } - -#undef vw_scanw -int vw_scanw( - WINDOW *a1, - char *a2, - va_list z) - { return(*(int *)0); } - -#undef waddchstr -int waddchstr( - WINDOW *a1, - const chtype *z) - { return(*(int *)0); } - -#undef waddstr -int waddstr( - WINDOW *a1, - const char *z) - { return(*(int *)0); } - -#undef wattron -int wattron( - WINDOW *a1, - int z) - { return(*(int *)0); } - -#undef wattroff -int wattroff( - WINDOW *a1, - int z) - { return(*(int *)0); } - -#undef wattrset -int wattrset( - WINDOW *a1, - int z) - { return(*(int *)0); } - -#undef wattr_get -int wattr_get( - WINDOW *a1, - attr_t *a2, - short *a3, - void *z) - { return(*(int *)0); } - -#undef wattr_set -int wattr_set( - WINDOW *a1, - attr_t a2, - short a3, - void *z) - { return(*(int *)0); } - -#undef wdeleteln -int wdeleteln( - WINDOW *z) - { return(*(int *)0); } - -#undef wgetstr -int wgetstr( - WINDOW *a1, - char *z) - { return(*(int *)0); } - -#undef winchstr -int winchstr( - WINDOW *a1, - chtype *z) - { return(*(int *)0); } - -#undef winsertln -int winsertln( - WINDOW *z) - { return(*(int *)0); } - -#undef winstr -int winstr( - WINDOW *a1, - char *z) - { return(*(int *)0); } - -#undef wstandout -int wstandout( - WINDOW *z) - { return(*(int *)0); } - -#undef wstandend -int wstandend( - WINDOW *z) - { return(*(int *)0); } - -#undef mouse_trafo -NCURSES_BOOL mouse_trafo( - int *a1, - int *a2, - NCURSES_BOOL z) - { return(*(NCURSES_BOOL *)0); } - -/* ./base/lib_getch.c */ - -#include - -#undef ESCDELAY -int ESCDELAY; - -#undef _nc_wgetch -int _nc_wgetch( - WINDOW *win, - unsigned long *result, - int use_meta) - { return(*(int *)0); } - -#undef wgetch -int wgetch( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_getstr.c */ - -#undef wgetnstr -int wgetnstr( - WINDOW *win, - char *str, - int maxlen) - { return(*(int *)0); } - -/* ./base/lib_hline.c */ - -#undef whline -int whline( - WINDOW *win, - chtype ch, - int n) - { return(*(int *)0); } - -/* ./base/lib_immedok.c */ - -#undef immedok -void immedok( - WINDOW *win, - NCURSES_BOOL flag) - { /* void */ } - -/* ./base/lib_inchstr.c */ - -#undef winchnstr -int winchnstr( - WINDOW *win, - chtype *str, - int n) - { return(*(int *)0); } - -/* ./base/lib_initscr.c */ - -#undef initscr -WINDOW *initscr(void) - { return(*(WINDOW **)0); } - -/* ./base/lib_insch.c */ - -#undef _nc_insert_ch -void _nc_insert_ch( - WINDOW *win, - chtype ch) - { /* void */ } - -#undef winsch -int winsch( - WINDOW *win, - chtype c) - { return(*(int *)0); } - -#undef winsstr -int winsstr( - WINDOW *win, - const char *s) - { return(*(int *)0); } - -/* ./base/lib_insdel.c */ - -#undef winsdelln -int winsdelln( - WINDOW *win, - int n) - { return(*(int *)0); } - -/* ./base/lib_insnstr.c */ - -#undef winsnstr -int winsnstr( - WINDOW *win, - const char *s, - int n) - { return(*(int *)0); } - -/* ./base/lib_instr.c */ - -#undef winnstr -int winnstr( - WINDOW *win, - char *str, - int n) - { return(*(int *)0); } - -/* ./base/lib_isendwin.c */ - -#undef isendwin -NCURSES_BOOL isendwin(void) - { return(*(NCURSES_BOOL *)0); } - -/* ./base/lib_leaveok.c */ - -#undef leaveok -int leaveok( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./base/lib_mouse.c */ - -#undef getmouse -int getmouse( - MEVENT *aevent) - { return(*(int *)0); } - -#undef ungetmouse -int ungetmouse( - MEVENT *aevent) - { return(*(int *)0); } - -#undef mousemask -mmask_t mousemask( - mmask_t newmask, - mmask_t *oldmask) - { return(*(mmask_t *)0); } - -#undef wenclose -NCURSES_BOOL wenclose( - const WINDOW *win, - int y, - int x) - { return(*(NCURSES_BOOL *)0); } - -#undef mouseinterval -int mouseinterval( - int maxclick) - { return(*(int *)0); } - -#undef _nc_has_mouse -int _nc_has_mouse(void) - { return(*(int *)0); } - -#undef wmouse_trafo -NCURSES_BOOL wmouse_trafo( - const WINDOW *win, - int *pY, - int *pX, - NCURSES_BOOL to_screen) - { return(*(NCURSES_BOOL *)0); } - -/* ./base/lib_move.c */ - -#undef wmove -int wmove( - WINDOW *win, - int y, - int x) - { return(*(int *)0); } - -/* ./tty/lib_mvcur.c */ - -#undef _nc_msec_cost -int _nc_msec_cost( - const char *const cap, - int affcnt) - { return(*(int *)0); } - -#undef _nc_mvcur_resume -void _nc_mvcur_resume(void) - { /* void */ } - -#undef _nc_mvcur_init -void _nc_mvcur_init(void) - { /* void */ } - -#undef _nc_mvcur_wrap -void _nc_mvcur_wrap(void) - { /* void */ } - -#undef mvcur -int mvcur( - int yold, - int xold, - int ynew, - int xnew) - { return(*(int *)0); } - -#undef _nc_optimize_enable -int _nc_optimize_enable; - -/* ./base/lib_mvwin.c */ - -#undef mvwin -int mvwin( - WINDOW *win, - int by, - int bx) - { return(*(int *)0); } - -/* ./base/lib_newterm.c */ - -#undef filter -void filter(void) - { /* void */ } - -#undef newterm -SCREEN *newterm( - char *name, - FILE *ofp, - FILE *ifp) - { return(*(SCREEN **)0); } - -/* ./base/lib_newwin.c */ - -#undef _nc_freewin -int _nc_freewin( - WINDOW *win) - { return(*(int *)0); } - -#undef newwin -WINDOW *newwin( - int num_lines, - int num_columns, - int begy, - int begx) - { return(*(WINDOW **)0); } - -#undef derwin -WINDOW *derwin( - WINDOW *orig, - int num_lines, - int num_columns, - int begy, - int begx) - { return(*(WINDOW **)0); } - -#undef subwin -WINDOW *subwin( - WINDOW *w, - int l, - int c, - int y, - int x) - { return(*(WINDOW **)0); } - -#undef _nc_makenew -WINDOW *_nc_makenew( - int num_lines, - int num_columns, - int begy, - int begx, - int flags) - { return(*(WINDOW **)0); } - -/* ./base/lib_nl.c */ - -#undef nl -int nl(void) - { return(*(int *)0); } - -#undef nonl -int nonl(void) - { return(*(int *)0); } - -/* ./base/lib_overlay.c */ - -#undef overlay -int overlay( - const WINDOW *win1, - WINDOW *win2) - { return(*(int *)0); } - -#undef overwrite -int overwrite( - const WINDOW *win1, - WINDOW *win2) - { return(*(int *)0); } - -#undef copywin -int copywin( - const WINDOW *src, - WINDOW *dst, - int sminrow, - int smincol, - int dminrow, - int dmincol, - int dmaxrow, - int dmaxcol, - int over) - { return(*(int *)0); } - -/* ./base/lib_pad.c */ - -#undef newpad -WINDOW *newpad( - int l, - int c) - { return(*(WINDOW **)0); } - -#undef subpad -WINDOW *subpad( - WINDOW *orig, - int l, - int c, - int begy, - int begx) - { return(*(WINDOW **)0); } - -#undef prefresh -int prefresh( - WINDOW *win, - int pminrow, - int pmincol, - int sminrow, - int smincol, - int smaxrow, - int smaxcol) - { return(*(int *)0); } - -#undef pnoutrefresh -int pnoutrefresh( - WINDOW *win, - int pminrow, - int pmincol, - int sminrow, - int smincol, - int smaxrow, - int smaxcol) - { return(*(int *)0); } - -#undef pechochar -int pechochar( - WINDOW *pad, - const chtype ch) - { return(*(int *)0); } - -/* ./base/lib_printw.c */ - -#undef printw -int printw( - const char *fmt, - ...) - { return(*(int *)0); } - -#undef wprintw -int wprintw( - WINDOW *win, - const char *fmt, - ...) - { return(*(int *)0); } - -#undef mvprintw -int mvprintw( - int y, - int x, - const char *fmt, - ...) - { return(*(int *)0); } - -#undef mvwprintw -int mvwprintw( - WINDOW *win, - int y, - int x, - const char *fmt, - ...) - { return(*(int *)0); } - -#undef vwprintw -int vwprintw( - WINDOW *win, - const char *fmt, - va_list argp) - { return(*(int *)0); } - -/* ./base/lib_redrawln.c */ - -#undef wredrawln -int wredrawln( - WINDOW *win, - int beg, - int num) - { return(*(int *)0); } - -/* ./base/lib_refresh.c */ - -#undef wrefresh -int wrefresh( - WINDOW *win) - { return(*(int *)0); } - -#undef wnoutrefresh -int wnoutrefresh( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_restart.c */ - -#undef restartterm -int restartterm( - char *termp, - int filenum, - int *errret) - { return(*(int *)0); } - -/* ./base/lib_scanw.c */ - -#undef vwscanw -int vwscanw( - WINDOW *win, - char *fmt, - va_list argp) - { return(*(int *)0); } - -#undef scanw -int scanw( - char *fmt, - ...) - { return(*(int *)0); } - -#undef wscanw -int wscanw( - WINDOW *win, - char *fmt, - ...) - { return(*(int *)0); } - -#undef mvscanw -int mvscanw( - int y, - int x, - char *fmt, - ...) - { return(*(int *)0); } - -#undef mvwscanw -int mvwscanw( - WINDOW *win, - int y, - int x, - char *fmt, - ...) - { return(*(int *)0); } - -/* ./base/lib_screen.c */ - -#undef getwin -WINDOW *getwin( - FILE *filep) - { return(*(WINDOW **)0); } - -#undef putwin -int putwin( - WINDOW *win, - FILE *filep) - { return(*(int *)0); } - -#undef scr_restore -int scr_restore( - const char *file) - { return(*(int *)0); } - -#undef scr_dump -int scr_dump( - const char *file) - { return(*(int *)0); } - -#undef scr_init -int scr_init( - const char *file) - { return(*(int *)0); } - -#undef scr_set -int scr_set( - const char *file) - { return(*(int *)0); } - -/* ./base/lib_scroll.c */ - -#undef _nc_scroll_window -void _nc_scroll_window( - WINDOW *win, - int const n, - short const top, - short const bottom, - chtype blank) - { /* void */ } - -#undef wscrl -int wscrl( - WINDOW *win, - int n) - { return(*(int *)0); } - -/* ./base/lib_scrollok.c */ - -#undef scrollok -int scrollok( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./base/lib_scrreg.c */ - -#undef wsetscrreg -int wsetscrreg( - WINDOW *win, - int top, - int bottom) - { return(*(int *)0); } - -/* ./base/lib_set_term.c */ - -#undef set_term -SCREEN *set_term( - SCREEN *screenp) - { return(*(SCREEN **)0); } - -#undef delscreen -void delscreen( - SCREEN *sp) - { /* void */ } - -#undef _nc_setupscreen -int _nc_setupscreen( - short slines, - short const scolumns, - FILE *output) - { return(*(int *)0); } - -#undef _nc_ripoffline -int _nc_ripoffline( - int line, - int (*init)( - WINDOW *p1, - int p2)) - { return(*(int *)0); } - -#undef ripoffline -int ripoffline( - int line, - int (*init)( - WINDOW *p1, - int p2)) - { return(*(int *)0); } - -/* ./base/lib_slk.c */ - -#undef _nc_slk_format -int _nc_slk_format; - -#undef _nc_slk_initialize -int _nc_slk_initialize( - WINDOW *stwin, - int cols) - { return(*(int *)0); } - -#undef slk_restore -int slk_restore(void) - { return(*(int *)0); } - -/* ./base/lib_slkatr_set.c */ - -#undef slk_attr_set -int slk_attr_set( - const attr_t attr, - short color_pair_number, - void *opts) - { return(*(int *)0); } - -/* ./base/lib_slkatrof.c */ - -#undef slk_attroff -int slk_attroff( - const chtype attr) - { return(*(int *)0); } - -/* ./base/lib_slkatron.c */ - -#undef slk_attron -int slk_attron( - const chtype attr) - { return(*(int *)0); } - -/* ./base/lib_slkatrset.c */ - -#undef slk_attrset -int slk_attrset( - const chtype attr) - { return(*(int *)0); } - -/* ./base/lib_slkattr.c */ - -#undef slk_attr -attr_t slk_attr(void) - { return(*(attr_t *)0); } - -/* ./base/lib_slkclear.c */ - -#undef slk_clear -int slk_clear(void) - { return(*(int *)0); } - -/* ./base/lib_slkcolor.c */ - -#undef slk_color -int slk_color( - short color_pair_number) - { return(*(int *)0); } - -/* ./base/lib_slkinit.c */ - -#undef slk_init -int slk_init( - int format) - { return(*(int *)0); } - -/* ./base/lib_slklab.c */ - -#undef slk_label -char *slk_label( - int n) - { return(*(char **)0); } - -/* ./base/lib_slkrefr.c */ - -#undef slk_noutrefresh -int slk_noutrefresh(void) - { return(*(int *)0); } - -#undef slk_refresh -int slk_refresh(void) - { return(*(int *)0); } - -/* ./base/lib_slkset.c */ - -#undef slk_set -int slk_set( - int i, - const char *astr, - int format) - { return(*(int *)0); } - -/* ./base/lib_slktouch.c */ - -#undef slk_touch -int slk_touch(void) - { return(*(int *)0); } - -/* ./base/lib_touch.c */ - -#undef is_linetouched -NCURSES_BOOL is_linetouched( - WINDOW *win, - int line) - { return(*(NCURSES_BOOL *)0); } - -#undef is_wintouched -NCURSES_BOOL is_wintouched( - WINDOW *win) - { return(*(NCURSES_BOOL *)0); } - -#undef wtouchln -int wtouchln( - WINDOW *win, - int y, - int n, - int changed) - { return(*(int *)0); } - -/* ./trace/lib_traceatr.c */ - -#undef _traceattr2 -char *_traceattr2( - int bufnum, - attr_t newmode) - { return(*(char **)0); } - -#undef _traceattr -char *_traceattr( - attr_t newmode) - { return(*(char **)0); } - -#undef _nc_retrace_attr_t -attr_t _nc_retrace_attr_t( - attr_t code) - { return(*(attr_t *)0); } - -#undef _nc_altcharset_name -const char *_nc_altcharset_name( - attr_t attr, - chtype ch) - { return(*(const char **)0); } - -#undef _tracechtype2 -char *_tracechtype2( - int bufnum, - chtype ch) - { return(*(char **)0); } - -#undef _tracechtype -char *_tracechtype( - chtype ch) - { return(*(char **)0); } - -#undef _nc_retrace_chtype -chtype _nc_retrace_chtype( - chtype code) - { return(*(chtype *)0); } - -/* ./trace/lib_tracedmp.c */ - -#undef _tracedump -void _tracedump( - const char *name, - WINDOW *win) - { /* void */ } - -/* ./trace/lib_tracemse.c */ - -#undef _tracemouse -char *_tracemouse( - MEVENT const *ep) - { return(*(char **)0); } - -/* ./tty/lib_tstp.c */ - -#include - -#undef _nc_signal_handler -void _nc_signal_handler( - NCURSES_BOOL enable) - { /* void */ } - -/* ./base/lib_ungetch.c */ - -#undef _nc_fifo_dump -void _nc_fifo_dump(void) - { /* void */ } - -#undef ungetch -int ungetch( - int ch) - { return(*(int *)0); } - -/* ./tty/lib_vidattr.c */ - -#undef vidputs -int vidputs( - chtype newmode, - int (*outc)( - int p1)) - { return(*(int *)0); } - -#undef vidattr -int vidattr( - chtype newmode) - { return(*(int *)0); } - -#undef termattrs -chtype termattrs(void) - { return(*(chtype *)0); } - -/* ./base/lib_vline.c */ - -#undef wvline -int wvline( - WINDOW *win, - chtype ch, - int n) - { return(*(int *)0); } - -/* ./base/lib_wattroff.c */ - -#undef wattr_off -int wattr_off( - WINDOW *win, - attr_t at, - void *opts) - { return(*(int *)0); } - -/* ./base/lib_wattron.c */ - -#undef wattr_on -int wattr_on( - WINDOW *win, - attr_t at, - void *opts) - { return(*(int *)0); } - -/* ./base/lib_winch.c */ - -#undef winch -chtype winch( - WINDOW *win) - { return(*(chtype *)0); } - -/* ./base/lib_window.c */ - -#undef _nc_synchook -void _nc_synchook( - WINDOW *win) - { /* void */ } - -#undef mvderwin -int mvderwin( - WINDOW *win, - int y, - int x) - { return(*(int *)0); } - -#undef syncok -int syncok( - WINDOW *win, - NCURSES_BOOL bf) - { return(*(int *)0); } - -#undef wsyncup -void wsyncup( - WINDOW *win) - { /* void */ } - -#undef wsyncdown -void wsyncdown( - WINDOW *win) - { /* void */ } - -#undef wcursyncup -void wcursyncup( - WINDOW *win) - { /* void */ } - -#undef dupwin -WINDOW *dupwin( - WINDOW *win) - { return(*(WINDOW **)0); } - -/* ./base/nc_panel.c */ - -#undef _nc_panelhook -struct panelhook *_nc_panelhook(void) - { return(*(struct panelhook **)0); } - -/* ./base/safe_sprintf.c */ - -#undef _nc_printf_string -char *_nc_printf_string( - const char *fmt, - va_list ap) - { return(*(char **)0); } - -/* ./tty/tty_update.c */ - -#include -#include - -#undef doupdate -int doupdate(void) - { return(*(int *)0); } - -#undef _nc_scrolln -int _nc_scrolln( - int n, - int top, - int bot, - int maxy) - { return(*(int *)0); } - -#undef _nc_screen_resume -void _nc_screen_resume(void) - { /* void */ } - -#undef _nc_screen_init -void _nc_screen_init(void) - { /* void */ } - -#undef _nc_screen_wrap -void _nc_screen_wrap(void) - { /* void */ } - -#undef _nc_do_xmc_glitch -void _nc_do_xmc_glitch( - attr_t previous) - { /* void */ } - -/* ./trace/varargs.c */ - -#undef _nc_varargs -char *_nc_varargs( - const char *fmt, - va_list ap) - { return(*(char **)0); } - -/* ./base/memmove.c */ - -#undef _nc_memmove -void _nc_memmove(void) - { /* void */ } - -/* ./base/vsscanf.c */ - -#undef _nc_vsscanf -void _nc_vsscanf(void) - { /* void */ } - -/* ./base/lib_freeall.c */ - -#include - -#undef _nc_freeall -void _nc_freeall(void) - { /* void */ } - -/* ./base/define_key.c */ - -#undef define_key -int define_key( - const char *str, - int keycode) - { return(*(int *)0); } - -/* ./expanded.c */ - -#undef _nc_toggle_attr_on -void _nc_toggle_attr_on( - attr_t *S, - attr_t at) - { /* void */ } - -#undef _nc_toggle_attr_off -void _nc_toggle_attr_off( - attr_t *S, - attr_t at) - { /* void */ } - -#undef _nc_DelCharCost -int _nc_DelCharCost( - int count) - { return(*(int *)0); } - -#undef _nc_InsCharCost -int _nc_InsCharCost( - int count) - { return(*(int *)0); } - -#undef _nc_UpdateAttrs -void _nc_UpdateAttrs( - chtype c) - { /* void */ } - -/* ./base/key_defined.c */ - -#undef key_defined -int key_defined( - const char *str) - { return(*(int *)0); } - -/* ./base/keybound.c */ - -#undef keybound -char *keybound( - int code, - int count) - { return(*(char **)0); } - -/* ./base/keyok.c */ - -#undef keyok -int keyok( - int c, - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./base/lib_dft_fgbg.c */ - -#undef use_default_colors -int use_default_colors(void) - { return(*(int *)0); } - -#undef assume_default_colors -int assume_default_colors( - int fg, - int bg) - { return(*(int *)0); } - -/* ./tinfo/lib_print.c */ - -#undef mcprint -int mcprint( - char *data, - int len) - { return(*(int *)0); } - -/* ./base/resizeterm.c */ - -#undef is_term_resized -NCURSES_BOOL is_term_resized( - int ToLines, - int ToCols) - { return(*(NCURSES_BOOL *)0); } - -#undef resize_term -int resize_term( - int ToLines, - int ToCols) - { return(*(int *)0); } - -#undef resizeterm -int resizeterm( - int ToLines, - int ToCols) - { return(*(int *)0); } - -/* ./trace/trace_xnames.c */ - -#undef _nc_trace_xnames -void _nc_trace_xnames( - TERMTYPE *tp) - { /* void */ } - -/* ./base/tries.c */ - -#undef _nc_expand_try -char *_nc_expand_try( - struct tries *tree, - unsigned short code, - int *count, - size_t len) - { return(*(char **)0); } - -#undef _nc_remove_key -int _nc_remove_key( - struct tries **tree, - unsigned short code) - { return(*(int *)0); } - -#undef _nc_remove_string -int _nc_remove_string( - struct tries **tree, - const char *string) - { return(*(int *)0); } - -/* ./base/wresize.c */ - -#undef wresize -int wresize( - WINDOW *win, - int ToLines, - int ToCols) - { return(*(int *)0); } - -/* ./tinfo/access.c */ - -#undef _nc_rootname -char *_nc_rootname( - char *path) - { return(*(char **)0); } - -#undef _nc_pathlast -unsigned _nc_pathlast( - const char *path) - { return(*(unsigned *)0); } - -#undef _nc_basename -char *_nc_basename( - char *path) - { return(*(char **)0); } - -#undef _nc_access -int _nc_access( - const char *path, - int mode) - { return(*(int *)0); } - -#undef _nc_env_access -int _nc_env_access(void) - { return(*(int *)0); } - -/* ./tinfo/add_tries.c */ - -#undef _nc_add_to_try -void _nc_add_to_try( - struct tries **tree, - const char *str, - unsigned short code) - { /* void */ } - -/* ./tinfo/alloc_entry.c */ - -#undef _nc_init_entry -void _nc_init_entry( - TERMTYPE *const tp) - { /* void */ } - -#undef _nc_copy_entry -ENTRY *_nc_copy_entry( - ENTRY *oldp) - { return(*(ENTRY **)0); } - -#undef _nc_save_str -char *_nc_save_str( - const char *const string) - { return(*(char **)0); } - -#undef _nc_wrap_entry -void _nc_wrap_entry( - ENTRY *const ep, - NCURSES_BOOL copy_strings) - { /* void */ } - -#undef _nc_merge_entry -void _nc_merge_entry( - TERMTYPE *const to, - TERMTYPE *const from) - { /* void */ } - -/* ./tinfo/alloc_ttype.c */ - -#undef _nc_align_termtype -void _nc_align_termtype( - TERMTYPE *to, - TERMTYPE *from) - { /* void */ } - -#undef _nc_copy_termtype -void _nc_copy_termtype( - TERMTYPE *dst, - TERMTYPE *src) - { /* void */ } - -/* ./tinfo/captoinfo.c */ - -#undef _nc_captoinfo -char *_nc_captoinfo( - const char *cap, - const char *s, - int const parameterized) - { return(*(char **)0); } - -#undef _nc_infotocap -char *_nc_infotocap( - const char *cap, - const char *str, - int const parameterized) - { return(*(char **)0); } - -/* ./codes.c */ - -#undef boolcodes -char *const boolcodes[] = {0}; -#undef numcodes -char *const numcodes[] = {0}; -#undef strcodes -char *const strcodes[] = {0}; - -/* ./comp_captab.c */ - -#include - -#undef _nc_info_hash_table -const struct name_table_entry *const _nc_info_hash_table[995] = {0}; -#undef _nc_cap_hash_table -const struct name_table_entry *const _nc_cap_hash_table[995] = {0}; -#undef _nc_capalias_table -const struct alias _nc_capalias_table[] = {0}; -#undef _nc_infoalias_table -const struct alias _nc_infoalias_table[] = {0}; - -#undef _nc_get_table -const struct name_table_entry *_nc_get_table( - NCURSES_BOOL termcap) - { return(*(const struct name_table_entry **)0); } - -#undef _nc_get_hash_table -const struct name_table_entry *const *_nc_get_hash_table( - NCURSES_BOOL termcap) - { return(*(const struct name_table_entry **)0); } - -/* ./tinfo/comp_error.c */ - -#undef _nc_suppress_warnings -NCURSES_BOOL _nc_suppress_warnings; -#undef _nc_curr_line -int _nc_curr_line; -#undef _nc_curr_col -int _nc_curr_col; - -#undef _nc_set_source -void _nc_set_source( - const char *const name) - { /* void */ } - -#undef _nc_set_type -void _nc_set_type( - const char *const name) - { /* void */ } - -#undef _nc_get_type -void _nc_get_type( - char *name) - { /* void */ } - -#undef _nc_warning -void _nc_warning( - const char *const fmt, - ...) - { /* void */ } - -#undef _nc_err_abort -void _nc_err_abort( - const char *const fmt, - ...) - { /* void */ } - -#undef _nc_syserr_abort -void _nc_syserr_abort( - const char *const fmt, - ...) - { /* void */ } - -/* ./tinfo/comp_expand.c */ - -#undef _nc_tic_expand -char *_nc_tic_expand( - const char *srcp, - NCURSES_BOOL tic_format, - int numbers) - { return(*(char **)0); } - -/* ./tinfo/comp_hash.c */ - -#include - -#undef _nc_find_entry -struct name_table_entry const *_nc_find_entry( - const char *string, - const struct name_table_entry *const *hash_table) - { return(*(struct name_table_entry const **)0); } - -#undef _nc_find_type_entry -struct name_table_entry const *_nc_find_type_entry( - const char *string, - int type, - const struct name_table_entry *table) - { return(*(struct name_table_entry const **)0); } - -/* ./tinfo/comp_parse.c */ - -#undef _nc_check_termtype -void (*_nc_check_termtype)( - TERMTYPE *p1); -#undef _nc_head -ENTRY *_nc_head; -#undef _nc_tail -ENTRY *_nc_tail; - -#undef _nc_free_entries -void _nc_free_entries( - ENTRY *headp) - { /* void */ } - -#undef _nc_entry_match -NCURSES_BOOL _nc_entry_match( - char *n1, - char *n2) - { return(*(NCURSES_BOOL *)0); } - -#undef _nc_read_entry_source -void _nc_read_entry_source( - FILE *fp, - char *buf, - int literal, - NCURSES_BOOL silent, - NCURSES_BOOL (*hook)( - ENTRY *p1)) - { /* void */ } - -#undef _nc_resolve_uses -int _nc_resolve_uses( - NCURSES_BOOL fullresolve) - { return(*(int *)0); } - -/* ./tinfo/comp_scan.c */ - -#undef _nc_syntax -int _nc_syntax; -#undef _nc_curr_file_pos -long _nc_curr_file_pos; -#undef _nc_comment_start -long _nc_comment_start; -#undef _nc_comment_end -long _nc_comment_end; -#undef _nc_start_line -long _nc_start_line; -#undef _nc_curr_token -struct token _nc_curr_token; -#undef _nc_disable_period -NCURSES_BOOL _nc_disable_period; - -#undef _nc_get_token -int _nc_get_token( - NCURSES_BOOL silent) - { return(*(int *)0); } - -#undef _nc_trans_string -int _nc_trans_string( - char *ptr, - char *last) - { return(*(int *)0); } - -#undef _nc_push_token -void _nc_push_token( - int tokclass) - { /* void */ } - -#undef _nc_panic_mode -void _nc_panic_mode( - char ch) - { /* void */ } - -#undef _nc_reset_input -void _nc_reset_input( - FILE *fp, - char *buf) - { /* void */ } - -/* ./tinfo/doalloc.c */ - -#undef _nc_doalloc -void *_nc_doalloc( - void *oldp, - size_t amount) - { return(*(void **)0); } - -/* ./fallback.c */ - -#undef _nc_fallback -const TERMTYPE *_nc_fallback( - const char *name) - { return(*(const TERMTYPE **)0); } - -/* ./tinfo/free_ttype.c */ - -#undef _nc_free_termtype -void _nc_free_termtype( - TERMTYPE *ptr) - { /* void */ } - -#undef _nc_user_definable -NCURSES_BOOL _nc_user_definable; - -#undef use_extended_names -int use_extended_names( - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./tinfo/getenv_num.c */ - -#undef _nc_getenv_num -int _nc_getenv_num( - const char *name) - { return(*(int *)0); } - -/* ./tinfo/home_terminfo.c */ - -#undef _nc_home_terminfo -char *_nc_home_terminfo(void) - { return(*(char **)0); } - -/* ./tinfo/init_keytry.c */ - -#if 0 - -#include - -#undef _nc_tinfo_fkeys -struct tinfo_fkeys _nc_tinfo_fkeys[]; - -#endif - -#undef _nc_init_keytry -void _nc_init_keytry(void) - { /* void */ } - -/* ./tinfo/lib_acs.c */ - -#undef acs_map -chtype acs_map[128]; - -#undef _nc_init_acs -void _nc_init_acs(void) - { /* void */ } - -/* ./tinfo/lib_baudrate.c */ - -#include - -#undef _nc_baudrate -int _nc_baudrate( - int OSpeed) - { return(*(int *)0); } - -#undef _nc_ospeed -int _nc_ospeed( - int BaudRate) - { return(*(int *)0); } - -#undef baudrate -int baudrate(void) - { return(*(int *)0); } - -/* ./tinfo/lib_cur_term.c */ - -#undef cur_term -TERMINAL *cur_term; - -#undef set_curterm -TERMINAL *set_curterm( - TERMINAL *termp) - { return(*(TERMINAL **)0); } - -#undef del_curterm -int del_curterm( - TERMINAL *termp) - { return(*(int *)0); } - -/* ./tinfo/lib_data.c */ - -#undef stdscr -WINDOW *stdscr; -#undef curscr -WINDOW *curscr; -#undef newscr -WINDOW *newscr; -#undef _nc_screen_chain -SCREEN *_nc_screen_chain; -#undef SP -SCREEN *SP; - -/* ./tinfo/lib_has_cap.c */ - -#undef has_ic -NCURSES_BOOL has_ic(void) - { return(*(NCURSES_BOOL *)0); } - -#undef has_il -NCURSES_BOOL has_il(void) - { return(*(NCURSES_BOOL *)0); } - -/* ./tinfo/lib_kernel.c */ - -#undef erasechar -char erasechar(void) - { return(*(char *)0); } - -#undef killchar -char killchar(void) - { return(*(char *)0); } - -#undef flushinp -int flushinp(void) - { return(*(int *)0); } - -/* ./lib_keyname.c */ - -#undef _nc_key_names -const struct kn _nc_key_names[] = {0}; - -#undef keyname -char *keyname( - int c) - { return(*(char **)0); } - -/* ./tinfo/lib_longname.c */ - -#undef longname -char *longname(void) - { return(*(char **)0); } - -/* ./tinfo/lib_napms.c */ - -#include - -#undef napms -int napms( - int ms) - { return(*(int *)0); } - -/* ./tinfo/lib_options.c */ - -#undef idlok -int idlok( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -#undef idcok -void idcok( - WINDOW *win, - NCURSES_BOOL flag) - { /* void */ } - -#undef halfdelay -int halfdelay( - int t) - { return(*(int *)0); } - -#undef nodelay -int nodelay( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -#undef notimeout -int notimeout( - WINDOW *win, - NCURSES_BOOL f) - { return(*(int *)0); } - -#undef wtimeout -void wtimeout( - WINDOW *win, - int delay) - { /* void */ } - -#undef keypad -int keypad( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -#undef meta -int meta( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -#undef curs_set -int curs_set( - int vis) - { return(*(int *)0); } - -#undef typeahead -int typeahead( - int fd) - { return(*(int *)0); } - -#undef has_key -int has_key( - int keycode) - { return(*(int *)0); } - -#undef _nc_keypad -int _nc_keypad( - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./tinfo/lib_raw.c */ - -#undef raw -int raw(void) - { return(*(int *)0); } - -#undef cbreak -int cbreak(void) - { return(*(int *)0); } - -#undef qiflush -void qiflush(void) - { /* void */ } - -#undef noraw -int noraw(void) - { return(*(int *)0); } - -#undef nocbreak -int nocbreak(void) - { return(*(int *)0); } - -#undef noqiflush -void noqiflush(void) - { /* void */ } - -#undef intrflush -int intrflush( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./tinfo/lib_setup.c */ - -#undef ttytype -char ttytype[256]; -#undef LINES -int LINES; -#undef COLS -int COLS; -#undef TABSIZE -int TABSIZE; - -#undef use_env -void use_env( - NCURSES_BOOL f) - { /* void */ } - -#undef _nc_update_screensize -void _nc_update_screensize(void) - { /* void */ } - -#undef _nc_get_locale -char *_nc_get_locale(void) - { return(*(char **)0); } - -#undef _nc_unicode_locale -int _nc_unicode_locale(void) - { return(*(int *)0); } - -#undef _nc_locale_breaks_acs -int _nc_locale_breaks_acs(void) - { return(*(int *)0); } - -#undef setupterm -int setupterm( - char *tname, - int Filedes, - int *errret) - { return(*(int *)0); } - -/* ./tinfo/lib_termcap.c */ - -#undef UP -char *UP; -#undef BC -char *BC; - -#undef tgetent -int tgetent( - char *bufp, - const char *name) - { return(*(int *)0); } - -#if 0 - -#include - -#endif - -#undef tgetflag -int tgetflag( - char *id) - { return(*(int *)0); } - -#undef tgetnum -int tgetnum( - char *id) - { return(*(int *)0); } - -#undef tgetstr -char *tgetstr( - char *id, - char **area) - { return(*(char **)0); } - -/* ./tinfo/lib_termname.c */ - -#undef termname -char *termname(void) - { return(*(char **)0); } - -/* ./tinfo/lib_tgoto.c */ - -#undef tgoto -char *tgoto( - const char *string, - int x, - int y) - { return(*(char **)0); } - -/* ./tinfo/lib_ti.c */ - -#undef tigetflag -int tigetflag( - char *str) - { return(*(int *)0); } - -#undef tigetnum -int tigetnum( - char *str) - { return(*(int *)0); } - -#undef tigetstr -char *tigetstr( - char *str) - { return(*(char **)0); } - -/* ./tinfo/lib_tparm.c */ - -#undef _nc_tparm_err -int _nc_tparm_err; - -#undef _nc_tparm_analyze -int _nc_tparm_analyze( - const char *string, - char *p_is_s[9], - int *popcount) - { return(*(int *)0); } - -#undef tparm -char *tparm( - char *string, - ...) - { return(*(char **)0); } - -/* ./tinfo/lib_tputs.c */ - -#undef PC -char PC; -#undef ospeed -NCURSES_OSPEED ospeed; -#undef _nc_nulls_sent -int _nc_nulls_sent; - -#undef delay_output -int delay_output( - int ms) - { return(*(int *)0); } - -#undef _nc_flush -void _nc_flush(void) - { /* void */ } - -#undef _nc_outch -int _nc_outch( - int ch) - { return(*(int *)0); } - -#undef putp -int putp( - const char *string) - { return(*(int *)0); } - -#undef tputs -int tputs( - const char *string, - int affcnt, - int (*outc)( - int p1)) - { return(*(int *)0); } - -/* ./trace/lib_trace.c */ - -#undef _nc_tracing -unsigned _nc_tracing; -#undef _nc_tputs_trace -const char *_nc_tputs_trace = {0}; -#undef _nc_outchars -long _nc_outchars; - -#undef trace -void trace( - const unsigned int tracelevel) - { /* void */ } - -#undef _tracef -void _tracef( - const char *fmt, - ...) - { /* void */ } - -#undef _nc_retrace_bool -NCURSES_BOOL _nc_retrace_bool( - NCURSES_BOOL code) - { return(*(NCURSES_BOOL *)0); } - -#undef _nc_retrace_int -int _nc_retrace_int( - int code) - { return(*(int *)0); } - -#undef _nc_retrace_unsigned -unsigned _nc_retrace_unsigned( - unsigned code) - { return(*(unsigned *)0); } - -#undef _nc_retrace_ptr -char *_nc_retrace_ptr( - char *code) - { return(*(char **)0); } - -#undef _nc_retrace_sp -SCREEN *_nc_retrace_sp( - SCREEN *code) - { return(*(SCREEN **)0); } - -#undef _nc_retrace_win -WINDOW *_nc_retrace_win( - WINDOW *code) - { return(*(WINDOW **)0); } - -/* ./trace/lib_tracebits.c */ - -#undef _nc_trace_ttymode -char *_nc_trace_ttymode( - struct termios *tty) - { return(*(char **)0); } - -#undef _nc_tracebits -char *_nc_tracebits(void) - { return(*(char **)0); } - -/* ./trace/lib_tracechr.c */ - -#undef _tracechar -char *_tracechar( - int ch) - { return(*(char **)0); } - -/* ./tinfo/lib_ttyflags.c */ - -#undef _nc_get_tty_mode -int _nc_get_tty_mode( - struct termios *buf) - { return(*(int *)0); } - -#undef _nc_set_tty_mode -int _nc_set_tty_mode( - struct termios *buf) - { return(*(int *)0); } - -#undef def_shell_mode -int def_shell_mode(void) - { return(*(int *)0); } - -#undef def_prog_mode -int def_prog_mode(void) - { return(*(int *)0); } - -#undef reset_prog_mode -int reset_prog_mode(void) - { return(*(int *)0); } - -#undef reset_shell_mode -int reset_shell_mode(void) - { return(*(int *)0); } - -#undef savetty -int savetty(void) - { return(*(int *)0); } - -#undef resetty -int resetty(void) - { return(*(int *)0); } - -/* ./tty/lib_twait.c */ - -#undef _nc_timed_wait -int _nc_timed_wait( - int mode, - int milliseconds, - int *timeleft) - { return(*(int *)0); } - -/* ./tinfo/name_match.c */ - -#undef _nc_first_name -char *_nc_first_name( - const char *const sp) - { return(*(char **)0); } - -#undef _nc_name_match -int _nc_name_match( - const char *const namelst, - const char *const name, - const char *const delim) - { return(*(int *)0); } - -/* ./names.c */ - -#undef boolnames -char *const boolnames[] = {0}; -#undef boolfnames -char *const boolfnames[] = {0}; -#undef numnames -char *const numnames[] = {0}; -#undef numfnames -char *const numfnames[] = {0}; -#undef strnames -char *const strnames[] = {0}; -#undef strfnames -char *const strfnames[] = {0}; - -/* ./tinfo/parse_entry.c */ - -#undef _nc_parse_entry -int _nc_parse_entry( - struct entry *entryp, - int literal, - NCURSES_BOOL silent) - { return(*(int *)0); } - -#undef _nc_capcmp -int _nc_capcmp( - const char *s, - const char *t) - { return(*(int *)0); } - -/* ./tinfo/read_entry.c */ - -#undef _nc_tic_dir -const char *_nc_tic_dir( - const char *path) - { return(*(const char **)0); } - -#undef _nc_keep_tic_dir -void _nc_keep_tic_dir( - const char *path) - { /* void */ } - -#undef _nc_read_file_entry -int _nc_read_file_entry( - const char *const filename, - TERMTYPE *ptr) - { return(*(int *)0); } - -#undef _nc_read_entry -int _nc_read_entry( - const char *const tn, - char *const filename, - TERMTYPE *const tp) - { return(*(int *)0); } - -/* ./tinfo/read_termcap.c */ - -#undef _nc_read_termcap_entry -int _nc_read_termcap_entry( - const char *const tn, - TERMTYPE *const tp) - { return(*(int *)0); } - -/* ./tinfo/setbuf.c */ - -#undef _nc_set_buffer -void _nc_set_buffer( - FILE *ofp, - NCURSES_BOOL buffered) - { /* void */ } - -/* ./tinfo/strings.c */ - -#undef _nc_str_init -string_desc *_nc_str_init( - string_desc *dst, - char *src, - size_t len) - { return(*(string_desc **)0); } - -#undef _nc_str_null -string_desc *_nc_str_null( - string_desc *dst, - size_t len) - { return(*(string_desc **)0); } - -#undef _nc_str_copy -string_desc *_nc_str_copy( - string_desc *dst, - string_desc *src) - { return(*(string_desc **)0); } - -#undef _nc_safe_strcat -NCURSES_BOOL _nc_safe_strcat( - string_desc *dst, - const char *src) - { return(*(NCURSES_BOOL *)0); } - -#undef _nc_safe_strcpy -NCURSES_BOOL _nc_safe_strcpy( - string_desc *dst, - const char *src) - { return(*(NCURSES_BOOL *)0); } - -/* ./trace/trace_buf.c */ - -#undef _nc_trace_buf -char *_nc_trace_buf( - int bufnum, - size_t want) - { return(*(char **)0); } - -#undef _nc_trace_bufcat -char *_nc_trace_bufcat( - int bufnum, - const char *value) - { return(*(char **)0); } - -/* ./trace/trace_tries.c */ - -#undef _nc_trace_tries -void _nc_trace_tries( - struct tries *tree) - { /* void */ } - -/* ./unctrl.c */ - -#undef unctrl -char *unctrl( - chtype ch) - { return(*(char **)0); } - -/* ./trace/visbuf.c */ - -#undef _nc_visbuf2 -const char *_nc_visbuf2( - int bufnum, - const char *buf) - { return(*(const char **)0); } - -#undef _nc_visbuf -const char *_nc_visbuf( - const char *buf) - { return(*(const char **)0); } - -#undef _nc_visbufn -const char *_nc_visbufn( - const char *buf, - int len) - { return(*(const char **)0); } - -/* ./tinfo/write_entry.c */ - -#undef _nc_set_writedir -void _nc_set_writedir( - char *dir) - { /* void */ } - -#undef _nc_write_entry -void _nc_write_entry( - TERMTYPE *const tp) - { /* void */ } - -#undef _nc_tic_written -int _nc_tic_written(void) - { return(*(int *)0); } - -/* ./base/version.c */ - -#undef curses_version -const char *curses_version(void) - { return(*(const char **)0); } diff --git a/Build/source/libs/ncurses/ncurses/llib-lncursesw b/Build/source/libs/ncurses/ncurses/llib-lncursesw deleted file mode 100644 index a1868288d3f..00000000000 --- a/Build/source/libs/ncurses/ncurses/llib-lncursesw +++ /dev/null @@ -1,3844 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2001-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 2001-2004 * - ****************************************************************************/ -/* LINTLIBRARY */ - -/* ./tty/hardscroll.c */ - -#include - -#undef _nc_oldnums -int *_nc_oldnums; - -#undef _nc_scroll_optimize -void _nc_scroll_optimize(void) - { /* void */ } - -#undef _nc_linedump -void _nc_linedump(void) - { /* void */ } - -/* ./tty/hashmap.c */ - -#undef _nc_hash_map -void _nc_hash_map(void) - { /* void */ } - -#undef _nc_make_oldhash -void _nc_make_oldhash( - int i) - { /* void */ } - -#undef _nc_scroll_oldhash -void _nc_scroll_oldhash( - int n, - int top, - int bot) - { /* void */ } - -/* ./base/lib_addch.c */ - -#include - -#undef _nc_render -cchar_t _nc_render( - WINDOW *win, - cchar_t ch) - { return(*(cchar_t *)0); } - -#undef _nc_waddch_nosync -int _nc_waddch_nosync( - WINDOW *win, - const cchar_t c) - { return(*(int *)0); } - -#undef waddch -int waddch( - WINDOW *win, - const chtype ch) - { return(*(int *)0); } - -#undef wechochar -int wechochar( - WINDOW *win, - const chtype ch) - { return(*(int *)0); } - -/* ./base/lib_addstr.c */ - -#undef waddnstr -int waddnstr( - WINDOW *win, - const char *astr, - int n) - { return(*(int *)0); } - -#undef waddchnstr -int waddchnstr( - WINDOW *win, - const chtype *astr, - int n) - { return(*(int *)0); } - -#undef _nc_wchstrlen -int _nc_wchstrlen( - const cchar_t *s) - { return(*(int *)0); } - -#undef wadd_wchnstr -int wadd_wchnstr( - WINDOW *win, - const cchar_t *astr, - int n) - { return(*(int *)0); } - -#undef waddnwstr -int waddnwstr( - WINDOW *win, - const wchar_t *str, - int n) - { return(*(int *)0); } - -/* ./base/lib_beep.c */ - -#undef beep -int beep(void) - { return(*(int *)0); } - -/* ./base/lib_bkgd.c */ - -#undef wbkgrndset -void wbkgrndset( - WINDOW *win, - const cchar_t *ch) - { /* void */ } - -#undef wbkgdset -void wbkgdset( - WINDOW *win, - chtype ch) - { /* void */ } - -#undef wbkgrnd -int wbkgrnd( - WINDOW *win, - const cchar_t *ch) - { return(*(int *)0); } - -#undef wbkgd -int wbkgd( - WINDOW *win, - chtype ch) - { return(*(int *)0); } - -/* ./base/lib_box.c */ - -#undef wborder -int wborder( - WINDOW *win, - chtype ls, - chtype rs, - chtype ts, - chtype bs, - chtype tl, - chtype tr, - chtype bl, - chtype br) - { return(*(int *)0); } - -/* ./base/lib_chgat.c */ - -#undef wchgat -int wchgat( - WINDOW *win, - int n, - attr_t attr, - short color, - const void *opts) - { return(*(int *)0); } - -/* ./base/lib_clear.c */ - -#undef wclear -int wclear( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_clearok.c */ - -#undef clearok -int clearok( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./base/lib_clrbot.c */ - -#undef wclrtobot -int wclrtobot( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_clreol.c */ - -#undef wclrtoeol -int wclrtoeol( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_color.c */ - -#include - -#undef COLOR_PAIRS -int COLOR_PAIRS; -#undef COLORS -int COLORS; - -#undef _nc_reset_colors -NCURSES_BOOL _nc_reset_colors(void) - { return(*(NCURSES_BOOL *)0); } - -#undef start_color -int start_color(void) - { return(*(int *)0); } - -#undef init_pair -int init_pair( - short pair, - short f, - short b) - { return(*(int *)0); } - -#undef init_color -int init_color( - short color, - short r, - short g, - short b) - { return(*(int *)0); } - -#undef can_change_color -NCURSES_BOOL can_change_color(void) - { return(*(NCURSES_BOOL *)0); } - -#undef has_colors -NCURSES_BOOL has_colors(void) - { return(*(NCURSES_BOOL *)0); } - -#undef color_content -int color_content( - short color, - short *r, - short *g, - short *b) - { return(*(int *)0); } - -#undef pair_content -int pair_content( - short pair, - short *f, - short *b) - { return(*(int *)0); } - -#undef _nc_do_color -void _nc_do_color( - int old_pair, - int pair, - NCURSES_BOOL reverse, - int (*outc)( - int p1)) - { /* void */ } - -/* ./base/lib_colorset.c */ - -#undef wcolor_set -int wcolor_set( - WINDOW *win, - short color_pair_number, - void *opts) - { return(*(int *)0); } - -/* ./base/lib_delch.c */ - -#undef wdelch -int wdelch( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_delwin.c */ - -#undef delwin -int delwin( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_echo.c */ - -#undef echo -int echo(void) - { return(*(int *)0); } - -#undef noecho -int noecho(void) - { return(*(int *)0); } - -/* ./base/lib_endwin.c */ - -#undef endwin -int endwin(void) - { return(*(int *)0); } - -/* ./base/lib_erase.c */ - -#undef werase -int werase( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_flash.c */ - -#undef flash -int flash(void) - { return(*(int *)0); } - -/* ./lib_gen.c */ - -#undef addch -int addch( - const chtype z) - { return(*(int *)0); } - -#undef addchnstr -int addchnstr( - const chtype *a1, - int z) - { return(*(int *)0); } - -#undef addchstr -int addchstr( - const chtype *z) - { return(*(int *)0); } - -#undef addnstr -int addnstr( - const char *a1, - int z) - { return(*(int *)0); } - -#undef addstr -int addstr( - const char *z) - { return(*(int *)0); } - -#undef attroff -int attroff( - NCURSES_ATTR_T z) - { return(*(int *)0); } - -#undef attron -int attron( - NCURSES_ATTR_T z) - { return(*(int *)0); } - -#undef attrset -int attrset( - NCURSES_ATTR_T z) - { return(*(int *)0); } - -#undef attr_get -int attr_get( - attr_t *a1, - short *a2, - void *z) - { return(*(int *)0); } - -#undef attr_off -int attr_off( - attr_t a1, - void *z) - { return(*(int *)0); } - -#undef attr_on -int attr_on( - attr_t a1, - void *z) - { return(*(int *)0); } - -#undef attr_set -int attr_set( - attr_t a1, - short a2, - void *z) - { return(*(int *)0); } - -#undef bkgd -int bkgd( - chtype z) - { return(*(int *)0); } - -#undef bkgdset -void bkgdset( - chtype z) - { /* void */ } - -#undef border -int border( - chtype a1, - chtype a2, - chtype a3, - chtype a4, - chtype a5, - chtype a6, - chtype a7, - chtype z) - { return(*(int *)0); } - -#undef box -int box( - WINDOW *a1, - chtype a2, - chtype z) - { return(*(int *)0); } - -#undef chgat -int chgat( - int a1, - attr_t a2, - short a3, - const void *z) - { return(*(int *)0); } - -#undef clear -int clear(void) - { return(*(int *)0); } - -#undef clrtobot -int clrtobot(void) - { return(*(int *)0); } - -#undef clrtoeol -int clrtoeol(void) - { return(*(int *)0); } - -#undef color_set -int color_set( - short a1, - void *z) - { return(*(int *)0); } - -#undef COLOR_PAIR -int COLOR_PAIR( - int z) - { return(*(int *)0); } - -#undef delch -int delch(void) - { return(*(int *)0); } - -#undef deleteln -int deleteln(void) - { return(*(int *)0); } - -#undef echochar -int echochar( - const chtype z) - { return(*(int *)0); } - -#undef erase -int erase(void) - { return(*(int *)0); } - -#undef getbkgd -chtype getbkgd( - WINDOW *z) - { return(*(chtype *)0); } - -#undef getch -int getch(void) - { return(*(int *)0); } - -#undef getnstr -int getnstr( - char *a1, - int z) - { return(*(int *)0); } - -#undef getstr -int getstr( - char *z) - { return(*(int *)0); } - -#undef hline -int hline( - chtype a1, - int z) - { return(*(int *)0); } - -#undef inch -chtype inch(void) - { return(*(chtype *)0); } - -#undef inchnstr -int inchnstr( - chtype *a1, - int z) - { return(*(int *)0); } - -#undef inchstr -int inchstr( - chtype *z) - { return(*(int *)0); } - -#undef innstr -int innstr( - char *a1, - int z) - { return(*(int *)0); } - -#undef insch -int insch( - chtype z) - { return(*(int *)0); } - -#undef insdelln -int insdelln( - int z) - { return(*(int *)0); } - -#undef insertln -int insertln(void) - { return(*(int *)0); } - -#undef insnstr -int insnstr( - const char *a1, - int z) - { return(*(int *)0); } - -#undef insstr -int insstr( - const char *z) - { return(*(int *)0); } - -#undef instr -int instr( - char *z) - { return(*(int *)0); } - -#undef move -int move( - int a1, - int z) - { return(*(int *)0); } - -#undef mvaddch -int mvaddch( - int a1, - int a2, - const chtype z) - { return(*(int *)0); } - -#undef mvaddchnstr -int mvaddchnstr( - int a1, - int a2, - const chtype *a3, - int z) - { return(*(int *)0); } - -#undef mvaddchstr -int mvaddchstr( - int a1, - int a2, - const chtype *z) - { return(*(int *)0); } - -#undef mvaddnstr -int mvaddnstr( - int a1, - int a2, - const char *a3, - int z) - { return(*(int *)0); } - -#undef mvaddstr -int mvaddstr( - int a1, - int a2, - const char *z) - { return(*(int *)0); } - -#undef mvchgat -int mvchgat( - int a1, - int a2, - int a3, - attr_t a4, - short a5, - const void *z) - { return(*(int *)0); } - -#undef mvdelch -int mvdelch( - int a1, - int z) - { return(*(int *)0); } - -#undef mvgetch -int mvgetch( - int a1, - int z) - { return(*(int *)0); } - -#undef mvgetnstr -int mvgetnstr( - int a1, - int a2, - char *a3, - int z) - { return(*(int *)0); } - -#undef mvgetstr -int mvgetstr( - int a1, - int a2, - char *z) - { return(*(int *)0); } - -#undef mvhline -int mvhline( - int a1, - int a2, - chtype a3, - int z) - { return(*(int *)0); } - -#undef mvinch -chtype mvinch( - int a1, - int z) - { return(*(chtype *)0); } - -#undef mvinchnstr -int mvinchnstr( - int a1, - int a2, - chtype *a3, - int z) - { return(*(int *)0); } - -#undef mvinchstr -int mvinchstr( - int a1, - int a2, - chtype *z) - { return(*(int *)0); } - -#undef mvinnstr -int mvinnstr( - int a1, - int a2, - char *a3, - int z) - { return(*(int *)0); } - -#undef mvinsch -int mvinsch( - int a1, - int a2, - chtype z) - { return(*(int *)0); } - -#undef mvinsnstr -int mvinsnstr( - int a1, - int a2, - const char *a3, - int z) - { return(*(int *)0); } - -#undef mvinsstr -int mvinsstr( - int a1, - int a2, - const char *z) - { return(*(int *)0); } - -#undef mvinstr -int mvinstr( - int a1, - int a2, - char *z) - { return(*(int *)0); } - -#undef mvvline -int mvvline( - int a1, - int a2, - chtype a3, - int z) - { return(*(int *)0); } - -#undef mvwaddch -int mvwaddch( - WINDOW *a1, - int a2, - int a3, - const chtype z) - { return(*(int *)0); } - -#undef mvwaddchnstr -int mvwaddchnstr( - WINDOW *a1, - int a2, - int a3, - const chtype *a4, - int z) - { return(*(int *)0); } - -#undef mvwaddchstr -int mvwaddchstr( - WINDOW *a1, - int a2, - int a3, - const chtype *z) - { return(*(int *)0); } - -#undef mvwaddnstr -int mvwaddnstr( - WINDOW *a1, - int a2, - int a3, - const char *a4, - int z) - { return(*(int *)0); } - -#undef mvwaddstr -int mvwaddstr( - WINDOW *a1, - int a2, - int a3, - const char *z) - { return(*(int *)0); } - -#undef mvwchgat -int mvwchgat( - WINDOW *a1, - int a2, - int a3, - int a4, - attr_t a5, - short a6, - const void *z) - { return(*(int *)0); } - -#undef mvwdelch -int mvwdelch( - WINDOW *a1, - int a2, - int z) - { return(*(int *)0); } - -#undef mvwgetch -int mvwgetch( - WINDOW *a1, - int a2, - int z) - { return(*(int *)0); } - -#undef mvwgetnstr -int mvwgetnstr( - WINDOW *a1, - int a2, - int a3, - char *a4, - int z) - { return(*(int *)0); } - -#undef mvwgetstr -int mvwgetstr( - WINDOW *a1, - int a2, - int a3, - char *z) - { return(*(int *)0); } - -#undef mvwhline -int mvwhline( - WINDOW *a1, - int a2, - int a3, - chtype a4, - int z) - { return(*(int *)0); } - -#undef mvwinch -chtype mvwinch( - WINDOW *a1, - int a2, - int z) - { return(*(chtype *)0); } - -#undef mvwinchnstr -int mvwinchnstr( - WINDOW *a1, - int a2, - int a3, - chtype *a4, - int z) - { return(*(int *)0); } - -#undef mvwinchstr -int mvwinchstr( - WINDOW *a1, - int a2, - int a3, - chtype *z) - { return(*(int *)0); } - -#undef mvwinnstr -int mvwinnstr( - WINDOW *a1, - int a2, - int a3, - char *a4, - int z) - { return(*(int *)0); } - -#undef mvwinsch -int mvwinsch( - WINDOW *a1, - int a2, - int a3, - chtype z) - { return(*(int *)0); } - -#undef mvwinsnstr -int mvwinsnstr( - WINDOW *a1, - int a2, - int a3, - const char *a4, - int z) - { return(*(int *)0); } - -#undef mvwinsstr -int mvwinsstr( - WINDOW *a1, - int a2, - int a3, - const char *z) - { return(*(int *)0); } - -#undef mvwinstr -int mvwinstr( - WINDOW *a1, - int a2, - int a3, - char *z) - { return(*(int *)0); } - -#undef mvwvline -int mvwvline( - WINDOW *a1, - int a2, - int a3, - chtype a4, - int z) - { return(*(int *)0); } - -#undef PAIR_NUMBER -int PAIR_NUMBER( - int z) - { return(*(int *)0); } - -#undef redrawwin -int redrawwin( - WINDOW *z) - { return(*(int *)0); } - -#undef refresh -int refresh(void) - { return(*(int *)0); } - -#undef scrl -int scrl( - int z) - { return(*(int *)0); } - -#undef scroll -int scroll( - WINDOW *z) - { return(*(int *)0); } - -#undef setscrreg -int setscrreg( - int a1, - int z) - { return(*(int *)0); } - -#undef slk_attr_off -int slk_attr_off( - const attr_t a1, - void *z) - { return(*(int *)0); } - -#undef slk_attr_on -int slk_attr_on( - attr_t a1, - void *z) - { return(*(int *)0); } - -#undef standout -int standout(void) - { return(*(int *)0); } - -#undef standend -int standend(void) - { return(*(int *)0); } - -#undef timeout -void timeout( - int z) - { /* void */ } - -#undef touchline -int touchline( - WINDOW *a1, - int a2, - int z) - { return(*(int *)0); } - -#undef touchwin -int touchwin( - WINDOW *z) - { return(*(int *)0); } - -#undef untouchwin -int untouchwin( - WINDOW *z) - { return(*(int *)0); } - -#undef vline -int vline( - chtype a1, - int z) - { return(*(int *)0); } - -#undef vw_printw -int vw_printw( - WINDOW *a1, - const char *a2, - va_list z) - { return(*(int *)0); } - -#undef vw_scanw -int vw_scanw( - WINDOW *a1, - char *a2, - va_list z) - { return(*(int *)0); } - -#undef waddchstr -int waddchstr( - WINDOW *a1, - const chtype *z) - { return(*(int *)0); } - -#undef waddstr -int waddstr( - WINDOW *a1, - const char *z) - { return(*(int *)0); } - -#undef wattron -int wattron( - WINDOW *a1, - int z) - { return(*(int *)0); } - -#undef wattroff -int wattroff( - WINDOW *a1, - int z) - { return(*(int *)0); } - -#undef wattrset -int wattrset( - WINDOW *a1, - int z) - { return(*(int *)0); } - -#undef wattr_get -int wattr_get( - WINDOW *a1, - attr_t *a2, - short *a3, - void *z) - { return(*(int *)0); } - -#undef wattr_set -int wattr_set( - WINDOW *a1, - attr_t a2, - short a3, - void *z) - { return(*(int *)0); } - -#undef wdeleteln -int wdeleteln( - WINDOW *z) - { return(*(int *)0); } - -#undef wgetstr -int wgetstr( - WINDOW *a1, - char *z) - { return(*(int *)0); } - -#undef winchstr -int winchstr( - WINDOW *a1, - chtype *z) - { return(*(int *)0); } - -#undef winsertln -int winsertln( - WINDOW *z) - { return(*(int *)0); } - -#undef winstr -int winstr( - WINDOW *a1, - char *z) - { return(*(int *)0); } - -#undef wstandout -int wstandout( - WINDOW *z) - { return(*(int *)0); } - -#undef wstandend -int wstandend( - WINDOW *z) - { return(*(int *)0); } - -#undef add_wch -int add_wch( - const cchar_t *z) - { return(*(int *)0); } - -#undef add_wchnstr -int add_wchnstr( - const cchar_t *a1, - int z) - { return(*(int *)0); } - -#undef add_wchstr -int add_wchstr( - const cchar_t *z) - { return(*(int *)0); } - -#undef addnwstr -int addnwstr( - const wchar_t *a1, - int z) - { return(*(int *)0); } - -#undef addwstr -int addwstr( - const wchar_t *z) - { return(*(int *)0); } - -#undef bkgrnd -int bkgrnd( - const cchar_t *z) - { return(*(int *)0); } - -#undef bkgrndset -void bkgrndset( - const cchar_t *z) - { /* void */ } - -#undef border_set -int border_set( - const cchar_t *a1, - const cchar_t *a2, - const cchar_t *a3, - const cchar_t *a4, - const cchar_t *a5, - const cchar_t *a6, - const cchar_t *a7, - const cchar_t *z) - { return(*(int *)0); } - -#undef box_set -int box_set( - WINDOW *a1, - const cchar_t *a2, - const cchar_t *z) - { return(*(int *)0); } - -#undef echo_wchar -int echo_wchar( - const cchar_t *z) - { return(*(int *)0); } - -#undef get_wch -int get_wch( - wint_t *z) - { return(*(int *)0); } - -#undef get_wstr -int get_wstr( - wint_t *z) - { return(*(int *)0); } - -#undef getbkgrnd -int getbkgrnd( - cchar_t *z) - { return(*(int *)0); } - -#undef getn_wstr -int getn_wstr( - wint_t *a1, - int z) - { return(*(int *)0); } - -#undef hline_set -int hline_set( - const cchar_t *a1, - int z) - { return(*(int *)0); } - -#undef in_wch -int in_wch( - cchar_t *z) - { return(*(int *)0); } - -#undef in_wchnstr -int in_wchnstr( - cchar_t *a1, - int z) - { return(*(int *)0); } - -#undef in_wchstr -int in_wchstr( - cchar_t *z) - { return(*(int *)0); } - -#undef innwstr -int innwstr( - wchar_t *a1, - int z) - { return(*(int *)0); } - -#undef ins_nwstr -int ins_nwstr( - const wchar_t *a1, - int z) - { return(*(int *)0); } - -#undef ins_wch -int ins_wch( - const cchar_t *z) - { return(*(int *)0); } - -#undef ins_wstr -int ins_wstr( - const wchar_t *z) - { return(*(int *)0); } - -#undef inwstr -int inwstr( - wchar_t *z) - { return(*(int *)0); } - -#undef mvadd_wch -int mvadd_wch( - int a1, - int a2, - const cchar_t *z) - { return(*(int *)0); } - -#undef mvadd_wchnstr -int mvadd_wchnstr( - int a1, - int a2, - const cchar_t *a3, - int z) - { return(*(int *)0); } - -#undef mvadd_wchstr -int mvadd_wchstr( - int a1, - int a2, - const cchar_t *z) - { return(*(int *)0); } - -#undef mvaddnwstr -int mvaddnwstr( - int a1, - int a2, - const wchar_t *a3, - int z) - { return(*(int *)0); } - -#undef mvaddwstr -int mvaddwstr( - int a1, - int a2, - const wchar_t *z) - { return(*(int *)0); } - -#undef mvget_wch -int mvget_wch( - int a1, - int a2, - wint_t *z) - { return(*(int *)0); } - -#undef mvget_wstr -int mvget_wstr( - int a1, - int a2, - wint_t *z) - { return(*(int *)0); } - -#undef mvgetn_wstr -int mvgetn_wstr( - int a1, - int a2, - wint_t *a3, - int z) - { return(*(int *)0); } - -#undef mvhline_set -int mvhline_set( - int a1, - int a2, - const cchar_t *a3, - int z) - { return(*(int *)0); } - -#undef mvin_wch -int mvin_wch( - int a1, - int a2, - cchar_t *z) - { return(*(int *)0); } - -#undef mvin_wchnstr -int mvin_wchnstr( - int a1, - int a2, - cchar_t *a3, - int z) - { return(*(int *)0); } - -#undef mvin_wchstr -int mvin_wchstr( - int a1, - int a2, - cchar_t *z) - { return(*(int *)0); } - -#undef mvinnwstr -int mvinnwstr( - int a1, - int a2, - wchar_t *a3, - int z) - { return(*(int *)0); } - -#undef mvins_nwstr -int mvins_nwstr( - int a1, - int a2, - const wchar_t *a3, - int z) - { return(*(int *)0); } - -#undef mvins_wch -int mvins_wch( - int a1, - int a2, - const cchar_t *z) - { return(*(int *)0); } - -#undef mvins_wstr -int mvins_wstr( - int a1, - int a2, - const wchar_t *z) - { return(*(int *)0); } - -#undef mvinwstr -int mvinwstr( - int a1, - int a2, - wchar_t *z) - { return(*(int *)0); } - -#undef mvvline_set -int mvvline_set( - int a1, - int a2, - const cchar_t *a3, - int z) - { return(*(int *)0); } - -#undef mvwadd_wch -int mvwadd_wch( - WINDOW *a1, - int a2, - int a3, - const cchar_t *z) - { return(*(int *)0); } - -#undef mvwadd_wchnstr -int mvwadd_wchnstr( - WINDOW *a1, - int a2, - int a3, - const cchar_t *a4, - int z) - { return(*(int *)0); } - -#undef mvwadd_wchstr -int mvwadd_wchstr( - WINDOW *a1, - int a2, - int a3, - const cchar_t *z) - { return(*(int *)0); } - -#undef mvwaddnwstr -int mvwaddnwstr( - WINDOW *a1, - int a2, - int a3, - const wchar_t *a4, - int z) - { return(*(int *)0); } - -#undef mvwaddwstr -int mvwaddwstr( - WINDOW *a1, - int a2, - int a3, - const wchar_t *z) - { return(*(int *)0); } - -#undef mvwget_wch -int mvwget_wch( - WINDOW *a1, - int a2, - int a3, - wint_t *z) - { return(*(int *)0); } - -#undef mvwget_wstr -int mvwget_wstr( - WINDOW *a1, - int a2, - int a3, - wint_t *z) - { return(*(int *)0); } - -#undef mvwgetn_wstr -int mvwgetn_wstr( - WINDOW *a1, - int a2, - int a3, - wint_t *a4, - int z) - { return(*(int *)0); } - -#undef mvwhline_set -int mvwhline_set( - WINDOW *a1, - int a2, - int a3, - const cchar_t *a4, - int z) - { return(*(int *)0); } - -#undef mvwin_wch -int mvwin_wch( - WINDOW *a1, - int a2, - int a3, - cchar_t *z) - { return(*(int *)0); } - -#undef mvwin_wchnstr -int mvwin_wchnstr( - WINDOW *a1, - int a2, - int a3, - cchar_t *a4, - int z) - { return(*(int *)0); } - -#undef mvwin_wchstr -int mvwin_wchstr( - WINDOW *a1, - int a2, - int a3, - cchar_t *z) - { return(*(int *)0); } - -#undef mvwinnwstr -int mvwinnwstr( - WINDOW *a1, - int a2, - int a3, - wchar_t *a4, - int z) - { return(*(int *)0); } - -#undef mvwins_nwstr -int mvwins_nwstr( - WINDOW *a1, - int a2, - int a3, - const wchar_t *a4, - int z) - { return(*(int *)0); } - -#undef mvwins_wch -int mvwins_wch( - WINDOW *a1, - int a2, - int a3, - const cchar_t *z) - { return(*(int *)0); } - -#undef mvwins_wstr -int mvwins_wstr( - WINDOW *a1, - int a2, - int a3, - const wchar_t *z) - { return(*(int *)0); } - -#undef mvwinwstr -int mvwinwstr( - WINDOW *a1, - int a2, - int a3, - wchar_t *z) - { return(*(int *)0); } - -#undef mvwvline_set -int mvwvline_set( - WINDOW *a1, - int a2, - int a3, - const cchar_t *a4, - int z) - { return(*(int *)0); } - -#undef vline_set -int vline_set( - const cchar_t *a1, - int z) - { return(*(int *)0); } - -#undef wadd_wchstr -int wadd_wchstr( - WINDOW *a1, - const cchar_t *z) - { return(*(int *)0); } - -#undef waddwstr -int waddwstr( - WINDOW *a1, - const wchar_t *z) - { return(*(int *)0); } - -#undef wget_wstr -int wget_wstr( - WINDOW *a1, - wint_t *z) - { return(*(int *)0); } - -#undef win_wchstr -int win_wchstr( - WINDOW *a1, - cchar_t *z) - { return(*(int *)0); } - -#undef wins_wstr -int wins_wstr( - WINDOW *a1, - const wchar_t *z) - { return(*(int *)0); } - -#undef mouse_trafo -NCURSES_BOOL mouse_trafo( - int *a1, - int *a2, - NCURSES_BOOL z) - { return(*(NCURSES_BOOL *)0); } - -/* ./base/lib_getch.c */ - -#include - -#undef ESCDELAY -int ESCDELAY; - -#undef _nc_wgetch -int _nc_wgetch( - WINDOW *win, - unsigned long *result, - int use_meta) - { return(*(int *)0); } - -#undef wgetch -int wgetch( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_getstr.c */ - -#undef wgetnstr -int wgetnstr( - WINDOW *win, - char *str, - int maxlen) - { return(*(int *)0); } - -/* ./base/lib_hline.c */ - -#undef whline -int whline( - WINDOW *win, - chtype ch, - int n) - { return(*(int *)0); } - -/* ./base/lib_immedok.c */ - -#undef immedok -void immedok( - WINDOW *win, - NCURSES_BOOL flag) - { /* void */ } - -/* ./base/lib_inchstr.c */ - -#undef winchnstr -int winchnstr( - WINDOW *win, - chtype *str, - int n) - { return(*(int *)0); } - -/* ./base/lib_initscr.c */ - -#undef initscr -WINDOW *initscr(void) - { return(*(WINDOW **)0); } - -/* ./base/lib_insch.c */ - -#undef _nc_insert_ch -void _nc_insert_ch( - WINDOW *win, - chtype ch) - { /* void */ } - -#undef winsch -int winsch( - WINDOW *win, - chtype c) - { return(*(int *)0); } - -#undef winsstr -int winsstr( - WINDOW *win, - const char *s) - { return(*(int *)0); } - -/* ./base/lib_insdel.c */ - -#undef winsdelln -int winsdelln( - WINDOW *win, - int n) - { return(*(int *)0); } - -/* ./base/lib_insnstr.c */ - -#undef winsnstr -int winsnstr( - WINDOW *win, - const char *s, - int n) - { return(*(int *)0); } - -/* ./base/lib_instr.c */ - -#undef winnstr -int winnstr( - WINDOW *win, - char *str, - int n) - { return(*(int *)0); } - -/* ./base/lib_isendwin.c */ - -#undef isendwin -NCURSES_BOOL isendwin(void) - { return(*(NCURSES_BOOL *)0); } - -/* ./base/lib_leaveok.c */ - -#undef leaveok -int leaveok( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./base/lib_mouse.c */ - -#undef getmouse -int getmouse( - MEVENT *aevent) - { return(*(int *)0); } - -#undef ungetmouse -int ungetmouse( - MEVENT *aevent) - { return(*(int *)0); } - -#undef mousemask -mmask_t mousemask( - mmask_t newmask, - mmask_t *oldmask) - { return(*(mmask_t *)0); } - -#undef wenclose -NCURSES_BOOL wenclose( - const WINDOW *win, - int y, - int x) - { return(*(NCURSES_BOOL *)0); } - -#undef mouseinterval -int mouseinterval( - int maxclick) - { return(*(int *)0); } - -#undef _nc_has_mouse -int _nc_has_mouse(void) - { return(*(int *)0); } - -#undef wmouse_trafo -NCURSES_BOOL wmouse_trafo( - const WINDOW *win, - int *pY, - int *pX, - NCURSES_BOOL to_screen) - { return(*(NCURSES_BOOL *)0); } - -/* ./base/lib_move.c */ - -#undef wmove -int wmove( - WINDOW *win, - int y, - int x) - { return(*(int *)0); } - -/* ./tty/lib_mvcur.c */ - -#undef _nc_msec_cost -int _nc_msec_cost( - const char *const cap, - int affcnt) - { return(*(int *)0); } - -#undef _nc_mvcur_resume -void _nc_mvcur_resume(void) - { /* void */ } - -#undef _nc_mvcur_init -void _nc_mvcur_init(void) - { /* void */ } - -#undef _nc_mvcur_wrap -void _nc_mvcur_wrap(void) - { /* void */ } - -#undef mvcur -int mvcur( - int yold, - int xold, - int ynew, - int xnew) - { return(*(int *)0); } - -#undef _nc_optimize_enable -int _nc_optimize_enable; - -/* ./base/lib_mvwin.c */ - -#undef mvwin -int mvwin( - WINDOW *win, - int by, - int bx) - { return(*(int *)0); } - -/* ./base/lib_newterm.c */ - -#undef filter -void filter(void) - { /* void */ } - -#undef newterm -SCREEN *newterm( - char *name, - FILE *ofp, - FILE *ifp) - { return(*(SCREEN **)0); } - -/* ./base/lib_newwin.c */ - -#undef _nc_freewin -int _nc_freewin( - WINDOW *win) - { return(*(int *)0); } - -#undef newwin -WINDOW *newwin( - int num_lines, - int num_columns, - int begy, - int begx) - { return(*(WINDOW **)0); } - -#undef derwin -WINDOW *derwin( - WINDOW *orig, - int num_lines, - int num_columns, - int begy, - int begx) - { return(*(WINDOW **)0); } - -#undef subwin -WINDOW *subwin( - WINDOW *w, - int l, - int c, - int y, - int x) - { return(*(WINDOW **)0); } - -#undef _nc_makenew -WINDOW *_nc_makenew( - int num_lines, - int num_columns, - int begy, - int begx, - int flags) - { return(*(WINDOW **)0); } - -/* ./base/lib_nl.c */ - -#undef nl -int nl(void) - { return(*(int *)0); } - -#undef nonl -int nonl(void) - { return(*(int *)0); } - -/* ./base/lib_overlay.c */ - -#undef overlay -int overlay( - const WINDOW *win1, - WINDOW *win2) - { return(*(int *)0); } - -#undef overwrite -int overwrite( - const WINDOW *win1, - WINDOW *win2) - { return(*(int *)0); } - -#undef copywin -int copywin( - const WINDOW *src, - WINDOW *dst, - int sminrow, - int smincol, - int dminrow, - int dmincol, - int dmaxrow, - int dmaxcol, - int over) - { return(*(int *)0); } - -/* ./base/lib_pad.c */ - -#undef newpad -WINDOW *newpad( - int l, - int c) - { return(*(WINDOW **)0); } - -#undef subpad -WINDOW *subpad( - WINDOW *orig, - int l, - int c, - int begy, - int begx) - { return(*(WINDOW **)0); } - -#undef prefresh -int prefresh( - WINDOW *win, - int pminrow, - int pmincol, - int sminrow, - int smincol, - int smaxrow, - int smaxcol) - { return(*(int *)0); } - -#undef pnoutrefresh -int pnoutrefresh( - WINDOW *win, - int pminrow, - int pmincol, - int sminrow, - int smincol, - int smaxrow, - int smaxcol) - { return(*(int *)0); } - -#undef pechochar -int pechochar( - WINDOW *pad, - const chtype ch) - { return(*(int *)0); } - -/* ./base/lib_printw.c */ - -#undef printw -int printw( - const char *fmt, - ...) - { return(*(int *)0); } - -#undef wprintw -int wprintw( - WINDOW *win, - const char *fmt, - ...) - { return(*(int *)0); } - -#undef mvprintw -int mvprintw( - int y, - int x, - const char *fmt, - ...) - { return(*(int *)0); } - -#undef mvwprintw -int mvwprintw( - WINDOW *win, - int y, - int x, - const char *fmt, - ...) - { return(*(int *)0); } - -#undef vwprintw -int vwprintw( - WINDOW *win, - const char *fmt, - va_list argp) - { return(*(int *)0); } - -/* ./base/lib_redrawln.c */ - -#undef wredrawln -int wredrawln( - WINDOW *win, - int beg, - int num) - { return(*(int *)0); } - -/* ./base/lib_refresh.c */ - -#undef wrefresh -int wrefresh( - WINDOW *win) - { return(*(int *)0); } - -#undef wnoutrefresh -int wnoutrefresh( - WINDOW *win) - { return(*(int *)0); } - -/* ./base/lib_restart.c */ - -#undef restartterm -int restartterm( - char *termp, - int filenum, - int *errret) - { return(*(int *)0); } - -/* ./base/lib_scanw.c */ - -#undef vwscanw -int vwscanw( - WINDOW *win, - char *fmt, - va_list argp) - { return(*(int *)0); } - -#undef scanw -int scanw( - char *fmt, - ...) - { return(*(int *)0); } - -#undef wscanw -int wscanw( - WINDOW *win, - char *fmt, - ...) - { return(*(int *)0); } - -#undef mvscanw -int mvscanw( - int y, - int x, - char *fmt, - ...) - { return(*(int *)0); } - -#undef mvwscanw -int mvwscanw( - WINDOW *win, - int y, - int x, - char *fmt, - ...) - { return(*(int *)0); } - -/* ./base/lib_screen.c */ - -#undef getwin -WINDOW *getwin( - FILE *filep) - { return(*(WINDOW **)0); } - -#undef putwin -int putwin( - WINDOW *win, - FILE *filep) - { return(*(int *)0); } - -#undef scr_restore -int scr_restore( - const char *file) - { return(*(int *)0); } - -#undef scr_dump -int scr_dump( - const char *file) - { return(*(int *)0); } - -#undef scr_init -int scr_init( - const char *file) - { return(*(int *)0); } - -#undef scr_set -int scr_set( - const char *file) - { return(*(int *)0); } - -/* ./base/lib_scroll.c */ - -#undef _nc_scroll_window -void _nc_scroll_window( - WINDOW *win, - int const n, - short const top, - short const bottom, - cchar_t blank) - { /* void */ } - -#undef wscrl -int wscrl( - WINDOW *win, - int n) - { return(*(int *)0); } - -/* ./base/lib_scrollok.c */ - -#undef scrollok -int scrollok( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./base/lib_scrreg.c */ - -#undef wsetscrreg -int wsetscrreg( - WINDOW *win, - int top, - int bottom) - { return(*(int *)0); } - -/* ./base/lib_set_term.c */ - -#undef set_term -SCREEN *set_term( - SCREEN *screenp) - { return(*(SCREEN **)0); } - -#undef delscreen -void delscreen( - SCREEN *sp) - { /* void */ } - -#undef _nc_setupscreen -int _nc_setupscreen( - short slines, - short const scolumns, - FILE *output) - { return(*(int *)0); } - -#undef _nc_ripoffline -int _nc_ripoffline( - int line, - int (*init)( - WINDOW *p1, - int p2)) - { return(*(int *)0); } - -#undef ripoffline -int ripoffline( - int line, - int (*init)( - WINDOW *p1, - int p2)) - { return(*(int *)0); } - -/* ./base/lib_slk.c */ - -#undef _nc_slk_format -int _nc_slk_format; - -#undef _nc_slk_initialize -int _nc_slk_initialize( - WINDOW *stwin, - int cols) - { return(*(int *)0); } - -#undef slk_restore -int slk_restore(void) - { return(*(int *)0); } - -/* ./base/lib_slkatr_set.c */ - -#undef slk_attr_set -int slk_attr_set( - const attr_t attr, - short color_pair_number, - void *opts) - { return(*(int *)0); } - -/* ./base/lib_slkatrof.c */ - -#undef slk_attroff -int slk_attroff( - const chtype attr) - { return(*(int *)0); } - -/* ./base/lib_slkatron.c */ - -#undef slk_attron -int slk_attron( - const chtype attr) - { return(*(int *)0); } - -/* ./base/lib_slkatrset.c */ - -#undef slk_attrset -int slk_attrset( - const chtype attr) - { return(*(int *)0); } - -/* ./base/lib_slkattr.c */ - -#undef slk_attr -attr_t slk_attr(void) - { return(*(attr_t *)0); } - -/* ./base/lib_slkclear.c */ - -#undef slk_clear -int slk_clear(void) - { return(*(int *)0); } - -/* ./base/lib_slkcolor.c */ - -#undef slk_color -int slk_color( - short color_pair_number) - { return(*(int *)0); } - -/* ./base/lib_slkinit.c */ - -#undef slk_init -int slk_init( - int format) - { return(*(int *)0); } - -/* ./base/lib_slklab.c */ - -#undef slk_label -char *slk_label( - int n) - { return(*(char **)0); } - -/* ./base/lib_slkrefr.c */ - -#undef slk_noutrefresh -int slk_noutrefresh(void) - { return(*(int *)0); } - -#undef slk_refresh -int slk_refresh(void) - { return(*(int *)0); } - -/* ./base/lib_slkset.c */ - -#undef slk_set -int slk_set( - int i, - const char *astr, - int format) - { return(*(int *)0); } - -/* ./base/lib_slktouch.c */ - -#undef slk_touch -int slk_touch(void) - { return(*(int *)0); } - -/* ./base/lib_touch.c */ - -#undef is_linetouched -NCURSES_BOOL is_linetouched( - WINDOW *win, - int line) - { return(*(NCURSES_BOOL *)0); } - -#undef is_wintouched -NCURSES_BOOL is_wintouched( - WINDOW *win) - { return(*(NCURSES_BOOL *)0); } - -#undef wtouchln -int wtouchln( - WINDOW *win, - int y, - int n, - int changed) - { return(*(int *)0); } - -/* ./trace/lib_traceatr.c */ - -#undef _traceattr2 -char *_traceattr2( - int bufnum, - attr_t newmode) - { return(*(char **)0); } - -#undef _traceattr -char *_traceattr( - attr_t newmode) - { return(*(char **)0); } - -#undef _nc_retrace_attr_t -attr_t _nc_retrace_attr_t( - attr_t code) - { return(*(attr_t *)0); } - -#undef _nc_altcharset_name -const char *_nc_altcharset_name( - attr_t attr, - chtype ch) - { return(*(const char **)0); } - -#undef _tracechtype2 -char *_tracechtype2( - int bufnum, - chtype ch) - { return(*(char **)0); } - -#undef _tracechtype -char *_tracechtype( - chtype ch) - { return(*(char **)0); } - -#undef _nc_retrace_chtype -chtype _nc_retrace_chtype( - chtype code) - { return(*(chtype *)0); } - -#undef _tracecchar_t2 -char *_tracecchar_t2( - int bufnum, - const cchar_t *ch) - { return(*(char **)0); } - -#undef _tracecchar_t -char *_tracecchar_t( - const cchar_t *ch) - { return(*(char **)0); } - -/* ./trace/lib_tracedmp.c */ - -#undef _tracedump -void _tracedump( - const char *name, - WINDOW *win) - { /* void */ } - -/* ./trace/lib_tracemse.c */ - -#undef _tracemouse -char *_tracemouse( - MEVENT const *ep) - { return(*(char **)0); } - -/* ./tty/lib_tstp.c */ - -#include - -#undef _nc_signal_handler -void _nc_signal_handler( - NCURSES_BOOL enable) - { /* void */ } - -/* ./base/lib_ungetch.c */ - -#undef _nc_fifo_dump -void _nc_fifo_dump(void) - { /* void */ } - -#undef ungetch -int ungetch( - int ch) - { return(*(int *)0); } - -/* ./tty/lib_vidattr.c */ - -#undef vidputs -int vidputs( - chtype newmode, - int (*outc)( - int p1)) - { return(*(int *)0); } - -#undef vidattr -int vidattr( - chtype newmode) - { return(*(int *)0); } - -#undef termattrs -chtype termattrs(void) - { return(*(chtype *)0); } - -/* ./base/lib_vline.c */ - -#undef wvline -int wvline( - WINDOW *win, - chtype ch, - int n) - { return(*(int *)0); } - -/* ./base/lib_wattroff.c */ - -#undef wattr_off -int wattr_off( - WINDOW *win, - attr_t at, - void *opts) - { return(*(int *)0); } - -/* ./base/lib_wattron.c */ - -#undef wattr_on -int wattr_on( - WINDOW *win, - attr_t at, - void *opts) - { return(*(int *)0); } - -/* ./base/lib_winch.c */ - -#undef winch -chtype winch( - WINDOW *win) - { return(*(chtype *)0); } - -/* ./base/lib_window.c */ - -#undef _nc_synchook -void _nc_synchook( - WINDOW *win) - { /* void */ } - -#undef mvderwin -int mvderwin( - WINDOW *win, - int y, - int x) - { return(*(int *)0); } - -#undef syncok -int syncok( - WINDOW *win, - NCURSES_BOOL bf) - { return(*(int *)0); } - -#undef wsyncup -void wsyncup( - WINDOW *win) - { /* void */ } - -#undef wsyncdown -void wsyncdown( - WINDOW *win) - { /* void */ } - -#undef wcursyncup -void wcursyncup( - WINDOW *win) - { /* void */ } - -#undef dupwin -WINDOW *dupwin( - WINDOW *win) - { return(*(WINDOW **)0); } - -/* ./base/nc_panel.c */ - -#undef _nc_panelhook -struct panelhook *_nc_panelhook(void) - { return(*(struct panelhook **)0); } - -/* ./base/safe_sprintf.c */ - -#undef _nc_printf_string -char *_nc_printf_string( - const char *fmt, - va_list ap) - { return(*(char **)0); } - -/* ./tty/tty_update.c */ - -#include -#include - -#undef doupdate -int doupdate(void) - { return(*(int *)0); } - -#undef _nc_scrolln -int _nc_scrolln( - int n, - int top, - int bot, - int maxy) - { return(*(int *)0); } - -#undef _nc_screen_resume -void _nc_screen_resume(void) - { /* void */ } - -#undef _nc_screen_init -void _nc_screen_init(void) - { /* void */ } - -#undef _nc_screen_wrap -void _nc_screen_wrap(void) - { /* void */ } - -#undef _nc_do_xmc_glitch -void _nc_do_xmc_glitch( - attr_t previous) - { /* void */ } - -/* ./trace/varargs.c */ - -#undef _nc_varargs -char *_nc_varargs( - const char *fmt, - va_list ap) - { return(*(char **)0); } - -/* ./base/memmove.c */ - -#undef _nc_memmove -void _nc_memmove(void) - { /* void */ } - -/* ./base/vsscanf.c */ - -#undef _nc_vsscanf -void _nc_vsscanf(void) - { /* void */ } - -/* ./base/lib_freeall.c */ - -#include - -#undef _nc_freeall -void _nc_freeall(void) - { /* void */ } - -/* ./widechar/charable.c */ - -#undef _nc_is_charable -NCURSES_BOOL _nc_is_charable( - wchar_t ch) - { return(*(NCURSES_BOOL *)0); } - -#undef _nc_to_char -int _nc_to_char( - wint_t ch) - { return(*(int *)0); } - -#undef _nc_to_widechar -wint_t _nc_to_widechar( - int ch) - { return(*(wint_t *)0); } - -/* ./widechar/lib_add_wch.c */ - -#undef wadd_wch -int wadd_wch( - WINDOW *win, - const cchar_t *wch) - { return(*(int *)0); } - -#undef wecho_wchar -int wecho_wchar( - WINDOW *win, - const cchar_t *wch) - { return(*(int *)0); } - -/* ./widechar/lib_box_set.c */ - -#undef wborder_set -int wborder_set( - WINDOW *win, - const cchar_t *ls, - const cchar_t *rs, - const cchar_t *ts, - const cchar_t *bs, - const cchar_t *tl, - const cchar_t *tr, - const cchar_t *bl, - const cchar_t *br) - { return(*(int *)0); } - -/* ./widechar/lib_cchar.c */ - -#undef setcchar -int setcchar( - cchar_t *wcval, - const wchar_t *wch, - const attr_t attrs, - short color_pair, - const void *opts) - { return(*(int *)0); } - -#undef getcchar -int getcchar( - const cchar_t *wcval, - wchar_t *wch, - attr_t *attrs, - short *color_pair, - void *opts) - { return(*(int *)0); } - -/* ./widechar/lib_get_wch.c */ - -#undef wget_wch -int wget_wch( - WINDOW *win, - wint_t *result) - { return(*(int *)0); } - -/* ./widechar/lib_erasewchar.c */ - -#undef erasewchar -int erasewchar( - wchar_t *wch) - { return(*(int *)0); } - -#undef killwchar -int killwchar( - wchar_t *wch) - { return(*(int *)0); } - -/* ./widechar/lib_get_wstr.c */ - -#undef wgetn_wstr -int wgetn_wstr( - WINDOW *win, - wint_t *str, - int maxlen) - { return(*(int *)0); } - -/* ./widechar/lib_hline_set.c */ - -#undef whline_set -int whline_set( - WINDOW *win, - const cchar_t *ch, - int n) - { return(*(int *)0); } - -/* ./widechar/lib_in_wch.c */ - -#undef win_wch -int win_wch( - WINDOW *win, - cchar_t *wcval) - { return(*(int *)0); } - -/* ./widechar/lib_in_wchnstr.c */ - -#undef win_wchnstr -int win_wchnstr( - WINDOW *win, - cchar_t *wchstr, - int n) - { return(*(int *)0); } - -/* ./widechar/lib_ins_wch.c */ - -#undef wins_wch -int wins_wch( - WINDOW *win, - const cchar_t *wch) - { return(*(int *)0); } - -#undef wins_nwstr -int wins_nwstr( - WINDOW *win, - const wchar_t *wstr, - int n) - { return(*(int *)0); } - -/* ./widechar/lib_inwstr.c */ - -#undef winnwstr -int winnwstr( - WINDOW *win, - wchar_t *wstr, - int n) - { return(*(int *)0); } - -#undef winwstr -int winwstr( - WINDOW *win, - wchar_t *wstr) - { return(*(int *)0); } - -/* ./widechar/lib_pecho_wchar.c */ - -#undef pecho_wchar -int pecho_wchar( - WINDOW *pad, - const cchar_t *wch) - { return(*(int *)0); } - -/* ./widechar/lib_slk_wset.c */ - -#undef slk_wset -int slk_wset( - int i, - const wchar_t *astr, - int format) - { return(*(int *)0); } - -/* ./widechar/lib_unget_wch.c */ - -#undef unget_wch -int unget_wch( - const wchar_t wch) - { return(*(int *)0); } - -/* ./widechar/lib_vid_attr.c */ - -#undef vid_puts -int vid_puts( - attr_t newmode, - short pair, - void *opts, - int (*outc)( - int p1)) - { return(*(int *)0); } - -#undef vid_attr -int vid_attr( - attr_t newmode, - short pair, - void *opts) - { return(*(int *)0); } - -#undef term_attrs -attr_t term_attrs(void) - { return(*(attr_t *)0); } - -/* ./widechar/lib_vline_set.c */ - -#undef wvline_set -int wvline_set( - WINDOW *win, - const cchar_t *ch, - int n) - { return(*(int *)0); } - -/* ./widechar/lib_wacs.c */ - -#undef _nc_wacs -cchar_t *_nc_wacs; - -#undef _nc_init_wacs -void _nc_init_wacs(void) - { /* void */ } - -/* ./widechar/lib_wunctrl.c */ - -#undef wunctrl -wchar_t *wunctrl( - cchar_t *wc) - { return(*(wchar_t **)0); } - -/* ./base/define_key.c */ - -#undef define_key -int define_key( - const char *str, - int keycode) - { return(*(int *)0); } - -/* ./expanded.c */ - -#undef _nc_toggle_attr_on -void _nc_toggle_attr_on( - attr_t *S, - attr_t at) - { /* void */ } - -#undef _nc_toggle_attr_off -void _nc_toggle_attr_off( - attr_t *S, - attr_t at) - { /* void */ } - -#undef _nc_DelCharCost -int _nc_DelCharCost( - int count) - { return(*(int *)0); } - -#undef _nc_InsCharCost -int _nc_InsCharCost( - int count) - { return(*(int *)0); } - -#undef _nc_UpdateAttrs -void _nc_UpdateAttrs( - chtype c) - { /* void */ } - -/* ./base/key_defined.c */ - -#undef key_defined -int key_defined( - const char *str) - { return(*(int *)0); } - -/* ./base/keybound.c */ - -#undef keybound -char *keybound( - int code, - int count) - { return(*(char **)0); } - -/* ./base/keyok.c */ - -#undef keyok -int keyok( - int c, - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./base/lib_dft_fgbg.c */ - -#undef use_default_colors -int use_default_colors(void) - { return(*(int *)0); } - -#undef assume_default_colors -int assume_default_colors( - int fg, - int bg) - { return(*(int *)0); } - -/* ./tinfo/lib_print.c */ - -#undef mcprint -int mcprint( - char *data, - int len) - { return(*(int *)0); } - -/* ./base/resizeterm.c */ - -#undef is_term_resized -NCURSES_BOOL is_term_resized( - int ToLines, - int ToCols) - { return(*(NCURSES_BOOL *)0); } - -#undef resize_term -int resize_term( - int ToLines, - int ToCols) - { return(*(int *)0); } - -#undef resizeterm -int resizeterm( - int ToLines, - int ToCols) - { return(*(int *)0); } - -/* ./trace/trace_xnames.c */ - -#undef _nc_trace_xnames -void _nc_trace_xnames( - TERMTYPE *tp) - { /* void */ } - -/* ./base/tries.c */ - -#undef _nc_expand_try -char *_nc_expand_try( - struct tries *tree, - unsigned short code, - int *count, - size_t len) - { return(*(char **)0); } - -#undef _nc_remove_key -int _nc_remove_key( - struct tries **tree, - unsigned short code) - { return(*(int *)0); } - -#undef _nc_remove_string -int _nc_remove_string( - struct tries **tree, - const char *string) - { return(*(int *)0); } - -/* ./base/wresize.c */ - -#undef wresize -int wresize( - WINDOW *win, - int ToLines, - int ToCols) - { return(*(int *)0); } - -/* ./tinfo/access.c */ - -#undef _nc_rootname -char *_nc_rootname( - char *path) - { return(*(char **)0); } - -#undef _nc_pathlast -unsigned _nc_pathlast( - const char *path) - { return(*(unsigned *)0); } - -#undef _nc_basename -char *_nc_basename( - char *path) - { return(*(char **)0); } - -#undef _nc_access -int _nc_access( - const char *path, - int mode) - { return(*(int *)0); } - -#undef _nc_env_access -int _nc_env_access(void) - { return(*(int *)0); } - -/* ./tinfo/add_tries.c */ - -#undef _nc_add_to_try -void _nc_add_to_try( - struct tries **tree, - const char *str, - unsigned short code) - { /* void */ } - -/* ./tinfo/alloc_entry.c */ - -#undef _nc_init_entry -void _nc_init_entry( - TERMTYPE *const tp) - { /* void */ } - -#undef _nc_copy_entry -ENTRY *_nc_copy_entry( - ENTRY *oldp) - { return(*(ENTRY **)0); } - -#undef _nc_save_str -char *_nc_save_str( - const char *const string) - { return(*(char **)0); } - -#undef _nc_wrap_entry -void _nc_wrap_entry( - ENTRY *const ep, - NCURSES_BOOL copy_strings) - { /* void */ } - -#undef _nc_merge_entry -void _nc_merge_entry( - TERMTYPE *const to, - TERMTYPE *const from) - { /* void */ } - -/* ./tinfo/alloc_ttype.c */ - -#undef _nc_align_termtype -void _nc_align_termtype( - TERMTYPE *to, - TERMTYPE *from) - { /* void */ } - -#undef _nc_copy_termtype -void _nc_copy_termtype( - TERMTYPE *dst, - TERMTYPE *src) - { /* void */ } - -/* ./tinfo/captoinfo.c */ - -#undef _nc_captoinfo -char *_nc_captoinfo( - const char *cap, - const char *s, - int const parameterized) - { return(*(char **)0); } - -#undef _nc_infotocap -char *_nc_infotocap( - const char *cap, - const char *str, - int const parameterized) - { return(*(char **)0); } - -/* ./codes.c */ - -#undef boolcodes -char *const boolcodes[] = {0}; -#undef numcodes -char *const numcodes[] = {0}; -#undef strcodes -char *const strcodes[] = {0}; - -/* ./comp_captab.c */ - -#include - -#undef _nc_info_hash_table -const struct name_table_entry *const _nc_info_hash_table[995] = {0}; -#undef _nc_cap_hash_table -const struct name_table_entry *const _nc_cap_hash_table[995] = {0}; -#undef _nc_capalias_table -const struct alias _nc_capalias_table[] = {0}; -#undef _nc_infoalias_table -const struct alias _nc_infoalias_table[] = {0}; - -#undef _nc_get_table -const struct name_table_entry *_nc_get_table( - NCURSES_BOOL termcap) - { return(*(const struct name_table_entry **)0); } - -#undef _nc_get_hash_table -const struct name_table_entry *const *_nc_get_hash_table( - NCURSES_BOOL termcap) - { return(*(const struct name_table_entry **)0); } - -/* ./tinfo/comp_error.c */ - -#undef _nc_suppress_warnings -NCURSES_BOOL _nc_suppress_warnings; -#undef _nc_curr_line -int _nc_curr_line; -#undef _nc_curr_col -int _nc_curr_col; - -#undef _nc_set_source -void _nc_set_source( - const char *const name) - { /* void */ } - -#undef _nc_set_type -void _nc_set_type( - const char *const name) - { /* void */ } - -#undef _nc_get_type -void _nc_get_type( - char *name) - { /* void */ } - -#undef _nc_warning -void _nc_warning( - const char *const fmt, - ...) - { /* void */ } - -#undef _nc_err_abort -void _nc_err_abort( - const char *const fmt, - ...) - { /* void */ } - -#undef _nc_syserr_abort -void _nc_syserr_abort( - const char *const fmt, - ...) - { /* void */ } - -/* ./tinfo/comp_expand.c */ - -#undef _nc_tic_expand -char *_nc_tic_expand( - const char *srcp, - NCURSES_BOOL tic_format, - int numbers) - { return(*(char **)0); } - -/* ./tinfo/comp_hash.c */ - -#include - -#undef _nc_find_entry -struct name_table_entry const *_nc_find_entry( - const char *string, - const struct name_table_entry *const *hash_table) - { return(*(struct name_table_entry const **)0); } - -#undef _nc_find_type_entry -struct name_table_entry const *_nc_find_type_entry( - const char *string, - int type, - const struct name_table_entry *table) - { return(*(struct name_table_entry const **)0); } - -/* ./tinfo/comp_parse.c */ - -#undef _nc_check_termtype -void (*_nc_check_termtype)( - TERMTYPE *p1); -#undef _nc_head -ENTRY *_nc_head; -#undef _nc_tail -ENTRY *_nc_tail; - -#undef _nc_free_entries -void _nc_free_entries( - ENTRY *headp) - { /* void */ } - -#undef _nc_entry_match -NCURSES_BOOL _nc_entry_match( - char *n1, - char *n2) - { return(*(NCURSES_BOOL *)0); } - -#undef _nc_read_entry_source -void _nc_read_entry_source( - FILE *fp, - char *buf, - int literal, - NCURSES_BOOL silent, - NCURSES_BOOL (*hook)( - ENTRY *p1)) - { /* void */ } - -#undef _nc_resolve_uses -int _nc_resolve_uses( - NCURSES_BOOL fullresolve) - { return(*(int *)0); } - -/* ./tinfo/comp_scan.c */ - -#undef _nc_syntax -int _nc_syntax; -#undef _nc_curr_file_pos -long _nc_curr_file_pos; -#undef _nc_comment_start -long _nc_comment_start; -#undef _nc_comment_end -long _nc_comment_end; -#undef _nc_start_line -long _nc_start_line; -#undef _nc_curr_token -struct token _nc_curr_token; -#undef _nc_disable_period -NCURSES_BOOL _nc_disable_period; - -#undef _nc_get_token -int _nc_get_token( - NCURSES_BOOL silent) - { return(*(int *)0); } - -#undef _nc_trans_string -int _nc_trans_string( - char *ptr, - char *last) - { return(*(int *)0); } - -#undef _nc_push_token -void _nc_push_token( - int tokclass) - { /* void */ } - -#undef _nc_panic_mode -void _nc_panic_mode( - char ch) - { /* void */ } - -#undef _nc_reset_input -void _nc_reset_input( - FILE *fp, - char *buf) - { /* void */ } - -/* ./tinfo/doalloc.c */ - -#undef _nc_doalloc -void *_nc_doalloc( - void *oldp, - size_t amount) - { return(*(void **)0); } - -/* ./fallback.c */ - -#undef _nc_fallback -const TERMTYPE *_nc_fallback( - const char *name) - { return(*(const TERMTYPE **)0); } - -/* ./tinfo/free_ttype.c */ - -#undef _nc_free_termtype -void _nc_free_termtype( - TERMTYPE *ptr) - { /* void */ } - -#undef _nc_user_definable -NCURSES_BOOL _nc_user_definable; - -#undef use_extended_names -int use_extended_names( - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./tinfo/getenv_num.c */ - -#undef _nc_getenv_num -int _nc_getenv_num( - const char *name) - { return(*(int *)0); } - -/* ./tinfo/home_terminfo.c */ - -#undef _nc_home_terminfo -char *_nc_home_terminfo(void) - { return(*(char **)0); } - -/* ./tinfo/init_keytry.c */ - -#if 0 - -#include - -#undef _nc_tinfo_fkeys -struct tinfo_fkeys _nc_tinfo_fkeys[]; - -#endif - -#undef _nc_init_keytry -void _nc_init_keytry(void) - { /* void */ } - -/* ./tinfo/lib_acs.c */ - -#undef acs_map -chtype acs_map[128]; - -#undef _nc_init_acs -void _nc_init_acs(void) - { /* void */ } - -/* ./tinfo/lib_baudrate.c */ - -#include - -#undef _nc_baudrate -int _nc_baudrate( - int OSpeed) - { return(*(int *)0); } - -#undef _nc_ospeed -int _nc_ospeed( - int BaudRate) - { return(*(int *)0); } - -#undef baudrate -int baudrate(void) - { return(*(int *)0); } - -/* ./tinfo/lib_cur_term.c */ - -#undef cur_term -TERMINAL *cur_term; - -#undef set_curterm -TERMINAL *set_curterm( - TERMINAL *termp) - { return(*(TERMINAL **)0); } - -#undef del_curterm -int del_curterm( - TERMINAL *termp) - { return(*(int *)0); } - -/* ./tinfo/lib_data.c */ - -#undef stdscr -WINDOW *stdscr; -#undef curscr -WINDOW *curscr; -#undef newscr -WINDOW *newscr; -#undef _nc_screen_chain -SCREEN *_nc_screen_chain; -#undef SP -SCREEN *SP; - -/* ./tinfo/lib_has_cap.c */ - -#undef has_ic -NCURSES_BOOL has_ic(void) - { return(*(NCURSES_BOOL *)0); } - -#undef has_il -NCURSES_BOOL has_il(void) - { return(*(NCURSES_BOOL *)0); } - -/* ./tinfo/lib_kernel.c */ - -#undef erasechar -char erasechar(void) - { return(*(char *)0); } - -#undef killchar -char killchar(void) - { return(*(char *)0); } - -#undef flushinp -int flushinp(void) - { return(*(int *)0); } - -/* ./lib_keyname.c */ - -#undef _nc_key_names -const struct kn _nc_key_names[] = {0}; - -#undef keyname -char *keyname( - int c) - { return(*(char **)0); } - -#undef key_name -char *key_name( - wchar_t c) - { return(*(char **)0); } - -/* ./tinfo/lib_longname.c */ - -#undef longname -char *longname(void) - { return(*(char **)0); } - -/* ./tinfo/lib_napms.c */ - -#include - -#undef napms -int napms( - int ms) - { return(*(int *)0); } - -/* ./tinfo/lib_options.c */ - -#undef idlok -int idlok( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -#undef idcok -void idcok( - WINDOW *win, - NCURSES_BOOL flag) - { /* void */ } - -#undef halfdelay -int halfdelay( - int t) - { return(*(int *)0); } - -#undef nodelay -int nodelay( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -#undef notimeout -int notimeout( - WINDOW *win, - NCURSES_BOOL f) - { return(*(int *)0); } - -#undef wtimeout -void wtimeout( - WINDOW *win, - int delay) - { /* void */ } - -#undef keypad -int keypad( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -#undef meta -int meta( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -#undef curs_set -int curs_set( - int vis) - { return(*(int *)0); } - -#undef typeahead -int typeahead( - int fd) - { return(*(int *)0); } - -#undef has_key -int has_key( - int keycode) - { return(*(int *)0); } - -#undef _nc_keypad -int _nc_keypad( - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./tinfo/lib_raw.c */ - -#undef raw -int raw(void) - { return(*(int *)0); } - -#undef cbreak -int cbreak(void) - { return(*(int *)0); } - -#undef qiflush -void qiflush(void) - { /* void */ } - -#undef noraw -int noraw(void) - { return(*(int *)0); } - -#undef nocbreak -int nocbreak(void) - { return(*(int *)0); } - -#undef noqiflush -void noqiflush(void) - { /* void */ } - -#undef intrflush -int intrflush( - WINDOW *win, - NCURSES_BOOL flag) - { return(*(int *)0); } - -/* ./tinfo/lib_setup.c */ - -#include - -#undef ttytype -char ttytype[256]; -#undef LINES -int LINES; -#undef COLS -int COLS; -#undef TABSIZE -int TABSIZE; - -#undef use_env -void use_env( - NCURSES_BOOL f) - { /* void */ } - -#undef _nc_update_screensize -void _nc_update_screensize(void) - { /* void */ } - -#undef _nc_get_locale -char *_nc_get_locale(void) - { return(*(char **)0); } - -#undef _nc_unicode_locale -int _nc_unicode_locale(void) - { return(*(int *)0); } - -#undef _nc_locale_breaks_acs -int _nc_locale_breaks_acs(void) - { return(*(int *)0); } - -#undef setupterm -int setupterm( - char *tname, - int Filedes, - int *errret) - { return(*(int *)0); } - -/* ./tinfo/lib_termcap.c */ - -#undef UP -char *UP; -#undef BC -char *BC; - -#undef tgetent -int tgetent( - char *bufp, - const char *name) - { return(*(int *)0); } - -#if 0 - -#include - -#endif - -#undef tgetflag -int tgetflag( - char *id) - { return(*(int *)0); } - -#undef tgetnum -int tgetnum( - char *id) - { return(*(int *)0); } - -#undef tgetstr -char *tgetstr( - char *id, - char **area) - { return(*(char **)0); } - -/* ./tinfo/lib_termname.c */ - -#undef termname -char *termname(void) - { return(*(char **)0); } - -/* ./tinfo/lib_tgoto.c */ - -#undef tgoto -char *tgoto( - const char *string, - int x, - int y) - { return(*(char **)0); } - -/* ./tinfo/lib_ti.c */ - -#undef tigetflag -int tigetflag( - char *str) - { return(*(int *)0); } - -#undef tigetnum -int tigetnum( - char *str) - { return(*(int *)0); } - -#undef tigetstr -char *tigetstr( - char *str) - { return(*(char **)0); } - -/* ./tinfo/lib_tparm.c */ - -#undef _nc_tparm_err -int _nc_tparm_err; - -#undef _nc_tparm_analyze -int _nc_tparm_analyze( - const char *string, - char *p_is_s[9], - int *popcount) - { return(*(int *)0); } - -#undef tparm -char *tparm( - char *string, - ...) - { return(*(char **)0); } - -/* ./tinfo/lib_tputs.c */ - -#undef PC -char PC; -#undef ospeed -NCURSES_OSPEED ospeed; -#undef _nc_nulls_sent -int _nc_nulls_sent; - -#undef delay_output -int delay_output( - int ms) - { return(*(int *)0); } - -#undef _nc_flush -void _nc_flush(void) - { /* void */ } - -#undef _nc_outch -int _nc_outch( - int ch) - { return(*(int *)0); } - -#undef putp -int putp( - const char *string) - { return(*(int *)0); } - -#undef tputs -int tputs( - const char *string, - int affcnt, - int (*outc)( - int p1)) - { return(*(int *)0); } - -/* ./trace/lib_trace.c */ - -#undef _nc_tracing -unsigned _nc_tracing; -#undef _nc_tputs_trace -const char *_nc_tputs_trace = {0}; -#undef _nc_outchars -long _nc_outchars; - -#undef trace -void trace( - const unsigned int tracelevel) - { /* void */ } - -#undef _tracef -void _tracef( - const char *fmt, - ...) - { /* void */ } - -#undef _nc_retrace_bool -NCURSES_BOOL _nc_retrace_bool( - NCURSES_BOOL code) - { return(*(NCURSES_BOOL *)0); } - -#undef _nc_retrace_int -int _nc_retrace_int( - int code) - { return(*(int *)0); } - -#undef _nc_retrace_unsigned -unsigned _nc_retrace_unsigned( - unsigned code) - { return(*(unsigned *)0); } - -#undef _nc_retrace_ptr -char *_nc_retrace_ptr( - char *code) - { return(*(char **)0); } - -#undef _nc_retrace_sp -SCREEN *_nc_retrace_sp( - SCREEN *code) - { return(*(SCREEN **)0); } - -#undef _nc_retrace_win -WINDOW *_nc_retrace_win( - WINDOW *code) - { return(*(WINDOW **)0); } - -/* ./trace/lib_tracebits.c */ - -#undef _nc_trace_ttymode -char *_nc_trace_ttymode( - struct termios *tty) - { return(*(char **)0); } - -#undef _nc_tracebits -char *_nc_tracebits(void) - { return(*(char **)0); } - -/* ./trace/lib_tracechr.c */ - -#undef _tracechar -char *_tracechar( - int ch) - { return(*(char **)0); } - -/* ./tinfo/lib_ttyflags.c */ - -#undef _nc_get_tty_mode -int _nc_get_tty_mode( - struct termios *buf) - { return(*(int *)0); } - -#undef _nc_set_tty_mode -int _nc_set_tty_mode( - struct termios *buf) - { return(*(int *)0); } - -#undef def_shell_mode -int def_shell_mode(void) - { return(*(int *)0); } - -#undef def_prog_mode -int def_prog_mode(void) - { return(*(int *)0); } - -#undef reset_prog_mode -int reset_prog_mode(void) - { return(*(int *)0); } - -#undef reset_shell_mode -int reset_shell_mode(void) - { return(*(int *)0); } - -#undef savetty -int savetty(void) - { return(*(int *)0); } - -#undef resetty -int resetty(void) - { return(*(int *)0); } - -/* ./tty/lib_twait.c */ - -#undef _nc_timed_wait -int _nc_timed_wait( - int mode, - int milliseconds, - int *timeleft) - { return(*(int *)0); } - -/* ./tinfo/name_match.c */ - -#undef _nc_first_name -char *_nc_first_name( - const char *const sp) - { return(*(char **)0); } - -#undef _nc_name_match -int _nc_name_match( - const char *const namelst, - const char *const name, - const char *const delim) - { return(*(int *)0); } - -/* ./names.c */ - -#undef boolnames -char *const boolnames[] = {0}; -#undef boolfnames -char *const boolfnames[] = {0}; -#undef numnames -char *const numnames[] = {0}; -#undef numfnames -char *const numfnames[] = {0}; -#undef strnames -char *const strnames[] = {0}; -#undef strfnames -char *const strfnames[] = {0}; - -/* ./tinfo/parse_entry.c */ - -#undef _nc_parse_entry -int _nc_parse_entry( - struct entry *entryp, - int literal, - NCURSES_BOOL silent) - { return(*(int *)0); } - -#undef _nc_capcmp -int _nc_capcmp( - const char *s, - const char *t) - { return(*(int *)0); } - -/* ./tinfo/read_entry.c */ - -#undef _nc_tic_dir -const char *_nc_tic_dir( - const char *path) - { return(*(const char **)0); } - -#undef _nc_keep_tic_dir -void _nc_keep_tic_dir( - const char *path) - { /* void */ } - -#undef _nc_read_file_entry -int _nc_read_file_entry( - const char *const filename, - TERMTYPE *ptr) - { return(*(int *)0); } - -#undef _nc_read_entry -int _nc_read_entry( - const char *const tn, - char *const filename, - TERMTYPE *const tp) - { return(*(int *)0); } - -/* ./tinfo/read_termcap.c */ - -#undef _nc_read_termcap_entry -int _nc_read_termcap_entry( - const char *const tn, - TERMTYPE *const tp) - { return(*(int *)0); } - -/* ./tinfo/setbuf.c */ - -#undef _nc_set_buffer -void _nc_set_buffer( - FILE *ofp, - NCURSES_BOOL buffered) - { /* void */ } - -/* ./tinfo/strings.c */ - -#undef _nc_str_init -string_desc *_nc_str_init( - string_desc *dst, - char *src, - size_t len) - { return(*(string_desc **)0); } - -#undef _nc_str_null -string_desc *_nc_str_null( - string_desc *dst, - size_t len) - { return(*(string_desc **)0); } - -#undef _nc_str_copy -string_desc *_nc_str_copy( - string_desc *dst, - string_desc *src) - { return(*(string_desc **)0); } - -#undef _nc_safe_strcat -NCURSES_BOOL _nc_safe_strcat( - string_desc *dst, - const char *src) - { return(*(NCURSES_BOOL *)0); } - -#undef _nc_safe_strcpy -NCURSES_BOOL _nc_safe_strcpy( - string_desc *dst, - const char *src) - { return(*(NCURSES_BOOL *)0); } - -/* ./trace/trace_buf.c */ - -#undef _nc_trace_buf -char *_nc_trace_buf( - int bufnum, - size_t want) - { return(*(char **)0); } - -#undef _nc_trace_bufcat -char *_nc_trace_bufcat( - int bufnum, - const char *value) - { return(*(char **)0); } - -/* ./trace/trace_tries.c */ - -#undef _nc_trace_tries -void _nc_trace_tries( - struct tries *tree) - { /* void */ } - -/* ./unctrl.c */ - -#undef unctrl -char *unctrl( - chtype ch) - { return(*(char **)0); } - -/* ./trace/visbuf.c */ - -#undef _nc_visbuf2 -const char *_nc_visbuf2( - int bufnum, - const char *buf) - { return(*(const char **)0); } - -#undef _nc_visbuf -const char *_nc_visbuf( - const char *buf) - { return(*(const char **)0); } - -#undef _nc_visbufn -const char *_nc_visbufn( - const char *buf, - int len) - { return(*(const char **)0); } - -#undef _nc_viswbuf2 -const char *_nc_viswbuf2( - int bufnum, - const wchar_t *buf) - { return(*(const char **)0); } - -#undef _nc_viswbuf -const char *_nc_viswbuf( - const wchar_t *buf) - { return(*(const char **)0); } - -#undef _nc_viswbufn -const char *_nc_viswbufn( - const wchar_t *buf, - int len) - { return(*(const char **)0); } - -#undef _nc_viscbuf2 -const char *_nc_viscbuf2( - int bufnum, - const cchar_t *buf, - int len) - { return(*(const char **)0); } - -#undef _nc_viscbuf -const char *_nc_viscbuf( - const cchar_t *buf, - int len) - { return(*(const char **)0); } - -/* ./tinfo/write_entry.c */ - -#undef _nc_set_writedir -void _nc_set_writedir( - char *dir) - { /* void */ } - -#undef _nc_write_entry -void _nc_write_entry( - TERMTYPE *const tp) - { /* void */ } - -#undef _nc_tic_written -int _nc_tic_written(void) - { return(*(int *)0); } - -/* ./base/version.c */ - -#undef curses_version -const char *curses_version(void) - { return(*(const char **)0); } diff --git a/Build/source/libs/ncurses/ncurses/modules b/Build/source/libs/ncurses/ncurses/modules deleted file mode 100644 index e4d5c147b39..00000000000 --- a/Build/source/libs/ncurses/ncurses/modules +++ /dev/null @@ -1,219 +0,0 @@ -# $Id: modules,v 1.101 2004/02/29 01:18:06 tom Exp $ -############################################################################## -# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1996-1998, etc. -# - -@ base -# Library objects -hardscroll lib $(serial) -hashmap lib $(serial) ../include/term.h -lib_addch lib $(base) -lib_addstr lib $(base) -lib_beep lib $(base) ../include/term.h -lib_bkgd lib $(base) -lib_box lib $(base) -lib_chgat lib $(base) -lib_clear lib $(base) -lib_clearok lib $(base) -lib_clrbot lib $(base) -lib_clreol lib $(base) -lib_color lib $(base) ../include/term.h -lib_colorset lib $(base) -lib_delch lib $(base) -lib_delwin lib $(base) -lib_echo lib $(base) -lib_endwin lib $(base) ../include/term.h -lib_erase lib $(base) -lib_flash lib $(base) ../include/term.h -lib_gen lib . ../include/curses.h -lib_getch lib $(base) -lib_getstr lib $(base) ../include/term.h -lib_hline lib $(base) -lib_immedok lib $(base) -lib_inchstr lib $(base) -lib_initscr lib $(base) $(INCDIR)/tic.h -lib_insch lib $(base) -lib_insdel lib $(base) -lib_insnstr lib $(base) -lib_instr lib $(base) -lib_isendwin lib $(base) -lib_leaveok lib $(base) -lib_mouse lib $(base) ../include/term.h -lib_move lib $(base) -lib_mvcur lib $(serial) ../include/term.h $(INCDIR)/tic.h -lib_mvwin lib $(base) -lib_newterm lib $(base) ../include/term.h -lib_newwin lib $(base) -lib_nl lib $(base) -lib_overlay lib $(base) -lib_pad lib $(base) -lib_printw lib $(base) -lib_redrawln lib $(base) -lib_refresh lib $(base) -lib_restart lib $(base) ../include/term.h -lib_scanw lib $(base) -lib_screen lib $(base) ../include/term.h -lib_scroll lib $(base) -lib_scrollok lib $(base) -lib_scrreg lib $(base) -lib_set_term lib $(base) ../include/term.h -lib_slk lib $(base) ../include/term.h -lib_slkatr_set lib $(base) -lib_slkatrof lib $(base) -lib_slkatron lib $(base) -lib_slkatrset lib $(base) -lib_slkattr lib $(base) -lib_slkclear lib $(base) -lib_slkcolor lib $(base) -lib_slkinit lib $(base) -lib_slklab lib $(base) -lib_slkrefr lib $(base) ../include/term.h -lib_slkset lib $(base) -lib_slktouch lib $(base) -lib_touch lib $(base) -lib_traceatr lib $(trace) ../include/term.h -lib_tracedmp lib $(trace) -lib_tracemse lib $(trace) -lib_tstp lib $(serial) $(srcdir)/SigAction.h -lib_ungetch lib $(base) -lib_vidattr lib $(serial) ../include/term.h -lib_vline lib $(base) -lib_wattroff lib $(base) -lib_wattron lib $(base) -lib_winch lib $(base) -lib_window lib $(base) -link_test lib . ../include/curses.h -nc_panel lib $(base) -safe_sprintf lib $(base) -tty_update lib $(serial) ../include/term.h -varargs lib $(trace) - -# Modules for porting -memmove lib $(base) -vsscanf lib $(base) - -# actually an extension, but with its own configure option (--disable-leaks) -lib_freeall lib $(base) - -# XSI extensions to the base library (wide-character) -@ widechar -charable lib $(wide) -lib_add_wch lib $(wide) -lib_box_set lib $(wide) -lib_cchar lib $(wide) -lib_get_wch lib $(wide) -lib_erasewchar lib $(wide) -lib_get_wstr lib $(wide) -lib_hline_set lib $(wide) -lib_in_wch lib $(wide) -lib_in_wchnstr lib $(wide) -lib_ins_wch lib $(wide) -lib_inwstr lib $(wide) -lib_pecho_wchar lib $(wide) -lib_slk_wset lib $(wide) -lib_unget_wch lib $(wide) -lib_vid_attr lib $(wide) ../include/term.h -lib_vline_set lib $(wide) -lib_wacs lib $(wide) -lib_wunctrl lib $(wide) - -# Extensions to the base library -@ ext_funcs -define_key lib $(base) -expanded lib . -key_defined lib $(base) -keybound lib $(base) -keyok lib $(base) -lib_dft_fgbg lib $(base) ../include/term.h -lib_print lib $(tinfo) ../include/term.h -resizeterm lib $(base) ../include/term.h -trace_xnames lib $(trace) ../include/term.h $(INCDIR)/term_entry.h -tries lib $(base) -wresize lib $(base) ../include/term.h - -# Support for termcap (and tic, etc.), which can be a separate library -@ termlib -access lib $(tinfo) -add_tries lib $(tinfo) -alloc_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h -alloc_ttype lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h -captoinfo lib $(tinfo) $(INCDIR)/tic.h -codes lib . -comp_captab lib . $(INCDIR)/tic.h ../include/term.h ../include/hashsize.h -comp_error lib $(tinfo) $(INCDIR)/tic.h -comp_expand lib $(tinfo) $(INCDIR)/tic.h -comp_hash lib $(tinfo) ../include/term.h $(INCDIR)/tic.h ../include/hashsize.h -comp_parse lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h -comp_scan lib $(tinfo) $(INCDIR)/tic.h -doalloc lib $(tinfo) -fallback lib . ../include/term.h $(INCDIR)/tic.h -free_ttype lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h -getenv_num lib $(tinfo) -home_terminfo lib $(tinfo) -init_keytry lib $(tinfo) ../include/term.h $(INCDIR)/tic.h init_keytry.h -lib_acs lib $(tinfo) ../include/term.h -lib_baudrate lib $(tinfo) ../include/term.h -lib_cur_term lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h -lib_data lib $(tinfo) -lib_has_cap lib $(tinfo) ../include/term.h -lib_kernel lib $(tinfo) ../include/term.h -lib_keyname lib . ../include/term.h -lib_longname lib $(tinfo) -lib_napms lib $(tinfo) -lib_options lib $(tinfo) ../include/term.h -lib_raw lib $(tinfo) ../include/term.h -lib_setup lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h -lib_termcap lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h $(INCDIR)/capdefaults.c -lib_termname lib $(tinfo) $(INCDIR)/tic.h -lib_tgoto lib $(tinfo) ../include/term.h $(INCDIR)/tic.h -lib_ti lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h -lib_tparm lib $(tinfo) ../include/term.h $(INCDIR)/tic.h -lib_tputs lib $(tinfo) ../include/term.h $(INCDIR)/tic.h -lib_trace lib $(trace) $(INCDIR)/tic.h -lib_tracebits lib $(trace) ../include/term.h -lib_tracechr lib $(trace) -lib_ttyflags lib $(tinfo) ../include/term.h -lib_twait lib $(serial) -name_match lib $(tinfo) ../include/term.h $(INCDIR)/tic.h -names lib . -parse_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h ../include/parametrized.h $(INCDIR)/capdefaults.c -read_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h -read_termcap lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h -setbuf lib $(tinfo) -strings lib $(tinfo) -trace_buf lib $(trace) -trace_tries lib $(trace) -unctrl lib . -visbuf lib $(trace) $(INCDIR)/tic.h -write_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h - -# Extensions to the termlib library -@ ext_tinfo -version lib $(base) diff --git a/Build/source/libs/ncurses/ncurses/tinfo/MKcaptab.awk b/Build/source/libs/ncurses/ncurses/tinfo/MKcaptab.awk deleted file mode 100644 index ff9601ba62c..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/MKcaptab.awk +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/sh -# $Id: MKcaptab.awk,v 1.12 2000/12/10 00:14:12 tom Exp $ -AWK=${1-awk} -DATA=${2-../include/Caps} - -cat <<'EOF' -/* - * comp_captab.c -- The names of the capabilities indexed via a hash - * table for the compiler. - * - */ - -#include -#include -#include -#include - -EOF - -./make_hash 1 info <$DATA -./make_hash 3 cap <$DATA - -cat <<'EOF' -const struct alias _nc_capalias_table[] = -{ -EOF - -$AWK <$DATA ' -$1 == "capalias" { - if ($3 == "IGNORE") - to = "(char *)NULL"; - else - to = "\"" $3 "\""; - printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n", - $2, to, $4, $5 - } -' - -cat <<'EOF' - {(char *)NULL, (char *)NULL, (char *)NULL} -}; - -const struct alias _nc_infoalias_table[] = -{ -EOF - -$AWK <$DATA ' -$1 == "infoalias" { - if ($3 == "IGNORE") - to = "(char *)NULL"; - else - to = "\"" $3 "\""; - printf "\t{\"%s\", %s, \"%s\"},\t /* %s */\n", - $2, to, $4, $5 - } -' - -cat <<'EOF' - {(char *)NULL, (char *)NULL, (char *)NULL} -}; - -NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool termcap) -{ - return termcap ? _nc_cap_table: _nc_info_table ; -} - -NCURSES_EXPORT(const struct name_table_entry * const *) _nc_get_hash_table (bool termcap) -{ - return termcap ? _nc_cap_hash_table: _nc_info_hash_table ; -} -EOF diff --git a/Build/source/libs/ncurses/ncurses/tinfo/MKfallback.sh b/Build/source/libs/ncurses/ncurses/tinfo/MKfallback.sh deleted file mode 100755 index d1abcd2eed3..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/MKfallback.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh -# $Id: MKfallback.sh,v 1.11 2001/12/02 01:55:30 tom Exp $ -# -# MKfallback.sh -- create fallback table for entry reads -# -# This script generates source code for a custom version of read_entry.c -# that (instead of reading capabilities for an argument terminal type -# from an on-disk terminfo tree) tries to match the type with one of a -# specified list of types generated in. -# - -terminfo_dir=$1 -shift - -terminfo_src=$1 -shift - -if test $# != 0 ; then - tmp_info=tmp_info - echo creating temporary terminfo directory... >&2 - - TERMINFO=`pwd`/$tmp_info - export TERMINFO - - TERMINFO_DIRS=$TERMINFO:$terminfo_dir - export TERMINFO_DIRS - - tic $terminfo_src >&2 -else - tmp_info= -fi - -cat < -#include - -EOF - -if [ "$*" ] -then - cat < - -/* fallback entries for: $* */ -EOF - for x in $* - do - echo "/* $x */" - infocmp -E $x - done - - cat <term_names, name, "|")) - return(tp); -EOF -else - echo " /* the fallback list is empty */"; -fi - -cat <&2 - rm -rf $tmp_info -fi diff --git a/Build/source/libs/ncurses/ncurses/tinfo/MKkeys_list.sh b/Build/source/libs/ncurses/ncurses/tinfo/MKkeys_list.sh deleted file mode 100755 index 14017b01689..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/MKkeys_list.sh +++ /dev/null @@ -1,62 +0,0 @@ -#! /bin/sh -# $Id: MKkeys_list.sh,v 1.4 2003/10/25 16:19:54 tom Exp $ -############################################################################## -# Copyright (c) 2001,2003 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# MKkey_defs.sh -- generate list of function-keys for terminfo database -# -# Author: Thomas E. Dickey 2001 -# -# Extract function-key names from the Caps file -# -: ${AWK-awk} -DATA=${1-../../include/Caps} - -data=data$$ -trap 'rm -f $data' 0 1 2 5 15 -sed -e 's/[ ][ ]*/ /g' < $DATA >$data - -cat < "namehdr" - print "" > "namehdr" - print "#include " > "namehdr" - print "" > "namehdr" - print "#define IT NCURSES_CONST char * const" > "namehdr" - print "" > "namehdr" - print "#if BROKEN_LINKER" > "namehdr" - print "#include " > "namehdr" - print "#define DCL(it) static IT data##it[]" > "namehdr" - print "#else" > "namehdr" - print "#define DCL(it) NCURSES_EXPORT_VAR(IT) it[]" > "namehdr" - print "#endif" > "namehdr" - print "" > "namehdr" - print "/*" > "boolnames" - print " * names.c - Arrays of capability names and codes" > "boolnames" - print " *" > "boolnames" - print " */" > "boolnames" - print "" > "boolnames" - print "DCL(boolnames) = {" > "boolnames" - print "DCL(boolfnames) = {" > "boolfnames" - print "DCL(boolcodes) = {" > "boolcodes" - print "DCL(numnames) = {" > "numnames" - print "DCL(numfnames) = {" > "numfnames" - print "DCL(numcodes) = {" > "numcodes" - print "DCL(strnames) = {" > "strnames" - print "DCL(strfnames) = {" > "strfnames" - print "DCL(strcodes) = {" > "strcodes" - } - -$1 ~ /^#/ {next;} - -$1 == "SKIPWARN" {next;} - -$3 == "bool" { - printf "\t\t\"%s\",\n", $2 > "boolnames" - printf "\t\t\"%s\",\n", $1 > "boolfnames" - printf "\t\t\"%s\",\n", $4 > "boolcodes" - } - -$3 == "num" { - printf "\t\t\"%s\",\n", $2 > "numnames" - printf "\t\t\"%s\",\n", $1 > "numfnames" - printf "\t\t\"%s\",\n", $4 > "numcodes" - } - -$3 == "str" { - printf "\t\t\"%s\",\n", $2 > "strnames" - printf "\t\t\"%s\",\n", $1 > "strfnames" - printf "\t\t\"%s\",\n", $4 > "strcodes" - } - -END { - print "\t\t(NCURSES_CONST char *)0," > "boolnames" - print "};" > "boolnames" - print "" > "boolnames" - print "\t\t(NCURSES_CONST char *)0," > "boolfnames" - print "};" > "boolfnames" - print "" > "boolfnames" - print "\t\t(NCURSES_CONST char *)0," > "boolcodes" - print "};" > "boolcodes" - print "" > "boolcodes" - print "\t\t(NCURSES_CONST char *)0," > "numnames" - print "};" > "numnames" - print "" > "numnames" - print "\t\t(NCURSES_CONST char *)0," > "numfnames" - print "};" > "numfnames" - print "" > "numfnames" - print "\t\t(NCURSES_CONST char *)0," > "numcodes" - print "};" > "numcodes" - print "" > "numcodes" - print "\t\t(NCURSES_CONST char *)0," > "strnames" - print "};" > "strnames" - print "" > "strnames" - print "\t\t(NCURSES_CONST char *)0," > "strfnames" - print "};" > "strfnames" - print "" > "strfnames" - print "\t\t(NCURSES_CONST char *)0," > "strcodes" - print "};" > "strcodes" - print "" > "strcodes" - print "#if BROKEN_LINKER" > "nameftr" - print "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }" > "nameftr" - print "FIX(boolnames)" > "nameftr" - print "FIX(boolfnames)" > "nameftr" - print "FIX(numnames)" > "nameftr" - print "FIX(numfnames)" > "nameftr" - print "FIX(strnames)" > "nameftr" - print "FIX(strfnames)" > "nameftr" - print "#endif /* BROKEN_LINKER */" > "nameftr" - print "" > "codeftr" - print "#if BROKEN_LINKER" > "codeftr" - print "#define FIX(it) NCURSES_IMPEXP IT * NCURSES_API _nc_##it(void) { return data##it; }" > "codeftr" - print "FIX(boolcodes)" > "codeftr" - print "FIX(numcodes)" > "codeftr" - print "FIX(strcodes)" > "codeftr" - print "#endif /* BROKEN_LINKER */" > "codeftr" - } diff --git a/Build/source/libs/ncurses/ncurses/tinfo/README b/Build/source/libs/ncurses/ncurses/tinfo/README deleted file mode 100644 index 8b092c1ba41..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/README +++ /dev/null @@ -1,8 +0,0 @@ --- $Id: README,v 1.1 1998/11/07 22:59:07 tom Exp $ - -The files in this directory (tinfo) are those that support the terminfo -database and interfaces for ncurses. The terminfo library can be built -separately, as a lower-level library for ncurses, but usually is bundled. - -In addition to the standard documented interfaces, ncurses uses internal -functions which reside in tinfo to satisfy linkage requirements. diff --git a/Build/source/libs/ncurses/ncurses/tinfo/access.c b/Build/source/libs/ncurses/ncurses/tinfo/access.c deleted file mode 100644 index 44c7e1b2f5d..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/access.c +++ /dev/null @@ -1,132 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2001,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1998,2000,2001 * - ****************************************************************************/ - -#include -#include -#include - -MODULE_ID("$Id: access.c,v 1.10 2003/07/05 19:31:28 tom Exp $") - -#define LOWERCASE(c) ((isalpha(UChar(c)) && isupper(UChar(c))) ? tolower(UChar(c)) : (c)) - -NCURSES_EXPORT(char *) -_nc_rootname(char *path) -{ - char *result = _nc_basename(path); -#if !defined(MIXEDCASE_FILENAMES) || defined(PROG_EXT) - static char *temp; - char *s; - - temp = strdup(result); - result = temp; -#if !defined(MIXEDCASE_FILENAMES) - int n; - for (s = result; *s != '\0'; ++s) { - *s = LOWERCASE(*s); - } -#endif -#if defined(PROG_EXT) - if ((s = strrchr(result, '.')) != 0) { - if (!strcmp(s, PROG_EXT)) - *s = '\0'; - } -#endif -#endif - return result; -} - -/* - * Return index of the basename - */ -NCURSES_EXPORT(unsigned) -_nc_pathlast(const char *path) -{ - const char *test = strrchr(path, '/'); -#ifdef __EMX__ - if (test == 0) - test = strrchr(path, '\\'); -#endif - if (test == 0) - test = path; - else - test++; - return (test - path); -} - -NCURSES_EXPORT(char *) -_nc_basename(char *path) -{ - return path + _nc_pathlast(path); -} - -NCURSES_EXPORT(int) -_nc_access(const char *path, int mode) -{ - if (access(path, mode) < 0) { - if ((mode & W_OK) != 0 - && errno == ENOENT - && strlen(path) < PATH_MAX) { - char head[PATH_MAX]; - char *leaf = _nc_basename(strcpy(head, path)); - - if (leaf == 0) - leaf = head; - *leaf = '\0'; - if (head == leaf) - (void) strcpy(head, "."); - - return access(head, R_OK | W_OK | X_OK); - } - return -1; - } - return 0; -} - -#ifndef USE_ROOT_ENVIRON -/* - * Returns true if we allow application to use environment variables that are - * used for searching lists of directories, etc. - */ -NCURSES_EXPORT(int) -_nc_env_access(void) -{ -#if HAVE_ISSETUGID - if (issetugid()) - return FALSE; -#elif HAVE_GETEUID && HAVE_GETEGID - if (getuid() != geteuid() - || getgid() != getegid()) - return FALSE; -#endif - return getuid() != 0 && geteuid() != 0; /* ...finally, disallow root */ -} -#endif diff --git a/Build/source/libs/ncurses/ncurses/tinfo/add_tries.c b/Build/source/libs/ncurses/ncurses/tinfo/add_tries.c deleted file mode 100644 index f83249ccf01..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/add_tries.c +++ /dev/null @@ -1,125 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1998 * - ****************************************************************************/ - -/* -** add_tries.c -** -** Add keycode/string to tries-tree. -** -*/ - -#include - -MODULE_ID("$Id: add_tries.c,v 1.4 2000/12/10 02:55:07 tom Exp $") - -#define SET_TRY(dst,src) if ((dst->ch = *src++) == 128) dst->ch = '\0' -#define CMP_TRY(a,b) ((a)? (a == b) : (b == 128)) - -NCURSES_EXPORT(void) -_nc_add_to_try(struct tries **tree, const char *str, unsigned short code) -{ - static bool out_of_memory = FALSE; - struct tries *ptr, *savedptr; - unsigned const char *txt = (unsigned const char *) str; - - if (txt == 0 || *txt == '\0' || out_of_memory || code == 0) - return; - - if ((*tree) != 0) { - ptr = savedptr = (*tree); - - for (;;) { - unsigned char cmp = *txt; - - while (!CMP_TRY(ptr->ch, cmp) - && ptr->sibling != 0) - ptr = ptr->sibling; - - if (CMP_TRY(ptr->ch, cmp)) { - if (*(++txt) == '\0') { - ptr->value = code; - return; - } - if (ptr->child != 0) - ptr = ptr->child; - else - break; - } else { - if ((ptr->sibling = typeCalloc(struct tries, 1)) == 0) { - out_of_memory = TRUE; - return; - } - - savedptr = ptr = ptr->sibling; - SET_TRY(ptr, txt); - ptr->value = 0; - - break; - } - } /* end for (;;) */ - } else { /* (*tree) == 0 :: First sequence to be added */ - savedptr = ptr = (*tree) = typeCalloc(struct tries, 1); - - if (ptr == 0) { - out_of_memory = TRUE; - return; - } - - SET_TRY(ptr, txt); - ptr->value = 0; - } - - /* at this point, we are adding to the try. ptr->child == 0 */ - - while (*txt) { - ptr->child = typeCalloc(struct tries, 1); - - ptr = ptr->child; - - if (ptr == 0) { - out_of_memory = TRUE; - - while ((ptr = savedptr) != 0) { - savedptr = ptr->child; - free(ptr); - } - - return; - } - - SET_TRY(ptr, txt); - ptr->value = 0; - } - - ptr->value = code; - return; -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/alloc_entry.c b/Build/source/libs/ncurses/ncurses/tinfo/alloc_entry.c deleted file mode 100644 index 7e563cd5d36..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/alloc_entry.c +++ /dev/null @@ -1,266 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * alloc_entry.c -- allocation functions for terminfo entries - * - * _nc_copy_entry() - * _nc_init_entry() - * _nc_merge_entry() - * _nc_save_str() - * _nc_wrap_entry() - * - */ - -#include - -#include -#include - -MODULE_ID("$Id: alloc_entry.c,v 1.41 2004/04/17 22:06:25 tom Exp $") - -#define ABSENT_OFFSET -1 -#define CANCELLED_OFFSET -2 - -#define MAX_STRTAB 4096 /* documented maximum entry size */ - -static char *stringbuf; /* buffer for string capabilities */ -static size_t next_free; /* next free character in stringbuf */ - -NCURSES_EXPORT(void) -_nc_init_entry(TERMTYPE * const tp) -/* initialize a terminal type data block */ -{ - unsigned i; - -#if NO_LEAKS - if (tp == 0) { - FreeAndNull(stringbuf); - return; - } -#endif - - if (stringbuf == 0) - stringbuf = (char *) malloc(MAX_STRTAB); - -#if NCURSES_XNAMES - tp->num_Booleans = BOOLCOUNT; - tp->num_Numbers = NUMCOUNT; - tp->num_Strings = STRCOUNT; - tp->ext_Booleans = 0; - tp->ext_Numbers = 0; - tp->ext_Strings = 0; -#endif - if (tp->Booleans == 0) - tp->Booleans = typeMalloc(char, BOOLCOUNT); - if (tp->Numbers == 0) - tp->Numbers = typeMalloc(short, NUMCOUNT); - if (tp->Strings == 0) - tp->Strings = typeMalloc(char *, STRCOUNT); - - for_each_boolean(i, tp) - tp->Booleans[i] = FALSE; - - for_each_number(i, tp) - tp->Numbers[i] = ABSENT_NUMERIC; - - for_each_string(i, tp) - tp->Strings[i] = ABSENT_STRING; - - next_free = 0; -} - -NCURSES_EXPORT(ENTRY *) -_nc_copy_entry(ENTRY * oldp) -{ - ENTRY *newp = typeCalloc(ENTRY, 1); - - if (newp != 0) { - *newp = *oldp; - _nc_copy_termtype(&(newp->tterm), &(oldp->tterm)); - } - return newp; -} - -NCURSES_EXPORT(char *) -_nc_save_str(const char *const string) -/* save a copy of string in the string buffer */ -{ - size_t old_next_free = next_free; - size_t len = strlen(string) + 1; - - if (next_free + len < MAX_STRTAB) { - strcpy(&stringbuf[next_free], string); - DEBUG(7, ("Saved string %s", _nc_visbuf(string))); - DEBUG(7, ("at location %d", (int) next_free)); - next_free += len; - } - return (stringbuf + old_next_free); -} - -NCURSES_EXPORT(void) -_nc_wrap_entry(ENTRY * const ep, bool copy_strings) -/* copy the string parts to allocated storage, preserving pointers to it */ -{ - int offsets[MAX_ENTRY_SIZE / 2], useoffsets[MAX_USES]; - unsigned i, n; - unsigned nuses = ep->nuses; - TERMTYPE *tp = &(ep->tterm); - - if (copy_strings) { - next_free = 0; /* clear static storage */ - - /* copy term_names, Strings, uses */ - tp->term_names = _nc_save_str(tp->term_names); - for_each_string(i, tp) { - if (tp->Strings[i] != ABSENT_STRING && - tp->Strings[i] != CANCELLED_STRING) { - tp->Strings[i] = _nc_save_str(tp->Strings[i]); - } - } - - for (i = 0; i < nuses; i++) { - if (ep->uses[i].name == 0) { - ep->uses[i].name = _nc_save_str(ep->uses[i].name); - } - } - - free(tp->str_table); - } - - n = tp->term_names - stringbuf; - for_each_string(i, &(ep->tterm)) { - if (tp->Strings[i] == ABSENT_STRING) - offsets[i] = ABSENT_OFFSET; - else if (tp->Strings[i] == CANCELLED_STRING) - offsets[i] = CANCELLED_OFFSET; - else - offsets[i] = tp->Strings[i] - stringbuf; - } - - for (i = 0; i < nuses; i++) { - if (ep->uses[i].name == 0) - useoffsets[i] = ABSENT_OFFSET; - else - useoffsets[i] = ep->uses[i].name - stringbuf; - } - - if ((tp->str_table = typeMalloc(char, next_free)) == (char *) 0) - _nc_err_abort(MSG_NO_MEMORY); - (void) memcpy(tp->str_table, stringbuf, next_free); - - tp->term_names = tp->str_table + n; - for_each_string(i, &(ep->tterm)) { - if (offsets[i] == ABSENT_OFFSET) - tp->Strings[i] = ABSENT_STRING; - else if (offsets[i] == CANCELLED_OFFSET) - tp->Strings[i] = CANCELLED_STRING; - else - tp->Strings[i] = tp->str_table + offsets[i]; - } - -#if NCURSES_XNAMES - if (!copy_strings) { - if ((n = NUM_EXT_NAMES(tp)) != 0) { - unsigned length = 0; - for (i = 0; i < n; i++) { - length += strlen(tp->ext_Names[i]) + 1; - offsets[i] = tp->ext_Names[i] - stringbuf; - } - if ((tp->ext_str_table = typeMalloc(char, length)) == 0) - _nc_err_abort(MSG_NO_MEMORY); - for (i = 0, length = 0; i < n; i++) { - tp->ext_Names[i] = tp->ext_str_table + length; - strcpy(tp->ext_Names[i], stringbuf + offsets[i]); - length += strlen(tp->ext_Names[i]) + 1; - } - } - } -#endif - - for (i = 0; i < nuses; i++) { - if (useoffsets[i] == ABSENT_OFFSET) - ep->uses[i].name = 0; - else - ep->uses[i].name = (tp->str_table + useoffsets[i]); - } -} - -NCURSES_EXPORT(void) -_nc_merge_entry(TERMTYPE * const to, TERMTYPE * const from) -/* merge capabilities from `from' entry into `to' entry */ -{ - unsigned i; - -#if NCURSES_XNAMES - _nc_align_termtype(to, from); -#endif - for_each_boolean(i, from) { - if (to->Booleans[i] != CANCELLED_BOOLEAN) { - int mergebool = from->Booleans[i]; - - if (mergebool == CANCELLED_BOOLEAN) - to->Booleans[i] = FALSE; - else if (mergebool == TRUE) - to->Booleans[i] = mergebool; - } - } - - for_each_number(i, from) { - if (to->Numbers[i] != CANCELLED_NUMERIC) { - int mergenum = from->Numbers[i]; - - if (mergenum == CANCELLED_NUMERIC) - to->Numbers[i] = ABSENT_NUMERIC; - else if (mergenum != ABSENT_NUMERIC) - to->Numbers[i] = mergenum; - } - } - - /* - * Note: the copies of strings this makes don't have their own - * storage. This is OK right now, but will be a problem if we - * we ever want to deallocate entries. - */ - for_each_string(i, from) { - if (to->Strings[i] != CANCELLED_STRING) { - char *mergestring = from->Strings[i]; - - if (mergestring == CANCELLED_STRING) - to->Strings[i] = ABSENT_STRING; - else if (mergestring != ABSENT_STRING) - to->Strings[i] = mergestring; - } - } -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/alloc_ttype.c b/Build/source/libs/ncurses/ncurses/tinfo/alloc_ttype.c deleted file mode 100644 index 36747186e18..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/alloc_ttype.c +++ /dev/null @@ -1,491 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1999 * - ****************************************************************************/ - -/* - * align_ttype.c -- functions for TERMTYPE - * - * _nc_align_termtype() - * _nc_copy_termtype() - * - */ - -#include - -#include -#include - -MODULE_ID("$Id: alloc_ttype.c,v 1.14 2003/05/24 21:10:28 tom Exp $") - -#if NCURSES_XNAMES -/* - * Merge the a/b lists into dst. Both a/b are sorted (see _nc_extend_names()), - * so we do not have to worry about order dependencies. - */ -static int -merge_names(char **dst, char **a, int na, char **b, int nb) -{ - int n = 0; - while (na > 0 && nb > 0) { - int cmp = strcmp(*a, *b); - if (cmp < 0) { - dst[n++] = *a++; - na--; - } else if (cmp > 0) { - dst[n++] = *b++; - nb--; - } else if (cmp == 0) { - dst[n++] = *a; - a++, b++; - na--, nb--; - } - } - while (na-- > 0) { - dst[n++] = *a++; - } - while (nb-- > 0) { - dst[n++] = *b++; - } - DEBUG(4, ("merge_names -> %d", n)); - return n; -} - -static bool -find_name(char **table, int length, char *name) -{ - while (length-- > 0) { - if (!strcmp(*table++, name)) { - DEBUG(4, ("found name '%s'", name)); - return TRUE; - } - } - DEBUG(4, ("did not find name '%s'", name)); - return FALSE; -} - -static void -realign_data(TERMTYPE * to, char **ext_Names, - int ext_Booleans, - int ext_Numbers, - int ext_Strings) -{ - int n, m, base; - int limit = (to->ext_Booleans + to->ext_Numbers + to->ext_Strings); - - if (to->ext_Booleans != ext_Booleans) { - to->num_Booleans += (ext_Booleans - to->ext_Booleans); - to->Booleans = typeRealloc(char, to->num_Booleans, to->Booleans); - for (n = to->ext_Booleans - 1, - m = ext_Booleans - 1, - base = to->num_Booleans - (m + 1); m >= 0; m--) { - if (find_name(to->ext_Names, limit, ext_Names[m])) { - to->Booleans[base + m] = to->Booleans[base + n--]; - } else { - to->Booleans[base + m] = FALSE; - } - } - to->ext_Booleans = ext_Booleans; - } - if (to->ext_Numbers != ext_Numbers) { - to->num_Numbers += (ext_Numbers - to->ext_Numbers); - to->Numbers = typeRealloc(short, to->num_Numbers, to->Numbers); - for (n = to->ext_Numbers - 1, - m = ext_Numbers - 1, - base = to->num_Numbers - (m + 1); m >= 0; m--) { - if (find_name(to->ext_Names, limit, ext_Names[m + ext_Booleans])) { - to->Numbers[base + m] = to->Numbers[base + n--]; - } else { - to->Numbers[base + m] = ABSENT_NUMERIC; - } - } - to->ext_Numbers = ext_Numbers; - } - if (to->ext_Strings != ext_Strings) { - to->num_Strings += (ext_Strings - to->ext_Strings); - to->Strings = typeRealloc(char *, to->num_Strings, to->Strings); - for (n = to->ext_Strings - 1, - m = ext_Strings - 1, - base = to->num_Strings - (m + 1); m >= 0; m--) { - if (find_name(to->ext_Names, limit, ext_Names[m + ext_Booleans + ext_Numbers])) { - to->Strings[base + m] = to->Strings[base + n--]; - } else { - to->Strings[base + m] = ABSENT_STRING; - } - } - to->ext_Strings = ext_Strings; - } -} - -/* - * Returns the first index in ext_Names[] for the given token-type - */ -static int -_nc_first_ext_name(TERMTYPE * tp, int token_type) -{ - int first; - - switch (token_type) { - case BOOLEAN: - first = 0; - break; - case NUMBER: - first = tp->ext_Booleans; - break; - case STRING: - first = tp->ext_Booleans + tp->ext_Numbers; - break; - default: - first = 0; - break; - } - return first; -} - -/* - * Returns the last index in ext_Names[] for the given token-type - */ -static int -_nc_last_ext_name(TERMTYPE * tp, int token_type) -{ - int last; - - switch (token_type) { - case BOOLEAN: - last = tp->ext_Booleans; - break; - case NUMBER: - last = tp->ext_Booleans + tp->ext_Numbers; - break; - default: - case STRING: - last = NUM_EXT_NAMES(tp); - break; - } - return last; -} - -/* - * Lookup an entry from extended-names, returning -1 if not found - */ -static int -_nc_find_ext_name(TERMTYPE * tp, char *name, int token_type) -{ - unsigned j; - unsigned first = _nc_first_ext_name(tp, token_type); - unsigned last = _nc_last_ext_name(tp, token_type); - - for (j = first; j < last; j++) { - if (!strcmp(name, tp->ext_Names[j])) { - return j; - } - } - return -1; -} - -/* - * Translate an index into ext_Names[] into the corresponding index into data - * (e.g., Booleans[]). - */ -static int -_nc_ext_data_index(TERMTYPE * tp, int n, int token_type) -{ - switch (token_type) { - case BOOLEAN: - n += (tp->num_Booleans - tp->ext_Booleans); - break; - case NUMBER: - n += (tp->num_Numbers - tp->ext_Numbers) - - (tp->ext_Booleans); - break; - default: - case STRING: - n += (tp->num_Strings - tp->ext_Strings) - - (tp->ext_Booleans + tp->ext_Numbers); - } - return n; -} - -/* - * Adjust tables to remove (not free) an extended name and its corresponding - * data. - */ -static bool -_nc_del_ext_name(TERMTYPE * tp, char *name, int token_type) -{ - int j; - int first, last; - - if ((first = _nc_find_ext_name(tp, name, token_type)) >= 0) { - last = NUM_EXT_NAMES(tp) - 1; - for (j = first; j < last; j++) { - tp->ext_Names[j] = tp->ext_Names[j + 1]; - } - first = _nc_ext_data_index(tp, first, token_type); - switch (token_type) { - case BOOLEAN: - last = tp->num_Booleans - 1; - for (j = first; j < last; j++) - tp->Booleans[j] = tp->Booleans[j + 1]; - tp->ext_Booleans -= 1; - tp->num_Booleans -= 1; - break; - case NUMBER: - last = tp->num_Numbers - 1; - for (j = first; j < last; j++) - tp->Numbers[j] = tp->Numbers[j + 1]; - tp->ext_Numbers -= 1; - tp->num_Numbers -= 1; - break; - case STRING: - last = tp->num_Strings - 1; - for (j = first; j < last; j++) - tp->Strings[j] = tp->Strings[j + 1]; - tp->ext_Strings -= 1; - tp->num_Strings -= 1; - break; - } - return TRUE; - } - return FALSE; -} - -/* - * Adjust tables to insert an extended name, making room for new data. The - * index into the corresponding data array is returned. - */ -static int -_nc_ins_ext_name(TERMTYPE * tp, char *name, int token_type) -{ - unsigned first = _nc_first_ext_name(tp, token_type); - unsigned last = _nc_last_ext_name(tp, token_type); - unsigned total = NUM_EXT_NAMES(tp) + 1; - unsigned j, k; - - for (j = first; j < last; j++) { - int cmp = strcmp(name, tp->ext_Names[j]); - if (cmp == 0) - /* already present */ - return _nc_ext_data_index(tp, (int) j, token_type); - if (cmp < 0) { - break; - } - } - - tp->ext_Names = typeRealloc(char *, total, tp->ext_Names); - for (k = total - 1; k > j; k--) - tp->ext_Names[k] = tp->ext_Names[k - 1]; - tp->ext_Names[j] = name; - j = _nc_ext_data_index(tp, (int) j, token_type); - - switch (token_type) { - case BOOLEAN: - tp->ext_Booleans += 1; - tp->num_Booleans += 1; - tp->Booleans = typeRealloc(char, tp->num_Booleans, tp->Booleans); - for (k = tp->num_Booleans - 1; k > j; k--) - tp->Booleans[k] = tp->Booleans[k - 1]; - break; - case NUMBER: - tp->ext_Numbers += 1; - tp->num_Numbers += 1; - tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers); - for (k = tp->num_Numbers - 1; k > j; k--) - tp->Numbers[k] = tp->Numbers[k - 1]; - break; - case STRING: - tp->ext_Strings += 1; - tp->num_Strings += 1; - tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings); - for (k = tp->num_Strings - 1; k > j; k--) - tp->Strings[k] = tp->Strings[k - 1]; - break; - } - return j; -} - -/* - * Look for strings that are marked cancelled, which happen to be the same name - * as a boolean or number. We'll get this as a special case when we get a - * cancellation of a name that is inherited from another entry. - */ -static void -adjust_cancels(TERMTYPE * to, TERMTYPE * from) -{ - int first = to->ext_Booleans + to->ext_Numbers; - int last = first + to->ext_Strings; - int j, k; - - for (j = first; j < last;) { - char *name = to->ext_Names[j]; - unsigned j_str = to->num_Strings - first - to->ext_Strings; - - if (to->Strings[j + j_str] == CANCELLED_STRING) { - if ((k = _nc_find_ext_name(from, to->ext_Names[j], BOOLEAN)) >= 0) { - if (_nc_del_ext_name(to, name, STRING) - || _nc_del_ext_name(to, name, NUMBER)) { - k = _nc_ins_ext_name(to, name, BOOLEAN); - to->Booleans[k] = FALSE; - } else { - j++; - } - } else if ((k = _nc_find_ext_name(from, to->ext_Names[j], - NUMBER)) >= 0) { - if (_nc_del_ext_name(to, name, STRING) - || _nc_del_ext_name(to, name, BOOLEAN)) { - k = _nc_ins_ext_name(to, name, NUMBER); - to->Numbers[k] = CANCELLED_NUMERIC; - } else { - j++; - } - } - } else { - j++; - } - } -} - -NCURSES_EXPORT(void) -_nc_align_termtype(TERMTYPE * to, TERMTYPE * from) -{ - int na = NUM_EXT_NAMES(to); - int nb = NUM_EXT_NAMES(from); - int n; - bool same; - char **ext_Names; - int ext_Booleans, ext_Numbers, ext_Strings; - - DEBUG(2, ("align_termtype to(%d:%s), from(%d:%s)", na, to->term_names, - nb, from->term_names)); - - if (na != 0 || nb != 0) { - if ((na == nb) /* check if the arrays are equivalent */ - &&(to->ext_Booleans == from->ext_Booleans) - && (to->ext_Numbers == from->ext_Numbers) - && (to->ext_Strings == from->ext_Strings)) { - for (n = 0, same = TRUE; n < na; n++) { - if (strcmp(to->ext_Names[n], from->ext_Names[n])) { - same = FALSE; - break; - } - } - if (same) - return; - } - /* - * This is where we pay for having a simple extension representation. - * Allocate a new ext_Names array and merge the two ext_Names arrays - * into it, updating to's counts for booleans, etc. Fortunately we do - * this only for the terminfo compiler (tic) and comparer (infocmp). - */ - ext_Names = typeMalloc(char *, na + nb); - - if (to->ext_Strings && (from->ext_Booleans + from->ext_Numbers)) - adjust_cancels(to, from); - - if (from->ext_Strings && (to->ext_Booleans + to->ext_Numbers)) - adjust_cancels(from, to); - - ext_Booleans = merge_names(ext_Names, - to->ext_Names, - to->ext_Booleans, - from->ext_Names, - from->ext_Booleans); - ext_Numbers = merge_names(ext_Names + ext_Booleans, - to->ext_Names - + to->ext_Booleans, - to->ext_Numbers, - from->ext_Names - + from->ext_Booleans, - from->ext_Numbers); - ext_Strings = merge_names(ext_Names + ext_Numbers + ext_Booleans, - to->ext_Names - + to->ext_Booleans - + to->ext_Numbers, - to->ext_Strings, - from->ext_Names - + from->ext_Booleans - + from->ext_Numbers, - from->ext_Strings); - /* - * Now we must reallocate the Booleans, etc., to allow the data to be - * overlaid. - */ - if (na != (ext_Booleans + ext_Numbers + ext_Strings)) { - realign_data(to, ext_Names, ext_Booleans, ext_Numbers, ext_Strings); - FreeIfNeeded(to->ext_Names); - to->ext_Names = ext_Names; - DEBUG(2, ("realigned %d extended names for '%s' (to)", - NUM_EXT_NAMES(to), to->term_names)); - } - if (nb != (ext_Booleans + ext_Numbers + ext_Strings)) { - nb = (ext_Booleans + ext_Numbers + ext_Strings); - realign_data(from, ext_Names, ext_Booleans, ext_Numbers, ext_Strings); - from->ext_Names = typeRealloc(char *, nb, from->ext_Names); - memcpy(from->ext_Names, ext_Names, sizeof(char *) * nb); - DEBUG(2, ("realigned %d extended names for '%s' (from)", - NUM_EXT_NAMES(from), from->term_names)); - } - } -} -#endif - -NCURSES_EXPORT(void) -_nc_copy_termtype(TERMTYPE * dst, TERMTYPE * src) -{ - unsigned i; - - *dst = *src; /* ...to copy the sizes and string-tables */ - dst->Booleans = typeMalloc(char, NUM_BOOLEANS(dst)); - dst->Numbers = typeMalloc(short, NUM_NUMBERS(dst)); - dst->Strings = typeMalloc(char *, NUM_STRINGS(dst)); - - /* FIXME: use memcpy for these and similar loops */ - for_each_boolean(i, dst) - dst->Booleans[i] = src->Booleans[i]; - for_each_number(i, dst) - dst->Numbers[i] = src->Numbers[i]; - for_each_string(i, dst) - dst->Strings[i] = src->Strings[i]; - - /* FIXME: we probably should also copy str_table and ext_str_table, - * but tic and infocmp are not written to exploit that (yet). - */ - -#if NCURSES_XNAMES - if ((i = NUM_EXT_NAMES(src)) != 0) { - dst->ext_Names = typeMalloc(char *, i); - memcpy(dst->ext_Names, src->ext_Names, i * sizeof(char *)); - } else { - dst->ext_Names = 0; - } -#endif - -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/captoinfo.c b/Build/source/libs/ncurses/ncurses/tinfo/captoinfo.c deleted file mode 100644 index e1d76a71554..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/captoinfo.c +++ /dev/null @@ -1,838 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * captoinfo.c --- conversion between termcap and terminfo formats - * - * The captoinfo() code was swiped from Ross Ridge's mytinfo package, - * adapted to fit ncurses by Eric S. Raymond . - * - * There is just one entry point: - * - * char *_nc_captoinfo(n, s, parameterized) - * - * Convert value s for termcap string capability named n into terminfo - * format. - * - * This code recognizes all the standard 4.4BSD %-escapes: - * - * %% output `%' - * %d output value as in printf %d - * %2 output value as in printf %2d - * %3 output value as in printf %3d - * %. output value as in printf %c - * %+x add x to value, then do %. - * %>xy if value > x then add y, no output - * %r reverse order of two parameters, no output - * %i increment by one, no output - * %n exclusive-or all parameters with 0140 (Datamedia 2500) - * %B BCD (16*(value/10)) + (value%10), no output - * %D Reverse coding (value - 2*(value%16)), no output (Delta Data). - * - * Also, %02 and %03 are accepted as synonyms for %2 and %3. - * - * Besides all the standard termcap escapes, this translator understands - * the following extended escapes: - * - * used by GNU Emacs termcap libraries - * %a[+*-/=][cp]x GNU arithmetic. - * %m xor the first two parameters by 0177 - * %b backup to previous parameter - * %f skip this parameter - * - * used by the University of Waterloo (MFCF) termcap libraries - * %-x subtract parameter FROM char x and output it as a char - * %ax add the character x to parameter - * - * If #define WATERLOO is on, also enable these translations: - * - * %sx subtract parameter FROM the character x - * - * By default, this Waterloo translations are not compiled in, because - * the Waterloo %s conflicts with the way terminfo uses %s in strings for - * function programming. - * - * Note the two definitions of %a: the GNU definition is translated if the - * characters after the 'a' are valid for it, otherwise the UW definition - * is translated. - */ - -#include - -#include -#include - -MODULE_ID("$Id: captoinfo.c,v 1.46 2004/08/28 18:08:50 tom Exp $") - -#define MAX_PUSHED 16 /* max # args we can push onto the stack */ - -static int stack[MAX_PUSHED]; /* the stack */ -static int stackptr; /* the next empty place on the stack */ -static int onstack; /* the top of stack */ -static int seenm; /* seen a %m */ -static int seenn; /* seen a %n */ -static int seenr; /* seen a %r */ -static int param; /* current parameter */ -static char *dp; /* pointer to end of the converted string */ - -static char *my_string; -static size_t my_length; - -static char * -init_string(void) -/* initialize 'my_string', 'my_length' */ -{ - if (my_string == 0) - my_string = typeMalloc(char, my_length = 256); - if (my_string == 0) - _nc_err_abort(MSG_NO_MEMORY); - - *my_string = '\0'; - return my_string; -} - -static char * -save_string(char *d, const char *const s) -{ - size_t have = (d - my_string); - size_t need = have + strlen(s) + 2; - if (need > my_length) { - my_string = (char *) realloc(my_string, my_length = (need + need)); - if (my_string == 0) - _nc_err_abort(MSG_NO_MEMORY); - d = my_string + have; - } - (void) strcpy(d, s); - return d + strlen(d); -} - -static inline char * -save_char(char *s, int c) -{ - static char temp[2]; - temp[0] = (char) c; - return save_string(s, temp); -} - -static void -push(void) -/* push onstack on to the stack */ -{ - if (stackptr > MAX_PUSHED) - _nc_warning("string too complex to convert"); - else - stack[stackptr++] = onstack; -} - -static void -pop(void) -/* pop the top of the stack into onstack */ -{ - if (stackptr == 0) { - if (onstack == 0) - _nc_warning("I'm confused"); - else - onstack = 0; - } else - onstack = stack[--stackptr]; - param++; -} - -static int -cvtchar(register const char *sp) -/* convert a character to a terminfo push */ -{ - unsigned char c = 0; - int len; - - switch (*sp) { - case '\\': - switch (*++sp) { - case '\'': - case '$': - case '\\': - case '%': - c = *sp; - len = 2; - break; - case '\0': - c = '\\'; - len = 1; - break; - case '0': - case '1': - case '2': - case '3': - len = 1; - while (isdigit(UChar(*sp))) { - c = 8 * c + (*sp++ - '0'); - len++; - } - break; - default: - c = *sp; - len = 2; - break; - } - break; - case '^': - c = (*++sp & 0x1f); - len = 2; - break; - default: - c = *sp; - len = 1; - } - if (isgraph(c) && c != ',' && c != '\'' && c != '\\' && c != ':') { - dp = save_string(dp, "%\'"); - dp = save_char(dp, c); - dp = save_char(dp, '\''); - } else { - dp = save_string(dp, "%{"); - if (c > 99) - dp = save_char(dp, c / 100 + '0'); - if (c > 9) - dp = save_char(dp, ((int) (c / 10)) % 10 + '0'); - dp = save_char(dp, c % 10 + '0'); - dp = save_char(dp, '}'); - } - return len; -} - -static void -getparm(int parm, int n) -/* push n copies of param on the terminfo stack if not already there */ -{ - if (seenr) { - if (parm == 1) - parm = 2; - else if (parm == 2) - parm = 1; - } - if (onstack == parm) { - if (n > 1) { - _nc_warning("string may not be optimal"); - dp = save_string(dp, "%Pa"); - while (n--) { - dp = save_string(dp, "%ga"); - } - } - return; - } - if (onstack != 0) - push(); - - onstack = parm; - - while (n--) { - dp = save_string(dp, "%p"); - dp = save_char(dp, '0' + parm); - } - - if (seenn && parm < 3) { - dp = save_string(dp, "%{96}%^"); - } - - if (seenm && parm < 3) { - dp = save_string(dp, "%{127}%^"); - } -} - -/* - * Convert a termcap string to terminfo format. - * 'cap' is the relevant terminfo capability index. - * 's' is the string value of the capability. - * 'parameterized' tells what type of translations to do: - * % translations if 1 - * pad translations if >=0 - */ -NCURSES_EXPORT(char *) -_nc_captoinfo(const char *cap, const char *s, int const parameterized) -{ - const char *capstart; - - stackptr = 0; - onstack = 0; - seenm = 0; - seenn = 0; - seenr = 0; - param = 1; - - dp = init_string(); - - /* skip the initial padding (if we haven't been told not to) */ - capstart = 0; - if (s == 0) - s = ""; - if (parameterized >= 0 && isdigit(UChar(*s))) - for (capstart = s;; s++) - if (!(isdigit(UChar(*s)) || *s == '*' || *s == '.')) - break; - - while (*s != '\0') { - switch (*s) { - case '%': - s++; - if (parameterized < 1) { - dp = save_char(dp, '%'); - break; - } - switch (*s++) { - case '%': - dp = save_char(dp, '%'); - break; - case 'r': - if (seenr++ == 1) { - _nc_warning("saw %%r twice in %s", cap); - } - break; - case 'm': - if (seenm++ == 1) { - _nc_warning("saw %%m twice in %s", cap); - } - break; - case 'n': - if (seenn++ == 1) { - _nc_warning("saw %%n twice in %s", cap); - } - break; - case 'i': - dp = save_string(dp, "%i"); - break; - case '6': - case 'B': - getparm(param, 1); - dp = save_string(dp, "%{10}%/%{16}%*"); - getparm(param, 1); - dp = save_string(dp, "%{10}%m%+"); - break; - case '8': - case 'D': - getparm(param, 2); - dp = save_string(dp, "%{2}%*%-"); - break; - case '>': - getparm(param, 2); - /* %?%{x}%>%t%{y}%+%; */ - dp = save_string(dp, "%?"); - s += cvtchar(s); - dp = save_string(dp, "%>%t"); - s += cvtchar(s); - dp = save_string(dp, "%+%;"); - break; - case 'a': - if ((*s == '=' || *s == '+' || *s == '-' - || *s == '*' || *s == '/') - && (s[1] == 'p' || s[1] == 'c') - && s[2] != '\0') { - int l; - l = 2; - if (*s != '=') - getparm(param, 1); - if (s[1] == 'p') { - getparm(param + s[2] - '@', 1); - if (param != onstack) { - pop(); - param--; - } - l++; - } else - l += cvtchar(s + 2); - switch (*s) { - case '+': - dp = save_string(dp, "%+"); - break; - case '-': - dp = save_string(dp, "%-"); - break; - case '*': - dp = save_string(dp, "%*"); - break; - case '/': - dp = save_string(dp, "%/"); - break; - case '=': - if (seenr) { - if (param == 1) - onstack = 2; - else if (param == 2) - onstack = 1; - else - onstack = param; - } else - onstack = param; - break; - } - s += l; - break; - } - getparm(param, 1); - s += cvtchar(s); - dp = save_string(dp, "%+"); - break; - case '+': - getparm(param, 1); - s += cvtchar(s); - dp = save_string(dp, "%+%c"); - pop(); - break; - case 's': -#ifdef WATERLOO - s += cvtchar(s); - getparm(param, 1); - dp = save_string(dp, "%-"); -#else - getparm(param, 1); - dp = save_string(dp, "%s"); - pop(); -#endif /* WATERLOO */ - break; - case '-': - s += cvtchar(s); - getparm(param, 1); - dp = save_string(dp, "%-%c"); - pop(); - break; - case '.': - getparm(param, 1); - dp = save_string(dp, "%c"); - pop(); - break; - case '0': /* not clear any of the historical termcaps did this */ - if (*s == '3') - goto see03; - else if (*s != '2') - goto invalid; - /* FALLTHRU */ - case '2': - getparm(param, 1); - dp = save_string(dp, "%2d"); - pop(); - break; - case '3': - see03: - getparm(param, 1); - dp = save_string(dp, "%3d"); - pop(); - break; - case 'd': - getparm(param, 1); - dp = save_string(dp, "%d"); - pop(); - break; - case 'f': - param++; - break; - case 'b': - param--; - break; - case '\\': - dp = save_string(dp, "%\\"); - break; - default: - invalid: - dp = save_char(dp, '%'); - s--; - _nc_warning("unknown %% code %s (%#x) in %s", - unctrl((chtype) *s), UChar(*s), cap); - break; - } - break; -#ifdef REVISIBILIZE - case '\\': - dp = save_char(dp, *s++); - dp = save_char(dp, *s++); - break; - case '\n': - dp = save_string(dp, "\\n"); - s++; - break; - case '\t': - dp = save_string(dp, "\\t"); - s++; - break; - case '\r': - dp = save_string(dp, "\\r"); - s++; - break; - case '\200': - dp = save_string(dp, "\\0"); - s++; - break; - case '\f': - dp = save_string(dp, "\\f"); - s++; - break; - case '\b': - dp = save_string(dp, "\\b"); - s++; - break; - case ' ': - dp = save_string(dp, "\\s"); - s++; - break; - case '^': - dp = save_string(dp, "\\^"); - s++; - break; - case ':': - dp = save_string(dp, "\\:"); - s++; - break; - case ',': - dp = save_string(dp, "\\,"); - s++; - break; - default: - if (*s == '\033') { - dp = save_string(dp, "\\E"); - s++; - } else if (*s > 0 && *s < 32) { - dp = save_char(dp, '^'); - dp = save_char(dp, *s + '@'); - s++; - } else if (*s <= 0 || *s >= 127) { - dp = save_char(dp, '\\'); - dp = save_char(dp, ((*s & 0300) >> 6) + '0'); - dp = save_char(dp, ((*s & 0070) >> 3) + '0'); - dp = save_char(dp, (*s & 0007) + '0'); - s++; - } else - dp = save_char(dp, *s++); - break; -#else - default: - dp = save_char(dp, *s++); - break; -#endif - } - } - - /* - * Now, if we stripped off some leading padding, add it at the end - * of the string as mandatory padding. - */ - if (capstart) { - dp = save_string(dp, "$<"); - for (s = capstart;; s++) - if (isdigit(UChar(*s)) || *s == '*' || *s == '.') - dp = save_char(dp, *s); - else - break; - dp = save_string(dp, "/>"); - } - - (void) save_char(dp, '\0'); - return (my_string); -} - -/* - * Check for an expression that corresponds to "%B" (BCD): - * (parameter / 10) * 16 + (parameter % 10) - */ -static int -bcd_expression(const char *str) -{ - /* leave this non-const for HPUX */ - static char fmt[] = "%%p%c%%{10}%%/%%{16}%%*%%p%c%%{10}%%m%%+"; - int len = 0; - char ch1, ch2; - - if (sscanf(str, fmt, &ch1, &ch2) == 2 - && isdigit(UChar(ch1)) - && isdigit(UChar(ch2)) - && (ch1 == ch2)) { - len = 28; -#ifndef NDEBUG - { - char buffer[80]; - int tst; - sprintf(buffer, fmt, ch1, ch2); - tst = strlen(buffer) - 1; - assert(len == tst); - } -#endif - } - return len; -} - -static char * -save_tc_char(char *bufptr, int c1) -{ - char temp[80]; - - if (is7bits(c1) && isprint(c1)) { - if (c1 == ':' || c1 == '\\') - bufptr = save_char(bufptr, '\\'); - bufptr = save_char(bufptr, c1); - } else { - if (c1 == (c1 & 0x1f)) /* iscntrl() returns T on 255 */ - (void) strcpy(temp, unctrl((chtype) c1)); - else - (void) sprintf(temp, "\\%03o", c1); - bufptr = save_string(bufptr, temp); - } - return bufptr; -} - -static char * -save_tc_inequality(char *bufptr, int c1, int c2) -{ - bufptr = save_string(bufptr, "%>"); - bufptr = save_tc_char(bufptr, c1); - bufptr = save_tc_char(bufptr, c2); - return bufptr; -} - -/* - * Here are the capabilities infotocap assumes it can translate to: - * - * %% output `%' - * %d output value as in printf %d - * %2 output value as in printf %2d - * %3 output value as in printf %3d - * %. output value as in printf %c - * %+c add character c to value, then do %. - * %>xy if value > x then add y, no output - * %r reverse order of two parameters, no output - * %i increment by one, no output - * %n exclusive-or all parameters with 0140 (Datamedia 2500) - * %B BCD (16*(value/10)) + (value%10), no output - * %D Reverse coding (value - 2*(value%16)), no output (Delta Data). - * %m exclusive-or all parameters with 0177 (not in 4.4BSD) - */ - -/* - * Convert a terminfo string to termcap format. Parameters are as in - * _nc_captoinfo(). - */ -NCURSES_EXPORT(char *) -_nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameterized) -{ - int seenone = 0, seentwo = 0, saw_m = 0, saw_n = 0; - const char *padding; - const char *trimmed = 0; - char ch1 = 0, ch2 = 0; - char *bufptr = init_string(); - int len; - bool syntax_error = FALSE; - - /* we may have to move some trailing mandatory padding up front */ - padding = str + strlen(str) - 1; - if (padding > str && *padding == '>' && *--padding == '/') { - --padding; - while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*') - padding--; - if (padding > str && *padding == '<' && *--padding == '$') - trimmed = padding; - padding += 2; - - while (isdigit(UChar(*padding)) || *padding == '.' || *padding == '*') - bufptr = save_char(bufptr, *padding++); - } - - for (; *str && str != trimmed; str++) { - int c1, c2; - char *cp = 0; - - if (str[0] == '\\' && (str[1] == '^' || str[1] == ',')) { - bufptr = save_char(bufptr, *++str); - } else if (str[0] == '$' && str[1] == '<') { /* discard padding */ - str += 2; - while (isdigit(UChar(*str)) - || *str == '.' - || *str == '*' - || *str == '/' - || *str == '>') - str++; - --str; - } else if (str[0] == '%' && str[1] == '%') { /* escaped '%' */ - bufptr = save_string(bufptr, "%%"); - ++str; - } else if (*str != '%' || (parameterized < 1)) { - bufptr = save_char(bufptr, *str); - } else if (sscanf(str, "%%?%%{%d}%%>%%t%%{%d}%%+%%;", &c1, &c2) == 2) { - str = strchr(str, ';'); - bufptr = save_tc_inequality(bufptr, c1, c2); - } else if (sscanf(str, "%%?%%{%d}%%>%%t%%'%c'%%+%%;", &c1, &ch2) == 2) { - str = strchr(str, ';'); - bufptr = save_tc_inequality(bufptr, c1, c2); - } else if (sscanf(str, "%%?%%'%c'%%>%%t%%{%d}%%+%%;", &ch1, &c2) == 2) { - str = strchr(str, ';'); - bufptr = save_tc_inequality(bufptr, c1, c2); - } else if (sscanf(str, "%%?%%'%c'%%>%%t%%'%c'%%+%%;", &ch1, &ch2) == 2) { - str = strchr(str, ';'); - bufptr = save_tc_inequality(bufptr, c1, c2); - } else if ((len = bcd_expression(str)) != 0) { - str += len; - bufptr = save_string(bufptr, "%B"); - } else if ((sscanf(str, "%%{%d}%%+%%c", &c1) == 1 - || sscanf(str, "%%'%c'%%+%%c", &ch1) == 1) - && (cp = strchr(str, '+'))) { - str = cp + 2; - bufptr = save_string(bufptr, "%+"); - - if (ch1) - c1 = ch1; - bufptr = save_tc_char(bufptr, c1); - } - /* FIXME: this "works" for 'delta' */ - else if (strncmp(str, "%{2}%*%-", 8) == 0) { - str += 7; - bufptr = save_string(bufptr, "%D"); - } else if (strncmp(str, "%{96}%^", 7) == 0) { - str += 6; - if (saw_m++ == 0) { - bufptr = save_string(bufptr, "%n"); - } - } else if (strncmp(str, "%{127}%^", 8) == 0) { - str += 7; - if (saw_n++ == 0) { - bufptr = save_string(bufptr, "%m"); - } - } else { /* cm-style format element */ - str++; - switch (*str) { - case '%': - bufptr = save_char(bufptr, '%'); - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - bufptr = save_char(bufptr, '%'); - while (isdigit(UChar(*str))) - bufptr = save_char(bufptr, *str++); - if (strchr("doxX.", *str)) { - if (*str != 'd') /* termcap doesn't have octal, hex */ - return 0; - } - break; - - case 'd': - bufptr = save_string(bufptr, "%d"); - break; - - case 'c': - bufptr = save_string(bufptr, "%."); - break; - - /* - * %s isn't in termcap, but it's convenient to pass it through - * so we can represent things like terminfo pfkey strings in - * termcap notation. - */ - case 's': - bufptr = save_string(bufptr, "%s"); - break; - - case 'p': - str++; - if (*str == '1') - seenone = 1; - else if (*str == '2') { - if (!seenone && !seentwo) { - bufptr = save_string(bufptr, "%r"); - seentwo++; - } - } else if (*str >= '3') - return (0); - break; - - case 'i': - bufptr = save_string(bufptr, "%i"); - break; - - default: - bufptr = save_char(bufptr, *str); - syntax_error = TRUE; - break; - } /* endswitch (*str) */ - } /* endelse (*str == '%') */ - - if (*str == '\0') - break; - - } /* endwhile (*str) */ - - return (syntax_error ? NULL : my_string); -} - -#ifdef MAIN - -int curr_line; - -int -main(int argc, char *argv[]) -{ - int c, tc = FALSE; - - while ((c = getopt(argc, argv, "c")) != EOF) - switch (c) { - case 'c': - tc = TRUE; - break; - } - - curr_line = 0; - for (;;) { - char buf[BUFSIZ]; - - ++curr_line; - if (fgets(buf, sizeof(buf), stdin) == 0) - break; - buf[strlen(buf) - 1] = '\0'; - _nc_set_source(buf); - - if (tc) { - char *cp = _nc_infotocap("to termcap", buf, 1); - - if (cp) - (void) fputs(cp, stdout); - } else - (void) fputs(_nc_captoinfo("to terminfo", buf, 1), stdout); - (void) putchar('\n'); - } - return (0); -} -#endif /* MAIN */ - -/* captoinfo.c ends here */ diff --git a/Build/source/libs/ncurses/ncurses/tinfo/comp_error.c b/Build/source/libs/ncurses/ncurses/tinfo/comp_error.c deleted file mode 100644 index b6650091d5e..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/comp_error.c +++ /dev/null @@ -1,146 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * comp_error.c -- Error message routines - * - */ - -#include - -#include - -MODULE_ID("$Id: comp_error.c,v 1.26 2004/04/17 22:20:06 tom Exp $") - -NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE; -NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */ -NCURSES_EXPORT_VAR(int) _nc_curr_col = 0; /* current column # in input */ - -static const char *sourcename; -static char *termtype; - -NCURSES_EXPORT(void) -_nc_set_source(const char *const name) -{ - sourcename = name; -} - -NCURSES_EXPORT(void) -_nc_set_type(const char *const name) -{ - if (termtype == 0) - termtype = typeMalloc(char, MAX_NAME_SIZE + 1); - if (termtype != 0) { - termtype[0] = '\0'; - if (name) - strncat(termtype, name, MAX_NAME_SIZE); - } -} - -NCURSES_EXPORT(void) -_nc_get_type(char *name) -{ -#if NO_LEAKS - if (name == 0) { - FreeAndNull(termtype); - return; - } -#endif - strcpy(name, termtype != 0 ? termtype : ""); -} - -static inline void -where_is_problem(void) -{ - fprintf(stderr, "\"%s\"", sourcename); - if (_nc_curr_line >= 0) - fprintf(stderr, ", line %d", _nc_curr_line); - if (_nc_curr_col >= 0) - fprintf(stderr, ", col %d", _nc_curr_col); - if (termtype != 0 && termtype[0] != '\0') - fprintf(stderr, ", terminal '%s'", termtype); - fputc(':', stderr); - fputc(' ', stderr); -} - -NCURSES_EXPORT(void) -_nc_warning(const char *const fmt,...) -{ - va_list argp; - - if (_nc_suppress_warnings) - return; - - where_is_problem(); - va_start(argp, fmt); - vfprintf(stderr, fmt, argp); - fprintf(stderr, "\n"); - va_end(argp); -} - -NCURSES_EXPORT(void) -_nc_err_abort(const char *const fmt,...) -{ - va_list argp; - - where_is_problem(); - va_start(argp, fmt); - vfprintf(stderr, fmt, argp); - fprintf(stderr, "\n"); - va_end(argp); - exit(EXIT_FAILURE); -} - -NCURSES_EXPORT(void) -_nc_syserr_abort(const char *const fmt,...) -{ - va_list argp; - - where_is_problem(); - va_start(argp, fmt); - vfprintf(stderr, fmt, argp); - fprintf(stderr, "\n"); - va_end(argp); - - /* If we're debugging, try to show where the problem occurred - this - * will dump core. - */ -#if defined(TRACE) || !defined(NDEBUG) - abort(); -#else - /* Dumping core in production code is not a good idea. - */ - exit(EXIT_FAILURE); -#endif -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/comp_expand.c b/Build/source/libs/ncurses/ncurses/tinfo/comp_expand.c deleted file mode 100644 index 7ba438aff8e..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/comp_expand.c +++ /dev/null @@ -1,184 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1998 * - ****************************************************************************/ - -#include - -#include -#include - -MODULE_ID("$Id: comp_expand.c,v 1.17 2001/09/22 19:16:52 tom Exp $") - -static int -trailing_spaces(const char *src) -{ - while (*src == ' ') - src++; - return *src == 0; -} - -/* this deals with differences over whether 0x7f and 0x80..0x9f are controls */ -#define REALCTL(s) (UChar(*(s)) < 127 && iscntrl(UChar(*(s)))) -#define REALPRINT(s) (UChar(*(s)) < 127 && isprint(UChar(*(s)))) - -NCURSES_EXPORT(char *) -_nc_tic_expand -(const char *srcp, bool tic_format, int numbers) -{ - static char *buffer; - static size_t length; - - int bufp; - const char *str = VALID_STRING(srcp) ? srcp : ""; - bool islong = (strlen(str) > 3); - size_t need = (2 + strlen(str)) * 4; - int ch; - - if (buffer == 0 || need > length) { - if ((buffer = typeRealloc(char, length = need, buffer)) == 0) - return 0; - } - - bufp = 0; - while ((ch = UChar(*str)) != 0) { - if (ch == '%' && REALPRINT(str + 1)) { - buffer[bufp++] = *str++; - /* - * Though the character literals are more compact, most - * terminal descriptions use numbers and are not easy - * to read in character-literal form. - */ - switch (numbers) { - case -1: - if (str[0] == S_QUOTE - && str[1] != '\\' - && REALPRINT(str + 1) - && str[2] == S_QUOTE) { - sprintf(buffer + bufp, "{%d}", str[1]); - bufp += strlen(buffer + bufp); - str += 2; - } else { - buffer[bufp++] = *str; - } - break; - /* - * If we have a "%{number}", try to translate it into - * a "%'char'" form, since that will run a little faster - * when we're interpreting it. Also, having one form - * for the constant makes it simpler to compare terminal - * descriptions. - */ - case 1: - if (str[0] == L_BRACE - && isdigit(UChar(str[1]))) { - char *dst = 0; - long value = strtol(str + 1, &dst, 0); - if (dst != 0 - && *dst == R_BRACE - && value < 127 - && value != '\\' /* FIXME */ - && isprint((int) value)) { - ch = (int) value; - buffer[bufp++] = S_QUOTE; - if (ch == '\\' - || ch == S_QUOTE) - buffer[bufp++] = '\\'; - buffer[bufp++] = ch; - buffer[bufp++] = S_QUOTE; - str = dst; - } else { - buffer[bufp++] = *str; - } - } else { - buffer[bufp++] = *str; - } - break; - default: - buffer[bufp++] = *str; - break; - } - } else if (ch == 128) { - buffer[bufp++] = '\\'; - buffer[bufp++] = '0'; - } else if (ch == '\033') { - buffer[bufp++] = '\\'; - buffer[bufp++] = 'E'; - } else if (ch == '\\' && tic_format && (str == srcp || str[-1] != '^')) { - buffer[bufp++] = '\\'; - buffer[bufp++] = '\\'; - } else if (ch == ' ' && tic_format && (str == srcp || - trailing_spaces(str))) { - buffer[bufp++] = '\\'; - buffer[bufp++] = 's'; - } else if ((ch == ',' || ch == ':' || ch == '^') && tic_format) { - buffer[bufp++] = '\\'; - buffer[bufp++] = ch; - } else if (REALPRINT(str) - && (ch != ',' - && ch != ':' - && !(ch == '!' && !tic_format) - && ch != '^')) - buffer[bufp++] = ch; -#if 0 /* FIXME: this would be more readable (in fact the whole 'islong' logic should be removed) */ - else if (ch == '\b') { - buffer[bufp++] = '\\'; - buffer[bufp++] = 'b'; - } else if (ch == '\f') { - buffer[bufp++] = '\\'; - buffer[bufp++] = 'f'; - } else if (ch == '\t' && islong) { - buffer[bufp++] = '\\'; - buffer[bufp++] = 't'; - } -#endif - else if (ch == '\r' && (islong || (strlen(srcp) > 2 && str[1] == '\0'))) { - buffer[bufp++] = '\\'; - buffer[bufp++] = 'r'; - } else if (ch == '\n' && islong) { - buffer[bufp++] = '\\'; - buffer[bufp++] = 'n'; - } -#define UnCtl(c) ((c) + '@') - else if (REALCTL(str) && ch != '\\' - && (!islong || isdigit(UChar(str[1])))) { - (void) sprintf(&buffer[bufp], "^%c", UnCtl(ch)); - bufp += 2; - } else { - (void) sprintf(&buffer[bufp], "\\%03o", ch); - bufp += 4; - } - - str++; - } - - buffer[bufp] = '\0'; - return (buffer); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/comp_hash.c b/Build/source/libs/ncurses/ncurses/tinfo/comp_hash.c deleted file mode 100644 index dabc0c55a0f..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/comp_hash.c +++ /dev/null @@ -1,331 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2001,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * comp_hash.c --- Routines to deal with the hashtable of capability - * names. - * - */ - -#include - -#include -#include - -#ifdef MAIN_PROGRAM -#include -#undef DEBUG -#define DEBUG(level, params) /*nothing */ -#endif - -MODULE_ID("$Id: comp_hash.c,v 1.26 2003/11/08 21:58:36 tom Exp $") - -static int hash_function(const char *); - -/* - * _nc_make_hash_table() - * - * Takes the entries in table[] and hashes them into hash_table[] - * by name. There are CAPTABSIZE entries in table[] and HASHTABSIZE - * slots in hash_table[]. - * - */ - -#ifdef MAIN_PROGRAM - -#undef MODULE_ID -#define MODULE_ID(id) /*nothing */ -#include - -static void -_nc_make_hash_table(struct name_table_entry *table, - struct name_table_entry **hash_table) -{ - int i; - int hashvalue; - int collisions = 0; - - for (i = 0; i < CAPTABSIZE; i++) { - hashvalue = hash_function(table[i].nte_name); - - if (hash_table[hashvalue] != (struct name_table_entry *) 0) - collisions++; - - if (hash_table[hashvalue] != 0) - table[i].nte_link = (short) (hash_table[hashvalue] - table); - hash_table[hashvalue] = &table[i]; - } - - DEBUG(4, ("Hash table complete: %d collisions out of %d entries", - collisions, CAPTABSIZE)); -} -#endif - -/* - * int hash_function(string) - * - * Computes the hashing function on the given string. - * - * The current hash function is the sum of each consectutive pair - * of characters, taken as two-byte integers, mod HASHTABSIZE. - * - */ - -static -int -hash_function(const char *string) -{ - long sum = 0; - - DEBUG(9, ("hashing %s", string)); - while (*string) { - sum += (long) (*string + (*(string + 1) << 8)); - string++; - } - - DEBUG(9, ("sum is %ld", sum)); - return (int) (sum % HASHTABSIZE); -} - -/* - * struct name_table_entry * - * find_entry(string) - * - * Finds the entry for the given string in the hash table if present. - * Returns a pointer to the entry in the table or 0 if not found. - * - */ - -#ifndef MAIN_PROGRAM -NCURSES_EXPORT(struct name_table_entry const *) -_nc_find_entry -(const char *string, const struct name_table_entry *const *hash_table) -{ - int hashvalue; - struct name_table_entry const *ptr; - - hashvalue = hash_function(string); - - if ((ptr = hash_table[hashvalue]) != 0) { - while (strcmp(ptr->nte_name, string) != 0) { - if (ptr->nte_link < 0) - return 0; - ptr = ptr->nte_link + hash_table[HASHTABSIZE]; - } - } - - return (ptr); -} - -/* - * struct name_table_entry * - * find_type_entry(string, type, table) - * - * Finds the first entry for the given name with the given type in the - * given table if present (as distinct from find_entry, which finds the - * the last entry regardless of type). You can use this if you detect - * a name clash. It's slower, though. Returns a pointer to the entry - * in the table or 0 if not found. - */ - -NCURSES_EXPORT(struct name_table_entry const *) -_nc_find_type_entry -(const char *string, - int type, - const struct name_table_entry *table) -{ - struct name_table_entry const *ptr; - - for (ptr = table; ptr < table + CAPTABSIZE; ptr++) { - if (ptr->nte_type == type && strcmp(string, ptr->nte_name) == 0) - return (ptr); - } - - return ((struct name_table_entry *) NULL); -} -#endif - -#ifdef MAIN_PROGRAM -/* - * This filter reads from standard input a list of tab-delimited columns, - * (e.g., from Caps.filtered) computes the hash-value of a specified column and - * writes the hashed tables to standard output. - * - * By compiling the hash table at build time, we're able to make the entire - * set of terminfo and termcap tables readonly (and also provide some runtime - * performance enhancement). - */ - -#define MAX_COLUMNS BUFSIZ /* this _has_ to be worst-case */ - -static char ** -parse_columns(char *buffer) -{ - static char **list; - - int col = 0; - - if (list == 0 && (list = typeCalloc(char *, MAX_COLUMNS)) == 0) - return (0); - - if (*buffer != '#') { - while (*buffer != '\0') { - char *s; - for (s = buffer; (*s != '\0') && !isspace(UChar(*s)); s++) - /*EMPTY */ ; - if (s != buffer) { - char mark = *s; - *s = '\0'; - if ((s - buffer) > 1 - && (*buffer == '"') - && (s[-1] == '"')) { /* strip the quotes */ - buffer++; - s[-1] = '\0'; - } - list[col] = buffer; - col++; - if (mark == '\0') - break; - while (*++s && isspace(UChar(*s))) - /*EMPTY */ ; - buffer = s; - } else - break; - } - } - return col ? list : 0; -} - -int -main(int argc, char **argv) -{ - struct name_table_entry *name_table = typeCalloc(struct - name_table_entry, CAPTABSIZE); - struct name_table_entry **hash_table = typeCalloc(struct name_table_entry - *, HASHTABSIZE); - const char *root_name = ""; - int column = 0; - int n; - char buffer[BUFSIZ]; - - static const char *typenames[] = - {"BOOLEAN", "NUMBER", "STRING"}; - - short BoolCount = 0; - short NumCount = 0; - short StrCount = 0; - - /* The first argument is the column-number (starting with 0). - * The second is the root name of the tables to generate. - */ - if (argc <= 2 - || (column = atoi(argv[1])) <= 0 - || (column >= MAX_COLUMNS) - || *(root_name = argv[2]) == 0) { - fprintf(stderr, "usage: make_hash column root_name\n"); - exit(EXIT_FAILURE); - } - - /* - * Read the table into our arrays. - */ - for (n = 0; (n < CAPTABSIZE) && fgets(buffer, BUFSIZ, stdin);) { - char **list, *nlp = strchr(buffer, '\n'); - if (nlp) - *nlp = '\0'; - list = parse_columns(buffer); - if (list == 0) /* blank or comment */ - continue; - name_table[n].nte_link = -1; /* end-of-hash */ - name_table[n].nte_name = strdup(list[column]); - if (!strcmp(list[2], "bool")) { - name_table[n].nte_type = BOOLEAN; - name_table[n].nte_index = BoolCount++; - } else if (!strcmp(list[2], "num")) { - name_table[n].nte_type = NUMBER; - name_table[n].nte_index = NumCount++; - } else if (!strcmp(list[2], "str")) { - name_table[n].nte_type = STRING; - name_table[n].nte_index = StrCount++; - } else { - fprintf(stderr, "Unknown type: %s\n", list[2]); - exit(EXIT_FAILURE); - } - n++; - } - _nc_make_hash_table(name_table, hash_table); - - /* - * Write the compiled tables to standard output - */ - printf("static struct name_table_entry const _nc_%s_table[] =\n", - root_name); - printf("{\n"); - for (n = 0; n < CAPTABSIZE; n++) { - sprintf(buffer, "\"%s\"", - name_table[n].nte_name); - printf("\t{ %15s,\t%10s,\t%3d, %3d }%c\n", - buffer, - typenames[name_table[n].nte_type], - name_table[n].nte_index, - name_table[n].nte_link, - n < CAPTABSIZE - 1 ? ',' : ' '); - } - printf("};\n\n"); - - printf("const struct name_table_entry * const _nc_%s_hash_table[%d] =\n", - root_name, - HASHTABSIZE + 1); - printf("{\n"); - for (n = 0; n < HASHTABSIZE; n++) { - if (hash_table[n] != 0) { - sprintf(buffer, "_nc_%s_table + %3ld", - root_name, - (long) (hash_table[n] - name_table)); - } else { - strcpy(buffer, "0"); - } - printf("\t%s,\n", buffer); - } - printf("\t_nc_%s_table\t/* base-of-table */\n", root_name); - printf("};\n\n"); - - printf("#if (BOOLCOUNT!=%d)||(NUMCOUNT!=%d)||(STRCOUNT!=%d)\n", - BoolCount, NumCount, StrCount); - printf("#error\t--> term.h and comp_captab.c disagree about the <--\n"); - printf("#error\t--> numbers of booleans, numbers and/or strings <--\n"); - printf("#endif\n\n"); - - return EXIT_SUCCESS; -} -#endif diff --git a/Build/source/libs/ncurses/ncurses/tinfo/comp_parse.c b/Build/source/libs/ncurses/ncurses/tinfo/comp_parse.c deleted file mode 100644 index 529e104f70f..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/comp_parse.c +++ /dev/null @@ -1,500 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/* - * comp_parse.c -- parser driver loop and use handling. - * - * _nc_read_entry_source(FILE *, literal, bool, bool (*hook)()) - * _nc_resolve_uses2(void) - * _nc_free_entries(void) - * - * Use this code by calling _nc_read_entry_source() on as many source - * files as you like (either terminfo or termcap syntax). If you - * want use-resolution, call _nc_resolve_uses2(). To free the list - * storage, do _nc_free_entries(). - * - */ - -#include - -#include - -#include -#include - -MODULE_ID("$Id: comp_parse.c,v 1.59 2004/07/05 12:01:24 tom Exp $") - -static void sanity_check2(TERMTYPE *, bool); -NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2; - -/* obsolete: 20040705 */ -static void sanity_check(TERMTYPE *); -NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check; - -/**************************************************************************** - * - * Entry queue handling - * - ****************************************************************************/ -/* - * The entry list is a doubly linked list with NULLs terminating the lists: - * - * --------- --------- --------- - * | | | | | | offset - * |-------| |-------| |-------| - * | ----+-->| ----+-->| NULL | next - * |-------| |-------| |-------| - * | NULL |<--+---- |<--+---- | last - * --------- --------- --------- - * ^ ^ - * | | - * | | - * _nc_head _nc_tail - */ - -NCURSES_EXPORT_VAR(ENTRY *) _nc_head = 0; -NCURSES_EXPORT_VAR(ENTRY *) _nc_tail = 0; - -static void -enqueue(ENTRY * ep) -/* add an entry to the in-core list */ -{ - ENTRY *newp = _nc_copy_entry(ep); - - if (newp == 0) - _nc_err_abort(MSG_NO_MEMORY); - - newp->last = _nc_tail; - _nc_tail = newp; - - newp->next = 0; - if (newp->last) - newp->last->next = newp; -} - -NCURSES_EXPORT(void) -_nc_free_entries(ENTRY * headp) -/* free the allocated storage consumed by list entries */ -{ - ENTRY *ep, *next; - - for (ep = headp; ep; ep = next) { - _nc_free_termtype(&(ep->tterm)); - - next = ep->next; - - free(ep); - if (ep == _nc_head) - _nc_head = 0; - if (ep == _nc_tail) - _nc_tail = 0; - } -} - -static char * -force_bar(char *dst, char *src) -{ - if (strchr(src, '|') == 0) { - size_t len = strlen(src); - if (len > MAX_NAME_SIZE) - len = MAX_NAME_SIZE; - (void) strncpy(dst, src, len); - (void) strcpy(dst + len, "|"); - src = dst; - } - return src; -} - -NCURSES_EXPORT(bool) -_nc_entry_match(char *n1, char *n2) -/* do any of the aliases in a pair of terminal names match? */ -{ - char *pstart, *qstart, *pend, *qend; - char nc1[MAX_NAME_SIZE + 2], nc2[MAX_NAME_SIZE + 2]; - - n1 = force_bar(nc1, n1); - n2 = force_bar(nc2, n2); - - for (pstart = n1; (pend = strchr(pstart, '|')); pstart = pend + 1) - for (qstart = n2; (qend = strchr(qstart, '|')); qstart = qend + 1) - if ((pend - pstart == qend - qstart) - && memcmp(pstart, qstart, (size_t) (pend - pstart)) == 0) - return (TRUE); - - return (FALSE); -} - -/**************************************************************************** - * - * Entry compiler and resolution logic - * - ****************************************************************************/ - -NCURSES_EXPORT(void) -_nc_read_entry_source(FILE *fp, char *buf, - int literal, bool silent, - bool(*hook) (ENTRY *)) -/* slurp all entries in the given file into core */ -{ - ENTRY thisentry; - bool oldsuppress = _nc_suppress_warnings; - int immediate = 0; - - if (silent) - _nc_suppress_warnings = TRUE; /* shut the lexer up, too */ - - _nc_reset_input(fp, buf); - for (;;) { - memset(&thisentry, 0, sizeof(thisentry)); - if (_nc_parse_entry(&thisentry, literal, silent) == ERR) - break; - if (!isalnum(UChar(thisentry.tterm.term_names[0]))) - _nc_err_abort("terminal names must start with letter or digit"); - - /* - * This can be used for immediate compilation of entries with no - * use references to disk, so as to avoid chewing up a lot of - * core when the resolution code could fetch entries off disk. - */ - if (hook != NULLHOOK && (*hook) (&thisentry)) { - immediate++; - } else { - enqueue(&thisentry); - FreeIfNeeded(thisentry.tterm.Booleans); - FreeIfNeeded(thisentry.tterm.Numbers); - FreeIfNeeded(thisentry.tterm.Strings); - } - } - - if (_nc_tail) { - /* set up the head pointer */ - for (_nc_head = _nc_tail; _nc_head->last; _nc_head = _nc_head->last) - continue; - - DEBUG(1, ("head = %s", _nc_head->tterm.term_names)); - DEBUG(1, ("tail = %s", _nc_tail->tterm.term_names)); - } -#ifdef TRACE - else if (!immediate) - DEBUG(1, ("no entries parsed")); -#endif - - _nc_suppress_warnings = oldsuppress; -} - -NCURSES_EXPORT(int) -_nc_resolve_uses2(bool fullresolve, bool literal) -/* try to resolve all use capabilities */ -{ - ENTRY *qp, *rp, *lastread = 0; - bool keepgoing; - int i, unresolved, total_unresolved, multiples; - - DEBUG(2, ("RESOLUTION BEGINNING")); - - /* - * Check for multiple occurrences of the same name. - */ - multiples = 0; - for_entry_list(qp) { - int matchcount = 0; - - for_entry_list(rp) { - if (qp > rp - && _nc_entry_match(qp->tterm.term_names, rp->tterm.term_names)) { - matchcount++; - if (matchcount == 1) { - (void) fprintf(stderr, "Name collision between %s", - _nc_first_name(qp->tterm.term_names)); - multiples++; - } - if (matchcount >= 1) - (void) fprintf(stderr, " %s", _nc_first_name(rp->tterm.term_names)); - } - } - if (matchcount >= 1) - (void) putc('\n', stderr); - } - if (multiples > 0) - return (FALSE); - - DEBUG(2, ("NO MULTIPLE NAME OCCURRENCES")); - - /* - * First resolution stage: compute link pointers corresponding to names. - */ - total_unresolved = 0; - _nc_curr_col = -1; - for_entry_list(qp) { - unresolved = 0; - for (i = 0; i < qp->nuses; i++) { - bool foundit; - char *child = _nc_first_name(qp->tterm.term_names); - char *lookfor = qp->uses[i].name; - long lookline = qp->uses[i].line; - - foundit = FALSE; - - _nc_set_type(child); - - /* first, try to resolve from in-core records */ - for_entry_list(rp) { - if (rp != qp - && _nc_name_match(rp->tterm.term_names, lookfor, "|")) { - DEBUG(2, ("%s: resolving use=%s (in core)", - child, lookfor)); - - qp->uses[i].link = rp; - foundit = TRUE; - } - } - - /* if that didn't work, try to merge in a compiled entry */ - if (!foundit) { - TERMTYPE thisterm; - char filename[PATH_MAX]; - - memset(&thisterm, 0, sizeof(thisterm)); - if (_nc_read_entry(lookfor, filename, &thisterm) == 1) { - DEBUG(2, ("%s: resolving use=%s (compiled)", - child, lookfor)); - - rp = typeMalloc(ENTRY, 1); - if (rp == 0) - _nc_err_abort(MSG_NO_MEMORY); - rp->tterm = thisterm; - rp->nuses = 0; - rp->next = lastread; - lastread = rp; - - qp->uses[i].link = rp; - foundit = TRUE; - } - } - - /* no good, mark this one unresolvable and complain */ - if (!foundit) { - unresolved++; - total_unresolved++; - - _nc_curr_line = lookline; - _nc_warning("resolution of use=%s failed", lookfor); - qp->uses[i].link = 0; - } - } - } - if (total_unresolved) { - /* free entries read in off disk */ - _nc_free_entries(lastread); - return (FALSE); - } - - DEBUG(2, ("NAME RESOLUTION COMPLETED OK")); - - /* - * OK, at this point all (char *) references in `name' members - * have been successfully converted to (ENTRY *) pointers in - * `link' members. Time to do the actual merges. - */ - if (fullresolve) { - do { - TERMTYPE merged; - - keepgoing = FALSE; - - for_entry_list(qp) { - if (qp->nuses > 0) { - DEBUG(2, ("%s: attempting merge", - _nc_first_name(qp->tterm.term_names))); - /* - * If any of the use entries we're looking for is - * incomplete, punt. We'll catch this entry on a - * subsequent pass. - */ - for (i = 0; i < qp->nuses; i++) - if (qp->uses[i].link->nuses) { - DEBUG(2, ("%s: use entry %d unresolved", - _nc_first_name(qp->tterm.term_names), i)); - goto incomplete; - } - - /* - * First, make sure there's no garbage in the - * merge block. as a side effect, copy into - * the merged entry the name field and string - * table pointer. - */ - _nc_copy_termtype(&merged, &(qp->tterm)); - - /* - * Now merge in each use entry in the proper - * (reverse) order. - */ - for (; qp->nuses; qp->nuses--) - _nc_merge_entry(&merged, - &qp->uses[qp->nuses - 1].link->tterm); - - /* - * Now merge in the original entry. - */ - _nc_merge_entry(&merged, &qp->tterm); - - /* - * Replace the original entry with the merged one. - */ - FreeIfNeeded(qp->tterm.Booleans); - FreeIfNeeded(qp->tterm.Numbers); - FreeIfNeeded(qp->tterm.Strings); - qp->tterm = merged; - _nc_wrap_entry(qp, TRUE); - - /* - * We know every entry is resolvable because name resolution - * didn't bomb. So go back for another pass. - */ - /* FALLTHRU */ - incomplete: - keepgoing = TRUE; - } - } - } while - (keepgoing); - - DEBUG(2, ("MERGES COMPLETED OK")); - } - - /* - * We'd like to free entries read in off disk at this point, but can't. - * The merge_entry() code doesn't copy the strings in the use entries, - * it just aliases them. If this ever changes, do a - * free_entries(lastread) here. - */ - - DEBUG(2, ("RESOLUTION FINISHED")); - - if (fullresolve) - if (_nc_check_termtype != 0) { - _nc_curr_col = -1; - for_entry_list(qp) { - _nc_curr_line = qp->startline; - _nc_set_type(_nc_first_name(qp->tterm.term_names)); - _nc_check_termtype2(&qp->tterm, literal); - } - DEBUG(2, ("SANITY CHECK FINISHED")); - } - - return (TRUE); -} - -/* obsolete: 20040705 */ -NCURSES_EXPORT(int) -_nc_resolve_uses(bool fullresolve) -{ - return _nc_resolve_uses2(fullresolve, FALSE); -} - -/* - * This bit of legerdemain turns all the terminfo variable names into - * references to locations in the arrays Booleans, Numbers, and Strings --- - * precisely what's needed. - */ - -#undef CUR -#define CUR tp-> - -static void -sanity_check2(TERMTYPE *tp, bool literal) -{ - if (!PRESENT(exit_attribute_mode)) { -#ifdef __UNUSED__ /* this casts too wide a net */ - bool terminal_entry = !strchr(tp->term_names, '+'); - if (terminal_entry && - (PRESENT(set_attributes) - || PRESENT(enter_standout_mode) - || PRESENT(enter_underline_mode) - || PRESENT(enter_blink_mode) - || PRESENT(enter_bold_mode) - || PRESENT(enter_dim_mode) - || PRESENT(enter_secure_mode) - || PRESENT(enter_protected_mode) - || PRESENT(enter_reverse_mode))) - _nc_warning("no exit_attribute_mode"); -#endif /* __UNUSED__ */ - PAIRED(enter_standout_mode, exit_standout_mode); - PAIRED(enter_underline_mode, exit_underline_mode); - } - - /* we do this check/fix in postprocess_termcap(), but some packagers - * prefer to bypass it... - */ - if (!literal) { - if (acs_chars == 0 - && enter_alt_charset_mode != 0 - && exit_alt_charset_mode != 0) - acs_chars = strdup(VT_ACSC); - ANDMISSING(enter_alt_charset_mode, acs_chars); - ANDMISSING(exit_alt_charset_mode, acs_chars); - } - - /* listed in structure-member order of first argument */ - PAIRED(enter_alt_charset_mode, exit_alt_charset_mode); - ANDMISSING(enter_blink_mode, exit_attribute_mode); - ANDMISSING(enter_bold_mode, exit_attribute_mode); - PAIRED(exit_ca_mode, enter_ca_mode); - PAIRED(enter_delete_mode, exit_delete_mode); - ANDMISSING(enter_dim_mode, exit_attribute_mode); - PAIRED(enter_insert_mode, exit_insert_mode); - ANDMISSING(enter_secure_mode, exit_attribute_mode); - ANDMISSING(enter_protected_mode, exit_attribute_mode); - ANDMISSING(enter_reverse_mode, exit_attribute_mode); - PAIRED(from_status_line, to_status_line); - PAIRED(meta_off, meta_on); - - PAIRED(prtr_on, prtr_off); - PAIRED(save_cursor, restore_cursor); - PAIRED(enter_xon_mode, exit_xon_mode); - PAIRED(enter_am_mode, exit_am_mode); - ANDMISSING(label_off, label_on); -#ifdef remove_clock - PAIRED(display_clock, remove_clock); -#endif - ANDMISSING(set_color_pair, initialize_pair); -} - -/* obsolete: 20040705 */ -static void -sanity_check(TERMTYPE *tp) -{ - sanity_check2(tp, FALSE); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/comp_scan.c b/Build/source/libs/ncurses/ncurses/tinfo/comp_scan.c deleted file mode 100644 index 177bc935307..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/comp_scan.c +++ /dev/null @@ -1,863 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996 on * - ****************************************************************************/ - -/* - * comp_scan.c --- Lexical scanner for terminfo compiler. - * - * _nc_reset_input() - * _nc_get_token() - * _nc_panic_mode() - * int _nc_syntax; - * int _nc_curr_line; - * long _nc_curr_file_pos; - * long _nc_comment_start; - * long _nc_comment_end; - */ - -#include - -#include -#include -#include - -MODULE_ID("$Id: comp_scan.c,v 1.68 2004/04/17 22:14:55 tom Exp $") - -/* - * Maximum length of string capability we'll accept before raising an error. - * Yes, there is a real capability in /etc/termcap this long, an "is". - */ -#define MAXCAPLEN 600 - -#define iswhite(ch) (ch == ' ' || ch == '\t') - -NCURSES_EXPORT_VAR(int) -_nc_syntax = 0; /* termcap or terminfo? */ -NCURSES_EXPORT_VAR(long) -_nc_curr_file_pos = 0; /* file offset of current line */ -NCURSES_EXPORT_VAR(long) -_nc_comment_start = 0; /* start of comment range before name */ -NCURSES_EXPORT_VAR(long) -_nc_comment_end = 0; /* end of comment range before name */ -NCURSES_EXPORT_VAR(long) -_nc_start_line = 0; /* start line of current entry */ - -NCURSES_EXPORT_VAR(struct token) -_nc_curr_token = -{ - 0, 0, 0 -}; - -/***************************************************************************** - * - * Token-grabbing machinery - * - *****************************************************************************/ - -static bool first_column; /* See 'next_char()' below */ -static bool had_newline; -static char separator; /* capability separator */ -static int pushtype; /* type of pushback token */ -static char *pushname; - -#if NCURSES_EXT_FUNCS -NCURSES_EXPORT_VAR(bool) -_nc_disable_period = FALSE; /* used by tic -a option */ -#endif - -/***************************************************************************** - * - * Character-stream handling - * - *****************************************************************************/ - -#define LEXBUFSIZ 1024 - -static char *bufptr; /* otherwise, the input buffer pointer */ -static char *bufstart; /* start of buffer so we can compute offsets */ -static FILE *yyin; /* scanner's input file descriptor */ - -/* - * _nc_reset_input() - * - * Resets the input-reading routines. Used on initialization, - * or after a seek has been done. Exactly one argument must be - * non-null. - */ - -NCURSES_EXPORT(void) -_nc_reset_input(FILE *fp, char *buf) -{ - pushtype = NO_PUSHBACK; - if (pushname != 0) - pushname[0] = '\0'; - yyin = fp; - bufstart = bufptr = buf; - _nc_curr_file_pos = 0L; - if (fp != 0) - _nc_curr_line = 0; - _nc_curr_col = 0; -} - -/* - * int last_char() - * - * Returns the final nonblank character on the current input buffer - */ -static int -last_char(void) -{ - size_t len = strlen(bufptr); - while (len--) { - if (!isspace(UChar(bufptr[len]))) - return bufptr[len]; - } - return 0; -} - -/* - * int next_char() - * - * Returns the next character in the input stream. Comments and leading - * white space are stripped. - * - * The global state variable 'firstcolumn' is set TRUE if the character - * returned is from the first column of the input line. - * - * The global variable _nc_curr_line is incremented for each new line. - * The global variable _nc_curr_file_pos is set to the file offset of the - * beginning of each line. - */ - -static int -next_char(void) -{ - static char *result; - static size_t allocated; - int the_char; - - if (!yyin) { - if (result != 0) { - FreeAndNull(result); - FreeAndNull(pushname); - allocated = 0; - } - /* - * An string with an embedded null will truncate the input. This is - * intentional (we don't read binary files here). - */ - if (bufptr == 0 || *bufptr == '\0') - return (EOF); - if (*bufptr == '\n') { - _nc_curr_line++; - _nc_curr_col = 0; - } - } else if (!bufptr || !*bufptr) { - /* - * In theory this could be recoded to do its I/O one character at a - * time, saving the buffer space. In practice, this turns out to be - * quite hard to get completely right. Try it and see. If you - * succeed, don't forget to hack push_back() correspondingly. - */ - size_t used; - size_t len; - - do { - bufstart = 0; - used = 0; - do { - if (used + (LEXBUFSIZ / 4) >= allocated) { - allocated += (allocated + LEXBUFSIZ); - result = typeRealloc(char, allocated, result); - if (result == 0) - return (EOF); - } - if (used == 0) - _nc_curr_file_pos = ftell(yyin); - - if (fgets(result + used, allocated - used, yyin) != 0) { - bufstart = result; - if (used == 0) { - _nc_curr_line++; - _nc_curr_col = 0; - } - } else { - if (used != 0) - strcat(result, "\n"); - } - if ((bufptr = bufstart) != 0) { - used = strlen(bufptr); - while (iswhite(*bufptr)) - bufptr++; - - /* - * Treat a trailing the same as a so we - * can read files on OS/2, etc. - */ - if ((len = strlen(bufptr)) > 1) { - if (bufptr[len - 1] == '\n' - && bufptr[len - 2] == '\r') { - len--; - bufptr[len - 1] = '\n'; - bufptr[len] = '\0'; - } - } - } else { - return (EOF); - } - } while (bufptr[len - 1] != '\n'); /* complete a line */ - } while (result[0] == '#'); /* ignore comments */ - } - - first_column = (bufptr == bufstart); - if (first_column) - had_newline = FALSE; - - _nc_curr_col++; - the_char = *bufptr++; - return UChar(the_char); -} - -static void -push_back(char c) -/* push a character back onto the input stream */ -{ - if (bufptr == bufstart) - _nc_syserr_abort("Can't backspace off beginning of line"); - *--bufptr = c; -} - -static long -stream_pos(void) -/* return our current character position in the input stream */ -{ - return (yyin ? ftell(yyin) : (bufptr ? bufptr - bufstart : 0)); -} - -static bool -end_of_stream(void) -/* are we at end of input? */ -{ - return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0')) - ? TRUE : FALSE); -} - -/* Assume we may be looking at a termcap-style continuation */ -static inline int -eat_escaped_newline(int ch) -{ - if (ch == '\\') - while ((ch = next_char()) == '\n' || iswhite(ch)) - continue; - return ch; -} - -/* - * int - * get_token() - * - * Scans the input for the next token, storing the specifics in the - * global structure 'curr_token' and returning one of the following: - * - * NAMES A line beginning in column 1. 'name' - * will be set to point to everything up to but - * not including the first separator on the line. - * BOOLEAN An entry consisting of a name followed by - * a separator. 'name' will be set to point to - * the name of the capability. - * NUMBER An entry of the form - * name#digits, - * 'name' will be set to point to the capability - * name and 'valnumber' to the number given. - * STRING An entry of the form - * name=characters, - * 'name' is set to the capability name and - * 'valstring' to the string of characters, with - * input translations done. - * CANCEL An entry of the form - * name@, - * 'name' is set to the capability name and - * 'valnumber' to -1. - * EOF The end of the file has been reached. - * - * A `separator' is either a comma or a semicolon, depending on whether - * we are in termcap or terminfo mode. - * - */ - -NCURSES_EXPORT(int) -_nc_get_token(bool silent) -{ - static const char terminfo_punct[] = "@%&*!#"; - static char *buffer; - - char *after_list; - char *after_name; - char *numchk; - char *ptr; - char *s; - char numbuf[80]; - int ch; - int dot_flag = FALSE; - int type; - long number; - long token_start; - unsigned found; - - if (pushtype != NO_PUSHBACK) { - int retval = pushtype; - - _nc_set_type(pushname != 0 ? pushname : ""); - DEBUG(3, ("pushed-back token: `%s', class %d", - _nc_curr_token.tk_name, pushtype)); - - pushtype = NO_PUSHBACK; - if (pushname != 0) - pushname[0] = '\0'; - - /* currtok wasn't altered by _nc_push_token() */ - return (retval); - } - - if (end_of_stream()) { - yyin = 0; - next_char(); /* frees its allocated memory */ - if (buffer != 0) { - FreeAndNull(buffer); - } - return (EOF); - } - - start_token: - token_start = stream_pos(); - while ((ch = next_char()) == '\n' || iswhite(ch)) { - if (ch == '\n') - had_newline = TRUE; - continue; - } - - ch = eat_escaped_newline(ch); - - if (ch == EOF) - type = EOF; - else { - /* if this is a termcap entry, skip a leading separator */ - if (separator == ':' && ch == ':') - ch = next_char(); - - if (ch == '.' -#if NCURSES_EXT_FUNCS - && !_nc_disable_period -#endif - ) { - dot_flag = TRUE; - DEBUG(8, ("dot-flag set")); - - while ((ch = next_char()) == '.' || iswhite(ch)) - continue; - } - - if (ch == EOF) { - type = EOF; - goto end_of_token; - } - - /* have to make some punctuation chars legal for terminfo */ - if (!isalnum(UChar(ch)) -#if NCURSES_EXT_FUNCS - && !(ch == '.' && _nc_disable_period) -#endif - && !strchr(terminfo_punct, (char) ch)) { - if (!silent) - _nc_warning("Illegal character (expected alphanumeric or %s) - %s", - terminfo_punct, unctrl((chtype) ch)); - _nc_panic_mode(separator); - goto start_token; - } - - if (buffer == 0) - buffer = typeMalloc(char, MAX_ENTRY_SIZE); - - ptr = buffer; - *(ptr++) = ch; - - if (first_column) { - _nc_comment_start = token_start; - _nc_comment_end = _nc_curr_file_pos; - _nc_start_line = _nc_curr_line; - - _nc_syntax = ERR; - after_name = 0; - after_list = 0; - while ((ch = next_char()) != '\n') { - if (ch == EOF) { - _nc_err_abort(MSG_NO_MEMORY); - } else if (ch == '|') { - after_list = ptr; - if (after_name == 0) - after_name = ptr; - } else if (ch == ':' && last_char() != ',') { - _nc_syntax = SYN_TERMCAP; - separator = ':'; - break; - } else if (ch == ',') { - _nc_syntax = SYN_TERMINFO; - separator = ','; - /* - * If we did not see a '|', then we found a name with no - * aliases or description. - */ - if (after_name == 0) - break; - /* - * If we see a comma, we assume this is terminfo unless we - * subsequently run into a colon. But we don't stop - * looking for a colon until hitting a newline. This - * allows commas to be embedded in description fields of - * either syntax. - */ - } else - ch = eat_escaped_newline(ch); - - *ptr++ = ch; - } - ptr[0] = '\0'; - if (_nc_syntax == ERR) { - /* - * Grrr...what we ought to do here is barf, complaining that - * the entry is malformed. But because a couple of name fields - * in the 8.2 termcap file end with |\, we just have to assume - * it's termcap syntax. - */ - _nc_syntax = SYN_TERMCAP; - separator = ':'; - } else if (_nc_syntax == SYN_TERMINFO) { - /* throw away trailing /, *$/ */ - for (--ptr; iswhite(*ptr) || *ptr == ','; ptr--) - continue; - ptr[1] = '\0'; - } - - /* - * This is the soonest we have the terminal name fetched. Set up - * for following warning messages. If there's no '|', then there - * is no description. - */ - if (after_name != 0) { - ch = *after_name; - *after_name = '\0'; - _nc_set_type(buffer); - *after_name = ch; - } - - /* - * Compute the boundary between the aliases and the description - * field for syntax-checking purposes. - */ - if (after_list != 0) { - if (!silent) { - if (*after_list == '\0') - _nc_warning("empty longname field"); - else if (strchr(after_list, ' ') == 0) - _nc_warning("older tic versions may treat the description field as an alias"); - } - } else { - after_list = buffer + strlen(buffer); - DEBUG(1, ("missing description")); - } - - /* - * Whitespace in a name field other than the long name can confuse - * rdist and some termcap tools. Slashes are a no-no. Other - * special characters can be dangerous due to shell expansion. - */ - for (s = buffer; s < after_list; ++s) { - if (isspace(UChar(*s))) { - if (!silent) - _nc_warning("whitespace in name or alias field"); - break; - } else if (*s == '/') { - if (!silent) - _nc_warning("slashes aren't allowed in names or aliases"); - break; - } else if (strchr("$[]!*?", *s)) { - if (!silent) - _nc_warning("dubious character `%c' in name or alias field", *s); - break; - } - } - - _nc_curr_token.tk_name = buffer; - type = NAMES; - } else { - if (had_newline && _nc_syntax == SYN_TERMCAP) { - _nc_warning("Missing backslash before newline"); - had_newline = FALSE; - } - while ((ch = next_char()) != EOF) { - if (!isalnum(UChar(ch))) { - if (_nc_syntax == SYN_TERMINFO) { - if (ch != '_') - break; - } else { /* allow ';' for "k;" */ - if (ch != ';') - break; - } - } - *(ptr++) = ch; - } - - *ptr++ = '\0'; - switch (ch) { - case ',': - case ':': - if (ch != separator) - _nc_err_abort("Separator inconsistent with syntax"); - _nc_curr_token.tk_name = buffer; - type = BOOLEAN; - break; - case '@': - if ((ch = next_char()) != separator && !silent) - _nc_warning("Missing separator after `%s', have %s", - buffer, unctrl((chtype) ch)); - _nc_curr_token.tk_name = buffer; - type = CANCEL; - break; - - case '#': - found = 0; - while (isalnum(ch = next_char())) { - numbuf[found++] = ch; - if (found >= sizeof(numbuf) - 1) - break; - } - numbuf[found] = '\0'; - number = strtol(numbuf, &numchk, 0); - if (!silent) { - if (numchk == numbuf) - _nc_warning("no value given for `%s'", buffer); - if ((*numchk != '\0') || (ch != separator)) - _nc_warning("Missing separator"); - } - _nc_curr_token.tk_name = buffer; - _nc_curr_token.tk_valnumber = number; - type = NUMBER; - break; - - case '=': - ch = _nc_trans_string(ptr, buffer + MAX_ENTRY_SIZE); - if (!silent && ch != separator) - _nc_warning("Missing separator"); - _nc_curr_token.tk_name = buffer; - _nc_curr_token.tk_valstring = ptr; - type = STRING; - break; - - case EOF: - type = EOF; - break; - default: - /* just to get rid of the compiler warning */ - type = UNDEF; - if (!silent) - _nc_warning("Illegal character - %s", unctrl((chtype) ch)); - } - } /* end else (first_column == FALSE) */ - } /* end else (ch != EOF) */ - - end_of_token: - -#ifdef TRACE - if (dot_flag == TRUE) - DEBUG(8, ("Commented out ")); - - if (_nc_tracing >= DEBUG_LEVEL(7)) { - switch (type) { - case BOOLEAN: - _tracef("Token: Boolean; name='%s'", - _nc_curr_token.tk_name); - break; - - case NUMBER: - _tracef("Token: Number; name='%s', value=%d", - _nc_curr_token.tk_name, - _nc_curr_token.tk_valnumber); - break; - - case STRING: - _tracef("Token: String; name='%s', value=%s", - _nc_curr_token.tk_name, - _nc_visbuf(_nc_curr_token.tk_valstring)); - break; - - case CANCEL: - _tracef("Token: Cancel; name='%s'", - _nc_curr_token.tk_name); - break; - - case NAMES: - - _tracef("Token: Names; value='%s'", - _nc_curr_token.tk_name); - break; - - case EOF: - _tracef("Token: End of file"); - break; - - default: - _nc_warning("Bad token type"); - } - } -#endif - - if (dot_flag == TRUE) /* if commented out, use the next one */ - type = _nc_get_token(silent); - - DEBUG(3, ("token: `%s', class %d", - _nc_curr_token.tk_name != 0 ? _nc_curr_token.tk_name : - "", - type)); - - return (type); -} - -/* - * char - * trans_string(ptr) - * - * Reads characters using next_char() until encountering a separator, nl, - * or end-of-file. The returned value is the character which caused - * reading to stop. The following translations are done on the input: - * - * ^X goes to ctrl-X (i.e. X & 037) - * {\E,\n,\r,\b,\t,\f} go to - * {ESCAPE,newline,carriage-return,backspace,tab,formfeed} - * {\^,\\} go to {carat,backslash} - * \ddd (for ddd = up to three octal digits) goes to the character ddd - * - * \e == \E - * \0 == \200 - * - */ - -NCURSES_EXPORT(int) -_nc_trans_string(char *ptr, char *last) -{ - int count = 0; - int number = 0; - int i, c; - chtype ch, last_ch = '\0'; - bool ignored = FALSE; - bool long_warning = FALSE; - - while ((ch = c = next_char()) != (chtype) separator && c != EOF) { - if (ptr == (last - 1)) - break; - if ((_nc_syntax == SYN_TERMCAP) && c == '\n') - break; - if (ch == '^' && last_ch != '%') { - ch = c = next_char(); - if (c == EOF) - _nc_err_abort(MSG_NO_INPUTS); - - if (!(is7bits(ch) && isprint(ch))) { - _nc_warning("Illegal ^ character - %s", unctrl(ch)); - } - if (ch == '?') { - *(ptr++) = '\177'; - if (_nc_tracing) - _nc_warning("Allow ^? as synonym for \\177"); - } else { - if ((ch &= 037) == 0) - ch = 128; - *(ptr++) = (char) (ch); - } - } else if (ch == '\\') { - ch = c = next_char(); - if (c == EOF) - _nc_err_abort(MSG_NO_INPUTS); - - if (ch >= '0' && ch <= '7') { - number = ch - '0'; - for (i = 0; i < 2; i++) { - ch = c = next_char(); - if (c == EOF) - _nc_err_abort(MSG_NO_INPUTS); - - if (c < '0' || c > '7') { - if (isdigit(c)) { - _nc_warning("Non-octal digit `%c' in \\ sequence", c); - /* allow the digit; it'll do less harm */ - } else { - push_back((char) c); - break; - } - } - - number = number * 8 + c - '0'; - } - - if (number == 0) - number = 0200; - *(ptr++) = (char) number; - } else { - switch (c) { - case 'E': - case 'e': - *(ptr++) = '\033'; - break; - - case 'a': - *(ptr++) = '\007'; - break; - - case 'l': - case 'n': - *(ptr++) = '\n'; - break; - - case 'r': - *(ptr++) = '\r'; - break; - - case 'b': - *(ptr++) = '\010'; - break; - - case 's': - *(ptr++) = ' '; - break; - - case 'f': - *(ptr++) = '\014'; - break; - - case 't': - *(ptr++) = '\t'; - break; - - case '\\': - *(ptr++) = '\\'; - break; - - case '^': - *(ptr++) = '^'; - break; - - case ',': - *(ptr++) = ','; - break; - - case ':': - *(ptr++) = ':'; - break; - - case '\n': - continue; - - default: - _nc_warning("Illegal character %s in \\ sequence", - unctrl(ch)); - /* FALLTHRU */ - case '|': - *(ptr++) = (char) ch; - } /* endswitch (ch) */ - } /* endelse (ch < '0' || ch > '7') */ - } - /* end else if (ch == '\\') */ - else if (ch == '\n' && (_nc_syntax == SYN_TERMINFO)) { - /* newlines embedded in a terminfo string are ignored */ - ignored = TRUE; - } else { - *(ptr++) = (char) ch; - } - - if (!ignored) { - last_ch = ch; - count++; - } - ignored = FALSE; - - if (count > MAXCAPLEN && !long_warning) { - _nc_warning("Very long string found. Missing separator?"); - long_warning = TRUE; - } - } /* end while */ - - *ptr = '\0'; - - return (ch); -} - -/* - * _nc_push_token() - * - * Push a token of given type so that it will be reread by the next - * get_token() call. - */ - -NCURSES_EXPORT(void) -_nc_push_token(int tokclass) -{ - /* - * This implementation is kind of bogus, it will fail if we ever do more - * than one pushback at a time between get_token() calls. It relies on the - * fact that _nc_curr_token is static storage that nothing but - * _nc_get_token() touches. - */ - pushtype = tokclass; - if (pushname == 0) - pushname = typeMalloc(char, MAX_NAME_SIZE + 1); - _nc_get_type(pushname); - - DEBUG(3, ("pushing token: `%s', class %d", - _nc_curr_token.tk_name, pushtype)); -} - -/* - * Panic mode error recovery - skip everything until a "ch" is found. - */ -NCURSES_EXPORT(void) -_nc_panic_mode(char ch) -{ - int c; - - for (;;) { - c = next_char(); - if (c == ch) - return; - if (c == EOF) - return; - } -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/doalloc.c b/Build/source/libs/ncurses/ncurses/tinfo/doalloc.c deleted file mode 100644 index fe2a009d19b..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/doalloc.c +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1998 * - ****************************************************************************/ - -/* - * Wrapper for malloc/realloc. Standard implementations allow realloc with - * a null pointer, but older libraries may not (e.g., SunOS). - * - * Also if realloc fails, we discard the old memory to avoid leaks. - */ - -#include - -MODULE_ID("$Id: doalloc.c,v 1.8 2002/08/31 21:48:11 Philippe.Blain Exp $") - -NCURSES_EXPORT(void *) -_nc_doalloc(void *oldp, size_t amount) -{ - void *newp; - - if (oldp != 0) { - if ((newp = realloc(oldp, amount)) == 0) { - free(oldp); - errno = ENOMEM; /* just in case 'free' reset */ - } - } else { - newp = malloc(amount); - } - return newp; -} - -#if !HAVE_STRDUP -NCURSES_EXPORT(char *) -_nc_strdup(const char *src) -{ - char *dst; - if (src != 0) { - dst = typeMalloc(char, strlen(src) + 1); - if (dst != 0) { - (void) strcpy(dst, src); - } - } else { - dst = 0; - } - return dst; -} -#endif diff --git a/Build/source/libs/ncurses/ncurses/tinfo/free_ttype.c b/Build/source/libs/ncurses/ncurses/tinfo/free_ttype.c deleted file mode 100644 index 08dac4ec203..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/free_ttype.c +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1999 * - ****************************************************************************/ - -/* - * free_ttype.c -- allocation functions for TERMTYPE - * - * _nc_free_termtype() - * use_extended_names() - * - */ - -#include - -#include -#include - -MODULE_ID("$Id: free_ttype.c,v 1.10 2003/08/09 21:22:03 tom Exp $") - -NCURSES_EXPORT(void) -_nc_free_termtype(TERMTYPE * ptr) -{ - T(("_nc_free_termtype(%s)", ptr->term_names)); - - if (ptr->str_table == 0 - || (ptr->term_names < ptr->str_table - || ptr->term_names >= ptr->str_table + MAX_ENTRY_SIZE)) { - FreeIfNeeded(ptr->term_names); - } -#if NO_LEAKS - else { - if (ptr->str_table != 0 - && (ptr->term_names < ptr->str_table + MAX_ENTRY_SIZE)) { - int j; - char *last = ptr->str_table; - /* - * We should have saved the entry-size someplace. Too late, - * but this is useful for the memory-leak checking, though more - * work/time than should be in the normal library. - */ - for (j = 0; j < NUM_STRINGS(ptr); j++) { - char *s = ptr->Strings[j]; - if (VALID_STRING(s)) { - char *t = s + strlen(s) + 1; - if (t > last) - last = t; - } - } - if (last < ptr->term_names) { - FreeIfNeeded(ptr->term_names); - } - } - } -#endif - FreeIfNeeded(ptr->str_table); - FreeIfNeeded(ptr->Booleans); - FreeIfNeeded(ptr->Numbers); - FreeIfNeeded(ptr->Strings); -#if NCURSES_XNAMES - FreeIfNeeded(ptr->ext_str_table); - FreeIfNeeded(ptr->ext_Names); -#endif - memset(ptr, 0, sizeof(TERMTYPE)); -} - -#if NCURSES_XNAMES -NCURSES_EXPORT_VAR(bool) _nc_user_definable = TRUE; - -NCURSES_EXPORT(int) -use_extended_names(bool flag) -{ - int oldflag = _nc_user_definable; - - T((T_CALLED("use_extended_names(%d)"), flag)); - _nc_user_definable = flag; - returnBool(oldflag); -} -#endif diff --git a/Build/source/libs/ncurses/ncurses/tinfo/getenv_num.c b/Build/source/libs/ncurses/ncurses/tinfo/getenv_num.c deleted file mode 100644 index a90cc08d297..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/getenv_num.c +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1998 * - ****************************************************************************/ - -/* - * getenv_num.c -- obtain a number from the environment - */ - -#include - -MODULE_ID("$Id: getenv_num.c,v 1.3 2000/12/10 02:55:07 tom Exp $") - -NCURSES_EXPORT(int) -_nc_getenv_num(const char *name) -{ - char *dst = 0; - char *src = getenv(name); - long value; - - if ((src == 0) - || (value = strtol(src, &dst, 0)) < 0 - || (dst == src) - || (*dst != '\0') - || (int) value < value) - value = -1; - - return (int) value; -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/home_terminfo.c b/Build/source/libs/ncurses/ncurses/tinfo/home_terminfo.c deleted file mode 100644 index fac19bf5241..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/home_terminfo.c +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1998,2000,2004 * - ****************************************************************************/ - -/* - * home_terminfo.c -- return the $HOME/.terminfo string, expanded - */ - -#include -#include - -MODULE_ID("$Id: home_terminfo.c,v 1.8 2004/01/14 02:18:16 tom Exp $") - -#define my_length (strlen(home) + sizeof(PRIVATE_INFO)) - -/* ncurses extension...fall back on user's private directory */ - -NCURSES_EXPORT(char *) -_nc_home_terminfo(void) -{ -#ifdef USE_HOME_TERMINFO - char *home; - static char *temp = 0; - - if (use_terminfo_vars()) { - if (temp == 0) { - if ((home = getenv("HOME")) != 0 - && my_length <= PATH_MAX) { - temp = typeMalloc(char, my_length); - if (temp == 0) - _nc_err_abort(MSG_NO_MEMORY); - (void) sprintf(temp, PRIVATE_INFO, home); - } - } - return temp; - } -#endif - return 0; -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/init_keytry.c b/Build/source/libs/ncurses/ncurses/tinfo/init_keytry.c deleted file mode 100644 index cf840e8e93b..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/init_keytry.c +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1999,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -#include - -#include /* keypad_xmit, keypad_local, meta_on, meta_off */ - /* cursor_visible,cursor_normal,cursor_invisible */ -#include /* struct tinfo_fkeys */ - -MODULE_ID("$Id: init_keytry.c,v 1.5 2000/12/10 02:55:07 tom Exp $") - -/* -** _nc_init_keytry() -** -** Construct the try for the current terminal's keypad keys. -** -*/ - -#if BROKEN_LINKER -#undef _nc_tinfo_fkeys -#endif - -/* LINT_PREPRO -#if 0*/ -#include -/* LINT_PREPRO -#endif*/ - -#if BROKEN_LINKER -struct tinfo_fkeys * -_nc_tinfo_fkeysf(void) -{ - return _nc_tinfo_fkeys; -} -#endif - -NCURSES_EXPORT(void) -_nc_init_keytry(void) -{ - size_t n; - - /* The SP->_keytry value is initialized in newterm(), where the SP - * structure is created, because we can not tell where keypad() or - * mouse_activate() (which will call keyok()) are first called. - */ - - for (n = 0; _nc_tinfo_fkeys[n].code; n++) - if (_nc_tinfo_fkeys[n].offset < STRCOUNT) - _nc_add_to_try(&(SP->_keytry), - CUR Strings[_nc_tinfo_fkeys[n].offset], - _nc_tinfo_fkeys[n].code); -#ifdef TRACE - _nc_trace_tries(SP->_keytry); -#endif -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_acs.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_acs.c deleted file mode 100644 index 745b055ec32..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_acs.c +++ /dev/null @@ -1,175 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -#include -#include /* ena_acs, acs_chars */ - -MODULE_ID("$Id: lib_acs.c,v 1.27 2004/10/16 15:42:40 tom Exp $") - -#if BROKEN_LINKER -NCURSES_EXPORT_VAR(chtype *) -_nc_acs_map(void) -{ - static chtype *the_map = 0; - if (the_map == 0) - the_map = typeCalloc(chtype, ACS_LEN); - return the_map; -} -#else -NCURSES_EXPORT_VAR(chtype) acs_map[ACS_LEN] = -{ - 0 -}; -#endif - -NCURSES_EXPORT(void) -_nc_init_acs(void) -{ - chtype *fake_map = acs_map; - chtype *real_map = SP != 0 ? SP->_acs_map : fake_map; - int j; - - T(("initializing ACS map")); - - /* - * If we're using this from curses (rather than terminfo), we are storing - * the mapping information in the SCREEN struct so we can decide how to - * render it. - */ - if (real_map != fake_map) { - for (j = 1; j < ACS_LEN; ++j) { - real_map[j] = 0; - fake_map[j] = A_ALTCHARSET | j; - SP->_screen_acs_map[j] = FALSE; - } - } else { - for (j = 1; j < ACS_LEN; ++j) { - real_map[j] = 0; - } - } - - /* - * Initializations for a UNIX-like multi-terminal environment. Use - * ASCII chars and count on the terminfo description to do better. - */ - real_map['l'] = '+'; /* should be upper left corner */ - real_map['m'] = '+'; /* should be lower left corner */ - real_map['k'] = '+'; /* should be upper right corner */ - real_map['j'] = '+'; /* should be lower right corner */ - real_map['u'] = '+'; /* should be tee pointing left */ - real_map['t'] = '+'; /* should be tee pointing right */ - real_map['v'] = '+'; /* should be tee pointing up */ - real_map['w'] = '+'; /* should be tee pointing down */ - real_map['q'] = '-'; /* should be horizontal line */ - real_map['x'] = '|'; /* should be vertical line */ - real_map['n'] = '+'; /* should be large plus or crossover */ - real_map['o'] = '~'; /* should be scan line 1 */ - real_map['s'] = '_'; /* should be scan line 9 */ - real_map['`'] = '+'; /* should be diamond */ - real_map['a'] = ':'; /* should be checker board (stipple) */ - real_map['f'] = '\''; /* should be degree symbol */ - real_map['g'] = '#'; /* should be plus/minus */ - real_map['~'] = 'o'; /* should be bullet */ - real_map[','] = '<'; /* should be arrow pointing left */ - real_map['+'] = '>'; /* should be arrow pointing right */ - real_map['.'] = 'v'; /* should be arrow pointing down */ - real_map['-'] = '^'; /* should be arrow pointing up */ - real_map['h'] = '#'; /* should be board of squares */ - real_map['i'] = '#'; /* should be lantern symbol */ - real_map['0'] = '#'; /* should be solid square block */ - /* these defaults were invented for ncurses */ - real_map['p'] = '-'; /* should be scan line 3 */ - real_map['r'] = '-'; /* should be scan line 7 */ - real_map['y'] = '<'; /* should be less-than-or-equal-to */ - real_map['z'] = '>'; /* should be greater-than-or-equal-to */ - real_map['{'] = '*'; /* should be greek pi */ - real_map['|'] = '!'; /* should be not-equal */ - real_map['}'] = 'f'; /* should be pound-sterling symbol */ - -#if !USE_WIDEC_SUPPORT - if (_nc_unicode_locale() && _nc_locale_breaks_acs()) { - acs_chars = NULL; - ena_acs = NULL; - enter_alt_charset_mode = NULL; - exit_alt_charset_mode = NULL; - set_attributes = NULL; - } -#endif - - if (ena_acs != NULL) { - TPUTS_TRACE("ena_acs"); - putp(ena_acs); - } - - if (acs_chars != NULL) { - size_t i = 0; - size_t length = strlen(acs_chars); - - while (i + 1 < length) { - if (acs_chars[i] != 0 && UChar(acs_chars[i]) < ACS_LEN) { - real_map[UChar(acs_chars[i])] = UChar(acs_chars[i + 1]) | A_ALTCHARSET; - if (SP != 0) - SP->_screen_acs_map[UChar(acs_chars[i])] = TRUE; - } - i += 2; - } - } -#ifdef TRACE - /* Show the equivalent mapping, noting if it does not match the - * given attribute, whether by re-ordering or duplication. - */ - if (_nc_tracing & TRACE_CALLS) { - size_t n, m; - char show[ACS_LEN + 1]; - for (n = 1, m = 0; n < ACS_LEN; n++) { - if (real_map[n] != 0) { - show[m++] = (char) n; - show[m++] = ChCharOf(real_map[n]); - } - } - show[m] = 0; - if (acs_chars == NULL || strcmp(acs_chars, show)) - _tracef("%s acs_chars %s", - (acs_chars == NULL) ? "NULL" : "READ", - _nc_visbuf(acs_chars)); - _tracef("%s acs_chars %s", - (acs_chars == NULL) - ? "NULL" - : (strcmp(acs_chars, show) - ? "DIFF" - : "SAME"), - _nc_visbuf(show)); - } -#endif /* TRACE */ -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_baudrate.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_baudrate.c deleted file mode 100644 index 1a203fe54aa..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_baudrate.c +++ /dev/null @@ -1,225 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_baudrate.c - * - */ - -#include -#include /* cur_term, pad_char */ -#include /* ospeed */ -#if defined(__FreeBSD__) -#include -#endif - -/* - * These systems use similar header files, which define B1200 as 1200, etc., - * but can be overridden by defining USE_OLD_TTY so B1200 is 9, which makes all - * of the indices up to B115200 fit nicely in a 'short', allowing us to retain - * ospeed's type for compatibility. - */ -#if (defined(__FreeBSD__) && (__FreeBSD_version < 700000)) || defined(__NetBSD__) || defined(__OpenBSD__) -#undef B0 -#undef B50 -#undef B75 -#undef B110 -#undef B134 -#undef B150 -#undef B200 -#undef B300 -#undef B600 -#undef B1200 -#undef B1800 -#undef B2400 -#undef B4800 -#undef B9600 -#undef B19200 -#undef EXTA -#undef B38400 -#undef EXTB -#undef B57600 -#undef B115200 -#undef B230400 -#undef B460800 -#undef B921600 -#define USE_OLD_TTY -#include -#else -#undef USE_OLD_TTY -#endif /* USE_OLD_TTY */ - -MODULE_ID("$Id: lib_baudrate.c,v 1.22 2002/01/19 23:07:53 Andrey.A.Chernov Exp $") - -/* - * int - * baudrate() - * - * Returns the current terminal's baud rate. - * - */ - -struct speed { - int s; /* value for 'ospeed' is an index */ - int sp; /* the actual speed */ -}; - -static struct speed const speeds[] = -{ - {B0, 0}, - {B50, 50}, - {B75, 75}, - {B110, 110}, - {B134, 134}, - {B150, 150}, - {B200, 200}, - {B300, 300}, - {B600, 600}, - {B1200, 1200}, - {B1800, 1800}, - {B2400, 2400}, - {B4800, 4800}, - {B9600, 9600}, -#ifdef B19200 - {B19200, 19200}, -#else -#ifdef EXTA - {EXTA, 19200}, -#endif -#endif -#ifdef B38400 - {B38400, 38400}, -#else -#ifdef EXTB - {EXTB, 38400}, -#endif -#endif -#ifdef B57600 - {B57600, 57600}, -#endif -#ifdef B115200 - {B115200, 115200}, -#endif -#ifdef B230400 - {B230400, 230400}, -#endif -#ifdef B460800 - {B460800, 460800}, -#endif -#ifdef B921600 - {B921600, 921600}, -#endif -}; - -NCURSES_EXPORT(int) -_nc_baudrate(int OSpeed) -{ - static int last_OSpeed; - static int last_baudrate; - - int result; - unsigned i; - - if (OSpeed == last_OSpeed) { - result = last_baudrate; - } else { - result = ERR; - if (OSpeed >= 0) { - for (i = 0; i < SIZEOF(speeds); i++) { - if (speeds[i].s == OSpeed) { - result = speeds[i].sp; - break; - } - } - } - last_baudrate = result; - } - return (result); -} - -NCURSES_EXPORT(int) -_nc_ospeed(int BaudRate) -{ - int result = 1; - unsigned i; - - if (BaudRate >= 0) { - for (i = 0; i < SIZEOF(speeds); i++) { - if (speeds[i].sp == BaudRate) { - result = speeds[i].s; - break; - } - } - } - return (result); -} - -NCURSES_EXPORT(int) -baudrate(void) -{ - int result; - - T((T_CALLED("baudrate()"))); - - /* - * In debugging, allow the environment symbol to override when we're - * redirecting to a file, so we can construct repeatable test-cases - * that take into account costs that depend on baudrate. - */ -#ifdef TRACE - if (SP && !isatty(fileno(SP->_ofp)) - && getenv("BAUDRATE") != 0) { - int ret; - if ((ret = _nc_getenv_num("BAUDRATE")) <= 0) - ret = 9600; - ospeed = _nc_ospeed(ret); - returnCode(ret); - } -#endif - -#ifdef USE_OLD_TTY - result = cfgetospeed(&cur_term->Nttyb); - ospeed = _nc_ospeed(result); -#else /* !USE_OLD_TTY */ -#ifdef TERMIOS - ospeed = cfgetospeed(&cur_term->Nttyb); -#else - ospeed = cur_term->Nttyb.sg_ospeed; -#endif - result = _nc_baudrate(ospeed); -#endif - if (cur_term != 0) - cur_term->_baudrate = result; - - returnCode(result); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_cur_term.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_cur_term.c deleted file mode 100644 index 8fccc2f88d0..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_cur_term.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ -/* - * Module that "owns" the 'cur_term' variable: - * - * TERMINAL *set_curterm(TERMINAL *) - * int del_curterm(TERMINAL *) - */ - -#include -#include /* TTY, cur_term */ -#include /* ospeed */ - -MODULE_ID("$Id: lib_cur_term.c,v 1.13 2003/12/27 18:21:30 tom Exp $") - -NCURSES_EXPORT_VAR(TERMINAL *) cur_term = 0; - -NCURSES_EXPORT(TERMINAL *) -set_curterm(TERMINAL * termp) -{ - TERMINAL *oldterm = cur_term; - - T((T_CALLED("set_curterm(%p)"), termp)); - - if ((cur_term = termp) != 0) { - ospeed = _nc_ospeed(cur_term->_baudrate); - PC = (pad_char != NULL) ? pad_char[0] : 0; - } - T((T_RETURN("%p"), oldterm)); - return (oldterm); -} - -NCURSES_EXPORT(int) -del_curterm(TERMINAL * termp) -{ - T((T_CALLED("del_curterm(%p)"), termp)); - - if (termp != 0) { - _nc_free_termtype(&(termp->type)); - FreeIfNeeded(termp->_termname); - free(termp); - if (termp == cur_term) - cur_term = 0; - returnCode(OK); - } - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_data.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_data.c deleted file mode 100644 index 87d60edf6ed..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_data.c +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_data.c -** -** Common data that may/may not be allocated, but is referenced globally -** -*/ - -#include - -MODULE_ID("$Id: lib_data.c,v 1.16 2000/12/10 02:55:07 tom Exp $") - -/* - * OS/2's native linker complains if we don't initialize public data when - * constructing a dll (reported by J.J.G.Ripoll). - */ -NCURSES_EXPORT_VAR(WINDOW *) -stdscr = 0; -NCURSES_EXPORT_VAR(WINDOW *) -curscr = 0; -NCURSES_EXPORT_VAR(WINDOW *) -newscr = 0; - -NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0; - -/* - * The variable 'SP' will be defined as a function on systems that cannot link - * data-only modules, since it is used in a lot of places within ncurses and we - * cannot guarantee that any application will use any particular function. We - * put the WINDOW variables in this module, because it appears that any - * application that uses them will also use 'SP'. - * - * This module intentionally does not reference other ncurses modules, to avoid - * module coupling that increases the size of the executable. - */ -#if BROKEN_LINKER - static SCREEN *my_screen; - -NCURSES_EXPORT(SCREEN *) -_nc_screen(void) -{ - return my_screen; -} - -NCURSES_EXPORT(int) -_nc_alloc_screen(void) -{ - return ((my_screen = typeCalloc(SCREEN, 1)) != 0); -} - -NCURSES_EXPORT(void) -_nc_set_screen(SCREEN * sp) -{ - my_screen = sp; -} - -#else -NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */ -#endif diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_has_cap.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_has_cap.c deleted file mode 100644 index 0dc66bd9b91..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_has_cap.c +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-2003 * - ****************************************************************************/ - -/* -** lib_has_cap.c -** -** The routines to query terminal capabilities -** -*/ - -#include - -#include - -MODULE_ID("$Id: lib_has_cap.c,v 1.4 2003/10/25 19:43:55 tom Exp $") - -NCURSES_EXPORT(bool) -has_ic(void) -{ - T((T_CALLED("has_ic()"))); - returnCode(cur_term && - (insert_character || parm_ich - || (enter_insert_mode && exit_insert_mode)) - && (delete_character || parm_dch)); -} - -NCURSES_EXPORT(bool) -has_il(void) -{ - T((T_CALLED("has_il()"))); - returnCode(cur_term - && (insert_line || parm_insert_line) - && (delete_line || parm_delete_line)); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_kernel.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_kernel.c deleted file mode 100644 index 89dc1e80ea8..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_kernel.c +++ /dev/null @@ -1,154 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 2002 * - ****************************************************************************/ - -/* - * lib_kernel.c - * - * Misc. low-level routines: - * erasechar() - * killchar() - * flushinp() - * - * The baudrate() and delay_output() functions could logically live here, - * but are in other modules to reduce the static-link size of programs - * that use only these facilities. - */ - -#include -#include /* cur_term */ - -MODULE_ID("$Id: lib_kernel.c,v 1.24 2004/05/08 17:11:21 tom Exp $") - -static int -_nc_vdisable(void) -{ - int value = -1; -#if defined(_POSIX_VDISABLE) && HAVE_UNISTD_H - value = _POSIX_VDISABLE; -#endif -#if defined(_PC_VDISABLE) - if (value == -1) { - value = fpathconf(0, _PC_VDISABLE); - if (value == -1) { - value = 0377; - } - } -#elif defined(VDISABLE) - if (value == -1) - value = VDISABLE; -#endif - return value; -} - -/* - * erasechar() - * - * Return erase character as given in cur_term->Ottyb. - * - */ - -NCURSES_EXPORT(char) -erasechar(void) -{ - int result = ERR; - T((T_CALLED("erasechar()"))); - - if (cur_term != 0) { -#ifdef TERMIOS - result = cur_term->Ottyb.c_cc[VERASE]; - if (result == _nc_vdisable()) - result = ERR; -#else - result = cur_term->Ottyb.sg_erase; -#endif - } - returnCode(result); -} - -/* - * killchar() - * - * Return kill character as given in cur_term->Ottyb. - * - */ - -NCURSES_EXPORT(char) -killchar(void) -{ - int result = ERR; - T((T_CALLED("killchar()"))); - - if (cur_term != 0) { -#ifdef TERMIOS - result = cur_term->Ottyb.c_cc[VKILL]; - if (result == _nc_vdisable()) - result = ERR; -#else - result = cur_term->Ottyb.sg_kill; -#endif - } - returnCode(result); -} - -/* - * flushinp() - * - * Flush any input on cur_term->Filedes - * - */ - -NCURSES_EXPORT(int) -flushinp(void) -{ - T((T_CALLED("flushinp()"))); - - if (cur_term != 0) { -#ifdef TERMIOS - tcflush(cur_term->Filedes, TCIFLUSH); -#else - errno = 0; - do { - ioctl(cur_term->Filedes, TIOCFLUSH, 0); - } while - (errno == EINTR); -#endif - if (SP) { - SP->_fifohead = -1; - SP->_fifotail = 0; - SP->_fifopeek = 0; - } - returnCode(OK); - } - returnCode(ERR); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_longname.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_longname.c deleted file mode 100644 index 1301ee51694..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_longname.c +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_longname.c -** -** The routine longname(). -** -*/ - -#include - -MODULE_ID("$Id: lib_longname.c,v 1.9 2000/12/10 02:55:07 tom Exp $") - -NCURSES_EXPORT(char *) -longname(void) -{ - char *ptr; - - T((T_CALLED("longname()"))); - - for (ptr = ttytype + strlen(ttytype); ptr > ttytype; ptr--) - if (*ptr == '|') - returnPtr(ptr + 1); - - returnPtr(ttytype); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_napms.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_napms.c deleted file mode 100644 index 1003fa411c2..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_napms.c +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_napms.c - * - * The routine napms. - * - * (This file was originally written by Eric Raymond; however except for - * comments, none of the original code remains - T.Dickey). - */ - -#include - -#if HAVE_NANOSLEEP -#include -#if HAVE_SYS_TIME_H -#include /* needed for MacOS X DP3 */ -#endif -#endif - -MODULE_ID("$Id: lib_napms.c,v 1.14 2003/11/30 00:54:29 Philippe.Blain Exp $") - -NCURSES_EXPORT(int) -napms(int ms) -{ - T((T_CALLED("napms(%d)"), ms)); - -#if HAVE_NANOSLEEP - { - struct timespec request, remaining; - int err; - request.tv_sec = ms / 1000; - request.tv_nsec = (ms % 1000) * 1000000; - while ((err = nanosleep(&request, &remaining)) == -1 - && errno == EINTR) { - request = remaining; - } - } -#else - _nc_timed_wait(0, ms, (int *) 0 EVENTLIST_2nd(0)); -#endif - - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_options.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_options.c deleted file mode 100644 index 0edf9d5a9a0..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_options.c +++ /dev/null @@ -1,267 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-2003 * - ****************************************************************************/ - -/* -** lib_options.c -** -** The routines to handle option setting. -** -*/ - -#include - -#include - -MODULE_ID("$Id: lib_options.c,v 1.47 2003/10/25 19:51:38 tom Exp $") - -NCURSES_EXPORT(int) -idlok(WINDOW *win, bool flag) -{ - T((T_CALLED("idlok(%p,%d)"), win, flag)); - - if (win) { - _nc_idlok = win->_idlok = (flag && (has_il() || change_scroll_region)); - returnCode(OK); - } else - returnCode(ERR); -} - -NCURSES_EXPORT(void) -idcok(WINDOW *win, bool flag) -{ - T((T_CALLED("idcok(%p,%d)"), win, flag)); - - if (win) - _nc_idcok = win->_idcok = (flag && has_ic()); - - returnVoid; -} - -NCURSES_EXPORT(int) -halfdelay(int t) -{ - T((T_CALLED("halfdelay(%d)"), t)); - - if (t < 1 || t > 255 || SP == 0) - returnCode(ERR); - - cbreak(); - SP->_cbreak = t + 1; - returnCode(OK); -} - -NCURSES_EXPORT(int) -nodelay(WINDOW *win, bool flag) -{ - T((T_CALLED("nodelay(%p,%d)"), win, flag)); - - if (win) { - if (flag == TRUE) - win->_delay = 0; - else - win->_delay = -1; - returnCode(OK); - } else - returnCode(ERR); -} - -NCURSES_EXPORT(int) -notimeout(WINDOW *win, bool f) -{ - T((T_CALLED("notimout(%p,%d)"), win, f)); - - if (win) { - win->_notimeout = f; - returnCode(OK); - } else - returnCode(ERR); -} - -NCURSES_EXPORT(void) -wtimeout(WINDOW *win, int delay) -{ - T((T_CALLED("wtimeout(%p,%d)"), win, delay)); - - if (win) { - win->_delay = delay; - } - returnVoid; -} - -NCURSES_EXPORT(int) -keypad(WINDOW *win, bool flag) -{ - T((T_CALLED("keypad(%p,%d)"), win, flag)); - - if (win) { - win->_use_keypad = flag; - returnCode(_nc_keypad(flag)); - } else - returnCode(ERR); -} - -NCURSES_EXPORT(int) -meta(WINDOW *win GCC_UNUSED, bool flag) -{ - int result = ERR; - - /* Ok, we stay relaxed and don't signal an error if win is NULL */ - T((T_CALLED("meta(%p,%d)"), win, flag)); - - if (SP != 0) { - SP->_use_meta = flag; - - if (flag && meta_on) { - TPUTS_TRACE("meta_on"); - putp(meta_on); - } else if (!flag && meta_off) { - TPUTS_TRACE("meta_off"); - putp(meta_off); - } - result = OK; - } - returnCode(result); -} - -/* curs_set() moved here to narrow the kernel interface */ - -NCURSES_EXPORT(int) -curs_set(int vis) -{ - int cursor = SP->_cursor; - - T((T_CALLED("curs_set(%d)"), vis)); - - if (vis < 0 || vis > 2) - returnCode(ERR); - - if (vis == cursor) - returnCode(cursor); - - switch (vis) { - case 2: - if (cursor_visible) { - TPUTS_TRACE("cursor_visible"); - putp(cursor_visible); - } else - returnCode(ERR); - break; - case 1: - if (cursor_normal) { - TPUTS_TRACE("cursor_normal"); - putp(cursor_normal); - } else - returnCode(ERR); - break; - case 0: - if (cursor_invisible) { - TPUTS_TRACE("cursor_invisible"); - putp(cursor_invisible); - } else - returnCode(ERR); - break; - } - SP->_cursor = vis; - _nc_flush(); - - returnCode(cursor == -1 ? 1 : cursor); -} - -NCURSES_EXPORT(int) -typeahead(int fd) -{ - T((T_CALLED("typeahead(%d)"), fd)); - if (SP != 0) { - SP->_checkfd = fd; - returnCode(OK); - } else { - returnCode(ERR); - } -} - -/* -** has_key() -** -** Return TRUE if the current terminal has the given key -** -*/ - -#if NCURSES_EXT_FUNCS -static int -has_key_internal(int keycode, struct tries *tp) -{ - if (tp == 0) - return (FALSE); - else if (tp->value == keycode) - return (TRUE); - else - return (has_key_internal(keycode, tp->child) - || has_key_internal(keycode, tp->sibling)); -} - -NCURSES_EXPORT(int) -has_key(int keycode) -{ - T((T_CALLED("has_key(%d)"), keycode)); - returnCode(SP != 0 ? has_key_internal(keycode, SP->_keytry) : FALSE); -} -#endif /* NCURSES_EXT_FUNCS */ - -/* Turn the keypad on/off - * - * Note: we flush the output because changing this mode causes some terminals - * to emit different escape sequences for cursor and keypad keys. If we don't - * flush, then the next wgetch may get the escape sequence that corresponds to - * the terminal state _before_ switching modes. - */ -NCURSES_EXPORT(int) -_nc_keypad(bool flag) -{ - if (flag && keypad_xmit) { - TPUTS_TRACE("keypad_xmit"); - putp(keypad_xmit); - _nc_flush(); - } else if (!flag && keypad_local) { - TPUTS_TRACE("keypad_local"); - putp(keypad_local); - _nc_flush(); - } - - if (flag && SP != 0 && !SP->_tried) { - _nc_init_keytry(); - SP->_tried = TRUE; - } - SP->_keypad_on = flag; - return (OK); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_print.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_print.c deleted file mode 100644 index 3a98bc96a2f..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_print.c +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -#include - -#include - -MODULE_ID("$Id: lib_print.c,v 1.15 2002/08/17 23:41:34 tom Exp $") - -NCURSES_EXPORT(int) -mcprint(char *data, int len) -/* ship binary character data to the printer via mc4/mc5/mc5p */ -{ - char *mybuf, *switchon; - size_t onsize, offsize, res; - - errno = 0; - if (!cur_term || (!prtr_non && (!prtr_on || !prtr_off))) { - errno = ENODEV; - return (ERR); - } - - if (prtr_non) { - switchon = tparm(prtr_non, len); - onsize = strlen(switchon); - offsize = 0; - } else { - switchon = prtr_on; - onsize = strlen(prtr_on); - offsize = strlen(prtr_off); - } - - if (switchon == 0 - || (mybuf = typeMalloc(char, onsize + len + offsize + 1)) == 0) { - errno = ENOMEM; - return (ERR); - } - - (void) strcpy(mybuf, switchon); - memcpy(mybuf + onsize, data, (unsigned) len); - if (offsize) - (void) strcpy(mybuf + onsize + len, prtr_off); - - /* - * We're relying on the atomicity of UNIX writes here. The - * danger is that output from a refresh() might get interspersed - * with the printer data after the write call returns but before the - * data has actually been shipped to the terminal. If the write(2) - * operation is truly atomic we're protected from this. - */ - res = write(cur_term->Filedes, mybuf, onsize + len + offsize); - - /* - * By giving up our scheduler slot here we increase the odds that the - * kernel will ship the contiguous clist items from the last write - * immediately. - */ - (void) sleep(0); - - free(mybuf); - return (res); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_raw.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_raw.c deleted file mode 100644 index aa09f52c8c8..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_raw.c +++ /dev/null @@ -1,296 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1998 on * - ****************************************************************************/ - -/* - * raw.c - * - * Routines: - * raw() - * cbreak() - * noraw() - * nocbreak() - * qiflush() - * noqiflush() - * intrflush() - * - */ - -#include -#include /* cur_term */ - -MODULE_ID("$Id: lib_raw.c,v 1.13 2002/07/06 22:00:45 tom Exp $") - -#if SVR4_TERMIO && !defined(_POSIX_SOURCE) -#define _POSIX_SOURCE -#endif - -#if HAVE_SYS_TERMIO_H -#include /* needed for ISC */ -#endif - -#ifdef __EMX__ -#include -#define _nc_setmode(mode) setmode(SP->_ifd, mode) -#else -#define _nc_setmode(mode) /* nothing */ -#endif - -#define COOKED_INPUT (IXON|BRKINT|PARMRK) - -#ifdef TRACE -#define BEFORE(N) if (_nc_tracing&TRACE_BITS) _tracef("%s before bits: %s", N, _nc_tracebits()) -#define AFTER(N) if (_nc_tracing&TRACE_BITS) _tracef("%s after bits: %s", N, _nc_tracebits()) -#else -#define BEFORE(s) -#define AFTER(s) -#endif /* TRACE */ - -NCURSES_EXPORT(int) -raw(void) -{ - int result = ERR; - - T((T_CALLED("raw()"))); - - if (SP != 0 && cur_term != 0) { - TTY buf; - - BEFORE("raw"); - _nc_setmode(O_BINARY); - - buf = cur_term->Nttyb; -#ifdef TERMIOS - buf.c_lflag &= ~(ICANON | ISIG | IEXTEN); - buf.c_iflag &= ~(COOKED_INPUT); - buf.c_cc[VMIN] = 1; - buf.c_cc[VTIME] = 0; -#else - buf.sg_flags |= RAW; -#endif - if ((result = _nc_set_tty_mode(&buf)) == OK) { - SP->_raw = TRUE; - SP->_cbreak = 1; - cur_term->Nttyb = buf; - } - AFTER("raw"); - } - returnCode(result); -} - -NCURSES_EXPORT(int) -cbreak(void) -{ - int result = ERR; - - T((T_CALLED("cbreak()"))); - - if (SP != 0 && cur_term != 0) { - TTY buf; - - BEFORE("cbreak"); - _nc_setmode(O_BINARY); - - buf = cur_term->Nttyb; -#ifdef TERMIOS - buf.c_lflag &= ~ICANON; - buf.c_iflag &= ~ICRNL; - buf.c_lflag |= ISIG; - buf.c_cc[VMIN] = 1; - buf.c_cc[VTIME] = 0; -#else - buf.sg_flags |= CBREAK; -#endif - if ((result = _nc_set_tty_mode(&buf)) == OK) { - SP->_cbreak = 1; - cur_term->Nttyb = buf; - } - AFTER("cbreak"); - } - returnCode(result); -} - -/* - * Note: - * this implementation may be wrong. See the comment under intrflush(). - */ -NCURSES_EXPORT(void) -qiflush(void) -{ - int result = ERR; - - T((T_CALLED("qiflush()"))); - - if (cur_term != 0) { - TTY buf; - - BEFORE("qiflush"); - buf = cur_term->Nttyb; -#ifdef TERMIOS - buf.c_lflag &= ~(NOFLSH); - result = _nc_set_tty_mode(&buf); -#else - /* FIXME */ -#endif - if (result == OK) - cur_term->Nttyb = buf; - AFTER("qiflush"); - } - returnVoid; -} - -NCURSES_EXPORT(int) -noraw(void) -{ - int result = ERR; - - T((T_CALLED("noraw()"))); - - if (SP != 0 && cur_term != 0) { - TTY buf; - - BEFORE("noraw"); - _nc_setmode(O_TEXT); - - buf = cur_term->Nttyb; -#ifdef TERMIOS - buf.c_lflag |= ISIG | ICANON | - (cur_term->Ottyb.c_lflag & IEXTEN); - buf.c_iflag |= COOKED_INPUT; -#else - buf.sg_flags &= ~(RAW | CBREAK); -#endif - if ((result = _nc_set_tty_mode(&buf)) == OK) { - SP->_raw = FALSE; - SP->_cbreak = 0; - cur_term->Nttyb = buf; - } - AFTER("noraw"); - } - returnCode(result); -} - -NCURSES_EXPORT(int) -nocbreak(void) -{ - int result = ERR; - - T((T_CALLED("nocbreak()"))); - - if (SP != 0 && cur_term != 0) { - TTY buf; - - BEFORE("nocbreak"); - _nc_setmode(O_TEXT); - - buf = cur_term->Nttyb; -#ifdef TERMIOS - buf.c_lflag |= ICANON; - buf.c_iflag |= ICRNL; -#else - buf.sg_flags &= ~CBREAK; -#endif - if ((result = _nc_set_tty_mode(&buf)) == OK) { - SP->_cbreak = 0; - cur_term->Nttyb = buf; - } - AFTER("nocbreak"); - } - returnCode(result); -} - -/* - * Note: - * this implementation may be wrong. See the comment under intrflush(). - */ -NCURSES_EXPORT(void) -noqiflush(void) -{ - int result = ERR; - - T((T_CALLED("noqiflush()"))); - - if (cur_term != 0) { - TTY buf; - - BEFORE("noqiflush"); - buf = cur_term->Nttyb; -#ifdef TERMIOS - buf.c_lflag |= NOFLSH; - result = _nc_set_tty_mode(&buf); -#else - /* FIXME */ -#endif - if (result == OK) { - cur_term->Nttyb = buf; - } - AFTER("noqiflush"); - } - returnVoid; -} - -/* - * This call does the same thing as the qiflush()/noqiflush() pair. We know - * for certain that SVr3 intrflush() tweaks the NOFLSH bit; on the other hand, - * the match (in the SVr4 man pages) between the language describing NOFLSH in - * termio(7) and the language describing qiflush()/noqiflush() in - * curs_inopts(3x) is too exact to be coincidence. - */ -NCURSES_EXPORT(int) -intrflush(WINDOW *win GCC_UNUSED, bool flag) -{ - int result = ERR; - - T((T_CALLED("intrflush(%d)"), flag)); - - if (cur_term != 0) { - TTY buf; - - BEFORE("intrflush"); - buf = cur_term->Nttyb; -#ifdef TERMIOS - if (flag) - buf.c_lflag &= ~(NOFLSH); - else - buf.c_lflag |= (NOFLSH); - result = _nc_set_tty_mode(&buf); -#else - /* FIXME */ -#endif - if (result == OK) { - cur_term->Nttyb = buf; - } - AFTER("intrflush"); - } - returnCode(result); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_setup.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_setup.c deleted file mode 100644 index 50159940b45..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_setup.c +++ /dev/null @@ -1,548 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-2003 * - ****************************************************************************/ - -/* - * Terminal setup routines common to termcap and terminfo: - * - * use_env(bool) - * setupterm(char *, int, int *) - */ - -#include -#include /* for MAX_NAME_SIZE */ -#include - -#if SVR4_TERMIO && !defined(_POSIX_SOURCE) -#define _POSIX_SOURCE -#endif - -#if HAVE_LOCALE_H -#include -#endif - -#include /* lines, columns, cur_term */ - -MODULE_ID("$Id: lib_setup.c,v 1.86 2004/10/09 19:16:33 tom Exp $") - -/**************************************************************************** - * - * Terminal size computation - * - ****************************************************************************/ - -#if HAVE_SIZECHANGE -# if !defined(sun) || !TERMIOS -# if HAVE_SYS_IOCTL_H -# include -# endif -# endif -#endif - -#if NEED_PTEM_H - /* On SCO, they neglected to define struct winsize in termios.h -- it's only - * in termio.h and ptem.h (the former conflicts with other definitions). - */ -# include -# include -#endif - -#if HAVE_LANGINFO_CODESET -#include -#endif - -/* - * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS, - * Solaris, IRIX) define TIOCGWINSZ and struct winsize. - */ -#ifdef TIOCGSIZE -# define IOCTL_WINSIZE TIOCGSIZE -# define STRUCT_WINSIZE struct ttysize -# define WINSIZE_ROWS(n) (int)n.ts_lines -# define WINSIZE_COLS(n) (int)n.ts_cols -#else -# ifdef TIOCGWINSZ -# define IOCTL_WINSIZE TIOCGWINSZ -# define STRUCT_WINSIZE struct winsize -# define WINSIZE_ROWS(n) (int)n.ws_row -# define WINSIZE_COLS(n) (int)n.ws_col -# endif -#endif - -NCURSES_EXPORT_VAR(char) ttytype[NAMESIZE] = ""; -NCURSES_EXPORT_VAR(int) LINES = 0; -NCURSES_EXPORT_VAR(int) COLS = 0; -NCURSES_EXPORT_VAR(int) TABSIZE = 0; - -static int _use_env = TRUE; - -NCURSES_EXPORT(void) -use_env(bool f) -{ - T((T_CALLED("use_env()"))); - _use_env = f; - returnVoid; -} - -static void -_nc_get_screensize(int *linep, int *colp) -/* Obtain lines/columns values from the environment and/or terminfo entry */ -{ - /* figure out the size of the screen */ - T(("screen size: terminfo lines = %d columns = %d", lines, columns)); - - if (!_use_env) { - *linep = (int) lines; - *colp = (int) columns; - } else { /* usually want to query LINES and COLUMNS from environment */ - int value; - - *linep = *colp = 0; - - /* first, look for environment variables */ - if ((value = _nc_getenv_num("LINES")) > 0) { - *linep = value; - } - if ((value = _nc_getenv_num("COLUMNS")) > 0) { - *colp = value; - } - T(("screen size: environment LINES = %d COLUMNS = %d", *linep, *colp)); - -#ifdef __EMX__ - if (*linep <= 0 || *colp <= 0) { - int screendata[2]; - _scrsize(screendata); - *colp = screendata[0]; - *linep = screendata[1]; - T(("EMX screen size: environment LINES = %d COLUMNS = %d", - *linep, *colp)); - } -#endif -#if HAVE_SIZECHANGE - /* if that didn't work, maybe we can try asking the OS */ - if (*linep <= 0 || *colp <= 0) { - if (isatty(cur_term->Filedes)) { - STRUCT_WINSIZE size; - - errno = 0; - do { - if (ioctl(cur_term->Filedes, IOCTL_WINSIZE, &size) < 0 - && errno != EINTR) - goto failure; - } while - (errno == EINTR); - - /* - * Solaris lets users override either dimension with an - * environment variable. - */ - if (*linep <= 0) - *linep = WINSIZE_ROWS(size); - if (*colp <= 0) - *colp = WINSIZE_COLS(size); - } - /* FALLTHRU */ - failure:; - } -#endif /* HAVE_SIZECHANGE */ - - /* if we can't get dynamic info about the size, use static */ - if (*linep <= 0) { - *linep = (int) lines; - } - if (*colp <= 0) { - *colp = (int) columns; - } - - /* the ultimate fallback, assume fixed 24x80 size */ - if (*linep <= 0) { - *linep = 24; - } - if (*colp <= 0) { - *colp = 80; - } - - /* - * Put the derived values back in the screen-size caps, so - * tigetnum() and tgetnum() will do the right thing. - */ - lines = (short) (*linep); - columns = (short) (*colp); - } - - T(("screen size is %dx%d", *linep, *colp)); - - if (VALID_NUMERIC(init_tabs)) - TABSIZE = (int) init_tabs; - else - TABSIZE = 8; - T(("TABSIZE = %d", TABSIZE)); -} - -#if USE_SIZECHANGE -NCURSES_EXPORT(void) -_nc_update_screensize(void) -{ - int old_lines = lines; - int new_lines; - int old_cols = columns; - int new_cols; - - _nc_get_screensize(&new_lines, &new_cols); - - /* - * See is_term_resized() and resizeterm(). - * We're doing it this way because those functions belong to the upper - * ncurses library, while this resides in the lower terminfo library. - */ - if (SP != 0 - && SP->_resize != 0) { - if ((new_lines != old_lines) || (new_cols != old_cols)) - SP->_resize(new_lines, new_cols); - SP->_sig_winch = FALSE; - } -} -#endif - -/**************************************************************************** - * - * Terminal setup - * - ****************************************************************************/ - -#define ret_error(code, fmt, arg) if (errret) {\ - *errret = code;\ - returnCode(ERR);\ - } else {\ - fprintf(stderr, fmt, arg);\ - exit(EXIT_FAILURE);\ - } - -#define ret_error0(code, msg) if (errret) {\ - *errret = code;\ - returnCode(ERR);\ - } else {\ - fprintf(stderr, msg);\ - exit(EXIT_FAILURE);\ - } - -#if USE_DATABASE || USE_TERMCAP -static int -grab_entry(const char *const tn, TERMTYPE *const tp) -/* return 1 if entry found, 0 if not found, -1 if database not accessible */ -{ -#if USE_DATABASE - char filename[PATH_MAX]; -#endif - int status; - - /* - * $TERM shouldn't contain pathname delimiters. - */ - if (strchr(tn, '/')) - return 0; - -#if USE_DATABASE - if ((status = _nc_read_entry(tn, filename, tp)) != 1) { - -#if !PURE_TERMINFO - /* - * Try falling back on the termcap file. - * Note: allowing this call links the entire terminfo/termcap - * compiler into the startup code. It's preferable to build a - * real terminfo database and use that. - */ - status = _nc_read_termcap_entry(tn, tp); -#endif /* PURE_TERMINFO */ - - } -#else - status = _nc_read_termcap_entry(tn, tp); -#endif - - /* - * If we have an entry, force all of the cancelled strings to null - * pointers so we don't have to test them in the rest of the library. - * (The terminfo compiler bypasses this logic, since it must know if - * a string is cancelled, for merging entries). - */ - if (status == 1) { - unsigned n; - for_each_boolean(n, tp) { - if (!VALID_BOOLEAN(tp->Booleans[n])) - tp->Booleans[n] = FALSE; - } - for_each_string(n, tp) { - if (tp->Strings[n] == CANCELLED_STRING) - tp->Strings[n] = ABSENT_STRING; - } - } - return (status); -} -#endif - -/* -** do_prototype() -** -** Take the real command character out of the CC environment variable -** and substitute it in for the prototype given in 'command_character'. -** -*/ -static void -do_prototype(void) -{ - int i; - char CC; - char proto; - char *tmp; - - tmp = getenv("CC"); - CC = *tmp; - proto = *command_character; - - for_each_string(i, &(cur_term->type)) { - for (tmp = cur_term->type.Strings[i]; *tmp; tmp++) { - if (*tmp == proto) - *tmp = CC; - } - } -} - -/* - * Find the locale which is in effect. - */ -NCURSES_EXPORT(char *) -_nc_get_locale(void) -{ - char *env; -#if HAVE_LOCALE_H - /* - * This is preferable to using getenv() since it ensures that we are using - * the locale which was actually initialized by the application. - */ - env = setlocale(LC_CTYPE, 0); -#else - if (((env = getenv("LC_ALL")) != 0 && *env != '\0') - || ((env = getenv("LC_CTYPE")) != 0 && *env != '\0') - || ((env = getenv("LANG")) != 0 && *env != '\0')) { - ; - } -#endif - T(("_nc_get_locale %s", _nc_visbuf(env))); - return env; -} - -/* - * Check if we are running in a UTF-8 locale. - */ -NCURSES_EXPORT(int) -_nc_unicode_locale(void) -{ - int result = 0; -#if HAVE_LANGINFO_CODESET - char *env = nl_langinfo(CODESET); - result = !strcmp(env, "UTF-8"); - T(("_nc_unicode_locale(%s) ->%d", env, result)); -#else - char *env = _nc_get_locale(); - if (env != 0) { - if (strstr(env, ".UTF-8") != 0) { - result = 1; - T(("_nc_unicode_locale(%s) ->%d", env, result)); - } - } -#endif - return result; -} - -#define CONTROL_N(s) ((s) != 0 && strstr(s, "\016") != 0) -#define CONTROL_O(s) ((s) != 0 && strstr(s, "\017") != 0) - -/* - * Check for known broken cases where a UTF-8 locale breaks the alternate - * character set. - */ -NCURSES_EXPORT(int) -_nc_locale_breaks_acs(void) -{ - char *env = getenv("TERM"); - if (env != 0) { - if (strstr(env, "linux")) - return 1; /* always broken */ - if (strstr(env, "screen") != 0 - && ((env = getenv("TERMCAP")) != 0 - && strstr(env, "screen") != 0) - && strstr(env, "hhII00") != 0) { - if (CONTROL_N(enter_alt_charset_mode) || - CONTROL_O(enter_alt_charset_mode) || - CONTROL_N(set_attributes) || - CONTROL_O(set_attributes)) - return 1; - } - } - return 0; -} - -/* - * setupterm(termname, Filedes, errret) - * - * Find and read the appropriate object file for the terminal - * Make cur_term point to the structure. - * - */ - -NCURSES_EXPORT(int) -setupterm(NCURSES_CONST char *tname, int Filedes, int *errret) -{ - int status; - - START_TRACE(); - T((T_CALLED("setupterm(%s,%d,%p)"), _nc_visbuf(tname), Filedes, errret)); - - if (tname == 0) { - tname = getenv("TERM"); - if (tname == 0 || *tname == '\0') { - ret_error0(-1, "TERM environment variable not set.\n"); - } - } - if (strlen(tname) > MAX_NAME_SIZE) { - ret_error(-1, "TERM environment must be <= %d characters.\n", - MAX_NAME_SIZE); - } - - T(("your terminal name is %s", tname)); - - /* - * Allow output redirection. This is what SVr3 does. If stdout is - * directed to a file, screen updates go to standard error. - */ - if (Filedes == STDOUT_FILENO && !isatty(Filedes)) - Filedes = STDERR_FILENO; - - /* - * Check if we have already initialized to use this terminal. If so, we - * do not need to re-read the terminfo entry, or obtain TTY settings. - * - * This is an improvement on SVr4 curses. If an application mixes curses - * and termcap calls, it may call both initscr and tgetent. This is not - * really a good thing to do, but can happen if someone tries using ncurses - * with the readline library. The problem we are fixing is that when - * tgetent calls setupterm, the resulting Ottyb struct in cur_term is - * zeroed. A subsequent call to endwin uses the zeroed terminal settings - * rather than the ones saved in initscr. So we check if cur_term appears - * to contain terminal settings for the same output file as our current - * call - and copy those terminal settings. (SVr4 curses does not do this, - * however applications that are working around the problem will still work - * properly with this feature). - */ - if (cur_term != 0 - && cur_term->Filedes == Filedes - && cur_term->_termname != 0 - && !strcmp(cur_term->_termname, tname) - && _nc_name_match(cur_term->type.term_names, tname, "|")) { - T(("reusing existing terminal information and mode-settings")); - } else { - TERMINAL *term_ptr; - - term_ptr = typeCalloc(TERMINAL, 1); - - if (term_ptr == 0) { - ret_error0(-1, - "Not enough memory to create terminal structure.\n"); - } -#if USE_DATABASE || USE_TERMCAP - status = grab_entry(tname, &term_ptr->type); -#else - status = 0; -#endif - - /* try fallback list if entry on disk */ - if (status != 1) { - const TERMTYPE *fallback = _nc_fallback(tname); - - if (fallback) { - term_ptr->type = *fallback; - status = 1; - } - } - - if (status <= 0) { - del_curterm(term_ptr); - if (status == -1) { - ret_error0(-1, "terminals database is inaccessible\n"); - } else if (status == 0) { - ret_error(0, "'%s': unknown terminal type.\n", tname); - } - } - - set_curterm(term_ptr); - - if (command_character && getenv("CC")) - do_prototype(); - - strncpy(ttytype, cur_term->type.term_names, NAMESIZE - 1); - ttytype[NAMESIZE - 1] = '\0'; - - cur_term->Filedes = Filedes; - cur_term->_termname = strdup(tname); - - /* - * If an application calls setupterm() rather than initscr() or - * newterm(), we will not have the def_prog_mode() call in - * _nc_setupscreen(). Do it now anyway, so we can initialize the - * baudrate. - */ - if (isatty(Filedes)) { - def_prog_mode(); - baudrate(); - } - } - - /* - * We should always check the screensize, just in case. - */ - _nc_get_screensize(&LINES, &COLS); - - if (errret) - *errret = 1; - - T((T_CREATE("screen %s %dx%d"), tname, LINES, COLS)); - - if (generic_type) { - ret_error(0, "'%s': I need something more specific.\n", tname); - } - if (hard_copy) { - ret_error(1, "'%s': I can't handle hardcopy terminals.\n", tname); - } - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_termcap.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_termcap.c deleted file mode 100644 index 1484c41d231..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_termcap.c +++ /dev/null @@ -1,381 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - * * - * some of the code in here was contributed by: * - * Magnus Bengtsson, d6mbeng@dtek.chalmers.se (Nov'93) * - ****************************************************************************/ - -#define __INTERNAL_CAPS_VISIBLE -#include - -#include -#include -#include - -#include - -MODULE_ID("$Id: lib_termcap.c,v 1.46 2004/09/25 19:21:27 tom Exp $") - -#define CSI 233 -#define ESC 033 /* ^[ */ -#define L_BRACK '[' -#define SHIFT_OUT 017 /* ^N */ - -NCURSES_EXPORT_VAR(char *) UP = 0; -NCURSES_EXPORT_VAR(char *) BC = 0; - -static char *fix_me = 0; - -static char * -set_attribute_9(int flag) -{ - const char *result; - - if ((result = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag)) == 0) - result = ""; - return strdup(result); -} - -static int -is_csi(char *s) -{ - if (UChar(s[0]) == CSI) - return 1; - else if (s[0] == ESC && s[1] == L_BRACK) - return 2; - return 0; -} - -static char * -skip_zero(char *s) -{ - if (s[0] == '0') { - if (s[1] == ';') - s += 2; - else if (isalpha(UChar(s[1]))) - s += 1; - } - return s; -} - -static bool -similar_sgr(char *a, char *b) -{ - bool result = FALSE; - int csi_a = is_csi(a); - int csi_b = is_csi(b); - unsigned len_a; - unsigned len_b; - - TR(TRACE_DATABASE, ("similar_sgr:\n\t%s\n\t%s", - _nc_visbuf2(1, a), - _nc_visbuf2(2, b))); - if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) { - a += csi_a; - b += csi_b; - if (*a != *b) { - a = skip_zero(a); - b = skip_zero(b); - } - } - len_a = strlen(a); - len_b = strlen(b); - if (len_a && len_b) { - if (len_a > len_b) - result = (strncmp(a, b, len_b) == 0); - else - result = (strncmp(a, b, len_a) == 0); - } - TR(TRACE_DATABASE, ("...similar_sgr: %d\n\t%s\n\t%s", result, - _nc_visbuf2(1, a), - _nc_visbuf2(2, b))); - return result; -} - -static unsigned -chop_out(char *string, unsigned i, unsigned j) -{ - TR(TRACE_DATABASE, ("chop_out %d..%d from %s", i, j, _nc_visbuf(string))); - while (string[j] != '\0') { - string[i++] = string[j++]; - } - string[i] = '\0'; - return i; -} - -/*************************************************************************** - * - * tgetent(bufp, term) - * - * In termcap, this function reads in the entry for terminal `term' into the - * buffer pointed to by bufp. It must be called before any of the functions - * below are called. - * In this terminfo emulation, tgetent() simply calls setupterm() (which - * does a bit more than tgetent() in termcap does), and returns its return - * value (1 if successful, 0 if no terminal with the given name could be - * found, or -1 if no terminal descriptions have been installed on the - * system). The bufp argument is ignored. - * - ***************************************************************************/ - -NCURSES_EXPORT(int) -tgetent(char *bufp GCC_UNUSED, const char *name) -{ - int errcode; - - START_TRACE(); - T((T_CALLED("tgetent()"))); - - setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode); - - PC = 0; - UP = 0; - BC = 0; - fix_me = 0; - - if (errcode == 1) { - - if (cursor_left) - if ((backspaces_with_bs = !strcmp(cursor_left, "\b")) == 0) - backspace_if_not_bs = cursor_left; - - /* we're required to export these */ - if (pad_char != NULL) - PC = pad_char[0]; - if (cursor_up != NULL) - UP = cursor_up; - if (backspace_if_not_bs != NULL) - BC = backspace_if_not_bs; - - /* - * While 'sgr0' is the "same" as termcap 'me', there is a compatibility - * issue. The sgr/sgr0 capabilities include setting/clearing alternate - * character set mode. A termcap application cannot use sgr, so sgr0 - * strings that reset alternate character set mode will be - * misinterpreted. Here, we remove those from the more common - * ISO/ANSI/VT100 entries, which have sgr0 agreeing with sgr. - */ - if (exit_attribute_mode != 0 - && set_attributes != 0) { - bool found = FALSE; - char *on = set_attribute_9(1); - char *off = set_attribute_9(0); - char *tmp; - size_t i, j, k; - - TR(TRACE_DATABASE, ("checking if we can trim sgr0 based on sgr")); - TR(TRACE_DATABASE, ("sgr0 %s", _nc_visbuf(exit_attribute_mode))); - TR(TRACE_DATABASE, ("sgr(9:off) %s", _nc_visbuf(off))); - TR(TRACE_DATABASE, ("sgr(9:on) %s", _nc_visbuf(on))); - if (similar_sgr(off, exit_attribute_mode) - && !similar_sgr(off, on)) { - TR(TRACE_DATABASE, ("adjusting sgr0 : %s", _nc_visbuf(off))); - FreeIfNeeded(fix_me); - fix_me = off; - /* - * If rmacs is a substring of sgr(0), remove that chunk. - */ - if (exit_alt_charset_mode != 0) { - j = strlen(off); - k = strlen(exit_alt_charset_mode); - if (j > k) { - for (i = 0; i <= (j - k); ++i) { - if (!memcmp(exit_alt_charset_mode, off + i, k)) { - found = TRUE; - chop_out(off, i, i + k); - break; - } - } - } - } - /* - * SGR 10 would reset to normal font. - */ - if (!found) { - if ((i = is_csi(off)) != 0 - && off[strlen(off) - 1] == 'm') { - TR(TRACE_DATABASE, ("looking for SGR 10 in %s", - _nc_visbuf(off))); - tmp = skip_zero(off + i); - if (tmp[0] == '1' - && skip_zero(tmp + 1) != tmp + 1) { - i = tmp - off; - if (off[i - 1] == ';') - i--; - j = skip_zero(tmp + 1) - off; - i = chop_out(off, i, j); - found = TRUE; - } - } - } - if (!found - && (tmp = strstr(exit_attribute_mode, off)) != 0) { - i = tmp - exit_attribute_mode; - j = strlen(off); - tmp = strdup(exit_attribute_mode); - chop_out(tmp, i, j); - free(off); - fix_me = tmp; - } - TR(TRACE_DATABASE, ("...adjusted sgr0 : %s", _nc_visbuf(fix_me))); - if (!strcmp(fix_me, exit_attribute_mode)) { - TR(TRACE_DATABASE, ("...same result, discard")); - free(fix_me); - fix_me = 0; - } - } else { - /* - * Either the sgr does not reference alternate character set, - * or it is incorrect. That's too hard to decide right now. - */ - free(off); - } - free(on); - } else { - /* - * Possibly some applications are confused if sgr0 contains rmacs, - * but that would be a different bug report -TD - */ - } - - (void) baudrate(); /* sets ospeed as a side-effect */ - -/* LINT_PREPRO -#if 0*/ -#include -/* LINT_PREPRO -#endif*/ - - } - returnCode(errcode); -} - -/*************************************************************************** - * - * tgetflag(str) - * - * Look up boolean termcap capability str and return its value (TRUE=1 if - * present, FALSE=0 if not). - * - ***************************************************************************/ - -NCURSES_EXPORT(int) -tgetflag(NCURSES_CONST char *id) -{ - unsigned i; - - T((T_CALLED("tgetflag(%s)"), id)); - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_boolean(i, tp) { - const char *capname = ExtBoolname(tp, i, boolcodes); - if (!strncmp(id, capname, 2)) { - /* setupterm forces invalid booleans to false */ - returnCode(tp->Booleans[i]); - } - } - } - returnCode(0); /* Solaris does this */ -} - -/*************************************************************************** - * - * tgetnum(str) - * - * Look up numeric termcap capability str and return its value, or -1 if - * not given. - * - ***************************************************************************/ - -NCURSES_EXPORT(int) -tgetnum(NCURSES_CONST char *id) -{ - unsigned i; - - T((T_CALLED("tgetnum(%s)"), id)); - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_number(i, tp) { - const char *capname = ExtNumname(tp, i, numcodes); - if (!strncmp(id, capname, 2)) { - if (!VALID_NUMERIC(tp->Numbers[i])) - returnCode(ABSENT_NUMERIC); - returnCode(tp->Numbers[i]); - } - } - } - returnCode(ABSENT_NUMERIC); -} - -/*************************************************************************** - * - * tgetstr(str, area) - * - * Look up string termcap capability str and return a pointer to its value, - * or NULL if not given. - * - ***************************************************************************/ - -NCURSES_EXPORT(char *) -tgetstr(NCURSES_CONST char *id, char **area) -{ - unsigned i; - char *result = NULL; - - T((T_CALLED("tgetstr(%s,%p)"), id, area)); - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_string(i, tp) { - const char *capname = ExtStrname(tp, i, strcodes); - if (!strncmp(id, capname, 2)) { - result = tp->Strings[i]; - TR(TRACE_DATABASE, ("found match : %s", _nc_visbuf(result))); - /* setupterm forces canceled strings to null */ - if (VALID_STRING(result)) { - if (result == exit_attribute_mode - && fix_me != 0) { - result = fix_me; - TR(TRACE_DATABASE, ("altered to : %s", _nc_visbuf(result))); - } - if (area != 0 - && *area != 0) { - (void) strcpy(*area, result); - *area += strlen(*area) + 1; - } - } - break; - } - } - } - returnPtr(result); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_termname.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_termname.c deleted file mode 100644 index 713d0be8c36..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_termname.c +++ /dev/null @@ -1,44 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: lib_termname.c,v 1.8 2003/12/27 18:23:01 tom Exp $") - -NCURSES_EXPORT(char *) -termname(void) -{ - char *name = 0; - - T((T_CALLED("termname()"))); - - if (cur_term != 0) - name = cur_term->_termname; - - returnPtr(name); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_tgoto.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_tgoto.c deleted file mode 100644 index 84d4a7f36d8..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_tgoto.c +++ /dev/null @@ -1,203 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2000-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey * - ****************************************************************************/ - -#include - -#include -#include - -MODULE_ID("$Id: lib_tgoto.c,v 1.11 2003/11/30 00:22:18 Juha.Jarvi Exp $") - -#if !PURE_TERMINFO -static bool -is_termcap(const char *string) -{ - bool result = TRUE; - - if (string == 0 || *string == '\0') { - result = FALSE; /* tparm() handles empty strings */ - } else { - while ((*string != '\0') && result) { - if (*string == '%') { - switch (*++string) { - case 'p': - result = FALSE; - break; - case '\0': - string--; - break; - } - } else if (string[0] == '$' && string[1] == '<') { - result = FALSE; - } - string++; - } - } - return result; -} - -static char * -tgoto_internal(const char *string, int x, int y) -{ - static char *result; - static size_t length; - - int swap_arg; - int param[3]; - size_t used = 0; - size_t need = 10; - int *value = param; - bool need_BC = FALSE; - - if (BC) - need += strlen(BC); - - param[0] = y; - param[1] = x; - param[2] = 0; - - while (*string != 0) { - if ((used + need) > length) { - length += (used + need); - if ((result = typeRealloc(char, length, result)) == 0) { - length = 0; - break; - } - } - if (*string == '%') { - const char *fmt = 0; - - switch (*++string) { - case '\0': - string--; - break; - case 'd': - fmt = "%d"; - break; - case '2': - fmt = "%02d"; - *value %= 100; - break; - case '3': - fmt = "%03d"; - *value %= 1000; - break; - case '+': - *value += UChar(*++string); - /* FALLTHRU */ - case '.': - /* - * Guard against tputs() seeing a truncated string. The - * termcap documentation refers to a similar fixup for \n - * and \r, but I don't see that it could work -TD - */ - if (*value == 0) { - if (BC != 0) { - *value += 1; - need_BC = TRUE; - } else { - *value = 0200; /* tputs will treat this as \0 */ - } - } - result[used++] = *value++; - break; - case '%': - result[used++] = *string; - break; - case 'r': - swap_arg = param[0]; - param[0] = param[1]; - param[1] = swap_arg; - break; - case 'i': - param[0] += 1; - param[1] += 1; - break; - case '>': - if (*value > string[1]) - *value += string[2]; - string += 2; - break; - case 'n': /* Datamedia 2500 */ - param[0] ^= 0140; - param[1] ^= 0140; - break; - case 'B': /* BCD */ - *value = 16 * (*value / 10) + (*value % 10); - break; - case 'D': /* Reverse coding (Delta Data) */ - *value -= 2 * (*value % 16); - break; - } - if (fmt != 0) { - sprintf(result + used, fmt, *value++); - used += strlen(result + used); - fmt = 0; - } - if (value - param > 2) { - value = param + 2; - *value = 0; - } - } else { - result[used++] = *string; - } - string++; - } - if (result != 0) { - if (need_BC) { - strcpy(result + used, BC); - used += strlen(BC); - } - result[used] = '\0'; - } - return result; -} -#endif - -/* - * Retained solely for upward compatibility. Note the intentional reversing of - * the last two arguments when invoking tparm(). - */ -NCURSES_EXPORT(char *) -tgoto(const char *string, int x, int y) -{ - char *result; - - T((T_CALLED("tgoto(%s, %d, %d)"), _nc_visbuf(string), x, y)); -#if !PURE_TERMINFO - if (is_termcap(string)) - result = tgoto_internal(string, x, y); - else -#endif - result = tparm((NCURSES_CONST char *) string, y, x); - returnPtr(result); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_ti.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_ti.c deleted file mode 100644 index df460f953ea..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_ti.c +++ /dev/null @@ -1,103 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -#include - -#include -#include - -MODULE_ID("$Id: lib_ti.c,v 1.23 2003/05/24 21:10:28 tom Exp $") - -NCURSES_EXPORT(int) -tigetflag(NCURSES_CONST char *str) -{ - unsigned i; - - T((T_CALLED("tigetflag(%s)"), str)); - - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_boolean(i, tp) { - const char *capname = ExtBoolname(tp, i, boolnames); - if (!strcmp(str, capname)) { - /* setupterm forces invalid booleans to false */ - returnCode(tp->Booleans[i]); - } - } - } - - returnCode(ABSENT_BOOLEAN); -} - -NCURSES_EXPORT(int) -tigetnum(NCURSES_CONST char *str) -{ - unsigned i; - - T((T_CALLED("tigetnum(%s)"), str)); - - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_number(i, tp) { - const char *capname = ExtNumname(tp, i, numnames); - if (!strcmp(str, capname)) { - if (!VALID_NUMERIC(tp->Numbers[i])) - returnCode(ABSENT_NUMERIC); - returnCode(tp->Numbers[i]); - } - } - } - - returnCode(CANCELLED_NUMERIC); /* Solaris returns a -1 instead */ -} - -NCURSES_EXPORT(char *) -tigetstr(NCURSES_CONST char *str) -{ - unsigned i; - - T((T_CALLED("tigetstr(%s)"), str)); - - if (cur_term != 0) { - TERMTYPE *tp = &(cur_term->type); - for_each_string(i, tp) { - const char *capname = ExtStrname(tp, i, strnames); - if (!strcmp(str, capname)) { - /* setupterm forces cancelled strings to null */ - returnPtr(tp->Strings[i]); - } - } - } - - returnPtr(CANCELLED_STRING); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_tparm.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_tparm.c deleted file mode 100644 index 041667b4f7c..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_tparm.c +++ /dev/null @@ -1,791 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey, 1996 on * - ****************************************************************************/ - -/* - * tparm.c - * - */ - -#include - -#include -#include -#include - -MODULE_ID("$Id: lib_tparm.c,v 1.68 2004/02/07 20:52:51 tom Exp $") - -/* - * char * - * tparm(string, ...) - * - * Substitute the given parameters into the given string by the following - * rules (taken from terminfo(5)): - * - * Cursor addressing and other strings requiring parame- - * ters in the terminal are described by a parameterized string - * capability, with like escapes %x in it. For example, to - * address the cursor, the cup capability is given, using two - * parameters: the row and column to address to. (Rows and - * columns are numbered from zero and refer to the physical - * screen visible to the user, not to any unseen memory.) If - * the terminal has memory relative cursor addressing, that can - * be indicated by - * - * The parameter mechanism uses a stack and special % - * codes to manipulate it. Typically a sequence will push one - * of the parameters onto the stack and then print it in some - * format. Often more complex operations are necessary. - * - * The % encodings have the following meanings: - * - * %% outputs `%' - * %c print pop() like %c in printf() - * %s print pop() like %s in printf() - * %[[:]flags][width[.precision]][doxXs] - * as in printf, flags are [-+#] and space - * The ':' is used to avoid making %+ or %- - * patterns (see below). - * - * %p[1-9] push ith parm - * %P[a-z] set dynamic variable [a-z] to pop() - * %g[a-z] get dynamic variable [a-z] and push it - * %P[A-Z] set static variable [A-Z] to pop() - * %g[A-Z] get static variable [A-Z] and push it - * %l push strlen(pop) - * %'c' push char constant c - * %{nn} push integer constant nn - * - * %+ %- %* %/ %m - * arithmetic (%m is mod): push(pop() op pop()) - * %& %| %^ bit operations: push(pop() op pop()) - * %= %> %< logical operations: push(pop() op pop()) - * %A %O logical and & or operations for conditionals - * %! %~ unary operations push(op pop()) - * %i add 1 to first two parms (for ANSI terminals) - * - * %? expr %t thenpart %e elsepart %; - * if-then-else, %e elsepart is optional. - * else-if's are possible ala Algol 68: - * %? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e b5 %; - * - * For those of the above operators which are binary and not commutative, - * the stack works in the usual way, with - * %gx %gy %m - * resulting in x mod y, not the reverse. - */ - -#define STACKSIZE 20 - -typedef struct { - union { - int num; - char *str; - } data; - bool num_type; -} stack_frame; - -NCURSES_EXPORT_VAR(int) _nc_tparm_err = 0; - -static stack_frame stack[STACKSIZE]; -static int stack_ptr; -static const char *tparam_base = ""; - -#ifdef TRACE -static const char *tname; -#endif /* TRACE */ - -static char *out_buff; -static size_t out_size; -static size_t out_used; - -static char *fmt_buff; -static size_t fmt_size; - -#if NO_LEAKS -NCURSES_EXPORT(void) -_nc_free_tparm(void) -{ - if (out_buff != 0) { - FreeAndNull(out_buff); - out_size = 0; - out_used = 0; - FreeAndNull(fmt_buff); - fmt_size = 0; - } -} -#endif - -static inline void -get_space(size_t need) -{ - need += out_used; - if (need > out_size) { - out_size = need * 2; - out_buff = typeRealloc(char, out_size, out_buff); - if (out_buff == 0) - _nc_err_abort(MSG_NO_MEMORY); - } -} - -static inline void -save_text(const char *fmt, const char *s, int len) -{ - size_t s_len = strlen(s); - if (len > (int) s_len) - s_len = len; - - get_space(s_len + 1); - - (void) sprintf(out_buff + out_used, fmt, s); - out_used += strlen(out_buff + out_used); -} - -static inline void -save_number(const char *fmt, int number, int len) -{ - if (len < 30) - len = 30; /* actually log10(MAX_INT)+1 */ - - get_space((unsigned) len + 1); - - (void) sprintf(out_buff + out_used, fmt, number); - out_used += strlen(out_buff + out_used); -} - -static inline void -save_char(int c) -{ - if (c == 0) - c = 0200; - get_space(1); - out_buff[out_used++] = c; -} - -static inline void -npush(int x) -{ - if (stack_ptr < STACKSIZE) { - stack[stack_ptr].num_type = TRUE; - stack[stack_ptr].data.num = x; - stack_ptr++; - } else { - DEBUG(2, ("npush: stack overflow: %s", _nc_visbuf(tparam_base))); - _nc_tparm_err++; - } -} - -static inline int -npop(void) -{ - int result = 0; - if (stack_ptr > 0) { - stack_ptr--; - if (stack[stack_ptr].num_type) - result = stack[stack_ptr].data.num; - } else { - DEBUG(2, ("npop: stack underflow: %s", _nc_visbuf(tparam_base))); - _nc_tparm_err++; - } - return result; -} - -static inline void -spush(char *x) -{ - if (stack_ptr < STACKSIZE) { - stack[stack_ptr].num_type = FALSE; - stack[stack_ptr].data.str = x; - stack_ptr++; - } else { - DEBUG(2, ("spush: stack overflow: %s", _nc_visbuf(tparam_base))); - _nc_tparm_err++; - } -} - -static inline char * -spop(void) -{ - static char dummy[] = ""; /* avoid const-cast */ - char *result = dummy; - if (stack_ptr > 0) { - stack_ptr--; - if (!stack[stack_ptr].num_type && stack[stack_ptr].data.str != 0) - result = stack[stack_ptr].data.str; - } else { - DEBUG(2, ("spop: stack underflow: %s", _nc_visbuf(tparam_base))); - _nc_tparm_err++; - } - return result; -} - -static inline const char * -parse_format(const char *s, char *format, int *len) -{ - *len = 0; - if (format != 0) { - bool done = FALSE; - bool allowminus = FALSE; - bool dot = FALSE; - bool err = FALSE; - char *fmt = format; - int my_width = 0; - int my_prec = 0; - int value = 0; - - *len = 0; - *format++ = '%'; - while (*s != '\0' && !done) { - switch (*s) { - case 'c': /* FALLTHRU */ - case 'd': /* FALLTHRU */ - case 'o': /* FALLTHRU */ - case 'x': /* FALLTHRU */ - case 'X': /* FALLTHRU */ - case 's': - *format++ = *s; - done = TRUE; - break; - case '.': - *format++ = *s++; - if (dot) { - err = TRUE; - } else { /* value before '.' is the width */ - dot = TRUE; - my_width = value; - } - value = 0; - break; - case '#': - *format++ = *s++; - break; - case ' ': - *format++ = *s++; - break; - case ':': - s++; - allowminus = TRUE; - break; - case '-': - if (allowminus) { - *format++ = *s++; - } else { - done = TRUE; - } - break; - default: - if (isdigit(UChar(*s))) { - value = (value * 10) + (*s - '0'); - if (value > 10000) - err = TRUE; - *format++ = *s++; - } else { - done = TRUE; - } - } - } - - /* - * If we found an error, ignore (and remove) the flags. - */ - if (err) { - my_width = my_prec = value = 0; - format = fmt; - *format++ = '%'; - *format++ = *s; - } - - /* - * Any value after '.' is the precision. If we did not see '.', then - * the value is the width. - */ - if (dot) - my_prec = value; - else - my_width = value; - - *format = '\0'; - /* return maximum string length in print */ - *len = (my_width > my_prec) ? my_width : my_prec; - } - return s; -} - -#define isUPPER(c) ((c) >= 'A' && (c) <= 'Z') -#define isLOWER(c) ((c) >= 'a' && (c) <= 'z') - -/* - * Analyze the string to see how many parameters we need from the varargs list, - * and what their types are. We will only accept string parameters if they - * appear as a %l or %s format following an explicit parameter reference (e.g., - * %p2%s). All other parameters are numbers. - * - * 'number' counts coarsely the number of pop's we see in the string, and - * 'popcount' shows the highest parameter number in the string. We would like - * to simply use the latter count, but if we are reading termcap strings, there - * may be cases that we cannot see the explicit parameter numbers. - */ -NCURSES_EXPORT(int) -_nc_tparm_analyze(const char *string, char *p_is_s[NUM_PARM], int *popcount) -{ - size_t len2; - int i; - int lastpop = -1; - int len; - int number = 0; - const char *cp = string; - static char dummy[] = ""; - - if (cp == 0) - return 0; - - if ((len2 = strlen(cp)) > fmt_size) { - fmt_size = len2 + fmt_size + 2; - if ((fmt_buff = typeRealloc(char, fmt_size, fmt_buff)) == 0) - return 0; - } - - memset(p_is_s, 0, sizeof(p_is_s[0]) * NUM_PARM); - *popcount = 0; - - while ((cp - string) < (int) len2) { - if (*cp == '%') { - cp++; - cp = parse_format(cp, fmt_buff, &len); - switch (*cp) { - default: - break; - - case 'd': /* FALLTHRU */ - case 'o': /* FALLTHRU */ - case 'x': /* FALLTHRU */ - case 'X': /* FALLTHRU */ - case 'c': /* FALLTHRU */ - if (lastpop <= 0) - number++; - lastpop = -1; - break; - - case 'l': - case 's': - if (lastpop > 0) - p_is_s[lastpop - 1] = dummy; - ++number; - break; - - case 'p': - cp++; - i = (UChar(*cp) - '0'); - if (i >= 0 && i <= NUM_PARM) { - lastpop = i; - if (lastpop > *popcount) - *popcount = lastpop; - } - break; - - case 'P': - ++number; - ++cp; - break; - - case 'g': - cp++; - break; - - case S_QUOTE: - cp += 2; - lastpop = -1; - break; - - case L_BRACE: - cp++; - while (isdigit(UChar(*cp))) { - cp++; - } - break; - - case '+': - case '-': - case '*': - case '/': - case 'm': - case 'A': - case 'O': - case '&': - case '|': - case '^': - case '=': - case '<': - case '>': - lastpop = -1; - number += 2; - break; - - case '!': - case '~': - lastpop = -1; - ++number; - break; - - case 'i': - /* will add 1 to first (usually two) parameters */ - break; - } - } - if (*cp != '\0') - cp++; - } - - if (number > NUM_PARM) - number = NUM_PARM; - return number; -} - -static inline char * -tparam_internal(const char *string, va_list ap) -{ -#define NUM_VARS 26 - char *p_is_s[NUM_PARM]; - long param[NUM_PARM]; - int popcount; - int number; - int len; - int level; - int x, y; - int i; - const char *cp = string; - size_t len2; - static int dynamic_var[NUM_VARS]; - static int static_vars[NUM_VARS]; - - if (cp == NULL) - return NULL; - - out_used = 0; - len2 = strlen(cp); - - /* - * Find the highest parameter-number referred to in the format string. - * Use this value to limit the number of arguments copied from the - * variable-length argument list. - */ - number = _nc_tparm_analyze(cp, p_is_s, &popcount); - if (fmt_buff == 0) - return NULL; - - for (i = 0; i < max(popcount, number); i++) { - /* - * A few caps (such as plab_norm) have string-valued parms. - * We'll have to assume that the caller knows the difference, since - * a char* and an int may not be the same size on the stack. The - * normal prototype for this uses 9 long's, which is consistent with - * our va_arg() usage. - */ - if (p_is_s[i] != 0) { - p_is_s[i] = va_arg(ap, char *); - } else { - param[i] = va_arg(ap, long int); - } - } - - /* - * This is a termcap compatibility hack. If there are no explicit pop - * operations in the string, load the stack in such a way that - * successive pops will grab successive parameters. That will make - * the expansion of (for example) \E[%d;%dH work correctly in termcap - * style, which means tparam() will expand termcap strings OK. - */ - stack_ptr = 0; - if (popcount == 0) { - popcount = number; - for (i = number - 1; i >= 0; i--) - npush(param[i]); - } -#ifdef TRACE - if (_nc_tracing & TRACE_CALLS) { - for (i = 0; i < popcount; i++) { - if (p_is_s[i] != 0) - save_text(", %s", _nc_visbuf(p_is_s[i]), 0); - else - save_number(", %d", param[i], 0); - } - _tracef(T_CALLED("%s(%s%s)"), tname, _nc_visbuf(cp), out_buff); - out_used = 0; - } -#endif /* TRACE */ - - while ((cp - string) < (int) len2) { - if (*cp != '%') { - save_char(UChar(*cp)); - } else { - tparam_base = cp++; - cp = parse_format(cp, fmt_buff, &len); - switch (*cp) { - default: - break; - case '%': - save_char('%'); - break; - - case 'd': /* FALLTHRU */ - case 'o': /* FALLTHRU */ - case 'x': /* FALLTHRU */ - case 'X': /* FALLTHRU */ - save_number(fmt_buff, npop(), len); - break; - - case 'c': /* FALLTHRU */ - save_char(npop()); - break; - - case 'l': - save_number("%d", (int) strlen(spop()), 0); - break; - - case 's': - save_text(fmt_buff, spop(), len); - break; - - case 'p': - cp++; - i = (UChar(*cp) - '1'); - if (i >= 0 && i < NUM_PARM) { - if (p_is_s[i]) - spush(p_is_s[i]); - else - npush(param[i]); - } - break; - - case 'P': - cp++; - if (isUPPER(*cp)) { - i = (UChar(*cp) - 'A'); - static_vars[i] = npop(); - } else if (isLOWER(*cp)) { - i = (UChar(*cp) - 'a'); - dynamic_var[i] = npop(); - } - break; - - case 'g': - cp++; - if (isUPPER(*cp)) { - i = (UChar(*cp) - 'A'); - npush(static_vars[i]); - } else if (isLOWER(*cp)) { - i = (UChar(*cp) - 'a'); - npush(dynamic_var[i]); - } - break; - - case S_QUOTE: - cp++; - npush(UChar(*cp)); - cp++; - break; - - case L_BRACE: - number = 0; - cp++; - while (isdigit(UChar(*cp))) { - number = (number * 10) + (UChar(*cp) - '0'); - cp++; - } - npush(number); - break; - - case '+': - npush(npop() + npop()); - break; - - case '-': - y = npop(); - x = npop(); - npush(x - y); - break; - - case '*': - npush(npop() * npop()); - break; - - case '/': - y = npop(); - x = npop(); - npush(y ? (x / y) : 0); - break; - - case 'm': - y = npop(); - x = npop(); - npush(y ? (x % y) : 0); - break; - - case 'A': - npush(npop() && npop()); - break; - - case 'O': - npush(npop() || npop()); - break; - - case '&': - npush(npop() & npop()); - break; - - case '|': - npush(npop() | npop()); - break; - - case '^': - npush(npop() ^ npop()); - break; - - case '=': - y = npop(); - x = npop(); - npush(x == y); - break; - - case '<': - y = npop(); - x = npop(); - npush(x < y); - break; - - case '>': - y = npop(); - x = npop(); - npush(x > y); - break; - - case '!': - npush(!npop()); - break; - - case '~': - npush(~npop()); - break; - - case 'i': - if (p_is_s[0] == 0) - param[0]++; - if (p_is_s[1] == 0) - param[1]++; - break; - - case '?': - break; - - case 't': - x = npop(); - if (!x) { - /* scan forward for %e or %; at level zero */ - cp++; - level = 0; - while (*cp) { - if (*cp == '%') { - cp++; - if (*cp == '?') - level++; - else if (*cp == ';') { - if (level > 0) - level--; - else - break; - } else if (*cp == 'e' && level == 0) - break; - } - - if (*cp) - cp++; - } - } - break; - - case 'e': - /* scan forward for a %; at level zero */ - cp++; - level = 0; - while (*cp) { - if (*cp == '%') { - cp++; - if (*cp == '?') - level++; - else if (*cp == ';') { - if (level > 0) - level--; - else - break; - } - } - - if (*cp) - cp++; - } - break; - - case ';': - break; - - } /* endswitch (*cp) */ - } /* endelse (*cp == '%') */ - - if (*cp == '\0') - break; - - cp++; - } /* endwhile (*cp) */ - - get_space(1); - out_buff[out_used] = '\0'; - - T((T_RETURN("%s"), _nc_visbuf(out_buff))); - return (out_buff); -} - -NCURSES_EXPORT(char *) -tparm(NCURSES_CONST char *string,...) -{ - va_list ap; - char *result; - - _nc_tparm_err = 0; - va_start(ap, string); -#ifdef TRACE - tname = "tparm"; -#endif /* TRACE */ - result = tparam_internal(string, ap); - va_end(ap); - return result; -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_tputs.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_tputs.c deleted file mode 100644 index 3a18ffd7404..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_tputs.c +++ /dev/null @@ -1,257 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * tputs.c - * delay_output() - * _nc_outch() - * tputs() - * - */ - -#include -#include -#include /* padding_baud_rate, xon_xoff */ -#include /* ospeed */ -#include - -MODULE_ID("$Id: lib_tputs.c,v 1.62 2003/08/23 21:39:20 tom Exp $") - -NCURSES_EXPORT_VAR(char) PC = 0; /* used by termcap library */ -NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed = 0; /* used by termcap library */ - -NCURSES_EXPORT_VAR(int) _nc_nulls_sent = 0; /* used by 'tack' program */ - -static int (*my_outch) (int c) = _nc_outch; - -NCURSES_EXPORT(int) -delay_output(int ms) -{ - T((T_CALLED("delay_output(%d)"), ms)); - - if (no_pad_char) { - _nc_flush(); - napms(ms); - } else { - register int nullcount; - - nullcount = (ms * _nc_baudrate(ospeed)) / (BAUDBYTE * 1000); - for (_nc_nulls_sent += nullcount; nullcount > 0; nullcount--) - my_outch(PC); - if (my_outch == _nc_outch) - _nc_flush(); - } - - returnCode(OK); -} - -NCURSES_EXPORT(void) -_nc_flush(void) -{ - (void) fflush(NC_OUTPUT); -} - -NCURSES_EXPORT(int) -_nc_outch(int ch) -{ - TRACE_OUTCHARS(1); - - if (SP != 0 - && SP->_cleanup) { - char tmp = ch; - /* - * POSIX says write() is safe in a signal handler, but the - * buffered I/O is not. - */ - write(fileno(NC_OUTPUT), &tmp, 1); - } else { - putc(ch, NC_OUTPUT); - } - return OK; -} - -NCURSES_EXPORT(int) -putp(const char *string) -{ - return tputs(string, 1, _nc_outch); -} - -NCURSES_EXPORT(int) -tputs(const char *string, int affcnt, int (*outc) (int)) -{ - bool always_delay; - bool normal_delay; - int number; -#if BSD_TPUTS - int trailpad; -#endif /* BSD_TPUTS */ - -#ifdef TRACE - char addrbuf[32]; - - if (_nc_tracing & TRACE_TPUTS) { - if (outc == _nc_outch) - (void) strcpy(addrbuf, "_nc_outch"); - else - (void) sprintf(addrbuf, "%p", outc); - if (_nc_tputs_trace) { - _tracef("tputs(%s = %s, %d, %s) called", _nc_tputs_trace, - _nc_visbuf(string), affcnt, addrbuf); - } else { - _tracef("tputs(%s, %d, %s) called", _nc_visbuf(string), affcnt, addrbuf); - } - _nc_tputs_trace = (char *) NULL; - } -#endif /* TRACE */ - - if (!VALID_STRING(string)) - return ERR; - - if (cur_term == 0) { - always_delay = FALSE; - normal_delay = TRUE; - } else { - always_delay = (string == bell) || (string == flash_screen); - normal_delay = - !xon_xoff - && padding_baud_rate -#if NCURSES_NO_PADDING - && (SP == 0 || !(SP->_no_padding)) -#endif - && (_nc_baudrate(ospeed) >= padding_baud_rate); - } - -#if BSD_TPUTS - /* - * This ugly kluge deals with the fact that some ancient BSD programs - * (like nethack) actually do the likes of tputs("50") to get delays. - */ - trailpad = 0; - if (isdigit(UChar(*string))) { - while (isdigit(UChar(*string))) { - trailpad = trailpad * 10 + (*string - '0'); - string++; - } - trailpad *= 10; - if (*string == '.') { - string++; - if (isdigit(UChar(*string))) { - trailpad += (*string - '0'); - string++; - } - while (isdigit(UChar(*string))) - string++; - } - - if (*string == '*') { - trailpad *= affcnt; - string++; - } - } -#endif /* BSD_TPUTS */ - - my_outch = outc; /* redirect delay_output() */ - while (*string) { - if (*string != '$') - (*outc) (*string); - else { - string++; - if (*string != '<') { - (*outc) ('$'); - if (*string) - (*outc) (*string); - } else { - bool mandatory; - - string++; - if ((!isdigit(UChar(*string)) && *string != '.') - || !strchr(string, '>')) { - (*outc) ('$'); - (*outc) ('<'); - continue; - } - - number = 0; - while (isdigit(UChar(*string))) { - number = number * 10 + (*string - '0'); - string++; - } - number *= 10; - if (*string == '.') { - string++; - if (isdigit(UChar(*string))) { - number += (*string - '0'); - string++; - } - while (isdigit(UChar(*string))) - string++; - } - - mandatory = FALSE; - while (*string == '*' || *string == '/') { - if (*string == '*') { - number *= affcnt; - string++; - } else { /* if (*string == '/') */ - mandatory = TRUE; - string++; - } - } - - if (number > 0 - && (always_delay - || normal_delay - || mandatory)) - delay_output(number / 10); - - } /* endelse (*string == '<') */ - } /* endelse (*string == '$') */ - - if (*string == '\0') - break; - - string++; - } - -#if BSD_TPUTS - /* - * Emit any BSD-style prefix padding that we've accumulated now. - */ - if (trailpad > 0 - && (always_delay || normal_delay)) - delay_output(trailpad / 10); -#endif /* BSD_TPUTS */ - - my_outch = _nc_outch; - return OK; -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/lib_ttyflags.c b/Build/source/libs/ncurses/ncurses/tinfo/lib_ttyflags.c deleted file mode 100644 index ab9c004536a..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/lib_ttyflags.c +++ /dev/null @@ -1,178 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/* - * def_prog_mode() - * def_shell_mode() - * reset_prog_mode() - * reset_shell_mode() - * savetty() - * resetty() - */ - -#include -#include /* cur_term */ - -MODULE_ID("$Id: lib_ttyflags.c,v 1.11 2003/05/17 23:50:37 tom Exp $") - -#undef tabs - -#ifdef TAB3 -# define tabs TAB3 -#else -# ifdef XTABS -# define tabs XTABS -# else -# ifdef OXTABS -# define tabs OXTABS -# else -# define tabs 0 -# endif -# endif -#endif - -NCURSES_EXPORT(int) -_nc_get_tty_mode(TTY * buf) -{ - if (cur_term == 0 - || GET_TTY(cur_term->Filedes, buf) != 0) { - memset(buf, 0, sizeof(*buf)); - return (ERR); - } - TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s", - cur_term->Filedes, _nc_trace_ttymode(buf))); - return (OK); -} - -NCURSES_EXPORT(int) -_nc_set_tty_mode(TTY * buf) -{ - if (cur_term == 0 - || SET_TTY(cur_term->Filedes, buf) != 0) { - if ((errno == ENOTTY) && (SP != 0)) - SP->_notty = TRUE; - return (ERR); - } - TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s", - cur_term->Filedes, _nc_trace_ttymode(buf))); - return (OK); -} - -NCURSES_EXPORT(int) -def_shell_mode(void) -{ - T((T_CALLED("def_shell_mode()"))); - - /* - * Turn off the XTABS bit in the tty structure if it was on. If XTABS - * was on, remove the tab and backtab capabilities. - */ - - if (_nc_get_tty_mode(&cur_term->Ottyb) != OK) - returnCode(ERR); -#ifdef TERMIOS - if (cur_term->Ottyb.c_oflag & tabs) - tab = back_tab = NULL; -#else - if (cur_term->Ottyb.sg_flags & XTABS) - tab = back_tab = NULL; -#endif - returnCode(OK); -} - -NCURSES_EXPORT(int) -def_prog_mode(void) -{ - T((T_CALLED("def_prog_mode()"))); - - if (_nc_get_tty_mode(&cur_term->Nttyb) != OK) - returnCode(ERR); -#ifdef TERMIOS - cur_term->Nttyb.c_oflag &= ~tabs; -#else - cur_term->Nttyb.sg_flags &= ~XTABS; -#endif - returnCode(OK); -} - -NCURSES_EXPORT(int) -reset_prog_mode(void) -{ - T((T_CALLED("reset_prog_mode()"))); - - if (cur_term != 0) { - if (_nc_set_tty_mode(&cur_term->Nttyb) == OK) { - if (SP) { - if (SP->_keypad_on) - _nc_keypad(TRUE); - NC_BUFFERED(TRUE); - } - returnCode(OK); - } - } - returnCode(ERR); -} - -NCURSES_EXPORT(int) -reset_shell_mode(void) -{ - T((T_CALLED("reset_shell_mode()"))); - - if (cur_term != 0) { - if (SP) { - _nc_keypad(FALSE); - _nc_flush(); - NC_BUFFERED(FALSE); - } - returnCode(_nc_set_tty_mode(&cur_term->Ottyb)); - } - returnCode(ERR); -} - -/* -** savetty() and resetty() -** -*/ - -static TTY buf; - -NCURSES_EXPORT(int) -savetty(void) -{ - T((T_CALLED("savetty()"))); - - returnCode(_nc_get_tty_mode(&buf)); -} - -NCURSES_EXPORT(int) -resetty(void) -{ - T((T_CALLED("resetty()"))); - - returnCode(_nc_set_tty_mode(&buf)); -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/make_keys.c b/Build/source/libs/ncurses/ncurses/tinfo/make_keys.c deleted file mode 100644 index 3c98da23e01..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/make_keys.c +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ - -/* - * This replaces an awk script which translated keys.list into keys.tries by - * making the output show the indices into the TERMTYPE Strings array. Doing - * it that way lets us cut down on the size of the init_keytry() function. - */ -#include - -MODULE_ID("$Id: make_keys.c,v 1.10 2000/12/10 02:55:08 tom Exp $") - -#include - -#define UNKNOWN (SIZEOF(strnames) + SIZEOF(strfnames)) - -static size_t -lookup(const char *name) -{ - size_t n; - bool found = FALSE; - for (n = 0; strnames[n] != 0; n++) { - if (!strcmp(name, strnames[n])) { - found = TRUE; - break; - } - } - if (!found) { - for (n = 0; strfnames[n] != 0; n++) { - if (!strcmp(name, strfnames[n])) { - found = TRUE; - break; - } - } - } - return found ? n : UNKNOWN; -} - -static void -make_keys(FILE * ifp, FILE * ofp) -{ - char buffer[BUFSIZ]; - char from[BUFSIZ]; - char to[BUFSIZ]; - int maxlen = 16; - - while (fgets(buffer, sizeof(buffer), ifp) != 0) { - if (*buffer == '#') - continue; - if (sscanf(buffer, "%s %s", to, from) == 2) { - int code = lookup(from); - if (code == UNKNOWN) - continue; - if ((int) strlen(from) > maxlen) - maxlen = strlen(from); - fprintf(ofp, "\t{ %4d, %-*.*s },\t/* %s */\n", - code, - maxlen, maxlen, - to, - from); - } - } -} - -static void -write_list(FILE * ofp, const char **list) -{ - while (*list != 0) - fprintf(ofp, "%s\n", *list++); -} - -int -main(int argc, char *argv[]) -{ - static const char *prefix[] = - { - "#ifndef NCU_KEYS_H", - "#define NCU_KEYS_H 1", - "", - "/* This file was generated by MAKE_KEYS */", - "", - "#if BROKEN_LINKER", - "static", - "#endif", - "struct tinfo_fkeys _nc_tinfo_fkeys[] = {", - 0 - }; - static const char *suffix[] = - { - "\t{ 0, 0} };", - "", - "#endif /* NCU_KEYS_H */", - 0 - }; - - write_list(stdout, prefix); - if (argc > 1) { - int n; - for (n = 1; n < argc; n++) { - FILE *fp = fopen(argv[n], "r"); - if (fp != 0) { - make_keys(fp, stdout); - fclose(fp); - } - } - } else { - make_keys(stdin, stdout); - } - write_list(stdout, suffix); - return EXIT_SUCCESS; -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/name_match.c b/Build/source/libs/ncurses/ncurses/tinfo/name_match.c deleted file mode 100644 index e51d0447602..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/name_match.c +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1999-2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1999 * - ****************************************************************************/ - -#include -#include -#include - -MODULE_ID("$Id: name_match.c,v 1.13 2004/04/17 22:11:21 tom Exp $") - -/* - * _nc_first_name(char *names) - * - * Extract the primary name from a compiled entry. - */ - -NCURSES_EXPORT(char *) -_nc_first_name(const char *const sp) -/* get the first name from the given name list */ -{ - static char *buf; - register unsigned n; - -#if NO_LEAKS - if (sp == 0) { - FreeAndNull(buf); /* for leak-testing */ - return 0; - } -#endif - - if (buf == 0) - buf = typeMalloc(char, MAX_NAME_SIZE + 1); - for (n = 0; n < MAX_NAME_SIZE; n++) { - if ((buf[n] = sp[n]) == '\0' - || (buf[n] == '|')) - break; - } - buf[n] = '\0'; - return (buf); -} - -/* - * int _nc_name_match(namelist, name, delim) - * - * Is the given name matched in namelist? - */ - -NCURSES_EXPORT(int) -_nc_name_match(const char *const namelst, const char *const name, const char *const delim) -{ - const char *s, *d, *t; - int code, found; - - if ((s = namelst) != 0) { - while (*s != '\0') { - for (d = name; *d != '\0'; d++) { - if (*s != *d) - break; - s++; - } - found = FALSE; - for (code = TRUE; *s != '\0'; code = FALSE, s++) { - for (t = delim; *t != '\0'; t++) { - if (*s == *t) { - found = TRUE; - break; - } - } - if (found) - break; - } - if (code && *d == '\0') - return code; - if (*s++ == 0) - break; - } - } - return FALSE; -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/parse_entry.c b/Build/source/libs/ncurses/ncurses/tinfo/parse_entry.c deleted file mode 100644 index 781a31b0185..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/parse_entry.c +++ /dev/null @@ -1,986 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-2004 * - ****************************************************************************/ - -/* - * parse_entry.c -- compile one terminfo or termcap entry - * - * Get an exact in-core representation of an entry. Don't - * try to resolve use or tc capabilities, that is someone - * else's job. Depends on the lexical analyzer to get tokens - * from the input stream. - */ - -#define __INTERNAL_CAPS_VISIBLE -#include - -#include -#include -#include - -MODULE_ID("$Id: parse_entry.c,v 1.61 2004/05/01 21:33:25 tom Exp $") - -#ifdef LINT -static short const parametrized[] = -{0}; -#else -#include -#endif - -static void postprocess_termcap(TERMTYPE *, bool); -static void postprocess_terminfo(TERMTYPE *); -static struct name_table_entry const *lookup_fullname(const char *name); - -#if NCURSES_XNAMES - -static struct name_table_entry const * -_nc_extend_names(ENTRY * entryp, char *name, int token_type) -{ - static struct name_table_entry temp; - TERMTYPE *tp = &(entryp->tterm); - unsigned offset = 0; - unsigned actual; - unsigned tindex; - unsigned first, last, n; - bool found; - - switch (token_type) { - case BOOLEAN: - first = 0; - last = tp->ext_Booleans; - offset = tp->ext_Booleans; - tindex = tp->num_Booleans; - break; - case NUMBER: - first = tp->ext_Booleans; - last = tp->ext_Numbers + first; - offset = tp->ext_Booleans + tp->ext_Numbers; - tindex = tp->num_Numbers; - break; - case STRING: - first = tp->ext_Booleans + tp->ext_Numbers; - last = tp->ext_Strings + first; - offset = tp->ext_Booleans + tp->ext_Numbers + tp->ext_Strings; - tindex = tp->num_Strings; - break; - case CANCEL: - actual = NUM_EXT_NAMES(tp); - for (n = 0; n < actual; n++) { - if (!strcmp(name, tp->ext_Names[n])) { - if (n > (unsigned) (tp->ext_Booleans + tp->ext_Numbers)) { - token_type = STRING; - } else if (n > tp->ext_Booleans) { - token_type = NUMBER; - } else { - token_type = BOOLEAN; - } - return _nc_extend_names(entryp, name, token_type); - } - } - /* Well, we are given a cancel for a name that we don't recognize */ - return _nc_extend_names(entryp, name, STRING); - default: - return 0; - } - - /* Adjust the 'offset' (insertion-point) to keep the lists of extended - * names sorted. - */ - for (n = first, found = FALSE; n < last; n++) { - int cmp = strcmp(tp->ext_Names[n], name); - if (cmp == 0) - found = TRUE; - if (cmp >= 0) { - offset = n; - tindex = n - first; - switch (token_type) { - case BOOLEAN: - tindex += BOOLCOUNT; - break; - case NUMBER: - tindex += NUMCOUNT; - break; - case STRING: - tindex += STRCOUNT; - break; - } - break; - } - } - if (!found) { - switch (token_type) { - case BOOLEAN: - tp->ext_Booleans += 1; - tp->num_Booleans += 1; - tp->Booleans = typeRealloc(char, tp->num_Booleans, tp->Booleans); - for (last = tp->num_Booleans - 1; last > tindex; last--) - tp->Booleans[last] = tp->Booleans[last - 1]; - break; - case NUMBER: - tp->ext_Numbers += 1; - tp->num_Numbers += 1; - tp->Numbers = typeRealloc(short, tp->num_Numbers, tp->Numbers); - for (last = tp->num_Numbers - 1; last > tindex; last--) - tp->Numbers[last] = tp->Numbers[last - 1]; - break; - case STRING: - tp->ext_Strings += 1; - tp->num_Strings += 1; - tp->Strings = typeRealloc(char *, tp->num_Strings, tp->Strings); - for (last = tp->num_Strings - 1; last > tindex; last--) - tp->Strings[last] = tp->Strings[last - 1]; - break; - } - actual = NUM_EXT_NAMES(tp); - tp->ext_Names = typeRealloc(char *, actual, tp->ext_Names); - while (--actual > offset) - tp->ext_Names[actual] = tp->ext_Names[actual - 1]; - tp->ext_Names[offset] = _nc_save_str(name); - } - - temp.nte_name = tp->ext_Names[offset]; - temp.nte_type = token_type; - temp.nte_index = tindex; - temp.nte_link = -1; - - return &temp; -} -#endif /* NCURSES_XNAMES */ - -/* - * int - * _nc_parse_entry(entry, literal, silent) - * - * Compile one entry. Doesn't try to resolve use or tc capabilities. - * - * found-forward-use = FALSE - * re-initialise internal arrays - * get_token(); - * if the token was not a name in column 1, complain and die - * save names in entry's string table - * while (get_token() is not EOF and not NAMES) - * check for existence and type-correctness - * enter cap into structure - * if STRING - * save string in entry's string table - * push back token - */ - -#define BAD_TC_USAGE if (!bad_tc_usage) \ - { bad_tc_usage = TRUE; \ - _nc_warning("Legacy termcap allows only a trailing tc= clause"); } - -NCURSES_EXPORT(int) -_nc_parse_entry(struct entry *entryp, int literal, bool silent) -{ - int token_type; - struct name_table_entry const *entry_ptr; - char *ptr, *base; - bool bad_tc_usage = FALSE; - - token_type = _nc_get_token(silent); - - if (token_type == EOF) - return (EOF); - if (token_type != NAMES) - _nc_err_abort("Entry does not start with terminal names in column one"); - - _nc_init_entry(&entryp->tterm); - - entryp->cstart = _nc_comment_start; - entryp->cend = _nc_comment_end; - entryp->startline = _nc_start_line; - DEBUG(2, ("Comment range is %ld to %ld", entryp->cstart, entryp->cend)); - - /* - * Strip off the 2-character termcap name, if present. Originally termcap - * used that as an indexing aid. We can retain 2-character terminfo names, - * but note that they would be lost if we translate to/from termcap. This - * feature is supposedly obsolete since "newer" BSD implementations do not - * use it; however our reference for this feature is SunOS 4.x, which - * implemented it. Note that the resulting terminal type was never the - * 2-character name, but was instead the first alias after that. - */ - ptr = _nc_curr_token.tk_name; - if (_nc_syntax == SYN_TERMCAP -#if NCURSES_XNAMES - && !_nc_user_definable -#endif - ) { - if (ptr[2] == '|') { - ptr += 3; - _nc_curr_token.tk_name[2] = '\0'; - } - } - - entryp->tterm.str_table = entryp->tterm.term_names = _nc_save_str(ptr); - - DEBUG(1, ("Starting '%s'", ptr)); - - /* - * We do this because the one-token lookahead in the parse loop - * results in the terminal type getting prematurely set to correspond - * to that of the next entry. - */ - _nc_set_type(_nc_first_name(entryp->tterm.term_names)); - - /* check for overly-long names and aliases */ - for (base = entryp->tterm.term_names; (ptr = strchr(base, '|')) != 0; - base = ptr + 1) { - if (ptr - base > MAX_ALIAS) { - _nc_warning("%s `%.*s' may be too long", - (base == entryp->tterm.term_names) - ? "primary name" - : "alias", - (int) (ptr - base), base); - } - } - - entryp->nuses = 0; - - for (token_type = _nc_get_token(silent); - token_type != EOF && token_type != NAMES; - token_type = _nc_get_token(silent)) { - bool is_use = (strcmp(_nc_curr_token.tk_name, "use") == 0); - bool is_tc = !is_use && (strcmp(_nc_curr_token.tk_name, "tc") == 0); - if (is_use || is_tc) { - entryp->uses[entryp->nuses].name = _nc_save_str(_nc_curr_token.tk_valstring); - entryp->uses[entryp->nuses].line = _nc_curr_line; - entryp->nuses++; - if (entryp->nuses > 1 && is_tc) { - BAD_TC_USAGE - } - } else { - /* normal token lookup */ - entry_ptr = _nc_find_entry(_nc_curr_token.tk_name, - _nc_syntax ? _nc_cap_hash_table : _nc_info_hash_table); - - /* - * Our kluge to handle aliasing. The reason it's done - * this ugly way, with a linear search, is so the hashing - * machinery doesn't have to be made really complicated - * (also we get better warnings this way). No point in - * making this case fast, aliased caps aren't common now - * and will get rarer. - */ - if (entry_ptr == NOTFOUND) { - const struct alias *ap; - - if (_nc_syntax == SYN_TERMCAP) { - if (entryp->nuses != 0) { - BAD_TC_USAGE - } - for (ap = _nc_capalias_table; ap->from; ap++) - if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) { - if (ap->to == (char *) 0) { - _nc_warning("%s (%s termcap extension) ignored", - ap->from, ap->source); - goto nexttok; - } - - entry_ptr = _nc_find_entry(ap->to, _nc_cap_hash_table); - if (entry_ptr && !silent) - _nc_warning("%s (%s termcap extension) aliased to %s", - ap->from, ap->source, ap->to); - break; - } - } else { /* if (_nc_syntax == SYN_TERMINFO) */ - for (ap = _nc_infoalias_table; ap->from; ap++) - if (strcmp(ap->from, _nc_curr_token.tk_name) == 0) { - if (ap->to == (char *) 0) { - _nc_warning("%s (%s terminfo extension) ignored", - ap->from, ap->source); - goto nexttok; - } - - entry_ptr = _nc_find_entry(ap->to, _nc_info_hash_table); - if (entry_ptr && !silent) - _nc_warning("%s (%s terminfo extension) aliased to %s", - ap->from, ap->source, ap->to); - break; - } - - if (entry_ptr == NOTFOUND) { - entry_ptr = lookup_fullname(_nc_curr_token.tk_name); - } - } - } -#if NCURSES_XNAMES - /* - * If we have extended-names active, we will automatically - * define a name based on its context. - */ - if (entry_ptr == NOTFOUND - && _nc_user_definable - && (entry_ptr = _nc_extend_names(entryp, - _nc_curr_token.tk_name, - token_type)) != 0) { - if (_nc_tracing >= DEBUG_LEVEL(1)) - _nc_warning("extended capability '%s'", _nc_curr_token.tk_name); - } -#endif /* NCURSES_XNAMES */ - - /* can't find this cap name, not even as an alias */ - if (entry_ptr == NOTFOUND) { - if (!silent) - _nc_warning("unknown capability '%s'", - _nc_curr_token.tk_name); - continue; - } - - /* deal with bad type/value combinations. */ - if (token_type != CANCEL && entry_ptr->nte_type != token_type) { - /* - * Nasty special cases here handle situations in which type - * information can resolve name clashes. Normal lookup - * finds the last instance in the capability table of a - * given name, regardless of type. find_type_entry looks - * for a first matching instance with given type. So as - * long as all ambiguous names occur in pairs of distinct - * type, this will do the job. - */ - - /* tell max_attributes from arrow_key_map */ - if (token_type == NUMBER && !strcmp("ma", _nc_curr_token.tk_name)) - entry_ptr = _nc_find_type_entry("ma", NUMBER, - _nc_get_table(_nc_syntax - != 0)); - - /* map terminfo's string MT to MT */ - else if (token_type == STRING && !strcmp("MT", _nc_curr_token.tk_name)) - entry_ptr = _nc_find_type_entry("MT", STRING, - _nc_get_table(_nc_syntax - != 0)); - - /* treat strings without following "=" as empty strings */ - else if (token_type == BOOLEAN && entry_ptr->nte_type == STRING) - token_type = STRING; - /* we couldn't recover; skip this token */ - else { - if (!silent) { - const char *type_name; - switch (entry_ptr->nte_type) { - case BOOLEAN: - type_name = "boolean"; - break; - case STRING: - type_name = "string"; - break; - case NUMBER: - type_name = "numeric"; - break; - default: - type_name = "unknown"; - break; - } - _nc_warning("wrong type used for %s capability '%s'", - type_name, _nc_curr_token.tk_name); - } - continue; - } - } - - /* now we know that the type/value combination is OK */ - switch (token_type) { - case CANCEL: - switch (entry_ptr->nte_type) { - case BOOLEAN: - entryp->tterm.Booleans[entry_ptr->nte_index] = CANCELLED_BOOLEAN; - break; - - case NUMBER: - entryp->tterm.Numbers[entry_ptr->nte_index] = CANCELLED_NUMERIC; - break; - - case STRING: - entryp->tterm.Strings[entry_ptr->nte_index] = CANCELLED_STRING; - break; - } - break; - - case BOOLEAN: - entryp->tterm.Booleans[entry_ptr->nte_index] = TRUE; - break; - - case NUMBER: - entryp->tterm.Numbers[entry_ptr->nte_index] = - _nc_curr_token.tk_valnumber; - break; - - case STRING: - ptr = _nc_curr_token.tk_valstring; - if (_nc_syntax == SYN_TERMCAP) - ptr = _nc_captoinfo(_nc_curr_token.tk_name, - ptr, - parametrized[entry_ptr->nte_index]); - entryp->tterm.Strings[entry_ptr->nte_index] = _nc_save_str(ptr); - break; - - default: - if (!silent) - _nc_warning("unknown token type"); - _nc_panic_mode((_nc_syntax == SYN_TERMCAP) ? ':' : ','); - continue; - } - } /* end else cur_token.name != "use" */ - nexttok: - continue; /* cannot have a label w/o statement */ - } /* endwhile (not EOF and not NAMES) */ - - _nc_push_token(token_type); - _nc_set_type(_nc_first_name(entryp->tterm.term_names)); - - /* - * Try to deduce as much as possible from extension capabilities - * (this includes obsolete BSD capabilities). Sigh...it would be more - * space-efficient to call this after use resolution, but it has - * to be done before entry allocation is wrapped up. - */ - if (!literal) { - if (_nc_syntax == SYN_TERMCAP) { - bool has_base_entry = FALSE; - int i; - - /* - * Don't insert defaults if this is a `+' entry meant only - * for inclusion in other entries (not sure termcap ever - * had these, actually). - */ - if (strchr(entryp->tterm.term_names, '+')) - has_base_entry = TRUE; - else - /* - * Otherwise, look for a base entry that will already - * have picked up defaults via translation. - */ - for (i = 0; i < entryp->nuses; i++) - if (!strchr((char *) entryp->uses[i].name, '+')) - has_base_entry = TRUE; - - postprocess_termcap(&entryp->tterm, has_base_entry); - } else - postprocess_terminfo(&entryp->tterm); - } - _nc_wrap_entry(entryp, FALSE); - - return (OK); -} - -NCURSES_EXPORT(int) -_nc_capcmp(const char *s, const char *t) -/* compare two string capabilities, stripping out padding */ -{ - if (!s && !t) - return (0); - else if (!s || !t) - return (1); - - for (;;) { - if (s[0] == '$' && s[1] == '<') { - for (s += 2;; s++) - if (!(isdigit(UChar(*s)) - || *s == '.' - || *s == '*' - || *s == '/' - || *s == '>')) - break; - } - - if (t[0] == '$' && t[1] == '<') { - for (t += 2;; t++) - if (!(isdigit(UChar(*t)) - || *t == '.' - || *t == '*' - || *t == '/' - || *t == '>')) - break; - } - - /* we've now pushed s and t past any padding they were pointing at */ - - if (*s == '\0' && *t == '\0') - return (0); - - if (*s != *t) - return (*t - *s); - - /* else *s == *t but one is not NUL, so continue */ - s++, t++; - } -} - -static void -append_acs0(string_desc * dst, int code, int src) -{ - if (src != 0) { - char temp[3]; - temp[0] = code; - temp[1] = src; - temp[2] = 0; - _nc_safe_strcat(dst, temp); - } -} - -static void -append_acs(string_desc * dst, int code, char *src) -{ - if (src != 0 && strlen(src) == 1) { - append_acs0(dst, code, *src); - } -} - -/* - * The ko capability, if present, consists of a comma-separated capability - * list. For each capability, we may assume there is a keycap that sends the - * string which is the value of that capability. - */ -typedef struct { - const char *from; - const char *to; -} assoc; -static assoc const ko_xlate[] = -{ - {"al", "kil1"}, /* insert line key -> KEY_IL */ - {"bt", "kcbt"}, /* back tab -> KEY_BTAB */ - {"cd", "ked"}, /* clear-to-eos key -> KEY_EOL */ - {"ce", "kel"}, /* clear-to-eol key -> KEY_EOS */ - {"cl", "kclr"}, /* clear key -> KEY_CLEAR */ - {"ct", "tbc"}, /* clear all tabs -> KEY_CATAB */ - {"dc", "kdch1"}, /* delete char -> KEY_DC */ - {"dl", "kdl1"}, /* delete line -> KEY_DL */ - {"do", "kcud1"}, /* down key -> KEY_DOWN */ - {"ei", "krmir"}, /* exit insert key -> KEY_EIC */ - {"ho", "khome"}, /* home key -> KEY_HOME */ - {"ic", "kich1"}, /* insert char key -> KEY_IC */ - {"im", "kIC"}, /* insert-mode key -> KEY_SIC */ - {"le", "kcub1"}, /* le key -> KEY_LEFT */ - {"nd", "kcuf1"}, /* nd key -> KEY_RIGHT */ - {"nl", "kent"}, /* new line key -> KEY_ENTER */ - {"st", "khts"}, /* set-tab key -> KEY_STAB */ - {"ta", CANCELLED_STRING}, - {"up", "kcuu1"}, /* up-arrow key -> KEY_UP */ - {(char *) 0, (char *) 0}, -}; - -/* - * This routine fills in string caps that either had defaults under - * termcap or can be manufactured from obsolete termcap capabilities. - * It was lifted from Ross Ridge's mytinfo package. - */ - -static const char C_CR[] = "\r"; -static const char C_LF[] = "\n"; -static const char C_BS[] = "\b"; -static const char C_HT[] = "\t"; - -/* - * Note that WANTED and PRESENT are not simple inverses! If a capability - * has been explicitly cancelled, it's not considered WANTED. - */ -#define WANTED(s) ((s) == ABSENT_STRING) -#define PRESENT(s) (((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING)) - -/* - * This bit of legerdemain turns all the terminfo variable names into - * references to locations in the arrays Booleans, Numbers, and Strings --- - * precisely what's needed. - */ - -#undef CUR -#define CUR tp-> - -static void -postprocess_termcap(TERMTYPE * tp, bool has_base) -{ - char buf[MAX_LINE * 2 + 2]; - string_desc result; - - /* - * TERMCAP DEFAULTS AND OBSOLETE-CAPABILITY TRANSLATIONS - * - * This first part of the code is the functional inverse of the - * fragment in capdefaults.c. - * ---------------------------------------------------------------------- - */ - - /* if there was a tc entry, assume we picked up defaults via that */ - if (!has_base) { - if (WANTED(init_3string) && termcap_init2) - init_3string = _nc_save_str(termcap_init2); - - if (WANTED(reset_2string) && termcap_reset) - reset_2string = _nc_save_str(termcap_reset); - - if (WANTED(carriage_return)) { - if (carriage_return_delay > 0) { - sprintf(buf, "%s$<%d>", C_CR, carriage_return_delay); - carriage_return = _nc_save_str(buf); - } else - carriage_return = _nc_save_str(C_CR); - } - if (WANTED(cursor_left)) { - if (backspace_delay > 0) { - sprintf(buf, "%s$<%d>", C_BS, backspace_delay); - cursor_left = _nc_save_str(buf); - } else if (backspaces_with_bs == 1) - cursor_left = _nc_save_str(C_BS); - else if (PRESENT(backspace_if_not_bs)) - cursor_left = backspace_if_not_bs; - } - /* vi doesn't use "do", but it does seems to use nl (or '\n') instead */ - if (WANTED(cursor_down)) { - if (PRESENT(linefeed_if_not_lf)) - cursor_down = linefeed_if_not_lf; - else if (linefeed_is_newline != 1) { - if (new_line_delay > 0) { - sprintf(buf, "%s$<%d>", C_LF, new_line_delay); - cursor_down = _nc_save_str(buf); - } else - cursor_down = _nc_save_str(C_LF); - } - } - if (WANTED(scroll_forward) && crt_no_scrolling != 1) { - if (PRESENT(linefeed_if_not_lf)) - cursor_down = linefeed_if_not_lf; - else if (linefeed_is_newline != 1) { - if (new_line_delay > 0) { - sprintf(buf, "%s$<%d>", C_LF, new_line_delay); - scroll_forward = _nc_save_str(buf); - } else - scroll_forward = _nc_save_str(C_LF); - } - } - if (WANTED(newline)) { - if (linefeed_is_newline == 1) { - if (new_line_delay > 0) { - sprintf(buf, "%s$<%d>", C_LF, new_line_delay); - newline = _nc_save_str(buf); - } else - newline = _nc_save_str(C_LF); - } else if (PRESENT(carriage_return) && PRESENT(scroll_forward)) { - _nc_str_init(&result, buf, sizeof(buf)); - if (_nc_safe_strcat(&result, carriage_return) - && _nc_safe_strcat(&result, scroll_forward)) - newline = _nc_save_str(buf); - } else if (PRESENT(carriage_return) && PRESENT(cursor_down)) { - _nc_str_init(&result, buf, sizeof(buf)); - if (_nc_safe_strcat(&result, carriage_return) - && _nc_safe_strcat(&result, cursor_down)) - newline = _nc_save_str(buf); - } - } - } - - /* - * Inverse of capdefaults.c code ends here. - * ---------------------------------------------------------------------- - * - * TERMCAP-TO TERMINFO MAPPINGS FOR SOURCE TRANSLATION - * - * These translations will *not* be inverted by tgetent(). - */ - - if (!has_base) { - /* - * We wait until now to decide if we've got a working cr because even - * one that doesn't work can be used for newline. Unfortunately the - * space allocated for it is wasted. - */ - if (return_does_clr_eol == 1 || no_correctly_working_cr == 1) - carriage_return = ABSENT_STRING; - - /* - * Supposedly most termcap entries have ta now and '\t' is no longer a - * default, but it doesn't seem to be true... - */ - if (WANTED(tab)) { - if (horizontal_tab_delay > 0) { - sprintf(buf, "%s$<%d>", C_HT, horizontal_tab_delay); - tab = _nc_save_str(buf); - } else - tab = _nc_save_str(C_HT); - } - if (init_tabs == ABSENT_NUMERIC && has_hardware_tabs == TRUE) - init_tabs = 8; - - /* - * Assume we can beep with ^G unless we're given bl@. - */ - if (WANTED(bell)) - bell = _nc_save_str("\007"); - } - - /* - * Translate the old termcap :pt: capability to it#8 + ht=\t - */ - if (has_hardware_tabs == TRUE) { - if (init_tabs != 8 && init_tabs != ABSENT_NUMERIC) - _nc_warning("hardware tabs with a width other than 8: %d", init_tabs); - else { - if (tab && _nc_capcmp(tab, C_HT)) - _nc_warning("hardware tabs with a non-^I tab string %s", - _nc_visbuf(tab)); - else { - if (WANTED(tab)) - tab = _nc_save_str(C_HT); - init_tabs = 8; - } - } - } - /* - * Now translate the ko capability, if there is one. This - * isn't from mytinfo... - */ - if (PRESENT(other_non_function_keys)) { - char *base = other_non_function_keys; - char *bp, *cp, *dp; - struct name_table_entry const *from_ptr; - struct name_table_entry const *to_ptr; - assoc const *ap; - char buf2[MAX_TERMINFO_LENGTH]; - bool foundim; - - /* we're going to use this for a special case later */ - dp = strchr(other_non_function_keys, 'i'); - foundim = (dp != 0) && (dp[1] == 'm'); - - /* look at each comma-separated capability in the ko string... */ - for (base = other_non_function_keys; - (cp = strchr(base, ',')) != 0; - base = cp + 1) { - size_t len = cp - base; - - for (ap = ko_xlate; ap->from; ap++) - if (len == strlen(ap->from) - && strncmp(ap->from, base, len) == 0) - break; - if (!ap->to) { - _nc_warning("unknown capability `%.*s' in ko string", - (int) len, base); - continue; - } else if (ap->to == CANCELLED_STRING) /* ignore it */ - continue; - - /* now we know we found a match in ko_table, so... */ - - from_ptr = _nc_find_entry(ap->from, _nc_cap_hash_table); - to_ptr = _nc_find_entry(ap->to, _nc_info_hash_table); - - if (!from_ptr || !to_ptr) /* should never happen! */ - _nc_err_abort("ko translation table is invalid, I give up"); - - if (WANTED(tp->Strings[from_ptr->nte_index])) { - _nc_warning("no value for ko capability %s", ap->from); - continue; - } - - if (tp->Strings[to_ptr->nte_index]) { - /* There's no point in warning about it if it's the same - * string; that's just an inefficiency. - */ - if (strcmp( - tp->Strings[from_ptr->nte_index], - tp->Strings[to_ptr->nte_index]) != 0) - _nc_warning("%s (%s) already has an explicit value %s, ignoring ko", - ap->to, ap->from, - _nc_visbuf(tp->Strings[to_ptr->nte_index])); - continue; - } - - /* - * The magic moment -- copy the mapped key string over, - * stripping out padding. - */ - for (dp = buf2, bp = tp->Strings[from_ptr->nte_index]; *bp; bp++) { - if (bp[0] == '$' && bp[1] == '<') { - while (*bp && *bp != '>') { - ++bp; - } - } else - *dp++ = *bp; - } - *dp++ = '\0'; - - tp->Strings[to_ptr->nte_index] = _nc_save_str(buf2); - } - - /* - * Note: ko=im and ko=ic both want to grab the `Insert' - * keycap. There's a kich1 but no ksmir, so the ic capability - * got mapped to kich1 and im to kIC to avoid a collision. - * If the description has im but not ic, hack kIC back to kich1. - */ - if (foundim && WANTED(key_ic) && key_sic) { - key_ic = key_sic; - key_sic = ABSENT_STRING; - } - } - - if (!has_base) { - if (!hard_copy) { - if (WANTED(key_backspace)) - key_backspace = _nc_save_str(C_BS); - if (WANTED(key_left)) - key_left = _nc_save_str(C_BS); - if (WANTED(key_down)) - key_down = _nc_save_str(C_LF); - } - } - - /* - * Translate XENIX forms characters. - */ - if (PRESENT(acs_ulcorner) || - PRESENT(acs_llcorner) || - PRESENT(acs_urcorner) || - PRESENT(acs_lrcorner) || - PRESENT(acs_ltee) || - PRESENT(acs_rtee) || - PRESENT(acs_btee) || - PRESENT(acs_ttee) || - PRESENT(acs_hline) || - PRESENT(acs_vline) || - PRESENT(acs_plus)) { - char buf2[MAX_TERMCAP_LENGTH]; - - _nc_str_init(&result, buf2, sizeof(buf2)); - _nc_safe_strcat(&result, acs_chars); - - append_acs(&result, 'j', acs_lrcorner); - append_acs(&result, 'k', acs_urcorner); - append_acs(&result, 'l', acs_ulcorner); - append_acs(&result, 'm', acs_llcorner); - append_acs(&result, 'n', acs_plus); - append_acs(&result, 'q', acs_hline); - append_acs(&result, 't', acs_ltee); - append_acs(&result, 'u', acs_rtee); - append_acs(&result, 'v', acs_btee); - append_acs(&result, 'w', acs_ttee); - append_acs(&result, 'x', acs_vline); - - if (buf2[0]) { - acs_chars = _nc_save_str(buf2); - _nc_warning("acsc string synthesized from XENIX capabilities"); - } - } else if (acs_chars == 0 - && enter_alt_charset_mode != 0 - && exit_alt_charset_mode != 0) { - acs_chars = _nc_save_str(VT_ACSC); - } -} - -static void -postprocess_terminfo(TERMTYPE * tp) -{ - /* - * TERMINFO-TO-TERMINFO MAPPINGS FOR SOURCE TRANSLATION - * ---------------------------------------------------------------------- - */ - - /* - * Translate AIX forms characters. - */ - if (PRESENT(box_chars_1)) { - char buf2[MAX_TERMCAP_LENGTH]; - string_desc result; - - _nc_str_init(&result, buf2, sizeof(buf2)); - _nc_safe_strcat(&result, acs_chars); - - append_acs0(&result, 'l', box_chars_1[0]); /* ACS_ULCORNER */ - append_acs0(&result, 'q', box_chars_1[1]); /* ACS_HLINE */ - append_acs0(&result, 'k', box_chars_1[2]); /* ACS_URCORNER */ - append_acs0(&result, 'x', box_chars_1[3]); /* ACS_VLINE */ - append_acs0(&result, 'j', box_chars_1[4]); /* ACS_LRCORNER */ - append_acs0(&result, 'm', box_chars_1[5]); /* ACS_LLCORNER */ - append_acs0(&result, 'w', box_chars_1[6]); /* ACS_TTEE */ - append_acs0(&result, 'u', box_chars_1[7]); /* ACS_RTEE */ - append_acs0(&result, 'v', box_chars_1[8]); /* ACS_BTEE */ - append_acs0(&result, 't', box_chars_1[9]); /* ACS_LTEE */ - append_acs0(&result, 'n', box_chars_1[10]); /* ACS_PLUS */ - - if (buf2[0]) { - acs_chars = _nc_save_str(buf2); - _nc_warning("acsc string synthesized from AIX capabilities"); - box_chars_1 = ABSENT_STRING; - } - } - /* - * ---------------------------------------------------------------------- - */ -} - -/* - * Do a linear search through the terminfo tables to find a given full-name. - * We don't expect to do this often, so there's no hashing function. - * - * In effect, this scans through the 3 lists of full-names, and looks them - * up in _nc_info_table, which is organized so that the nte_index fields are - * sorted, but the nte_type fields are not necessarily grouped together. - */ -static struct name_table_entry const * -lookup_fullname(const char *find) -{ - int state = -1; - - for (;;) { - int count = 0; - NCURSES_CONST char *const *names; - - switch (++state) { - case BOOLEAN: - names = boolfnames; - break; - case STRING: - names = strfnames; - break; - case NUMBER: - names = numfnames; - break; - default: - return NOTFOUND; - } - - for (count = 0; names[count] != 0; count++) { - if (!strcmp(names[count], find)) { - struct name_table_entry const *entry_ptr = _nc_get_table(FALSE); - while (entry_ptr->nte_type != state - || entry_ptr->nte_index != count) - entry_ptr++; - return entry_ptr; - } - } - } -} - -/* parse_entry.c ends here */ diff --git a/Build/source/libs/ncurses/ncurses/tinfo/read_entry.c b/Build/source/libs/ncurses/ncurses/tinfo/read_entry.c deleted file mode 100644 index d237d005c44..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/read_entry.c +++ /dev/null @@ -1,517 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey * - ****************************************************************************/ - -/* - * read_entry.c -- Routine for reading in a compiled terminfo file - * - */ - -#include - -#include -#include - -MODULE_ID("$Id: read_entry.c,v 1.80 2004/09/25 23:00:25 tom Exp $") - -#if !HAVE_TELL -#define tell(fd) lseek(fd, 0, SEEK_CUR) /* lseek() is POSIX, but not tell() */ -#endif - -#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts)) - -/* - * int - * _nc_read_file_entry(filename, ptr) - * - * Read the compiled terminfo entry in the given file into the - * structure pointed to by ptr, allocating space for the string - * table. - */ - -#undef BYTE -#define BYTE(p,n) (unsigned char)((p)[n]) - -#define IS_NEG1(p) ((BYTE(p,0) == 0377) && (BYTE(p,1) == 0377)) -#define IS_NEG2(p) ((BYTE(p,0) == 0376) && (BYTE(p,1) == 0377)) -#define LOW_MSB(p) (BYTE(p,0) + 256*BYTE(p,1)) - -static bool have_tic_directory = FALSE; -static bool keep_tic_directory = FALSE; - -/* - * Record the "official" location of the terminfo directory, according to - * the place where we're writing to, or the normal default, if not. - */ -NCURSES_EXPORT(const char *) -_nc_tic_dir(const char *path) -{ - static const char *result = TERMINFO; - - if (!keep_tic_directory) { - if (path != 0) { - result = path; - have_tic_directory = TRUE; - } else if (!have_tic_directory && use_terminfo_vars()) { - char *envp; - if ((envp = getenv("TERMINFO")) != 0) - return _nc_tic_dir(envp); - } - } - return result; -} - -/* - * Special fix to prevent the terminfo directory from being moved after tic - * has chdir'd to it. If we let it be changed, then if $TERMINFO has a - * relative path, we'll lose track of the actual directory. - */ -NCURSES_EXPORT(void) -_nc_keep_tic_dir(const char *path) -{ - _nc_tic_dir(path); - keep_tic_directory = TRUE; -} - -static void -convert_shorts(char *buf, short *Numbers, int count) -{ - int i; - for (i = 0; i < count; i++) { - if (IS_NEG1(buf + 2 * i)) - Numbers[i] = ABSENT_NUMERIC; - else if (IS_NEG2(buf + 2 * i)) - Numbers[i] = CANCELLED_NUMERIC; - else - Numbers[i] = LOW_MSB(buf + 2 * i); - TR(TRACE_DATABASE, ("get Numbers[%d]=%d", i, Numbers[i])); - } -} - -static void -convert_strings(char *buf, char **Strings, int count, int size, char *table) -{ - int i; - char *p; - - for (i = 0; i < count; i++) { - if (IS_NEG1(buf + 2 * i)) { - Strings[i] = ABSENT_STRING; - } else if (IS_NEG2(buf + 2 * i)) { - Strings[i] = CANCELLED_STRING; - } else if (LOW_MSB(buf + 2 * i) > size) { - Strings[i] = ABSENT_STRING; - } else { - Strings[i] = (LOW_MSB(buf + 2 * i) + table); - TR(TRACE_DATABASE, ("Strings[%d] = %s", i, _nc_visbuf(Strings[i]))); - } - - /* make sure all strings are NUL terminated */ - if (VALID_STRING(Strings[i])) { - for (p = Strings[i]; p <= table + size; p++) - if (*p == '\0') - break; - /* if there is no NUL, ignore the string */ - if (p > table + size) - Strings[i] = ABSENT_STRING; - } - } -} - -#define read_shorts(fd, buf, count) \ - (read(fd, buf, (unsigned) (count)*2) == (int) (count)*2) - -#define even_boundary(value) \ - if ((value) % 2 != 0) read(fd, buf, 1) - -static int -read_termtype(int fd, TERMTYPE *ptr) -/* return 1 if read, 0 if not found or garbled */ -{ - int name_size, bool_count, num_count, str_count, str_size; - int i; - char buf[MAX_ENTRY_SIZE + 1]; - unsigned want, have; - - TR(TRACE_DATABASE, ("READ termtype header @%ld", (long) tell(fd))); - - memset(ptr, 0, sizeof(*ptr)); - - /* grab the header */ - if (!read_shorts(fd, buf, 6) - || LOW_MSB(buf) != MAGIC) { - return (0); - } - - name_size = LOW_MSB(buf + 2); - bool_count = LOW_MSB(buf + 4); - num_count = LOW_MSB(buf + 6); - str_count = LOW_MSB(buf + 8); - str_size = LOW_MSB(buf + 10); - - TR(TRACE_DATABASE, - ("TERMTYPE name_size=%d, bool=%d/%d, num=%d/%d str=%d/%d(%d)", - name_size, bool_count, BOOLCOUNT, num_count, NUMCOUNT, - str_count, STRCOUNT, str_size)); - if (name_size < 0 - || bool_count < 0 - || num_count < 0 - || str_count < 0 - || str_size < 0) { - return (0); - } - - if (str_size) { - /* try to allocate space for the string table */ - if (str_count * 2 >= (int) sizeof(buf) - || (ptr->str_table = typeMalloc(char, (unsigned) str_size)) == 0) { - return (0); - } - } else { - str_count = 0; - } - - /* grab the name (a null-terminated string) */ - want = min(MAX_NAME_SIZE, (unsigned) name_size); - if ((have = read(fd, buf, want)) != want) { - memset(buf + have, 0, want - have); - } - buf[want] = '\0'; - ptr->term_names = TYPE_CALLOC(char, strlen(buf) + 1); - if (ptr->term_names == NULL) { - return (0); - } - (void) strcpy(ptr->term_names, buf); - if (have > MAX_NAME_SIZE) - lseek(fd, (off_t) (have - MAX_NAME_SIZE), 1); - - /* grab the booleans */ - if ((ptr->Booleans = TYPE_CALLOC(char, max(BOOLCOUNT, bool_count))) == 0 - || read(fd, ptr->Booleans, (unsigned) bool_count) < bool_count) { - return (0); - } - - /* - * If booleans end on an odd byte, skip it. The machine they - * originally wrote terminfo on must have been a 16-bit - * word-oriented machine that would trap out if you tried a - * word access off a 2-byte boundary. - */ - even_boundary(name_size + bool_count); - - /* grab the numbers */ - if ((ptr->Numbers = TYPE_CALLOC(short, max(NUMCOUNT, num_count))) == 0 - || !read_shorts(fd, buf, num_count)) { - return (0); - } - convert_shorts(buf, ptr->Numbers, num_count); - - if ((ptr->Strings = TYPE_CALLOC(char *, max(STRCOUNT, str_count))) == 0) - return (0); - - if (str_count) { - /* grab the string offsets */ - if (!read_shorts(fd, buf, str_count)) { - return (0); - } - /* finally, grab the string table itself */ - if (read(fd, ptr->str_table, (unsigned) str_size) != str_size) - return (0); - convert_strings(buf, ptr->Strings, str_count, str_size, ptr->str_table); - } -#if NCURSES_XNAMES - - ptr->num_Booleans = BOOLCOUNT; - ptr->num_Numbers = NUMCOUNT; - ptr->num_Strings = STRCOUNT; - - /* - * Read extended entries, if any, after the normal end of terminfo data. - */ - even_boundary(str_size); - TR(TRACE_DATABASE, ("READ extended_header @%ld", (long) tell(fd))); - if (_nc_user_definable && read_shorts(fd, buf, 5)) { - int ext_bool_count = LOW_MSB(buf + 0); - int ext_num_count = LOW_MSB(buf + 2); - int ext_str_count = LOW_MSB(buf + 4); - int ext_str_size = LOW_MSB(buf + 6); - int ext_str_limit = LOW_MSB(buf + 8); - unsigned need = (ext_bool_count + ext_num_count + ext_str_count); - int base = 0; - - if (need >= sizeof(buf) - || ext_str_size >= (int) sizeof(buf) - || ext_str_limit >= (int) sizeof(buf) - || ext_bool_count < 0 - || ext_num_count < 0 - || ext_str_count < 0 - || ext_str_size < 0 - || ext_str_limit < 0) - return (0); - - ptr->num_Booleans = BOOLCOUNT + ext_bool_count; - ptr->num_Numbers = NUMCOUNT + ext_num_count; - ptr->num_Strings = STRCOUNT + ext_str_count; - - ptr->Booleans = typeRealloc(char, ptr->num_Booleans, ptr->Booleans); - ptr->Numbers = typeRealloc(short, ptr->num_Numbers, ptr->Numbers); - ptr->Strings = typeRealloc(char *, ptr->num_Strings, ptr->Strings); - - TR(TRACE_DATABASE, ("extended header is %d/%d/%d(%d:%d)", - ext_bool_count, ext_num_count, ext_str_count, - ext_str_size, ext_str_limit)); - - TR(TRACE_DATABASE, ("READ %d extended-booleans @%ld", - ext_bool_count, (long) tell(fd))); - if ((ptr->ext_Booleans = ext_bool_count) != 0) { - if (read(fd, ptr->Booleans + BOOLCOUNT, (unsigned) - ext_bool_count) != ext_bool_count) - return (0); - } - even_boundary(ext_bool_count); - - TR(TRACE_DATABASE, ("READ %d extended-numbers @%ld", - ext_num_count, (long) tell(fd))); - if ((ptr->ext_Numbers = ext_num_count) != 0) { - if (!read_shorts(fd, buf, ext_num_count)) - return (0); - TR(TRACE_DATABASE, ("Before converting extended-numbers")); - convert_shorts(buf, ptr->Numbers + NUMCOUNT, ext_num_count); - } - - TR(TRACE_DATABASE, ("READ extended-offsets @%ld", (long) tell(fd))); - if ((ext_str_count || need) - && !read_shorts(fd, buf, ext_str_count + need)) - return (0); - - TR(TRACE_DATABASE, ("READ %d bytes of extended-strings @%ld", - ext_str_limit, (long) tell(fd))); - - if (ext_str_limit) { - if ((ptr->ext_str_table = typeMalloc(char, ext_str_limit)) == 0) - return (0); - if (read(fd, ptr->ext_str_table, (unsigned) ext_str_limit) != ext_str_limit) - return (0); - TR(TRACE_DATABASE, ("first extended-string is %s", _nc_visbuf(ptr->ext_str_table))); - } - - if ((ptr->ext_Strings = ext_str_count) != 0) { - TR(TRACE_DATABASE, - ("Before computing extended-string capabilities str_count=%d, ext_str_count=%d", - str_count, ext_str_count)); - convert_strings(buf, ptr->Strings + str_count, ext_str_count, - ext_str_limit, ptr->ext_str_table); - for (i = ext_str_count - 1; i >= 0; i--) { - TR(TRACE_DATABASE, ("MOVE from [%d:%d] %s", - i, i + str_count, - _nc_visbuf(ptr->Strings[i + str_count]))); - ptr->Strings[i + STRCOUNT] = ptr->Strings[i + str_count]; - if (VALID_STRING(ptr->Strings[i + STRCOUNT])) - base += (strlen(ptr->Strings[i + STRCOUNT]) + 1); - TR(TRACE_DATABASE, ("... to [%d] %s", - i + STRCOUNT, - _nc_visbuf(ptr->Strings[i + STRCOUNT]))); - } - } - - if (need) { - if ((ptr->ext_Names = TYPE_CALLOC(char *, need)) == 0) - return (0); - TR(TRACE_DATABASE, - ("ext_NAMES starting @%d in extended_strings, first = %s", - base, _nc_visbuf(ptr->ext_str_table + base))); - convert_strings(buf + (2 * ext_str_count), - ptr->ext_Names, - (int) need, - ext_str_limit, ptr->ext_str_table + base); - } - - T(("...done reading terminfo bool %d(%d) num %d(%d) str %d(%d)", - ptr->num_Booleans, ptr->ext_Booleans, - ptr->num_Numbers, ptr->ext_Numbers, - ptr->num_Strings, ptr->ext_Strings)); - - TR(TRACE_DATABASE, ("extend: num_Booleans:%d", ptr->num_Booleans)); - } else -#endif /* NCURSES_XNAMES */ - { - T(("...done reading terminfo bool %d num %d str %d", - bool_count, num_count, str_count)); -#if NCURSES_XNAMES - TR(TRACE_DATABASE, ("normal: num_Booleans:%d", ptr->num_Booleans)); -#endif - } - - for (i = bool_count; i < BOOLCOUNT; i++) - ptr->Booleans[i] = FALSE; - for (i = num_count; i < NUMCOUNT; i++) - ptr->Numbers[i] = ABSENT_NUMERIC; - for (i = str_count; i < STRCOUNT; i++) - ptr->Strings[i] = ABSENT_STRING; - - return (1); -} - -NCURSES_EXPORT(int) -_nc_read_file_entry(const char *const filename, TERMTYPE *ptr) -/* return 1 if read, 0 if not found or garbled */ -{ - int code, fd = -1; - - if (_nc_access(filename, R_OK) < 0 - || (fd = open(filename, O_RDONLY | O_BINARY)) < 0) { - T(("cannot open terminfo %s (errno=%d)", filename, errno)); - code = 0; - } else { - T(("read terminfo %s", filename)); - if ((code = read_termtype(fd, ptr)) == 0) - _nc_free_termtype(ptr); - close(fd); - } - - return (code); -} - -/* - * Build a terminfo pathname and try to read the data. Returns 1 on success, - * 0 on failure. - */ -static int -_nc_read_tic_entry(char *const filename, - const char *const dir, const char *ttn, TERMTYPE *const tp) -{ - int need = 2 + strlen(dir) + strlen(ttn); - - if (need > PATH_MAX) - return 0; - (void) sprintf(filename, "%s/%s", dir, ttn); - return _nc_read_file_entry(filename, tp); -} - -/* - * Process the list of :-separated directories, looking for the terminal type. - * We don't use strtok because it does not show us empty tokens. - */ -static int -_nc_read_terminfo_dirs(const char *dirs, char *const filename, const char *const - ttn, TERMTYPE *const tp) -{ - char *list, *a; - const char *b; - int code = 0; - - /* we'll modify the argument, so we must copy */ - if ((b = a = list = strdup(dirs)) == NULL) - return (0); - - for (;;) { - int c = *a; - if (c == 0 || c == NCURSES_PATHSEP) { - *a = 0; - if ((b + 1) >= a) - b = TERMINFO; - if (_nc_read_tic_entry(filename, b, ttn, tp) == 1) { - code = 1; - break; - } - b = a + 1; - if (c == 0) - break; - } - a++; - } - - free(list); - return (code); -} - -/* - * _nc_read_entry(char *tn, char *filename, TERMTYPE *tp) - * - * Find and read the compiled entry for a given terminal type, - * if it exists. We take pains here to make sure no combination - * of environment variables and terminal type name can be used to - * overrun the file buffer. - */ - -NCURSES_EXPORT(int) -_nc_read_entry(const char *const tn, char *const filename, TERMTYPE *const tp) -{ - char *envp; - char ttn[PATH_MAX]; - - if (strlen(tn) == 0 - || strcmp(tn, ".") == 0 - || strcmp(tn, "..") == 0 - || _nc_pathlast(tn) != 0) { - T(("illegal or missing entry name '%s'", tn)); - return 0; - } - - /* truncate the terminal name to prevent buffer overflow */ - (void) sprintf(ttn, "%c/%.*s", *tn, (int) sizeof(ttn) - 3, tn); - - /* This is System V behavior, in conjunction with our requirements for - * writing terminfo entries. - */ - if (have_tic_directory - && _nc_read_tic_entry(filename, _nc_tic_dir(0), ttn, tp) == 1) - return 1; - - if (use_terminfo_vars()) { - if ((envp = getenv("TERMINFO")) != 0 - && _nc_read_tic_entry(filename, _nc_tic_dir(envp), ttn, tp) == 1) - return 1; - - /* this is an ncurses extension */ - if ((envp = _nc_home_terminfo()) != 0) { - if (_nc_read_tic_entry(filename, envp, ttn, tp) == 1) { - return 1; - } - } - - /* this is an ncurses extension */ - if ((envp = getenv("TERMINFO_DIRS")) != 0) - return _nc_read_terminfo_dirs(envp, filename, ttn, tp); - } - - /* Try the system directory. Note that the TERMINFO_DIRS value, if - * defined by the configure script, begins with a ":", which will be - * interpreted as TERMINFO. - */ -#ifdef TERMINFO_DIRS - return _nc_read_terminfo_dirs(TERMINFO_DIRS, filename, ttn, tp); -#else - return _nc_read_tic_entry(filename, TERMINFO, ttn, tp); -#endif -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/read_termcap.c b/Build/source/libs/ncurses/ncurses/tinfo/read_termcap.c deleted file mode 100644 index 64844543ba0..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/read_termcap.c +++ /dev/null @@ -1,1168 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * Termcap compatibility support - * - * If your OS integrator didn't install a terminfo database, you can call - * _nc_read_termcap_entry() to support reading and translating capabilities - * from the system termcap file. This is a kludge; it will bulk up and slow - * down every program that uses ncurses, and translated termcap entries cannot - * use full terminfo capabilities. Don't use it unless you absolutely have to; - * instead, get your system people to run tic(1) from root on the terminfo - * master included with ncurses to translate it into a terminfo database. - * - * If USE_GETCAP is enabled, we use what is effectively a copy of the 4.4BSD - * getcap code to fetch entries. There are disadvantages to this; mainly that - * getcap(3) does its own resolution, meaning that entries read in in this way - * can't reference the terminfo tree. The only thing it buys is faster startup - * time, getcap(3) is much faster than our tic parser. - */ - -#include - -#include -#include -#include -#include -#include - -MODULE_ID("$Id: read_termcap.c,v 1.66 2004/07/05 12:55:23 tom Exp $") - -#if !PURE_TERMINFO - -#if defined(__EMX__) || defined(__DJGPP__) -#define is_pathname(s) ((((s) != 0) && ((s)[0] == '/')) \ - || (((s)[0] != 0) && ((s)[1] == ':'))) -#else -#define is_pathname(s) ((s) != 0 && (s)[0] == '/') -#endif - -#define TC_SUCCESS 0 -#define TC_UNRESOLVED -1 -#define TC_NOT_FOUND -2 -#define TC_SYS_ERR -3 -#define TC_REF_LOOP -4 - -static NCURSES_CONST char * -get_termpath(void) -{ - NCURSES_CONST char *result; - - if (!use_terminfo_vars() || (result = getenv("TERMPATH")) == 0) - result = TERMPATH; - T(("TERMPATH is %s", result)); - return result; -} - -#if USE_GETCAP - -#if HAVE_BSD_CGETENT -#define _nc_cgetcap cgetcap -#define _nc_cgetent(buf, oline, db_array, name) cgetent(buf, db_array, name) -#define _nc_cgetmatch cgetmatch -#define _nc_cgetset cgetset -#else -static int _nc_cgetmatch(char *, const char *); -static int _nc_getent(char **, unsigned *, int *, int, char **, int, const char - *, int, char *); -static int _nc_nfcmp(const char *, char *); - -/*- - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Casey Leedom of Lawrence Livermore National Laboratory. - * - * 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. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. 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. - */ - -/* static char sccsid[] = "@(#)getcap.c 8.3 (Berkeley) 3/25/94"; */ - -#define BFRAG 1024 -#define BSIZE 1024 -#define MAX_RECURSION 32 /* maximum getent recursion */ - -static size_t topreclen; /* toprec length */ -static char *toprec; /* Additional record specified by cgetset() */ -static int gottoprec; /* Flag indicating retrieval of toprecord */ - -/* - * Cgetset() allows the addition of a user specified buffer to be added to the - * database array, in effect "pushing" the buffer on top of the virtual - * database. 0 is returned on success, -1 on failure. - */ -static int -_nc_cgetset(const char *ent) -{ - if (ent == 0) { - FreeIfNeeded(toprec); - toprec = 0; - topreclen = 0; - return (0); - } - topreclen = strlen(ent); - if ((toprec = typeMalloc(char, topreclen + 1)) == 0) { - errno = ENOMEM; - return (-1); - } - gottoprec = 0; - (void) strcpy(toprec, ent); - return (0); -} - -/* - * Cgetcap searches the capability record buf for the capability cap with type - * `type'. A pointer to the value of cap is returned on success, 0 if the - * requested capability couldn't be found. - * - * Specifying a type of ':' means that nothing should follow cap (:cap:). In - * this case a pointer to the terminating ':' or NUL will be returned if cap is - * found. - * - * If (cap, '@') or (cap, terminator, '@') is found before (cap, terminator) - * return 0. - */ -static char * -_nc_cgetcap(char *buf, const char *cap, int type) -{ - register const char *cp; - register char *bp; - - bp = buf; - for (;;) { - /* - * Skip past the current capability field - it's either the - * name field if this is the first time through the loop, or - * the remainder of a field whose name failed to match cap. - */ - for (;;) { - if (*bp == '\0') - return (0); - else if (*bp++ == ':') - break; - } - - /* - * Try to match (cap, type) in buf. - */ - for (cp = cap; *cp == *bp && *bp != '\0'; cp++, bp++) - continue; - if (*cp != '\0') - continue; - if (*bp == '@') - return (0); - if (type == ':') { - if (*bp != '\0' && *bp != ':') - continue; - return (bp); - } - if (*bp != type) - continue; - bp++; - return (*bp == '@' ? 0 : bp); - } - /* NOTREACHED */ -} - -/* - * Cgetent extracts the capability record name from the NULL terminated file - * array db_array and returns a pointer to a malloc'd copy of it in buf. Buf - * must be retained through all subsequent calls to cgetcap, cgetnum, cgetflag, - * and cgetstr, but may then be freed. - * - * Returns: - * - * positive # on success (i.e., the index in db_array) - * TC_UNRESOLVED if we had too many recurrences to resolve - * TC_NOT_FOUND if the requested record couldn't be found - * TC_SYS_ERR if a system error was encountered (e.g.,couldn't open a file) - * TC_REF_LOOP if a potential reference loop is detected - */ -static int -_nc_cgetent(char **buf, int *oline, char **db_array, const char *name) -{ - unsigned dummy; - - return (_nc_getent(buf, &dummy, oline, 0, db_array, -1, name, 0, 0)); -} - -/* - * Getent implements the functions of cgetent. If fd is non-negative, - * *db_array has already been opened and fd is the open file descriptor. We - * do this to save time and avoid using up file descriptors for tc= - * recursions. - * - * Getent returns the same success/failure codes as cgetent. On success, a - * pointer to a malloc'd capability record with all tc= capabilities fully - * expanded and its length (not including trailing ASCII NUL) are left in - * *cap and *len. - * - * Basic algorithm: - * + Allocate memory incrementally as needed in chunks of size BFRAG - * for capability buffer. - * + Recurse for each tc=name and interpolate result. Stop when all - * names interpolated, a name can't be found, or depth exceeds - * MAX_RECURSION. - */ -#define DOALLOC(size) typeRealloc(char, size, record) -static int -_nc_getent( - char **cap, /* termcap-content */ - unsigned *len, /* length, needed for recursion */ - int *beginning, /* line-number at match */ - int in_array, /* index in 'db_array[] */ - char **db_array, /* list of files to search */ - int fd, - const char *name, - int depth, - char *nfield) -{ - register char *r_end, *rp; - int myfd = FALSE; - char *record = 0; - int tc_not_resolved; - int current; - int lineno; - - /* - * Return with ``loop detected'' error if we've recurred more than - * MAX_RECURSION times. - */ - if (depth > MAX_RECURSION) - return (TC_REF_LOOP); - - /* - * Check if we have a top record from cgetset(). - */ - if (depth == 0 && toprec != 0 && _nc_cgetmatch(toprec, name) == 0) { - if ((record = DOALLOC(topreclen + BFRAG)) == 0) { - errno = ENOMEM; - return (TC_SYS_ERR); - } - (void) strcpy(record, toprec); - rp = record + topreclen + 1; - r_end = rp + BFRAG; - current = in_array; - } else { - int foundit; - - /* - * Allocate first chunk of memory. - */ - if ((record = DOALLOC(BFRAG)) == 0) { - errno = ENOMEM; - return (TC_SYS_ERR); - } - rp = r_end = record + BFRAG; - foundit = FALSE; - - /* - * Loop through database array until finding the record. - */ - for (current = in_array; db_array[current] != 0; current++) { - int eof = FALSE; - - /* - * Open database if not already open. - */ - if (fd >= 0) { - (void) lseek(fd, (off_t) 0, SEEK_SET); - } else if ((_nc_access(db_array[current], R_OK) < 0) - || (fd = open(db_array[current], O_RDONLY, 0)) < 0) { - /* No error on unfound file. */ - if (errno == ENOENT) - continue; - free(record); - return (TC_SYS_ERR); - } else { - myfd = TRUE; - } - lineno = 0; - - /* - * Find the requested capability record ... - */ - { - char buf[2048]; - register char *b_end = buf; - register char *bp = buf; - register int c; - - /* - * Loop invariants: - * There is always room for one more character in record. - * R_end always points just past end of record. - * Rp always points just past last character in record. - * B_end always points just past last character in buf. - * Bp always points at next character in buf. - */ - - for (;;) { - int first = lineno + 1; - - /* - * Read in a line implementing (\, newline) - * line continuation. - */ - rp = record; - for (;;) { - if (bp >= b_end) { - int n; - - n = read(fd, buf, sizeof(buf)); - if (n <= 0) { - if (myfd) - (void) close(fd); - if (n < 0) { - free(record); - return (TC_SYS_ERR); - } - fd = -1; - eof = TRUE; - break; - } - b_end = buf + n; - bp = buf; - } - - c = *bp++; - if (c == '\n') { - lineno++; - if (rp == record || *(rp - 1) != '\\') - break; - } - *rp++ = c; - - /* - * Enforce loop invariant: if no room - * left in record buffer, try to get - * some more. - */ - if (rp >= r_end) { - unsigned pos; - size_t newsize; - - pos = rp - record; - newsize = r_end - record + BFRAG; - record = DOALLOC(newsize); - if (record == 0) { - if (myfd) - (void) close(fd); - errno = ENOMEM; - return (TC_SYS_ERR); - } - r_end = record + newsize; - rp = record + pos; - } - } - /* loop invariant lets us do this */ - *rp++ = '\0'; - - /* - * If encountered eof check next file. - */ - if (eof) - break; - - /* - * Toss blank lines and comments. - */ - if (*record == '\0' || *record == '#') - continue; - - /* - * See if this is the record we want ... - */ - if (_nc_cgetmatch(record, name) == 0 - && (nfield == 0 - || !_nc_nfcmp(nfield, record))) { - foundit = TRUE; - *beginning = first; - break; /* found it! */ - } - } - } - if (foundit) - break; - } - - if (!foundit) - return (TC_NOT_FOUND); - } - - /* - * Got the capability record, but now we have to expand all tc=name - * references in it ... - */ - { - register char *newicap, *s; - register int newilen; - unsigned ilen; - int diff, iret, tclen, oline; - char *icap, *scan, *tc, *tcstart, *tcend; - - /* - * Loop invariants: - * There is room for one more character in record. - * R_end points just past end of record. - * Rp points just past last character in record. - * Scan points at remainder of record that needs to be - * scanned for tc=name constructs. - */ - scan = record; - tc_not_resolved = FALSE; - for (;;) { - if ((tc = _nc_cgetcap(scan, "tc", '=')) == 0) - break; - - /* - * Find end of tc=name and stomp on the trailing `:' - * (if present) so we can use it to call ourselves. - */ - s = tc; - while (*s != '\0') { - if (*s++ == ':') { - *(s - 1) = '\0'; - break; - } - } - tcstart = tc - 3; - tclen = s - tcstart; - tcend = s; - - iret = _nc_getent(&icap, &ilen, &oline, current, db_array, fd, - tc, depth + 1, 0); - newicap = icap; /* Put into a register. */ - newilen = ilen; - if (iret != TC_SUCCESS) { - /* an error */ - if (iret < TC_NOT_FOUND) { - if (myfd) - (void) close(fd); - free(record); - return (iret); - } - if (iret == TC_UNRESOLVED) - tc_not_resolved = TRUE; - /* couldn't resolve tc */ - if (iret == TC_NOT_FOUND) { - *(s - 1) = ':'; - scan = s - 1; - tc_not_resolved = TRUE; - continue; - } - } - - /* not interested in name field of tc'ed record */ - s = newicap; - while (*s != '\0' && *s++ != ':') ; - newilen -= s - newicap; - newicap = s; - - /* make sure interpolated record is `:'-terminated */ - s += newilen; - if (*(s - 1) != ':') { - *s = ':'; /* overwrite NUL with : */ - newilen++; - } - - /* - * Make sure there's enough room to insert the - * new record. - */ - diff = newilen - tclen; - if (diff >= r_end - rp) { - unsigned pos, tcpos, tcposend; - size_t newsize; - - pos = rp - record; - newsize = r_end - record + diff + BFRAG; - tcpos = tcstart - record; - tcposend = tcend - record; - record = DOALLOC(newsize); - if (record == 0) { - if (myfd) - (void) close(fd); - free(icap); - errno = ENOMEM; - return (TC_SYS_ERR); - } - r_end = record + newsize; - rp = record + pos; - tcstart = record + tcpos; - tcend = record + tcposend; - } - - /* - * Insert tc'ed record into our record. - */ - s = tcstart + newilen; - memmove(s, tcend, (size_t) (rp - tcend)); - memmove(tcstart, newicap, (size_t) newilen); - rp += diff; - free(icap); - - /* - * Start scan on `:' so next cgetcap works properly - * (cgetcap always skips first field). - */ - scan = s - 1; - } - } - - /* - * Close file (if we opened it), give back any extra memory, and - * return capability, length and success. - */ - if (myfd) - (void) close(fd); - *len = rp - record - 1; /* don't count NUL */ - if (r_end > rp) { - if ((record = DOALLOC((size_t) (rp - record))) == 0) { - errno = ENOMEM; - return (TC_SYS_ERR); - } - } - - *cap = record; - if (tc_not_resolved) - return (TC_UNRESOLVED); - return (current); -} - -/* - * Cgetmatch will return 0 if name is one of the names of the capability - * record buf, -1 if not. - */ -static int -_nc_cgetmatch(char *buf, const char *name) -{ - register const char *np; - register char *bp; - - /* - * Start search at beginning of record. - */ - bp = buf; - for (;;) { - /* - * Try to match a record name. - */ - np = name; - for (;;) { - if (*np == '\0') { - if (*bp == '|' || *bp == ':' || *bp == '\0') - return (0); - else - break; - } else if (*bp++ != *np++) { - break; - } - } - - /* - * Match failed, skip to next name in record. - */ - bp--; /* a '|' or ':' may have stopped the match */ - for (;;) { - if (*bp == '\0' || *bp == ':') - return (-1); /* match failed totally */ - else if (*bp++ == '|') - break; /* found next name */ - } - } -} - -/* - * Compare name field of record. - */ -static int -_nc_nfcmp(const char *nf, char *rec) -{ - char *cp, tmp; - int ret; - - for (cp = rec; *cp != ':'; cp++) ; - - tmp = *(cp + 1); - *(cp + 1) = '\0'; - ret = strcmp(nf, rec); - *(cp + 1) = tmp; - - return (ret); -} -#endif /* HAVE_BSD_CGETENT */ - -/* - * Since ncurses provides its own 'tgetent()', we cannot use the native one. - * So we reproduce the logic to get down to cgetent() -- or our cut-down - * version of that -- to circumvent the problem of configuring against the - * termcap library. - */ -#define USE_BSD_TGETENT 1 - -#if USE_BSD_TGETENT -/* - * Copyright (c) 1980, 1993 - * The Regents of the University of California. All rights reserved. - * - * 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. All advertising materials mentioning features or use of this software - * must display the following acknowledgment: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. 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. - */ - -/* static char sccsid[] = "@(#)termcap.c 8.1 (Berkeley) 6/4/93" */ - -#define PBUFSIZ 512 /* max length of filename path */ -#define PVECSIZ 32 /* max number of names in path */ -#define TBUFSIZ (2048*2) - -static char *tbuf; - -/* - * On entry, srcp points to a non ':' character which is the beginning of the - * token, if any. We'll try to return a string that doesn't end with a ':'. - */ -static char * -get_tc_token(char **srcp, int *endp) -{ - int ch; - bool found = FALSE; - char *s, *base; - char *tok = 0; - - *endp = TRUE; - for (s = base = *srcp; *s != '\0';) { - ch = *s++; - if (ch == '\\') { - if (*s == '\0') { - break; - } else if (*s++ == '\n') { - while (isspace(UChar(*s))) - s++; - } else { - found = TRUE; - } - } else if (ch == ':') { - if (found) { - tok = base; - s[-1] = '\0'; - *srcp = s; - *endp = FALSE; - break; - } - base = s; - } else if (isgraph(UChar(ch))) { - found = TRUE; - } - } - - /* malformed entry may end without a ':' */ - if (tok == 0 && found) { - tok = base; - } - - return tok; -} - -static char * -copy_tc_token(char *dst, const char *src, size_t len) -{ - int ch; - - while ((ch = *src++) != '\0') { - if (ch == '\\' && *src == '\n') { - while (isspace(UChar(*src))) - src++; - continue; - } - if (--len == 0) { - dst = 0; - break; - } - *dst++ = ch; - } - return dst; -} - -/* - * Get an entry for terminal name in buffer bp from the termcap file. - */ -static int -_nc_tgetent(char *bp, char **sourcename, int *lineno, const char *name) -{ - static char *the_source; - - register char *p; - register char *cp; - char *dummy = NULL; - char **fname; - char *home; - int i; - char pathbuf[PBUFSIZ]; /* holds raw path of filenames */ - char *pathvec[PVECSIZ]; /* to point to names in pathbuf */ - char **pvec; /* holds usable tail of path vector */ - NCURSES_CONST char *termpath; - string_desc desc; - - fname = pathvec; - pvec = pathvec; - tbuf = bp; - p = pathbuf; - cp = use_terminfo_vars()? getenv("TERMCAP") : NULL; - - /* - * TERMCAP can have one of two things in it. It can be the name of a file - * to use instead of /etc/termcap. In this case it better start with a - * "/". Or it can be an entry to use so we don't have to read the file. - * In this case it has to already have the newlines crunched out. If - * TERMCAP does not hold a file name then a path of names is searched - * instead. The path is found in the TERMPATH variable, or becomes - * "$HOME/.termcap /etc/termcap" if no TERMPATH exists. - */ - _nc_str_init(&desc, pathbuf, sizeof(pathbuf)); - if (cp == NULL) { - _nc_safe_strcpy(&desc, get_termpath()); - } else if (!is_pathname(cp)) { /* TERMCAP holds an entry */ - if ((termpath = get_termpath()) != 0) { - _nc_safe_strcat(&desc, termpath); - } else { - char temp[PBUFSIZ]; - temp[0] = 0; - if ((home = getenv("HOME")) != 0 && *home != '\0' - && strchr(home, ' ') == 0 - && strlen(home) < sizeof(temp) - 10) { /* setup path */ - sprintf(temp, "%s/", home); /* $HOME first */ - } - /* if no $HOME look in current directory */ - strcat(temp, ".termcap"); - _nc_safe_strcat(&desc, temp); - _nc_safe_strcat(&desc, " "); - _nc_safe_strcat(&desc, get_termpath()); - } - } else { /* user-defined name in TERMCAP */ - _nc_safe_strcat(&desc, cp); /* still can be tokenized */ - } - - *fname++ = pathbuf; /* tokenize path into vector of names */ - while (*++p) { - if (*p == ' ' || *p == NCURSES_PATHSEP) { - *p = '\0'; - while (*++p) - if (*p != ' ' && *p != NCURSES_PATHSEP) - break; - if (*p == '\0') - break; - *fname++ = p; - if (fname >= pathvec + PVECSIZ) { - fname--; - break; - } - } - } - *fname = 0; /* mark end of vector */ - if (is_pathname(cp)) { - if (_nc_cgetset(cp) < 0) { - return (TC_SYS_ERR); - } - } - - i = _nc_cgetent(&dummy, lineno, pathvec, name); - - /* ncurses' termcap-parsing routines cannot handle multiple adjacent - * empty fields, and mistakenly use the last valid cap entry instead of - * the first (breaks tc= includes) - */ - if (i >= 0) { - char *pd, *ps, *tok; - int endflag = FALSE; - char *list[1023]; - size_t n, count = 0; - - pd = bp; - ps = dummy; - while (!endflag && (tok = get_tc_token(&ps, &endflag)) != 0) { - bool ignore = FALSE; - - for (n = 1; n < count; n++) { - char *s = list[n]; - if (s[0] == tok[0] - && s[1] == tok[1]) { - ignore = TRUE; - break; - } - } - if (ignore != TRUE) { - list[count++] = tok; - pd = copy_tc_token(pd, tok, TBUFSIZ - (2 + pd - bp)); - if (pd == 0) { - i = -1; - break; - } - *pd++ = ':'; - *pd = '\0'; - } - } - } - - FreeIfNeeded(dummy); - FreeIfNeeded(the_source); - the_source = 0; - - /* This is not related to the BSD cgetent(), but to fake up a suitable - * filename for ncurses' error reporting. (If we are not using BSD - * cgetent, then it is the actual filename). - */ - if (i >= 0) { - if ((the_source = strdup(pathvec[i])) != 0) - *sourcename = the_source; - } - - return (i); -} -#endif /* USE_BSD_TGETENT */ -#endif /* USE_GETCAP */ - -#define MAXPATHS 32 - -/* - * Add a filename to the list in 'termpaths[]', checking that we really have - * a right to open the file. - */ -#if !USE_GETCAP -static int -add_tc(char *termpaths[], char *path, int count) -{ - char *save = strchr(path, NCURSES_PATHSEP); - if (save != 0) - *save = '\0'; - if (count < MAXPATHS - && _nc_access(path, R_OK) == 0) { - termpaths[count++] = path; - T(("Adding termpath %s", path)); - } - termpaths[count] = 0; - if (save != 0) - *save = NCURSES_PATHSEP; - return count; -} -#define ADD_TC(path, count) filecount = add_tc(termpaths, path, count) -#endif /* !USE_GETCAP */ - -NCURSES_EXPORT(int) -_nc_read_termcap_entry(const char *const tn, TERMTYPE *const tp) -{ - int found = FALSE; - ENTRY *ep; -#if USE_GETCAP_CACHE - char cwd_buf[PATH_MAX]; -#endif -#if USE_GETCAP - char *p, tc[TBUFSIZ]; - static char *source; - static int lineno; - - T(("read termcap entry for %s", tn)); - - if (strlen(tn) == 0 - || strcmp(tn, ".") == 0 - || strcmp(tn, "..") == 0 - || _nc_pathlast(tn) != 0) { - T(("illegal or missing entry name '%s'", tn)); - return 0; - } - - if (use_terminfo_vars() && (p = getenv("TERMCAP")) != 0 - && !is_pathname(p) && _nc_name_match(p, tn, "|:")) { - /* TERMCAP holds a termcap entry */ - strncpy(tc, p, sizeof(tc) - 1); - tc[sizeof(tc) - 1] = '\0'; - _nc_set_source("TERMCAP"); - } else { - /* we're using getcap(3) */ - if (_nc_tgetent(tc, &source, &lineno, tn) < 0) - return (ERR); - - _nc_curr_line = lineno; - _nc_set_source(source); - } - _nc_read_entry_source((FILE *) 0, tc, FALSE, FALSE, NULLHOOK); -#else - /* - * Here is what the 4.4BSD termcap(3) page prescribes: - * - * It will look in the environment for a TERMCAP variable. If found, and - * the value does not begin with a slash, and the terminal type name is the - * same as the environment string TERM, the TERMCAP string is used instead - * of reading a termcap file. If it does begin with a slash, the string is - * used as a path name of the termcap file to search. If TERMCAP does not - * begin with a slash and name is different from TERM, tgetent() searches - * the files $HOME/.termcap and /usr/share/misc/termcap, in that order, - * unless the environment variable TERMPATH exists, in which case it - * specifies a list of file pathnames (separated by spaces or colons) to be - * searched instead. - * - * It goes on to state: - * - * Whenever multiple files are searched and a tc field occurs in the - * requested entry, the entry it names must be found in the same file or - * one of the succeeding files. - * - * However, this restriction is relaxed in ncurses; tc references to - * previous files are permitted. - * - * This routine returns 1 if an entry is found, 0 if not found, and -1 if - * the database is not accessible. - */ - FILE *fp; - char *tc, *termpaths[MAXPATHS]; - int filecount = 0; - int j, k; - bool use_buffer = FALSE; - bool normal = TRUE; - char tc_buf[1024]; - char pathbuf[PATH_MAX]; - char *copied = 0; - char *cp; - struct stat test_stat[MAXPATHS]; - - termpaths[filecount] = 0; - if (use_terminfo_vars() && (tc = getenv("TERMCAP")) != 0) { - if (is_pathname(tc)) { /* interpret as a filename */ - ADD_TC(tc, 0); - normal = FALSE; - } else if (_nc_name_match(tc, tn, "|:")) { /* treat as a capability file */ - use_buffer = TRUE; - (void) sprintf(tc_buf, "%.*s\n", (int) sizeof(tc_buf) - 2, tc); - normal = FALSE; - } - } - - if (normal) { /* normal case */ - char envhome[PATH_MAX], *h; - - copied = strdup(get_termpath()); - for (cp = copied; *cp; cp++) { - if (*cp == NCURSES_PATHSEP) - *cp = '\0'; - else if (cp == copied || cp[-1] == '\0') { - ADD_TC(cp, filecount); - } - } - -#define PRIVATE_CAP "%s/.termcap" - - if (use_terminfo_vars() && (h = getenv("HOME")) != NULL && *h != '\0' - && (strlen(h) + sizeof(PRIVATE_CAP)) < PATH_MAX) { - /* user's .termcap, if any, should override it */ - (void) strcpy(envhome, h); - (void) sprintf(pathbuf, PRIVATE_CAP, envhome); - ADD_TC(pathbuf, filecount); - } - } - - /* - * Probably /etc/termcap is a symlink to /usr/share/misc/termcap. - * Avoid reading the same file twice. - */ -#if HAVE_LINK - for (j = 0; j < filecount; j++) { - bool omit = FALSE; - if (stat(termpaths[j], &test_stat[j]) != 0 - || (test_stat[j].st_mode & S_IFMT) != S_IFREG) { - omit = TRUE; - } else { - for (k = 0; k < j; k++) { - if (test_stat[k].st_dev == test_stat[j].st_dev - && test_stat[k].st_ino == test_stat[j].st_ino) { - omit = TRUE; - break; - } - } - } - if (omit) { - T(("Path %s is a duplicate", termpaths[j])); - for (k = j + 1; k < filecount; k++) { - termpaths[k - 1] = termpaths[k]; - test_stat[k - 1] = test_stat[k]; - } - --filecount; - --j; - } - } -#endif - - /* parse the sources */ - if (use_buffer) { - _nc_set_source("TERMCAP"); - - /* - * We don't suppress warning messages here. The presumption is - * that since it's just a single entry, they won't be a pain. - */ - _nc_read_entry_source((FILE *) 0, tc_buf, FALSE, FALSE, NULLHOOK); - } else { - int i; - - for (i = 0; i < filecount; i++) { - - T(("Looking for %s in %s", tn, termpaths[i])); - if (_nc_access(termpaths[i], R_OK) == 0 - && (fp = fopen(termpaths[i], "r")) != (FILE *) 0) { - _nc_set_source(termpaths[i]); - - /* - * Suppress warning messages. Otherwise you get 400 lines of - * crap from archaic termcap files as ncurses complains about - * all the obsolete capabilities. - */ - _nc_read_entry_source(fp, (char *) 0, FALSE, TRUE, NULLHOOK); - - (void) fclose(fp); - } - } - } - if (copied != 0) - free(copied); -#endif /* USE_GETCAP */ - - if (_nc_head == 0) - return (ERR); - - /* resolve all use references */ - _nc_resolve_uses2(TRUE, FALSE); - - /* find a terminal matching tn, if we can */ -#if USE_GETCAP_CACHE - if (getcwd(cwd_buf, sizeof(cwd_buf)) != 0) { - _nc_set_writedir((char *) 0); /* note: this does a chdir */ -#endif - for_entry_list(ep) { - if (_nc_name_match(ep->tterm.term_names, tn, "|:")) { - /* - * Make a local copy of the terminal capabilities. Free all - * entry storage except the string table for the loaded type - * (which we disconnected from the list by NULLing out - * ep->tterm.str_table above). - */ - *tp = ep->tterm; - ep->tterm.str_table = (char *) 0; - - /* - * OK, now try to write the type to user's terminfo directory. - * Next time he loads this, it will come through terminfo. - * - * Advantage: Second and subsequent fetches of this entry will - * be very fast. - * - * Disadvantage: After the first time a termcap type is loaded - * by its user, editing it in the /etc/termcap file, or in - * TERMCAP, or in a local ~/.termcap, will be ineffective - * unless the terminfo entry is explicitly removed. - */ -#if USE_GETCAP_CACHE - (void) _nc_write_entry(tp); -#endif - found = TRUE; - break; - } - } -#if USE_GETCAP_CACHE - chdir(cwd_buf); - } -#endif - - _nc_free_entries(_nc_head); - return (found); -} -#else -extern -NCURSES_EXPORT(void) -_nc_read_termcap(void); -NCURSES_EXPORT(void) -_nc_read_termcap(void) -{ -} -#endif /* PURE_TERMINFO */ diff --git a/Build/source/libs/ncurses/ncurses/tinfo/setbuf.c b/Build/source/libs/ncurses/ncurses/tinfo/setbuf.c deleted file mode 100644 index 94bb6d3463c..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/setbuf.c +++ /dev/null @@ -1,150 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** setbuf.c -** -** Support for set_term(), reset_shell_mode(), reset_prog_mode(). -** -*/ - -#include - -MODULE_ID("$Id: setbuf.c,v 1.12 2003/11/15 23:55:34 tom Exp $") - -/* - * If the output file descriptor is connected to a tty (the typical case) it - * will probably be line-buffered. Keith Bostic pointed out that we don't want - * this; it hoses people running over networks by forcing out a bunch of small - * packets instead of one big one, so screen updates on ptys look jerky. - * Restore block buffering to prevent this minor lossage. - * - * The buffer size is a compromise. Ideally we'd like a buffer that can hold - * the maximum possible update size (the whole screen plus cup commands to - * change lines as it's painted). On a 66-line xterm this can become - * excessive. So we min it with the amount of data we think we can get through - * two Ethernet packets (maximum packet size - 100 for TCP/IP overhead). - * - * Why two ethernet packets? It used to be one, on the theory that said - * packets define the maximum size of atomic update. But that's less than the - * 2000 chars on a 25 x 80 screen, and we don't want local updates to flicker - * either. Two packet lengths will handle up to a 35 x 80 screen. - * - * The magic '6' is the estimated length of the end-of-line cup sequence to go - * to the next line. It's generous. We used to mess with the buffering in - * init_mvcur() after cost computation, but that lost the sequences emitted by - * init_acs() in setupscreen(). - * - * "The setvbuf function may be used only after the stream pointed to by stream - * has been associated with an open file and before any other operation is - * performed on the stream." (ISO 7.9.5.6.) - * - * Grrrr... - * - * On a lighter note, many implementations do in fact allow an application to - * reset the buffering after it has been written to. We try to do this because - * otherwise we leave stdout in buffered mode after endwin() is called. (This - * also happens with SVr4 curses). - * - * There are pros/cons: - * - * con: - * There is no guarantee that we can reestablish buffering once we've - * dropped it. - * - * We _may_ lose data if the implementation does not coordinate this with - * fflush. - * - * pro: - * An implementation is more likely to refuse to change the buffering than - * to do it in one of the ways mentioned above. - * - * The alternative is to have the application try to change buffering - * itself, which is certainly no improvement. - * - * Just in case it does not work well on a particular system, the calls to - * change buffering are all via the macro NC_BUFFERED. Some implementations - * do indeed get confused by changing setbuf on/off, and will overrun the - * buffer. So we disable this by default (there may yet be a workaround). - */ -NCURSES_EXPORT(void) -_nc_set_buffer(FILE *ofp, bool buffered) -{ - /* optional optimization hack -- do before any output to ofp */ -#if HAVE_SETVBUF || HAVE_SETBUFFER - if (SP->_buffered != (int)buffered) { - unsigned buf_len; - char *buf_ptr; - - if (getenv("NCURSES_NO_SETBUF") != 0) - return; - - fflush(ofp); -#ifdef __DJGPP__ - setmode(ofp, O_BINARY); -#endif - if (buffered != 0) { - buf_len = min(LINES * (COLS + 6), 2800); - if ((buf_ptr = SP->_setbuf) == 0) { - if ((buf_ptr = typeMalloc(char, buf_len)) == NULL) - return; - SP->_setbuf = buf_ptr; - /* Don't try to free this! */ - } -#if !USE_SETBUF_0 - else - return; -#endif - } else { -#if !USE_SETBUF_0 - return; -#else - buf_len = 0; - buf_ptr = 0; -#endif - } - -#if HAVE_SETVBUF -#ifdef SETVBUF_REVERSED /* pre-svr3? */ - (void) setvbuf(ofp, buf_ptr, buf_len, buf_len ? _IOFBF : _IOLBF); -#else - (void) setvbuf(ofp, buf_ptr, buf_len ? _IOFBF : _IOLBF, buf_len); -#endif -#elif HAVE_SETBUFFER - (void) setbuffer(ofp, buf_ptr, (int) buf_len); -#endif - - SP->_buffered = buffered; - } -#endif /* HAVE_SETVBUF || HAVE_SETBUFFER */ -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/strings.c b/Build/source/libs/ncurses/ncurses/tinfo/strings.c deleted file mode 100644 index d5377fe07a5..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/strings.c +++ /dev/null @@ -1,142 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2000,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey * - ****************************************************************************/ - -/* -** lib_mvcur.c -**/ - -#include - -MODULE_ID("$Id: strings.c,v 1.5 2003/08/16 23:46:00 tom Exp $") - -/**************************************************************************** - * Useful string functions (especially for mvcur) - ****************************************************************************/ - -#if !HAVE_STRSTR -NCURSES_EXPORT(char *) -_nc_strstr(const char *haystack, const char *needle) -{ - size_t len1 = strlen(haystack); - size_t len2 = strlen(needle); - char *result = 0; - - while ((len1 != 0) && (len1-- >= len2)) { - if (!strncmp(haystack, needle, len2)) { - result = haystack; - break; - } - haystack++; - } - return result; -} -#endif - -/* - * Initialize the descriptor so we can append to it. Note that 'src' may - * be a null pointer (see _nc_str_null), so the corresponding strcat and - * strcpy calls have to allow for this. - */ -NCURSES_EXPORT(string_desc *) -_nc_str_init(string_desc * dst, char *src, size_t len) -{ - if (dst != 0) { - dst->s_head = src; - dst->s_tail = src; - dst->s_size = len - 1; - dst->s_init = dst->s_size; - if (src != 0) - *src = 0; - } - return dst; -} - -/* - * Initialize the descriptor for only tracking the amount of memory used. - */ -NCURSES_EXPORT(string_desc *) -_nc_str_null(string_desc * dst, size_t len) -{ - return _nc_str_init(dst, 0, len); -} - -/* - * Copy a descriptor - */ -NCURSES_EXPORT(string_desc *) -_nc_str_copy(string_desc * dst, string_desc * src) -{ - *dst = *src; - return dst; -} - -/* - * Replaces strcat into a fixed buffer, returning false on failure. - */ -NCURSES_EXPORT(bool) -_nc_safe_strcat(string_desc * dst, const char *src) -{ - if (src != 0) { - size_t len = strlen(src); - - if (len < dst->s_size) { - if (dst->s_tail != 0) { - strcpy(dst->s_tail, src); - dst->s_tail += len; - } - dst->s_size -= len; - return TRUE; - } - } - return FALSE; -} - -/* - * Replaces strcpy into a fixed buffer, returning false on failure. - */ -NCURSES_EXPORT(bool) -_nc_safe_strcpy(string_desc * dst, const char *src) -{ - if (src != 0) { - size_t len = strlen(src); - - if (len < dst->s_size) { - if (dst->s_head != 0) { - strcpy(dst->s_head, src); - dst->s_tail = dst->s_head + len; - } - dst->s_size = dst->s_init - len; - return TRUE; - } - } - return FALSE; -} diff --git a/Build/source/libs/ncurses/ncurses/tinfo/write_entry.c b/Build/source/libs/ncurses/ncurses/tinfo/write_entry.c deleted file mode 100644 index 9750dffd5ff..00000000000 --- a/Build/source/libs/ncurses/ncurses/tinfo/write_entry.c +++ /dev/null @@ -1,591 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * write_entry.c -- write a terminfo structure onto the file system - */ - -#include - -#include - -#include -#include - -#ifndef S_ISDIR -#define S_ISDIR(mode) ((mode & S_IFMT) == S_IFDIR) -#endif - -#if 0 -#define TRACE_OUT(p) DEBUG(2, p) -#else -#define TRACE_OUT(p) /*nothing */ -#endif - -MODULE_ID("$Id: write_entry.c,v 1.58 2002/04/21 20:35:08 tom Exp $") - -static int total_written; - -static int write_object(FILE *, TERMTYPE *); - -static void -write_file(char *filename, TERMTYPE * tp) -{ - FILE *fp = (_nc_access(filename, W_OK) == 0) ? fopen(filename, "wb") : 0; - if (fp == 0) { - perror(filename); - _nc_syserr_abort("can't open %s/%s", _nc_tic_dir(0), filename); - } - DEBUG(1, ("Created %s", filename)); - - if (write_object(fp, tp) == ERR) { - _nc_syserr_abort("error writing %s/%s", _nc_tic_dir(0), filename); - } - fclose(fp); -} - -/* - * make_directory(char *path) - * - * Make a directory if it doesn't exist. - */ -static int -make_directory(const char *path) -{ - int rc; - struct stat statbuf; - char fullpath[PATH_MAX]; - const char *destination = _nc_tic_dir(0); - - if (path == destination || *path == '/') { - if (strlen(path) + 1 > sizeof(fullpath)) - return (-1); - (void) strcpy(fullpath, path); - } else { - if (strlen(destination) + strlen(path) + 2 > sizeof(fullpath)) - return (-1); - (void) sprintf(fullpath, "%s/%s", destination, path); - } - - if ((rc = stat(path, &statbuf)) < 0) { - rc = mkdir(path, 0777); - } else { - if (_nc_access(path, R_OK | W_OK | X_OK) < 0) { - rc = -1; /* permission denied */ - } else if (!(S_ISDIR(statbuf.st_mode))) { - rc = -1; /* not a directory */ - } - } - return rc; -} - -NCURSES_EXPORT(void) -_nc_set_writedir(char *dir) -/* set the write directory for compiled entries */ -{ - const char *destination; - char actual[PATH_MAX]; - - if (dir == 0 - && use_terminfo_vars()) - dir = getenv("TERMINFO"); - - if (dir != 0) - (void) _nc_tic_dir(dir); - - destination = _nc_tic_dir(0); - if (make_directory(destination) < 0) { - char *home = _nc_home_terminfo(); - - if (home != 0) { - destination = home; - if (make_directory(destination) < 0) - _nc_err_abort("%s: permission denied (errno %d)", - destination, errno); - } - } - - /* - * Note: because of this code, this logic should be exercised - * *once only* per run. - */ - if (chdir(_nc_tic_dir(destination)) < 0 - || getcwd(actual, sizeof(actual)) == 0) - _nc_err_abort("%s: not a directory", destination); - _nc_keep_tic_dir(strdup(actual)); -} - -/* - * check_writeable(char code) - * - * Miscellaneous initialisations - * - * Check for access rights to destination directories - * Create any directories which don't exist. - * Note: there's no reason to return the result of make_directory(), since - * this function is called only in instances where that has to succeed. - * - */ - -static void -check_writeable(int code) -{ - static const char dirnames[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - static bool verified[sizeof(dirnames)]; - - char dir[2]; - char *s = 0; - - if (code == 0 || (s = strchr(dirnames, code)) == 0) - _nc_err_abort("Illegal terminfo subdirectory \"%c\"", code); - - if (verified[s - dirnames]) - return; - - dir[0] = code; - dir[1] = '\0'; - if (make_directory(dir) < 0) { - _nc_err_abort("%s/%s: permission denied", _nc_tic_dir(0), dir); - } - - verified[s - dirnames] = TRUE; -} - -/* - * _nc_write_entry() - * - * Save the compiled version of a description in the filesystem. - * - * make a copy of the name-list - * break it up into first-name and all-but-last-name - * creat(first-name) - * write object information to first-name - * close(first-name) - * for each name in all-but-last-name - * link to first-name - * - * Using 'time()' to obtain a reference for file timestamps is unreliable, - * e.g., with NFS, because the filesystem may have a different time - * reference. We check for pre-existence of links by latching the first - * timestamp from a file that we create. - * - * The _nc_warning() calls will report a correct line number only if - * _nc_curr_line is properly set before the write_entry() call. - */ - -void -_nc_write_entry(TERMTYPE * const tp) -{ - struct stat statbuf; - char name_list[MAX_TERMINFO_LENGTH]; - char *first_name, *other_names; - char *ptr; - char filename[PATH_MAX]; - char linkname[PATH_MAX]; -#if USE_SYMLINKS - char symlinkname[PATH_MAX]; -#if !HAVE_LINK -#undef HAVE_LINK -#define HAVE_LINK 1 -#endif -#endif /* USE_SYMLINKS */ - static int call_count; - static time_t start_time; /* time at start of writes */ - - if (call_count++ == 0) { - start_time = 0; - } - - (void) strcpy(name_list, tp->term_names); - DEBUG(7, ("Name list = '%s'", name_list)); - - first_name = name_list; - - ptr = &name_list[strlen(name_list) - 1]; - other_names = ptr + 1; - - while (ptr > name_list && *ptr != '|') - ptr--; - - if (ptr != name_list) { - *ptr = '\0'; - - for (ptr = name_list; *ptr != '\0' && *ptr != '|'; ptr++) - continue; - - if (*ptr == '\0') - other_names = ptr; - else { - *ptr = '\0'; - other_names = ptr + 1; - } - } - - DEBUG(7, ("First name = '%s'", first_name)); - DEBUG(7, ("Other names = '%s'", other_names)); - - _nc_set_type(first_name); - - if (strlen(first_name) > sizeof(filename) - 3) - _nc_warning("terminal name too long."); - - sprintf(filename, "%c/%s", first_name[0], first_name); - - /* - * Has this primary name been written since the first call to - * write_entry()? If so, the newer write will step on the older, - * so warn the user. - */ - if (start_time > 0 && - stat(filename, &statbuf) >= 0 - && statbuf.st_mtime >= start_time) { - _nc_warning("name multiply defined."); - } - - check_writeable(first_name[0]); - write_file(filename, tp); - - if (start_time == 0) { - if (stat(filename, &statbuf) < 0 - || (start_time = statbuf.st_mtime) == 0) { - _nc_syserr_abort("error obtaining time from %s/%s", - _nc_tic_dir(0), filename); - } - } - while (*other_names != '\0') { - ptr = other_names++; - while (*other_names != '|' && *other_names != '\0') - other_names++; - - if (*other_names != '\0') - *(other_names++) = '\0'; - - if (strlen(ptr) > sizeof(linkname) - 3) { - _nc_warning("terminal alias %s too long.", ptr); - continue; - } - if (strchr(ptr, '/') != 0) { - _nc_warning("cannot link alias %s.", ptr); - continue; - } - - check_writeable(ptr[0]); - sprintf(linkname, "%c/%s", ptr[0], ptr); - - if (strcmp(filename, linkname) == 0) { - _nc_warning("self-synonym ignored"); - } else if (stat(linkname, &statbuf) >= 0 && - statbuf.st_mtime < start_time) { - _nc_warning("alias %s multiply defined.", ptr); - } else if (_nc_access(linkname, W_OK) == 0) -#if HAVE_LINK - { - int code; -#if USE_SYMLINKS - strcpy(symlinkname, "../"); - strncat(symlinkname, filename, sizeof(symlinkname) - 4); - symlinkname[sizeof(symlinkname) - 1] = '\0'; -#endif /* USE_SYMLINKS */ -#if HAVE_REMOVE - code = remove(linkname); -#else - code = unlink(linkname); -#endif - if (code != 0 && errno == ENOENT) - code = 0; -#if USE_SYMLINKS - if (symlink(symlinkname, linkname) < 0) -#else - if (link(filename, linkname) < 0) -#endif /* USE_SYMLINKS */ - { - /* - * If there wasn't anything there, and we cannot - * link to the target because it is the same as the - * target, then the source must be on a filesystem - * that uses caseless filenames, such as Win32, etc. - */ - if (code == 0 && errno == EEXIST) - _nc_warning("can't link %s to %s", filename, linkname); - else if (code == 0 && (errno == EPERM || errno == ENOENT)) - write_file(linkname, tp); - else { -#if MIXEDCASE_FILENAMES - _nc_syserr_abort("can't link %s to %s", filename, linkname); -#else - _nc_warning("can't link %s to %s (errno=%d)", filename, - linkname, errno); -#endif - } - } else { - DEBUG(1, ("Linked %s", linkname)); - } - } -#else /* just make copies */ - write_file(linkname, tp); -#endif /* HAVE_LINK */ - } -} - -#undef LITTLE_ENDIAN /* BSD/OS defines this as a feature macro */ -#define HI(x) ((x) / 256) -#define LO(x) ((x) % 256) -#define LITTLE_ENDIAN(p, x) (p)[0] = LO(x), (p)[1] = HI(x) - -#define WRITE_STRING(str) (fwrite(str, sizeof(char), strlen(str) + 1, fp) == strlen(str) + 1) - -static int -compute_offsets(char **Strings, unsigned strmax, short *offsets) -{ - size_t nextfree = 0; - unsigned i; - - for (i = 0; i < strmax; i++) { - if (Strings[i] == ABSENT_STRING) { - offsets[i] = -1; - } else if (Strings[i] == CANCELLED_STRING) { - offsets[i] = -2; - } else { - offsets[i] = nextfree; - nextfree += strlen(Strings[i]) + 1; - TRACE_OUT(("put Strings[%d]=%s(%d)", i, _nc_visbuf(Strings[i]), nextfree)); - } - } - return nextfree; -} - -static void -convert_shorts(unsigned char *buf, short *Numbers, unsigned count) -{ - unsigned i; - for (i = 0; i < count; i++) { - if (Numbers[i] == ABSENT_NUMERIC) { /* HI/LO won't work */ - buf[2 * i] = buf[2 * i + 1] = 0377; - } else if (Numbers[i] == CANCELLED_NUMERIC) { /* HI/LO won't work */ - buf[2 * i] = 0376; - buf[2 * i + 1] = 0377; - } else { - LITTLE_ENDIAN(buf + 2 * i, Numbers[i]); - TRACE_OUT(("put Numbers[%d]=%d", i, Numbers[i])); - } - } -} - -#define even_boundary(value) \ - ((value) % 2 != 0 && fwrite(&zero, sizeof(char), 1, fp) != 1) - -static int -write_object(FILE * fp, TERMTYPE * tp) -{ - char *namelist; - size_t namelen, boolmax, nummax, strmax; - char zero = '\0'; - size_t i; - short nextfree; - short offsets[MAX_ENTRY_SIZE / 2]; - unsigned char buf[MAX_ENTRY_SIZE]; - unsigned last_bool = BOOLWRITE; - unsigned last_num = NUMWRITE; - unsigned last_str = STRWRITE; - -#if NCURSES_XNAMES - /* - * Normally we limit the list of values to exclude the "obsolete" - * capabilities. However, if we are accepting extended names, add - * these as well, since they are used for supporting translation - * to/from termcap. - */ - if (_nc_user_definable) { - last_bool = BOOLCOUNT; - last_num = NUMCOUNT; - last_str = STRCOUNT; - } -#endif - - namelist = tp->term_names; - namelen = strlen(namelist) + 1; - - boolmax = 0; - for (i = 0; i < last_bool; i++) { - if (tp->Booleans[i] == TRUE) - boolmax = i + 1; - } - - nummax = 0; - for (i = 0; i < last_num; i++) { - if (tp->Numbers[i] != ABSENT_NUMERIC) - nummax = i + 1; - } - - strmax = 0; - for (i = 0; i < last_str; i++) { - if (tp->Strings[i] != ABSENT_STRING) - strmax = i + 1; - } - - nextfree = compute_offsets(tp->Strings, strmax, offsets); - - /* fill in the header */ - LITTLE_ENDIAN(buf, MAGIC); - LITTLE_ENDIAN(buf + 2, min(namelen, MAX_NAME_SIZE + 1)); - LITTLE_ENDIAN(buf + 4, boolmax); - LITTLE_ENDIAN(buf + 6, nummax); - LITTLE_ENDIAN(buf + 8, strmax); - LITTLE_ENDIAN(buf + 10, nextfree); - - /* write out the header */ - TRACE_OUT(("Header of %s @%ld", namelist, ftell(fp))); - if (fwrite(buf, 12, 1, fp) != 1 - || fwrite(namelist, sizeof(char), namelen, fp) != namelen) - return (ERR); - - for (i = 0; i < boolmax; i++) - if (tp->Booleans[i] == TRUE) - buf[i] = TRUE; - else - buf[i] = FALSE; - if (fwrite(buf, sizeof(char), boolmax, fp) != boolmax) - return (ERR); - - if (even_boundary(namelen + boolmax)) - return (ERR); - - TRACE_OUT(("Numerics begin at %04lx", ftell(fp))); - - /* the numerics */ - convert_shorts(buf, tp->Numbers, nummax); - if (fwrite(buf, 2, nummax, fp) != nummax) - return (ERR); - - TRACE_OUT(("String offsets begin at %04lx", ftell(fp))); - - /* the string offsets */ - convert_shorts(buf, offsets, strmax); - if (fwrite(buf, 2, strmax, fp) != strmax) - return (ERR); - - TRACE_OUT(("String table begins at %04lx", ftell(fp))); - - /* the strings */ - for (i = 0; i < strmax; i++) - if (VALID_STRING(tp->Strings[i])) - if (!WRITE_STRING(tp->Strings[i])) - return (ERR); - -#if NCURSES_XNAMES - if (NUM_EXT_NAMES(tp)) { - unsigned extcnt = NUM_EXT_NAMES(tp); - - if (even_boundary(nextfree)) - return (ERR); - - nextfree = compute_offsets(tp->Strings + STRCOUNT, tp->ext_Strings, offsets); - TRACE_OUT(("after extended string capabilities, nextfree=%d", nextfree)); - nextfree += compute_offsets(tp->ext_Names, extcnt, offsets + tp->ext_Strings); - TRACE_OUT(("after extended capnames, nextfree=%d", nextfree)); - strmax = tp->ext_Strings + extcnt; - - /* - * Write the extended header - */ - LITTLE_ENDIAN(buf + 0, tp->ext_Booleans); - LITTLE_ENDIAN(buf + 2, tp->ext_Numbers); - LITTLE_ENDIAN(buf + 4, tp->ext_Strings); - LITTLE_ENDIAN(buf + 6, strmax); - LITTLE_ENDIAN(buf + 8, nextfree); - TRACE_OUT(("WRITE extended-header @%ld", ftell(fp))); - if (fwrite(buf, 10, 1, fp) != 1) - return (ERR); - - TRACE_OUT(("WRITE %d booleans @%ld", tp->ext_Booleans, ftell(fp))); - if (tp->ext_Booleans - && fwrite(tp->Booleans + BOOLCOUNT, sizeof(char), - tp->ext_Booleans, fp) != tp->ext_Booleans) - return (ERR); - - if (even_boundary(tp->ext_Booleans)) - return (ERR); - - TRACE_OUT(("WRITE %d numbers @%ld", tp->ext_Numbers, ftell(fp))); - if (tp->ext_Numbers) { - convert_shorts(buf, tp->Numbers + NUMCOUNT, tp->ext_Numbers); - if (fwrite(buf, 2, tp->ext_Numbers, fp) != tp->ext_Numbers) - return (ERR); - } - - /* - * Convert the offsets for the ext_Strings and ext_Names tables, - * in that order. - */ - convert_shorts(buf, offsets, strmax); - TRACE_OUT(("WRITE offsets @%ld", ftell(fp))); - if (fwrite(buf, 2, strmax, fp) != strmax) - return (ERR); - - /* - * Write the string table after the offset tables so we do not - * have to do anything about alignment. - */ - for (i = 0; i < tp->ext_Strings; i++) { - if (VALID_STRING(tp->Strings[i + STRCOUNT])) { - TRACE_OUT(("WRITE ext_Strings[%d]=%s", i, - _nc_visbuf(tp->Strings[i + STRCOUNT]))); - if (!WRITE_STRING(tp->Strings[i + STRCOUNT])) - return (ERR); - } - } - - /* - * Write the extended names - */ - for (i = 0; i < extcnt; i++) { - TRACE_OUT(("WRITE ext_Names[%d]=%s", i, tp->ext_Names[i])); - if (!WRITE_STRING(tp->ext_Names[i])) - return (ERR); - } - - } -#endif /* NCURSES_XNAMES */ - - total_written++; - return (OK); -} - -/* - * Returns the total number of entries written by this process - */ -NCURSES_EXPORT(int) -_nc_tic_written(void) -{ - return total_written; -} diff --git a/Build/source/libs/ncurses/ncurses/trace/README b/Build/source/libs/ncurses/ncurses/trace/README deleted file mode 100644 index a627a537a3d..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/README +++ /dev/null @@ -1,5 +0,0 @@ --- $Id: README,v 1.1 1998/11/08 00:11:01 tom Exp $ - -The files in this directory (trace) support both the terminfo and ncurses -libraries. Most of the functions are linked in only when the libraries -are compiled with TRACE defined. diff --git a/Build/source/libs/ncurses/ncurses/trace/lib_trace.c b/Build/source/libs/ncurses/ncurses/trace/lib_trace.c deleted file mode 100644 index 8a5d7e6a650..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/lib_trace.c +++ /dev/null @@ -1,197 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_trace.c - Tracing/Debugging routines - */ - -#include -#include - -#include - -MODULE_ID("$Id: lib_trace.c,v 1.53 2003/11/23 00:39:30 tom Exp $") - -NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */ - -#ifdef TRACE -NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = ""; -NCURSES_EXPORT_VAR(long) _nc_outchars = 0; - -static FILE *tracefp = 0; /* default to writing to stderr */ - -NCURSES_EXPORT(void) -trace(const unsigned int tracelevel) -{ - static bool been_here = FALSE; - static char my_name[PATH_MAX]; - - if ((tracefp == 0) && tracelevel) { - const char *mode = been_here ? "ab" : "wb"; - - if (*my_name == '\0') { - if (getcwd(my_name, sizeof(my_name) - 10) == 0) { - perror("curses: Can't get working directory"); - exit(EXIT_FAILURE); - } - strcat(my_name, "/trace"); - } - - been_here = TRUE; - _nc_tracing = tracelevel; - if (_nc_access(my_name, W_OK) < 0 - || (tracefp = fopen(my_name, mode)) == 0) { - perror("curses: Can't open 'trace' file"); - exit(EXIT_FAILURE); - } - /* Try to set line-buffered mode, or (failing that) unbuffered, - * so that the trace-output gets flushed automatically at the - * end of each line. This is useful in case the program dies. - */ -#if HAVE_SETVBUF /* ANSI */ - (void) setvbuf(tracefp, (char *) 0, _IOLBF, 0); -#elif HAVE_SETBUF /* POSIX */ - (void) setbuffer(tracefp, (char *) 0); -#endif - _tracef("TRACING NCURSES version %s.%d (tracelevel=%#x)", - NCURSES_VERSION, - NCURSES_VERSION_PATCH, - tracelevel); - } else if (tracelevel == 0) { - if (tracefp != 0) { - fclose(tracefp); - tracefp = 0; - } - _nc_tracing = tracelevel; - } else if (_nc_tracing != tracelevel) { - _nc_tracing = tracelevel; - _tracef("tracelevel=%#x", tracelevel); - } -} - -NCURSES_EXPORT(void) -_tracef(const char *fmt,...) -{ - static const char Called[] = T_CALLED(""); - static const char Return[] = T_RETURN(""); - static int level; - va_list ap; - bool before = FALSE; - bool after = FALSE; - int doit = _nc_tracing; - int save_err = errno; - - if (strlen(fmt) >= sizeof(Called) - 1) { - if (!strncmp(fmt, Called, sizeof(Called) - 1)) { - before = TRUE; - level++; - } else if (!strncmp(fmt, Return, sizeof(Return) - 1)) { - after = TRUE; - } - if (before || after) { - if ((level <= 1) - || (doit & TRACE_ICALLS) != 0) - doit &= (TRACE_CALLS | TRACE_CCALLS); - else - doit = 0; - } - } - - if (doit != 0) { - if (tracefp == 0) - tracefp = stderr; - if (before || after) { - int n; - for (n = 1; n < level; n++) - fputs("+ ", tracefp); - } - va_start(ap, fmt); - vfprintf(tracefp, fmt, ap); - fputc('\n', tracefp); - va_end(ap); - fflush(tracefp); - } - - if (after && level) - level--; - errno = save_err; -} - -/* Trace 'bool' return-values */ -NCURSES_EXPORT(NCURSES_BOOL) -_nc_retrace_bool(NCURSES_BOOL code) -{ - T((T_RETURN("%s"), code ? "TRUE" : "FALSE")); - return code; -} - -/* Trace 'int' return-values */ -NCURSES_EXPORT(int) -_nc_retrace_int(int code) -{ - T((T_RETURN("%d"), code)); - return code; -} - -/* Trace 'unsigned' return-values */ -NCURSES_EXPORT(unsigned) -_nc_retrace_unsigned(unsigned code) -{ - T((T_RETURN("%#x"), code)); - return code; -} - -/* Trace 'char*' return-values */ -NCURSES_EXPORT(char *) -_nc_retrace_ptr(char *code) -{ - T((T_RETURN("%s"), _nc_visbuf(code))); - return code; -} - -/* Trace 'SCREEN *' return-values */ -NCURSES_EXPORT(SCREEN *) -_nc_retrace_sp(SCREEN * code) -{ - T((T_RETURN("%p"), code)); - return code; -} - -/* Trace 'WINDOW *' return-values */ -NCURSES_EXPORT(WINDOW *) -_nc_retrace_win(WINDOW *code) -{ - T((T_RETURN("%p"), code)); - return code; -} -#endif /* TRACE */ diff --git a/Build/source/libs/ncurses/ncurses/trace/lib_traceatr.c b/Build/source/libs/ncurses/ncurses/trace/lib_traceatr.c deleted file mode 100644 index c202f72626e..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/lib_traceatr.c +++ /dev/null @@ -1,310 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas Dickey 1996-on * - * and: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_traceatr.c - Tracing/Debugging routines (attributes) - */ - -#include -#include /* acs_chars */ - -MODULE_ID("$Id: lib_traceatr.c,v 1.49 2004/10/16 21:43:13 tom Exp $") - -#define COLOR_OF(c) (c < 0 || c > 7 ? "default" : colors[c].name) - -#ifdef TRACE - -static const char l_brace[] = {L_BRACE, 0}; -static const char r_brace[] = {R_BRACE, 0}; - -NCURSES_EXPORT(char *) -_traceattr2(int bufnum, attr_t newmode) -{ - char *buf = _nc_trace_buf(bufnum, BUFSIZ); - char temp[80]; - static const struct { - unsigned int val; - const char *name; - } names[] = - { - /* *INDENT-OFF* */ - { A_STANDOUT, "A_STANDOUT" }, - { A_UNDERLINE, "A_UNDERLINE" }, - { A_REVERSE, "A_REVERSE" }, - { A_BLINK, "A_BLINK" }, - { A_DIM, "A_DIM" }, - { A_BOLD, "A_BOLD" }, - { A_ALTCHARSET, "A_ALTCHARSET" }, - { A_INVIS, "A_INVIS" }, - { A_PROTECT, "A_PROTECT" }, - { A_CHARTEXT, "A_CHARTEXT" }, - { A_NORMAL, "A_NORMAL" }, - { A_COLOR, "A_COLOR" }, - /* *INDENT-ON* */ - - }, - colors[] = - { - /* *INDENT-OFF* */ - { COLOR_BLACK, "COLOR_BLACK" }, - { COLOR_RED, "COLOR_RED" }, - { COLOR_GREEN, "COLOR_GREEN" }, - { COLOR_YELLOW, "COLOR_YELLOW" }, - { COLOR_BLUE, "COLOR_BLUE" }, - { COLOR_MAGENTA, "COLOR_MAGENTA" }, - { COLOR_CYAN, "COLOR_CYAN" }, - { COLOR_WHITE, "COLOR_WHITE" }, - /* *INDENT-ON* */ - - }; - size_t n; - unsigned save_nc_tracing = _nc_tracing; - _nc_tracing = 0; - - strcpy(buf, l_brace); - - for (n = 0; n < SIZEOF(names); n++) { - if ((newmode & names[n].val) != 0) { - if (buf[1] != '\0') - buf = _nc_trace_bufcat(bufnum, "|"); - buf = _nc_trace_bufcat(bufnum, names[n].name); - - if (names[n].val == A_COLOR) { - short pairnum = PAIR_NUMBER(newmode); - short fg, bg; - - if (pair_content(pairnum, &fg, &bg) == OK) { - (void) sprintf(temp, - "{%d = {%s, %s}}", - pairnum, - COLOR_OF(fg), - COLOR_OF(bg)); - } else { - (void) sprintf(temp, "{%d}", pairnum); - } - buf = _nc_trace_bufcat(bufnum, temp); - } - } - } - if (ChAttrOf(newmode) == A_NORMAL) { - if (buf[1] != '\0') - (void) _nc_trace_bufcat(bufnum, "|"); - (void) _nc_trace_bufcat(bufnum, "A_NORMAL"); - } - - _nc_tracing = save_nc_tracing; - return (_nc_trace_bufcat(bufnum, r_brace)); -} - -NCURSES_EXPORT(char *) -_traceattr(attr_t newmode) -{ - return _traceattr2(0, newmode); -} - -/* Trace 'int' return-values */ -NCURSES_EXPORT(attr_t) -_nc_retrace_attr_t(attr_t code) -{ - T((T_RETURN("%s"), _traceattr(code))); - return code; -} - -const char * -_nc_altcharset_name(attr_t attr, chtype ch) -{ - const char *result = 0; - - if ((attr & A_ALTCHARSET) && (acs_chars != 0)) { - char *cp; - char *found = 0; - static const struct { - unsigned int val; - const char *name; - } names[] = - { - /* *INDENT-OFF* */ - { 'l', "ACS_ULCORNER" }, /* upper left corner */ - { 'm', "ACS_LLCORNER" }, /* lower left corner */ - { 'k', "ACS_URCORNER" }, /* upper right corner */ - { 'j', "ACS_LRCORNER" }, /* lower right corner */ - { 't', "ACS_LTEE" }, /* tee pointing right */ - { 'u', "ACS_RTEE" }, /* tee pointing left */ - { 'v', "ACS_BTEE" }, /* tee pointing up */ - { 'w', "ACS_TTEE" }, /* tee pointing down */ - { 'q', "ACS_HLINE" }, /* horizontal line */ - { 'x', "ACS_VLINE" }, /* vertical line */ - { 'n', "ACS_PLUS" }, /* large plus or crossover */ - { 'o', "ACS_S1" }, /* scan line 1 */ - { 's', "ACS_S9" }, /* scan line 9 */ - { '`', "ACS_DIAMOND" }, /* diamond */ - { 'a', "ACS_CKBOARD" }, /* checker board (stipple) */ - { 'f', "ACS_DEGREE" }, /* degree symbol */ - { 'g', "ACS_PLMINUS" }, /* plus/minus */ - { '~', "ACS_BULLET" }, /* bullet */ - { ',', "ACS_LARROW" }, /* arrow pointing left */ - { '+', "ACS_RARROW" }, /* arrow pointing right */ - { '.', "ACS_DARROW" }, /* arrow pointing down */ - { '-', "ACS_UARROW" }, /* arrow pointing up */ - { 'h', "ACS_BOARD" }, /* board of squares */ - { 'i', "ACS_LANTERN" }, /* lantern symbol */ - { '0', "ACS_BLOCK" }, /* solid square block */ - { 'p', "ACS_S3" }, /* scan line 3 */ - { 'r', "ACS_S7" }, /* scan line 7 */ - { 'y', "ACS_LEQUAL" }, /* less/equal */ - { 'z', "ACS_GEQUAL" }, /* greater/equal */ - { '{', "ACS_PI" }, /* Pi */ - { '|', "ACS_NEQUAL" }, /* not equal */ - { '}', "ACS_STERLING" }, /* UK pound sign */ - { '\0', (char *) 0 } - /* *INDENT-OFF* */ - }, - *sp; - - for (cp = acs_chars; cp[0] && cp[1]; cp += 2) { - if (ChCharOf(cp[1]) == ChCharOf(ch)) { - found = cp; - /* don't exit from loop - there may be redefinitions */ - } - } - - if (found != 0) { - ch = ChCharOf(*found); - for (sp = names; sp->val; sp++) - if (sp->val == ch) { - result = sp->name; - break; - } - } - } - return result; -} - -NCURSES_EXPORT(char *) -_tracechtype2(int bufnum, chtype ch) -{ - const char *found; - - strcpy(_nc_trace_buf(bufnum, BUFSIZ), l_brace); - if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) { - (void) _nc_trace_bufcat(bufnum, found); - } else - (void) _nc_trace_bufcat(bufnum, _tracechar(ChCharOf(ch))); - - if (ChAttrOf(ch) != A_NORMAL) { - (void) _nc_trace_bufcat(bufnum, " | "); - (void) _nc_trace_bufcat(bufnum, - _traceattr2(bufnum + 20, ChAttrOf(ch))); - } - - return (_nc_trace_bufcat(bufnum, r_brace)); -} - -NCURSES_EXPORT(char *) -_tracechtype (chtype ch) -{ - return _tracechtype2(0, ch); -} - -/* Trace 'chtype' return-values */ -NCURSES_EXPORT(chtype) -_nc_retrace_chtype (chtype code) -{ - T((T_RETURN("%s"), _tracechtype(code))); - return code; -} - -#if USE_WIDEC_SUPPORT -NCURSES_EXPORT(char *) -_tracecchar_t2 (int bufnum, const cchar_t *ch) -{ - char *buf = _nc_trace_buf(bufnum, BUFSIZ); - attr_t attr; - const char *found; - - strcpy(buf, l_brace); - if (ch != 0) { - attr = AttrOfD(ch); - if ((found = _nc_altcharset_name(attr, CharOfD(ch))) != 0) { - (void) _nc_trace_bufcat(bufnum, found); - attr &= ~A_ALTCHARSET; - } else if (isnac(CHDEREF(ch))) { - (void) _nc_trace_bufcat(bufnum, "{NAC}"); - attr &= ~WA_NAC; - } else { - PUTC_DATA; - int n; - - PUTC_INIT; - (void) _nc_trace_bufcat(bufnum, "{ "); - do { - PUTC_ch = PUTC_i < CCHARW_MAX ? ch->chars[PUTC_i] : L'\0'; - PUTC_n = wcrtomb(PUTC_buf, ch->chars[PUTC_i], &PUT_st); - if (PUTC_ch == L'\0') - --PUTC_n; - if (PUTC_n <= 0) { - if (PUTC_ch != L'\0') { - /* it could not be a multibyte sequence */ - (void) _nc_trace_bufcat(bufnum, _tracechar(UChar(ch->chars[PUTC_i]))); - } - break; - } - for (n = 0; n < PUTC_n; n++) { - if (n) - (void) _nc_trace_bufcat(bufnum, ", "); - (void) _nc_trace_bufcat(bufnum, _tracechar(UChar(PUTC_buf[n]))); - } - ++PUTC_i; - } while (PUTC_ch != L'\0'); - (void) _nc_trace_bufcat(bufnum, " }"); - } - if (attr != A_NORMAL) { - (void) _nc_trace_bufcat(bufnum, " | "); - (void) _nc_trace_bufcat(bufnum, _traceattr2(bufnum + 20, attr)); - } - } - - return (_nc_trace_bufcat(bufnum, r_brace)); -} - -NCURSES_EXPORT(char *) -_tracecchar_t (const cchar_t *ch) -{ - return _tracecchar_t2(0, ch); -} -#endif - -#else -empty_module(_nc_lib_traceatr) -#endif /* TRACE */ diff --git a/Build/source/libs/ncurses/ncurses/trace/lib_tracebits.c b/Build/source/libs/ncurses/ncurses/trace/lib_tracebits.c deleted file mode 100644 index e681862649a..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/lib_tracebits.c +++ /dev/null @@ -1,248 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -#include -#include /* cur_term */ - -MODULE_ID("$Id: lib_tracebits.c,v 1.12 2002/05/25 14:35:07 tom Exp $") - -#if SVR4_TERMIO && !defined(_POSIX_SOURCE) -#define _POSIX_SOURCE -#endif - -#if HAVE_SYS_TERMIO_H -#include /* needed for ISC */ -#endif - -#ifdef __EMX__ -#include -#endif - -/* may be undefined if we're using termio.h */ -#ifndef TOSTOP -#define TOSTOP 0 -#endif -#ifndef IEXTEN -#define IEXTEN 0 -#endif - -#ifdef TRACE - -typedef struct { - unsigned int val; - const char *name; -} BITNAMES; - -static void -lookup_bits(char *buf, const BITNAMES * table, const char *label, unsigned int val) -{ - const BITNAMES *sp; - - (void) strcat(buf, label); - (void) strcat(buf, ": {"); - for (sp = table; sp->name; sp++) - if (sp->val != 0 - && (val & sp->val) == sp->val) { - (void) strcat(buf, sp->name); - (void) strcat(buf, ", "); - } - if (buf[strlen(buf) - 2] == ',') - buf[strlen(buf) - 2] = '\0'; - (void) strcat(buf, "} "); -} - -NCURSES_EXPORT(char *) -_nc_trace_ttymode(TTY * tty) -/* describe the state of the terminal control bits exactly */ -{ - char *buf; - -#ifdef TERMIOS - static const BITNAMES iflags[] = - { - {BRKINT, "BRKINT"}, - {IGNBRK, "IGNBRK"}, - {IGNPAR, "IGNPAR"}, - {PARMRK, "PARMRK"}, - {INPCK, "INPCK"}, - {ISTRIP, "ISTRIP"}, - {INLCR, "INLCR"}, - {IGNCR, "IGNC"}, - {ICRNL, "ICRNL"}, - {IXON, "IXON"}, - {IXOFF, "IXOFF"}, - {0, NULL} -#define ALLIN (BRKINT|IGNBRK|IGNPAR|PARMRK|INPCK|ISTRIP|INLCR|IGNCR|ICRNL|IXON|IXOFF) - }, oflags[] = - { - {OPOST, "OPOST"}, - {0, NULL} -#define ALLOUT (OPOST) - }, cflags[] = - { - {CLOCAL, "CLOCAL"}, - {CREAD, "CREAD"}, - {CSTOPB, "CSTOPB"}, -#if !defined(CS5) || !defined(CS8) - {CSIZE, "CSIZE"}, -#endif - {HUPCL, "HUPCL"}, - {PARENB, "PARENB"}, - {PARODD | PARENB, "PARODD"}, /* concession to readability */ - {0, NULL} -#define ALLCTRL (CLOCAL|CREAD|CSIZE|CSTOPB|HUPCL|PARENB|PARODD) - }, lflags[] = - { - {ECHO, "ECHO"}, - {ECHOE | ECHO, "ECHOE"}, /* concession to readability */ - {ECHOK | ECHO, "ECHOK"}, /* concession to readability */ - {ECHONL, "ECHONL"}, - {ICANON, "ICANON"}, - {ISIG, "ISIG"}, - {NOFLSH, "NOFLSH"}, - {TOSTOP, "TOSTOP"}, - {IEXTEN, "IEXTEN"}, - {0, NULL} -#define ALLLOCAL (ECHO|ECHONL|ICANON|ISIG|NOFLSH|TOSTOP|IEXTEN) - }; - - buf = _nc_trace_buf(0, - 8 + sizeof(iflags) + - 8 + sizeof(oflags) + - 8 + sizeof(cflags) + - 8 + sizeof(lflags) + - 8); - - if (tty->c_iflag & ALLIN) - lookup_bits(buf, iflags, "iflags", tty->c_iflag); - - if (tty->c_oflag & ALLOUT) - lookup_bits(buf, oflags, "oflags", tty->c_oflag); - - if (tty->c_cflag & ALLCTRL) - lookup_bits(buf, cflags, "cflags", tty->c_cflag); - -#if defined(CS5) && defined(CS8) - { - static struct { - const char *name; - int value; - } csizes[] = { - { - "CS5 ", CS5 - }, -#ifdef CS6 - { - "CS6 ", CS6 - }, -#endif -#ifdef CS7 - { - "CS7 ", CS7 - }, -#endif - { - "CS8 ", CS8 - }, - }; - const char *result = "CSIZE? "; - int value = (tty->c_cflag & CSIZE); - unsigned n; - - if (value != 0) { - for (n = 0; n < SIZEOF(csizes); n++) { - if (csizes[n].value == value) { - result = csizes[n].name; - break; - } - } - } - strcat(buf, result); - } -#endif - - if (tty->c_lflag & ALLLOCAL) - lookup_bits(buf, lflags, "lflags", tty->c_lflag); - -#else - /* reference: ttcompat(4M) on SunOS 4.1 */ -#ifndef EVENP -#define EVENP 0 -#endif -#ifndef LCASE -#define LCASE 0 -#endif -#ifndef LLITOUT -#define LLITOUT 0 -#endif -#ifndef ODDP -#define ODDP 0 -#endif -#ifndef TANDEM -#define TANDEM 0 -#endif - - static const BITNAMES cflags[] = - { - {CBREAK, "CBREAK"}, - {CRMOD, "CRMOD"}, - {ECHO, "ECHO"}, - {EVENP, "EVENP"}, - {LCASE, "LCASE"}, - {LLITOUT, "LLITOUT"}, - {ODDP, "ODDP"}, - {RAW, "RAW"}, - {TANDEM, "TANDEM"}, - {XTABS, "XTABS"}, - {0, NULL} -#define ALLCTRL (CBREAK|CRMOD|ECHO|EVENP|LCASE|LLITOUT|ODDP|RAW|TANDEM|XTABS) - }; - - buf = _nc_trace_buf(0, - 8 + sizeof(cflags)); - - if (tty->sg_flags & ALLCTRL) { - lookup_bits(buf, cflags, "cflags", tty->sg_flags); - } -#endif - return (buf); -} - -NCURSES_EXPORT(char *) -_nc_tracebits(void) -{ - return _nc_trace_ttymode(&(cur_term->Nttyb)); -} -#else -empty_module(_nc_tracebits) -#endif /* TRACE */ diff --git a/Build/source/libs/ncurses/ncurses/trace/lib_tracechr.c b/Build/source/libs/ncurses/ncurses/trace/lib_tracechr.c deleted file mode 100644 index e279b95c257..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/lib_tracechr.c +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_tracechr.c - Tracing/Debugging routines - */ -#include - -#include - -MODULE_ID("$Id: lib_tracechr.c,v 1.11 2004/04/03 22:45:03 tom Exp $") - -#ifdef TRACE -NCURSES_EXPORT(char *) -_tracechar(int ch) -{ - static char result[40]; - NCURSES_CONST char *name; - - if (ch > KEY_MIN || ch < 0) { - name = keyname(ch); - if (name == 0 || *name == '\0') - name = "NULL"; - (void) sprintf(result, "'%.30s' = %#03o", name, ch); - } else if (!is8bits(ch) || !isprint(UChar(ch))) { - /* - * workaround for glibc bug: - * sprintf changes the result from unctrl() to an empty string if it - * does not correspond to a valid multibyte sequence. - */ - (void) sprintf(result, "%#03o", ch); - } else { - name = unctrl(ch); - if (name == 0 || *name == 0) - name = "null"; /* shouldn't happen */ - (void) sprintf(result, "'%.30s' = %#03o", name, ch); - } - return (result); -} -#else -empty_module(_nc_lib_tracechr) -#endif diff --git a/Build/source/libs/ncurses/ncurses/trace/lib_tracedmp.c b/Build/source/libs/ncurses/ncurses/trace/lib_tracedmp.c deleted file mode 100644 index c63cb564a0e..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/lib_tracedmp.c +++ /dev/null @@ -1,146 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1996-2001 * - * and: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_tracedmp.c - Tracing/Debugging routines - */ - -#include -#include - -MODULE_ID("$Id: lib_tracedmp.c,v 1.25 2002/09/22 22:21:38 tom Exp $") - -#ifdef TRACE -NCURSES_EXPORT(void) -_tracedump(const char *name, WINDOW *win) -{ - static char *buf = 0; - static size_t used = 0; - - int i, j, n, width; - - /* compute narrowest possible display width */ - for (width = i = 0; i <= win->_maxy; ++i) { - n = 0; - for (j = 0; j <= win->_maxx; ++j) - if (CharOf(win->_line[i].text[j]) != L(' ') - || AttrOf(win->_line[i].text[j]) != A_NORMAL) - n = j; - - if (n > width) - width = n; - } - if (width < win->_maxx) - ++width; - if (++width + 1 > (int) used) { - used = 2 * (width + 1); - buf = typeRealloc(char, used, buf); - } - - for (n = 0; n <= win->_maxy; ++n) { - char *ep = buf; - bool haveattrs, havecolors; - - /* - * Dump A_CHARTEXT part. It is more important to make the grid line up - * in the trace file than to represent control- and wide-characters, so - * we map those to '.' and '?' respectively. - */ - for (j = 0; j < width; ++j) { - chtype test = CharOf(win->_line[n].text[j]); - ep[j] = (UChar(test) == test -#if USE_WIDEC_SUPPORT - && (win->_line[n].text[j].chars[1] == 0) -#endif - ) - ? (iscntrl(UChar(test)) - ? '.' - : UChar(test)) - : '?'; - } - ep[j] = '\0'; - _tracef("%s[%2d] %3d%3d ='%s'", - name, n, - win->_line[n].firstchar, - win->_line[n].lastchar, - ep); - - /* dump A_COLOR part, will screw up if there are more than 96 */ - havecolors = FALSE; - for (j = 0; j < width; ++j) - if (AttrOf(win->_line[n].text[j]) & A_COLOR) { - havecolors = TRUE; - break; - } - if (havecolors) { - ep = buf; - for (j = 0; j < width; ++j) - ep[j] = UChar(AttrOf(win->_line[n].text[j]) >> - NCURSES_ATTR_SHIFT) + ' '; - ep[j] = '\0'; - _tracef("%*s[%2d]%*s='%s'", (int) strlen(name), - "colors", n, 8, " ", buf); - } - - for (i = 0; i < 4; ++i) { - const char *hex = " 123456789ABCDEF"; - attr_t mask = (0xf << ((i + 4) * 4)); - - haveattrs = FALSE; - for (j = 0; j < width; ++j) - if (AttrOf(win->_line[n].text[j]) & mask) { - haveattrs = TRUE; - break; - } - if (haveattrs) { - ep = buf; - for (j = 0; j < width; ++j) - ep[j] = hex[(AttrOf(win->_line[n].text[j]) & mask) >> - ((i + 4) * 4)]; - ep[j] = '\0'; - _tracef("%*s%d[%2d]%*s='%s'", (int) strlen(name) - - 1, "attrs", i, n, 8, " ", buf); - } - } - } -#if NO_LEAKS - free(buf); - buf = 0; - used = 0; -#endif -} - -#else -empty_module(_nc_lib_tracedmp) -#endif /* TRACE */ diff --git a/Build/source/libs/ncurses/ncurses/trace/lib_tracemse.c b/Build/source/libs/ncurses/ncurses/trace/lib_tracemse.c deleted file mode 100644 index f4a100b6eb4..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/lib_tracemse.c +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * lib_tracemse.c - Tracing/Debugging routines (mouse events) - */ - -#include - -MODULE_ID("$Id: lib_tracemse.c,v 1.10 2002/01/12 22:32:25 tom Exp $") - -#ifdef TRACE - -NCURSES_EXPORT(char *) -_tracemouse(MEVENT const *ep) -{ - static char buf[80]; - - (void) sprintf(buf, "id %2d at (%2d, %2d, %2d) state %4lx = {", - ep->id, ep->x, ep->y, ep->z, ep->bstate); - -#define SHOW(m, s) if ((ep->bstate & m) == m) strcat(strcat(buf, s), ", ") - SHOW(BUTTON1_RELEASED, "release-1"); - SHOW(BUTTON1_PRESSED, "press-1"); - SHOW(BUTTON1_CLICKED, "click-1"); - SHOW(BUTTON1_DOUBLE_CLICKED, "doubleclick-1"); - SHOW(BUTTON1_TRIPLE_CLICKED, "tripleclick-1"); - SHOW(BUTTON1_RESERVED_EVENT, "reserved-1"); - SHOW(BUTTON2_RELEASED, "release-2"); - SHOW(BUTTON2_PRESSED, "press-2"); - SHOW(BUTTON2_CLICKED, "click-2"); - SHOW(BUTTON2_DOUBLE_CLICKED, "doubleclick-2"); - SHOW(BUTTON2_TRIPLE_CLICKED, "tripleclick-2"); - SHOW(BUTTON2_RESERVED_EVENT, "reserved-2"); - SHOW(BUTTON3_RELEASED, "release-3"); - SHOW(BUTTON3_PRESSED, "press-3"); - SHOW(BUTTON3_CLICKED, "click-3"); - SHOW(BUTTON3_DOUBLE_CLICKED, "doubleclick-3"); - SHOW(BUTTON3_TRIPLE_CLICKED, "tripleclick-3"); - SHOW(BUTTON3_RESERVED_EVENT, "reserved-3"); - SHOW(BUTTON4_RELEASED, "release-4"); - SHOW(BUTTON4_PRESSED, "press-4"); - SHOW(BUTTON4_CLICKED, "click-4"); - SHOW(BUTTON4_DOUBLE_CLICKED, "doubleclick-4"); - SHOW(BUTTON4_TRIPLE_CLICKED, "tripleclick-4"); - SHOW(BUTTON4_RESERVED_EVENT, "reserved-4"); - SHOW(BUTTON_CTRL, "ctrl"); - SHOW(BUTTON_SHIFT, "shift"); - SHOW(BUTTON_ALT, "alt"); - SHOW(ALL_MOUSE_EVENTS, "all-events"); - SHOW(REPORT_MOUSE_POSITION, "position"); -#undef SHOW - - if (buf[strlen(buf) - 1] == ' ') - buf[strlen(buf) - 2] = '\0'; - (void) strcat(buf, "}"); - return (buf); -} - -#else /* !TRACE */ -empty_module(_nc_lib_tracemouse) -#endif diff --git a/Build/source/libs/ncurses/ncurses/trace/trace_buf.c b/Build/source/libs/ncurses/ncurses/trace/trace_buf.c deleted file mode 100644 index 85b4fbe682e..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/trace_buf.c +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1997 * - ****************************************************************************/ -/* - * trace_buf.c - Tracing/Debugging buffers (attributes) - */ - -#include - -MODULE_ID("$Id: trace_buf.c,v 1.12 2003/03/15 21:21:36 tom Exp $") - -typedef struct { - char *text; - size_t size; -} LIST; - -static char * -_nc_trace_alloc(int bufnum, size_t want) -{ - char *result = 0; - static LIST *list; - static size_t have; - - if (bufnum >= 0) { - if ((size_t) (bufnum + 1) > have) { - size_t need = (bufnum + 1) * 2; - if ((list = typeRealloc(LIST, need, list)) == 0) - return (0); - while (need > have) - list[have++].text = 0; - } - - if (list[bufnum].text == 0 - || want > list[bufnum].size) { - if ((list[bufnum].text = typeRealloc(char, want, list[bufnum].text)) - != 0) - list[bufnum].size = want; - } - - result = list[bufnum].text; - } -#if NO_LEAKS - else { - if (have) { - while (have--) { - if (list[have].text != 0) - free(list[have].text); - } - free(list); - } - } -#endif - return result; -} - -/* - * (re)Allocate a buffer big enough for the caller's wants. - */ -NCURSES_EXPORT(char *) -_nc_trace_buf(int bufnum, size_t want) -{ - char *result = _nc_trace_alloc(bufnum, want); - if (result != 0) - *result = '\0'; - return result; -} - -/* - * Append a new string to an existing buffer. - */ -NCURSES_EXPORT(char *) -_nc_trace_bufcat(int bufnum, const char *value) -{ - char *buffer = _nc_trace_alloc(bufnum, 0); - size_t have = strlen(buffer); - - buffer = _nc_trace_alloc(bufnum, 1 + have + strlen(value)); - (void) strcpy(buffer + have, value); - - return buffer; -} diff --git a/Build/source/libs/ncurses/ncurses/trace/trace_tries.c b/Build/source/libs/ncurses/ncurses/trace/trace_tries.c deleted file mode 100644 index d7033227e25..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/trace_tries.c +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1999,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1999 * - ****************************************************************************/ -/* - * trace_tries.c - Tracing/Debugging buffers (keycode tries-trees) - */ - -#include - -MODULE_ID("$Id: trace_tries.c,v 1.10 2001/10/20 22:42:51 tom Exp $") - -#ifdef TRACE -static unsigned char *buffer; -static unsigned len; - -static void -recur_tries(struct tries *tree, unsigned level) -{ - if (level > len) - buffer = (unsigned char *) realloc(buffer, len = (level + 1) * 4); - - while (tree != 0) { - if ((buffer[level] = tree->ch) == 0) - buffer[level] = 128; - buffer[level + 1] = 0; - if (tree->value != 0) { - _tracef("%5d: %s (%s)", tree->value, - _nc_visbuf((char *) buffer), keyname(tree->value)); - } - if (tree->child) - recur_tries(tree->child, level + 1); - tree = tree->sibling; - } -} - -NCURSES_EXPORT(void) -_nc_trace_tries(struct tries *tree) -{ - buffer = typeMalloc(unsigned char, len = 80); - _tracef("BEGIN tries %p", tree); - recur_tries(tree, 0); - _tracef(". . . tries %p", tree); - free(buffer); -} - -#else -empty_module(_nc_trace_tries) -#endif diff --git a/Build/source/libs/ncurses/ncurses/trace/trace_xnames.c b/Build/source/libs/ncurses/ncurses/trace/trace_xnames.c deleted file mode 100644 index 9b0b5920d81..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/trace_xnames.c +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1999,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1999 * - ****************************************************************************/ -/* - * trace_xnames.c - Tracing/Debugging buffers (TERMTYPE extended names) - */ - -#include -#include - -MODULE_ID("$Id: trace_xnames.c,v 1.5 2000/12/10 03:02:45 tom Exp $") - -NCURSES_EXPORT(void) -_nc_trace_xnames(TERMTYPE * tp GCC_UNUSED) -{ -#ifdef TRACE -#if NCURSES_XNAMES - int limit = tp->ext_Booleans + tp->ext_Numbers + tp->ext_Strings; - int n, m; - if (limit) { - int begin_num = tp->ext_Booleans; - int begin_str = tp->ext_Booleans + tp->ext_Numbers; - - _tracef("extended names (%s) %d = %d+%d+%d of %d+%d+%d", - tp->term_names, - limit, - tp->ext_Booleans, tp->ext_Numbers, tp->ext_Strings, - tp->num_Booleans, tp->num_Numbers, tp->num_Strings); - for (n = 0; n < limit; n++) { - if ((m = n - begin_str) >= 0) { - _tracef("[%d] %s = %s", n, - tp->ext_Names[n], - _nc_visbuf(tp->Strings[tp->num_Strings + m - tp->ext_Strings])); - } else if ((m = n - begin_num) >= 0) { - _tracef("[%d] %s = %d (num)", n, - tp->ext_Names[n], - tp->Numbers[tp->num_Numbers + m - tp->ext_Numbers]); - } else { - _tracef("[%d] %s = %d (bool)", n, - tp->ext_Names[n], - tp->Booleans[tp->num_Booleans + n - tp->ext_Booleans]); - } - } - } -#endif -#endif -} diff --git a/Build/source/libs/ncurses/ncurses/trace/varargs.c b/Build/source/libs/ncurses/ncurses/trace/varargs.c deleted file mode 100644 index aee2010546a..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/varargs.c +++ /dev/null @@ -1,182 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2001-2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 2001 * - ****************************************************************************/ - -#include - -#include - -MODULE_ID("$Id: varargs.c,v 1.4 2003/05/24 21:10:28 tom Exp $") - -#ifdef TRACE - -#define MAX_PARMS 10 - -typedef enum { - atUnknown = 0, atInteger, atFloat, atPoint, atString -} ARGTYPE; - -#define VA_INT(type) ival = va_arg(ap, type) -#define VA_FLT(type) fval = va_arg(ap, type) -#define VA_PTR(type) pval = (char *)va_arg(ap, type) -#define VA_STR(type) sval = va_arg(ap, type) - -/* - * Returns a string that represents the parameter list of a printf-style call. - */ -NCURSES_EXPORT(char *) -_nc_varargs(const char *fmt, va_list ap) -{ - static char dummy[] = ""; - static char *result_buf; - static size_t result_len; - - char buffer[BUFSIZ]; - const char *param; - int n; - - if (fmt == 0 || *fmt == '\0') - return dummy; - if (result_len == 0) - result_buf = typeMalloc(char, result_len = BUFSIZ); - if (result_buf == 0) - return dummy; - *result_buf = '\0'; - - while (*fmt != '\0') { - if (*fmt == '%') { - char *pval = 0; /* avoid const-cast */ - const char *sval = ""; - double fval = 0.0; - int done = FALSE; - int ival = 0; - int type = 0; - ARGTYPE parm[MAX_PARMS]; - int parms = 0; - ARGTYPE used = atUnknown; - - while (*++fmt != '\0' && !done) { - - if (*fmt == '*') { - VA_INT(int); - if (parms < MAX_PARMS) - parm[parms++] = atInteger; - } else if (isalpha(UChar(*fmt))) { - done = TRUE; - switch (*fmt) { - case 'Z': /* FALLTHRU */ - case 'h': /* FALLTHRU */ - case 'l': /* FALLTHRU */ - done = FALSE; - type = *fmt; - break; - case 'i': /* FALLTHRU */ - case 'd': /* FALLTHRU */ - case 'u': /* FALLTHRU */ - case 'x': /* FALLTHRU */ - case 'X': /* FALLTHRU */ - if (type == 'l') - VA_INT(long); - else if (type == 'Z') - VA_INT(size_t); - else - VA_INT(int); - used = atInteger; - break; - case 'f': /* FALLTHRU */ - case 'e': /* FALLTHRU */ - case 'E': /* FALLTHRU */ - case 'g': /* FALLTHRU */ - case 'G': /* FALLTHRU */ - VA_FLT(double); - used = atFloat; - break; - case 'c': - VA_INT(int); - used = atInteger; - break; - case 's': - VA_STR(const char *); - used = atString; - break; - case 'p': - VA_PTR(void *); - used = atPoint; - break; - case 'n': - VA_PTR(int *); - used = atPoint; - break; - default: - break; - } - } else if (*fmt == '%') { - done = TRUE; - } - if (used != atUnknown && parms < MAX_PARMS) { - parm[parms++] = used; - for (n = 0; n < parms; ++n) { - used = parm[n]; - param = buffer; - switch (used) { - case atInteger: - sprintf(buffer, "%d", ival); - break; - case atFloat: - sprintf(buffer, "%f", fval); - break; - case atPoint: - sprintf(buffer, "%p", pval); - break; - case atString: - param = _nc_visbuf2(1, sval); - break; - default: - strcpy(buffer, "?"); - break; - } - result_len += strlen(param) + 2; - result_buf = typeRealloc(char, result_len, result_buf); - sprintf(result_buf + strlen(result_buf), ", %s", param); - } - } - used = atUnknown; - } - } else { - fmt++; - } - } - - return (result_buf); -} -#else -empty_module(_nc_varargs) -#endif diff --git a/Build/source/libs/ncurses/ncurses/trace/visbuf.c b/Build/source/libs/ncurses/ncurses/trace/visbuf.c deleted file mode 100644 index 6488eb7426f..00000000000 --- a/Build/source/libs/ncurses/ncurses/trace/visbuf.c +++ /dev/null @@ -1,290 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2001-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 1996-2004 * - * and: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * visbuf.c - Tracing/Debugging support routines - */ - -#include - -#include -#include - -MODULE_ID("$Id: visbuf.c,v 1.10 2004/09/25 20:56:22 tom Exp $") - -static char * -_nc_vischar(char *tp, unsigned c) -{ - if (c == '"' || c == '\\') { - *tp++ = '\\'; - *tp++ = c; - } else if (is7bits(c) && (isgraph(c) || c == ' ')) { - *tp++ = c; - } else if (c == '\n') { - *tp++ = '\\'; - *tp++ = 'n'; - } else if (c == '\r') { - *tp++ = '\\'; - *tp++ = 'r'; - } else if (c == '\b') { - *tp++ = '\\'; - *tp++ = 'b'; - } else if (c == '\033') { - *tp++ = '\\'; - *tp++ = 'e'; - } else if (is7bits(c) && iscntrl(UChar(c))) { - *tp++ = '\\'; - *tp++ = '^'; - *tp++ = '@' + c; - } else { - sprintf(tp, "\\%03lo", ChCharOf(c)); - tp += strlen(tp); - } - *tp = 0; - return tp; -} - -static const char * -_nc_visbuf2n(int bufnum, const char *buf, int len) -{ - char *vbuf; - char *tp; - int c; - - if (buf == 0) - return ("(null)"); - if (buf == CANCELLED_STRING) - return ("(cancelled)"); - - if (len < 0) - len = strlen(buf); - -#ifdef TRACE - tp = vbuf = _nc_trace_buf(bufnum, (unsigned) (len * 4) + 5); -#else - { - static char *mybuf[2]; - mybuf[bufnum] = typeRealloc(char, (unsigned) (len * 4) + 5, mybuf[bufnum]); - tp = vbuf = mybuf[bufnum]; - } -#endif - *tp++ = D_QUOTE; - while ((--len >= 0) && (c = *buf++) != '\0') { - tp = _nc_vischar(tp, UChar(c)); - } - *tp++ = D_QUOTE; - *tp++ = '\0'; - return (vbuf); -} - -NCURSES_EXPORT(const char *) -_nc_visbuf2(int bufnum, const char *buf) -{ - return _nc_visbuf2n(bufnum, buf, -1); -} - -NCURSES_EXPORT(const char *) -_nc_visbuf(const char *buf) -{ - return _nc_visbuf2(0, buf); -} - -NCURSES_EXPORT(const char *) -_nc_visbufn(const char *buf, int len) -{ - return _nc_visbuf2n(0, buf, len); -} - -#if USE_WIDEC_SUPPORT -#ifdef TRACE -static const char * -_nc_viswbuf2n(int bufnum, const wchar_t * buf, int len) -{ - char *vbuf; - char *tp; - wchar_t c; - - if (buf == 0) - return ("(null)"); - - if (len < 0) - len = wcslen(buf); - -#ifdef TRACE - tp = vbuf = _nc_trace_buf(bufnum, (unsigned) (len * 4) + 5); -#else - { - static char *mybuf[2]; - mybuf[bufnum] = typeRealloc(char, (unsigned) (len * 4) + 5, mybuf[bufnum]); - tp = vbuf = mybuf[bufnum]; - } -#endif - *tp++ = D_QUOTE; - while ((--len >= 0) && (c = *buf++) != '\0') { - char temp[CCHARW_MAX + 80]; - int j = wctomb(temp, c), k; - if (j <= 0) { - sprintf(temp, "\\u%08X", (wint_t) c); - j = strlen(temp); - } - for (k = 0; k < j; ++k) { - tp = _nc_vischar(tp, temp[k]); - } - } - *tp++ = D_QUOTE; - *tp++ = '\0'; - return (vbuf); -} - -NCURSES_EXPORT(const char *) -_nc_viswbuf2(int bufnum, const wchar_t * buf) -{ - return _nc_viswbuf2n(bufnum, buf, -1); -} - -NCURSES_EXPORT(const char *) -_nc_viswbuf(const wchar_t * buf) -{ - return _nc_viswbuf2(0, buf); -} - -NCURSES_EXPORT(const char *) -_nc_viswbufn(const wchar_t * buf, int len) -{ - return _nc_viswbuf2n(0, buf, len); -} - -/* this special case is used for wget_wstr() */ -NCURSES_EXPORT(const char *) -_nc_viswibuf(const wint_t * buf) -{ - static wchar_t *mybuf; - static unsigned mylen; - unsigned n; - - for (n = 0; buf[n] != 0; ++n) ; - if (mylen < ++n) { - mylen = n + 80; - if (mybuf != 0) - mybuf = typeRealloc(wchar_t, mylen, mybuf); - else - mybuf = typeMalloc(wchar_t, mylen); - } - for (n = 0; buf[n] != 0; ++n) - mybuf[n] = (wchar_t) buf[n]; - - return _nc_viswbuf2(0, mybuf); -} - -NCURSES_EXPORT(const char *) -_nc_viscbuf2(int bufnum, const cchar_t * buf, int len) -{ - char *result = _nc_trace_buf(bufnum, BUFSIZ); - int n; - bool same = TRUE; - attr_t attr = A_NORMAL; - const char *found; - - if (len < 0) - len = _nc_wchstrlen(buf); - - for (n = 1; n < len; n++) { - if (AttrOf(buf[n]) != AttrOf(buf[0])) { - same = FALSE; - break; - } - } - - /* - * If the rendition is the same for the whole string, display it as a - * quoted string, followed by the rendition. Otherwise, use the more - * detailed trace function that displays each character separately. - */ - if (same) { - static const char d_quote[] = - {D_QUOTE, 0}; - - result = _nc_trace_bufcat(bufnum, d_quote); - while (len-- > 0) { - if ((found = _nc_altcharset_name(attr, CharOfD(buf))) != 0) { - result = _nc_trace_bufcat(bufnum, found); - attr &= ~A_ALTCHARSET; - } else if (!isnac(CHDEREF(buf))) { - PUTC_DATA; - - PUTC_INIT; - do { - PUTC_ch = PUTC_i < CCHARW_MAX ? buf->chars[PUTC_i] : L'\0'; - PUTC_n = wcrtomb(PUTC_buf, buf->chars[PUTC_i], &PUT_st); - if (PUTC_ch == L'\0') - --PUTC_n; - if (PUTC_n <= 0) - break; - for (n = 0; n < PUTC_n; n++) { - char temp[80]; - _nc_vischar(temp, UChar(PUTC_buf[n])); - result = _nc_trace_bufcat(bufnum, temp); - } - ++PUTC_i; - } while (PUTC_ch != L'\0'); - } - buf++; - } - result = _nc_trace_bufcat(bufnum, d_quote); - if (attr != A_NORMAL) { - result = _nc_trace_bufcat(bufnum, " | "); - result = _nc_trace_bufcat(bufnum, _traceattr2(bufnum + 20, attr)); - } - } else { - static const char l_brace[] = - {L_BRACE, 0}; - static const char r_brace[] = - {R_BRACE, 0}; - strcpy(result, l_brace); - while (len-- > 0) { - result = _nc_trace_bufcat(bufnum, - _tracecchar_t2(bufnum + 20, buf++)); - } - result = _nc_trace_bufcat(bufnum, r_brace); - } - return result; -} - -NCURSES_EXPORT(const char *) -_nc_viscbuf(const cchar_t * buf, int len) -{ - return _nc_viscbuf2(0, buf, len); -} -#endif /* TRACE */ -#endif /* USE_WIDEC_SUPPORT */ diff --git a/Build/source/libs/ncurses/ncurses/tty/MKexpanded.sh b/Build/source/libs/ncurses/ncurses/tty/MKexpanded.sh deleted file mode 100755 index 8e4a6c6c5f0..00000000000 --- a/Build/source/libs/ncurses/ncurses/tty/MKexpanded.sh +++ /dev/null @@ -1,99 +0,0 @@ -#! /bin/sh -############################################################################## -# Copyright (c) 1998,2000 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey 1997 -# -# $Id: MKexpanded.sh,v 1.10 2000/12/10 00:24:33 tom Exp $ -# -# Script to generate 'expanded.c', a dummy source that contains functions -# corresponding to complex macros used in this library. By making functions, -# we simplify analysis and debugging. - -if test $# != 0; then -preprocessor="$1" -else -preprocessor="cc -E" -fi -shift -if test $# != 0 ; then - preprocessor="$preprocessor $*" -else - preprocessor="$preprocessor -DHAVE_CONFIG_H -I. -I../include" -fi - -TMP=gen$$.c -trap "rm -f $TMP" 0 1 2 5 15 - -cat < -#include -#if NCURSES_EXPANDED -EOF - -cat >$TMP < -#undef NCURSES_EXPANDED /* this probably is set in ncurses_cfg.h */ -#include -/* these are names we'd like to see */ -#undef ALL_BUT_COLOR -#undef PAIR_NUMBER -#undef TRUE -#undef FALSE -/* this is a marker */ -IGNORE -NCURSES_EXPORT(void) _nc_toggle_attr_on (attr_t *S, attr_t at) -{ - toggle_attr_on(*S,at); -} -NCURSES_EXPORT(void) _nc_toggle_attr_off (attr_t *S, attr_t at) -{ - toggle_attr_off(*S,at); -} -NCURSES_EXPORT(int) _nc_DelCharCost (int count) -{ - return DelCharCost(count); -} -NCURSES_EXPORT(int) _nc_InsCharCost (int count) -{ - return InsCharCost(count); -} -NCURSES_EXPORT(void) _nc_UpdateAttrs (chtype c) -{ - UpdateAttrs(c); -} -EOF - -$preprocessor $TMP 2>/dev/null | sed -e '1,/^IGNORE$/d' - -cat < 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/****************************************************************************** - -NAME - hardscroll.c -- hardware-scrolling optimization for ncurses - -SYNOPSIS - void _nc_scroll_optimize(void) - -DESCRIPTION - OVERVIEW - -This algorithm for computes optimum hardware scrolling to transform an -old screen (curscr) into a new screen (newscr) via vertical line moves. - -Because the screen has a `grain' (there are insert/delete/scroll line -operations but no insert/delete/scroll column operations), it is efficient -break the update algorithm into two pieces: a first stage that does only line -moves, optimizing the end product of user-invoked insertions, deletions, and -scrolls; and a second phase (corresponding to the present doupdate code in -ncurses) that does only line transformations. - -The common case we want hardware scrolling for is to handle line insertions -and deletions in screen-oriented text-editors. This two-stage approach will -accomplish that at a low computation and code-size cost. - - LINE-MOVE COMPUTATION - -Now, to a discussion of the line-move computation. - -For expository purposes, consider the screen lines to be represented by -integers 0..23 (with the understanding that the value of 23 may vary). -Let a new line introduced by insertion, scrolling, or at the bottom of -the screen following a line delete be given the index -1. - -Assume that the real screen starts with lines 0..23. Now, we have -the following possible line-oriented operations on the screen: - -Insertion: inserts a line at a given screen row, forcing all lines below -to scroll forward. The last screen line is lost. For example, an insertion -at line 5 would produce: 0..4 -1 5..23. - -Deletion: deletes a line at a given screen row, forcing all lines below -to scroll forward. The last screen line is made new. For example, a deletion -at line 7 would produce: 0..6 8..23 -1. - -Scroll up: move a range of lines up 1. The bottom line of the range -becomes new. For example, scrolling up the region from 9 to 14 will -produce 0..8 10..14 -1 15..23. - -Scroll down: move a range of lines down 1. The top line of the range -becomes new. For example, scrolling down the region from 12 to 16 will produce -0..11 -1 12..15 17..23. - -Now, an obvious property of all these operations is that they preserve the -order of old lines, though not their position in the sequence. - -The key trick of this algorithm is that the original line indices described -above are actually maintained as _line[].oldindex fields in the window -structure, and stick to each line through scroll and insert/delete operations. - -Thus, it is possible at update time to look at the oldnum fields and compute -an optimal set of il/dl/scroll operations that will take the real screen -lines to the virtual screen lines. Once these vertical moves have been done, -we can hand off to the second stage of the update algorithm, which does line -transformations. - -Note that the move computation does not need to have the full generality -of a diff algorithm (which it superficially resembles) because lines cannot -be moved out of order. - - THE ALGORITHM - -The scrolling is done in two passes. The first pass is from top to bottom -scroling hunks UP. The second one is from bottom to top scrolling hunks DOWN. -Obviously enough, no lines to be scrolled will be destroyed. (lav) - -HOW TO TEST THIS: - -Use the following production: - -hardscroll: hardscroll.c - $(CC) -g -DSCROLLDEBUG hardscroll.c -o hardscroll - -Then just type scramble vectors and watch. The following test loads are -a representative sample of cases: - ------------------------------ CUT HERE ------------------------------------ -# No lines moved - 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 -# -# A scroll up - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 -1 -# -# A scroll down --1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 -# -# An insertion (after line 12) - 0 1 2 3 4 5 6 7 8 9 10 11 12 -1 13 14 15 16 17 18 19 20 21 22 -# -# A simple deletion (line 10) - 0 1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 -1 -# -# A more complex case --1 -1 -1 -1 -1 3 4 5 6 7 -1 -1 8 9 10 11 12 13 14 15 16 17 -1 -1 ------------------------------ CUT HERE ------------------------------------ - -AUTHOR - Eric S. Raymond , November 1994 - New algorithm by Alexander V. Lukyanov , Aug 1997 - -*****************************************************************************/ - -#include - -MODULE_ID("$Id: hardscroll.c,v 1.36 2001/01/14 00:17:28 tom Exp $") - -#if defined(SCROLLDEBUG) || defined(HASHDEBUG) - -# undef screen_lines -# define screen_lines MAXLINES -NCURSES_EXPORT_VAR(int) -oldnums[MAXLINES]; -# define OLDNUM(n) oldnums[n] -# define _tracef printf -# undef TR -# define TR(n, a) if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); } - -#else /* no debug */ - -/* OLDNUM(n) indicates which line will be shifted to the position n. - if OLDNUM(n) == _NEWINDEX, then the line n in new, not shifted from - somewhere. */ -NCURSES_EXPORT_VAR(int *) -_nc_oldnums = 0; - -# if USE_HASHMAP - static int oldnums_allocated = 0; -# define oldnums _nc_oldnums -# define OLDNUM(n) oldnums[n] -# else /* !USE_HASHMAP */ -# define OLDNUM(n) newscr->_line[n].oldindex -# endif /* !USE_HASHMAP */ - -#endif /* defined(SCROLLDEBUG) || defined(HASHDEBUG) */ - -NCURSES_EXPORT(void) -_nc_scroll_optimize(void) -/* scroll optimization to transform curscr to newscr */ -{ - int i; - int start, end, shift; - - TR(TRACE_ICALLS, ("_nc_scroll_optimize() begins")); - -#if !defined(SCROLLDEBUG) && !defined(HASHDEBUG) -#if USE_HASHMAP - /* get enough storage */ - if (oldnums_allocated < screen_lines) { - int *new_oldnums = typeRealloc(int, screen_lines, oldnums); - if (!new_oldnums) - return; - oldnums = new_oldnums; - oldnums_allocated = screen_lines; - } - /* calculate the indices */ - _nc_hash_map(); -#endif -#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */ - -#ifdef TRACE - if (_nc_tracing & (TRACE_UPDATE | TRACE_MOVE)) - _nc_linedump(); -#endif /* TRACE */ - - /* pass 1 - from top to bottom scrolling up */ - for (i = 0; i < screen_lines;) { - while (i < screen_lines && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) <= i)) - i++; - if (i >= screen_lines) - break; - - shift = OLDNUM(i) - i; /* shift > 0 */ - start = i; - - i++; - while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i - == shift) - i++; - end = i - 1 + shift; - - TR(TRACE_UPDATE | TRACE_MOVE, ("scroll [%d, %d] by %d", start, end, shift)); -#if !defined(SCROLLDEBUG) && !defined(HASHDEBUG) - if (_nc_scrolln(shift, start, end, screen_lines - 1) == ERR) { - TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll")); - continue; - } -#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */ - } - - /* pass 2 - from bottom to top scrolling down */ - for (i = screen_lines - 1; i >= 0;) { - while (i >= 0 && (OLDNUM(i) == _NEWINDEX || OLDNUM(i) >= i)) - i--; - if (i < 0) - break; - - shift = OLDNUM(i) - i; /* shift < 0 */ - end = i; - - i--; - while (i >= 0 && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i == shift) - i--; - start = i + 1 - (-shift); - - TR(TRACE_UPDATE | TRACE_MOVE, ("scroll [%d, %d] by %d", start, end, shift)); -#if !defined(SCROLLDEBUG) && !defined(HASHDEBUG) - if (_nc_scrolln(shift, start, end, screen_lines - 1) == ERR) { - TR(TRACE_UPDATE | TRACE_MOVE, ("unable to scroll")); - continue; - } -#endif /* !defined(SCROLLDEBUG) && !defined(HASHDEBUG) */ - } -} - -#if defined(TRACE) || defined(SCROLLDEBUG) || defined(HASHDEBUG) -NCURSES_EXPORT(void) -_nc_linedump(void) -/* dump the state of the real and virtual oldnum fields */ -{ - static size_t have; - static char *buf; - - int n; - size_t want = (screen_lines + 1) * 4; - - if (have < want) - buf = typeMalloc(char, have = want); - - (void) strcpy(buf, "virt"); - for (n = 0; n < screen_lines; n++) - (void) sprintf(buf + strlen(buf), " %02d", OLDNUM(n)); - TR(TRACE_UPDATE | TRACE_MOVE, (buf)); -#if NO_LEAKS - free(buf); - have = 0; -#endif -} -#endif /* defined(TRACE) || defined(SCROLLDEBUG) */ - -#ifdef SCROLLDEBUG - -int -main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) -{ - char line[BUFSIZ], *st; - -#ifdef TRACE - _nc_tracing = TRACE_MOVE; -#endif - for (;;) { - int n; - - for (n = 0; n < screen_lines; n++) - oldnums[n] = _NEWINDEX; - - /* grab the test vector */ - if (fgets(line, sizeof(line), stdin) == (char *) NULL) - exit(EXIT_SUCCESS); - - /* parse it */ - n = 0; - if (line[0] == '#') { - (void) fputs(line, stderr); - continue; - } - st = strtok(line, " "); - do { - oldnums[n++] = atoi(st); - } while - ((st = strtok((char *) NULL, " ")) != 0); - - /* display it */ - (void) fputs("Initial input:\n", stderr); - _nc_linedump(); - - _nc_scroll_optimize(); - } -} - -#endif /* SCROLLDEBUG */ - -/* hardscroll.c ends here */ diff --git a/Build/source/libs/ncurses/ncurses/tty/hashmap.c b/Build/source/libs/ncurses/ncurses/tty/hashmap.c deleted file mode 100644 index ba53786a534..00000000000 --- a/Build/source/libs/ncurses/ncurses/tty/hashmap.c +++ /dev/null @@ -1,538 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/****************************************************************************** - -NAME - hashmap.c -- fill in scramble vector based on text hashes - -SYNOPSIS - void _nc_hash_map(void) - -DESCRIPTION: - This code attempts to recognize pairs of old and new lines in the physical -and virtual screens. When a line pair is recognized, the old line index is -placed in the oldindex member of the virtual screen line, to be used by the -vertical-motion optimizer portion of the update logic (see hardscroll.c). - - Line pairs are recognized by applying a modified Heckel's algorithm, -sped up by hashing. If a line hash is unique in both screens, those -lines must be a pair. Then if the lines just before or after the pair -are the same or similar, they are a pair too. - - We don't worry about false pairs produced by hash collisions, on the -assumption that such cases are rare and will only make the latter stages -of update less efficient, not introduce errors. - -HOW TO TEST THIS: - -Use the following production: - -hashmap: hashmap.c - $(CC) -g -DHASHDEBUG hashmap.c hardscroll.c ../objects/lib_trace.o -o hashmap - -AUTHOR - Eric S. Raymond , May 1996 - Bug fixes and improvements by Alexander V. Lukyanov , 1997 - -*****************************************************************************/ - -#include -#include /* for back_color_erase */ - -MODULE_ID("$Id: hashmap.c,v 1.46 2002/09/07 18:13:15 tom Exp $") - -#ifdef HASHDEBUG - -# define _tracef printf -# undef TR -# define TR(n, a) if (_nc_tracing & (n)) { _tracef a ; putchar('\n'); } -# undef screen_lines -# define screen_lines MAXLINES -# define TEXTWIDTH 1 -int oldnums[MAXLINES], reallines[MAXLINES]; -static chtype oldtext[MAXLINES][TEXTWIDTH], newtext[MAXLINES][TEXTWIDTH]; -# define OLDNUM(n) oldnums[n] -# define OLDTEXT(n) oldtext[n] -# define NEWTEXT(m) newtext[m] -# define PENDING(n) 1 - -#else /* !HASHDEBUG */ - -# define OLDNUM(n) _nc_oldnums[n] -# define OLDTEXT(n) curscr->_line[n].text -# define NEWTEXT(m) newscr->_line[m].text -# define TEXTWIDTH (curscr->_maxx+1) -# define PENDING(n) (newscr->_line[n].firstchar != _NOCHANGE) - -#endif /* !HASHDEBUG */ - -#define oldhash (SP->oldhash) -#define newhash (SP->newhash) -#define hashtab (SP->hashtab) -#define lines_alloc (SP->hashtab_len) - -#if USE_WIDEC_SUPPORT -#define HASH_VAL(ch) (ch.chars[0]) -#else -#define HASH_VAL(ch) (ch) -#endif - -static inline unsigned long -hash(NCURSES_CH_T * text) -{ - int i; - NCURSES_CH_T ch; - unsigned long result = 0; - for (i = TEXTWIDTH; i > 0; i--) { - ch = *text++; - result += (result << 5) + HASH_VAL(ch); - } - return result; -} - -/* approximate update cost */ -static int -update_cost(NCURSES_CH_T * from, NCURSES_CH_T * to) -{ - int cost = 0; - int i; - - for (i = TEXTWIDTH; i > 0; i--) - if (!(CharEq(*from++, *to++))) - cost++; - - return cost; -} - -static int -update_cost_from_blank(NCURSES_CH_T * to) -{ - int cost = 0; - int i; - NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR); - - if (back_color_erase) - AddAttr(blank, (AttrOf(stdscr->_nc_bkgd) & A_COLOR)); - - for (i = TEXTWIDTH; i > 0; i--) - if (!(CharEq(blank, *to++))) - cost++; - - return cost; -} - -/* - * Returns true when moving line 'from' to line 'to' seems to be cost - * effective. 'blank' indicates whether the line 'to' would become blank. - */ -static inline bool -cost_effective(const int from, const int to, const bool blank) -{ - int new_from; - - if (from == to) - return FALSE; - - new_from = OLDNUM(from); - if (new_from == _NEWINDEX) - new_from = from; - - /* - * On the left side of >= is the cost before moving; - * on the right side -- cost after moving. - */ - return (((blank ? update_cost_from_blank(NEWTEXT(to)) - : update_cost(OLDTEXT(to), NEWTEXT(to))) - + update_cost(OLDTEXT(new_from), NEWTEXT(from))) - >= ((new_from == from ? update_cost_from_blank(NEWTEXT(from)) - : update_cost(OLDTEXT(new_from), NEWTEXT(from))) - + update_cost(OLDTEXT(from), NEWTEXT(to)))) ? TRUE : FALSE; -} - -static void -grow_hunks(void) -{ - int start, end, shift; - int back_limit, forward_limit; /* limits for cells to fill */ - int back_ref_limit, forward_ref_limit; /* limits for refrences */ - int i; - int next_hunk; - - /* - * This is tricky part. We have unique pairs to use as anchors. - * Use these to deduce the presence of spans of identical lines. - */ - back_limit = 0; - back_ref_limit = 0; - - i = 0; - while (i < screen_lines && OLDNUM(i) == _NEWINDEX) - i++; - for (; i < screen_lines; i = next_hunk) { - start = i; - shift = OLDNUM(i) - i; - - /* get forward limit */ - i = start + 1; - while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i - == shift) - i++; - end = i; - while (i < screen_lines && OLDNUM(i) == _NEWINDEX) - i++; - next_hunk = i; - forward_limit = i; - if (i >= screen_lines || OLDNUM(i) >= i) - forward_ref_limit = i; - else - forward_ref_limit = OLDNUM(i); - - i = start - 1; - /* grow back */ - if (shift < 0) - back_limit = back_ref_limit + (-shift); - while (i >= back_limit) { - if (newhash[i] == oldhash[i + shift] - || cost_effective(i + shift, i, shift < 0)) { - OLDNUM(i) = i + shift; - TR(TRACE_UPDATE | TRACE_MOVE, - ("connected new line %d to old line %d (backward continuation)", - i, i + shift)); - } else { - TR(TRACE_UPDATE | TRACE_MOVE, - ("not connecting new line %d to old line %d (backward continuation)", - i, i + shift)); - break; - } - i--; - } - - i = end; - /* grow forward */ - if (shift > 0) - forward_limit = forward_ref_limit - shift; - while (i < forward_limit) { - if (newhash[i] == oldhash[i + shift] - || cost_effective(i + shift, i, shift > 0)) { - OLDNUM(i) = i + shift; - TR(TRACE_UPDATE | TRACE_MOVE, - ("connected new line %d to old line %d (forward continuation)", - i, i + shift)); - } else { - TR(TRACE_UPDATE | TRACE_MOVE, - ("not connecting new line %d to old line %d (forward continuation)", - i, i + shift)); - break; - } - i++; - } - - back_ref_limit = back_limit = i; - if (shift > 0) - back_ref_limit += shift; - } -} - -NCURSES_EXPORT(void) -_nc_hash_map(void) -{ - HASHMAP *sp; - register int i; - int start, shift, size; - - if (screen_lines > lines_alloc) { - if (hashtab) - free(hashtab); - hashtab = typeMalloc(HASHMAP, (screen_lines + 1) * 2); - if (!hashtab) { - if (oldhash) { - FreeAndNull(oldhash); - } - lines_alloc = 0; - return; - } - lines_alloc = screen_lines; - } - - if (oldhash && newhash) { - /* re-hash only changed lines */ - for (i = 0; i < screen_lines; i++) { - if (PENDING(i)) - newhash[i] = hash(NEWTEXT(i)); - } - } else { - /* re-hash all */ - if (oldhash == 0) - oldhash = typeCalloc(unsigned long, (unsigned) screen_lines); - if (newhash == 0) - newhash = typeCalloc(unsigned long, (unsigned) screen_lines); - if (!oldhash || !newhash) - return; /* malloc failure */ - for (i = 0; i < screen_lines; i++) { - newhash[i] = hash(NEWTEXT(i)); - oldhash[i] = hash(OLDTEXT(i)); - } - } - -#ifdef HASH_VERIFY - for (i = 0; i < screen_lines; i++) { - if (newhash[i] != hash(NEWTEXT(i))) - fprintf(stderr, "error in newhash[%d]\n", i); - if (oldhash[i] != hash(OLDTEXT(i))) - fprintf(stderr, "error in oldhash[%d]\n", i); - } -#endif - - /* - * Set up and count line-hash values. - */ - memset(hashtab, '\0', sizeof(*hashtab) * (screen_lines + 1) * 2); - for (i = 0; i < screen_lines; i++) { - unsigned long hashval = oldhash[i]; - - for (sp = hashtab; sp->hashval; sp++) - if (sp->hashval == hashval) - break; - sp->hashval = hashval; /* in case this is a new entry */ - sp->oldcount++; - sp->oldindex = i; - } - for (i = 0; i < screen_lines; i++) { - unsigned long hashval = newhash[i]; - - for (sp = hashtab; sp->hashval; sp++) - if (sp->hashval == hashval) - break; - sp->hashval = hashval; /* in case this is a new entry */ - sp->newcount++; - sp->newindex = i; - - OLDNUM(i) = _NEWINDEX; /* initialize old indices array */ - } - - /* - * Mark line pairs corresponding to unique hash pairs. - * - * We don't mark lines with offset 0, because it can make fail - * extending hunks by cost_effective. Otherwise, it does not - * have any side effects. - */ - for (sp = hashtab; sp->hashval; sp++) - if (sp->oldcount == 1 && sp->newcount == 1 - && sp->oldindex != sp->newindex) { - TR(TRACE_UPDATE | TRACE_MOVE, - ("new line %d is hash-identical to old line %d (unique)", - sp->newindex, sp->oldindex)); - OLDNUM(sp->newindex) = sp->oldindex; - } - - grow_hunks(); - - /* - * Eliminate bad or impossible shifts -- this includes removing - * those hunks which could not grow because of conflicts, as well - * those which are to be moved too far, they are likely to destroy - * more than carry. - */ - for (i = 0; i < screen_lines;) { - while (i < screen_lines && OLDNUM(i) == _NEWINDEX) - i++; - if (i >= screen_lines) - break; - start = i; - shift = OLDNUM(i) - i; - i++; - while (i < screen_lines && OLDNUM(i) != _NEWINDEX && OLDNUM(i) - i - == shift) - i++; - size = i - start; - if (size < 3 || size + min(size / 8, 2) < abs(shift)) { - while (start < i) { - OLDNUM(start) = _NEWINDEX; - start++; - } - } - } - - /* After clearing invalid hunks, try grow the rest. */ - grow_hunks(); -} - -NCURSES_EXPORT(void) -_nc_make_oldhash(int i) -{ - if (oldhash) - oldhash[i] = hash(OLDTEXT(i)); -} - -NCURSES_EXPORT(void) -_nc_scroll_oldhash(int n, int top, int bot) -{ - size_t size; - int i; - - if (!oldhash) - return; - - size = sizeof(*oldhash) * (bot - top + 1 - abs(n)); - if (n > 0) { - memmove(oldhash + top, oldhash + top + n, size); - for (i = bot; i > bot - n; i--) - oldhash[i] = hash(OLDTEXT(i)); - } else { - memmove(oldhash + top - n, oldhash + top, size); - for (i = top; i < top - n; i++) - oldhash[i] = hash(OLDTEXT(i)); - } -} - -#ifdef HASHDEBUG -static void -usage(void) -{ - static const char *table[] = - { - "hashmap test-driver", - "", - "# comment", - "l get initial line number vector", - "n use following letters as text of new lines", - "o use following letters as text of old lines", - "d dump state of test arrays", - "h apply hash mapper and see scroll optimization", - "? this message" - }; - size_t n; - for (n = 0; n < sizeof(table) / sizeof(table[0]); n++) - fprintf(stderr, "%s\n", table[n]); -} - -int -main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) -{ - char line[BUFSIZ], *st; - int n; - - SP = typeCalloc(SCREEN, 1); - for (n = 0; n < screen_lines; n++) { - reallines[n] = n; - oldnums[n] = _NEWINDEX; - oldtext[n][0] = newtext[n][0] = '.'; - } - - if (isatty(fileno(stdin))) - usage(); - -#ifdef TRACE - _nc_tracing = TRACE_MOVE; -#endif - for (;;) { - /* grab a test command */ - if (fgets(line, sizeof(line), stdin) == (char *) NULL) - exit(EXIT_SUCCESS); - - switch (line[0]) { - case '#': /* comment */ - (void) fputs(line, stderr); - break; - - case 'l': /* get initial line number vector */ - for (n = 0; n < screen_lines; n++) { - reallines[n] = n; - oldnums[n] = _NEWINDEX; - } - n = 0; - st = strtok(line, " "); - do { - oldnums[n++] = atoi(st); - } while - ((st = strtok((char *) NULL, " ")) != 0); - break; - - case 'n': /* use following letters as text of new lines */ - for (n = 0; n < screen_lines; n++) - newtext[n][0] = '.'; - for (n = 0; n < screen_lines; n++) - if (line[n + 1] == '\n') - break; - else - newtext[n][0] = line[n + 1]; - break; - - case 'o': /* use following letters as text of old lines */ - for (n = 0; n < screen_lines; n++) - oldtext[n][0] = '.'; - for (n = 0; n < screen_lines; n++) - if (line[n + 1] == '\n') - break; - else - oldtext[n][0] = line[n + 1]; - break; - - case 'd': /* dump state of test arrays */ -#ifdef TRACE - _nc_linedump(); -#endif - (void) fputs("Old lines: [", stdout); - for (n = 0; n < screen_lines; n++) - putchar(oldtext[n][0]); - putchar(']'); - putchar('\n'); - (void) fputs("New lines: [", stdout); - for (n = 0; n < screen_lines; n++) - putchar(newtext[n][0]); - putchar(']'); - putchar('\n'); - break; - - case 'h': /* apply hash mapper and see scroll optimization */ - _nc_hash_map(); - (void) fputs("Result:\n", stderr); -#ifdef TRACE - _nc_linedump(); -#endif - _nc_scroll_optimize(); - (void) fputs("Done.\n", stderr); - break; - case '?': - usage(); - break; - } - } - return EXIT_SUCCESS; -} - -#endif /* HASHDEBUG */ - -/* hashmap.c ends here */ diff --git a/Build/source/libs/ncurses/ncurses/tty/lib_mvcur.c b/Build/source/libs/ncurses/ncurses/tty/lib_mvcur.c deleted file mode 100644 index 637ae7e3432..00000000000 --- a/Build/source/libs/ncurses/ncurses/tty/lib_mvcur.c +++ /dev/null @@ -1,1236 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_mvcur.c -** -** The routines for moving the physical cursor and scrolling: -** -** void _nc_mvcur_init(void) -** -** void _nc_mvcur_resume(void) -** -** int mvcur(int old_y, int old_x, int new_y, int new_x) -** -** void _nc_mvcur_wrap(void) -** -** Comparisons with older movement optimizers: -** SVr3 curses mvcur() can't use cursor_to_ll or auto_left_margin. -** 4.4BSD curses can't use cuu/cud/cuf/cub/hpa/vpa/tab/cbt for local -** motions. It doesn't use tactics based on auto_left_margin. Weirdly -** enough, it doesn't use its own hardware-scrolling routine to scroll up -** destination lines for out-of-bounds addresses! -** old ncurses optimizer: less accurate cost computations (in fact, -** it was broken and had to be commented out!). -** -** Compile with -DMAIN to build an interactive tester/timer for the movement -** optimizer. You can use it to investigate the optimizer's behavior. -** You can also use it for tuning the formulas used to determine whether -** or not full optimization is attempted. -** -** This code has a nasty tendency to find bugs in terminfo entries, because it -** exercises the non-cup movement capabilities heavily. If you think you've -** found a bug, try deleting subsets of the following capabilities (arranged -** in decreasing order of suspiciousness): it, tab, cbt, hpa, vpa, cuu, cud, -** cuf, cub, cuu1, cud1, cuf1, cub1. It may be that one or more are wrong. -** -** Note: you should expect this code to look like a resource hog in a profile. -** That's because it does a lot of I/O, through the tputs() calls. The I/O -** cost swamps the computation overhead (and as machines get faster, this -** will become even more true). Comments in the test exerciser at the end -** go into detail about tuning and how you can gauge the optimizer's -** effectiveness. -**/ - -/**************************************************************************** - * - * Constants and macros for optimizer tuning. - * - ****************************************************************************/ - -/* - * The average overhead of a full optimization computation in character - * transmission times. If it's too high, the algorithm will be a bit - * over-biased toward using cup rather than local motions; if it's too - * low, the algorithm may spend more time than is strictly optimal - * looking for non-cup motions. Profile the optimizer using the `t' - * command of the exerciser (see below), and round to the nearest integer. - * - * Yes, I (esr) thought about computing expected overhead dynamically, say - * by derivation from a running average of optimizer times. But the - * whole point of this optimization is to *decrease* the frequency of - * system calls. :-) - */ -#define COMPUTE_OVERHEAD 1 /* I use a 90MHz Pentium @ 9.6Kbps */ - -/* - * LONG_DIST is the distance we consider to be just as costly to move over as a - * cup sequence is to emit. In other words, it's the length of a cup sequence - * adjusted for average computation overhead. The magic number is the length - * of "\033[yy;xxH", the typical cup sequence these days. - */ -#define LONG_DIST (8 - COMPUTE_OVERHEAD) - -/* - * Tell whether a motion is optimizable by local motions. Needs to be cheap to - * compute. In general, all the fast moves go to either the right or left edge - * of the screen. So any motion to a location that is (a) further away than - * LONG_DIST and (b) further inward from the right or left edge than LONG_DIST, - * we'll consider nonlocal. - */ -#define NOT_LOCAL(fy, fx, ty, tx) ((tx > LONG_DIST) \ - && (tx < screen_columns - 1 - LONG_DIST) \ - && (abs(ty-fy) + abs(tx-fx) > LONG_DIST)) - -/**************************************************************************** - * - * External interfaces - * - ****************************************************************************/ - -/* - * For this code to work OK, the following components must live in the - * screen structure: - * - * int _char_padding; // cost of character put - * int _cr_cost; // cost of (carriage_return) - * int _cup_cost; // cost of (cursor_address) - * int _home_cost; // cost of (cursor_home) - * int _ll_cost; // cost of (cursor_to_ll) - *#if USE_HARD_TABS - * int _ht_cost; // cost of (tab) - * int _cbt_cost; // cost of (back_tab) - *#endif USE_HARD_TABS - * int _cub1_cost; // cost of (cursor_left) - * int _cuf1_cost; // cost of (cursor_right) - * int _cud1_cost; // cost of (cursor_down) - * int _cuu1_cost; // cost of (cursor_up) - * int _cub_cost; // cost of (parm_cursor_left) - * int _cuf_cost; // cost of (parm_cursor_right) - * int _cud_cost; // cost of (parm_cursor_down) - * int _cuu_cost; // cost of (parm_cursor_up) - * int _hpa_cost; // cost of (column_address) - * int _vpa_cost; // cost of (row_address) - * int _ech_cost; // cost of (erase_chars) - * int _rep_cost; // cost of (repeat_char) - * - * The USE_HARD_TABS switch controls whether it is reliable to use tab/backtabs - * for local motions. On many systems, it's not, due to uncertainties about - * tab delays and whether or not tabs will be expanded in raw mode. If you - * have parm_right_cursor, tab motions don't win you a lot anyhow. - */ - -#include -#include -#include - -MODULE_ID("$Id: lib_mvcur.c,v 1.98 2004/04/03 22:32:24 tom Exp $") - -#define WANT_CHAR(y, x) SP->_newscr->_line[y].text[x] /* desired state */ -#define BAUDRATE cur_term->_baudrate /* bits per second */ - -#if defined(MAIN) || defined(NCURSES_TEST) -#include - -static bool profiling = FALSE; -static float diff; -#endif /* MAIN */ - -#define OPT_SIZE 512 - -static int normalized_cost(const char *const cap, int affcnt); - -/**************************************************************************** - * - * Initialization/wrapup (including cost pre-computation) - * - ****************************************************************************/ - -#ifdef TRACE -static int -trace_cost_of(const char *capname, const char *cap, int affcnt) -{ - int result = _nc_msec_cost(cap, affcnt); - TR(TRACE_CHARPUT | TRACE_MOVE, - ("CostOf %s %d %s", capname, result, _nc_visbuf(cap))); - return result; -} -#define CostOf(cap,affcnt) trace_cost_of(#cap,cap,affcnt); - -static int -trace_normalized_cost(const char *capname, const char *cap, int affcnt) -{ - int result = normalized_cost(cap, affcnt); - TR(TRACE_CHARPUT | TRACE_MOVE, - ("NormalizedCost %s %d %s", capname, result, _nc_visbuf(cap))); - return result; -} -#define NormalizedCost(cap,affcnt) trace_normalized_cost(#cap,cap,affcnt); - -#else - -#define CostOf(cap,affcnt) _nc_msec_cost(cap,affcnt); -#define NormalizedCost(cap,affcnt) normalized_cost(cap,affcnt); - -#endif - -NCURSES_EXPORT(int) -_nc_msec_cost(const char *const cap, int affcnt) -/* compute the cost of a given operation */ -{ - if (cap == 0) - return (INFINITY); - else { - const char *cp; - float cum_cost = 0.0; - - for (cp = cap; *cp; cp++) { - /* extract padding, either mandatory or required */ - if (cp[0] == '$' && cp[1] == '<' && strchr(cp, '>')) { - float number = 0.0; - - for (cp += 2; *cp != '>'; cp++) { - if (isdigit(UChar(*cp))) - number = number * 10 + (*cp - '0'); - else if (*cp == '*') - number *= affcnt; - else if (*cp == '.' && (*++cp != '>') && isdigit(UChar(*cp))) - number += (*cp - '0') / 10.0; - } - -#if NCURSES_NO_PADDING - if (!(SP->_no_padding)) -#endif - cum_cost += number * 10; - } else - cum_cost += SP->_char_padding; - } - - return ((int) cum_cost); - } -} - -static int -normalized_cost(const char *const cap, int affcnt) -/* compute the effective character-count for an operation (round up) */ -{ - int cost = _nc_msec_cost(cap, affcnt); - if (cost != INFINITY) - cost = (cost + SP->_char_padding - 1) / SP->_char_padding; - return cost; -} - -static void -reset_scroll_region(void) -/* Set the scroll-region to a known state (the default) */ -{ - if (change_scroll_region) { - TPUTS_TRACE("change_scroll_region"); - putp(tparm(change_scroll_region, 0, screen_lines - 1)); - } -} - -NCURSES_EXPORT(void) -_nc_mvcur_resume(void) -/* what to do at initialization time and after each shellout */ -{ - /* initialize screen for cursor access */ - if (enter_ca_mode) { - TPUTS_TRACE("enter_ca_mode"); - putp(enter_ca_mode); - } - - /* - * Doing this here rather than in _nc_mvcur_wrap() ensures that - * ncurses programs will see a reset scroll region even if a - * program that messed with it died ungracefully. - * - * This also undoes the effects of terminal init strings that assume - * they know the screen size. This is useful when you're running - * a vt100 emulation through xterm. - */ - reset_scroll_region(); - SP->_cursrow = SP->_curscol = -1; - - /* restore cursor shape */ - if (SP->_cursor != -1) { - int cursor = SP->_cursor; - SP->_cursor = -1; - curs_set(cursor); - } -} - -NCURSES_EXPORT(void) -_nc_mvcur_init(void) -/* initialize the cost structure */ -{ - if (isatty(fileno(SP->_ofp))) - SP->_char_padding = ((BAUDBYTE * 1000 * 10) - / (BAUDRATE > 0 ? BAUDRATE : 9600)); - else - SP->_char_padding = 1; /* must be nonzero */ - if (SP->_char_padding <= 0) - SP->_char_padding = 1; /* must be nonzero */ - TR(TRACE_CHARPUT | TRACE_MOVE, ("char_padding %d msecs", SP->_char_padding)); - - /* non-parameterized local-motion strings */ - SP->_cr_cost = CostOf(carriage_return, 0); - SP->_home_cost = CostOf(cursor_home, 0); - SP->_ll_cost = CostOf(cursor_to_ll, 0); -#if USE_HARD_TABS - SP->_ht_cost = CostOf(tab, 0); - SP->_cbt_cost = CostOf(back_tab, 0); -#endif /* USE_HARD_TABS */ - SP->_cub1_cost = CostOf(cursor_left, 0); - SP->_cuf1_cost = CostOf(cursor_right, 0); - SP->_cud1_cost = CostOf(cursor_down, 0); - SP->_cuu1_cost = CostOf(cursor_up, 0); - - SP->_smir_cost = CostOf(enter_insert_mode, 0); - SP->_rmir_cost = CostOf(exit_insert_mode, 0); - SP->_ip_cost = 0; - if (insert_padding) { - SP->_ip_cost = CostOf(insert_padding, 0); - } - - /* - * Assumption: if the terminal has memory_relative addressing, the - * initialization strings or smcup will set single-page mode so we - * can treat it like absolute screen addressing. This seems to be true - * for all cursor_mem_address terminal types in the terminfo database. - */ - SP->_address_cursor = cursor_address ? cursor_address : cursor_mem_address; - - /* - * Parametrized local-motion strings. This static cost computation - * depends on the following assumptions: - * - * (1) They never have * padding. In the entire master terminfo database - * as of March 1995, only the obsolete Zenith Z-100 pc violates this. - * (Proportional padding is found mainly in insert, delete and scroll - * capabilities). - * - * (2) The average case of cup has two two-digit parameters. Strictly, - * the average case for a 24 * 80 screen has ((10*10*(1 + 1)) + - * (14*10*(1 + 2)) + (10*70*(2 + 1)) + (14*70*4)) / (24*80) = 3.458 - * digits of parameters. On a 25x80 screen the average is 3.6197. - * On larger screens the value gets much closer to 4. - * - * (3) The average case of cub/cuf/hpa/ech/rep has 2 digits of parameters - * (strictly, (((10 * 1) + (70 * 2)) / 80) = 1.8750). - * - * (4) The average case of cud/cuu/vpa has 2 digits of parameters - * (strictly, (((10 * 1) + (14 * 2)) / 24) = 1.5833). - * - * All these averages depend on the assumption that all parameter values - * are equally probable. - */ - SP->_cup_cost = CostOf(tparm(SP->_address_cursor, 23, 23), 1); - SP->_cub_cost = CostOf(tparm(parm_left_cursor, 23), 1); - SP->_cuf_cost = CostOf(tparm(parm_right_cursor, 23), 1); - SP->_cud_cost = CostOf(tparm(parm_down_cursor, 23), 1); - SP->_cuu_cost = CostOf(tparm(parm_up_cursor, 23), 1); - SP->_hpa_cost = CostOf(tparm(column_address, 23), 1); - SP->_vpa_cost = CostOf(tparm(row_address, 23), 1); - - /* non-parameterized screen-update strings */ - SP->_ed_cost = NormalizedCost(clr_eos, 1); - SP->_el_cost = NormalizedCost(clr_eol, 1); - SP->_el1_cost = NormalizedCost(clr_bol, 1); - SP->_dch1_cost = NormalizedCost(delete_character, 1); - SP->_ich1_cost = NormalizedCost(insert_character, 1); - - /* - * If this is a bce-terminal, we want to bias the choice so we use clr_eol - * rather than spaces at the end of a line. - */ - if (back_color_erase) - SP->_el_cost = 0; - - /* parameterized screen-update strings */ - SP->_dch_cost = NormalizedCost(tparm(parm_dch, 23), 1); - SP->_ich_cost = NormalizedCost(tparm(parm_ich, 23), 1); - SP->_ech_cost = NormalizedCost(tparm(erase_chars, 23), 1); - SP->_rep_cost = NormalizedCost(tparm(repeat_char, ' ', 23), 1); - - SP->_cup_ch_cost = NormalizedCost(tparm(SP->_address_cursor, 23, 23), 1); - SP->_hpa_ch_cost = NormalizedCost(tparm(column_address, 23), 1); - SP->_cuf_ch_cost = NormalizedCost(tparm(parm_right_cursor, 23), 1); - SP->_inline_cost = min(SP->_cup_ch_cost, - min(SP->_hpa_ch_cost, - SP->_cuf_ch_cost)); - - /* - * If save_cursor is used within enter_ca_mode, we should not use it for - * scrolling optimization, since the corresponding restore_cursor is not - * nested on the various terminals (vt100, xterm, etc.) which use this - * feature. - */ - if (save_cursor != 0 - && enter_ca_mode != 0 - && strstr(enter_ca_mode, save_cursor) != 0) { - T(("...suppressed sc/rc capability due to conflict with smcup/rmcup")); - save_cursor = 0; - restore_cursor = 0; - } - - /* - * A different, possibly better way to arrange this would be to set - * SP->_endwin = TRUE at window initialization time and let this be - * called by doupdate's return-from-shellout code. - */ - _nc_mvcur_resume(); -} - -NCURSES_EXPORT(void) -_nc_mvcur_wrap(void) -/* wrap up cursor-addressing mode */ -{ - /* leave cursor at screen bottom */ - mvcur(-1, -1, screen_lines - 1, 0); - - /* set cursor to normal mode */ - if (SP->_cursor != -1) - curs_set(1); - - if (exit_ca_mode) { - TPUTS_TRACE("exit_ca_mode"); - putp(exit_ca_mode); - } - /* - * Reset terminal's tab counter. There's a long-time bug that - * if you exit a "curses" program such as vi or more, tab - * forward, and then backspace, the cursor doesn't go to the - * right place. The problem is that the kernel counts the - * escape sequences that reset things as column positions. - * Utter a \r to reset this invisibly. - */ - _nc_outch('\r'); -} - -/**************************************************************************** - * - * Optimized cursor movement - * - ****************************************************************************/ - -/* - * Perform repeated-append, returning cost - */ -static inline int -repeated_append(string_desc * target, int total, int num, int repeat, const char *src) -{ - size_t need = repeat * strlen(src); - - if (need < target->s_size) { - while (repeat-- > 0) { - if (_nc_safe_strcat(target, src)) { - total += num; - } else { - total = INFINITY; - break; - } - } - } else { - total = INFINITY; - } - return total; -} - -#ifndef NO_OPTIMIZE -#define NEXTTAB(fr) (fr + init_tabs - (fr % init_tabs)) - -/* - * Assume back_tab (CBT) does not wrap backwards at the left margin, return - * a negative value at that point to simplify the loop. - */ -#define LASTTAB(fr) ((fr > 0) ? ((fr - 1) / init_tabs) * init_tabs : -1) - -static int -relative_move(string_desc * target, int from_y, int from_x, int to_y, int - to_x, bool ovw) -/* move via local motions (cuu/cuu1/cud/cud1/cub1/cub/cuf1/cuf/vpa/hpa) */ -{ - string_desc save; - int n, vcost = 0, hcost = 0; - - (void) _nc_str_copy(&save, target); - - if (to_y != from_y) { - vcost = INFINITY; - - if (row_address != 0 - && _nc_safe_strcat(target, tparm(row_address, to_y))) { - vcost = SP->_vpa_cost; - } - - if (to_y > from_y) { - n = (to_y - from_y); - - if (parm_down_cursor - && SP->_cud_cost < vcost - && _nc_safe_strcat(_nc_str_copy(target, &save), - tparm(parm_down_cursor, n))) { - vcost = SP->_cud_cost; - } - - if (cursor_down - && (*cursor_down != '\n' || SP->_nl) - && (n * SP->_cud1_cost < vcost)) { - vcost = repeated_append(_nc_str_copy(target, &save), 0, - SP->_cud1_cost, n, cursor_down); - } - } else { /* (to_y < from_y) */ - n = (from_y - to_y); - - if (parm_up_cursor - && SP->_cuu_cost < vcost - && _nc_safe_strcat(_nc_str_copy(target, &save), - tparm(parm_up_cursor, n))) { - vcost = SP->_cuu_cost; - } - - if (cursor_up && (n * SP->_cuu1_cost < vcost)) { - vcost = repeated_append(_nc_str_copy(target, &save), 0, - SP->_cuu1_cost, n, cursor_up); - } - } - - if (vcost == INFINITY) - return (INFINITY); - } - - save = *target; - - if (to_x != from_x) { - char str[OPT_SIZE]; - string_desc check; - - hcost = INFINITY; - - if (column_address - && _nc_safe_strcat(_nc_str_copy(target, &save), - tparm(column_address, to_x))) { - hcost = SP->_hpa_cost; - } - - if (to_x > from_x) { - n = to_x - from_x; - - if (parm_right_cursor - && SP->_cuf_cost < hcost - && _nc_safe_strcat(_nc_str_copy(target, &save), - tparm(parm_right_cursor, n))) { - hcost = SP->_cuf_cost; - } - - if (cursor_right) { - int lhcost = 0; - - (void) _nc_str_init(&check, str, sizeof(str)); - -#if USE_HARD_TABS - /* use hard tabs, if we have them, to do as much as possible */ - if (init_tabs > 0 && tab) { - int nxt, fr; - - for (fr = from_x; (nxt = NEXTTAB(fr)) <= to_x; fr = nxt) { - lhcost = repeated_append(&check, lhcost, - SP->_ht_cost, 1, tab); - if (lhcost == INFINITY) - break; - } - - n = to_x - fr; - from_x = fr; - } -#endif /* USE_HARD_TABS */ - - if (n <= 0 || n >= (int) check.s_size) - ovw = FALSE; -#if BSD_TPUTS - /* - * If we're allowing BSD-style padding in tputs, don't generate - * a string with a leading digit. Otherwise, that will be - * interpreted as a padding value rather than sent to the - * screen. - */ - if (ovw - && n > 0 - && n < (int) check.s_size - && vcost == 0 - && str[0] == '\0') { - int wanted = CharOf(WANT_CHAR(to_y, from_x)); - if (is8bits(wanted) && isdigit(wanted)) - ovw = FALSE; - } -#endif - /* - * If we have no attribute changes, overwrite is cheaper. - * Note: must suppress this by passing in ovw = FALSE whenever - * WANT_CHAR would return invalid data. In particular, this - * is true between the time a hardware scroll has been done - * and the time the structure WANT_CHAR would access has been - * updated. - */ - if (ovw) { - int i; - - for (i = 0; i < n; i++) { - NCURSES_CH_T ch = WANT_CHAR(to_y, from_x + i); - if (AttrOf(ch) != SP->_current_attr -#if USE_WIDEC_SUPPORT - || !Charable(ch) -#endif - ) { - ovw = FALSE; - break; - } - } - } - if (ovw) { - int i; - - for (i = 0; i < n; i++) - *check.s_tail++ = CharOf(WANT_CHAR(to_y, from_x + i)); - *check.s_tail = '\0'; - check.s_size -= n; - lhcost += n * SP->_char_padding; - } else { - lhcost = repeated_append(&check, lhcost, SP->_cuf1_cost, - n, cursor_right); - } - - if (lhcost < hcost - && _nc_safe_strcat(_nc_str_copy(target, &save), str)) { - hcost = lhcost; - } - } - } else { /* (to_x < from_x) */ - n = from_x - to_x; - - if (parm_left_cursor - && SP->_cub_cost < hcost - && _nc_safe_strcat(_nc_str_copy(target, &save), - tparm(parm_left_cursor, n))) { - hcost = SP->_cub_cost; - } - - if (cursor_left) { - int lhcost = 0; - - (void) _nc_str_init(&check, str, sizeof(str)); - -#if USE_HARD_TABS - if (init_tabs > 0 && back_tab) { - int nxt, fr; - - for (fr = from_x; (nxt = LASTTAB(fr)) >= to_x; fr = nxt) { - lhcost = repeated_append(&check, lhcost, - SP->_cbt_cost, 1, back_tab); - if (lhcost == INFINITY) - break; - } - - n = fr - to_x; - } -#endif /* USE_HARD_TABS */ - - lhcost = repeated_append(&check, lhcost, SP->_cub1_cost, n, cursor_left); - - if (lhcost < hcost - && _nc_safe_strcat(_nc_str_copy(target, &save), str)) { - hcost = lhcost; - } - } - } - - if (hcost == INFINITY) - return (INFINITY); - } - - return (vcost + hcost); -} -#endif /* !NO_OPTIMIZE */ - -/* - * With the machinery set up above, it's conceivable that - * onscreen_mvcur could be modified into a recursive function that does - * an alpha-beta search of motion space, as though it were a chess - * move tree, with the weight function being boolean and the search - * depth equated to length of string. However, this would jack up the - * computation cost a lot, especially on terminals without a cup - * capability constraining the search tree depth. So we settle for - * the simpler method below. - */ - -static inline int -onscreen_mvcur(int yold, int xold, int ynew, int xnew, bool ovw) -/* onscreen move from (yold, xold) to (ynew, xnew) */ -{ - string_desc result; - char buffer[OPT_SIZE]; - int tactic = 0, newcost, usecost = INFINITY; - int t5_cr_cost; - -#if defined(MAIN) || defined(NCURSES_TEST) - struct timeval before, after; - - gettimeofday(&before, NULL); -#endif /* MAIN */ - -#define NullResult _nc_str_null(&result, sizeof(buffer)) -#define InitResult _nc_str_init(&result, buffer, sizeof(buffer)) - - /* tactic #0: use direct cursor addressing */ - if (_nc_safe_strcpy(InitResult, tparm(SP->_address_cursor, ynew, xnew))) { - tactic = 0; - usecost = SP->_cup_cost; - -#if defined(TRACE) || defined(NCURSES_TEST) - if (!(_nc_optimize_enable & OPTIMIZE_MVCUR)) - goto nonlocal; -#endif /* TRACE */ - - /* - * We may be able to tell in advance that the full optimization - * will probably not be worth its overhead. Also, don't try to - * use local movement if the current attribute is anything but - * A_NORMAL...there are just too many ways this can screw up - * (like, say, local-movement \n getting mapped to some obscure - * character because A_ALTCHARSET is on). - */ - if (yold == -1 || xold == -1 || NOT_LOCAL(yold, xold, ynew, xnew)) { -#if defined(MAIN) || defined(NCURSES_TEST) - if (!profiling) { - (void) fputs("nonlocal\n", stderr); - goto nonlocal; /* always run the optimizer if profiling */ - } -#else - goto nonlocal; -#endif /* MAIN */ - } - } -#ifndef NO_OPTIMIZE - /* tactic #1: use local movement */ - if (yold != -1 && xold != -1 - && ((newcost = relative_move(NullResult, yold, xold, ynew, xnew, - ovw)) != INFINITY) - && newcost < usecost) { - tactic = 1; - usecost = newcost; - } - - /* tactic #2: use carriage-return + local movement */ - if (yold != -1 && carriage_return - && ((newcost = relative_move(NullResult, yold, 0, ynew, xnew, ovw)) - != INFINITY) - && SP->_cr_cost + newcost < usecost) { - tactic = 2; - usecost = SP->_cr_cost + newcost; - } - - /* tactic #3: use home-cursor + local movement */ - if (cursor_home - && ((newcost = relative_move(NullResult, 0, 0, ynew, xnew, ovw)) != INFINITY) - && SP->_home_cost + newcost < usecost) { - tactic = 3; - usecost = SP->_home_cost + newcost; - } - - /* tactic #4: use home-down + local movement */ - if (cursor_to_ll - && ((newcost = relative_move(NullResult, screen_lines - 1, 0, ynew, - xnew, ovw)) != INFINITY) - && SP->_ll_cost + newcost < usecost) { - tactic = 4; - usecost = SP->_ll_cost + newcost; - } - - /* - * tactic #5: use left margin for wrap to right-hand side, - * unless strange wrap behavior indicated by xenl might hose us. - */ - t5_cr_cost = (xold > 0 ? SP->_cr_cost : 0); - if (auto_left_margin && !eat_newline_glitch - && yold > 0 && cursor_left - && ((newcost = relative_move(NullResult, yold - 1, screen_columns - - 1, ynew, xnew, ovw)) != INFINITY) - && t5_cr_cost + SP->_cub1_cost + newcost < usecost) { - tactic = 5; - usecost = t5_cr_cost + SP->_cub1_cost + newcost; - } - - /* - * These cases are ordered by estimated relative frequency. - */ - if (tactic) - InitResult; - switch (tactic) { - case 1: - (void) relative_move(&result, yold, xold, ynew, xnew, ovw); - break; - case 2: - (void) _nc_safe_strcpy(&result, carriage_return); - (void) relative_move(&result, yold, 0, ynew, xnew, ovw); - break; - case 3: - (void) _nc_safe_strcpy(&result, cursor_home); - (void) relative_move(&result, 0, 0, ynew, xnew, ovw); - break; - case 4: - (void) _nc_safe_strcpy(&result, cursor_to_ll); - (void) relative_move(&result, screen_lines - 1, 0, ynew, xnew, ovw); - break; - case 5: - if (xold > 0) - (void) _nc_safe_strcat(&result, carriage_return); - (void) _nc_safe_strcat(&result, cursor_left); - (void) relative_move(&result, yold - 1, screen_columns - 1, ynew, - xnew, ovw); - break; - } -#endif /* !NO_OPTIMIZE */ - - nonlocal: -#if defined(MAIN) || defined(NCURSES_TEST) - gettimeofday(&after, NULL); - diff = after.tv_usec - before.tv_usec - + (after.tv_sec - before.tv_sec) * 1000000; - if (!profiling) - (void) fprintf(stderr, - "onscreen: %d microsec, %f 28.8Kbps char-equivalents\n", - (int) diff, diff / 288); -#endif /* MAIN */ - - if (usecost != INFINITY) { - TPUTS_TRACE("mvcur"); - tputs(buffer, 1, _nc_outch); - SP->_cursrow = ynew; - SP->_curscol = xnew; - return (OK); - } else - return (ERR); -} - -NCURSES_EXPORT(int) -mvcur(int yold, int xold, int ynew, int xnew) -/* optimized cursor move from (yold, xold) to (ynew, xnew) */ -{ - attr_t oldattr; - int code; - - TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%d,%d,%d,%d)"), - yold, xold, ynew, xnew)); - - if (SP == 0) { - code = ERR; - } else if (yold == ynew && xold == xnew) { - code = OK; - } else { - - /* - * Most work here is rounding for terminal boundaries getting the - * column position implied by wraparound or the lack thereof and - * rolling up the screen to get ynew on the screen. - */ - if (xnew >= screen_columns) { - ynew += xnew / screen_columns; - xnew %= screen_columns; - } - - /* - * Force restore even if msgr is on when we're in an alternate - * character set -- these have a strong tendency to screw up the CR & - * LF used for local character motions! - */ - oldattr = SP->_current_attr; - if ((oldattr & A_ALTCHARSET) - || (oldattr && !move_standout_mode)) { - TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move", - oldattr, _traceattr(oldattr))); - (void) vidattr(A_NORMAL); - } - - if (xold >= screen_columns) { - int l; - - if (SP->_nl) { - l = (xold + 1) / screen_columns; - yold += l; - if (yold >= screen_lines) - l -= (yold - screen_lines - 1); - - if (l > 0) { - if (carriage_return) { - TPUTS_TRACE("carriage_return"); - putp(carriage_return); - } else - _nc_outch('\r'); - xold = 0; - - while (l > 0) { - if (newline) { - TPUTS_TRACE("newline"); - putp(newline); - } else - _nc_outch('\n'); - l--; - } - } - } else { - /* - * If caller set nonl(), we cannot really use newlines to - * position to the next row. - */ - xold = -1; - yold = -1; - } - } - - if (yold > screen_lines - 1) - yold = screen_lines - 1; - if (ynew > screen_lines - 1) - ynew = screen_lines - 1; - - /* destination location is on screen now */ - code = onscreen_mvcur(yold, xold, ynew, xnew, TRUE); - - /* - * Restore attributes if we disabled them before moving. - */ - if (oldattr != SP->_current_attr) { - TR(TRACE_CHARPUT, ("turning on (%#lx) %s after move", - oldattr, _traceattr(oldattr))); - (void) vidattr(oldattr); - } - } - returnCode(code); -} - -#if defined(TRACE) || defined(NCURSES_TEST) -NCURSES_EXPORT_VAR(int) _nc_optimize_enable = OPTIMIZE_ALL; -#endif - -#if defined(MAIN) || defined(NCURSES_TEST) -/**************************************************************************** - * - * Movement optimizer test code - * - ****************************************************************************/ - -#include -#include - -NCURSES_EXPORT_VAR(const char *) _nc_progname = "mvcur"; - -static unsigned long xmits; - -/* these override lib_tputs.c */ -NCURSES_EXPORT(int) -tputs(const char *string, int affcnt GCC_UNUSED, int (*outc) (int) GCC_UNUSED) -/* stub tputs() that dumps sequences in a visible form */ -{ - if (profiling) - xmits += strlen(string); - else - (void) fputs(_nc_visbuf(string), stdout); - return (OK); -} - -NCURSES_EXPORT(int) -putp(const char *string) -{ - return (tputs(string, 1, _nc_outch)); -} - -NCURSES_EXPORT(int) -_nc_outch(int ch) -{ - putc(ch, stdout); - return OK; -} - -NCURSES_EXPORT(int) -delay_output(int ms GCC_UNUSED) -{ - return OK; -} - -static char tname[PATH_MAX]; - -static void -load_term(void) -{ - (void) setupterm(tname, STDOUT_FILENO, NULL); -} - -static int -roll(int n) -{ - int i, j; - - i = (RAND_MAX / n) * n; - while ((j = rand()) >= i) - continue; - return (j % n); -} - -int -main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) -{ - (void) strcpy(tname, termname()); - load_term(); - _nc_setupscreen(lines, columns, stdout); - baudrate(); - - _nc_mvcur_init(); - NC_BUFFERED(FALSE); - - (void) puts("The mvcur tester. Type ? for help"); - - fputs("smcup:", stdout); - putchar('\n'); - - for (;;) { - int fy, fx, ty, tx, n, i; - char buf[BUFSIZ], capname[BUFSIZ]; - - (void) fputs("> ", stdout); - (void) fgets(buf, sizeof(buf), stdin); - - if (buf[0] == '?') { - (void) puts("? -- display this help message"); - (void) - puts("fy fx ty tx -- (4 numbers) display (fy,fx)->(ty,tx) move"); - (void) puts("s[croll] n t b m -- display scrolling sequence"); - (void) - printf("r[eload] -- reload terminal info for %s\n", - termname()); - (void) - puts("l[oad] -- load terminal info for type "); - (void) puts("d[elete] -- delete named capability"); - (void) puts("i[nspect] -- display terminal capabilities"); - (void) - puts("c[ost] -- dump cursor-optimization cost table"); - (void) puts("o[optimize] -- toggle movement optimization"); - (void) - puts("t[orture] -- torture-test with random moves"); - (void) puts("q[uit] -- quit the program"); - } else if (sscanf(buf, "%d %d %d %d", &fy, &fx, &ty, &tx) == 4) { - struct timeval before, after; - - putchar('"'); - - gettimeofday(&before, NULL); - mvcur(fy, fx, ty, tx); - gettimeofday(&after, NULL); - - printf("\" (%ld msec)\n", - (long) (after.tv_usec - before.tv_usec - + (after.tv_sec - before.tv_sec) - * 1000000)); - } else if (sscanf(buf, "s %d %d %d %d", &fy, &fx, &ty, &tx) == 4) { - struct timeval before, after; - - putchar('"'); - - gettimeofday(&before, NULL); - _nc_scrolln(fy, fx, ty, tx); - gettimeofday(&after, NULL); - - printf("\" (%ld msec)\n", - (long) (after.tv_usec - before.tv_usec + (after.tv_sec - - before.tv_sec) - * 1000000)); - } else if (buf[0] == 'r') { - (void) strcpy(tname, termname()); - load_term(); - } else if (sscanf(buf, "l %s", tname) == 1) { - load_term(); - } else if (sscanf(buf, "d %s", capname) == 1) { - struct name_table_entry const *np = _nc_find_entry(capname, - _nc_info_hash_table); - - if (np == NULL) - (void) printf("No such capability as \"%s\"\n", capname); - else { - switch (np->nte_type) { - case BOOLEAN: - cur_term->type.Booleans[np->nte_index] = FALSE; - (void) - printf("Boolean capability `%s' (%d) turned off.\n", - np->nte_name, np->nte_index); - break; - - case NUMBER: - cur_term->type.Numbers[np->nte_index] = ABSENT_NUMERIC; - (void) printf("Number capability `%s' (%d) set to -1.\n", - np->nte_name, np->nte_index); - break; - - case STRING: - cur_term->type.Strings[np->nte_index] = ABSENT_STRING; - (void) printf("String capability `%s' (%d) deleted.\n", - np->nte_name, np->nte_index); - break; - } - } - } else if (buf[0] == 'i') { - dump_init((char *) NULL, F_TERMINFO, S_TERMINFO, 70, 0, FALSE); - dump_entry(&cur_term->type, FALSE, TRUE, 0, 0, 0); - putchar('\n'); - } else if (buf[0] == 'o') { - if (_nc_optimize_enable & OPTIMIZE_MVCUR) { - _nc_optimize_enable &= ~OPTIMIZE_MVCUR; - (void) puts("Optimization is now off."); - } else { - _nc_optimize_enable |= OPTIMIZE_MVCUR; - (void) puts("Optimization is now on."); - } - } - /* - * You can use the `t' test to profile and tune the movement - * optimizer. Use iteration values in three digits or more. - * At above 5000 iterations the profile timing averages are stable - * to within a millisecond or three. - * - * The `overhead' field of the report will help you pick a - * COMPUTE_OVERHEAD figure appropriate for your processor and - * expected line speed. The `total estimated time' is - * computation time plus a character-transmission time - * estimate computed from the number of transmits and the baud - * rate. - * - * Use this together with the `o' command to get a read on the - * optimizer's effectiveness. Compare the total estimated times - * for `t' runs of the same length in both optimized and un-optimized - * modes. As long as the optimized times are less, the optimizer - * is winning. - */ - else if (sscanf(buf, "t %d", &n) == 1) { - float cumtime = 0.0, perchar; - int speeds[] = - {2400, 9600, 14400, 19200, 28800, 38400, 0}; - - srand((unsigned) (getpid() + time((time_t *) 0))); - profiling = TRUE; - xmits = 0; - for (i = 0; i < n; i++) { - /* - * This does a move test between two random locations, - * Random moves probably short-change the optimizer, - * which will work better on the short moves probably - * typical of doupdate()'s usage pattern. Still, - * until we have better data... - */ -#ifdef FIND_COREDUMP - int from_y = roll(lines); - int to_y = roll(lines); - int from_x = roll(columns); - int to_x = roll(columns); - - printf("(%d,%d) -> (%d,%d)\n", from_y, from_x, to_y, to_x); - mvcur(from_y, from_x, to_y, to_x); -#else - mvcur(roll(lines), roll(columns), roll(lines), roll(columns)); -#endif /* FIND_COREDUMP */ - if (diff) - cumtime += diff; - } - profiling = FALSE; - - /* - * Average milliseconds per character optimization time. - * This is the key figure to watch when tuning the optimizer. - */ - perchar = cumtime / n; - - (void) printf("%d moves (%ld chars) in %d msec, %f msec each:\n", - n, xmits, (int) cumtime, perchar); - - for (i = 0; speeds[i]; i++) { - /* - * Total estimated time for the moves, computation and - * transmission both. Transmission time is an estimate - * assuming 9 bits/char, 8 bits + 1 stop bit. - */ - float totalest = cumtime + xmits * 9 * 1e6 / speeds[i]; - - /* - * Per-character optimization overhead in character transmits - * at the current speed. Round this to the nearest integer - * to figure COMPUTE_OVERHEAD for the speed. - */ - float overhead = speeds[i] * perchar / 1e6; - - (void) - printf("%6d bps: %3.2f char-xmits overhead; total estimated time %15.2f\n", - speeds[i], overhead, totalest); - } - } else if (buf[0] == 'c') { - (void) printf("char padding: %d\n", SP->_char_padding); - (void) printf("cr cost: %d\n", SP->_cr_cost); - (void) printf("cup cost: %d\n", SP->_cup_cost); - (void) printf("home cost: %d\n", SP->_home_cost); - (void) printf("ll cost: %d\n", SP->_ll_cost); -#if USE_HARD_TABS - (void) printf("ht cost: %d\n", SP->_ht_cost); - (void) printf("cbt cost: %d\n", SP->_cbt_cost); -#endif /* USE_HARD_TABS */ - (void) printf("cub1 cost: %d\n", SP->_cub1_cost); - (void) printf("cuf1 cost: %d\n", SP->_cuf1_cost); - (void) printf("cud1 cost: %d\n", SP->_cud1_cost); - (void) printf("cuu1 cost: %d\n", SP->_cuu1_cost); - (void) printf("cub cost: %d\n", SP->_cub_cost); - (void) printf("cuf cost: %d\n", SP->_cuf_cost); - (void) printf("cud cost: %d\n", SP->_cud_cost); - (void) printf("cuu cost: %d\n", SP->_cuu_cost); - (void) printf("hpa cost: %d\n", SP->_hpa_cost); - (void) printf("vpa cost: %d\n", SP->_vpa_cost); - } else if (buf[0] == 'x' || buf[0] == 'q') - break; - else - (void) puts("Invalid command."); - } - - (void) fputs("rmcup:", stdout); - _nc_mvcur_wrap(); - putchar('\n'); - - return (0); -} - -#endif /* MAIN */ - -/* lib_mvcur.c ends here */ diff --git a/Build/source/libs/ncurses/ncurses/tty/lib_tstp.c b/Build/source/libs/ncurses/ncurses/tty/lib_tstp.c deleted file mode 100644 index c850e41da2c..00000000000 --- a/Build/source/libs/ncurses/ncurses/tty/lib_tstp.c +++ /dev/null @@ -1,399 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas Dickey 1995-2001 * - ****************************************************************************/ - -/* -** lib_tstp.c -** -** The routine _nc_signal_handler(). -** -*/ -#include - -#include - -#if SVR4_ACTION && !defined(_POSIX_SOURCE) -#define _POSIX_SOURCE -#endif - -MODULE_ID("$Id: lib_tstp.c,v 1.30 2002/05/18 19:55:38 tom Exp $") - -#if defined(SIGTSTP) && (HAVE_SIGACTION || HAVE_SIGVEC) -#define USE_SIGTSTP 1 -#else -#define USE_SIGTSTP 0 -#endif - -#ifdef TRACE -static const char * -signal_name(int sig) -{ - switch (sig) { - case SIGALRM: - return "SIGALRM"; -#ifdef SIGCONT - case SIGCONT: - return "SIGCONT"; -#endif - case SIGINT: - return "SIGINT"; - case SIGQUIT: - return "SIGQUIT"; - case SIGTERM: - return "SIGTERM"; -#ifdef SIGTSTP - case SIGTSTP: - return "SIGTSTP"; -#endif -#ifdef SIGTTOU - case SIGTTOU: - return "SIGTTOU"; -#endif -#ifdef SIGWINCH - case SIGWINCH: - return "SIGWINCH"; -#endif - default: - return "unknown signal"; - } -} -#endif - -/* - * Note: This code is fragile! Its problem is that different OSs - * handle restart of system calls interrupted by signals differently. - * The ncurses code needs signal-call restart to happen -- otherwise, - * interrupted wgetch() calls will return FAIL, probably making the - * application think the input stream has ended and it should - * terminate. In particular, you know you have this problem if, when - * you suspend an ncurses-using lynx with ^Z and resume, it dies - * immediately. - * - * Default behavior of POSIX sigaction(2) is not to restart - * interrupted system calls, but Linux's sigaction does it anyway (at - * least, on and after the 1.1.47 I (esr) use). Thus this code works - * OK under Linux. The 4.4BSD sigaction(2) supports a (non-portable) - * SA_RESTART flag that forces the right behavior. Thus, this code - * should work OK under BSD/OS, NetBSD, and FreeBSD (let us know if it - * does not). - * - * Stock System Vs (and anything else using a strict-POSIX - * sigaction(2) without SA_RESTART) may have a problem. Possible - * solutions: - * - * sigvec restarts by default (SV_INTERRUPT flag to not restart) - * signal restarts by default in SVr4 (assuming you link with -lucb) - * and BSD, but not SVr3. - * sigset restarts, but is only available under SVr4/Solaris. - * - * The signal(3) call is mandated by the ANSI standard, and its - * interaction with sigaction(2) is described in the POSIX standard - * (3.3.4.2, page 72,line 934). According to section 8.1, page 191, - * however, signal(3) itself is not required by POSIX.1. And POSIX is - * silent on whether it is required to restart signals. - * - * So. The present situation is, we use sigaction(2) with no - * guarantee of restart anywhere but on Linux and BSD. We could - * switch to signal(3) and collar Linux, BSD, and SVr4. Any way - * we slice it, System V UNIXes older than SVr4 will probably lose - * (this may include XENIX). - * - * This implementation will probably be changed to use signal(3) in - * the future. If nothing else, it's simpler... - */ - -#if USE_SIGTSTP -static void -tstp(int dummy GCC_UNUSED) -{ - sigset_t mask, omask; - sigaction_t act, oact; - -#ifdef SIGTTOU - int sigttou_blocked; -#endif - - T(("tstp() called")); - - /* - * The user may have changed the prog_mode tty bits, so save them. - * - * But first try to detect whether we still are in the foreground - * process group - if not, an interactive shell may already have - * taken ownership of the tty and modified the settings when our - * parent was stopped before us, and we would likely pick up the - * settings already modified by the shell. - */ - if (SP != 0 && !SP->_endwin) /* don't do this if we're not in curses */ -#if HAVE_TCGETPGRP - if (tcgetpgrp(STDIN_FILENO) == getpgrp()) -#endif - def_prog_mode(); - - /* - * Block window change and timer signals. The latter - * is because applications use timers to decide when - * to repaint the screen. - */ - (void) sigemptyset(&mask); - (void) sigaddset(&mask, SIGALRM); -#if USE_SIGWINCH - (void) sigaddset(&mask, SIGWINCH); -#endif - (void) sigprocmask(SIG_BLOCK, &mask, &omask); - -#ifdef SIGTTOU - sigttou_blocked = sigismember(&omask, SIGTTOU); - if (!sigttou_blocked) { - (void) sigemptyset(&mask); - (void) sigaddset(&mask, SIGTTOU); - (void) sigprocmask(SIG_BLOCK, &mask, NULL); - } -#endif - - /* - * End window mode, which also resets the terminal state to the - * original (pre-curses) modes. - */ - endwin(); - - /* Unblock SIGTSTP. */ - (void) sigemptyset(&mask); - (void) sigaddset(&mask, SIGTSTP); -#ifdef SIGTTOU - if (!sigttou_blocked) { - /* Unblock this too if it wasn't blocked on entry */ - (void) sigaddset(&mask, SIGTTOU); - } -#endif - (void) sigprocmask(SIG_UNBLOCK, &mask, NULL); - - /* Now we want to resend SIGSTP to this process and suspend it */ - act.sa_handler = SIG_DFL; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; -#ifdef SA_RESTART - act.sa_flags |= SA_RESTART; -#endif /* SA_RESTART */ - sigaction(SIGTSTP, &act, &oact); - kill(getpid(), SIGTSTP); - - /* Process gets suspended...time passes...process resumes */ - - T(("SIGCONT received")); - sigaction(SIGTSTP, &oact, NULL); - flushinp(); - - /* - * If the user modified the tty state while suspended, he wants - * those changes to stick. So save the new "default" terminal state. - */ - def_shell_mode(); - - /* - * This relies on the fact that doupdate() will restore the - * program-mode tty state, and issue enter_ca_mode if need be. - */ - doupdate(); - - /* Reset the signals. */ - (void) sigprocmask(SIG_SETMASK, &omask, NULL); -} -#endif /* USE_SIGTSTP */ - -static void -cleanup(int sig) -{ - static int nested; - - /* - * Actually, doing any sort of I/O from within an signal handler is - * "unsafe". But we'll _try_ to clean up the screen and terminal - * settings on the way out. - */ - if (!nested++ - && (sig == SIGINT - || sig == SIGQUIT)) { -#if HAVE_SIGACTION || HAVE_SIGVEC - sigaction_t act; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; - act.sa_handler = SIG_IGN; - if (sigaction(sig, &act, NULL) == 0) -#else - if (signal(sig, SIG_IGN) != SIG_ERR) -#endif - { - SCREEN *scan = _nc_screen_chain; - while (scan) { - if (SP != 0 - && SP->_ofp != 0 - && isatty(fileno(SP->_ofp))) { - SP->_cleanup = TRUE; - SP->_outch = _nc_outch; - } - set_term(scan); - endwin(); - if (SP) - SP->_endwin = FALSE; /* in case we have an atexit! */ - scan = scan->_next_screen; - } - } - } - exit(EXIT_FAILURE); -} - -#if USE_SIGWINCH -static void -sigwinch(int sig GCC_UNUSED) -{ - SCREEN *scan = _nc_screen_chain; - while (scan) { - scan->_sig_winch = TRUE; - scan = scan->_next_screen; - } -} -#endif /* USE_SIGWINCH */ - -/* - * If the given signal is still in its default state, set it to the given - * handler. - */ -static int -CatchIfDefault(int sig, RETSIGTYPE (*handler) (int)) -{ - int result; -#if HAVE_SIGACTION || HAVE_SIGVEC - sigaction_t old_act; - sigaction_t new_act; - - memset(&new_act, 0, sizeof(new_act)); - sigemptyset(&new_act.sa_mask); -#ifdef SA_RESTART -#ifdef SIGWINCH - if (sig != SIGWINCH) -#endif - new_act.sa_flags |= SA_RESTART; -#endif /* SA_RESTART */ - new_act.sa_handler = handler; - - if (sigaction(sig, NULL, &old_act) == 0 - && (old_act.sa_handler == SIG_DFL - || old_act.sa_handler == handler -#if USE_SIGWINCH - || (sig == SIGWINCH && old_act.sa_handler == SIG_IGN) -#endif - )) { - (void) sigaction(sig, &new_act, NULL); - result = TRUE; - } else { - result = FALSE; - } -#else /* !HAVE_SIGACTION */ - RETSIGTYPE (*ohandler) (int); - - ohandler = signal(sig, SIG_IGN); - if (ohandler == SIG_DFL - || ohandler == handler -#if USE_SIGWINCH - || (sig == SIGWINCH && ohandler == SIG_IGN) -#endif - ) { - signal(sig, handler); - result = TRUE; - } else { - signal(sig, ohandler); - result = FALSE; - } -#endif - T(("CatchIfDefault - will %scatch %s", - result ? "" : "not ", signal_name(sig))); - return result; -} - -/* - * This is invoked once at the beginning (e.g., from 'initscr()'), to - * initialize the signal catchers, and thereafter when spawning a shell (and - * returning) to disable/enable the SIGTSTP (i.e., ^Z) catcher. - * - * If the application has already set one of the signals, we'll not modify it - * (during initialization). - * - * The XSI document implies that we shouldn't keep the SIGTSTP handler if - * the caller later changes its mind, but that doesn't seem correct. - */ -NCURSES_EXPORT(void) -_nc_signal_handler(bool enable) -{ - static bool initialized = FALSE; - - T((T_CALLED("_nc_signal_handler(%d)"), enable)); -#if USE_SIGTSTP /* Xenix 2.x doesn't have SIGTSTP, for example */ - { - static bool ignore_tstp = FALSE; - - if (!ignore_tstp) { - static sigaction_t act, oact; - - if (!enable) { - act.sa_handler = SIG_IGN; - sigaction(SIGTSTP, &act, &oact); - } else if (act.sa_handler != SIG_DFL) { - sigaction(SIGTSTP, &oact, NULL); - } else if (sigaction(SIGTSTP, NULL, &oact) == 0 - && (oact.sa_handler == SIG_DFL)) { - sigemptyset(&act.sa_mask); -#ifdef SA_RESTART - act.sa_flags |= SA_RESTART; -#endif /* SA_RESTART */ - act.sa_handler = tstp; - (void) sigaction(SIGTSTP, &act, NULL); - } else { - ignore_tstp = TRUE; - } - } - } -#endif /* !USE_SIGTSTP */ - - if (!initialized) { - if (enable) { - CatchIfDefault(SIGINT, cleanup); - CatchIfDefault(SIGTERM, cleanup); -#if USE_SIGWINCH - CatchIfDefault(SIGWINCH, sigwinch); -#endif - initialized = TRUE; - } - } - returnVoid; -} diff --git a/Build/source/libs/ncurses/ncurses/tty/lib_twait.c b/Build/source/libs/ncurses/ncurses/tty/lib_twait.c deleted file mode 100644 index 2a3b7e2ff1b..00000000000 --- a/Build/source/libs/ncurses/ncurses/tty/lib_twait.c +++ /dev/null @@ -1,447 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* -** lib_twait.c -** -** The routine _nc_timed_wait(). -** -** (This file was originally written by Eric Raymond; however except for -** comments, none of the original code remains - T.Dickey). -*/ - -#include - -#ifdef __BEOS__ -#undef false -#undef true -#include -#endif - -#if USE_FUNC_POLL -# if HAVE_SYS_TIME_H -# include -# endif -#elif HAVE_SELECT -# if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT -# include -# endif -# if HAVE_SYS_SELECT_H -# include -# endif -#endif - -MODULE_ID("$Id: lib_twait.c,v 1.50 2004/09/25 22:53:43 tom Exp $") - -static long -_nc_gettime(bool first) -{ - long res; - -#if HAVE_GETTIMEOFDAY -# define PRECISE_GETTIME 1 - static struct timeval t0; - struct timeval t1; - gettimeofday(&t1, (struct timezone *) 0); - if (first) { - t0 = t1; - res = 0; - } else { - /* .tv_sec and .tv_usec are unsigned, be careful when subtracting */ - if (t0.tv_usec > t1.tv_usec) { /* Convert 1s in 1e6 microsecs */ - t1.tv_usec += 1000000; - t1.tv_sec--; - } - res = (t1.tv_sec - t0.tv_sec) * 1000 - + (t1.tv_usec - t0.tv_usec) / 1000; - } -#else -# define PRECISE_GETTIME 0 - static time_t t0; - time_t t1 = time((time_t *) 0); - if (first) { - t0 = t1; - } - res = (t1 - t0) * 1000; -#endif - TR(TRACE_IEVENT, ("%s time: %ld msec", first ? "get" : "elapsed", res)); - return res; -} - -#ifdef NCURSES_WGETCH_EVENTS -NCURSES_EXPORT(int) -_nc_eventlist_timeout(_nc_eventlist * evl) -{ - _nc_event **ev, **last; - int event_delay = -1; - - if (evl != 0) { - - ev = evl->events; - last = ev + evl->count; - - while (ev < last) { - if ((*ev)->type == _NC_EVENT_TIMEOUT_MSEC) { - event_delay = (*ev)->data.timeout_msec; - if (event_delay < 0) - event_delay = LONG_MAX; /* FIXME Is this defined? */ - } - } - } - return event_delay; -} -#endif /* NCURSES_WGETCH_EVENTS */ - -/* - * Wait a specified number of milliseconds, returning nonzero if the timer - * didn't expire before there is activity on the specified file descriptors. - * The file-descriptors are specified by the mode: - * 0 - none (absolute time) - * 1 - ncurses' normal input-descriptor - * 2 - mouse descriptor, if any - * 3 - either input or mouse. - * - * Experimental: if NCURSES_WGETCH_EVENTS is defined, (mode & 4) determines - * whether to pay attention to evl argument. If set, the smallest of - * millisecond and of timeout of evl is taken. - * - * We return a mask that corresponds to the mode (e.g., 2 for mouse activity). - * - * If the milliseconds given are -1, the wait blocks until activity on the - * descriptors. - */ -NCURSES_EXPORT(int) -_nc_timed_wait(int mode, - int milliseconds, - int *timeleft - EVENTLIST_2nd(_nc_eventlist * evl)) -{ - int fd; - int count; - int result; - -#ifdef NCURSES_WGETCH_EVENTS - int timeout_is_event = 0; -#endif - -#if USE_FUNC_POLL - struct pollfd fd_list[2]; - struct pollfd *fds = fd_list; -#elif defined(__BEOS__) -#elif HAVE_SELECT - static fd_set set; -#endif - - long starttime, returntime; - - TR(TRACE_IEVENT, ("start twait: %d milliseconds, mode: %d", - milliseconds, mode)); - -#ifdef NCURSES_WGETCH_EVENTS - if (mode & 4) { - int event_delay = _nc_eventlist_timeout(evl); - - if (event_delay >= 0 - && (milliseconds >= event_delay || milliseconds < 0)) { - milliseconds = event_delay; - timeout_is_event = 1; - } - } -#endif - -#if PRECISE_GETTIME - retry: -#endif - starttime = _nc_gettime(TRUE); - - count = 0; - -#ifdef NCURSES_WGETCH_EVENTS - if ((mode & 4) && evl) - evl->result_flags = 0; -#endif - -#if USE_FUNC_POLL - memset(fd_list, 0, sizeof(fd_list)); - -#ifdef NCURSES_WGETCH_EVENTS - if ((mode & 4) && evl) - fds = typeMalloc(struct pollfd, 2 + evl->count); -#endif - - if (mode & 1) { - fds[count].fd = SP->_ifd; - fds[count].events = POLLIN; - count++; - } - if ((mode & 2) - && (fd = SP->_mouse_fd) >= 0) { - fds[count].fd = fd; - fds[count].events = POLLIN; - count++; - } -#ifdef NCURSES_WGETCH_EVENTS - if ((mode & 4) && evl) { - _nc_event **ev = evl->events; - _nc_event **last = ev + evl->count; - - while (ev < last) { - if ((*ev)->type == _NC_EVENT_FILE - && ((*ev)->data.fev.flags & _NC_EVENT_FILE_READABLE)) { - fds[count].fd = (*ev)->data.fev.fd; - fds[count].events = POLLIN; - count++; - } - } - } -#endif - - result = poll(fds, (unsigned) count, milliseconds); - -#ifdef NCURSES_WGETCH_EVENTS - if ((mode & 4) && evl) { - _nc_event **ev = evl->events; - _nc_event **last = ev + evl->count; - int c; - - if (!result) - count = 0; - while (ev < last) { - if ((*ev)->type == _NC_EVENT_FILE - && ((*ev)->data.fev.flags & _NC_EVENT_FILE_READABLE)) { - (*ev)->data.fev.result = 0; - for (c = 0; c < count; c++) - if (fds[c].fd == (*ev)->data.fev.fd - && fds[c].revents & POLLIN) { - (*ev)->data.fev.result |= _NC_EVENT_FILE_READABLE; - evl->result_flags |= _NC_EVENT_FILE_READABLE; - } - } else if ((*ev)->type == _NC_EVENT_TIMEOUT_MSEC - && !result && timeout_is_event) { - evl->result_flags |= _NC_EVENT_TIMEOUT_MSEC; - } - } - } - - if (fds != fd_list) - free((char *) fds); - -#endif - -#elif defined(__BEOS__) - /* - * BeOS's select() is declared in socket.h, so the configure script does - * not see it. That's just as well, since that function works only for - * sockets. This (using snooze and ioctl) was distilled from Be's patch - * for ncurses which uses a separate thread to simulate select(). - * - * FIXME: the return values from the ioctl aren't very clear if we get - * interrupted. - * - * FIXME: this assumes mode&1 if milliseconds < 0 (see lib_getch.c). - */ - result = 0; - if (mode & 1) { - int step = (milliseconds < 0) ? 0 : 5000; - bigtime_t d; - bigtime_t useconds = milliseconds * 1000; - int n, howmany; - - if (useconds <= 0) /* we're here to go _through_ the loop */ - useconds = 1; - - for (d = 0; d < useconds; d += step) { - n = 0; - howmany = ioctl(0, 'ichr', &n); - if (howmany >= 0 && n > 0) { - result = 1; - break; - } - if (useconds > 1 && step > 0) { - snooze(step); - milliseconds -= (step / 1000); - if (milliseconds <= 0) { - milliseconds = 0; - break; - } - } - } - } else if (milliseconds > 0) { - snooze(milliseconds * 1000); - milliseconds = 0; - } -#elif HAVE_SELECT - /* - * select() modifies the fd_set arguments; do this in the - * loop. - */ - FD_ZERO(&set); - - if (mode & 1) { - FD_SET(SP->_ifd, &set); - count = SP->_ifd + 1; - } - if ((mode & 2) - && (fd = SP->_mouse_fd) >= 0) { - FD_SET(fd, &set); - count = max(fd, count) + 1; - } -#ifdef NCURSES_WGETCH_EVENTS - if ((mode & 4) && evl) { - _nc_event **ev = evl->events; - _nc_event **last = ev + evl->count; - - while (ev < last) { - if ((*ev)->type == _NC_EVENT_FILE - && ((*ev)->data.fev.flags & _NC_EVENT_FILE_READABLE)) { - FD_SET((*ev)->data.fev.fd, &set); - count = max((*ev)->data.fev.fd + 1, count); - } - } - } -#endif - - if (milliseconds >= 0) { - struct timeval ntimeout; - ntimeout.tv_sec = milliseconds / 1000; - ntimeout.tv_usec = (milliseconds % 1000) * 1000; - result = select(count, &set, NULL, NULL, &ntimeout); - } else { - result = select(count, &set, NULL, NULL, NULL); - } - -#ifdef NCURSES_WGETCH_EVENTS - if ((mode & 4) && evl) { - _nc_event **ev = evl->events; - _nc_event **last = ev + evl->count; - - evl->result_flags = 0; - while (ev < last) { - if ((*ev)->type == _NC_EVENT_FILE - && ((*ev)->data.fev.flags & _NC_EVENT_FILE_READABLE)) { - (*ev)->data.fev.result = 0; - if (FD_ISSET((*ev)->data.fev.fd, &set)) { - (*ev)->data.fev.result |= _NC_EVENT_FILE_READABLE; - evl->result_flags |= _NC_EVENT_FILE_READABLE; - } - } else if ((*ev)->type == _NC_EVENT_TIMEOUT_MSEC - && !result && timeout_is_event) - evl->result_flags |= _NC_EVENT_TIMEOUT_MSEC; - } - } -#endif - -#endif /* USE_FUNC_POLL, etc */ - - returntime = _nc_gettime(FALSE); - - if (milliseconds >= 0) - milliseconds -= (returntime - starttime); - -#ifdef NCURSES_WGETCH_EVENTS - if (evl) { - _nc_event **ev = evl->events; - _nc_event **last = ev + evl->count; - - evl->result_flags = 0; - while (ev < last) { - if ((*ev)->type == _NC_EVENT_TIMEOUT_MSEC) { - long diff = (returntime - starttime); - if ((*ev)->data.timeout_msec <= diff) - (*ev)->data.timeout_msec = 0; - else - (*ev)->data.timeout_msec -= diff; - } - - } - } -#endif - -#if PRECISE_GETTIME && HAVE_NANOSLEEP - /* - * If the timeout hasn't expired, and we've gotten no data, - * this is probably a system where 'select()' needs to be left - * alone so that it can complete. Make this process sleep, - * then come back for more. - */ - if (result == 0 && milliseconds > 100) { - napms(100); /* FIXME: this won't be right if I recur! */ - milliseconds -= 100; - goto retry; - } -#endif - - /* return approximate time left in milliseconds */ - if (timeleft) - *timeleft = milliseconds; - - TR(TRACE_IEVENT, ("end twait: returned %d (%d), remaining time %d msec", - result, errno, milliseconds)); - - /* - * Both 'poll()' and 'select()' return the number of file descriptors - * that are active. Translate this back to the mask that denotes which - * file-descriptors, so that we don't need all of this system-specific - * code everywhere. - */ - if (result != 0) { - if (result > 0) { - result = 0; -#if USE_FUNC_POLL - for (count = 0; count < 2; count++) { - if ((mode & (1 << count)) - && (fds[count].revents & POLLIN)) { - result |= (1 << count); - } - } -#elif defined(__BEOS__) - result = 1; /* redundant, but simple */ -#elif HAVE_SELECT - if ((mode & 2) - && (fd = SP->_mouse_fd) >= 0 - && FD_ISSET(fd, &set)) - result |= 2; - if ((mode & 1) - && FD_ISSET(SP->_ifd, &set)) - result |= 1; -#endif - } else - result = 0; - } -#ifdef NCURSES_WGETCH_EVENTS - if ((mode & 4) && evl && evl->result_flags) - result |= 4; -#endif - - return (result); -} diff --git a/Build/source/libs/ncurses/ncurses/tty/lib_vidattr.c b/Build/source/libs/ncurses/ncurses/tty/lib_vidattr.c deleted file mode 100644 index 00611f4e150..00000000000 --- a/Build/source/libs/ncurses/ncurses/tty/lib_vidattr.c +++ /dev/null @@ -1,310 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - ****************************************************************************/ - -/* - * vidputs(newmode, outc) - * - * newmode is taken to be the logical 'or' of the symbols in curses.h - * representing graphic renditions. The terminal is set to be in all of - * the given modes, if possible. - * - * if the new attribute is normal - * if exit-alt-char-set exists - * emit it - * emit exit-attribute-mode - * else if set-attributes exists - * use it to set exactly what you want - * else - * if exit-attribute-mode exists - * turn off everything - * else - * turn off those which can be turned off and aren't in - * newmode. - * turn on each mode which should be on and isn't, one by one - * - * NOTE that this algorithm won't achieve the desired mix of attributes - * in some cases, but those are probably just those cases in which it is - * actually impossible, anyway, so... - * - * NOTE that we cannot assume that there's no interaction between color - * and other attribute resets. So each time we reset color (or other - * attributes) we'll have to be prepared to restore the other. - */ - -#include -#include - -MODULE_ID("$Id: lib_vidattr.c,v 1.39 2001/08/26 00:40:46 Philippe.Blain Exp $") - -#define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc) - -#define TurnOn(mask,mode) \ - if ((turn_on & mask) && mode) { doPut(mode); } - -#define TurnOff(mask,mode) \ - if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; } - - /* if there is no current screen, assume we *can* do color */ -#define SetColorsIf(why,old_attr) \ - if (can_color && (why)) { \ - int old_pair = PAIR_NUMBER(old_attr); \ - TR(TRACE_ATTRS, ("old pair = %d -- new pair = %d", old_pair, pair)); \ - if ((pair != old_pair) \ - || (fix_pair0 && (pair == 0)) \ - || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \ - _nc_do_color(old_pair, pair, reverse, outc); \ - } \ - } - -NCURSES_EXPORT(int) -vidputs -(chtype newmode, int (*outc) (int)) -{ - static attr_t previous_attr = A_NORMAL; - attr_t turn_on, turn_off; - int pair; - bool reverse = FALSE; - bool can_color = (SP == 0 || SP->_coloron); -#if NCURSES_EXT_FUNCS - bool fix_pair0 = (SP != 0 && SP->_coloron && !SP->_default_color); -#else -#define fix_pair0 FALSE -#endif - - T((T_CALLED("vidputs(%s)"), _traceattr(newmode))); - - /* this allows us to go on whether or not newterm() has been called */ - if (SP) - previous_attr = SP->_current_attr; - - TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(previous_attr))); - -#if !USE_XMC_SUPPORT - if ((SP != 0) - && (magic_cookie_glitch > 0)) - newmode &= ~(SP->_xmc_suppress); -#endif - - /* - * If we have a terminal that cannot combine color with video - * attributes, use the colors in preference. - */ - if (((newmode & A_COLOR) != 0 - || fix_pair0) - && (no_color_video > 0)) { - /* - * If we had chosen the A_xxx definitions to correspond to the - * no_color_video mask, we could simply shift it up and mask off the - * attributes. But we did not (actually copied Solaris' definitions). - * However, this is still simpler/faster than a lookup table. - * - * The 63 corresponds to A_STANDOUT, A_UNDERLINE, A_REVERSE, A_BLINK, - * A_DIM, A_BOLD which are 1:1 with no_color_video. The bits that - * correspond to A_INVIS, A_PROTECT (192) must be shifted up 1 and - * A_ALTCHARSET (256) down 2 to line up. We use the NCURSES_BITS - * macro so this will work properly for the wide-character layout. - */ - unsigned value = no_color_video; - attr_t mask = NCURSES_BITS((value & 63) - | ((value & 192) << 1) - | ((value & 256) >> 2), 8); - - if ((mask & A_REVERSE) != 0 - && (newmode & A_REVERSE) != 0) { - reverse = TRUE; - mask &= ~A_REVERSE; - } - newmode &= ~mask; - } - - if (newmode == previous_attr) - returnCode(OK); - - pair = PAIR_NUMBER(newmode); - - if (reverse) { - newmode &= ~A_REVERSE; - } - - turn_off = (~newmode & previous_attr) & ALL_BUT_COLOR; - turn_on = (newmode & ~previous_attr) & ALL_BUT_COLOR; - - SetColorsIf(((pair == 0) && !fix_pair0), previous_attr); - - if (newmode == A_NORMAL) { - if ((previous_attr & A_ALTCHARSET) && exit_alt_charset_mode) { - doPut(exit_alt_charset_mode); - previous_attr &= ~A_ALTCHARSET; - } - if (previous_attr) { - if (exit_attribute_mode) { - doPut(exit_attribute_mode); - } else { - if (!SP || SP->_use_rmul) { - TurnOff(A_UNDERLINE, exit_underline_mode); - } - if (!SP || SP->_use_rmso) { - TurnOff(A_STANDOUT, exit_standout_mode); - } - } - previous_attr &= ~A_COLOR; - } - - SetColorsIf((pair != 0) || fix_pair0, previous_attr); - } else if (set_attributes) { - if (turn_on || turn_off) { - TPUTS_TRACE("set_attributes"); - tputs(tparm(set_attributes, - (newmode & A_STANDOUT) != 0, - (newmode & A_UNDERLINE) != 0, - (newmode & A_REVERSE) != 0, - (newmode & A_BLINK) != 0, - (newmode & A_DIM) != 0, - (newmode & A_BOLD) != 0, - (newmode & A_INVIS) != 0, - (newmode & A_PROTECT) != 0, - (newmode & A_ALTCHARSET) != 0), 1, outc); - previous_attr &= ~A_COLOR; - } - SetColorsIf((pair != 0) || fix_pair0, previous_attr); - } else { - - TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off))); - - TurnOff(A_ALTCHARSET, exit_alt_charset_mode); - - if (!SP || SP->_use_rmul) { - TurnOff(A_UNDERLINE, exit_underline_mode); - } - - if (!SP || SP->_use_rmso) { - TurnOff(A_STANDOUT, exit_standout_mode); - } - - if (turn_off && exit_attribute_mode) { - doPut(exit_attribute_mode); - turn_on |= (newmode & (chtype) (~A_COLOR)); - previous_attr &= ~A_COLOR; - } - SetColorsIf((pair != 0) || fix_pair0, previous_attr); - - TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on))); - /* *INDENT-OFF* */ - TurnOn(A_ALTCHARSET, enter_alt_charset_mode); - TurnOn(A_BLINK, enter_blink_mode); - TurnOn(A_BOLD, enter_bold_mode); - TurnOn(A_DIM, enter_dim_mode); - TurnOn(A_REVERSE, enter_reverse_mode); - TurnOn(A_STANDOUT, enter_standout_mode); - TurnOn(A_PROTECT, enter_protected_mode); - TurnOn(A_INVIS, enter_secure_mode); - TurnOn(A_UNDERLINE, enter_underline_mode); -#ifdef enter_horizontal_hl_mode - TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode); -#endif -#ifdef enter_left_hl_mode - TurnOn(A_LEFT, enter_left_hl_mode); -#endif -#ifdef enter_low_hl_mode - TurnOn(A_LOW, enter_low_hl_mode); -#endif -#ifdef enter_right_hl_mode - TurnOn(A_RIGHT, enter_right_hl_mode); -#endif -#ifdef enter_top_hl_mode - TurnOn(A_TOP, enter_top_hl_mode); -#endif -#ifdef enter_vertical_hl_mode - TurnOn(A_VERTICAL, enter_vertical_hl_mode); -#endif - /* *INDENT-ON* */ - - } - - if (reverse) - newmode |= A_REVERSE; - - if (SP) - SP->_current_attr = newmode; - else - previous_attr = newmode; - - returnCode(OK); -} - -NCURSES_EXPORT(int) -vidattr(chtype newmode) -{ - T((T_CALLED("vidattr(%s)"), _traceattr(newmode))); - - returnCode(vidputs(newmode, _nc_outch)); -} - -NCURSES_EXPORT(chtype) -termattrs(void) -{ - chtype attrs = A_NORMAL; - - T((T_CALLED("termattrs()"))); - if (enter_alt_charset_mode) - attrs |= A_ALTCHARSET; - - if (enter_blink_mode) - attrs |= A_BLINK; - - if (enter_bold_mode) - attrs |= A_BOLD; - - if (enter_dim_mode) - attrs |= A_DIM; - - if (enter_reverse_mode) - attrs |= A_REVERSE; - - if (enter_standout_mode) - attrs |= A_STANDOUT; - - if (enter_protected_mode) - attrs |= A_PROTECT; - - if (enter_secure_mode) - attrs |= A_INVIS; - - if (enter_underline_mode) - attrs |= A_UNDERLINE; - - if (SP->_coloron) - attrs |= A_COLOR; - - returnChar(attrs); -} diff --git a/Build/source/libs/ncurses/ncurses/tty/tty_display.h b/Build/source/libs/ncurses/ncurses/tty/tty_display.h deleted file mode 100644 index 3322f747ebb..00000000000 --- a/Build/source/libs/ncurses/ncurses/tty/tty_display.h +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ************************************************************************** */ - -#ifndef TTY_DISPLAY_H -#define TTY_DISPLAY_H 1 - -/* - * $Id: tty_display.h,v 1.5 2003/08/02 22:59:07 Philippe.Blain Exp $ - */ -extern NCURSES_EXPORT(bool) _nc_tty_beep (void); -extern NCURSES_EXPORT(bool) _nc_tty_check_resize (void); -extern NCURSES_EXPORT(bool) _nc_tty_cursor (int); -extern NCURSES_EXPORT(bool) _nc_tty_flash (void); -extern NCURSES_EXPORT(bool) _nc_tty_init_color (int,int,int,int); -extern NCURSES_EXPORT(bool) _nc_tty_init_pair (int,int,int); -extern NCURSES_EXPORT(bool) _nc_tty_slk_hide (bool); -extern NCURSES_EXPORT(bool) _nc_tty_slk_update (int,const char *); -extern NCURSES_EXPORT(bool) _nc_tty_start_color (void); -extern NCURSES_EXPORT(void) _nc_tty_display_resume (void); -extern NCURSES_EXPORT(void) _nc_tty_display_suspend (void); -extern NCURSES_EXPORT(void) _nc_tty_dispose (void); /* frees SP->_term */ -extern NCURSES_EXPORT(void) _nc_tty_switch_to (void); -extern NCURSES_EXPORT(void) _nc_tty_update (void); - -struct tty_display_data { - int _fifohold; /* set if breakout marked */ - unsigned long _current_attr; /* terminal attribute current set */ - int _cursrow; /* physical cursor row (-1=unknown) */ - int _curscol; /* physical cursor column */ - - /* cursor movement costs; units are 10ths of milliseconds */ - int _char_padding; /* cost of character put */ - int _cr_cost; /* cost of (carriage_return) */ - int _cup_cost; /* cost of (cursor_address) */ - int _home_cost; /* cost of (cursor_home) */ - int _ll_cost; /* cost of (cursor_to_ll) */ -#if USE_HARD_TABS - int _ht_cost; /* cost of (tab) */ - int _cbt_cost; /* cost of (backtab) */ -#endif /* USE_HARD_TABS */ - int _cub1_cost; /* cost of (cursor_left) */ - int _cuf1_cost; /* cost of (cursor_right) */ - int _cud1_cost; /* cost of (cursor_down) */ - int _cuu1_cost; /* cost of (cursor_up) */ - int _cub_cost; /* cost of (parm_cursor_left) */ - int _cuf_cost; /* cost of (parm_cursor_right) */ - int _cud_cost; /* cost of (parm_cursor_down) */ - int _cuu_cost; /* cost of (parm_cursor_up) */ - int _hpa_cost; /* cost of (column_address) */ - int _vpa_cost; /* cost of (row_address) */ - /* used in lib_doupdate.c, must be chars */ - int _ed_cost; /* cost of (clr_eos) */ - int _el_cost; /* cost of (clr_eol) */ - int _el1_cost; /* cost of (clr_bol) */ - int _dch1_cost; /* cost of (delete_character) */ - int _ich1_cost; /* cost of (insert_character) */ - int _dch_cost; /* cost of (parm_dch) */ - int _ich_cost; /* cost of (parm_ich) */ - int _ech_cost; /* cost of (erase_chars) */ - int _rep_cost; /* cost of (repeat_char) */ - int _hpa_ch_cost; /* cost of (column_address) */ - int _cup_ch_cost; /* cost of (cursor_address) */ - int _smir_cost; /* cost of (enter_insert_mode) */ - int _rmir_cost; /* cost of (exit_insert_mode) */ - int _ip_cost; /* cost of (insert_padding) */ - /* used in lib_mvcur.c */ - char * _address_cursor; - int _carriage_return_length; - int _cursor_home_length; - int _cursor_to_ll_length; - - chtype _xmc_suppress; /* attributes to suppress if xmc */ - chtype _xmc_triggers; /* attributes to process if xmc */ - - bool _sig_winch; -}; - - -#define DelCharCost(count) \ - ((parm_dch != 0) \ - ? D->_dch_cost \ - : ((delete_character != 0) \ - ? (D->_dch1_cost * count) \ - : INFINITY)) - -#define InsCharCost(count) \ - ((parm_ich != 0) \ - ? D->_ich_cost \ - : ((enter_insert_mode && exit_insert_mode) \ - ? D->_smir_cost + D->_rmir_cost + (D->_ip_cost * count) \ - : ((insert_character != 0) \ - ? ((D->_ich1_cost + D->_ip_cost) * count) \ - : INFINITY))) - -#if USE_XMC_SUPPORT -#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) { \ - attr_t chg = D->_current_attr; \ - vidattr(AttrOf(c)); \ - if (magic_cookie_glitch > 0 \ - && XMC_CHANGES((chg ^ D->_current_attr))) { \ - T(("%s @%d before glitch %d,%d", \ - __FILE__, __LINE__, \ - D->_cursrow, \ - D->_curscol)); \ - _nc_do_xmc_glitch(chg); \ - } \ - } -#else -#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) \ - vidattr(AttrOf(c)); -#endif - -#define XMC_CHANGES(c) ((c) & D->_xmc_suppress) - -#endif /* TTY_DISPLAY_H */ diff --git a/Build/source/libs/ncurses/ncurses/tty/tty_input.h b/Build/source/libs/ncurses/ncurses/tty/tty_input.h deleted file mode 100644 index e520793eea6..00000000000 --- a/Build/source/libs/ncurses/ncurses/tty/tty_input.h +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/* - * $Id: tty_input.h,v 1.2 2000/12/10 02:26:51 tom Exp $ - */ - -#ifndef TTY_INPUT_H -#define TTY_INPUT_H 1 - -extern NCURSES_EXPORT(bool) _nc_tty_mouse_mask (mmask_t); -extern NCURSES_EXPORT(bool) _nc_tty_pending (void); -extern NCURSES_EXPORT(int) _nc_tty_next_event (int); -extern NCURSES_EXPORT(void) _nc_tty_flags_changed (void); -extern NCURSES_EXPORT(void) _nc_tty_flush (void); -extern NCURSES_EXPORT(void) _nc_tty_input_resume (void); -extern NCURSES_EXPORT(void) _nc_tty_input_suspend (void); - -struct tty_input_data { - int _ifd; /* input file ptr for screen */ - int _keypad_xmit; /* current terminal state */ - int _meta_on; /* current terminal state */ - - /* - * These are the data that support the mouse interface. - */ - bool (*_mouse_event) (SCREEN *); - bool (*_mouse_inline)(SCREEN *); - bool (*_mouse_parse) (int); - void (*_mouse_resume)(SCREEN *); - void (*_mouse_wrap) (SCREEN *); - int _mouse_fd; /* file-descriptor, if any */ - int mousetype; -}; - -#endif /* TTY_INPUT_H */ diff --git a/Build/source/libs/ncurses/ncurses/tty/tty_update.c b/Build/source/libs/ncurses/ncurses/tty/tty_update.c deleted file mode 100644 index c012b08b0c2..00000000000 --- a/Build/source/libs/ncurses/ncurses/tty/tty_update.c +++ /dev/null @@ -1,1896 +0,0 @@ -/**************************************************************************** - * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Zeyd M. Ben-Halim 1992,1995 * - * and: Eric S. Raymond * - * and: Thomas E. Dickey 1996-on * - ****************************************************************************/ - -/*----------------------------------------------------------------- - * - * lib_doupdate.c - * - * The routine doupdate() and its dependents. - * All physical output is concentrated here (except _nc_outch() - * in lib_tputs.c). - * - *-----------------------------------------------------------------*/ - -#include - -#ifdef __BEOS__ -#undef false -#undef true -#include -#endif - -#if defined(TRACE) && HAVE_SYS_TIMES_H && HAVE_TIMES -#define USE_TRACE_TIMES 1 -#else -#define USE_TRACE_TIMES 0 -#endif - -#if HAVE_SYS_TIME_H && HAVE_SYS_TIME_SELECT -#include -#endif - -#if USE_TRACE_TIMES -#include -#endif - -#if USE_FUNC_POLL -#elif HAVE_SELECT -#if HAVE_SYS_SELECT_H -#include -#endif -#endif - -#include -#include - -MODULE_ID("$Id: tty_update.c,v 1.210 2004/10/16 16:01:40 tom Exp $") - -/* - * This define controls the line-breakout optimization. Every once in a - * while during screen refresh, we want to check for input and abort the - * update if there's some waiting. CHECK_INTERVAL controls the number of - * changed lines to be emitted between input checks. - * - * Note: Input-check-and-abort is no longer done if the screen is being - * updated from scratch. This is a feature, not a bug. - */ -#define CHECK_INTERVAL 5 - -#define FILL_BCE() (SP->_coloron && !SP->_default_color && !back_color_erase) - -/* - * Enable checking to see if doupdate and friends are tracking the true - * cursor position correctly. NOTE: this is a debugging hack which will - * work ONLY on ANSI-compatible terminals! - */ -/* #define POSITION_DEBUG */ - -static inline NCURSES_CH_T ClrBlank(WINDOW *win); -static int ClrBottom(int total); -static void ClearScreen(NCURSES_CH_T blank); -static void ClrUpdate(void); -static void DelChar(int count); -static void InsStr(NCURSES_CH_T * line, int count); -static void TransformLine(int const lineno); - -#ifdef POSITION_DEBUG -/**************************************************************************** - * - * Debugging code. Only works on ANSI-standard terminals. - * - ****************************************************************************/ - -static void -position_check(int expected_y, int expected_x, char *legend) -/* check to see if the real cursor position matches the virtual */ -{ - char buf[20]; - char *s; - int y, x; - - if (!_nc_tracing || (expected_y < 0 && expected_x < 0)) - return; - - _nc_flush(); - memset(buf, '\0', sizeof(buf)); - putp("\033[6n"); /* only works on ANSI-compatibles */ - _nc_flush(); - *(s = buf) = 0; - do { - int ask = sizeof(buf) - 1 - (s - buf); - int got = read(0, s, ask); - if (got == 0) - break; - s += got; - } while (strchr(buf, 'R') == 0); - _tracef("probe returned %s", _nc_visbuf(buf)); - - /* try to interpret as a position report */ - if (sscanf(buf, "\033[%d;%dR", &y, &x) != 2) { - _tracef("position probe failed in %s", legend); - } else { - if (expected_x < 0) - expected_x = x - 1; - if (expected_y < 0) - expected_y = y - 1; - if (y - 1 != expected_y || x - 1 != expected_x) { - beep(); - tputs(tparm("\033[%d;%dH", expected_y + 1, expected_x + 1), 1, _nc_outch); - _tracef("position seen (%d, %d) doesn't match expected one (%d, %d) in %s", - y - 1, x - 1, expected_y, expected_x, legend); - } else { - _tracef("position matches OK in %s", legend); - } - } -} -#else -#define position_check(expected_y, expected_x, legend) /* nothing */ -#endif /* POSITION_DEBUG */ - -/**************************************************************************** - * - * Optimized update code - * - ****************************************************************************/ - -static inline void -GoTo(int const row, int const col) -{ - TR(TRACE_MOVE, ("GoTo(%d, %d) from (%d, %d)", - row, col, SP->_cursrow, SP->_curscol)); - - position_check(SP->_cursrow, SP->_curscol, "GoTo"); - - mvcur(SP->_cursrow, SP->_curscol, row, col); - position_check(SP->_cursrow, SP->_curscol, "GoTo2"); -} - -static inline void -PutAttrChar(CARG_CH_T ch) -{ - int chlen = 1; - NCURSES_CH_T my_ch; - PUTC_DATA; - NCURSES_CH_T tilde; - NCURSES_ATTR_T attr = AttrOfD(ch); - - TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)", - _tracech_t(ch), - SP->_cursrow, SP->_curscol)); -#if USE_WIDEC_SUPPORT - /* - * If this is not a valid character, there is nothing more to do. - */ - if (isnac(CHDEREF(ch))) - return; - /* - * Determine the number of character cells which the 'ch' value will use - * on the screen. It should be at least one. - */ - if ((chlen = wcwidth(CharOf(CHDEREF(ch)))) <= 0) { - static NCURSES_CH_T blank = NewChar(BLANK_TEXT); - - if (is8bits(CharOf(CHDEREF(ch))) - && (isprint(CharOf(CHDEREF(ch))) - || (SP->_legacy_coding && CharOf(CHDEREF(ch)) >= 160))) { - ; - } else { - ch = CHREF(blank); - TR(TRACE_CHARPUT, ("forced to blank")); - } - chlen = 1; - } -#endif - - if ((attr & A_ALTCHARSET) - && SP->_acs_map != 0 - && CharOfD(ch) < ACS_LEN) { - my_ch = CHDEREF(ch); /* work around const param */ -#if USE_WIDEC_SUPPORT - /* - * This is crude & ugly, but works most of the time. It checks if the - * acs_chars string specified that we have a mapping for this - * character, and uses the wide-character mapping when we expect the - * normal one to be broken (by mis-design ;-). - */ - if (SP->_screen_acs_fix - && SP->_screen_acs_map[CharOf(my_ch)]) { - attr &= ~(A_ALTCHARSET); - my_ch = _nc_wacs[CharOf(my_ch)]; - } -#endif - /* - * If we (still) have alternate character set, it is the normal 8bit - * flavor. The _screen_acs_map[] array tells if the character was - * really in acs_chars, needed because of the way wide/normal line - * drawing flavors are integrated. - */ - if (attr & A_ALTCHARSET) { - int j = CharOfD(ch); - chtype temp = UChar(SP->_acs_map[j]); - - if (!(SP->_screen_acs_map[j])) - attr &= ~(A_ALTCHARSET); - if (temp != 0) - SetChar(my_ch, temp, attr); - } - ch = CHREF(my_ch); - } - if (tilde_glitch && (CharOfD(ch) == L('~'))) { - SetChar(tilde, L('`'), attr); - ch = CHREF(tilde); - } - - UpdateAttrs(attr); -#if !USE_WIDEC_SUPPORT - /* FIXME - we do this special case for signal handling, should see how to - * make it work for wide characters. - */ - if (SP->_outch != 0) { - SP->_outch(UChar(ch)); - } else -#endif - { - PUTC(CHDEREF(ch), SP->_ofp); /* macro's fastest... */ - TRACE_OUTCHARS(1); - } - SP->_curscol += chlen; - if (char_padding) { - TPUTS_TRACE("char_padding"); - putp(char_padding); - } -} - -static bool -check_pending(void) -/* check for pending input */ -{ - bool have_pending = FALSE; - - /* - * Only carry out this check when the flag is zero, otherwise we'll - * have the refreshing slow down drastically (or stop) if there's an - * unread character available. - */ - if (SP->_fifohold != 0) - return FALSE; - - if (SP->_checkfd >= 0) { -#if USE_FUNC_POLL - struct pollfd fds[1]; - fds[0].fd = SP->_checkfd; - fds[0].events = POLLIN; - if (poll(fds, 1, 0) > 0) { - have_pending = TRUE; - } -#elif defined(__BEOS__) - /* - * BeOS's select() is declared in socket.h, so the configure script does - * not see it. That's just as well, since that function works only for - * sockets. This (using snooze and ioctl) was distilled from Be's patch - * for ncurses which uses a separate thread to simulate select(). - * - * FIXME: the return values from the ioctl aren't very clear if we get - * interrupted. - */ - int n = 0; - int howmany = ioctl(0, 'ichr', &n); - if (howmany >= 0 && n > 0) { - have_pending = TRUE; - } -#elif HAVE_SELECT - fd_set fdset; - struct timeval ktimeout; - - ktimeout.tv_sec = - ktimeout.tv_usec = 0; - - FD_ZERO(&fdset); - FD_SET(SP->_checkfd, &fdset); - if (select(SP->_checkfd + 1, &fdset, NULL, NULL, &ktimeout) != 0) { - have_pending = TRUE; - } -#endif - } - if (have_pending) { - SP->_fifohold = 5; - _nc_flush(); - } - return FALSE; -} - -/* put char at lower right corner */ -static void -PutCharLR(const ARG_CH_T ch) -{ - if (!auto_right_margin) { - /* we can put the char directly */ - PutAttrChar(ch); - } else if (enter_am_mode && exit_am_mode) { - /* we can suppress automargin */ - TPUTS_TRACE("exit_am_mode"); - putp(exit_am_mode); - - PutAttrChar(ch); - SP->_curscol--; - position_check(SP->_cursrow, SP->_curscol, "exit_am_mode"); - - TPUTS_TRACE("enter_am_mode"); - putp(enter_am_mode); - } else if ((enter_insert_mode && exit_insert_mode) - || insert_character || parm_ich) { - GoTo(screen_lines - 1, screen_columns - 2); - PutAttrChar(ch); - GoTo(screen_lines - 1, screen_columns - 2); - InsStr(newscr->_line[screen_lines - 1].text + screen_columns - 2, 1); - } -} - -static void -wrap_cursor(void) -{ - if (eat_newline_glitch) { - /* - * xenl can manifest two different ways. The vt100 - * way is that, when you'd expect the cursor to wrap, - * it stays hung at the right margin (on top of the - * character just emitted) and doesn't wrap until the - * *next* graphic char is emitted. The c100 way is - * to ignore LF received just after an am wrap. - * - * An aggressive way to handle this would be to - * emit CR/LF after the char and then assume the wrap - * is done, you're on the first position of the next - * line, and the terminal out of its weird state. - * Here it's safe to just tell the code that the - * cursor is in hyperspace and let the next mvcur() - * call straighten things out. - */ - SP->_curscol = -1; - SP->_cursrow = -1; - } else if (auto_right_margin) { - SP->_curscol = 0; - SP->_cursrow++; - } else { - SP->_curscol--; - } - position_check(SP->_cursrow, SP->_curscol, "wrap_cursor"); -} - -static inline void -PutChar(const ARG_CH_T ch) -/* insert character, handling automargin stuff */ -{ - if (SP->_cursrow == screen_lines - 1 && SP->_curscol == screen_columns - 1) - PutCharLR(ch); - else - PutAttrChar(ch); - - if (SP->_curscol >= screen_columns) - wrap_cursor(); - - position_check(SP->_cursrow, SP->_curscol, "PutChar"); -} - -/* - * Check whether the given character can be output by clearing commands. This - * includes test for being a space and not including any 'bad' attributes, such - * as A_REVERSE. All attribute flags which don't affect appearance of a space - * or can be output by clearing (A_COLOR in case of bce-terminal) are excluded. - */ -static inline bool -can_clear_with(ARG_CH_T ch) -{ - if (!back_color_erase && SP->_coloron) { -#if NCURSES_EXT_FUNCS - if (!SP->_default_color) - return FALSE; - if (SP->_default_fg != C_MASK || SP->_default_bg != C_MASK) - return FALSE; - if (AttrOfD(ch) & A_COLOR) { - short fg, bg; - pair_content(PAIR_NUMBER(AttrOfD(ch)), &fg, &bg); - if (fg != C_MASK || bg != C_MASK) - return FALSE; - } -#else - if (AttrOfD(ch) & A_COLOR) - return FALSE; -#endif - } - return (ISBLANK(CHDEREF(ch)) && - (AttrOfD(ch) & ~(NONBLANK_ATTR | A_COLOR)) == BLANK_ATTR); -} - -/* - * Issue a given span of characters from an array. - * Must be functionally equivalent to: - * for (i = 0; i < num; i++) - * PutChar(ntext[i]); - * but can leave the cursor positioned at the middle of the interval. - * - * Returns: 0 - cursor is at the end of interval - * 1 - cursor is somewhere in the middle - * - * This code is optimized using ech and rep. - */ -static int -EmitRange(const NCURSES_CH_T * ntext, int num) -{ - int i; - - if (erase_chars || repeat_char) { - while (num > 0) { - int runcount; - NCURSES_CH_T ntext0; - - while (num > 1 && !CharEq(ntext[0], ntext[1])) { - PutChar(CHREF(ntext[0])); - ntext++; - num--; - } - ntext0 = ntext[0]; - if (num == 1) { - PutChar(CHREF(ntext0)); - return 0; - } - runcount = 2; - - while (runcount < num && CharEq(ntext[runcount], ntext0)) - runcount++; - - /* - * The cost expression in the middle isn't exactly right. - * _cup_ch_cost is an upper bound on the cost for moving to the - * end of the erased area, but not the cost itself (which we - * can't compute without emitting the move). This may result - * in erase_chars not getting used in some situations for - * which it would be marginally advantageous. - */ - if (erase_chars - && runcount > SP->_ech_cost + SP->_cup_ch_cost - && can_clear_with(CHREF(ntext0))) { - UpdateAttrs(AttrOf(ntext0)); - putp(tparm(erase_chars, runcount)); - - /* - * If this is the last part of the given interval, - * don't bother moving cursor, since it can be the - * last update on the line. - */ - if (runcount < num) { - GoTo(SP->_cursrow, SP->_curscol + runcount); - } else { - return 1; /* cursor stays in the middle */ - } - } else if (repeat_char && runcount > SP->_rep_cost) { - bool wrap_possible = (SP->_curscol + runcount >= screen_columns); - int rep_count = runcount; - - if (wrap_possible) - rep_count--; - - UpdateAttrs(AttrOf(ntext0)); - tputs(tparm(repeat_char, CharOf(ntext0), rep_count), - rep_count, _nc_outch); - SP->_curscol += rep_count; - - if (wrap_possible) - PutChar(CHREF(ntext0)); - } else { - for (i = 0; i < runcount; i++) - PutChar(CHREF(ntext[i])); - } - ntext += runcount; - num -= runcount; - } - return 0; - } - - for (i = 0; i < num; i++) - PutChar(CHREF(ntext[i])); - return 0; -} - -/* - * Output the line in the given range [first .. last] - * - * If there's a run of identical characters that's long enough to justify - * cursor movement, use that also. - * - * Returns: same as EmitRange - */ -static int -PutRange(const NCURSES_CH_T * otext, - const NCURSES_CH_T * ntext, - int row, - int first, int last) -{ - int i, j, same; - - TR(TRACE_CHARPUT, ("PutRange(%p, %p, %d, %d, %d)", - otext, ntext, row, first, last)); - - if (otext != ntext - && (last - first + 1) > SP->_inline_cost) { - for (j = first, same = 0; j <= last; j++) { - if (!same && isnac(otext[j])) - continue; - if (CharEq(otext[j], ntext[j])) { - same++; - } else { - if (same > SP->_inline_cost) { - EmitRange(ntext + first, j - same - first); - GoTo(row, first = j); - } - same = 0; - } - } - i = EmitRange(ntext + first, j - same - first); - /* - * Always return 1 for the next GoTo() after a PutRange() if we found - * identical characters at end of interval - */ - return (same == 0 ? i : 1); - } - return EmitRange(ntext + first, last - first + 1); -} - -/* leave unbracketed here so 'indent' works */ -#define MARK_NOCHANGE(win,row) \ - win->_line[row].firstchar = _NOCHANGE; \ - win->_line[row].lastchar = _NOCHANGE; \ - if_USE_SCROLL_HINTS(win->_line[row].oldindex = row) - -NCURSES_EXPORT(int) -doupdate(void) -{ - int i; - int nonempty; -#if USE_TRACE_TIMES - struct tms before, after; -#endif /* USE_TRACE_TIMES */ - - T((T_CALLED("doupdate()"))); - -#ifdef TRACE - if (_nc_tracing & TRACE_UPDATE) { - if (curscr->_clear) - _tracef("curscr is clear"); - else - _tracedump("curscr", curscr); - _tracedump("newscr", newscr); - } -#endif /* TRACE */ - - _nc_signal_handler(FALSE); - - if (SP->_fifohold) - SP->_fifohold--; - -#if USE_SIZECHANGE - if (SP->_endwin || SP->_sig_winch) { - /* - * This is a transparent extension: XSI does not address it, - * and applications need not know that ncurses can do it. - * - * Check if the terminal size has changed while curses was off - * (this can happen in an xterm, for example), and resize the - * ncurses data structures accordingly. - */ - _nc_update_screensize(); - } -#endif - - if (SP->_endwin) { - - T(("coming back from shell mode")); - reset_prog_mode(); - - _nc_mvcur_resume(); - _nc_screen_resume(); - SP->_mouse_resume(SP); - - SP->_endwin = FALSE; - } -#if USE_TRACE_TIMES - /* zero the metering machinery */ - _nc_outchars = 0; - (void) times(&before); -#endif /* USE_TRACE_TIMES */ - - /* - * This is the support for magic-cookie terminals. The - * theory: we scan the virtual screen looking for attribute - * turnons. Where we find one, check to make sure it's - * realizable by seeing if the required number of - * un-attributed blanks are present before and after the - * attributed range; try to shift the range boundaries over - * blanks (not changing the screen display) so this becomes - * true. If it is, shift the beginning attribute change - * appropriately (the end one, if we've gotten this far, is - * guaranteed room for its cookie). If not, nuke the added - * attributes out of the span. - */ -#if USE_XMC_SUPPORT - if (magic_cookie_glitch > 0) { - int j, k; - attr_t rattr = A_NORMAL; - - for (i = 0; i < screen_lines; i++) { - for (j = 0; j < screen_columns; j++) { - bool failed = FALSE; - attr_t turnon = AttrOf(newscr->_line[i].text[j]) & ~rattr; - - /* is an attribute turned on here? */ - if (turnon == 0) { - rattr = AttrOf(newscr->_line[i].text[j]); - continue; - } - - TR(TRACE_ATTRS, ("At (%d, %d): from %s...", i, j, _traceattr(rattr))); - TR(TRACE_ATTRS, ("...to %s", _traceattr(turnon))); - - /* - * If the attribute change location is a blank with a - * "safe" attribute, undo the attribute turnon. This may - * ensure there's enough room to set the attribute before - * the first non-blank in the run. - */ -#define SAFE(a) (!((a) & (attr_t)~NONBLANK_ATTR)) - if (ISBLANK(newscr->_line[i].text[j]) && SAFE(turnon)) { - RemAttr(newscr->_line[i].text[j], turnon); - continue; - } - - /* check that there's enough room at start of span */ - for (k = 1; k <= magic_cookie_glitch; k++) { - if (j - k < 0 - || !ISBLANK(newscr->_line[i].text[j - k]) - || !SAFE(AttrOf(newscr->_line[i].text[j - k]))) - failed = TRUE; - } - if (!failed) { - bool end_onscreen = FALSE; - int m, n = j; - - /* find end of span, if it's onscreen */ - for (m = i; m < screen_lines; m++) { - for (; n < screen_columns; n++) { - if (AttrOf(newscr->_line[m].text[n]) == rattr) { - end_onscreen = TRUE; - TR(TRACE_ATTRS, - ("Range attributed with %s ends at (%d, %d)", - _traceattr(turnon), m, n)); - goto foundit; - } - } - n = 0; - } - TR(TRACE_ATTRS, - ("Range attributed with %s ends offscreen", - _traceattr(turnon))); - foundit:; - - if (end_onscreen) { - NCURSES_CH_T *lastline = newscr->_line[m].text; - - /* - * If there are safely-attributed blanks at the - * end of the range, shorten the range. This will - * help ensure that there is enough room at end - * of span. - */ - while (n >= 0 - && ISBLANK(lastline[n]) - && SAFE(AttrOf(lastline[n]))) - RemAttr(lastline[n--], turnon); - - /* check that there's enough room at end of span */ - for (k = 1; k <= magic_cookie_glitch; k++) - if (n + k >= screen_columns - || !ISBLANK(lastline[n + k]) - || !SAFE(AttrOf(lastline[n + k]))) - failed = TRUE; - } - } - - if (failed) { - int p, q = j; - - TR(TRACE_ATTRS, - ("Clearing %s beginning at (%d, %d)", - _traceattr(turnon), i, j)); - - /* turn off new attributes over span */ - for (p = i; p < screen_lines; p++) { - for (; q < screen_columns; q++) { - if (AttrOf(newscr->_line[p].text[q]) == rattr) - goto foundend; - RemAttr(newscr->_line[p].text[q], turnon); - } - q = 0; - } - foundend:; - } else { - TR(TRACE_ATTRS, - ("Cookie space for %s found before (%d, %d)", - _traceattr(turnon), i, j)); - - /* - * back up the start of range so there's room - * for cookies before the first nonblank character - */ - for (k = 1; k <= magic_cookie_glitch; k++) - AddAttr(newscr->_line[i].text[j - k], turnon); - } - - rattr = AttrOf(newscr->_line[i].text[j]); - } - } - -#ifdef TRACE - /* show altered highlights after magic-cookie check */ - if (_nc_tracing & TRACE_UPDATE) { - _tracef("After magic-cookie check..."); - _tracedump("newscr", newscr); - } -#endif /* TRACE */ - } -#endif /* USE_XMC_SUPPORT */ - - nonempty = 0; - if (curscr->_clear || newscr->_clear) { /* force refresh ? */ - TR(TRACE_UPDATE, ("clearing and updating from scratch")); - ClrUpdate(); - curscr->_clear = FALSE; /* reset flag */ - newscr->_clear = FALSE; /* reset flag */ - } else { - int changedlines = CHECK_INTERVAL; - - if (check_pending()) - goto cleanup; - - nonempty = min(screen_lines, newscr->_maxy + 1); - - if (SP->_scrolling) { - _nc_scroll_optimize(); - } - - nonempty = ClrBottom(nonempty); - - TR(TRACE_UPDATE, ("Transforming lines, nonempty %d", nonempty)); - for (i = 0; i < nonempty; i++) { - /* - * Here is our line-breakout optimization. - */ - if (changedlines == CHECK_INTERVAL) { - if (check_pending()) - goto cleanup; - changedlines = 0; - } - - /* - * newscr->line[i].firstchar is normally set - * by wnoutrefresh. curscr->line[i].firstchar - * is normally set by _nc_scroll_window in the - * vertical-movement optimization code, - */ - if (newscr->_line[i].firstchar != _NOCHANGE - || curscr->_line[i].firstchar != _NOCHANGE) { - TransformLine(i); - changedlines++; - } - - /* mark line changed successfully */ - if (i <= newscr->_maxy) { - MARK_NOCHANGE(newscr, i); - } - if (i <= curscr->_maxy) { - MARK_NOCHANGE(curscr, i); - } - } - } - - /* put everything back in sync */ - for (i = nonempty; i <= newscr->_maxy; i++) { - MARK_NOCHANGE(newscr, i); - } - for (i = nonempty; i <= curscr->_maxy; i++) { - MARK_NOCHANGE(curscr, i); - } - - if (!newscr->_leaveok) { - curscr->_curx = newscr->_curx; - curscr->_cury = newscr->_cury; - - GoTo(curscr->_cury, curscr->_curx); - } - - cleanup: - /* - * Keep the physical screen in normal mode in case we get other - * processes writing to the screen. - */ - UpdateAttrs(A_NORMAL); - - _nc_flush(); - curscr->_attrs = newscr->_attrs; - -#if USE_TRACE_TIMES - (void) times(&after); - TR(TRACE_TIMES, - ("Update cost: %ld chars, %ld clocks system time, %ld clocks user time", - _nc_outchars, - (long) (after.tms_stime - before.tms_stime), - (long) (after.tms_utime - before.tms_utime))); -#endif /* USE_TRACE_TIMES */ - - _nc_signal_handler(TRUE); - - returnCode(OK); -} - -/* - * ClrBlank(win) - * - * Returns the attributed character that corresponds to the "cleared" - * screen. If the terminal has the back-color-erase feature, this will be - * colored according to the wbkgd() call. - * - * We treat 'curscr' specially because it isn't supposed to be set directly - * in the wbkgd() call. Assume 'stdscr' for this case. - */ -#define BCE_ATTRS (A_NORMAL|A_COLOR) -#define BCE_BKGD(win) (((win) == curscr ? stdscr : (win))->_nc_bkgd) - -static inline NCURSES_CH_T -ClrBlank(WINDOW *win) -{ - NCURSES_CH_T blank = NewChar(BLANK_TEXT); - if (back_color_erase) - AddAttr(blank, (AttrOf(BCE_BKGD(win)) & BCE_ATTRS)); - return blank; -} - -/* -** ClrUpdate() -** -** Update by clearing and redrawing the entire screen. -** -*/ - -static void -ClrUpdate(void) -{ - int i; - NCURSES_CH_T blank = ClrBlank(stdscr); - int nonempty = min(screen_lines, newscr->_maxy + 1); - - TR(TRACE_UPDATE, ("ClrUpdate() called")); - - ClearScreen(blank); - - TR(TRACE_UPDATE, ("updating screen from scratch")); - - nonempty = ClrBottom(nonempty); - - for (i = 0; i < nonempty; i++) - TransformLine(i); -} - -/* -** ClrToEOL(blank) -** -** Clear to end of current line, starting at the cursor position -*/ - -static void -ClrToEOL(NCURSES_CH_T blank, bool needclear) -{ - int j; - - if (curscr != 0 - && SP->_cursrow >= 0) { - for (j = SP->_curscol; j < screen_columns; j++) { - if (j >= 0) { - NCURSES_CH_T *cp = &(curscr->_line[SP->_cursrow].text[j]); - - if (!CharEq(*cp, blank)) { - *cp = blank; - needclear = TRUE; - } - } - } - } else { - needclear = TRUE; - } - - if (needclear) { - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("clr_eol"); - if (clr_eol && SP->_el_cost <= (screen_columns - SP->_curscol)) { - putp(clr_eol); - } else { - int count = (screen_columns - SP->_curscol); - while (count-- > 0) - PutChar(CHREF(blank)); - } - } -} - -/* -** ClrToEOS(blank) -** -** Clear to end of screen, starting at the cursor position -*/ - -static void -ClrToEOS(NCURSES_CH_T blank) -{ - int row, col; - - row = SP->_cursrow; - col = SP->_curscol; - - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("clr_eos"); - tputs(clr_eos, screen_lines - row, _nc_outch); - - while (col < screen_columns) - curscr->_line[row].text[col++] = blank; - - for (row++; row < screen_lines; row++) { - for (col = 0; col < screen_columns; col++) - curscr->_line[row].text[col] = blank; - } -} - -/* - * ClrBottom(total) - * - * Test if clearing the end of the screen would satisfy part of the - * screen-update. Do this by scanning backwards through the lines in the - * screen, checking if each is blank, and one or more are changed. - */ -static int -ClrBottom(int total) -{ - int row; - int col; - int top = total; - int last = min(screen_columns, newscr->_maxx + 1); - NCURSES_CH_T blank = newscr->_line[total - 1].text[last - 1]; - bool ok; - - if (clr_eos && can_clear_with(CHREF(blank))) { - - for (row = total - 1; row >= 0; row--) { - for (col = 0, ok = TRUE; ok && col < last; col++) { - ok = (CharEq(newscr->_line[row].text[col], blank)); - } - if (!ok) - break; - - for (col = 0; ok && col < last; col++) { - ok = (CharEq(curscr->_line[row].text[col], blank)); - } - if (!ok) - top = row; - } - - /* don't use clr_eos for just one line if clr_eol available */ - if (top < total) { - GoTo(top, 0); - ClrToEOS(blank); - if (SP->oldhash && SP->newhash) { - for (row = top; row < screen_lines; row++) - SP->oldhash[row] = SP->newhash[row]; - } - } - } - return top; -} - -#if USE_XMC_SUPPORT -#if USE_WIDEC_SUPPORT -static inline bool -check_xmc_transition(NCURSES_CH_T * a, NCURSES_CH_T * b) -{ - if (((a->attr ^ b->attr) & ~(a->attr) & SP->_xmc_triggers) != 0) { - return TRUE; - } - return FALSE; -} -#define xmc_turn_on(a,b) check_xmc_transition(&(a), &(b)) -#else -#define xmc_turn_on(a,b) ((((a)^(b)) & ~(a) & SP->_xmc_triggers) != 0) -#endif - -#define xmc_new(r,c) newscr->_line[r].text[c] -#define xmc_turn_off(a,b) xmc_turn_on(b,a) -#endif /* USE_XMC_SUPPORT */ - -/* -** TransformLine(lineno) -** -** Transform the given line in curscr to the one in newscr, using -** Insert/Delete Character if _nc_idcok && has_ic(). -** -** firstChar = position of first different character in line -** oLastChar = position of last different character in old line -** nLastChar = position of last different character in new line -** -** move to firstChar -** overwrite chars up to min(oLastChar, nLastChar) -** if oLastChar < nLastChar -** insert newLine[oLastChar+1..nLastChar] -** else -** delete oLastChar - nLastChar spaces -*/ - -static void -TransformLine(int const lineno) -{ - int firstChar, oLastChar, nLastChar; - NCURSES_CH_T *newLine = newscr->_line[lineno].text; - NCURSES_CH_T *oldLine = curscr->_line[lineno].text; - int n; - bool attrchanged = FALSE; - - TR(TRACE_UPDATE, ("TransformLine(%d) called", lineno)); - - /* copy new hash value to old one */ - if (SP->oldhash && SP->newhash) - SP->oldhash[lineno] = SP->newhash[lineno]; - -#define ColorOf(n) (AttrOf(n) & A_COLOR) -#define unColor(n) (AttrOf(n) & ALL_BUT_COLOR) - /* - * If we have colors, there is the possibility of having two color pairs - * that display as the same colors. For instance, Lynx does this. Check - * for this case, and update the old line with the new line's colors when - * they are equivalent. - */ - if (SP->_coloron) { - attr_t oldColor; - attr_t newColor; - int oldPair; - int newPair; - - for (n = 0; n < screen_columns; n++) { - if (!CharEq(newLine[n], oldLine[n])) { - oldColor = ColorOf(oldLine[n]); - newColor = ColorOf(newLine[n]); - if (oldColor != newColor - && unColor(oldLine[n]) == unColor(newLine[n])) { - oldPair = PAIR_NUMBER(oldColor); - newPair = PAIR_NUMBER(newColor); - if (oldPair < COLOR_PAIRS - && newPair < COLOR_PAIRS - && SP->_color_pairs[oldPair] == SP->_color_pairs[newPair]) { - RemAttr(oldLine[n], A_COLOR); - AddAttr(oldLine[n], ColorOf(newLine[n])); - } - } - } - } - } - - if (ceol_standout_glitch && clr_eol) { - firstChar = 0; - while (firstChar < screen_columns) { - if (AttrOf(newLine[firstChar]) != AttrOf(oldLine[firstChar])) { - attrchanged = TRUE; - break; - } - firstChar++; - } - } - - firstChar = 0; - - if (attrchanged) { /* we may have to disregard the whole line */ - GoTo(lineno, firstChar); - ClrToEOL(ClrBlank(curscr), FALSE); - PutRange(oldLine, newLine, lineno, 0, (screen_columns - 1)); -#if USE_XMC_SUPPORT - - /* - * This is a very simple loop to paint characters which may have the - * magic cookie glitch embedded. It doesn't know much about video - * attributes which are continued from one line to the next. It - * assumes that we have filtered out requests for attribute changes - * that do not get mapped to blank positions. - * - * FIXME: we are not keeping track of where we put the cookies, so this - * will work properly only once, since we may overwrite a cookie in a - * following operation. - */ - } else if (magic_cookie_glitch > 0) { - GoTo(lineno, firstChar); - for (n = 0; n < screen_columns; n++) { - int m = n + magic_cookie_glitch; - - /* check for turn-on: - * If we are writing an attributed blank, where the - * previous cell is not attributed. - */ - if (ISBLANK(newLine[n]) - && ((n > 0 - && xmc_turn_on(newLine[n - 1], newLine[n])) - || (n == 0 - && lineno > 0 - && xmc_turn_on(xmc_new(lineno - 1, screen_columns - 1), - newLine[n])))) { - n = m; - } - - PutChar(CHREF(newLine[n])); - - /* check for turn-off: - * If we are writing an attributed non-blank, where the - * next cell is blank, and not attributed. - */ - if (!ISBLANK(newLine[n]) - && ((n + 1 < screen_columns - && xmc_turn_off(newLine[n], newLine[n + 1])) - || (n + 1 >= screen_columns - && lineno + 1 < screen_lines - && xmc_turn_off(newLine[n], xmc_new(lineno + 1, 0))))) { - n = m; - } - - } -#endif - } else { - NCURSES_CH_T blank; - - /* it may be cheap to clear leading whitespace with clr_bol */ - blank = newLine[0]; - if (clr_bol && can_clear_with(CHREF(blank))) { - int oFirstChar, nFirstChar; - - for (oFirstChar = 0; oFirstChar < screen_columns; oFirstChar++) - if (!CharEq(oldLine[oFirstChar], blank)) - break; - for (nFirstChar = 0; nFirstChar < screen_columns; nFirstChar++) - if (!CharEq(newLine[nFirstChar], blank)) - break; - - if (nFirstChar == oFirstChar) { - firstChar = nFirstChar; - /* find the first differing character */ - while (firstChar < screen_columns - && CharEq(newLine[firstChar], oldLine[firstChar])) - firstChar++; - } else if (oFirstChar > nFirstChar) { - firstChar = nFirstChar; - } else { /* oFirstChar < nFirstChar */ - firstChar = oFirstChar; - if (SP->_el1_cost < nFirstChar - oFirstChar) { - if (nFirstChar >= screen_columns - && SP->_el_cost <= SP->_el1_cost) { - GoTo(lineno, 0); - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("clr_eol"); - putp(clr_eol); - } else { - GoTo(lineno, nFirstChar - 1); - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("clr_bol"); - putp(clr_bol); - } - - while (firstChar < nFirstChar) - oldLine[firstChar++] = blank; - } - } - } else { - /* find the first differing character */ - while (firstChar < screen_columns - && CharEq(newLine[firstChar], oldLine[firstChar])) - firstChar++; - } - /* if there wasn't one, we're done */ - if (firstChar >= screen_columns) - return; - - blank = newLine[screen_columns - 1]; - - if (!can_clear_with(CHREF(blank))) { - /* find the last differing character */ - nLastChar = screen_columns - 1; - - while (nLastChar > firstChar - && CharEq(newLine[nLastChar], oldLine[nLastChar])) - nLastChar--; - - if (nLastChar >= firstChar) { - GoTo(lineno, firstChar); - PutRange(oldLine, newLine, lineno, firstChar, nLastChar); - memcpy(oldLine + firstChar, - newLine + firstChar, - (nLastChar - firstChar + 1) * sizeof(NCURSES_CH_T)); - } - return; - } - - /* find last non-blank character on old line */ - oLastChar = screen_columns - 1; - while (oLastChar > firstChar && CharEq(oldLine[oLastChar], blank)) - oLastChar--; - - /* find last non-blank character on new line */ - nLastChar = screen_columns - 1; - while (nLastChar > firstChar && CharEq(newLine[nLastChar], blank)) - nLastChar--; - - if ((nLastChar == firstChar) - && (SP->_el_cost < (oLastChar - nLastChar))) { - GoTo(lineno, firstChar); - if (!CharEq(newLine[firstChar], blank)) - PutChar(CHREF(newLine[firstChar])); - ClrToEOL(blank, FALSE); - } else if ((nLastChar != oLastChar) - && (!CharEq(newLine[nLastChar], oldLine[oLastChar]) - || !(_nc_idcok && has_ic()))) { - GoTo(lineno, firstChar); - if ((oLastChar - nLastChar) > SP->_el_cost) { - if (PutRange(oldLine, newLine, lineno, firstChar, nLastChar)) - GoTo(lineno, nLastChar + 1); - ClrToEOL(blank, FALSE); - } else { - n = max(nLastChar, oLastChar); - PutRange(oldLine, newLine, lineno, firstChar, n); - } - } else { - int nLastNonblank = nLastChar; - int oLastNonblank = oLastChar; - - /* find the last characters that really differ */ - /* can be -1 if no characters differ */ - while (CharEq(newLine[nLastChar], oldLine[oLastChar])) { - /* don't split a wide char */ - if (isnac(newLine[nLastChar]) && - !CharEq(newLine[nLastChar - 1], oldLine[oLastChar - 1])) - break; - nLastChar--; - oLastChar--; - if (nLastChar == -1 || oLastChar == -1) - break; - } - - n = min(oLastChar, nLastChar); - if (n >= firstChar) { - GoTo(lineno, firstChar); - PutRange(oldLine, newLine, lineno, firstChar, n); - } - - if (oLastChar < nLastChar) { - int m = max(nLastNonblank, oLastNonblank); - GoTo(lineno, n + 1); - if (InsCharCost(nLastChar - oLastChar) - > (m - n)) { - PutRange(oldLine, newLine, lineno, n + 1, m); - } else { - InsStr(&newLine[n + 1], nLastChar - oLastChar); - } - } else if (oLastChar > nLastChar) { - GoTo(lineno, n + 1); - if (DelCharCost(oLastChar - nLastChar) - > SP->_el_cost + nLastNonblank - (n + 1)) { - if (PutRange(oldLine, newLine, lineno, - n + 1, nLastNonblank)) - GoTo(lineno, nLastNonblank + 1); - ClrToEOL(blank, FALSE); - } else { - /* - * The delete-char sequence will - * effectively shift in blanks from the - * right margin of the screen. Ensure - * that they are the right color by - * setting the video attributes from - * the last character on the row. - */ - UpdateAttrs(AttrOf(blank)); - DelChar(oLastChar - nLastChar); - } - } - } - } - - /* update the code's internal representation */ - if (screen_columns > firstChar) - memcpy(oldLine + firstChar, - newLine + firstChar, - (screen_columns - firstChar) * sizeof(NCURSES_CH_T)); -} - -/* -** ClearScreen(blank) -** -** Clear the physical screen and put cursor at home -** -*/ - -static void -ClearScreen(NCURSES_CH_T blank) -{ - int i, j; - bool fast_clear = (clear_screen || clr_eos || clr_eol); - - TR(TRACE_UPDATE, ("ClearScreen() called")); - -#if NCURSES_EXT_FUNCS - if (SP->_coloron - && !SP->_default_color) { - _nc_do_color((int) COLOR_PAIR(SP->_current_attr), 0, FALSE, _nc_outch); - if (!back_color_erase) { - fast_clear = FALSE; - } - } -#endif - - if (fast_clear) { - if (clear_screen) { - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("clear_screen"); - putp(clear_screen); - SP->_cursrow = SP->_curscol = 0; - position_check(SP->_cursrow, SP->_curscol, "ClearScreen"); - } else if (clr_eos) { - SP->_cursrow = SP->_curscol = -1; - GoTo(0, 0); - - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("clr_eos"); - tputs(clr_eos, screen_lines, _nc_outch); - } else if (clr_eol) { - SP->_cursrow = SP->_curscol = -1; - - UpdateAttrs(AttrOf(blank)); - for (i = 0; i < screen_lines; i++) { - GoTo(i, 0); - TPUTS_TRACE("clr_eol"); - putp(clr_eol); - } - GoTo(0, 0); - } - } else { - UpdateAttrs(AttrOf(blank)); - for (i = 0; i < screen_lines; i++) { - GoTo(i, 0); - for (j = 0; j < screen_columns; j++) - PutChar(CHREF(blank)); - } - GoTo(0, 0); - } - - for (i = 0; i < screen_lines; i++) { - for (j = 0; j < screen_columns; j++) - curscr->_line[i].text[j] = blank; - } - - TR(TRACE_UPDATE, ("screen cleared")); -} - -/* -** InsStr(line, count) -** -** Insert the count characters pointed to by line. -** -*/ - -static void -InsStr(NCURSES_CH_T * line, int count) -{ - TR(TRACE_UPDATE, ("InsStr(%p,%d) called", line, count)); - - /* Prefer parm_ich as it has the smallest cost - no need to shift - * the whole line on each character. */ - /* The order must match that of InsCharCost. */ - if (parm_ich) { - TPUTS_TRACE("parm_ich"); - tputs(tparm(parm_ich, count), count, _nc_outch); - while (count) { - PutAttrChar(CHREF(*line)); - line++; - count--; - } - } else if (enter_insert_mode && exit_insert_mode) { - TPUTS_TRACE("enter_insert_mode"); - putp(enter_insert_mode); - while (count) { - PutAttrChar(CHREF(*line)); - if (insert_padding) { - TPUTS_TRACE("insert_padding"); - putp(insert_padding); - } - line++; - count--; - } - TPUTS_TRACE("exit_insert_mode"); - putp(exit_insert_mode); - } else { - while (count) { - TPUTS_TRACE("insert_character"); - putp(insert_character); - PutAttrChar(CHREF(*line)); - if (insert_padding) { - TPUTS_TRACE("insert_padding"); - putp(insert_padding); - } - line++; - count--; - } - } - position_check(SP->_cursrow, SP->_curscol, "InsStr"); -} - -/* -** DelChar(count) -** -** Delete count characters at current position -** -*/ - -static void -DelChar(int count) -{ - int n; - - TR(TRACE_UPDATE, ("DelChar(%d) called, position = (%d,%d)", count, - newscr->_cury, newscr->_curx)); - - if (parm_dch) { - TPUTS_TRACE("parm_dch"); - tputs(tparm(parm_dch, count), count, _nc_outch); - } else { - for (n = 0; n < count; n++) { - TPUTS_TRACE("delete_character"); - putp(delete_character); - } - } -} - -/* - * Physical-scrolling support - * - * This code was adapted from Keith Bostic's hardware scrolling - * support for 4.4BSD curses. I (esr) translated it to use terminfo - * capabilities, narrowed the call interface slightly, and cleaned - * up some convoluted tests. I also added support for the memory_above - * memory_below, and non_dest_scroll_region capabilities. - * - * For this code to work, we must have either - * change_scroll_region and scroll forward/reverse commands, or - * insert and delete line capabilities. - * When the scrolling region has been set, the cursor has to - * be at the last line of the region to make the scroll up - * happen, or on the first line of region to scroll down. - * - * This code makes one aesthetic decision in the opposite way from - * BSD curses. BSD curses preferred pairs of il/dl operations - * over scrolls, allegedly because il/dl looked faster. We, on - * the other hand, prefer scrolls because (a) they're just as fast - * on many terminals and (b) using them avoids bouncing an - * unchanged bottom section of the screen up and down, which is - * visually nasty. - * - * (lav): added more cases, used dl/il when bot==maxy and in csr case. - * - * I used assumption that capabilities il/il1/dl/dl1 work inside - * changed scroll region not shifting screen contents outside of it. - * If there are any terminals behaving different way, it would be - * necessary to add some conditions to scroll_csr_forward/backward. - */ - -/* Try to scroll up assuming given csr (miny, maxy). Returns ERR on failure */ -static int -scroll_csr_forward(int n, int top, int bot, int miny, int maxy, NCURSES_CH_T blank) -{ - int i; - - if (n == 1 && scroll_forward && top == miny && bot == maxy) { - GoTo(bot, 0); - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("scroll_forward"); - putp(scroll_forward); - } else if (n == 1 && delete_line && bot == maxy) { - GoTo(top, 0); - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("delete_line"); - putp(delete_line); - } else if (parm_index && top == miny && bot == maxy) { - GoTo(bot, 0); - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("parm_index"); - tputs(tparm(parm_index, n, 0), n, _nc_outch); - } else if (parm_delete_line && bot == maxy) { - GoTo(top, 0); - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("parm_delete_line"); - tputs(tparm(parm_delete_line, n, 0), n, _nc_outch); - } else if (scroll_forward && top == miny && bot == maxy) { - GoTo(bot, 0); - UpdateAttrs(AttrOf(blank)); - for (i = 0; i < n; i++) { - TPUTS_TRACE("scroll_forward"); - putp(scroll_forward); - } - } else if (delete_line && bot == maxy) { - GoTo(top, 0); - UpdateAttrs(AttrOf(blank)); - for (i = 0; i < n; i++) { - TPUTS_TRACE("delete_line"); - putp(delete_line); - } - } else - return ERR; - -#if NCURSES_EXT_FUNCS - if (FILL_BCE()) { - int j; - for (i = 0; i < n; i++) { - GoTo(bot - i, 0); - for (j = 0; j < screen_columns; j++) - PutChar(CHREF(blank)); - } - } -#endif - return OK; -} - -/* Try to scroll down assuming given csr (miny, maxy). Returns ERR on failure */ -/* n > 0 */ -static int -scroll_csr_backward(int n, int top, int bot, int miny, int maxy, - NCURSES_CH_T blank) -{ - int i; - - if (n == 1 && scroll_reverse && top == miny && bot == maxy) { - GoTo(top, 0); - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("scroll_reverse"); - putp(scroll_reverse); - } else if (n == 1 && insert_line && bot == maxy) { - GoTo(top, 0); - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("insert_line"); - putp(insert_line); - } else if (parm_rindex && top == miny && bot == maxy) { - GoTo(top, 0); - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("parm_rindex"); - tputs(tparm(parm_rindex, n, 0), n, _nc_outch); - } else if (parm_insert_line && bot == maxy) { - GoTo(top, 0); - UpdateAttrs(AttrOf(blank)); - TPUTS_TRACE("parm_insert_line"); - tputs(tparm(parm_insert_line, n, 0), n, _nc_outch); - } else if (scroll_reverse && top == miny && bot == maxy) { - GoTo(top, 0); - UpdateAttrs(AttrOf(blank)); - for (i = 0; i < n; i++) { - TPUTS_TRACE("scroll_reverse"); - putp(scroll_reverse); - } - } else if (insert_line && bot == maxy) { - GoTo(top, 0); - UpdateAttrs(AttrOf(blank)); - for (i = 0; i < n; i++) { - TPUTS_TRACE("insert_line"); - putp(insert_line); - } - } else - return ERR; - -#if NCURSES_EXT_FUNCS - if (FILL_BCE()) { - int j; - for (i = 0; i < n; i++) { - GoTo(top + i, 0); - for (j = 0; j < screen_columns; j++) - PutChar(CHREF(blank)); - } - } -#endif - return OK; -} - -/* scroll by using delete_line at del and insert_line at ins */ -/* n > 0 */ -static int -scroll_idl(int n, int del, int ins, NCURSES_CH_T blank) -{ - int i; - - if (!((parm_delete_line || delete_line) && (parm_insert_line || insert_line))) - return ERR; - - GoTo(del, 0); - UpdateAttrs(AttrOf(blank)); - if (n == 1 && delete_line) { - TPUTS_TRACE("delete_line"); - putp(delete_line); - } else if (parm_delete_line) { - TPUTS_TRACE("parm_delete_line"); - tputs(tparm(parm_delete_line, n, 0), n, _nc_outch); - } else { /* if (delete_line) */ - for (i = 0; i < n; i++) { - TPUTS_TRACE("delete_line"); - putp(delete_line); - } - } - - GoTo(ins, 0); - UpdateAttrs(AttrOf(blank)); - if (n == 1 && insert_line) { - TPUTS_TRACE("insert_line"); - putp(insert_line); - } else if (parm_insert_line) { - TPUTS_TRACE("parm_insert_line"); - tputs(tparm(parm_insert_line, n, 0), n, _nc_outch); - } else { /* if (insert_line) */ - for (i = 0; i < n; i++) { - TPUTS_TRACE("insert_line"); - putp(insert_line); - } - } - - return OK; -} - -/* - * Note: some terminals require the cursor to be within the scrolling margins - * before setting them. Generally, the cursor must be at the appropriate end - * of the scrolling margins when issuing an indexing operation (it is not - * apparent whether it must also be at the left margin; we do this just to be - * safe). To make the related cursor movement a little faster, we use the - * save/restore cursor capabilities if the terminal has them. - */ -NCURSES_EXPORT(int) -_nc_scrolln(int n, int top, int bot, int maxy) -/* scroll region from top to bot by n lines */ -{ - NCURSES_CH_T blank = ClrBlank(stdscr); - int i; - bool cursor_saved = FALSE; - int res; - - TR(TRACE_MOVE, ("mvcur_scrolln(%d, %d, %d, %d)", n, top, bot, maxy)); - -#if USE_XMC_SUPPORT - /* - * If we scroll, we might remove a cookie. - */ - if (magic_cookie_glitch > 0) { - return (ERR); - } -#endif - - if (n > 0) { /* scroll up (forward) */ - /* - * Explicitly clear if stuff pushed off top of region might - * be saved by the terminal. - */ - res = scroll_csr_forward(n, top, bot, 0, maxy, blank); - - if (res == ERR && change_scroll_region) { - if ((((n == 1 && scroll_forward) || parm_index) - && (SP->_cursrow == bot || SP->_cursrow == bot - 1)) - && save_cursor && restore_cursor) { - cursor_saved = TRUE; - TPUTS_TRACE("save_cursor"); - putp(save_cursor); - } - TPUTS_TRACE("change_scroll_region"); - putp(tparm(change_scroll_region, top, bot)); - if (cursor_saved) { - TPUTS_TRACE("restore_cursor"); - putp(restore_cursor); - } else { - SP->_cursrow = SP->_curscol = -1; - } - - res = scroll_csr_forward(n, top, bot, top, bot, blank); - - TPUTS_TRACE("change_scroll_region"); - putp(tparm(change_scroll_region, 0, maxy)); - SP->_cursrow = SP->_curscol = -1; - } - - if (res == ERR && _nc_idlok) - res = scroll_idl(n, top, bot - n + 1, blank); - - /* - * Clear the newly shifted-in text. - */ - if (res != ERR - && (non_dest_scroll_region || (memory_below && bot == maxy))) { - NCURSES_CH_T blank2 = NewChar(BLANK_TEXT); - if (bot == maxy && clr_eos) { - GoTo(bot - n + 1, 0); - ClrToEOS(blank2); - } else { - for (i = 0; i < n; i++) { - GoTo(bot - i, 0); - ClrToEOL(blank2, FALSE); - } - } - } - - } else { /* (n < 0) - scroll down (backward) */ - res = scroll_csr_backward(-n, top, bot, 0, maxy, blank); - - if (res == ERR && change_scroll_region) { - if (top != 0 && (SP->_cursrow == top || SP->_cursrow == top - 1) - && save_cursor && restore_cursor) { - cursor_saved = TRUE; - TPUTS_TRACE("save_cursor"); - putp(save_cursor); - } - TPUTS_TRACE("change_scroll_region"); - putp(tparm(change_scroll_region, top, bot)); - if (cursor_saved) { - TPUTS_TRACE("restore_cursor"); - putp(restore_cursor); - } else { - SP->_cursrow = SP->_curscol = -1; - } - - res = scroll_csr_backward(-n, top, bot, top, bot, blank); - - TPUTS_TRACE("change_scroll_region"); - putp(tparm(change_scroll_region, 0, maxy)); - SP->_cursrow = SP->_curscol = -1; - } - - if (res == ERR && _nc_idlok) - res = scroll_idl(-n, bot + n + 1, top, blank); - - /* - * Clear the newly shifted-in text. - */ - if (res != ERR - && (non_dest_scroll_region || (memory_above && top == 0))) { - NCURSES_CH_T blank2 = NewChar(BLANK_TEXT); - for (i = 0; i < -n; i++) { - GoTo(i + top, 0); - ClrToEOL(blank2, FALSE); - } - } - } - - if (res == ERR) - return (ERR); - - _nc_scroll_window(curscr, n, top, bot, blank); - - /* shift hash values too - they can be reused */ - _nc_scroll_oldhash(n, top, bot); - - return (OK); -} - -NCURSES_EXPORT(void) -_nc_screen_resume(void) -{ - /* make sure terminal is in a sane known state */ - SP->_current_attr = A_NORMAL; - newscr->_clear = TRUE; - - /* reset color pairs and definitions */ - if (SP->_coloron || SP->_color_defs) - _nc_reset_colors(); - - /* restore user-defined colors, if any */ - if (SP->_color_defs < 0) { - int n; - SP->_color_defs = -(SP->_color_defs); - for (n = 0; n < SP->_color_defs; ++n) { - if (SP->_color_table[n].init) { - init_color(n, - SP->_color_table[n].r, - SP->_color_table[n].g, - SP->_color_table[n].b); - } - } - } - - if (exit_attribute_mode) - putp(exit_attribute_mode); - else { - /* turn off attributes */ - if (exit_alt_charset_mode) - putp(exit_alt_charset_mode); - if (exit_standout_mode) - putp(exit_standout_mode); - if (exit_underline_mode) - putp(exit_underline_mode); - } - if (exit_insert_mode) - putp(exit_insert_mode); - if (enter_am_mode && exit_am_mode) - putp(auto_right_margin ? enter_am_mode : exit_am_mode); -} - -NCURSES_EXPORT(void) -_nc_screen_init(void) -{ - _nc_screen_resume(); -} - -/* wrap up screen handling */ -NCURSES_EXPORT(void) -_nc_screen_wrap(void) -{ - UpdateAttrs(A_NORMAL); -#if NCURSES_EXT_FUNCS - if (SP->_coloron - && !SP->_default_color) { - NCURSES_CH_T blank = NewChar(BLANK_TEXT); - SP->_default_color = TRUE; - _nc_do_color(-1, 0, FALSE, _nc_outch); - SP->_default_color = FALSE; - - mvcur(SP->_cursrow, SP->_curscol, screen_lines - 1, 0); - - ClrToEOL(blank, TRUE); - } -#endif - if (SP->_color_defs) { - _nc_reset_colors(); - } -} - -#if USE_XMC_SUPPORT -NCURSES_EXPORT(void) -_nc_do_xmc_glitch(attr_t previous) -{ - attr_t chg = XMC_CHANGES(previous ^ SP->_current_attr); - - while (chg != 0) { - if (chg & 1) { - SP->_curscol += magic_cookie_glitch; - if (SP->_curscol >= SP->_columns) - wrap_cursor(); - TR(TRACE_UPDATE, ("bumped to %d,%d after cookie", SP->_cursrow, SP->_curscol)); - } - chg >>= 1; - } -} -#endif /* USE_XMC_SUPPORT */ diff --git a/Build/source/libs/ncurses/ncurses/widechar/charable.c b/Build/source/libs/ncurses/ncurses/widechar/charable.c deleted file mode 100644 index 57e793efba6..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/charable.c +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/* -** Support functions for wide/narrow conversion. -*/ - -#include - -MODULE_ID("$Id: charable.c,v 1.3 2004/09/25 21:03:44 tom Exp $") - -NCURSES_EXPORT(bool) _nc_is_charable(wchar_t ch) -{ - bool result; -#if HAVE_WCTOB - result = (wctob(ch) == ch); -#else - result = (_nc_to_char(ch) >= 0); -#endif - return result; -} - -NCURSES_EXPORT(int) _nc_to_char(wint_t ch) -{ - int result; -#if HAVE_WCTOB - result = wctob(ch); -#elif HAVE_WCTOMB - char temp[MB_LEN_MAX]; - result = wctomb(temp, ch); - if (strlen(temp) == 1) - result = UChar(temp[0]); - else - result = -1; -#endif - return result; -} - -NCURSES_EXPORT(wint_t) _nc_to_widechar(int ch) -{ - wint_t result; -#if HAVE_BTOWC - result = btowc(ch); -#elif HAVE_MBTOWC - wchar_t convert; - char temp[2]; - temp[0] = ch; - temp[1] = '\0'; - if (mbtowc(&convert, temp, 1) >= 0) - result = convert; - else - result = WEOF; -#endif - return result; -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_add_wch.c b/Build/source/libs/ncurses/ncurses/widechar/lib_add_wch.c deleted file mode 100644 index 29dc5eb1378..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_add_wch.c +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/* -** lib_add_wch.c -** -** The routine wadd_wch(). -** -*/ - -#include - -MODULE_ID("$Id: lib_add_wch.c,v 1.4 2004/09/19 00:33:51 tom Exp $") - -NCURSES_EXPORT(int) -wadd_wch(WINDOW *win, const cchar_t * wch) -{ - PUTC_DATA; - int n; - int code = ERR; - - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wadd_wch(%p, %s)"), win, - _tracech_t(wch))); - - if (win != 0) { - PUTC_INIT; - while (PUTC_i < CCHARW_MAX) { - if ((PUTC_ch = wch->chars[PUTC_i++]) == L'\0') - break; - if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) { - code = ERR; - if (is8bits(PUTC_ch)) - code = waddch(win, UChar(PUTC_ch) | wch->attr); - break; - } - for (n = 0; n < PUTC_n; n++) { - if ((code = waddch(win, UChar(PUTC_buf[n]) | wch->attr)) == ERR) { - break; - } - } - if (code == ERR) - break; - } - } - - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code)); - return (code); -} - -NCURSES_EXPORT(int) -wecho_wchar(WINDOW *win, const cchar_t * wch) -{ - PUTC_DATA; - int n; - int code = ERR; - - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_CALLED("wecho_wchar(%p, %s)"), win, - _tracech_t(wch))); - - if (win != 0) { - PUTC_INIT; - while (PUTC_i < CCHARW_MAX) { - if ((PUTC_ch = wch->chars[PUTC_i++]) == L'\0') - break; - if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) { - code = ERR; - if (is8bits(PUTC_ch)) - code = waddch(win, UChar(PUTC_ch) | wch->attr); - break; - } - for (n = 0; n < PUTC_n; n++) { - if ((code = waddch(win, UChar(PUTC_buf[n]) | wch->attr)) == ERR) { - break; - } - } - if (code == ERR) - break; - } - wrefresh(win); - } - - TR(TRACE_VIRTPUT | TRACE_CCALLS, (T_RETURN("%d"), code)); - return (code); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_box_set.c b/Build/source/libs/ncurses/ncurses/widechar/lib_box_set.c deleted file mode 100644 index 35fce46d8d4..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_box_set.c +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Authors: Sven Verdoolaege and Thomas Dickey 2001,2002 * - ****************************************************************************/ - -/* -** lib_box_set.c -** -** The routine wborder_set(). -** -*/ - -#include - -MODULE_ID("$Id: lib_box_set.c,v 1.4 2003/12/06 18:02:13 tom Exp $") - -NCURSES_EXPORT(int) -wborder_set(WINDOW *win, - const ARG_CH_T ls, const ARG_CH_T rs, - const ARG_CH_T ts, const ARG_CH_T bs, - const ARG_CH_T tl, const ARG_CH_T tr, - const ARG_CH_T bl, const ARG_CH_T br) -{ - NCURSES_SIZE_T i; - NCURSES_SIZE_T endx, endy; - NCURSES_CH_T wls, wrs, wts, wbs, wtl, wtr, wbl, wbr; - - T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"), - win, - _tracech_t2(1, ls), - _tracech_t2(2, rs), - _tracech_t2(3, ts), - _tracech_t2(4, bs), - _tracech_t2(5, tl), - _tracech_t2(6, tr), - _tracech_t2(7, bl), - _tracech_t2(8, br))); - - if (!win) - returnCode(ERR); - -#define RENDER_WITH_DEFAULT(ch,def) w ##ch = _nc_render(win, (ch == 0) ? *(const ARG_CH_T)def : *ch) - - RENDER_WITH_DEFAULT(ls, WACS_VLINE); - RENDER_WITH_DEFAULT(rs, WACS_VLINE); - RENDER_WITH_DEFAULT(ts, WACS_HLINE); - RENDER_WITH_DEFAULT(bs, WACS_HLINE); - RENDER_WITH_DEFAULT(tl, WACS_ULCORNER); - RENDER_WITH_DEFAULT(tr, WACS_URCORNER); - RENDER_WITH_DEFAULT(bl, WACS_LLCORNER); - RENDER_WITH_DEFAULT(br, WACS_LRCORNER); - - T(("using %s, %s, %s, %s, %s, %s, %s, %s", - _tracech_t2(1, CHREF(wls)), - _tracech_t2(2, CHREF(wrs)), - _tracech_t2(3, CHREF(wts)), - _tracech_t2(4, CHREF(wbs)), - _tracech_t2(5, CHREF(wtl)), - _tracech_t2(6, CHREF(wtr)), - _tracech_t2(7, CHREF(wbl)), - _tracech_t2(8, CHREF(wbr)))); - - endx = win->_maxx; - endy = win->_maxy; - - for (i = 0; i <= endx; i++) { - win->_line[0].text[i] = wts; - win->_line[endy].text[i] = wbs; - } - win->_line[endy].firstchar = win->_line[0].firstchar = 0; - win->_line[endy].lastchar = win->_line[0].lastchar = endx; - - for (i = 0; i <= endy; i++) { - win->_line[i].text[0] = wls; - win->_line[i].text[endx] = wrs; - win->_line[i].firstchar = 0; - win->_line[i].lastchar = endx; - } - win->_line[0].text[0] = wtl; - win->_line[0].text[endx] = wtr; - win->_line[endy].text[0] = wbl; - win->_line[endy].text[endx] = wbr; - - _nc_synchook(win); - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_cchar.c b/Build/source/libs/ncurses/ncurses/widechar/lib_cchar.c deleted file mode 100644 index 8ddb300b544..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_cchar.c +++ /dev/null @@ -1,127 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2001-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/* -** lib_cchar.c -** -** The routines setcchar() and getcchar(). -** -*/ - -#include - -MODULE_ID("$Id: lib_cchar.c,v 1.10 2004/10/02 23:44:34 Marcin.Kowalczyk Exp $") - -/* - * The SuSv2 description leaves some room for interpretation. We'll assume wch - * points to a string which is L'\0' terminated, contains at least one - * character with strictly positive width, which must be the first, and - * contains no characters of negative width. - */ -NCURSES_EXPORT(int) -setcchar(cchar_t *wcval, - const wchar_t *wch, - const attr_t attrs, - short color_pair, - const void *opts) -{ - int i; - int len; - int code = OK; - - TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%ld,%d,%p)"), - wcval, _nc_viswbuf(wch), attrs, color_pair, opts)); - - len = wcslen(wch); - if (opts != NULL - || (len > 1 && wcwidth(wch[0]) < 0)) { - code = ERR; - } else { - if (len > CCHARW_MAX) - len = CCHARW_MAX; - - /* - * If we have a following spacing-character, stop at that point. We - * are only interested in adding non-spacing characters. - */ - for (i = 1; i < len; ++i) { - if (wcwidth(wch[i]) != 0) { - len = i; - break; - } - } - - memset(wcval, 0, sizeof(*wcval)); - - if (len != 0) { - SetAttr(*wcval, attrs | COLOR_PAIR(color_pair)); - memcpy(&wcval->chars, wch, len * sizeof(wchar_t)); - TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len, - _tracecchar_t(wcval))); - } - } - - TR(TRACE_CCALLS, (T_RETURN("%d"), code)); - return (code); -} - -NCURSES_EXPORT(int) -getcchar(const cchar_t *wcval, - wchar_t *wch, - attr_t *attrs, - short *color_pair, - void *opts) -{ - wchar_t *wp; - int len; - int code = ERR; - - TR(TRACE_CCALLS, (T_CALLED("getcchar(%p,%p,%p,%p,%p)"), - wcval, wch, attrs, color_pair, opts)); - - if (opts == NULL) { - len = (wp = wmemchr(wcval->chars, L'\0', CCHARW_MAX)) - ? wp - wcval->chars - : CCHARW_MAX; - - if (wch == NULL) { - code = len; - } else if (attrs == 0 || color_pair == 0) { - code = ERR; - } else if (len >= 0) { - *attrs = AttrOf(*wcval) & A_ATTRIBUTES; - *color_pair = PAIR_NUMBER(AttrOf(*wcval)); - wmemcpy(wch, wcval->chars, (unsigned) len); - wch[len] = L'\0'; - code = OK; - } - } - - TR(TRACE_CCALLS, (T_RETURN("%d"), code)); - return (code); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_erasewchar.c b/Build/source/libs/ncurses/ncurses/widechar/lib_erasewchar.c deleted file mode 100644 index 7d6455370ff..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_erasewchar.c +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 2002 * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: lib_erasewchar.c,v 1.1 2002/05/11 20:38:06 tom Exp $") - -/* - * erasewchar() - * - * Return erase character as given in cur_term->Ottyb. - * - */ - -NCURSES_EXPORT(int) -erasewchar(wchar_t * wch) -{ - int value; - int result = ERR; - - T((T_CALLED("erasewchar()"))); - if ((value = erasechar()) != ERR) { - *wch = value; - result = OK; - } - returnCode(result); -} - -/* - * killwchar() - * - * Return kill character as given in cur_term->Ottyb. - * - */ - -NCURSES_EXPORT(int) -killwchar(wchar_t * wch) -{ - int value; - int result = ERR; - - T((T_CALLED("killwchar()"))); - if ((value = killchar()) != ERR) { - *wch = value; - result = OK; - } - returnCode(result); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_get_wch.c b/Build/source/libs/ncurses/ncurses/widechar/lib_get_wch.c deleted file mode 100644 index c8abd7a2cdb..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_get_wch.c +++ /dev/null @@ -1,117 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 2002,2004 * - ****************************************************************************/ - -/* -** lib_get_wch.c -** -** The routine get_wch(). -** -*/ - -#include -#include - -MODULE_ID("$Id: lib_get_wch.c,v 1.9 2004/09/19 01:13:44 tom Exp $") - -#if HAVE_MBTOWC && HAVE_MBLEN -#define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0) -#define count_mbytes(buffer,length,state) mblen(buffer,length) -#define check_mbytes(wch,buffer,length,state) \ - (int) mbtowc(&wch, buffer, length) -#elif HAVE_MBRTOWC && HAVE_MBRLEN -#define reset_mbytes(state) memset(&state, 0, sizeof(state)) -#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state) -#define check_mbytes(wch,buffer,length,state) \ - (int) mbrtowc(&wch, buffer, length, &state) -#else -make an error -#endif - -NCURSES_EXPORT(int) -wget_wch(WINDOW *win, wint_t * result) -{ - int code; - char buffer[(MB_LEN_MAX * 9) + 1]; /* allow some redundant shifts */ - int status; - mbstate_t state; - size_t count = 0; - unsigned long value; - wchar_t wch; - - T((T_CALLED("wget_wch(%p)"), win)); - (void) state; - - /* - * We can get a stream of single-byte characters and KEY_xxx codes from - * _nc_wgetch(), while we want to return a wide character or KEY_xxx code. - */ - for (;;) { - T(("reading %d of %d", count + 1, sizeof(buffer))); - code = _nc_wgetch(win, &value, TRUE); - if (code == ERR) { - break; - } else if (code == KEY_CODE_YES) { - /* - * If we were processing an incomplete multibyte character, return - * an error since we have a KEY_xxx code which interrupts it. For - * some cases, we could improve this by writing a new version of - * lib_getch.c(!), but it is not clear whether the improvement - * would be worth the effort. - */ - if (count != 0) { - ungetch(value); - code = ERR; - } - break; - } else if (count + 1 >= sizeof(buffer)) { - ungetch(value); - code = ERR; - break; - } else { - buffer[count++] = UChar(value); - reset_mbytes(state); - status = count_mbytes(buffer, count, state); - if (status >= 0) { - reset_mbytes(state); - if (check_mbytes(wch, buffer, count, state) != status) { - code = ERR; /* the two calls should match */ - ungetch(value); - } - value = wch; - break; - } - } - } - *result = value; - T(("result %#lo", value)); - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_get_wstr.c b/Build/source/libs/ncurses/ncurses/widechar/lib_get_wstr.c deleted file mode 100644 index bf39aa1a188..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_get_wstr.c +++ /dev/null @@ -1,231 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002-2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey * - ****************************************************************************/ - -/* -** lib_get_wstr.c -** -** The routine wgetn_wstr(). -** -*/ - -#include -#include - -MODULE_ID("$Id: lib_get_wstr.c,v 1.8 2004/10/16 21:55:36 tom Exp $") - -static int -wadd_wint(WINDOW *win, wint_t *src) -{ - cchar_t tmp; - wchar_t wch[2]; - - wch[0] = *src; - wch[1] = 0; - setcchar(&tmp, wch, A_NORMAL, 0, NULL); - return wadd_wch(win, &tmp); -} - -/* - * This wipes out the last character, no matter whether it was a tab, control - * or other character, and handles reverse wraparound. - */ -static wint_t * -WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, bool echoed) -{ - if (last > first) { - *--last = '\0'; - if (echoed) { - int y1 = win->_cury; - int x1 = win->_curx; - int n; - - wmove(win, y, x); - for (n = 0; first[n] != 0; ++n) { - wadd_wint(win, first + n); - } - getyx(win, y, x); - while (win->_cury < y1 - || (win->_cury == y1 && win->_curx < x1)) - waddch(win, (chtype) ' '); - - wmove(win, y, x); - } - } - return last; -} - -NCURSES_EXPORT(int) -wgetn_wstr(WINDOW *win, wint_t *str, int maxlen) -{ - TTY buf; - bool oldnl, oldecho, oldraw, oldcbreak; - wint_t erasec; - wint_t killc; - wint_t *oldstr = str; - wint_t *tmpstr = str; - wint_t ch; - int y, x, code; - - T((T_CALLED("wgetn_wstr(%p,%p, %d)"), win, str, maxlen)); - - if (!win) - returnCode(ERR); - - _nc_get_tty_mode(&buf); - - oldnl = SP->_nl; - oldecho = SP->_echo; - oldraw = SP->_raw; - oldcbreak = SP->_cbreak; - nl(); - noecho(); - noraw(); - cbreak(); - - erasec = erasechar(); - killc = killchar(); - - getyx(win, y, x); - - if (is_wintouched(win) || (win->_flags & _HASMOVED)) - wrefresh(win); - - while ((code = wget_wch(win, &ch)) != ERR) { - /* - * Map special characters into key-codes. - */ - if (ch == '\r') - ch = '\n'; - if (ch == '\n') { - code = KEY_CODE_YES; - ch = KEY_ENTER; - } - if (ch < KEY_MIN) { - if (ch == erasec) { - ch = KEY_BACKSPACE; - code = KEY_CODE_YES; - } - if (ch == killc) { - ch = KEY_EOL; - code = KEY_CODE_YES; - } - } - if (code == KEY_CODE_YES) { - /* - * Some terminals (the Wyse-50 is the most common) generate a \n - * from the down-arrow key. With this logic, it's the user's - * choice whether to set kcud=\n for wget_wch(); terminating - * *getn_wstr() with \n should work either way. - */ - if (ch == KEY_DOWN || ch == KEY_ENTER) { - if (oldecho == TRUE - && win->_cury == win->_maxy - && win->_scroll) - wechochar(win, (chtype) '\n'); - break; - } - if (ch == KEY_LEFT || ch == KEY_BACKSPACE) { - if (tmpstr > oldstr) { - tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho); - } - } else if (ch == KEY_EOL) { - while (tmpstr > oldstr) { - tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho); - } - } else { - beep(); - } - } else if (maxlen >= 0 && tmpstr - oldstr >= maxlen) { - beep(); - } else { - *tmpstr++ = ch; - *tmpstr = 0; - if (oldecho == TRUE) { - int oldy = win->_cury; - - if (wadd_wint(win, tmpstr - 1) == ERR) { - /* - * We can't really use the lower-right corner for input, - * since it'll mess up bookkeeping for erases. - */ - win->_flags &= ~_WRAPPED; - waddch(win, (chtype) ' '); - tmpstr = WipeOut(win, y, x, oldstr, tmpstr, oldecho); - continue; - } else if (win->_flags & _WRAPPED) { - /* - * If the last waddch forced a wrap & scroll, adjust our - * reference point for erasures. - */ - if (win->_scroll - && oldy == win->_maxy - && win->_cury == win->_maxy) { - if (--y <= 0) { - y = 0; - } - } - win->_flags &= ~_WRAPPED; - } - wrefresh(win); - } - } - } - - win->_curx = 0; - win->_flags &= ~_WRAPPED; - if (win->_cury < win->_maxy) - win->_cury++; - wrefresh(win); - - /* Restore with a single I/O call, to fix minor asymmetry between - * raw/noraw, etc. - */ - SP->_nl = oldnl; - SP->_echo = oldecho; - SP->_raw = oldraw; - SP->_cbreak = oldcbreak; - - (void) _nc_set_tty_mode(&buf); - - *tmpstr = 0; - if (code == ERR) { - if (tmpstr == oldstr) { - *tmpstr++ = WEOF; - *tmpstr = 0; - } - returnCode(ERR); - } - - T(("wgetn_wstr returns %s", _nc_viswibuf(oldstr))); - - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_hline_set.c b/Build/source/libs/ncurses/ncurses/widechar/lib_hline_set.c deleted file mode 100644 index 43175de8346..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_hline_set.c +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas Dickey 2002 * - ****************************************************************************/ - -/* -** lib_hline_set.c -** -** The routine whline_set(). -** -*/ - -#include - -MODULE_ID("$Id: lib_hline_set.c,v 1.2 2002/03/23 21:35:34 tom Exp $") - -NCURSES_EXPORT(int) -whline_set(WINDOW *win, const cchar_t * ch, int n) -{ - int code = ERR; - NCURSES_SIZE_T start; - NCURSES_SIZE_T end; - - T((T_CALLED("whline_set(%p,%s,%d)"), win, _tracecchar_t(ch), n)); - - if (win) { - struct ldat *line = &(win->_line[win->_cury]); - NCURSES_CH_T wch; - - start = win->_curx; - end = start + n - 1; - if (end > win->_maxx) - end = win->_maxx; - - CHANGED_RANGE(line, start, end); - - if (ch == 0) - wch = *WACS_HLINE; - else - wch = *ch; - wch = _nc_render(win, wch); - - while (end >= start) { - line->text[end] = wch; - end--; - } - - _nc_synchook(win); - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_in_wch.c b/Build/source/libs/ncurses/ncurses/widechar/lib_in_wch.c deleted file mode 100644 index 39af409d794..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_in_wch.c +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas Dickey 2002,2004 * - ****************************************************************************/ - -/* -** lib_in_wch.c -** -** The routine win_wch(). -** -*/ - -#include - -MODULE_ID("$Id: lib_in_wch.c,v 1.3 2004/05/16 00:13:52 tom Exp $") - -NCURSES_EXPORT(int) -win_wch(WINDOW *win, cchar_t * wcval) -{ - int row, col; - int code = OK; - - TR(TRACE_CCALLS, (T_CALLED("win_wch(%p,%p)"), win, wcval)); - if (win != 0 - && wcval != 0) { - getyx(win, row, col); - - *wcval = win->_line[row].text[col]; - } else { - code = ERR; - } - TR(TRACE_CCALLS, (T_RETURN("%d"), code)); - return (code); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_in_wchnstr.c b/Build/source/libs/ncurses/ncurses/widechar/lib_in_wchnstr.c deleted file mode 100644 index 41ba18ccdf0..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_in_wchnstr.c +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas Dickey 2002,2004 * - ****************************************************************************/ - -/* -** lib_in_wchnstr.c -** -** The routine win_wchnstr(). -** -*/ - -#include - -MODULE_ID("$Id: lib_in_wchnstr.c,v 1.3 2004/05/16 00:12:30 tom Exp $") - -NCURSES_EXPORT(int) -win_wchnstr(WINDOW *win, cchar_t * wchstr, int n) -{ - int code = OK; - - TR(TRACE_CALLS, (T_CALLED("win_wchnstr(%p,%p,%d)"), win, wchstr, n)); - if (win != 0 - && wchstr != 0) { - int row, col; - int j; - - getyx(win, row, col); - - if (n < 0) { - n = getmaxx(win) + 1 - getcurx(win); - } - for (j = 0; j < n; ++j) { - wchstr[j] = win->_line[row].text[col + j]; - } - T(("result = %s", _nc_viscbuf(wchstr, n))); - } else { - code = ERR; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_ins_wch.c b/Build/source/libs/ncurses/ncurses/widechar/lib_ins_wch.c deleted file mode 100644 index 6417eea2ed7..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_ins_wch.c +++ /dev/null @@ -1,130 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas Dickey 2002 * - ****************************************************************************/ - -/* -** lib_ins_wch.c -** -** The routine wins_wch(). -** -*/ - -#include - -MODULE_ID("$Id: lib_ins_wch.c,v 1.3 2003/03/29 21:52:29 tom Exp $") - -/* - * Insert the given character, updating the current location to simplify - * inserting a string. - */ -static void -_nc_insert_wch(WINDOW *win, const cchar_t * wch) -{ - if (win->_curx <= win->_maxx) { - struct ldat *line = &(win->_line[win->_cury]); - NCURSES_CH_T *end = &(line->text[win->_curx]); - NCURSES_CH_T *temp1 = &(line->text[win->_maxx]); - NCURSES_CH_T *temp2 = temp1 - 1; - - CHANGED_TO_EOL(line, win->_curx, win->_maxx); - while (temp1 > end) - *temp1-- = *temp2--; - - *temp1 = _nc_render(win, *wch); - - win->_curx++; - } -} - -NCURSES_EXPORT(int) -wins_wch(WINDOW *win, const cchar_t * wch) -{ - NCURSES_SIZE_T oy; - NCURSES_SIZE_T ox; - int code = ERR; - - T((T_CALLED("wins_wch(%p, %s)"), win, _tracecchar_t(wch))); - - if (win != 0) { - oy = win->_cury; - ox = win->_curx; - - _nc_insert_wch(win, wch); - - win->_curx = ox; - win->_cury = oy; - _nc_synchook(win); - code = OK; - } - returnCode(code); -} - -NCURSES_EXPORT(int) -wins_nwstr(WINDOW *win, const wchar_t * wstr, int n) -{ - int code = ERR; - NCURSES_SIZE_T oy; - NCURSES_SIZE_T ox; - const wchar_t *cp; - - T((T_CALLED("wins_nwstr(%p,%s,%d)"), win, _nc_viswbufn(wstr, n), n)); - - if (win != 0 - && wstr != 0) { - if (n < 1) - n = wcslen(wstr); - if (n > 0) { - oy = win->_cury; - ox = win->_curx; - for (cp = wstr; *cp && ((cp - wstr) < n); cp++) { - if (wcwidth(*cp) > 1) { - cchar_t tmp_cchar; - wchar_t tmp_wchar = *cp; - memset(&tmp_cchar, 0, sizeof(tmp_cchar)); - (void) setcchar(&tmp_cchar, - &tmp_wchar, - WA_NORMAL, - 0, - (void *) 0); - _nc_insert_wch(win, &tmp_cchar); - } else { - _nc_insert_ch(win, *cp); /* tabs, other ASCII stuff */ - } - } - - win->_curx = ox; - win->_cury = oy; - _nc_synchook(win); - } - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_inwstr.c b/Build/source/libs/ncurses/ncurses/widechar/lib_inwstr.c deleted file mode 100644 index 91b1e0f1d2b..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_inwstr.c +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas Dickey 2002 * - ****************************************************************************/ - -/* -** lib_inwstr.c -** -** The routines winnwstr() and winwstr(). -** -*/ - -#include - -MODULE_ID("$Id: lib_inwstr.c,v 1.3 2002/10/06 00:56:36 tom Exp $") - -NCURSES_EXPORT(int) -winnwstr(WINDOW *win, wchar_t * wstr, int n) -{ - int row, col, inx; - int count = 0; - int last = 0; - cchar_t *text; - wchar_t wch; - - T((T_CALLED("winnwstr(%p,%p,%d)"), win, wstr, n)); - if (wstr != 0) { - if (win) { - getyx(win, row, col); - - text = win->_line[row].text; - while (count < n && count != ERR) { - if (!isnac(text[col])) { - for (inx = 0; (inx < CCHARW_MAX) - && ((wch = text[col].chars[inx]) != 0); - ++inx) { - if (count + 1 > n) { - if ((count = last) == 0) { - count = ERR; /* error if we store nothing */ - } - break; - } - wstr[count++] = wch; - } - } - last = count; - if (++col > win->_maxx) { - break; - } - } - } - if (count > 0) { - wstr[count] = '\0'; - T(("winnwstr returns %s", _nc_viswbuf(wstr))); - } - } - returnCode(count); -} - -/* - * X/Open says winwstr() returns OK if not ERR. If that is not a blunder, it - * must have a null termination on the string (see above). Unlike winnstr(), - * it does not define what happens for a negative count with winnwstr(). - */ -NCURSES_EXPORT(int) -winwstr(WINDOW *win, wchar_t * wstr) -{ - int result = OK; - T((T_CALLED("winwstr(%p,%p)"), win, wstr)); - if (winnwstr(win, wstr, CCHARW_MAX * (win->_maxx - win->_curx + 1)) == ERR) - result = ERR; - returnCode(result); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_pecho_wchar.c b/Build/source/libs/ncurses/ncurses/widechar/lib_pecho_wchar.c deleted file mode 100644 index e6127757431..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_pecho_wchar.c +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey * - ****************************************************************************/ - -#include - -MODULE_ID("$Id: lib_pecho_wchar.c,v 1.1 2004/01/03 21:42:01 tom Exp $") - -NCURSES_EXPORT(int) -pecho_wchar(WINDOW *pad, const cchar_t * wch) -{ - T((T_CALLED("pecho_wchar(%p, %s)"), pad, _tracech_t(wch))); - - if (pad == 0) - returnCode(ERR); - - if (!(pad->_flags & _ISPAD)) - returnCode(wecho_wchar(pad, wch)); - - wadd_wch(pad, wch); - prefresh(pad, pad->_pad._pad_y, - pad->_pad._pad_x, - pad->_pad._pad_top, - pad->_pad._pad_left, - pad->_pad._pad_bottom, - pad->_pad._pad_right); - - returnCode(OK); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_slk_wset.c b/Build/source/libs/ncurses/ncurses/widechar/lib_slk_wset.c deleted file mode 100644 index 06fe85684a2..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_slk_wset.c +++ /dev/null @@ -1,149 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2003,2004 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey, 2003 * - ****************************************************************************/ - -/* - * lib_slk_wset.c - * Set soft label text. - */ -#include - -#if HAVE_WCTYPE_H -#include -#endif - -MODULE_ID("$Id: lib_slk_wset.c,v 1.7 2004/05/08 16:52:10 tom Exp $") - -NCURSES_EXPORT(int) -slk_wset(int i, const wchar_t * astr, int format) -{ - static wchar_t empty[] = - {L'\0'}; - int result = ERR; - SLK *slk = SP->_slk; - int offset; - size_t arglen; - const wchar_t *p; - - T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format)); - - if (astr == 0) - astr = empty; - arglen = wcslen(astr); - while (iswspace(*astr)) { - --arglen; - ++astr; /* skip over leading spaces */ - } - p = astr; - while (iswprint(*p)) - p++; /* The first non-print stops */ - - arglen = (size_t) (p - astr); - - if (slk != NULL && - i >= 1 && - i <= slk->labcnt && - format >= 0 && - format <= 2) { - char *new_text; - size_t n; - size_t used = 0; - int mycols; - mbstate_t state; - - --i; /* Adjust numbering of labels */ - - /* - * Reduce the actual number of columns to fit in the label field. - */ - while (arglen != 0 && wcswidth(astr, arglen) > slk->maxlen) { - --arglen; - } - mycols = wcswidth(astr, arglen); - - /* - * translate the wide-character string to multibyte form. - */ - memset(&state, 0, sizeof(state)); - - if ((new_text = (char *) _nc_doalloc(0, MB_LEN_MAX * arglen)) == 0) - returnCode(ERR); - - for (n = 0; n < arglen; ++n) { - used += wcrtomb(new_text + used, astr[n], &state); - } - new_text[used] = '\0'; - - if (used >= (size_t) (slk->maxlen + 1)) { - if ((slk->ent[i].ent_text = (char *) _nc_doalloc(slk->ent[i].ent_text, - used + 1)) == 0) - returnCode(ERR); - if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text, - used + 1)) == 0) - returnCode(ERR); - } - - (void) strcpy(slk->ent[i].ent_text, new_text); - free(new_text); - - sprintf(slk->ent[i].form_text, "%*s", (size_t) slk->maxlen, " "); - - switch (format) { - default: - case 0: /* left-aligned */ - offset = 0; - break; - case 1: /* centered */ - offset = (slk->maxlen - mycols) / 2; - break; - case 2: /* right-aligned */ - offset = slk->maxlen - mycols; - break; - } - if (offset < 0) - offset = 0; - strcpy(slk->ent[i].form_text + offset, - slk->ent[i].ent_text); - /* - * Pad the display with blanks on the right, unless it is already - * right-aligned. - */ - if (format != 2 && mycols < slk->maxlen) { - sprintf(slk->ent[i].form_text + offset + used, - "%*s", - slk->maxlen - (mycols - offset), - " "); - } - slk->ent[i].dirty = TRUE; - result = OK; - } - returnCode(result); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_unget_wch.c b/Build/source/libs/ncurses/ncurses/widechar/lib_unget_wch.c deleted file mode 100644 index f4d0c518edf..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_unget_wch.c +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 2002 * - ****************************************************************************/ - -/* -** lib_unget_wch.c -** -** The routine unget_wch(). -** -*/ - -#include - -MODULE_ID("$Id: lib_unget_wch.c,v 1.5 2003/07/05 19:46:51 tom Exp $") - -NCURSES_EXPORT(int) -unget_wch(const wchar_t wch) -{ - int result = OK; - mbstate_t state; - size_t length; - int n; - - T((T_CALLED("unget_wch(%#lx)"), (unsigned long) wch)); - - memset(&state, 0, sizeof(state)); - length = wcrtomb(0, wch, &state); - - if (length != (size_t) (-1) - && length != 0) { - char *string; - - if ((string = (char *) malloc(length)) != 0) { - memset(&state, 0, sizeof(state)); - wcrtomb(string, wch, &state); - - for (n = (int) (length - 1); n >= 0; --n) { - if (ungetch(string[n]) != OK) { - result = ERR; - break; - } - } - free(string); - } else { - result = ERR; - } - } else { - result = ERR; - } - - returnCode(result); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_vid_attr.c b/Build/source/libs/ncurses/ncurses/widechar/lib_vid_attr.c deleted file mode 100644 index 06e7880dd4d..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_vid_attr.c +++ /dev/null @@ -1,94 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas E. Dickey 2002 * - ****************************************************************************/ - -#include -#include - -MODULE_ID("$Id: lib_vid_attr.c,v 1.1 2002/05/11 20:55:26 tom Exp $") - -#define set_color(mode, pair) mode &= ~A_COLOR; mode |= COLOR_PAIR(pair) - -NCURSES_EXPORT(int) -vid_puts(attr_t newmode, short pair, void *opts GCC_UNUSED, int (*outc) (int)) -{ - T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair)); - set_color(newmode, pair); - returnCode(vidputs(newmode, outc)); -} - -#undef vid_attr -NCURSES_EXPORT(int) -vid_attr(attr_t newmode, short pair, void *opts GCC_UNUSED) -{ - T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), pair)); - set_color(newmode, pair); - returnCode(vidputs(newmode, _nc_outch)); -} - -NCURSES_EXPORT(attr_t) -term_attrs(void) -{ - attr_t attrs = WA_NORMAL; - - T((T_CALLED("term_attrs()"))); - if (enter_alt_charset_mode) - attrs |= WA_ALTCHARSET; - - if (enter_blink_mode) - attrs |= WA_BLINK; - - if (enter_bold_mode) - attrs |= WA_BOLD; - - if (enter_dim_mode) - attrs |= WA_DIM; - - if (enter_reverse_mode) - attrs |= WA_REVERSE; - - if (enter_standout_mode) - attrs |= WA_STANDOUT; - - if (enter_protected_mode) - attrs |= WA_PROTECT; - - if (enter_secure_mode) - attrs |= WA_INVIS; - - if (enter_underline_mode) - attrs |= WA_UNDERLINE; - - if (SP->_coloron) - attrs |= A_COLOR; - - returnAttr(attrs); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_vline_set.c b/Build/source/libs/ncurses/ncurses/widechar/lib_vline_set.c deleted file mode 100644 index af42df1f24a..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_vline_set.c +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas Dickey 2002 * - ****************************************************************************/ - -/* -** lib_vline_set.c -** -** The routine wvline_set(). -** -*/ - -#include - -MODULE_ID("$Id: lib_vline_set.c,v 1.2 2002/03/23 21:36:01 tom Exp $") - -NCURSES_EXPORT(int) -wvline_set(WINDOW *win, const cchar_t * ch, int n) -{ - int code = ERR; - NCURSES_SIZE_T row, col; - NCURSES_SIZE_T end; - - T((T_CALLED("wvline(%p,%s,%d)"), win, _tracecchar_t(ch), n)); - - if (win) { - NCURSES_CH_T wch; - row = win->_cury; - col = win->_curx; - end = row + n - 1; - if (end > win->_maxy) - end = win->_maxy; - - if (ch == 0) - wch = *WACS_VLINE; - else - wch = *ch; - wch = _nc_render(win, wch); - - while (end >= row) { - struct ldat *line = &(win->_line[end]); - line->text[col] = wch; - CHANGED_CELL(line, col); - end--; - } - - _nc_synchook(win); - code = OK; - } - returnCode(code); -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_wacs.c b/Build/source/libs/ncurses/ncurses/widechar/lib_wacs.c deleted file mode 100644 index c956cfdba7e..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_wacs.c +++ /dev/null @@ -1,114 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2002 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/**************************************************************************** - * Author: Thomas Dickey 2002 * - ****************************************************************************/ - -#include -#include - -MODULE_ID("$Id: lib_wacs.c,v 1.6 2002/12/21 12:30:19 tom Exp $") - -NCURSES_EXPORT_VAR(cchar_t) * _nc_wacs = 0; - -NCURSES_EXPORT(void) -_nc_init_wacs(void) -{ - /* *INDENT-OFF* */ - static const struct { - int map; - int value[2]; - } table[] = { - /* VT100 symbols */ - { 'l', { '+', 0x250c }}, /* upper left corner */ - { 'm', { '+', 0x2514 }}, /* lower left corner */ - { 'k', { '+', 0x2510 }}, /* upper right corner */ - { 'j', { '+', 0x2518 }}, /* lower right corner */ - { 't', { '+', 0x251c }}, /* tee pointing left */ - { 'u', { '+', 0x2524 }}, /* tee pointing right */ - { 'v', { '+', 0x2534 }}, /* tee pointing up */ - { 'w', { '+', 0x252c }}, /* tee pointing down */ - { 'q', { '-', 0x2500 }}, /* horizontal line */ - { 'x', { '|', 0x2502 }}, /* vertical line */ - { 'n', { '+', 0x253c }}, /* large plus or crossover */ - { 'o', { '~', 0x23ba }}, /* scan line 1 */ - { 's', { '_', 0x23bd }}, /* scan line 9 */ - { '`', { '+', 0x25c6 }}, /* diamond */ - { 'a', { ':', 0x2592 }}, /* checker board (stipple) */ - { 'f', { '\'', 0x00b0 }}, /* degree symbol */ - { 'g', { '#', 0x00b1 }}, /* plus/minus */ - { '~', { 'o', 0x00b7 }}, /* bullet */ - /* Teletype 5410v1 symbols */ - { ',', { '<', 0x2190 }}, /* arrow pointing left */ - { '+', { '>', 0x2192 }}, /* arrow pointing right */ - { '.', { 'v', 0x2193 }}, /* arrow pointing down */ - { '-', { '^', 0x2191 }}, /* arrow pointing up */ - { 'h', { '#', 0x2592 }}, /* board of squares */ - { 'i', { '#', 0x2603 }}, /* lantern symbol */ - { '0', { '#', 0x25ae }}, /* solid square block */ - /* these defaults were invented for ncurses */ - { 'p', { '-', 0x23bb }}, /* scan line 3 */ - { 'r', { '-', 0x23bc }}, /* scan line 7 */ - { 'y', { '<', 0x2264 }}, /* less-than-or-equal-to */ - { 'z', { '>', 0x2265 }}, /* greater-than-or-equal-to */ - { '{', { '*', 0x03c0 }}, /* greek pi */ - { '|', { '!', 0x2260 }}, /* not-equal */ - { '}', { 'f', 0x00a3 }}, /* pound-sterling symbol */ - }; - /* *INDENT-ON* */ - - unsigned n, m; - int active = _nc_unicode_locale(); - - /* - * If we're running in a UTF-8 locale, will use the Unicode equivalents - * rather than the terminfo information. Actually the terminfo should - * be the rule, but there are people who are offended by the notion that - * a Unicode-capable terminal would have something resembling a mode. - * So the smacs/rmacs may be disabled -- sometime. - */ - T(("initializing WIDE-ACS map (Unicode is%s active)", - active ? "" : " not")); - - _nc_wacs = typeCalloc(cchar_t, ACS_LEN); - for (n = 0; n < SIZEOF(table); ++n) { - m = table[n].map; - if (active) { - SetChar(_nc_wacs[m], table[n].value[active], A_NORMAL); - } else if (acs_map[m] & A_ALTCHARSET) { - SetChar(_nc_wacs[m], m, A_ALTCHARSET); - } else { - SetChar(_nc_wacs[m], table[n].value[0], A_NORMAL); - } - T(("#%d, SetChar(%c, %#04x) = %s", - n, m, - table[n].value[active], - _tracecchar_t(&_nc_wacs[m]))); - } -} diff --git a/Build/source/libs/ncurses/ncurses/widechar/lib_wunctrl.c b/Build/source/libs/ncurses/ncurses/widechar/lib_wunctrl.c deleted file mode 100644 index 89430e5681a..00000000000 --- a/Build/source/libs/ncurses/ncurses/widechar/lib_wunctrl.c +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** - * Copyright (c) 2001,2003 Free Software Foundation, Inc. * - * * - * 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, distribute with modifications, 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 ABOVE 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. * - * * - * Except as contained in this notice, the name(s) of the above copyright * - * holders shall not be used in advertising or otherwise to promote the * - * sale, use or other dealings in this Software without prior written * - * authorization. * - ****************************************************************************/ - -/* -** lib_wunctrl.c -** -** The routine wunctrl(). -** -*/ - -#include - -#if USE_WIDEC_SUPPORT - -MODULE_ID("$Id: lib_wunctrl.c,v 1.7 2003/07/05 17:01:43 tom Exp $") - -NCURSES_EXPORT(wchar_t *) -wunctrl(cchar_t * wc) -{ - static wchar_t str[5], *sp; - - if (Charable(*wc)) { - const char *p; - for (p = unctrl(_nc_to_char(CharOf(*wc))), sp = str; *p;) - *sp++ = _nc_to_widechar(*p++); - return str; - } else - return wc->chars; -} - -#endif diff --git a/Build/source/libs/ncurses/tar-copy.sh b/Build/source/libs/ncurses/tar-copy.sh deleted file mode 100755 index 3df1bc11169..00000000000 --- a/Build/source/libs/ncurses/tar-copy.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh -# $Id: tar-copy.sh,v 1.5 2003/10/25 14:40:07 tom Exp $ -############################################################################## -# Copyright (c) 1998,2003 Free Software Foundation, Inc. # -# # -# 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, distribute # -# with modifications, 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 ABOVE 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. # -# # -# Except as contained in this notice, the name(s) of the above copyright # -# holders shall not be used in advertising or otherwise to promote the sale, # -# use or other dealings in this Software without prior written # -# authorization. # -############################################################################## -# -# Author: Thomas E. Dickey -# -# Copy a collection of files using 'tar', so that their dates and links are -# preserved -# -# Parameters: -# $1 = files to copy -# $2 = source directory -# $3 = destination directory -# -#DOIT=echo -DOIT=eval - -if test $# != 3 ; then - echo "Usage: $0 files source target" - exit 1 -elif test ! -d "$2" ; then - echo "Source directory not found: $2" - exit 1 -elif test ! -d "$3" ; then - echo "Target directory not found: $3" - exit 1 -fi - -WD=`pwd` - -TMP=$WD/copy$$ - -cd $2 -TEST=`ls -d $1 2>/dev/null` -if test -z "$TEST" -then - echo "... no match for \"$1\" in $2" -else - echo "... installing files matching \"$1\" in $2" - trap "rm -f $TMP" 0 1 2 5 15 - if ( tar cf $TMP $1 ) - then - cd $3 - LIST=`tar tf $TMP 2>&1` - $DOIT rm -rf $LIST 2>/dev/null - $DOIT tar xvf $TMP - else - echo "Cannot create tar of $1 files" - exit 1 - fi -fi diff --git a/Build/source/libs/ncurses/withenable.ac b/Build/source/libs/ncurses/withenable.ac deleted file mode 100644 index 091a2155641..00000000000 --- a/Build/source/libs/ncurses/withenable.ac +++ /dev/null @@ -1,15 +0,0 @@ -dnl withenable.ac: --with and --enable options. -try_ncurses=no -AC_ARG_WITH([system-ncurses], - [ --with-system-ncurses check for installed ncurses], - [test "$withval" = "yes" && try_ncurses=yes], - [try_ncurses=no]) - -AC_ARG_WITH([ncurses_libdir], -[ --with-ncurses-libdir=DIR - Specify directory where the ncurses library resides.]) - -AC_ARG_WITH([ncurses_include], -[ --with-ncurses-include=DIR - Specify the ncurses header files location.]) - diff --git a/Build/source/libs/zlib/Makefile.in b/Build/source/libs/zlib/Makefile.in index 4bcb52dbb9b..c59b4ff98ae 100644 --- a/Build/source/libs/zlib/Makefile.in +++ b/Build/source/libs/zlib/Makefile.in @@ -1,40 +1,909 @@ +# Makefile.in generated by automake 1.10.2 from Makefile.am. # @configure_input@ -# Thomas Esser, Makefile.in for zlib / teTeX. (C) 2002-2004, public domain. -kpse_include ../texk/make/common.mk -kpse_include ../texk/make/programs.mk -kpse_include ../texk/make/library.mk +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in 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. -OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ - zutil.o inflate.o infback.o inftrees.o inffast.o +# 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. -libz.a: $(OBJS) - rm -f $@ - $(AR) $(ARFLAGS) $@ $(OBJS) $(OBJA) - $(RANLIB) $@ +@SET_MAKE@ -all: libz.a -uninstall: +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +@build_TRUE@check_PROGRAMS = example$(EXEEXT) minigzip$(EXEEXT) +subdir = . +DIST_COMMON = README $(am__configure_deps) \ + $(am__dist_check_SCRIPTS_DIST) \ + $(srcdir)/../../build-aux/depcomp \ + $(srcdir)/../../build-aux/install-sh \ + $(srcdir)/../../build-aux/missing $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(top_srcdir)/configure ../../build-aux/config.guess \ + ../../build-aux/config.sub ../../build-aux/depcomp \ + ../../build-aux/install-sh ../../build-aux/ltmain.sh \ + ../../build-aux/missing ../../build-aux/texinfo.tex \ + ../../build-aux/ylwrap +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = zlib.h +LIBRARIES = $(noinst_LIBRARIES) +AR = ar +ARFLAGS = cru +libz_a_AR = $(AR) $(ARFLAGS) +libz_a_LIBADD = +nodist_libz_a_OBJECTS = adler32.$(OBJEXT) compress.$(OBJEXT) \ + crc32.$(OBJEXT) deflate.$(OBJEXT) gzio.$(OBJEXT) \ + infback.$(OBJEXT) inffast.$(OBJEXT) inflate.$(OBJEXT) \ + inftrees.$(OBJEXT) trees.$(OBJEXT) uncompr.$(OBJEXT) \ + zutil.$(OBJEXT) +libz_a_OBJECTS = $(nodist_libz_a_OBJECTS) +nodist_example_OBJECTS = example.$(OBJEXT) +example_OBJECTS = $(nodist_example_OBJECTS) +example_LDADD = $(LDADD) +example_DEPENDENCIES = libz.a +nodist_minigzip_OBJECTS = minigzip.$(OBJEXT) +minigzip_OBJECTS = $(nodist_minigzip_OBJECTS) +minigzip_LDADD = $(LDADD) +minigzip_DEPENDENCIES = libz.a +am__dist_check_SCRIPTS_DIST = zlib.test +DEFAULT_INCLUDES = -I.@am__isrc@ +depcomp = $(SHELL) $(top_srcdir)/../../build-aux/depcomp +am__depfiles_maybe = depfiles +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +SOURCES = $(nodist_libz_a_SOURCES) $(nodist_example_SOURCES) \ + $(nodist_minigzip_SOURCES) +DIST_SOURCES = +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d $(distdir) \ + || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr $(distdir); }; } +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +GREP = @GREP@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +WITH_UNISTD = @WITH_UNISTD@ +ZLIB_DEFINES = @ZLIB_DEFINES@ +ZLIB_TREE = @ZLIB_TREE@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build_alias = @build_alias@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host_alias = @host_alias@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ACLOCAL_AMFLAGS = -I ../../m4 +EXTRA_DIST = $(ZLIB_TREE) +INCLUDES = -I$(top_srcdir)/$(ZLIB_TREE) +AM_CPPFLAGS = $(ZLIB_DEFINES) +@build_TRUE@noinst_LIBRARIES = libz.a +@build_TRUE@BUILT_SOURCES = zconf.h +@build_TRUE@dist_check_SCRIPTS = zlib.test +@build_TRUE@TESTS = zlib.test +nodist_libz_a_SOURCES = \ + $(ZLIB_TREE)/adler32.c \ + $(ZLIB_TREE)/compress.c \ + $(ZLIB_TREE)/crc32.c \ + $(ZLIB_TREE)/crc32.h \ + $(ZLIB_TREE)/deflate.c \ + $(ZLIB_TREE)/deflate.h \ + $(ZLIB_TREE)/gzio.c \ + $(ZLIB_TREE)/infback.c \ + $(ZLIB_TREE)/inffast.c \ + $(ZLIB_TREE)/inffast.h \ + $(ZLIB_TREE)/inffixed.h \ + $(ZLIB_TREE)/inflate.c \ + $(ZLIB_TREE)/inflate.h \ + $(ZLIB_TREE)/inftrees.c \ + $(ZLIB_TREE)/inftrees.h \ + $(ZLIB_TREE)/trees.c \ + $(ZLIB_TREE)/trees.h \ + $(ZLIB_TREE)/uncompr.c \ + $(ZLIB_TREE)/zutil.h \ + $(ZLIB_TREE)/zutil.c -kpse_include ../texk/make/clean.mk +LDADD = libz.a +nodist_example_SOURCES = $(ZLIB_TREE)/example.c +nodist_minigzip_SOURCES = $(ZLIB_TREE)/minigzip.c +DISTCLEANFILES = zconf.h +CLEANFILES = foo.gz foo_gz +all: $(BUILT_SOURCES) config.h + $(MAKE) $(AM_MAKEFLAGS) all-am -clean:: - rm -f libz.a +.SUFFIXES: +.SUFFIXES: .c .o .obj +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ + cd $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; -depend: - makedepend -- $(CFLAGS) -- *.[ch] +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck -# DO NOT DELETE THIS LINE -- make depend depends on it. +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) -adler32.o: zlib.h zconf.h -compress.o: zlib.h zconf.h -crc32.o: crc32.h zlib.h zconf.h -deflate.o: deflate.h zutil.h zlib.h zconf.h -gzio.o: zutil.h zlib.h zconf.h -inffast.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h -inflate.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h -infback.o: zutil.h zlib.h zconf.h inftrees.h inflate.h inffast.h -inftrees.o: zutil.h zlib.h zconf.h inftrees.h -trees.o: deflate.h zutil.h zlib.h zconf.h trees.h -uncompr.o: zlib.h zconf.h -zutil.o: zutil.h zlib.h zconf.h +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_srcdir) && $(AUTOHEADER) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 + +clean-noinstLIBRARIES: + -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) +libz.a: $(libz_a_OBJECTS) $(libz_a_DEPENDENCIES) + -rm -f libz.a + $(libz_a_AR) libz.a $(libz_a_OBJECTS) $(libz_a_LIBADD) + $(RANLIB) libz.a + +clean-checkPROGRAMS: + -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS) +example$(EXEEXT): $(example_OBJECTS) $(example_DEPENDENCIES) + @rm -f example$(EXEEXT) + $(LINK) $(example_OBJECTS) $(example_LDADD) $(LIBS) +minigzip$(EXEEXT): $(minigzip_OBJECTS) $(minigzip_DEPENDENCIES) + @rm -f minigzip$(EXEEXT) + $(LINK) $(minigzip_OBJECTS) $(minigzip_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adler32.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/compress.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/crc32.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deflate.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gzio.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/infback.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inffast.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inflate.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/inftrees.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minigzip.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trees.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/uncompr.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zutil.Po@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +adler32.o: $(ZLIB_TREE)/adler32.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT adler32.o -MD -MP -MF $(DEPDIR)/adler32.Tpo -c -o adler32.o `test -f '$(ZLIB_TREE)/adler32.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/adler32.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/adler32.Tpo $(DEPDIR)/adler32.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/adler32.c' object='adler32.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adler32.o `test -f '$(ZLIB_TREE)/adler32.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/adler32.c + +adler32.obj: $(ZLIB_TREE)/adler32.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT adler32.obj -MD -MP -MF $(DEPDIR)/adler32.Tpo -c -o adler32.obj `if test -f '$(ZLIB_TREE)/adler32.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/adler32.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/adler32.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/adler32.Tpo $(DEPDIR)/adler32.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/adler32.c' object='adler32.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adler32.obj `if test -f '$(ZLIB_TREE)/adler32.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/adler32.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/adler32.c'; fi` + +compress.o: $(ZLIB_TREE)/compress.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT compress.o -MD -MP -MF $(DEPDIR)/compress.Tpo -c -o compress.o `test -f '$(ZLIB_TREE)/compress.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/compress.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/compress.Tpo $(DEPDIR)/compress.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/compress.c' object='compress.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o compress.o `test -f '$(ZLIB_TREE)/compress.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/compress.c + +compress.obj: $(ZLIB_TREE)/compress.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT compress.obj -MD -MP -MF $(DEPDIR)/compress.Tpo -c -o compress.obj `if test -f '$(ZLIB_TREE)/compress.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/compress.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/compress.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/compress.Tpo $(DEPDIR)/compress.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/compress.c' object='compress.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o compress.obj `if test -f '$(ZLIB_TREE)/compress.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/compress.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/compress.c'; fi` + +crc32.o: $(ZLIB_TREE)/crc32.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT crc32.o -MD -MP -MF $(DEPDIR)/crc32.Tpo -c -o crc32.o `test -f '$(ZLIB_TREE)/crc32.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/crc32.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/crc32.Tpo $(DEPDIR)/crc32.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/crc32.c' object='crc32.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o crc32.o `test -f '$(ZLIB_TREE)/crc32.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/crc32.c + +crc32.obj: $(ZLIB_TREE)/crc32.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT crc32.obj -MD -MP -MF $(DEPDIR)/crc32.Tpo -c -o crc32.obj `if test -f '$(ZLIB_TREE)/crc32.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/crc32.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/crc32.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/crc32.Tpo $(DEPDIR)/crc32.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/crc32.c' object='crc32.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o crc32.obj `if test -f '$(ZLIB_TREE)/crc32.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/crc32.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/crc32.c'; fi` + +deflate.o: $(ZLIB_TREE)/deflate.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT deflate.o -MD -MP -MF $(DEPDIR)/deflate.Tpo -c -o deflate.o `test -f '$(ZLIB_TREE)/deflate.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/deflate.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/deflate.Tpo $(DEPDIR)/deflate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/deflate.c' object='deflate.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o deflate.o `test -f '$(ZLIB_TREE)/deflate.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/deflate.c + +deflate.obj: $(ZLIB_TREE)/deflate.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT deflate.obj -MD -MP -MF $(DEPDIR)/deflate.Tpo -c -o deflate.obj `if test -f '$(ZLIB_TREE)/deflate.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/deflate.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/deflate.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/deflate.Tpo $(DEPDIR)/deflate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/deflate.c' object='deflate.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o deflate.obj `if test -f '$(ZLIB_TREE)/deflate.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/deflate.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/deflate.c'; fi` + +gzio.o: $(ZLIB_TREE)/gzio.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gzio.o -MD -MP -MF $(DEPDIR)/gzio.Tpo -c -o gzio.o `test -f '$(ZLIB_TREE)/gzio.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/gzio.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/gzio.Tpo $(DEPDIR)/gzio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/gzio.c' object='gzio.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gzio.o `test -f '$(ZLIB_TREE)/gzio.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/gzio.c + +gzio.obj: $(ZLIB_TREE)/gzio.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gzio.obj -MD -MP -MF $(DEPDIR)/gzio.Tpo -c -o gzio.obj `if test -f '$(ZLIB_TREE)/gzio.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/gzio.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/gzio.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/gzio.Tpo $(DEPDIR)/gzio.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/gzio.c' object='gzio.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gzio.obj `if test -f '$(ZLIB_TREE)/gzio.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/gzio.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/gzio.c'; fi` + +infback.o: $(ZLIB_TREE)/infback.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT infback.o -MD -MP -MF $(DEPDIR)/infback.Tpo -c -o infback.o `test -f '$(ZLIB_TREE)/infback.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/infback.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/infback.Tpo $(DEPDIR)/infback.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/infback.c' object='infback.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o infback.o `test -f '$(ZLIB_TREE)/infback.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/infback.c + +infback.obj: $(ZLIB_TREE)/infback.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT infback.obj -MD -MP -MF $(DEPDIR)/infback.Tpo -c -o infback.obj `if test -f '$(ZLIB_TREE)/infback.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/infback.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/infback.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/infback.Tpo $(DEPDIR)/infback.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/infback.c' object='infback.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o infback.obj `if test -f '$(ZLIB_TREE)/infback.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/infback.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/infback.c'; fi` + +inffast.o: $(ZLIB_TREE)/inffast.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT inffast.o -MD -MP -MF $(DEPDIR)/inffast.Tpo -c -o inffast.o `test -f '$(ZLIB_TREE)/inffast.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/inffast.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/inffast.Tpo $(DEPDIR)/inffast.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/inffast.c' object='inffast.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o inffast.o `test -f '$(ZLIB_TREE)/inffast.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/inffast.c + +inffast.obj: $(ZLIB_TREE)/inffast.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT inffast.obj -MD -MP -MF $(DEPDIR)/inffast.Tpo -c -o inffast.obj `if test -f '$(ZLIB_TREE)/inffast.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/inffast.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/inffast.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/inffast.Tpo $(DEPDIR)/inffast.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/inffast.c' object='inffast.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o inffast.obj `if test -f '$(ZLIB_TREE)/inffast.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/inffast.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/inffast.c'; fi` + +inflate.o: $(ZLIB_TREE)/inflate.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT inflate.o -MD -MP -MF $(DEPDIR)/inflate.Tpo -c -o inflate.o `test -f '$(ZLIB_TREE)/inflate.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/inflate.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/inflate.Tpo $(DEPDIR)/inflate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/inflate.c' object='inflate.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o inflate.o `test -f '$(ZLIB_TREE)/inflate.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/inflate.c + +inflate.obj: $(ZLIB_TREE)/inflate.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT inflate.obj -MD -MP -MF $(DEPDIR)/inflate.Tpo -c -o inflate.obj `if test -f '$(ZLIB_TREE)/inflate.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/inflate.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/inflate.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/inflate.Tpo $(DEPDIR)/inflate.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/inflate.c' object='inflate.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o inflate.obj `if test -f '$(ZLIB_TREE)/inflate.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/inflate.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/inflate.c'; fi` + +inftrees.o: $(ZLIB_TREE)/inftrees.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT inftrees.o -MD -MP -MF $(DEPDIR)/inftrees.Tpo -c -o inftrees.o `test -f '$(ZLIB_TREE)/inftrees.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/inftrees.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/inftrees.Tpo $(DEPDIR)/inftrees.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/inftrees.c' object='inftrees.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o inftrees.o `test -f '$(ZLIB_TREE)/inftrees.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/inftrees.c + +inftrees.obj: $(ZLIB_TREE)/inftrees.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT inftrees.obj -MD -MP -MF $(DEPDIR)/inftrees.Tpo -c -o inftrees.obj `if test -f '$(ZLIB_TREE)/inftrees.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/inftrees.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/inftrees.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/inftrees.Tpo $(DEPDIR)/inftrees.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/inftrees.c' object='inftrees.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o inftrees.obj `if test -f '$(ZLIB_TREE)/inftrees.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/inftrees.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/inftrees.c'; fi` + +trees.o: $(ZLIB_TREE)/trees.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT trees.o -MD -MP -MF $(DEPDIR)/trees.Tpo -c -o trees.o `test -f '$(ZLIB_TREE)/trees.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/trees.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/trees.Tpo $(DEPDIR)/trees.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/trees.c' object='trees.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o trees.o `test -f '$(ZLIB_TREE)/trees.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/trees.c + +trees.obj: $(ZLIB_TREE)/trees.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT trees.obj -MD -MP -MF $(DEPDIR)/trees.Tpo -c -o trees.obj `if test -f '$(ZLIB_TREE)/trees.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/trees.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/trees.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/trees.Tpo $(DEPDIR)/trees.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/trees.c' object='trees.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o trees.obj `if test -f '$(ZLIB_TREE)/trees.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/trees.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/trees.c'; fi` + +uncompr.o: $(ZLIB_TREE)/uncompr.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uncompr.o -MD -MP -MF $(DEPDIR)/uncompr.Tpo -c -o uncompr.o `test -f '$(ZLIB_TREE)/uncompr.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/uncompr.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/uncompr.Tpo $(DEPDIR)/uncompr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/uncompr.c' object='uncompr.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uncompr.o `test -f '$(ZLIB_TREE)/uncompr.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/uncompr.c + +uncompr.obj: $(ZLIB_TREE)/uncompr.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT uncompr.obj -MD -MP -MF $(DEPDIR)/uncompr.Tpo -c -o uncompr.obj `if test -f '$(ZLIB_TREE)/uncompr.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/uncompr.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/uncompr.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/uncompr.Tpo $(DEPDIR)/uncompr.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/uncompr.c' object='uncompr.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o uncompr.obj `if test -f '$(ZLIB_TREE)/uncompr.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/uncompr.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/uncompr.c'; fi` + +zutil.o: $(ZLIB_TREE)/zutil.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zutil.o -MD -MP -MF $(DEPDIR)/zutil.Tpo -c -o zutil.o `test -f '$(ZLIB_TREE)/zutil.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/zutil.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/zutil.Tpo $(DEPDIR)/zutil.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/zutil.c' object='zutil.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zutil.o `test -f '$(ZLIB_TREE)/zutil.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/zutil.c + +zutil.obj: $(ZLIB_TREE)/zutil.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zutil.obj -MD -MP -MF $(DEPDIR)/zutil.Tpo -c -o zutil.obj `if test -f '$(ZLIB_TREE)/zutil.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/zutil.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/zutil.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/zutil.Tpo $(DEPDIR)/zutil.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/zutil.c' object='zutil.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zutil.obj `if test -f '$(ZLIB_TREE)/zutil.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/zutil.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/zutil.c'; fi` + +example.o: $(ZLIB_TREE)/example.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT example.o -MD -MP -MF $(DEPDIR)/example.Tpo -c -o example.o `test -f '$(ZLIB_TREE)/example.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/example.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/example.Tpo $(DEPDIR)/example.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/example.c' object='example.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o example.o `test -f '$(ZLIB_TREE)/example.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/example.c + +example.obj: $(ZLIB_TREE)/example.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT example.obj -MD -MP -MF $(DEPDIR)/example.Tpo -c -o example.obj `if test -f '$(ZLIB_TREE)/example.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/example.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/example.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/example.Tpo $(DEPDIR)/example.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/example.c' object='example.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o example.obj `if test -f '$(ZLIB_TREE)/example.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/example.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/example.c'; fi` + +minigzip.o: $(ZLIB_TREE)/minigzip.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT minigzip.o -MD -MP -MF $(DEPDIR)/minigzip.Tpo -c -o minigzip.o `test -f '$(ZLIB_TREE)/minigzip.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/minigzip.c +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/minigzip.Tpo $(DEPDIR)/minigzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/minigzip.c' object='minigzip.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o minigzip.o `test -f '$(ZLIB_TREE)/minigzip.c' || echo '$(srcdir)/'`$(ZLIB_TREE)/minigzip.c + +minigzip.obj: $(ZLIB_TREE)/minigzip.c +@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT minigzip.obj -MD -MP -MF $(DEPDIR)/minigzip.Tpo -c -o minigzip.obj `if test -f '$(ZLIB_TREE)/minigzip.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/minigzip.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/minigzip.c'; fi` +@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/minigzip.Tpo $(DEPDIR)/minigzip.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$(ZLIB_TREE)/minigzip.c' object='minigzip.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o minigzip.obj `if test -f '$(ZLIB_TREE)/minigzip.c'; then $(CYGPATH_W) '$(ZLIB_TREE)/minigzip.c'; else $(CYGPATH_W) '$(srcdir)/$(ZLIB_TREE)/minigzip.c'; fi` + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +check-TESTS: $(TESTS) + @failed=0; all=0; xfail=0; xpass=0; skip=0; \ + srcdir=$(srcdir); export srcdir; \ + list=' $(TESTS) '; \ + if test -n "$$list"; then \ + for tst in $$list; do \ + if test -f ./$$tst; then dir=./; \ + elif test -f $$tst; then dir=; \ + else dir="$(srcdir)/"; fi; \ + if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xpass=`expr $$xpass + 1`; \ + failed=`expr $$failed + 1`; \ + echo "XPASS: $$tst"; \ + ;; \ + *) \ + echo "PASS: $$tst"; \ + ;; \ + esac; \ + elif test $$? -ne 77; then \ + all=`expr $$all + 1`; \ + case " $(XFAIL_TESTS) " in \ + *[\ \ ]$$tst[\ \ ]*) \ + xfail=`expr $$xfail + 1`; \ + echo "XFAIL: $$tst"; \ + ;; \ + *) \ + failed=`expr $$failed + 1`; \ + echo "FAIL: $$tst"; \ + ;; \ + esac; \ + else \ + skip=`expr $$skip + 1`; \ + echo "SKIP: $$tst"; \ + fi; \ + done; \ + if test "$$all" -eq 1; then \ + tests="test"; \ + All=""; \ + else \ + tests="tests"; \ + All="All "; \ + fi; \ + if test "$$failed" -eq 0; then \ + if test "$$xfail" -eq 0; then \ + banner="$$All$$all $$tests passed"; \ + else \ + if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ + banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ + fi; \ + else \ + if test "$$xpass" -eq 0; then \ + banner="$$failed of $$all $$tests failed"; \ + else \ + if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ + banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ + fi; \ + fi; \ + dashes="$$banner"; \ + skipped=""; \ + if test "$$skip" -ne 0; then \ + if test "$$skip" -eq 1; then \ + skipped="($$skip test was not run)"; \ + else \ + skipped="($$skip tests were not run)"; \ + fi; \ + test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$skipped"; \ + fi; \ + report=""; \ + if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ + report="Please report to $(PACKAGE_BUGREPORT)"; \ + test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ + dashes="$$report"; \ + fi; \ + dashes=`echo "$$dashes" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + test -z "$$skipped" || echo "$$skipped"; \ + test -z "$$report" || echo "$$report"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + else :; fi + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d $(distdir) || mkdir $(distdir) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r $(distdir) +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && cd $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @cd $(distuninstallcheck_dir) \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) \ + $(dist_check_SCRIPTS) + $(MAKE) $(AM_MAKEFLAGS) check-TESTS +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LIBRARIES) config.h +installdirs: +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am am--refresh check check-TESTS check-am \ + clean clean-checkPROGRAMS clean-generic clean-noinstLIBRARIES \ + ctags dist dist-all dist-bzip2 dist-gzip dist-lzma dist-shar \ + dist-tarZ dist-zip distcheck distclean distclean-compile \ + distclean-generic distclean-hdr distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ + ps ps-am tags uninstall uninstall-am + + +zconf.h: $(ZLIB_TREE)/zconf.in.h Makefile + sed < $< '/HAVE_UNISTD_H/s%^#if [01]%#if $(WITH_UNISTD)%' >$@ +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/Build/source/libs/zlib/README b/Build/source/libs/zlib/README index 758cc50020d..5d017b5518b 100644 --- a/Build/source/libs/zlib/README +++ b/Build/source/libs/zlib/README @@ -1,125 +1,17 @@ -ZLIB DATA COMPRESSION LIBRARY + Building zlib-1.2.3 as part of the TL tree + ========================================== -zlib 1.2.3 is a general purpose data compression library. All the code is -thread safe. The data format used by the zlib library is described by RFCs -(Request for Comments) 1950 to 1952 in the files -http://www.ietf.org/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) -and rfc1952.txt (gzip format). These documents are also available in other -formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html +This directory libs/zlib/ uses a proxy Makefile.am to build the zlib library +'libz' from the unmodified(*) source tree in libs/zlib/zlib-x.y.z/, bypassing +the original build system. -All functions of the compression library are documented in the file zlib.h -(volunteer to write man pages welcome, contact zlib@gzip.org). A usage example -of the library is given in the file example.c which also tests that the library -is working correctly. Another example is given in the file minigzip.c. The -compression library itself is composed of all source files except example.c and -minigzip.c. +As far as applicable, the tests in libs/zlib/zlib-x.y.z/configure have been +translated into equivalent test in libs/zlib/configure.ac. -To compile all files and run the test program, follow the instructions given at -the top of Makefile. In short "make test; make install" should work for most -machines. For Unix: "./configure; make test; make install". For MSDOS, use one -of the special makefiles such as Makefile.msc. For VMS, use make_vms.com. +----------------------------- -Questions about zlib should be sent to , or to Gilles Vollant - for the Windows DLL version. The zlib home page is -http://www.zlib.org or http://www.gzip.org/zlib/ Before reporting a problem, -please check this site to verify that you have the latest version of zlib; -otherwise get the latest version and check whether the problem still exists or -not. +(*) almost unmodified, the file zconf.h has been removed! -PLEASE read the zlib FAQ http://www.gzip.org/zlib/zlib_faq.html before asking -for help. +============================= -Mark Nelson wrote an article about zlib for the Jan. 1997 -issue of Dr. Dobb's Journal; a copy of the article is available in -http://dogma.net/markn/articles/zlibtool/zlibtool.htm - -The changes made in version 1.2.3 are documented in the file ChangeLog. - -Unsupported third party contributions are provided in directory "contrib". - -A Java implementation of zlib is available in the Java Development Kit -http://java.sun.com/j2se/1.4.2/docs/api/java/util/zip/package-summary.html -See the zlib home page http://www.zlib.org for details. - -A Perl interface to zlib written by Paul Marquess is in the -CPAN (Comprehensive Perl Archive Network) sites -http://www.cpan.org/modules/by-module/Compress/ - -A Python interface to zlib written by A.M. Kuchling is -available in Python 1.5 and later versions, see -http://www.python.org/doc/lib/module-zlib.html - -A zlib binding for TCL written by Andreas Kupries is -availlable at http://www.oche.de/~akupries/soft/trf/trf_zip.html - -An experimental package to read and write files in .zip format, written on top -of zlib by Gilles Vollant , is available in the -contrib/minizip directory of zlib. - - -Notes for some targets: - -- For Windows DLL versions, please see win32/DLL_FAQ.txt - -- For 64-bit Irix, deflate.c must be compiled without any optimization. With - -O, one libpng test fails. The test works in 32 bit mode (with the -n32 - compiler flag). The compiler bug has been reported to SGI. - -- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 it works - when compiled with cc. - -- On Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 is - necessary to get gzprintf working correctly. This is done by configure. - -- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works with - other compilers. Use "make test" to check your compiler. - -- gzdopen is not supported on RISCOS, BEOS and by some Mac compilers. - -- For PalmOs, see http://palmzlib.sourceforge.net/ - -- When building a shared, i.e. dynamic library on Mac OS X, the library must be - installed before testing (do "make install" before "make test"), since the - library location is specified in the library. - - -Acknowledgments: - - The deflate format used by zlib was defined by Phil Katz. The deflate - and zlib specifications were written by L. Peter Deutsch. Thanks to all the - people who reported problems and suggested various improvements in zlib; - they are too numerous to cite here. - -Copyright notice: - - (C) 1995-2004 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 - -If you use the zlib library in a product, we would appreciate *not* -receiving lengthy legal documents to sign. The sources are provided -for free but without warranty of any kind. The library has been -entirely written by Jean-loup Gailly and Mark Adler; it does not -include third-party code. - -If you redistribute modified sources, we would appreciate that you include -in the file ChangeLog history information documenting your changes. Please -read the FAQ for more information on the distribution of modified source -versions. +2009-01-28 Peter Breitenlohner diff --git a/Build/source/libs/zlib/configure b/Build/source/libs/zlib/configure index d7ffdc3458d..d77b99cf9b1 100755 --- a/Build/source/libs/zlib/configure +++ b/Build/source/libs/zlib/configure @@ -1,459 +1,6046 @@ -#!/bin/sh -# configure script for zlib. This script is needed only if -# you wish to build a shared library and your system supports them, -# of if you need special compiler, flags or install directory. -# Otherwise, you can just use directly "make test; make install" +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.63 for zlib for TeX Live 1.2.3. # -# To create a shared library, use "configure --shared"; by default a static -# library is created. If the primitive shared library support provided here -# does not work, use ftp://prep.ai.mit.edu/pub/gnu/libtool-*.tar.gz +# Report bugs to . # -# To impose specific compiler or flags or install directory, use for example: -# prefix=$HOME CC=cc CFLAGS="-O4" ./configure -# or for csh/tcsh users: -# (setenv prefix $HOME; setenv CC cc; setenv CFLAGS "-O4"; ./configure) -# LDSHARED is the command to be used to create a shared library - -# Incorrect settings of CC or CFLAGS may prevent creating a shared library. -# If you have problems, try without defining CC and CFLAGS before reporting -# an error. - -LIBS=libz.a -LDFLAGS="-L. ${LIBS}" -VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h` -VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h` -VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < zlib.h` -AR=${AR-"ar rc"} -RANLIB=${RANLIB-"ranlib"} -prefix=${prefix-/usr/local} -exec_prefix=${exec_prefix-'${prefix}'} -libdir=${libdir-'${exec_prefix}/lib'} -includedir=${includedir-'${prefix}/include'} -mandir=${mandir-'${prefix}/share/man'} -shared_ext='.so' -shared=0 -gcc=0 -old_cc="$CC" -old_cflags="$CFLAGS" - -while test $# -ge 1 -do -case "$1" in - -h* | --h*) - echo 'usage:' - echo ' configure [--shared] [--prefix=PREFIX] [--exec_prefix=EXPREFIX]' - echo ' [--libdir=LIBDIR] [--includedir=INCLUDEDIR]' - exit 0;; - -p*=* | --p*=*) prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift;; - -e*=* | --e*=*) exec_prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift;; - -l*=* | --libdir=*) libdir=`echo $1 | sed 's/[-a-z_]*=//'`; shift;; - -i*=* | --includedir=*) includedir=`echo $1 | sed 's/[-a-z_]*=//'`;shift;; - -p* | --p*) prefix="$2"; shift; shift;; - -e* | --e*) exec_prefix="$2"; shift; shift;; - -l* | --l*) libdir="$2"; shift; shift;; - -i* | --i*) includedir="$2"; shift; shift;; - -s* | --s*) shared=1; shift;; - *) echo "unknown option: $1"; echo "$0 --help for help"; exit 1;; +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008 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 more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + + + +# 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 + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset +else + as_unset=false +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +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 +IFS=$as_save_IFS + + ;; +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 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; 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 || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# CDPATH. +$as_unset CDPATH + + +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 ": +(as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=\$LINENO + as_lineno_2=\$LINENO + test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && + test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } +") 2> /dev/null; then + : +else + as_candidate_shells= + 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 +IFS=$as_save_IFS + + + for as_shell in $as_candidate_shells $SHELL; do + # Try only shells that exist, to save several forks. + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { ("$as_shell") 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +_ASEOF +}; then + CONFIG_SHELL=$as_shell + as_have_required=yes + if { "$as_shell" 2> /dev/null <<\_ASEOF +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + +fi + + +: +(as_func_return () { + (exit $1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = "$1" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test $exitcode = 0) || { (exit 1); exit 1; } + +( + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } + +_ASEOF +}; then + break +fi + +fi + + done + + if test "x$CONFIG_SHELL" != x; then + for as_var in BASH_ENV ENV + do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var + done + 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 "as_func_return () { + (exit \$1) +} +as_func_success () { + as_func_return 0 +} +as_func_failure () { + as_func_return 1 +} +as_func_ret_success () { + return 0 +} +as_func_ret_failure () { + return 1 +} + +exitcode=0 +if as_func_success; then + : +else + exitcode=1 + echo as_func_success failed. +fi + +if as_func_failure; then + exitcode=1 + echo as_func_failure succeeded. +fi + +if as_func_ret_success; then + : +else + exitcode=1 + echo as_func_ret_success failed. +fi + +if as_func_ret_failure; then + exitcode=1 + echo as_func_ret_failure succeeded. +fi + +if ( set x; as_func_ret_success y && test x = \"\$1\" ); then + : +else + exitcode=1 + echo positional parameters were not saved. +fi + +test \$exitcode = 0") || { + echo No shell found that supports shell functions. + echo Please tell bug-autoconf@gnu.org about your system, + echo including any error possibly output before this message. + echo This can help us improve future autoconf versions. + echo Configuration will now proceed without shell functions. +} + + + + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "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" || + { $as_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 sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# 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'" + + + +exec 7<&0 &1 + +# 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` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identity of this package. +PACKAGE_NAME='zlib for TeX Live' +PACKAGE_TARNAME='zlib-for-tex-live' +PACKAGE_VERSION='1.2.3' +PACKAGE_STRING='zlib for TeX Live 1.2.3' +PACKAGE_BUGREPORT='tex-k@tug.org' + +ac_unique_file="zlib-1.2.3/zconf.in.h" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='LTLIBOBJS +LIBOBJS +ZLIB_TREE +ZLIB_DEFINES +WITH_UNISTD +EGREP +GREP +CPP +build_FALSE +build_TRUE +RANLIB +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_maintainer_mode +enable_dependency_tracking +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# 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. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +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 + + case $ac_option in + *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -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) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$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 ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$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 ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + 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 ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$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_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 + { (exit 1); exit 1; }; } + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=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 ;; + + -*) { $as_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 && + { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 + { (exit 1); exit 1; }; } + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_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'` + { $as_echo "$as_me: error: missing argument to $ac_option" >&2 + { (exit 1); exit 1; }; } +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 + { (exit 1); exit 1; }; } ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 + { (exit 1); exit 1; }; } +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 + $as_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 + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + { $as_echo "$as_me: error: working directory cannot be determined" >&2 + { (exit 1); exit 1; }; } +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 + { (exit 1); exit 1; }; } + + +# 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 the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + 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 + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 + { (exit 1); exit 1; }; } +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 + { (exit 1); exit 1; }; } + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# 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 zlib for TeX Live 1.2.3 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 \`..'] + +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] + --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] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root + [DATAROOTDIR/doc/zlib-for-tex-live] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of zlib for TeX Live 1.2.3:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested 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 + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +zlib for TeX Live configure 1.2.3 +generated by GNU Autoconf 2.63 + +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 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 +fi +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by zlib for TeX Live $as_me 1.2.3, which was +generated by GNU Autoconf 2.63. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +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` +/usr/bin/hostinfo = `(/usr/bin/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=. + $as_echo "PATH: $as_dir" +done +IFS=$as_save_IFS + +} >&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_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=`$as_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_arg'" + ;; + 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: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +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, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) $as_unset $ac_var ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + cat <<\_ASBOX +## ----------------- ## +## Output variables. ## +## ----------------- ## +_ASBOX + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + cat <<\_ASBOX +## ------------------- ## +## File substitutions. ## +## ------------------- ## +_ASBOX + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + cat <<\_ASBOX +## ----------- ## +## confdefs.h. ## +## ----------- ## +_ASBOX + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + 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 + +# 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 an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + ac_site_file1=$CONFIG_SITE +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test -r "$ac_site_file"; then + { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 +$as_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 + { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 +$as_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 $ac_precious_vars; 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,) + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 +$as_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 + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_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 + { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 +$as_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 + + + + +ac_aux_dir= +for ac_dir in ../../build-aux "$srcdir"/../../build-aux; 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 + { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../build-aux \"$srcdir\"/../../build-aux" >&5 +$as_echo "$as_me: error: cannot find install-sh or install.sh in ../../build-aux \"$srcdir\"/../../build-aux" >&2;} + { (exit 1); exit 1; }; } +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + + +am__api_version='1.10' + +# 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. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$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 + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + +done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +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. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 +$as_echo "$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' + +{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t $srcdir/configure conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&5 +$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken +alias in your environment" >&2;} + { (exit 1); exit 1; }; } + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! +Check your system clock" >&5 +$as_echo "$as_me: error: newly created file is older than distributed files! +Check your system clock" >&2;} + { (exit 1); exit 1; }; } +fi +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done +done +IFS=$as_save_IFS + +fi + + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + test -d ./--version && rmdir ./--version + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # 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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:$LINENO: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 +$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} + { (exit 1); exit 1; }; } + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='zlib-for-tex-live' + VERSION='1.2.3' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"} + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + 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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + +{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + + +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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + 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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + 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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$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" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +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 + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + 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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:$LINENO: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH +See \`config.log' for more details." >&5 +$as_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. +$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +{ (ac_try="$ac_compiler --version >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler --version >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -v >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -v >&5") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } +{ (ac_try="$ac_compiler -V >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compiler -V >&5") 2>&5 + ac_status=$? + $as_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.out.dSYM 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. +{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { (ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi + +{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +if test -z "$ac_file"; then + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables +See \`config.log' for more details." >&5 +$as_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 + +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&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' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_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 + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_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 +$as_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 +{ $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_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 | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details." >&5 +$as_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 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if test "${ac_cv_objext+set}" = set; then + $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile +See \`config.log' for more details." >&5 +$as_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 +{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then + $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_compiler_gnu=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_compiler_gnu=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + CFLAGS="" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + : +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + 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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_g=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$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 +{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=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 +#include +#include +#include +/* 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]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 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 +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_prog_cc_c89=$ac_arg +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + +fi + +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:$LINENO: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:$LINENO: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac + + +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 +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo done +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# We grep out `Entering directory' and `Leaving directory' +# messages which can occur if `w' ends up in MAKEFLAGS. +# In particular we don't look at `^make:' because GNU make might +# be invoked under some other name (usually "gmake"), in which +# case it prints its new name instead of `make'. +if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then + am__include=include + am__quote= + _am_result=GNU +fi +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then + am__include=.include + am__quote="\"" + _am_result=BSD + fi +fi + + +{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + case $depmode in + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + none) break ;; + esac + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. + if depmode=$depmode \ + source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "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 +{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then + $as_echo_n "(cached) " >&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 { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + + +ac_config_headers="$ac_config_headers config.h" + + if test "x$enable_build" != xno; then + build_TRUE= + build_FALSE='#' +else + build_TRUE='#' + build_FALSE= +fi + + +if test "x$GCC" = xyes; then + CFLAGS=${CFLAGS-"-O3"} +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 +{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&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 + $as_echo_n "(cached) " >&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 to if __STDC__ is defined, since + # 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 +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&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 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + $as_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 nonexistent 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 +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&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 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + $as_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 +{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 +$as_echo "$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 to if __STDC__ is defined, since + # 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 +#else +# include +#endif + Syntax error +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&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 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + : +else + $as_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 nonexistent 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 +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&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 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + # Broken: success on invalid input. +continue +else + $as_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 + { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details." >&5 +$as_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 + + +{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if test "${ac_cv_path_GREP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # 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$PATH_SEPARATOR/usr/xpg4/bin +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" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # 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$PATH_SEPARATOR/usr/xpg4/bin +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" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + ac_count=`expr $ac_count + 1` + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done +done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 +$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} + { (exit 1); exit 1; }; } + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then + $as_echo_n "(cached) " >&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 +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_header_stdc=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_header_stdc=no +fi + +rm -f core 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 + +_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 + +_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 +#include +#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)) + return 2; + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + : +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) +ac_cv_header_stdc=no +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + +fi +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +cat >>confdefs.h <<\_ACEOF +#define STDC_HEADERS 1 +_ACEOF + +fi + +if test "x$ac_cv_header_stdc" != xyes; then + { { $as_echo "$as_me:$LINENO: error: Sorry, can't do anything for you" >&5 +$as_echo "$as_me: error: Sorry, can't do anything for you" >&2;} + { (exit 1); exit 1; }; } +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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 +$as_echo_n "checking for $ac_header... " >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + $as_echo_n "(cached) " >&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 { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + eval "$as_ac_Header=yes" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + eval "$as_ac_Header=no" +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +ac_res=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +as_val=`eval 'as_val=${'$as_ac_Header'} + $as_echo "$as_val"'` + if test "x$as_val" = x""yes; then + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +if test "${ac_cv_header_unistd_h+set}" = set; then + { $as_echo "$as_me:$LINENO: checking for unistd.h" >&5 +$as_echo_n "checking for unistd.h... " >&6; } +if test "${ac_cv_header_unistd_h+set}" = set; then + $as_echo_n "(cached) " >&6 +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_unistd_h" >&5 +$as_echo "$ac_cv_header_unistd_h" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking unistd.h usability" >&5 +$as_echo_n "checking unistd.h usability... " >&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 +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking unistd.h presence" >&5 +$as_echo_n "checking unistd.h presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&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 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_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 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: unistd.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: unistd.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: unistd.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: unistd.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: unistd.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: unistd.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: unistd.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: unistd.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: unistd.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: unistd.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: unistd.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: unistd.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: unistd.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: unistd.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: unistd.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: unistd.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to tex-k@tug.org ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for unistd.h" >&5 +$as_echo_n "checking for unistd.h... " >&6; } +if test "${ac_cv_header_unistd_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_header_unistd_h=$ac_header_preproc +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_unistd_h" >&5 +$as_echo "$ac_cv_header_unistd_h" >&6; } + +fi +if test "x$ac_cv_header_unistd_h" = x""yes; then + WITH_UNISTD=1 +else + WITH_UNISTD=0 +fi + + + + +if test "${ac_cv_header_errno_h+set}" = set; then + { $as_echo "$as_me:$LINENO: checking for errno.h" >&5 +$as_echo_n "checking for errno.h... " >&6; } +if test "${ac_cv_header_errno_h+set}" = set; then + $as_echo_n "(cached) " >&6 +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_errno_h" >&5 +$as_echo "$ac_cv_header_errno_h" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:$LINENO: checking errno.h usability" >&5 +$as_echo_n "checking errno.h usability... " >&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 +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:$LINENO: checking errno.h presence" >&5 +$as_echo_n "checking errno.h presence... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&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 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + $as_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 +{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { $as_echo "$as_me:$LINENO: WARNING: errno.h: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: errno.h: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: errno.h: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { $as_echo "$as_me:$LINENO: WARNING: errno.h: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: errno.h: present but cannot be compiled" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: errno.h: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: errno.h: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: errno.h: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: errno.h: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: errno.h: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: errno.h: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: errno.h: proceeding with the preprocessor's result" >&5 +$as_echo "$as_me: WARNING: errno.h: proceeding with the preprocessor's result" >&2;} + { $as_echo "$as_me:$LINENO: WARNING: errno.h: in the future, the compiler will take precedence" >&5 +$as_echo "$as_me: WARNING: errno.h: in the future, the compiler will take precedence" >&2;} + ( cat <<\_ASBOX +## ---------------------------- ## +## Report this to tex-k@tug.org ## +## ---------------------------- ## +_ASBOX + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac +{ $as_echo "$as_me:$LINENO: checking for errno.h" >&5 +$as_echo_n "checking for errno.h... " >&6; } +if test "${ac_cv_header_errno_h+set}" = set; then + $as_echo_n "(cached) " >&6 +else + ac_cv_header_errno_h=$ac_header_preproc +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_errno_h" >&5 +$as_echo "$ac_cv_header_errno_h" >&6; } + +fi +if test "x$ac_cv_header_errno_h" = x""yes; then + ZLIB_DEFINES= +else + ZLIB_DEFINES="-DNO_ERRNO_H" +fi + + + +{ $as_echo "$as_me:$LINENO: checking for mmap support" >&5 +$as_echo_n "checking for mmap support... " >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +#include +#include +caddr_t hello() { + return mmap((caddr_t)0, (off_t)0, PROT_READ, MAP_SHARED, 0, (off_t)0); +} +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + ZLIB_DEFINES="$ZLIB_DEFINES -DUSE_MMAP" +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + +ZLIB_TREE=zlib-1.2.3 + + +if test -f $srcdir/$ZLIB_TREE/zconf.h; then + { { $as_echo "$as_me:$LINENO: error: Sorry, you must remove the file $ZLIB_TREE/zconf.h" >&5 +$as_echo "$as_me: error: Sorry, you must remove the file $ZLIB_TREE/zconf.h" >&2;} + { (exit 1); exit 1; }; } +fi + +ac_config_links="$ac_config_links zlib.h:$ZLIB_TREE/zlib.h" + + +ac_config_files="$ac_config_files Makefile" + + +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, we kill variables containing newlines. +# 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. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) $as_unset $ac_var ;; + esac ;; esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}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 "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + 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" && + { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + 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}' + +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=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" + ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done +LIBOBJS=$ac_libobjs -test=ztest$$ -cat > $test.c </dev/null; then - CC="$cc" - SFLAGS=${CFLAGS-"-fPIC -O3"} - CFLAGS="$cflags" - case `(uname -s || echo unknown) 2>/dev/null` in - Linux | linux | GNU | GNU/*) LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1"};; - CYGWIN* | Cygwin* | cygwin* | OS/2* ) - EXE='.exe';; - QNX*) # This is for QNX6. I suppose that the QNX rule below is for QNX2,QNX4 - # (alain.bonnefoy@icbt.com) - LDSHARED=${LDSHARED-"$cc -shared -Wl,-hlibz.so.1"};; - HP-UX*) - LDSHARED=${LDSHARED-"$cc -shared $SFLAGS"} - case `(uname -m || echo unknown) 2>/dev/null` in - ia64) - shared_ext='.so' - SHAREDLIB='libz.so';; - *) - shared_ext='.sl' - SHAREDLIB='libz.sl';; - esac;; - Darwin*) shared_ext='.dylib' - SHAREDLIB=libz$shared_ext - SHAREDLIBV=libz.$VER$shared_ext - SHAREDLIBM=libz.$VER1$shared_ext - LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER"};; - *) LDSHARED=${LDSHARED-"$cc -shared"};; - esac +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi +if test -z "${build_TRUE}" && test -z "${build_FALSE}"; then + { { $as_echo "$as_me:$LINENO: error: conditional \"build\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +$as_echo "$as_me: error: conditional \"build\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi + +: ${CONFIG_STATUS=./config.status} +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +#! $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 || ac_write_fail=1 +## --------------------- ## +## M4sh Initialization. ## +## --------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST else - # find system name and corresponding cc options - CC=${CC-cc} - case `(uname -sr || echo unknown) 2>/dev/null` in - HP-UX*) SFLAGS=${CFLAGS-"-O +z"} - CFLAGS=${CFLAGS-"-O"} -# LDSHARED=${LDSHARED-"ld -b +vnocompatwarnings"} - LDSHARED=${LDSHARED-"ld -b"} - case `(uname -m || echo unknown) 2>/dev/null` in - ia64) - shared_ext='.so' - SHAREDLIB='libz.so';; - *) - shared_ext='.sl' - SHAREDLIB='libz.sl';; - esac;; - IRIX*) SFLAGS=${CFLAGS-"-ansi -O2 -rpath ."} - CFLAGS=${CFLAGS-"-ansi -O2"} - LDSHARED=${LDSHARED-"cc -shared"};; - OSF1\ V4*) SFLAGS=${CFLAGS-"-O -std1"} - CFLAGS=${CFLAGS-"-O -std1"} - LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,libz.so -Wl,-msym -Wl,-rpath,$(libdir) -Wl,-set_version,${VER}:1.0"};; - OSF1*) SFLAGS=${CFLAGS-"-O -std1"} - CFLAGS=${CFLAGS-"-O -std1"} - LDSHARED=${LDSHARED-"cc -shared"};; - QNX*) SFLAGS=${CFLAGS-"-4 -O"} - CFLAGS=${CFLAGS-"-4 -O"} - LDSHARED=${LDSHARED-"cc"} - RANLIB=${RANLIB-"true"} - AR="cc -A";; - SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "} - CFLAGS=${CFLAGS-"-O3"} - LDSHARED=${LDSHARED-"cc -dy -KPIC -G"};; - SunOS\ 5*) SFLAGS=${CFLAGS-"-fast -xcg89 -KPIC -R."} - CFLAGS=${CFLAGS-"-fast -xcg89"} - LDSHARED=${LDSHARED-"cc -G"};; - SunOS\ 4*) SFLAGS=${CFLAGS-"-O2 -PIC"} - CFLAGS=${CFLAGS-"-O2"} - LDSHARED=${LDSHARED-"ld"};; - SunStudio\ 9*) SFLAGS=${CFLAGS-"-DUSE_MMAP -fast -xcode=pic32 -xtarget=ultra3 -xarch=v9b"} - CFLAGS=${CFLAGS-"-DUSE_MMAP -fast -xtarget=ultra3 -xarch=v9b"} - LDSHARED=${LDSHARED-"cc -xarch=v9b"};; - UNIX_System_V\ 4.2.0) - SFLAGS=${CFLAGS-"-KPIC -O"} - CFLAGS=${CFLAGS-"-O"} - LDSHARED=${LDSHARED-"cc -G"};; - UNIX_SV\ 4.2MP) - SFLAGS=${CFLAGS-"-Kconform_pic -O"} - CFLAGS=${CFLAGS-"-O"} - LDSHARED=${LDSHARED-"cc -G"};; - OpenUNIX\ 5) - SFLAGS=${CFLAGS-"-KPIC -O"} - CFLAGS=${CFLAGS-"-O"} - LDSHARED=${LDSHARED-"cc -G"};; - AIX*) # Courtesy of dbakker@arrayasolutions.com - SFLAGS=${CFLAGS-"-O -qmaxmem=8192"} - CFLAGS=${CFLAGS-"-O -qmaxmem=8192"} - LDSHARED=${LDSHARED-"xlc -G"};; - # send working options for other systems to support@gzip.org - *) SFLAGS=${CFLAGS-"-O"} - CFLAGS=${CFLAGS-"-O"} - LDSHARED=${LDSHARED-"cc -shared"};; - esac + case `(set -o) 2>/dev/null` in + *posix*) set -o posix ;; +esac + fi -SHAREDLIB=${SHAREDLIB-"libz$shared_ext"} -SHAREDLIBV=${SHAREDLIBV-"libz$shared_ext.$VER"} -SHAREDLIBM=${SHAREDLIBM-"libz$shared_ext.$VER1"} - -if test $shared -eq 1; then - echo Checking for shared library support... - # we must test in two steps (cc then ld), required at least on SunOS 4.x - if test "`($CC -c $SFLAGS $test.c) 2>&1`" = "" && - test "`($LDSHARED -o $test$shared_ext $test.o) 2>&1`" = ""; then - CFLAGS="$SFLAGS" - LIBS="$SHAREDLIBV" - echo Building shared library $SHAREDLIBV with $CC. - elif test -z "$old_cc" -a -z "$old_cflags"; then - echo No shared library support. - shared=0; + + + +# 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 + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' else - echo 'No shared library support; try without defining CC and CFLAGS' - shared=0; + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } fi -if test $shared -eq 0; then - LDSHARED="$CC" - echo Building static library $LIBS version $VER with $CC. + +# Support unset when possible. +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + as_unset=unset else - LDFLAGS="-L. ${SHAREDLIBV}" + as_unset=false fi -cat > $test.c < -int main() { return 0; } -EOF -if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then - sed < zconf.in.h "/HAVE_UNISTD_H/s%0%1%" > zconf.h - echo "Checking for unistd.h... Yes." + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +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 +IFS=$as_save_IFS + + ;; +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 + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + { (exit 1); exit 1; } +fi + +# Work around bugs in pre-3.0 UWIN ksh. +for as_var in ENV MAIL MAILPATH +do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# Required to use basename. +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr else - cp -p zconf.in.h zconf.h - echo "Checking for unistd.h... No." + as_expr=false fi -cat > $test.c < -#include -#include "zconf.h" +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi -int main() -{ -#ifndef STDC - choke me -#endif - return 0; -} -EOF +# Name of the executable. +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` -if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then - echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()" +# CDPATH. +$as_unset CDPATH - cat > $test.c < -#include -int mytest(char *fmt, ...) -{ - char buf[20]; - va_list ap; - va_start(ap, fmt); - vsnprintf(buf, sizeof(buf), fmt, ap); - va_end(ap); - return 0; -} + as_lineno_1=$LINENO + as_lineno_2=$LINENO + test "x$as_lineno_1" != "x$as_lineno_2" && + test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { -int main() -{ - return (mytest("Hello%d\n", 1)); + # 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" || + { $as_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 sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit } -EOF - if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then - echo "Checking for vsnprintf() in stdio.h... Yes." - cat >$test.c < -#include +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi -int mytest(char *fmt, ...) -{ - int n; - char buf[20]; - va_list ap; +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in +-n*) + case `echo 'x\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + *) ECHO_C='\c';; + esac;; +*) + ECHO_N='-n';; +esac +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi - va_start(ap, fmt); - n = vsnprintf(buf, sizeof(buf), fmt, ap); - va_end(ap); - return n; -} +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null -int main() -{ - return (mytest("Hello%d\n", 1)); -} -EOF +if mkdir -p . 2>/dev/null; then + as_mkdir_p=: +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi - if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then - echo "Checking for return value of vsnprintf()... Yes." - else - CFLAGS="$CFLAGS -DHAS_vsnprintf_void" - echo "Checking for return value of vsnprintf()... No." - echo " WARNING: apparently vsnprintf() does not return a value. zlib" - echo " can build but will be open to possible string-format security" - echo " vulnerabilities." - fi +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L else - CFLAGS="$CFLAGS -DNO_vsnprintf" - echo "Checking for vsnprintf() in stdio.h... No." - echo " WARNING: vsnprintf() not found, falling back to vsprintf(). zlib" - echo " can build but will be open to possible buffer-overflow security" - echo " vulnerabilities." + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x - cat >$test.c < -#include +# 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'" + + +exec 6>&1 + +# Save the log message, to keep $[0] and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by zlib for TeX Live $as_me 1.2.3, which was +generated by GNU Autoconf 2.63. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_links="$ac_config_links" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files from templates according to the +current configuration. + +Usage: $0 [OPTION]... [FILE]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + -q, --quiet, --silent + 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 + +Configuration links: +$config_links + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_version="\\ +zlib for TeX Live config.status 1.2.3 +configured by $0, generated by GNU Autoconf 2.63, + with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" + +Copyright (C) 2008 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF -int mytest(char *fmt, ...) +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +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 + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + { $as_echo "$as_me: error: ambiguous option: $1 +Try \`$0 --help' for more information." >&2 + { (exit 1); exit 1; }; };; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) { $as_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" + ac_need_defaults=false ;; + + 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 || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log { - int n; - char buf[20]; - va_list ap; + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 - va_start(ap, fmt); - n = vsprintf(buf, fmt, ap); - va_end(ap); - return n; +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "zlib.h") CONFIG_LINKS="$CONFIG_LINKS zlib.h:$ZLIB_TREE/zlib.h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + + *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 +$as_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 + test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap '{ (exit 1); exit 1; }' 1 2 13 15 } +# Create a (secure) tmp directory for tmp files. -int main() { - return (mytest("Hello%d\n", 1)); + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || +{ + $as_echo "$as_me: cannot create a temporary directory in ." >&2 + { (exit 1); exit 1; } } -EOF - if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then - echo "Checking for return value of vsprintf()... Yes." - else - CFLAGS="$CFLAGS -DHAS_vsprintf_void" - echo "Checking for return value of vsprintf()... No." - echo " WARNING: apparently vsprintf() does not return a value. zlib" - echo " can build but will be open to possible string-format security" - echo " vulnerabilities." - fi - fi +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=' ' +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' else - echo "Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()" + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && +_ACEOF - cat >$test.c < -int mytest() { - char buf[20]; + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } +ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } - snprintf(buf, sizeof(buf), "%s", "foo"); - return 0; + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\).*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\).*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" -int main() +} { - return (mytest()); + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line } -EOF - if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then - echo "Checking for snprintf() in stdio.h... Yes." +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 +$as_echo "$as_me: error: could not setup config files machinery" >&2;} + { (exit 1); exit 1; }; } +_ACEOF - cat >$test.c < +# 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 -int mytest() -{ - char buf[20]; +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" - return snprintf(buf, sizeof(buf), "%s", "foo"); -} +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF -int main() -{ - return (mytest()); -} -EOF +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. - if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then - echo "Checking for return value of snprintf()... Yes." - else - CFLAGS="$CFLAGS -DHAS_snprintf_void" - echo "Checking for return value of snprintf()... No." - echo " WARNING: apparently snprintf() does not return a value. zlib" - echo " can build but will be open to possible string-format security" - echo " vulnerabilities." - fi +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5 +$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;} + { (exit 1); exit 1; }; } else - CFLAGS="$CFLAGS -DNO_snprintf" - echo "Checking for snprintf() in stdio.h... No." - echo " WARNING: snprintf() not found, falling back to sprintf(). zlib" - echo " can build but will be open to possible buffer-overflow security" - echo " vulnerabilities." + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done - cat >$test.c < +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. -int mytest() -{ - char buf[20]; +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 - return sprintf(buf, "%s", "foo"); +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" } +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #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. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5 +$as_echo "$as_me: error: could not setup config headers machinery" >&2;} + { (exit 1); exit 1; }; } +fi # test -n "$CONFIG_HEADERS" -int main() -{ - return (mytest()); + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 +$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} + { (exit 1); exit 1; }; };; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 +$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} + { (exit 1); exit 1; }; };; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + ac_file_inputs="$ac_file_inputs '$ac_f'" + done + + # 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. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir="$ac_dir" + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= + +ac_sed_dataroot=' +/datarootdir/ { + p + q } -EOF +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p +' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;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&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } - if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then - echo "Checking for return value of sprintf()... Yes." +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined." >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} else - CFLAGS="$CFLAGS -DHAS_sprintf_void" - echo "Checking for return value of sprintf()... No." - echo " WARNING: apparently sprintf() does not return a value. zlib" - echo " can build but will be open to possible string-format security" - echo " vulnerabilities." + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 +$as_echo "$as_me: error: could not create $ac_file" >&2;} + { (exit 1); exit 1; }; } fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5 +$as_echo "$as_me: error: could not create -" >&2;} + { (exit 1); exit 1; }; } fi -fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + :L) + # + # CONFIG_LINK + # -cat >$test.c < -int main() { return 0; } -EOF -if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then - echo "Checking for errno.h... Yes." -else - echo "Checking for errno.h... No." - CFLAGS="$CFLAGS -DNO_ERRNO_H" -fi + if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then + : + else + # Prefer the file from the source tree if names are identical. + if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then + ac_source=$srcdir/$ac_source + fi -cat > $test.c < -#include -#include -caddr_t hello() { - return mmap((caddr_t)0, (off_t)0, PROT_READ, MAP_SHARED, 0, (off_t)0); -} -EOF -if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then - CFLAGS="$CFLAGS -DUSE_MMAP" - echo Checking for mmap support... Yes. -else - echo Checking for mmap support... No. + { $as_echo "$as_me:$LINENO: linking $ac_source to $ac_file" >&5 +$as_echo "$as_me: linking $ac_source to $ac_file" >&6;} + + if test ! -r "$ac_source"; then + { { $as_echo "$as_me:$LINENO: error: $ac_source: file not found" >&5 +$as_echo "$as_me: error: $ac_source: file not found" >&2;} + { (exit 1); exit 1; }; } + fi + rm -f "$ac_file" + + # Try a relative symlink, then a hard link, then a copy. + case $srcdir in + [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; + *) ac_rel_source=$ac_top_build_prefix$ac_source ;; + esac + ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || + ln "$ac_source" "$ac_file" 2>/dev/null || + cp -p "$ac_source" "$ac_file" || + { { $as_echo "$as_me:$LINENO: error: cannot link or copy $ac_source to $ac_file" >&5 +$as_echo "$as_me: error: cannot link or copy $ac_source to $ac_file" >&2;} + { (exit 1); exit 1; }; } + fi + ;; + :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || # Autoconf 2.62 quotes --file arguments for eval, but not when files +# are listed without --file. Let's play safe and only enable the eval +# if we detect the quoting. +case $CONFIG_FILES in +*\'*) eval set x "$CONFIG_FILES" ;; +*) set x $CONFIG_FILES ;; +esac +shift +for mf +do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { as_dir=$dirpart/$fdir + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 +$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} + { (exit 1); exit 1; }; }; } + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done +done + ;; + + esac +done # for ac_tag + + +{ (exit 0); exit 0; } +_ACEOF +chmod +x $CONFIG_STATUS +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} + { (exit 1); exit 1; }; } + + +# 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 +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi -CPP=${CPP-"$CC -E"} -case $CFLAGS in - *ASMV*) - if test "`nm $test.o | grep _hello`" = ""; then - CPP="$CPP -DNO_UNDERLINE" - echo Checking for underline in external names... No. - else - echo Checking for underline in external names... Yes. - fi;; -esac - -rm -f $test.[co] $test $test$shared_ext - -# udpate Makefile -sed < Makefile.in " -/^CC *=/s#=.*#=$CC# -/^CFLAGS *=/s#=.*#=$CFLAGS# -/^CPP *=/s#=.*#=$CPP# -/^LDSHARED *=/s#=.*#=$LDSHARED# -/^LIBS *=/s#=.*#=$LIBS# -/^SHAREDLIB *=/s#=.*#=$SHAREDLIB# -/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV# -/^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM# -/^AR *=/s#=.*#=$AR# -/^RANLIB *=/s#=.*#=$RANLIB# -/^EXE *=/s#=.*#=$EXE# -/^prefix *=/s#=.*#=$prefix# -/^exec_prefix *=/s#=.*#=$exec_prefix# -/^libdir *=/s#=.*#=$libdir# -/^includedir *=/s#=.*#=$includedir# -/^mandir *=/s#=.*#=$mandir# -/^LDFLAGS *=/s#=.*#=$LDFLAGS# -" > Makefile -- cgit v1.2.3