diff options
-rwxr-xr-x | Master/bin/powerpc-aix/afm2pl | bin | 106990 -> 107038 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/afm2tfm | bin | 117298 -> 117338 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/aleph | bin | 598009 -> 598057 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/bbox | bin | 6731 -> 6731 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/bg5conv | bin | 2003 -> 2003 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/bibtex | bin | 173265 -> 173313 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/bibtex8 | bin | 205665 -> 205713 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/cef5conv | bin | 3107 -> 3107 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/cefconv | bin | 3019 -> 3019 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/cefsconv | bin | 3123 -> 3123 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/cfftot1 | bin | 530989 -> 530989 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/ctangle | bin | 103450 -> 103498 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/ctie | bin | 76126 -> 76174 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/ctxtools | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/cweave | bin | 137298 -> 137346 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/detex | bin | 85218 -> 85266 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/devnag | bin | 31828 -> 31996 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/disdvi | bin | 10243 -> 10243 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dmp | bin | 110392 -> 110440 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dt2dv | bin | 32867 -> 32867 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dv2dt | bin | 11283 -> 11283 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvi2tty | bin | 20259 -> 20259 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvibook | bin | 38322 -> 38322 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dviconcat | bin | 34022 -> 34022 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvicopy | bin | 130926 -> 130974 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvidvi | bin | 17215 -> 17215 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvilj | bin | 111578 -> 111626 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvilj2p | bin | 111954 -> 112002 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvilj4 | bin | 119894 -> 119942 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvilj4l | bin | 119902 -> 119950 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvipdfm | bin | 488717 -> 488765 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvipdfmx | bin | 947838 -> 947886 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvipng | bin | 1127313 -> 1132557 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvipos | bin | 108506 -> 108554 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvips | bin | 252774 -> 252862 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dviselect | bin | 36610 -> 36610 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvitodvi | bin | 42146 -> 42146 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvitomp | bin | 103402 -> 103450 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/dvitype | bin | 104494 -> 104542 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/epsffit | bin | 7074 -> 7074 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/exatools | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/extconv | bin | 2003 -> 2003 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/gftodvi | bin | 110198 -> 110246 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/gftopk | bin | 93774 -> 93822 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/gftype | bin | 91014 -> 91062 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/gsftopk | bin | 89940 -> 89988 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/hbf2gf | bin | 97994 -> 98042 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/info | bin | 219492 -> 219492 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/infokey | bin | 24848 -> 24848 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/install-info | bin | 45802 -> 45802 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/kpseaccess | bin | 3307 -> 3299 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/kpsereadlink | bin | 3131 -> 3123 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/kpsestat | bin | 3803 -> 3803 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/kpsewhich | bin | 81802 -> 81850 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/lacheck | bin | 52391 -> 52391 bytes | |||
l--------- | Master/bin/powerpc-aix/lualatex | 1 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/luatex | bin | 4898019 -> 4898355 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/luatools | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/mag | bin | 19526 -> 19526 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/makeindex | bin | 147822 -> 147870 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/makeinfo | bin | 292195 -> 292195 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/makempx | bin | 75298 -> 75346 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/makempy | 3 | ||||
l--------- | Master/bin/powerpc-aix/metafun | 1 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/mf | bin | 366674 -> 366722 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/mf-nowin | bin | 359817 -> 359865 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/mft | bin | 109746 -> 109794 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/mktexlsr | 65 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/mktextfm | 2 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/mmafm | bin | 547444 -> 547444 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/mmpfb | bin | 564562 -> 564562 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/mpost | bin | 461614 -> 461670 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/mpstools | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/mpto | bin | 9471 -> 9471 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/mptopdf | 3 | ||||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/mtxtools | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/musixflx | bin | 14046 -> 14046 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/newer | bin | 3991 -> 3991 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/odvicopy | bin | 137158 -> 137206 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/odvitype | bin | 105878 -> 105926 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/omega | bin | 609641 -> 609689 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/omfonts | bin | 183694 -> 183742 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/otangle | bin | 57503 -> 57503 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/otfinfo | bin | 618650 -> 618650 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/otftotfm | bin | 1076170 -> 1076218 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/otp2ocp | bin | 89046 -> 89094 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/outocp | bin | 69610 -> 69658 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/patgen | bin | 45435 -> 45435 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/pdfclose | bin | 7269 -> 7269 bytes | |||
l--------- | Master/bin/powerpc-aix/pdflualatex | 1 | ||||
l--------- | Master/bin/powerpc-aix/pdfluatex | 1 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/pdfopen | bin | 8141 -> 8141 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/pdftex | bin | 1685857 -> 1686561 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/pdftools | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/pdftosrc | bin | 537350 -> 537350 bytes | |||
l--------- | Master/bin/powerpc-aix/pdftrimwhite | 1 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/pfb2pfa | bin | 7183 -> 7183 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/pk2bm | bin | 9531 -> 9531 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/pktogf | bin | 91346 -> 91394 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/pktype | bin | 81926 -> 81974 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/pltotf | bin | 64022 -> 64022 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/pooltype | bin | 24175 -> 24175 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/ps2pk | bin | 207734 -> 207782 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/psbook | bin | 11807 -> 11807 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/psnup | bin | 19875 -> 19875 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/psresize | bin | 18179 -> 18179 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/psselect | bin | 13255 -> 13255 bytes | |||
l--------- | Master/bin/powerpc-aix/pst2pdf | 1 | ||||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/pstopdf | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/pstops | bin | 18719 -> 18719 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/rlxtools | 3 | ||||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/runtools | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/sjisconv | bin | 2027 -> 2027 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/synctex | bin | 130302 -> 146450 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t1ascii | bin | 27895 -> 27895 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t1asm | bin | 34643 -> 34643 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t1binary | bin | 27071 -> 27071 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t1disasm | bin | 33047 -> 33047 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t1dotlessj | bin | 540892 -> 540892 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t1lint | bin | 483514 -> 483514 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t1mac | bin | 37859 -> 37859 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t1reencode | bin | 554100 -> 554100 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t1testpage | bin | 511336 -> 511336 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t1unmac | bin | 34763 -> 34763 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/t4ht | bin | 89778 -> 89826 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/tangle | bin | 113402 -> 113450 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/tcdialog | bin | 158480 -> 158480 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/tex | bin | 392145 -> 392193 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/tex2xindy | bin | 17227 -> 17227 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/tex4ht | bin | 157186 -> 157234 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/texexec | 3 | ||||
l--------- | Master/bin/powerpc-aix/texfind | 1 | ||||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/texfont | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/texindex | bin | 16783 -> 16783 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/texlinks | 2 | ||||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/texmfstart | 2502 | ||||
l--------- | Master/bin/powerpc-aix/texshow | 1 | ||||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/textools | 3 | ||||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/texutil | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/tftopl | bin | 101230 -> 101278 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/tie | bin | 8503 -> 8503 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/tmftools | 3 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/ttf2afm | bin | 97358 -> 97398 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/ttf2pk | bin | 286730 -> 286778 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/ttf2tfm | bin | 322854 -> 322902 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/ttftotype42 | bin | 555807 -> 555807 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/vftovp | bin | 115830 -> 115878 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/vlna | bin | 0 -> 12007 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/vptovf | bin | 79254 -> 79254 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/weave | bin | 134458 -> 134506 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/xdvi | 19 | ||||
-rwxr-xr-x | Master/bin/powerpc-aix/xdvi-motif | bin | 0 -> 1029368 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/xdvi-motif.bin | bin | 1005357 -> 0 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/xdvipdfmx | bin | 1667449 -> 1675913 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/xetex | bin | 10100927 -> 10113587 bytes | |||
-rw-r--r-- | Master/bin/powerpc-aix/xindy.mem | bin | 1060919 -> 1060920 bytes | |||
-rwxr-xr-x | Master/bin/powerpc-aix/xindy.run | bin | 2736888 -> 2736888 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/powerpc-aix/xmltools | 3 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/afm2pl | bin | 150140 -> 150096 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/afm2tfm | bin | 157432 -> 157388 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/aleph | bin | 740568 -> 740524 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/bibtex | bin | 259112 -> 259068 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/bibtex8 | bin | 292336 -> 292296 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/cfftot1 | bin | 469036 -> 469060 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/ctangle | bin | 170668 -> 170624 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/ctie | bin | 134020 -> 133976 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/ctxtools | 3 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/cweave | bin | 210728 -> 210684 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/detex | bin | 146088 -> 146048 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/devnag | bin | 33908 -> 34204 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dmp | bin | 149284 -> 149244 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dt2dv | bin | 36016 -> 36016 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvicopy | bin | 211232 -> 211188 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvilj | bin | 177860 -> 177816 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvilj2p | bin | 178240 -> 178196 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvilj4 | bin | 186452 -> 186408 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvilj4l | bin | 186448 -> 186404 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvipdfm | bin | 594696 -> 594656 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvipdfmx | bin | 1100784 -> 1100728 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvipng | bin | 1300896 -> 1302320 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvipos | bin | 172840 -> 172800 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvips | bin | 379468 -> 379456 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvitomp | bin | 176904 -> 176860 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/dvitype | bin | 186304 -> 186260 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/exatools | 3 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/gftodvi | bin | 190716 -> 190672 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/gftopk | bin | 171568 -> 171524 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/gftype | bin | 164580 -> 164536 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/gsftopk | bin | 149568 -> 149524 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/hbf2gf | bin | 160072 -> 160028 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/kpseaccess | bin | 7068 -> 7064 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/kpsereadlink | bin | 6976 -> 6972 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/kpsestat | bin | 7760 -> 7756 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/kpsewhich | bin | 144560 -> 144516 bytes | |||
l--------- | Master/bin/sparc-solaris/lualatex | 1 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/luatex | bin | 5168988 -> 5169092 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/luatools | 3 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/makeindex | bin | 220220 -> 220180 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/makempx | bin | 133808 -> 133768 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/makempy | 3 | ||||
l--------- | Master/bin/sparc-solaris/metafun | 1 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/mf | bin | 465080 -> 465036 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/mf-nowin | bin | 459768 -> 459724 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/mft | bin | 184800 -> 184756 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/mktexlsr | 65 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/mktextfm | 2 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/mpost | bin | 565472 -> 565428 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/mpstools | 3 | ||||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/mptopdf | 3 | ||||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/mtxtools | 3 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/odvicopy | bin | 218264 -> 218220 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/odvitype | bin | 188140 -> 188096 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/omega | bin | 755008 -> 754964 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/omfonts | bin | 280464 -> 280420 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/otangle | bin | 96044 -> 96040 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/otfinfo | bin | 602396 -> 602420 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/otftotfm | bin | 1123984 -> 1123968 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/otp2ocp | bin | 154728 -> 154688 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/outocp | bin | 126464 -> 126424 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/patgen | bin | 81668 -> 81664 bytes | |||
l--------- | Master/bin/sparc-solaris/pdflualatex | 1 | ||||
l--------- | Master/bin/sparc-solaris/pdfluatex | 1 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/pdftex | bin | 1835476 -> 1836732 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/pdftools | 3 | ||||
l--------- | Master/bin/sparc-solaris/pdftrimwhite | 1 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/pktogf | bin | 165928 -> 165884 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/pktype | bin | 152168 -> 152124 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/pltotf | bin | 111800 -> 111796 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/pooltype | bin | 55696 -> 55692 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/ps2pk | bin | 293680 -> 293640 bytes | |||
l--------- | Master/bin/sparc-solaris/pst2pdf | 1 | ||||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/pstopdf | 3 | ||||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/rlxtools | 3 | ||||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/runtools | 3 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/synctex | bin | 149240 -> 153576 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/t4ht | bin | 147836 -> 147796 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/tangle | bin | 190784 -> 190740 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/tex | bin | 490484 -> 490440 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/tex4ht | bin | 226500 -> 226460 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/texexec | 3 | ||||
l--------- | Master/bin/sparc-solaris/texfind | 1 | ||||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/texfont | 3 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/texlinks | 2 | ||||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/texmfstart | 2502 | ||||
l--------- | Master/bin/sparc-solaris/texshow | 1 | ||||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/textools | 3 | ||||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/texutil | 3 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/tftopl | bin | 176388 -> 176344 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/tie | bin | 14516 -> 14516 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/tmftools | 3 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/ttf2afm | bin | 163956 -> 164028 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/ttf2pk | bin | 335612 -> 335568 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/ttf2tfm | bin | 352368 -> 352324 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/ttftotype42 | bin | 390592 -> 390616 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/vftovp | bin | 197500 -> 197456 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/vlna | bin | 0 -> 16144 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/vptovf | bin | 132840 -> 132836 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/weave | bin | 214124 -> 214080 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/xdvi | 19 | ||||
-rwxr-xr-x | Master/bin/sparc-solaris/xdvi-motif | bin | 0 -> 1278140 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/xdvi-motif.bin | bin | 1248608 -> 0 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/xdvipdfmx | bin | 1732944 -> 1737204 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/xetex | bin | 9787808 -> 9799664 bytes | |||
-rw-r--r-- | Master/bin/sparc-solaris/xindy.mem | bin | 949634 -> 1009109 bytes | |||
-rwxr-xr-x | Master/bin/sparc-solaris/xindy.run | bin | 1756464 -> 1877320 bytes | |||
l---------[-rwxr-xr-x] | Master/bin/sparc-solaris/xmltools | 3 |
266 files changed, 174 insertions, 5124 deletions
diff --git a/Master/bin/powerpc-aix/afm2pl b/Master/bin/powerpc-aix/afm2pl Binary files differindex 609d83491e6..46793c75595 100755 --- a/Master/bin/powerpc-aix/afm2pl +++ b/Master/bin/powerpc-aix/afm2pl diff --git a/Master/bin/powerpc-aix/afm2tfm b/Master/bin/powerpc-aix/afm2tfm Binary files differindex a09983fd8ec..80793ffbc2e 100755 --- a/Master/bin/powerpc-aix/afm2tfm +++ b/Master/bin/powerpc-aix/afm2tfm diff --git a/Master/bin/powerpc-aix/aleph b/Master/bin/powerpc-aix/aleph Binary files differindex 892ec746d5e..ebfebe80e47 100755 --- a/Master/bin/powerpc-aix/aleph +++ b/Master/bin/powerpc-aix/aleph diff --git a/Master/bin/powerpc-aix/bbox b/Master/bin/powerpc-aix/bbox Binary files differindex 2af5b497ef6..7657bec8459 100755 --- a/Master/bin/powerpc-aix/bbox +++ b/Master/bin/powerpc-aix/bbox diff --git a/Master/bin/powerpc-aix/bg5conv b/Master/bin/powerpc-aix/bg5conv Binary files differindex 320c20495a9..373ec7e9d45 100755 --- a/Master/bin/powerpc-aix/bg5conv +++ b/Master/bin/powerpc-aix/bg5conv diff --git a/Master/bin/powerpc-aix/bibtex b/Master/bin/powerpc-aix/bibtex Binary files differindex e2b52b5dcfc..8bff8e25229 100755 --- a/Master/bin/powerpc-aix/bibtex +++ b/Master/bin/powerpc-aix/bibtex diff --git a/Master/bin/powerpc-aix/bibtex8 b/Master/bin/powerpc-aix/bibtex8 Binary files differindex 9180619590a..a9aad0b31d2 100755 --- a/Master/bin/powerpc-aix/bibtex8 +++ b/Master/bin/powerpc-aix/bibtex8 diff --git a/Master/bin/powerpc-aix/cef5conv b/Master/bin/powerpc-aix/cef5conv Binary files differindex 1ddf1f90459..a8f47d16968 100755 --- a/Master/bin/powerpc-aix/cef5conv +++ b/Master/bin/powerpc-aix/cef5conv diff --git a/Master/bin/powerpc-aix/cefconv b/Master/bin/powerpc-aix/cefconv Binary files differindex a1650d8ddbb..1677566aa85 100755 --- a/Master/bin/powerpc-aix/cefconv +++ b/Master/bin/powerpc-aix/cefconv diff --git a/Master/bin/powerpc-aix/cefsconv b/Master/bin/powerpc-aix/cefsconv Binary files differindex 320949c33fe..7cc2921fa3d 100755 --- a/Master/bin/powerpc-aix/cefsconv +++ b/Master/bin/powerpc-aix/cefsconv diff --git a/Master/bin/powerpc-aix/cfftot1 b/Master/bin/powerpc-aix/cfftot1 Binary files differindex c469b109bfc..08cf44cb4c4 100755 --- a/Master/bin/powerpc-aix/cfftot1 +++ b/Master/bin/powerpc-aix/cfftot1 diff --git a/Master/bin/powerpc-aix/ctangle b/Master/bin/powerpc-aix/ctangle Binary files differindex f60a23c550f..c00f1617188 100755 --- a/Master/bin/powerpc-aix/ctangle +++ b/Master/bin/powerpc-aix/ctangle diff --git a/Master/bin/powerpc-aix/ctie b/Master/bin/powerpc-aix/ctie Binary files differindex 486b28702b2..afafa7fc19f 100755 --- a/Master/bin/powerpc-aix/ctie +++ b/Master/bin/powerpc-aix/ctie diff --git a/Master/bin/powerpc-aix/ctxtools b/Master/bin/powerpc-aix/ctxtools index 84e47bbee3c..66237b28340 100755..120000 --- a/Master/bin/powerpc-aix/ctxtools +++ b/Master/bin/powerpc-aix/ctxtools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart ctxtools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/ctxtools
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/cweave b/Master/bin/powerpc-aix/cweave Binary files differindex b93bde5c451..c6a42cc5874 100755 --- a/Master/bin/powerpc-aix/cweave +++ b/Master/bin/powerpc-aix/cweave diff --git a/Master/bin/powerpc-aix/detex b/Master/bin/powerpc-aix/detex Binary files differindex d7013c882a5..e32b8d3f6e2 100755 --- a/Master/bin/powerpc-aix/detex +++ b/Master/bin/powerpc-aix/detex diff --git a/Master/bin/powerpc-aix/devnag b/Master/bin/powerpc-aix/devnag Binary files differindex b601a791829..4a66324587f 100755 --- a/Master/bin/powerpc-aix/devnag +++ b/Master/bin/powerpc-aix/devnag diff --git a/Master/bin/powerpc-aix/disdvi b/Master/bin/powerpc-aix/disdvi Binary files differindex 79edbf6dc24..e40e467e288 100755 --- a/Master/bin/powerpc-aix/disdvi +++ b/Master/bin/powerpc-aix/disdvi diff --git a/Master/bin/powerpc-aix/dmp b/Master/bin/powerpc-aix/dmp Binary files differindex a602f23eb71..3b2c82d2231 100755 --- a/Master/bin/powerpc-aix/dmp +++ b/Master/bin/powerpc-aix/dmp diff --git a/Master/bin/powerpc-aix/dt2dv b/Master/bin/powerpc-aix/dt2dv Binary files differindex dbb56ff046b..06208f2687c 100755 --- a/Master/bin/powerpc-aix/dt2dv +++ b/Master/bin/powerpc-aix/dt2dv diff --git a/Master/bin/powerpc-aix/dv2dt b/Master/bin/powerpc-aix/dv2dt Binary files differindex 43a369cd127..356d71b99ed 100755 --- a/Master/bin/powerpc-aix/dv2dt +++ b/Master/bin/powerpc-aix/dv2dt diff --git a/Master/bin/powerpc-aix/dvi2tty b/Master/bin/powerpc-aix/dvi2tty Binary files differindex 894ccac277d..572c976c2cd 100755 --- a/Master/bin/powerpc-aix/dvi2tty +++ b/Master/bin/powerpc-aix/dvi2tty diff --git a/Master/bin/powerpc-aix/dvibook b/Master/bin/powerpc-aix/dvibook Binary files differindex 0bf9af397ed..38b9fb1b28d 100755 --- a/Master/bin/powerpc-aix/dvibook +++ b/Master/bin/powerpc-aix/dvibook diff --git a/Master/bin/powerpc-aix/dviconcat b/Master/bin/powerpc-aix/dviconcat Binary files differindex 11442e2644e..b99f72b4cac 100755 --- a/Master/bin/powerpc-aix/dviconcat +++ b/Master/bin/powerpc-aix/dviconcat diff --git a/Master/bin/powerpc-aix/dvicopy b/Master/bin/powerpc-aix/dvicopy Binary files differindex 0c4960b0ce7..0fc93bf1dbf 100755 --- a/Master/bin/powerpc-aix/dvicopy +++ b/Master/bin/powerpc-aix/dvicopy diff --git a/Master/bin/powerpc-aix/dvidvi b/Master/bin/powerpc-aix/dvidvi Binary files differindex 835de6b7a22..ad415dee81d 100755 --- a/Master/bin/powerpc-aix/dvidvi +++ b/Master/bin/powerpc-aix/dvidvi diff --git a/Master/bin/powerpc-aix/dvilj b/Master/bin/powerpc-aix/dvilj Binary files differindex b59e17f9c0b..0bfc4140858 100755 --- a/Master/bin/powerpc-aix/dvilj +++ b/Master/bin/powerpc-aix/dvilj diff --git a/Master/bin/powerpc-aix/dvilj2p b/Master/bin/powerpc-aix/dvilj2p Binary files differindex e0fcbd09cd7..343da304403 100755 --- a/Master/bin/powerpc-aix/dvilj2p +++ b/Master/bin/powerpc-aix/dvilj2p diff --git a/Master/bin/powerpc-aix/dvilj4 b/Master/bin/powerpc-aix/dvilj4 Binary files differindex 21826cdffc2..703d2ea6a1b 100755 --- a/Master/bin/powerpc-aix/dvilj4 +++ b/Master/bin/powerpc-aix/dvilj4 diff --git a/Master/bin/powerpc-aix/dvilj4l b/Master/bin/powerpc-aix/dvilj4l Binary files differindex 699561c732b..a4c5585127a 100755 --- a/Master/bin/powerpc-aix/dvilj4l +++ b/Master/bin/powerpc-aix/dvilj4l diff --git a/Master/bin/powerpc-aix/dvipdfm b/Master/bin/powerpc-aix/dvipdfm Binary files differindex c21e4026628..72257a61802 100755 --- a/Master/bin/powerpc-aix/dvipdfm +++ b/Master/bin/powerpc-aix/dvipdfm diff --git a/Master/bin/powerpc-aix/dvipdfmx b/Master/bin/powerpc-aix/dvipdfmx Binary files differindex 0efaa29e0be..77ffb44612f 100755 --- a/Master/bin/powerpc-aix/dvipdfmx +++ b/Master/bin/powerpc-aix/dvipdfmx diff --git a/Master/bin/powerpc-aix/dvipng b/Master/bin/powerpc-aix/dvipng Binary files differindex 430136af0c7..ea4094b8738 100755 --- a/Master/bin/powerpc-aix/dvipng +++ b/Master/bin/powerpc-aix/dvipng diff --git a/Master/bin/powerpc-aix/dvipos b/Master/bin/powerpc-aix/dvipos Binary files differindex b033dd9dd26..8c364665894 100755 --- a/Master/bin/powerpc-aix/dvipos +++ b/Master/bin/powerpc-aix/dvipos diff --git a/Master/bin/powerpc-aix/dvips b/Master/bin/powerpc-aix/dvips Binary files differindex e7cff6cb16a..a594e9b6769 100755 --- a/Master/bin/powerpc-aix/dvips +++ b/Master/bin/powerpc-aix/dvips diff --git a/Master/bin/powerpc-aix/dviselect b/Master/bin/powerpc-aix/dviselect Binary files differindex bbf080f39a7..9fe205dfd3e 100755 --- a/Master/bin/powerpc-aix/dviselect +++ b/Master/bin/powerpc-aix/dviselect diff --git a/Master/bin/powerpc-aix/dvitodvi b/Master/bin/powerpc-aix/dvitodvi Binary files differindex db5ee6de8b9..d525f2fe10e 100755 --- a/Master/bin/powerpc-aix/dvitodvi +++ b/Master/bin/powerpc-aix/dvitodvi diff --git a/Master/bin/powerpc-aix/dvitomp b/Master/bin/powerpc-aix/dvitomp Binary files differindex a1024c1a86f..672790c64af 100755 --- a/Master/bin/powerpc-aix/dvitomp +++ b/Master/bin/powerpc-aix/dvitomp diff --git a/Master/bin/powerpc-aix/dvitype b/Master/bin/powerpc-aix/dvitype Binary files differindex 3a8f3edf802..a75ded2c758 100755 --- a/Master/bin/powerpc-aix/dvitype +++ b/Master/bin/powerpc-aix/dvitype diff --git a/Master/bin/powerpc-aix/epsffit b/Master/bin/powerpc-aix/epsffit Binary files differindex a24a024e978..63173d5a477 100755 --- a/Master/bin/powerpc-aix/epsffit +++ b/Master/bin/powerpc-aix/epsffit diff --git a/Master/bin/powerpc-aix/exatools b/Master/bin/powerpc-aix/exatools index 50ff0f07e46..304ccdc7e15 100755..120000 --- a/Master/bin/powerpc-aix/exatools +++ b/Master/bin/powerpc-aix/exatools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart exatools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/exatools
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/extconv b/Master/bin/powerpc-aix/extconv Binary files differindex 4c51646118b..0e23259bd36 100755 --- a/Master/bin/powerpc-aix/extconv +++ b/Master/bin/powerpc-aix/extconv diff --git a/Master/bin/powerpc-aix/gftodvi b/Master/bin/powerpc-aix/gftodvi Binary files differindex e230083d3eb..06a4eaa7ff0 100755 --- a/Master/bin/powerpc-aix/gftodvi +++ b/Master/bin/powerpc-aix/gftodvi diff --git a/Master/bin/powerpc-aix/gftopk b/Master/bin/powerpc-aix/gftopk Binary files differindex 0eac8162be7..548a1cd9f8d 100755 --- a/Master/bin/powerpc-aix/gftopk +++ b/Master/bin/powerpc-aix/gftopk diff --git a/Master/bin/powerpc-aix/gftype b/Master/bin/powerpc-aix/gftype Binary files differindex 3ff843b7e10..c4f54120267 100755 --- a/Master/bin/powerpc-aix/gftype +++ b/Master/bin/powerpc-aix/gftype diff --git a/Master/bin/powerpc-aix/gsftopk b/Master/bin/powerpc-aix/gsftopk Binary files differindex 55a9bca42d6..8f8994564de 100755 --- a/Master/bin/powerpc-aix/gsftopk +++ b/Master/bin/powerpc-aix/gsftopk diff --git a/Master/bin/powerpc-aix/hbf2gf b/Master/bin/powerpc-aix/hbf2gf Binary files differindex f15f514eb3a..b24dee795bb 100755 --- a/Master/bin/powerpc-aix/hbf2gf +++ b/Master/bin/powerpc-aix/hbf2gf diff --git a/Master/bin/powerpc-aix/info b/Master/bin/powerpc-aix/info Binary files differindex 8626f3b8da1..e236f0b4525 100755 --- a/Master/bin/powerpc-aix/info +++ b/Master/bin/powerpc-aix/info diff --git a/Master/bin/powerpc-aix/infokey b/Master/bin/powerpc-aix/infokey Binary files differindex 0ae6fe556f0..7e98a4f92f5 100755 --- a/Master/bin/powerpc-aix/infokey +++ b/Master/bin/powerpc-aix/infokey diff --git a/Master/bin/powerpc-aix/install-info b/Master/bin/powerpc-aix/install-info Binary files differindex 7a53928a621..1051957eaec 100755 --- a/Master/bin/powerpc-aix/install-info +++ b/Master/bin/powerpc-aix/install-info diff --git a/Master/bin/powerpc-aix/kpseaccess b/Master/bin/powerpc-aix/kpseaccess Binary files differindex 5191addfd1d..ef6763aacd3 100755 --- a/Master/bin/powerpc-aix/kpseaccess +++ b/Master/bin/powerpc-aix/kpseaccess diff --git a/Master/bin/powerpc-aix/kpsereadlink b/Master/bin/powerpc-aix/kpsereadlink Binary files differindex 15deb10f4a2..0accdc63112 100755 --- a/Master/bin/powerpc-aix/kpsereadlink +++ b/Master/bin/powerpc-aix/kpsereadlink diff --git a/Master/bin/powerpc-aix/kpsestat b/Master/bin/powerpc-aix/kpsestat Binary files differindex 17c6ea42c76..64e81830503 100755 --- a/Master/bin/powerpc-aix/kpsestat +++ b/Master/bin/powerpc-aix/kpsestat diff --git a/Master/bin/powerpc-aix/kpsewhich b/Master/bin/powerpc-aix/kpsewhich Binary files differindex 24b85d1a00e..5f5092f9c62 100755 --- a/Master/bin/powerpc-aix/kpsewhich +++ b/Master/bin/powerpc-aix/kpsewhich diff --git a/Master/bin/powerpc-aix/lacheck b/Master/bin/powerpc-aix/lacheck Binary files differindex 33e60dbde8c..37c68cec10b 100755 --- a/Master/bin/powerpc-aix/lacheck +++ b/Master/bin/powerpc-aix/lacheck diff --git a/Master/bin/powerpc-aix/lualatex b/Master/bin/powerpc-aix/lualatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/powerpc-aix/lualatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/luatex b/Master/bin/powerpc-aix/luatex Binary files differindex 1b99b22814c..81dc4277790 100755 --- a/Master/bin/powerpc-aix/luatex +++ b/Master/bin/powerpc-aix/luatex diff --git a/Master/bin/powerpc-aix/luatools b/Master/bin/powerpc-aix/luatools index cb3ec1add4a..8fd68d0935a 100755..120000 --- a/Master/bin/powerpc-aix/luatools +++ b/Master/bin/powerpc-aix/luatools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart luatools.lua "$@" +../../texmf-dist/scripts/context/stubs/unix/luatools
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/mag b/Master/bin/powerpc-aix/mag Binary files differindex feb24be02d2..878d266f3a0 100755 --- a/Master/bin/powerpc-aix/mag +++ b/Master/bin/powerpc-aix/mag diff --git a/Master/bin/powerpc-aix/makeindex b/Master/bin/powerpc-aix/makeindex Binary files differindex ec173752097..f273e3cfdbf 100755 --- a/Master/bin/powerpc-aix/makeindex +++ b/Master/bin/powerpc-aix/makeindex diff --git a/Master/bin/powerpc-aix/makeinfo b/Master/bin/powerpc-aix/makeinfo Binary files differindex ebdf33dd002..f78723e6fc0 100755 --- a/Master/bin/powerpc-aix/makeinfo +++ b/Master/bin/powerpc-aix/makeinfo diff --git a/Master/bin/powerpc-aix/makempx b/Master/bin/powerpc-aix/makempx Binary files differindex 61ca2aa6a3d..e2f8537e21d 100755 --- a/Master/bin/powerpc-aix/makempx +++ b/Master/bin/powerpc-aix/makempx diff --git a/Master/bin/powerpc-aix/makempy b/Master/bin/powerpc-aix/makempy index 4bf7a1af230..a3df543b304 100755..120000 --- a/Master/bin/powerpc-aix/makempy +++ b/Master/bin/powerpc-aix/makempy @@ -1,2 +1 @@ -#!/bin/sh -texmfstart makempy.pl "$@" +../../texmf-dist/scripts/context/stubs/unix/makempy
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/metafun b/Master/bin/powerpc-aix/metafun new file mode 120000 index 00000000000..96672bbb523 --- /dev/null +++ b/Master/bin/powerpc-aix/metafun @@ -0,0 +1 @@ +mpost
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/mf b/Master/bin/powerpc-aix/mf Binary files differindex 6563f9042b4..374c7e07c9e 100755 --- a/Master/bin/powerpc-aix/mf +++ b/Master/bin/powerpc-aix/mf diff --git a/Master/bin/powerpc-aix/mf-nowin b/Master/bin/powerpc-aix/mf-nowin Binary files differindex d6e8f54f663..9a40b8cd187 100755 --- a/Master/bin/powerpc-aix/mf-nowin +++ b/Master/bin/powerpc-aix/mf-nowin diff --git a/Master/bin/powerpc-aix/mft b/Master/bin/powerpc-aix/mft Binary files differindex 5a305d41663..47b3c3f8837 100755 --- a/Master/bin/powerpc-aix/mft +++ b/Master/bin/powerpc-aix/mft diff --git a/Master/bin/powerpc-aix/mktexlsr b/Master/bin/powerpc-aix/mktexlsr index bd9b56b1906..2c4ac96f3dd 100755 --- a/Master/bin/powerpc-aix/mktexlsr +++ b/Master/bin/powerpc-aix/mktexlsr @@ -5,26 +5,32 @@ # installation won't write this script over yours.) # # Suitable for calling from cron, as in: -# 0 * * * * cd /your/texmf/root && /usr/local/bin/mktexlsr -# unless the scripts live in a different directory than the 'kpseaccess', -# 'kpsestat', 'kpsereadlink', and 'kpsewhich' binaries. +# 0 * * * * cd /your/texmf/root && /usr/local/texlive/bin/mktexlsr # # Originally written as `texhash' by Thomas Esser # <te@dbs.uni-hannover.de>, Okt., 1994. # Public domain. -version='$Id: mktexlsr 8399 2008-05-28 22:19:34Z karl $' +version='$Id: mktexlsr 9164 2008-07-02 17:42:11Z karl $' progname=`echo $0 | sed 's%.*/%%'` usage="Usage: $progname [DIR]... -The only options are --help, --version, --verbose, --quiet, and --silent. +Rebuild ls-R filename databases. If one or more arguments DIRS are +given, these are used as the directories in which to build ls-R. Else +all directories in the search path for ls-R files (\$TEXMFDBS) are used. + +Options: + --dry-run do not actually update anything + --help display this help and exit + --quiet cancel --verbose + --silent same as --quiet + --verbose explain what is being done + --version output version information and exit + If standard input is a terminal, --verbose is on by default. ---quiet and --silent are synonyms, and cancel --verbose. -Rebuild all necessary ls-R filename databases completely. If one or -more arguments DIRS are given, these are used as texmf directories to -build ls-R for. Else all directories in the search path for ls-R files -(\$TEXMFDBS) are used." +Report bugs to tex-k@tug.org. +" # MS-DOS and MS-Windows define $COMSPEC or $ComSpec and use `;' to separate # directories in path lists whereas Unix uses `:'. Make an exception for @@ -53,6 +59,8 @@ case $dirname in esac if tty -s; then verbose=true; else verbose=false; fi +dry_run=false +trees= # A copy of some stuff from mktex.opt, so we can run in the presence of # terminally damaged ls-R files. @@ -66,9 +74,19 @@ while test $# -gt 0; do exit 0 elif test "x$1" = x--verbose || test "x$1" = x-verbose; then verbose=true + elif test "x$1" = x--dry-run || test "x$1" = x-n; then + dry_run=true elif test "x$1" = x--quiet || test "x$1" = x--silent \ || test "x$1" = x-quiet || test "x$1" = x-silent ; then verbose=false + elif test "x$1" = x--; then + : + elif echo "x$1" | grep '^x-' >/dev/null; then + echo "$progname: unknown option $1, try --help if you need it." >&2 + exit 1 + else + test -d "$1" || echo "$progname: $1 not a directory." >&2 + trees="$trees $1" # don't want to update system dirs fi shift done @@ -79,16 +97,21 @@ ls_R_magic='% ls-R -- filename database for kpathsea; do not change this line.' # The old string, which should continue to work. old_ls_R_magic='% ls-R -- maintained by MakeTeXls-R; do not change this line.' -trap 'cd / ; test -z "$db_dir_tmp" || rm -rf "$db_dir_tmp"; exit' 0 1 2 3 7 13 15 +trap 'cd /; test -z "$db_dir_tmp" || rm -rf "$db_dir_tmp"; exit' 0 1 2 3 7 13 15 # Get list of directories from $TEXMFDBS; eliminate duplicates. -test $# = 0 && { - OIFS=$IFS - IFS=' +{ + if test -n "$trees"; then + set x $trees + else + OIFS=$IFS # want just a newline + IFS=' ' - set x `kpsewhich --show-path=ls-R | tr : ' -' | sort | uniq`; shift - IFS=$OIFS + set x `kpsewhich --show-path=ls-R | tr : ' +' | sort | uniq` + IFS=$OIFS + fi + shift } for TEXMFLS_R in "$@"; do @@ -98,8 +121,8 @@ for TEXMFLS_R in "$@"; do /* | [A-z]:/*) ;; *) TEXMFLS_R="`pwd`/$TEXMFLS_R" esac - # Allow for ls-R and ls-r to exist. But create ls-R if we're working - # from scratch. + # Allow for either ls-R and ls-r to exist. But create ls-R if we're + # working from scratch. if test -f "$TEXMFLS_R/ls-R"; then db_file="$TEXMFLS_R/ls-R" elif test -f "$TEXMFLS_R/ls-r"; then @@ -117,6 +140,8 @@ for TEXMFLS_R in "$@"; do esac db_dir=`echo "$db_file" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname + # want to be silent if the directory doesn't exist, since the ls-R + # path ordinarily contains many nonexistent directories. test -d "$db_dir" || continue test -w "$db_dir" || { echo "$progname: $db_dir: directory not writable. Skipping..." >&2; continue; } @@ -141,6 +166,8 @@ for TEXMFLS_R in "$@"; do rm -f "$db_file_tmp" $verbose && echo "$progname: Updating $db_file... " >&2 + $dry_run && continue + echo "$ls_R_magic" >"$db_file_tmp" # The main task. We put ./: in the output, so top-level files can be diff --git a/Master/bin/powerpc-aix/mktextfm b/Master/bin/powerpc-aix/mktextfm index a423d0309b0..8884351d7a1 100755 --- a/Master/bin/powerpc-aix/mktextfm +++ b/Master/bin/powerpc-aix/mktextfm @@ -48,7 +48,7 @@ esac ( NAME=`basename "$1" .tfm` -MAG=1 +MAG=0 #DEST="$2" DPI=$BDPI diff --git a/Master/bin/powerpc-aix/mmafm b/Master/bin/powerpc-aix/mmafm Binary files differindex 4b1f9227a19..9bea77f7d13 100755 --- a/Master/bin/powerpc-aix/mmafm +++ b/Master/bin/powerpc-aix/mmafm diff --git a/Master/bin/powerpc-aix/mmpfb b/Master/bin/powerpc-aix/mmpfb Binary files differindex 2b298ce062c..360ce084852 100755 --- a/Master/bin/powerpc-aix/mmpfb +++ b/Master/bin/powerpc-aix/mmpfb diff --git a/Master/bin/powerpc-aix/mpost b/Master/bin/powerpc-aix/mpost Binary files differindex f7fcb31cbab..71ab87204a8 100755 --- a/Master/bin/powerpc-aix/mpost +++ b/Master/bin/powerpc-aix/mpost diff --git a/Master/bin/powerpc-aix/mpstools b/Master/bin/powerpc-aix/mpstools index b4c8f634548..caf4ae949f7 100755..120000 --- a/Master/bin/powerpc-aix/mpstools +++ b/Master/bin/powerpc-aix/mpstools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart mpstools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/mpstools
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/mpto b/Master/bin/powerpc-aix/mpto Binary files differindex d06f7ab7a3c..aa3dd0f541f 100755 --- a/Master/bin/powerpc-aix/mpto +++ b/Master/bin/powerpc-aix/mpto diff --git a/Master/bin/powerpc-aix/mptopdf b/Master/bin/powerpc-aix/mptopdf index 980a3123d1a..83172e791cd 100755..120000 --- a/Master/bin/powerpc-aix/mptopdf +++ b/Master/bin/powerpc-aix/mptopdf @@ -1,2 +1 @@ -#!/bin/sh -texmfstart mptopdf.pl "$@" +../../texmf-dist/scripts/context/stubs/unix/mptopdf
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/mtxtools b/Master/bin/powerpc-aix/mtxtools index 2922e0b4674..d99a8081bb9 100755..120000 --- a/Master/bin/powerpc-aix/mtxtools +++ b/Master/bin/powerpc-aix/mtxtools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart mtxtools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/mtxtools
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/musixflx b/Master/bin/powerpc-aix/musixflx Binary files differindex 49dbcf0be42..83c542c85d6 100755 --- a/Master/bin/powerpc-aix/musixflx +++ b/Master/bin/powerpc-aix/musixflx diff --git a/Master/bin/powerpc-aix/newer b/Master/bin/powerpc-aix/newer Binary files differindex 84e27495bb1..077eb8b8a98 100755 --- a/Master/bin/powerpc-aix/newer +++ b/Master/bin/powerpc-aix/newer diff --git a/Master/bin/powerpc-aix/odvicopy b/Master/bin/powerpc-aix/odvicopy Binary files differindex 598ce56f477..39feb798aa8 100755 --- a/Master/bin/powerpc-aix/odvicopy +++ b/Master/bin/powerpc-aix/odvicopy diff --git a/Master/bin/powerpc-aix/odvitype b/Master/bin/powerpc-aix/odvitype Binary files differindex 63bcb081746..429fc99262c 100755 --- a/Master/bin/powerpc-aix/odvitype +++ b/Master/bin/powerpc-aix/odvitype diff --git a/Master/bin/powerpc-aix/omega b/Master/bin/powerpc-aix/omega Binary files differindex afe2617cf93..25cd43ec22e 100755 --- a/Master/bin/powerpc-aix/omega +++ b/Master/bin/powerpc-aix/omega diff --git a/Master/bin/powerpc-aix/omfonts b/Master/bin/powerpc-aix/omfonts Binary files differindex e7159a33eaf..3de46a98a07 100755 --- a/Master/bin/powerpc-aix/omfonts +++ b/Master/bin/powerpc-aix/omfonts diff --git a/Master/bin/powerpc-aix/otangle b/Master/bin/powerpc-aix/otangle Binary files differindex 53803e9ea28..05a8f281264 100755 --- a/Master/bin/powerpc-aix/otangle +++ b/Master/bin/powerpc-aix/otangle diff --git a/Master/bin/powerpc-aix/otfinfo b/Master/bin/powerpc-aix/otfinfo Binary files differindex 701c83efbc5..14d75ac5a17 100755 --- a/Master/bin/powerpc-aix/otfinfo +++ b/Master/bin/powerpc-aix/otfinfo diff --git a/Master/bin/powerpc-aix/otftotfm b/Master/bin/powerpc-aix/otftotfm Binary files differindex dbe2f90a238..7de6426e5d5 100755 --- a/Master/bin/powerpc-aix/otftotfm +++ b/Master/bin/powerpc-aix/otftotfm diff --git a/Master/bin/powerpc-aix/otp2ocp b/Master/bin/powerpc-aix/otp2ocp Binary files differindex 5b31e1cf77a..96fc8b83c32 100755 --- a/Master/bin/powerpc-aix/otp2ocp +++ b/Master/bin/powerpc-aix/otp2ocp diff --git a/Master/bin/powerpc-aix/outocp b/Master/bin/powerpc-aix/outocp Binary files differindex ac401ba0b89..6397f1afc09 100755 --- a/Master/bin/powerpc-aix/outocp +++ b/Master/bin/powerpc-aix/outocp diff --git a/Master/bin/powerpc-aix/patgen b/Master/bin/powerpc-aix/patgen Binary files differindex 68b1f9ca7f4..cf24d809a77 100755 --- a/Master/bin/powerpc-aix/patgen +++ b/Master/bin/powerpc-aix/patgen diff --git a/Master/bin/powerpc-aix/pdfclose b/Master/bin/powerpc-aix/pdfclose Binary files differindex 7551f1ef31d..8d8137fcf62 100755 --- a/Master/bin/powerpc-aix/pdfclose +++ b/Master/bin/powerpc-aix/pdfclose diff --git a/Master/bin/powerpc-aix/pdflualatex b/Master/bin/powerpc-aix/pdflualatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/powerpc-aix/pdflualatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/pdfluatex b/Master/bin/powerpc-aix/pdfluatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/powerpc-aix/pdfluatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/pdfopen b/Master/bin/powerpc-aix/pdfopen Binary files differindex 649c036f901..baf0c8dde94 100755 --- a/Master/bin/powerpc-aix/pdfopen +++ b/Master/bin/powerpc-aix/pdfopen diff --git a/Master/bin/powerpc-aix/pdftex b/Master/bin/powerpc-aix/pdftex Binary files differindex 66200c3c0c4..f828c06bf52 100755 --- a/Master/bin/powerpc-aix/pdftex +++ b/Master/bin/powerpc-aix/pdftex diff --git a/Master/bin/powerpc-aix/pdftools b/Master/bin/powerpc-aix/pdftools index 92ee803a868..fa012780ccc 100755..120000 --- a/Master/bin/powerpc-aix/pdftools +++ b/Master/bin/powerpc-aix/pdftools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart pdftools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/pdftools
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/pdftosrc b/Master/bin/powerpc-aix/pdftosrc Binary files differindex bc7a2970ca2..3b7f9d737d7 100755 --- a/Master/bin/powerpc-aix/pdftosrc +++ b/Master/bin/powerpc-aix/pdftosrc diff --git a/Master/bin/powerpc-aix/pdftrimwhite b/Master/bin/powerpc-aix/pdftrimwhite new file mode 120000 index 00000000000..46526e8ffcc --- /dev/null +++ b/Master/bin/powerpc-aix/pdftrimwhite @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/pdftrimwhite
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/pfb2pfa b/Master/bin/powerpc-aix/pfb2pfa Binary files differindex d3999809601..a5ac5c60859 100755 --- a/Master/bin/powerpc-aix/pfb2pfa +++ b/Master/bin/powerpc-aix/pfb2pfa diff --git a/Master/bin/powerpc-aix/pk2bm b/Master/bin/powerpc-aix/pk2bm Binary files differindex 02696b2827d..e19ad0dc7ce 100755 --- a/Master/bin/powerpc-aix/pk2bm +++ b/Master/bin/powerpc-aix/pk2bm diff --git a/Master/bin/powerpc-aix/pktogf b/Master/bin/powerpc-aix/pktogf Binary files differindex 72e7d7d9663..4cf88b536bc 100755 --- a/Master/bin/powerpc-aix/pktogf +++ b/Master/bin/powerpc-aix/pktogf diff --git a/Master/bin/powerpc-aix/pktype b/Master/bin/powerpc-aix/pktype Binary files differindex 63f45a9f397..755ae9a3c39 100755 --- a/Master/bin/powerpc-aix/pktype +++ b/Master/bin/powerpc-aix/pktype diff --git a/Master/bin/powerpc-aix/pltotf b/Master/bin/powerpc-aix/pltotf Binary files differindex 5426db0b02a..f07422b6b50 100755 --- a/Master/bin/powerpc-aix/pltotf +++ b/Master/bin/powerpc-aix/pltotf diff --git a/Master/bin/powerpc-aix/pooltype b/Master/bin/powerpc-aix/pooltype Binary files differindex bb3dfacfa90..d3071528796 100755 --- a/Master/bin/powerpc-aix/pooltype +++ b/Master/bin/powerpc-aix/pooltype diff --git a/Master/bin/powerpc-aix/ps2pk b/Master/bin/powerpc-aix/ps2pk Binary files differindex 47185d3046d..6f26d2e4727 100755 --- a/Master/bin/powerpc-aix/ps2pk +++ b/Master/bin/powerpc-aix/ps2pk diff --git a/Master/bin/powerpc-aix/psbook b/Master/bin/powerpc-aix/psbook Binary files differindex aad1c0db583..c31a3372c24 100755 --- a/Master/bin/powerpc-aix/psbook +++ b/Master/bin/powerpc-aix/psbook diff --git a/Master/bin/powerpc-aix/psnup b/Master/bin/powerpc-aix/psnup Binary files differindex f3586994d03..39252b22130 100755 --- a/Master/bin/powerpc-aix/psnup +++ b/Master/bin/powerpc-aix/psnup diff --git a/Master/bin/powerpc-aix/psresize b/Master/bin/powerpc-aix/psresize Binary files differindex 4bd389a559a..d9ee013158a 100755 --- a/Master/bin/powerpc-aix/psresize +++ b/Master/bin/powerpc-aix/psresize diff --git a/Master/bin/powerpc-aix/psselect b/Master/bin/powerpc-aix/psselect Binary files differindex b94db12c2d4..9e27ce6eb7c 100755 --- a/Master/bin/powerpc-aix/psselect +++ b/Master/bin/powerpc-aix/psselect diff --git a/Master/bin/powerpc-aix/pst2pdf b/Master/bin/powerpc-aix/pst2pdf new file mode 120000 index 00000000000..60a28335578 --- /dev/null +++ b/Master/bin/powerpc-aix/pst2pdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/pst2pdf/pst2pdf.pl
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/pstopdf b/Master/bin/powerpc-aix/pstopdf index 5b38ed426cb..44478ee1dd4 100755..120000 --- a/Master/bin/powerpc-aix/pstopdf +++ b/Master/bin/powerpc-aix/pstopdf @@ -1,2 +1 @@ -#!/bin/sh -texmfstart pstopdf.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/pstopdf
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/pstops b/Master/bin/powerpc-aix/pstops Binary files differindex a8657c77332..1d10515ad75 100755 --- a/Master/bin/powerpc-aix/pstops +++ b/Master/bin/powerpc-aix/pstops diff --git a/Master/bin/powerpc-aix/rlxtools b/Master/bin/powerpc-aix/rlxtools index 41cea40fc09..a5078af4f10 100755..120000 --- a/Master/bin/powerpc-aix/rlxtools +++ b/Master/bin/powerpc-aix/rlxtools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart rlxtools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/rlxtools
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/runtools b/Master/bin/powerpc-aix/runtools index ff9a333791b..127f29a36df 100755..120000 --- a/Master/bin/powerpc-aix/runtools +++ b/Master/bin/powerpc-aix/runtools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart runtools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/runtools
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/sjisconv b/Master/bin/powerpc-aix/sjisconv Binary files differindex 99c93393793..634063d95bd 100755 --- a/Master/bin/powerpc-aix/sjisconv +++ b/Master/bin/powerpc-aix/sjisconv diff --git a/Master/bin/powerpc-aix/synctex b/Master/bin/powerpc-aix/synctex Binary files differindex 1905a87b84e..107e69d472e 100755 --- a/Master/bin/powerpc-aix/synctex +++ b/Master/bin/powerpc-aix/synctex diff --git a/Master/bin/powerpc-aix/t1ascii b/Master/bin/powerpc-aix/t1ascii Binary files differindex c8b5b245b39..6c98330a05a 100755 --- a/Master/bin/powerpc-aix/t1ascii +++ b/Master/bin/powerpc-aix/t1ascii diff --git a/Master/bin/powerpc-aix/t1asm b/Master/bin/powerpc-aix/t1asm Binary files differindex a4172498581..4c7cd041d2e 100755 --- a/Master/bin/powerpc-aix/t1asm +++ b/Master/bin/powerpc-aix/t1asm diff --git a/Master/bin/powerpc-aix/t1binary b/Master/bin/powerpc-aix/t1binary Binary files differindex a68abab2fb2..f80de3db32e 100755 --- a/Master/bin/powerpc-aix/t1binary +++ b/Master/bin/powerpc-aix/t1binary diff --git a/Master/bin/powerpc-aix/t1disasm b/Master/bin/powerpc-aix/t1disasm Binary files differindex 21252c69681..de01ddaaebf 100755 --- a/Master/bin/powerpc-aix/t1disasm +++ b/Master/bin/powerpc-aix/t1disasm diff --git a/Master/bin/powerpc-aix/t1dotlessj b/Master/bin/powerpc-aix/t1dotlessj Binary files differindex 399183f7c7d..6b0c3aee7b8 100755 --- a/Master/bin/powerpc-aix/t1dotlessj +++ b/Master/bin/powerpc-aix/t1dotlessj diff --git a/Master/bin/powerpc-aix/t1lint b/Master/bin/powerpc-aix/t1lint Binary files differindex 28c9ab07844..88cee2eacfc 100755 --- a/Master/bin/powerpc-aix/t1lint +++ b/Master/bin/powerpc-aix/t1lint diff --git a/Master/bin/powerpc-aix/t1mac b/Master/bin/powerpc-aix/t1mac Binary files differindex ba29867d0a7..6a5fcffa0ad 100755 --- a/Master/bin/powerpc-aix/t1mac +++ b/Master/bin/powerpc-aix/t1mac diff --git a/Master/bin/powerpc-aix/t1reencode b/Master/bin/powerpc-aix/t1reencode Binary files differindex 36b442ca81c..445ddba7445 100755 --- a/Master/bin/powerpc-aix/t1reencode +++ b/Master/bin/powerpc-aix/t1reencode diff --git a/Master/bin/powerpc-aix/t1testpage b/Master/bin/powerpc-aix/t1testpage Binary files differindex 13af7393d6d..77dadde3a37 100755 --- a/Master/bin/powerpc-aix/t1testpage +++ b/Master/bin/powerpc-aix/t1testpage diff --git a/Master/bin/powerpc-aix/t1unmac b/Master/bin/powerpc-aix/t1unmac Binary files differindex cc866235070..bd6b76a7ed6 100755 --- a/Master/bin/powerpc-aix/t1unmac +++ b/Master/bin/powerpc-aix/t1unmac diff --git a/Master/bin/powerpc-aix/t4ht b/Master/bin/powerpc-aix/t4ht Binary files differindex c05d9c1b43b..82d81dd1e24 100755 --- a/Master/bin/powerpc-aix/t4ht +++ b/Master/bin/powerpc-aix/t4ht diff --git a/Master/bin/powerpc-aix/tangle b/Master/bin/powerpc-aix/tangle Binary files differindex 71ef5cffbe7..8889853fdc4 100755 --- a/Master/bin/powerpc-aix/tangle +++ b/Master/bin/powerpc-aix/tangle diff --git a/Master/bin/powerpc-aix/tcdialog b/Master/bin/powerpc-aix/tcdialog Binary files differindex 948634a59ff..a842a5f9a4b 100755 --- a/Master/bin/powerpc-aix/tcdialog +++ b/Master/bin/powerpc-aix/tcdialog diff --git a/Master/bin/powerpc-aix/tex b/Master/bin/powerpc-aix/tex Binary files differindex c2e102e1952..6afd1690945 100755 --- a/Master/bin/powerpc-aix/tex +++ b/Master/bin/powerpc-aix/tex diff --git a/Master/bin/powerpc-aix/tex2xindy b/Master/bin/powerpc-aix/tex2xindy Binary files differindex 8425f2e14a9..f6fccf853ae 100755 --- a/Master/bin/powerpc-aix/tex2xindy +++ b/Master/bin/powerpc-aix/tex2xindy diff --git a/Master/bin/powerpc-aix/tex4ht b/Master/bin/powerpc-aix/tex4ht Binary files differindex 647964286a0..04d9c4cc3db 100755 --- a/Master/bin/powerpc-aix/tex4ht +++ b/Master/bin/powerpc-aix/tex4ht diff --git a/Master/bin/powerpc-aix/texexec b/Master/bin/powerpc-aix/texexec index 2158172906a..36d22caefe7 100755..120000 --- a/Master/bin/powerpc-aix/texexec +++ b/Master/bin/powerpc-aix/texexec @@ -1,2 +1 @@ -#!/bin/sh -texmfstart texexec.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/texexec
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/texfind b/Master/bin/powerpc-aix/texfind new file mode 120000 index 00000000000..e450f1060a3 --- /dev/null +++ b/Master/bin/powerpc-aix/texfind @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texfind
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/texfont b/Master/bin/powerpc-aix/texfont index a91f786e3f8..a3756e037ce 100755..120000 --- a/Master/bin/powerpc-aix/texfont +++ b/Master/bin/powerpc-aix/texfont @@ -1,2 +1 @@ -#!/bin/sh -texmfstart texfont.pl "$@" +../../texmf-dist/scripts/context/stubs/unix/texfont
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/texindex b/Master/bin/powerpc-aix/texindex Binary files differindex c7db58b7cac..ae70a4851fd 100755 --- a/Master/bin/powerpc-aix/texindex +++ b/Master/bin/powerpc-aix/texindex diff --git a/Master/bin/powerpc-aix/texlinks b/Master/bin/powerpc-aix/texlinks index 48657905634..d8e51550924 100755 --- a/Master/bin/powerpc-aix/texlinks +++ b/Master/bin/powerpc-aix/texlinks @@ -149,7 +149,7 @@ install_link() esac case $src in - */cont-??|*/metafun|*/mptopdf) + */cont-??|*/mptopdf) # context includes wrapper scripts that create/run these. verbose_echo "skipped ConTeXtish symlink $src -> $dest (special case)" ;; diff --git a/Master/bin/powerpc-aix/texmfstart b/Master/bin/powerpc-aix/texmfstart index e43929213f5..db6dee0a29c 100755..120000 --- a/Master/bin/powerpc-aix/texmfstart +++ b/Master/bin/powerpc-aix/texmfstart @@ -1,2501 +1 @@ -#!/usr/bin/env ruby - -# program : texmfstart -# copyright : PRAGMA Advanced Document Engineering -# version : 1.9.0 - 2003/2006 -# author : Hans Hagen -# -# project : ConTeXt / eXaMpLe -# info : j.hagen@xs4all.nl -# www : www.pragma-pod.com / www.pragma-ade.com - -# no special requirements, i.e. no exa modules/classes used - -# texmfstart [switches] filename [optional arguments] -# -# ruby2exe texmfstart --help -> avoids stub test -# -# Of couse I can make this into a nice class, which i'll undoubtely will -# do when I feel the need. In that case it will be part of a bigger game. - -# turning this into a service would be nice, so some day ... - -# --locate => provides location -# --exec => exec instead of system -# --iftouched=a,b => only if timestamp a<>b -# --ifchanged=a,b => only if checksum changed -# -# file: path: bin: - -# texmfstart --exec bin:scite *.tex - -# we don't depend on other libs - -$: << File.expand_path(File.dirname($0)) ; $: << File.join($:.last,'lib') ; $:.uniq! - -require "rbconfig" -require "md5" - -# funny, selfmergs was suddenly broken to case problems - -# kpse_merge_done: require 'base/kpseremote' -# kpse_merge_done: require 'base/kpsedirect' -# kpse_merge_done: require 'base/kpsefast' -# kpse_merge_done: require 'base/merge' - -# kpse_merge_start - -# kpse_merge_file: 't:/ruby/base/kpsefast.rb' - -# module : base/kpsefast -# copyright : PRAGMA Advanced Document Engineering -# version : 2005 -# author : Hans Hagen -# -# project : ConTeXt / eXaMpLe -# concept : Hans Hagen -# info : j.hagen@xs4all.nl - -# todo: multiple cnf files -# - -class String - - def split_path - if self =~ /\;/o || self =~ /^[a-z]\:/io then - self.split(";") - else - self.split(":") - end - end - -end - -class Array - - def join_path - self.join(File::PATH_SEPARATOR) - end - -end - -class File - - def File.locate_file(path,name) - begin - files = Dir.entries(path) - if files.include?(name) then - fullname = File.join(path,name) - return fullname if FileTest.file?(fullname) - end - files.each do |p| - fullname = File.join(path,p) - if p != '.' and p != '..' and FileTest.directory?(fullname) and result = locate_file(fullname,name) then - return result - end - end - rescue - # bad path - end - return nil - end - - def File.glob_file(pattern) - return Dir.glob(pattern).first - end - -end - -module KpseUtil - - # to be adapted, see loading cnf file - - @@texmftrees = ['texmf-local','texmf.local','../..','texmf'] # '../..' is for gwtex - @@texmfcnf = 'texmf.cnf' - - def KpseUtil::identify - # we mainly need to identify the local tex stuff and wse assume that - # the texmfcnf variable is set; otherwise we need to expand the - # TEXMF variable and that takes time since it may involve more - ownpath = File.expand_path($0) - if ownpath.gsub!(/texmf.*?$/o, '') then - ENV['SELFAUTOPARENT'] = ownpath - else - ENV['SELFAUTOPARENT'] = '.' # fall back - # may be too tricky: - # - # (ENV['PATH'] ||'').split_path.each do |p| - # if p.gsub!(/texmf.*?$/o, '') then - # ENV['SELFAUTOPARENT'] = p - # break - # end - # end - end - filenames = Array.new - if ENV['TEXMFCNF'] && ! ENV['TEXMFCNF'].empty? then - ENV['TEXMFCNF'].to_s.split_path.each do |path| - filenames << File.join(path,@@texmfcnf) - end - elsif ENV['SELFAUTOPARENT'] == '.' then - filenames << File.join('.',@@texmfcnf) - else - @@texmftrees.each do |tree| - filenames << File.join(ENV['SELFAUTOPARENT'],tree,'web2c',@@texmfcnf) - end - end - loop do - busy = false - filenames.collect! do |f| - f.gsub(/\$([a-zA-Z0-9\_\-]+)/o) do - if (! ENV[$1]) || (ENV[$1] == $1) then - "$#{$1}" - else - busy = true - ENV[$1] - end - end - end - break unless busy - end - filenames.delete_if do |f| - ! FileTest.file?(f) - end - return filenames - end - - def KpseUtil::environment - Hash.new.merge(ENV) - end - -end - -class KpseFast - - # formats are an incredible inconsistent mess - - @@suffixes = Hash.new - @@formats = Hash.new - @@suffixmap = Hash.new - - @@texmfcnf = 'texmf.cnf' - - @@suffixes['gf'] = ['.<resolution>gf'] # todo - @@suffixes['pk'] = ['.<resolution>pk'] # todo - @@suffixes['tfm'] = ['.tfm'] - @@suffixes['afm'] = ['.afm'] - @@suffixes['base'] = ['.base'] - @@suffixes['bib'] = ['.bib'] - @@suffixes['bst'] = ['.bst'] - @@suffixes['cnf'] = ['.cnf'] - @@suffixes['ls-R'] = ['ls-R', 'ls-r'] - @@suffixes['fmt'] = ['.fmt', '.efmt', '.efm', '.ofmt', '.ofm', '.oft', '.eofmt', '.eoft', '.eof', '.pfmt', '.pfm', '.epfmt', '.epf', '.xpfmt', '.xpf', '.afmt', '.afm'] - @@suffixes['map'] = ['.map'] - @@suffixes['mem'] = ['.mem'] - @@suffixes['mf'] = ['.mf'] - @@suffixes['mfpool'] = ['.pool'] - @@suffixes['mft'] = ['.mft'] - @@suffixes['mp'] = ['.mp'] - @@suffixes['mppool'] = ['.pool'] - @@suffixes['ocp'] = ['.ocp'] - @@suffixes['ofm'] = ['.ofm', '.tfm'] - @@suffixes['opl'] = ['.opl'] - @@suffixes['otp'] = ['.otp'] - @@suffixes['ovf'] = ['.ovf'] - @@suffixes['ovp'] = ['.ovp'] - @@suffixes['graphic/figure'] = ['.eps', '.epsi'] - @@suffixes['tex'] = ['.tex'] - @@suffixes['texpool'] = ['.pool'] - @@suffixes['PostScript header'] = ['.pro'] - @@suffixes['type1 fonts'] = ['.pfa', '.pfb'] - @@suffixes['vf'] = ['.vf'] - @@suffixes['ist'] = ['.ist'] - @@suffixes['truetype fonts'] = ['.ttf', '.ttc'] - @@suffixes['web'] = ['.web', '.ch'] - @@suffixes['cweb'] = ['.w', '.web', '.ch'] - @@suffixes['enc files'] = ['.enc'] - @@suffixes['cmap files'] = ['.cmap'] - @@suffixes['subfont definition files'] = ['.sfd'] - @@suffixes['lig files'] = ['.lig'] - @@suffixes['bitmap font'] = [] - @@suffixes['MetaPost support'] = [] - @@suffixes['TeX system documentation'] = [] - @@suffixes['TeX system sources'] = [] - @@suffixes['Troff fonts'] = [] - @@suffixes['dvips config'] = [] - @@suffixes['type42 fonts'] = [] - @@suffixes['web2c files'] = [] - @@suffixes['other text files'] = [] - @@suffixes['other binary files'] = [] - @@suffixes['misc fonts'] = [] - @@suffixes['opentype fonts'] = [] - @@suffixes['pdftex config'] = [] - @@suffixes['texmfscripts'] = [] - - # replacements - - @@suffixes['fmt'] = ['.fmt'] - @@suffixes['type1 fonts'] = ['.pfa', '.pfb', '.pfm'] - @@suffixes['tex'] = ['.tex', '.xml'] - @@suffixes['texmfscripts'] = ['rb','lua','py','pl'] - - @@suffixes.keys.each do |k| @@suffixes[k].each do |s| @@suffixmap[s] = k end end - - # TTF2TFMINPUTS - # MISCFONTS - # TEXCONFIG - # DVIPDFMINPUTS - # OTFFONTS - - @@formats['gf'] = '' - @@formats['pk'] = '' - @@formats['tfm'] = 'TFMFONTS' - @@formats['afm'] = 'AFMFONTS' - @@formats['base'] = 'MFBASES' - @@formats['bib'] = '' - @@formats['bst'] = '' - @@formats['cnf'] = '' - @@formats['ls-R'] = '' - @@formats['fmt'] = 'TEXFORMATS' - @@formats['map'] = 'TEXFONTMAPS' - @@formats['mem'] = 'MPMEMS' - @@formats['mf'] = 'MFINPUTS' - @@formats['mfpool'] = 'MFPOOL' - @@formats['mft'] = '' - @@formats['mp'] = 'MPINPUTS' - @@formats['mppool'] = 'MPPOOL' - @@formats['ocp'] = 'OCPINPUTS' - @@formats['ofm'] = 'OFMFONTS' - @@formats['opl'] = 'OPLFONTS' - @@formats['otp'] = 'OTPINPUTS' - @@formats['ovf'] = 'OVFFONTS' - @@formats['ovp'] = 'OVPFONTS' - @@formats['graphic/figure'] = '' - @@formats['tex'] = 'TEXINPUTS' - @@formats['texpool'] = 'TEXPOOL' - @@formats['PostScript header'] = 'TEXPSHEADERS' - @@formats['type1 fonts'] = 'T1FONTS' - @@formats['vf'] = 'VFFONTS' - @@formats['ist'] = '' - @@formats['truetype fonts'] = 'TTFONTS' - @@formats['web'] = '' - @@formats['cweb'] = '' - @@formats['enc files'] = 'ENCFONTS' - @@formats['cmap files'] = 'CMAPFONTS' - @@formats['subfont definition files'] = 'SFDFONTS' - @@formats['lig files'] = 'LIGFONTS' - @@formats['bitmap font'] = '' - @@formats['MetaPost support'] = '' - @@formats['TeX system documentation'] = '' - @@formats['TeX system sources'] = '' - @@formats['Troff fonts'] = '' - @@formats['dvips config'] = '' - @@formats['type42 fonts'] = 'T42FONTS' - @@formats['web2c files'] = 'WEB2C' - @@formats['other text files'] = '' - @@formats['other binary files'] = '' - @@formats['misc fonts'] = '' - @@formats['opentype fonts'] = 'OPENTYPEFONTS' - @@formats['pdftex config'] = 'PDFTEXCONFIG' - @@formats['texmfscripts'] = 'TEXMFSCRIPTS' - - attr_accessor :progname, :engine, :format, :rootpath, :treepath, - :verbose, :remember, :scandisk, :diskcache, :renewcache - - @@cacheversion = '1' - - def initialize - @rootpath = '' - @treepath = '' - @progname = 'kpsewhich' - @engine = 'pdftex' - @variables = Hash.new - @expansions = Hash.new - @files = Hash.new - @found = Hash.new - @kpsevars = Hash.new - @lsrfiles = Array.new - @cnffiles = Array.new - @verbose = true - @remember = true - @scandisk = true - @diskcache = true - @renewcache = false - @isolate = false - - @diskcache = false - @cachepath = nil - @cachefile = 'tmftools.log' - - @environment = ENV - end - - def set(key,value) - case key - when 'progname' then @progname = value - when 'engine' then @engine = value - when 'format' then @format = value - end - end - - def push_environment(env) - @environment = env - end - - # {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c} - # - # $SELFAUTOLOC : /usr/tex/bin/platform - # $SELFAUTODIR : /usr/tex/bin - # $SELFAUTOPARENT : /usr/tex - # - # since we live in scriptpath we need a slightly different method - - def load_cnf(filenames=nil) - unless filenames then - ownpath = File.expand_path($0) - if ownpath.gsub!(/texmf.*?$/o, '') then - @environment['SELFAUTOPARENT'] = ownpath - else - @environment['SELFAUTOPARENT'] = '.' - end - unless @treepath.empty? then - unless @rootpath.empty? then - @treepath = @treepath.split(',').collect do |p| File.join(@rootpath,p) end.join(',') - end - @environment['TEXMF'] = @treepath - # only the first one - @environment['TEXMFCNF'] = File.join(@treepath.split(',').first,'texmf/web2c') - end - unless @rootpath.empty? then - @environment['TEXMFCNF'] = File.join(@rootpath,'texmf/web2c') - @environment['SELFAUTOPARENT'] = @rootpath - @isolate = true - end - filenames = Array.new - if @environment['TEXMFCNF'] and not @environment['TEXMFCNF'].empty? then - @environment['TEXMFCNF'].to_s.split_path.each do |path| - filenames << File.join(path,@@texmfcnf) - end - elsif @environment['SELFAUTOPARENT'] == '.' then - filenames << File.join('.',@@texmfcnf) - else - ['texmf-local','texmf'].each do |tree| - filenames << File.join(@environment['SELFAUTOPARENT'],tree,'web2c',@@texmfcnf) - end - end - end - # <root>/texmf/web2c/texmf.cnf - filenames = _expanded_path_(filenames) - @rootpath = filenames.first - 3.times do - @rootpath = File.dirname(@rootpath) - end - filenames.collect! do |f| - f.gsub("\\", '/') - end - filenames.each do |fname| - if FileTest.file?(fname) and f = File.open(fname) then - @cnffiles << fname - while line = f.gets do - loop do - # concatenate lines ending with \ - break unless line.sub!(/\\\s*$/o) do - f.gets || '' - end - end - case line - when /^[\%\#]/o then - # comment - when /^\s*(.*?)\s*\=\s*(.*?)\s*$/o then - key, value = $1, $2 - unless @variables.key?(key) then - value.sub!(/\%.*$/,'') - value.sub!(/\~/, "$HOME") - @variables[key] = value - end - @kpsevars[key] = true - end - end - f.close - end - end - end - - def load_lsr - @lsrfiles = [] - simplified_list(expansion('TEXMF')).each do |p| - ['ls-R','ls-r'].each do |f| - filename = File.join(p,f) - if FileTest.file?(filename) then - @lsrfiles << [filename,File.size(filename)] - break - end - end - end - @files = Hash.new - if @diskcache then - ['HOME','TEMP','TMP','TMPDIR'].each do |key| - if @environment[key] then - if FileTest.directory?(@environment[key]) then - @cachepath = @environment[key] - @cachefile = [@rootpath.gsub(/[^A-Z0-9]/io, '-').gsub(/\-+/,'-'),File.basename(@cachefile)].join('-') - break - end - end - end - if @cachepath and not @renewcache and FileTest.file?(File.join(@cachepath,@cachefile)) then - begin - if f = File.open(File.join(@cachepath,@cachefile)) then - cacheversion = Marshal.load(f) - if cacheversion == @@cacheversion then - lsrfiles = Marshal.load(f) - if lsrfiles == @lsrfiles then - @files = Marshal.load(f) - end - end - f.close - end - rescue - @files = Hash.new - end - end - end - return if @files.size > 0 - @lsrfiles.each do |filedata| - filename, filesize = filedata - filepath = File.dirname(filename) - begin - path = '.' - data = IO.readlines(filename) - if data[0].chomp =~ /% ls\-R \-\- filename database for kpathsea\; do not change this line\./io then - data.each do |line| - case line - when /^[a-zA-Z0-9]/o then - line.chomp! - if @files[line] then - @files[line] << path - else - @files[line] = [path] - end - when /^\.\/(.*?)\:$/o then - path = File.join(filepath,$1) - end - end - end - rescue - # sorry - end - end - if @diskcache and @cachepath and f = File.open(File.join(@cachepath,@cachefile),'wb') then - f << Marshal.dump(@@cacheversion) - f << Marshal.dump(@lsrfiles) - f << Marshal.dump(@files) - f.close - end - end - - def expand_variables - @expansions = Hash.new - if @isolate then - @variables['TEXMFCNF'] = @environment['TEXMFCNF'].dup - @variables['SELFAUTOPARENT'] = @environment['SELFAUTOPARENT'].dup - else - @environment.keys.each do |e| - if e =~ /^([a-zA-Z]+)\_(.*)\s*$/o then - @expansions["#{$1}.#{$2}"] = (@environment[e] ||'').dup - else - @expansions[e] = (@environment[e] ||'').dup - end - end - end - @variables.keys.each do |k| - @expansions[k] = @variables[k].dup unless @expansions[k] - end - loop do - busy = false - @expansions.keys.each do |k| - @expansions[k].gsub!(/\$([a-zA-Z0-9\_\-]*)/o) do - busy = true - @expansions[$1] || '' - end - @expansions[k].gsub!(/\$\{([a-zA-Z0-9\_\-]*)\}/o) do - busy = true - @expansions[$1] || '' - end - end - break unless busy - end - @expansions.keys.each do |k| - @expansions[k] = @expansions[k].gsub("\\", '/') - end - end - - def variable(name='') - (name and not name.empty? and @variables[name.sub('$','')]) or '' - end - - def expansion(name='') - (name and not name.empty? and @expansions[name.sub('$','')]) or '' - end - - def variable?(name='') - name and not name.empty? and @variables.key?(name.sub('$','')) - end - - def expansion?(name='') - name and not name.empty? and @expansions.key?(name.sub('$','')) - end - - def simplified_list(str) - lst = str.gsub(/^\{/o,'').gsub(/\}$/o,'').split(",") - lst.collect do |l| - l.sub(/^[\!]*/,'').sub(/[\/\\]*$/o,'') - end - end - - def original_variable(variable) - if variable?("#{@progname}.#{variable}") then - variable("#{@progname}.#{variable}") - elsif variable?(variable) then - variable(variable) - else - '' - end - end - - def expanded_variable(variable) - if expansion?("#{variable}.#{@progname}") then - expansion("#{variable}.#{@progname}") - elsif expansion?(variable) then - expansion(variable) - else - '' - end - end - - def original_path(filename='') - _expanded_path_(original_variable(var_of_format_or_suffix(filename)).split(";")) - end - - def expanded_path(filename='') - _expanded_path_(expanded_variable(var_of_format_or_suffix(filename)).split(";")) - end - - def _expanded_path_(pathlist) - i, n = 0, 0 - pathlist.collect! do |mainpath| - mainpath.gsub(/([\{\}])/o) do - if $1 == "{" then - i += 1 ; n = i if i > n ; "<#{i}>" - else - i -= 1 ; "</#{i+1}>" - end - end - end - n.times do |i| - loop do - more = false - newlist = [] - pathlist.each do |path| - unless path.sub!(/^(.*?)<(#{n-i})>(.*?)<\/\2>(.*?)$/) do - pre, mid, post = $1, $3, $4 - mid.gsub!(/\,$/,',.') - mid.split(',').each do |m| - more = true - if m == '.' then - newlist << "#{pre}#{post}" - else - newlist << "#{pre}#{m}#{post}" - end - end - end then - newlist << path - end - end - if more then - pathlist = [newlist].flatten # copy -) - else - break - end - end - end - pathlist = pathlist.uniq.collect do |path| - p = path - # p.gsub(/^\/+/o) do '' end - # p.gsub!(/(.)\/\/(.)/o) do "#{$1}/#{$2}" end - # p.gsub!(/\/\/+$/o) do '//' end - p.gsub!(/\/\/+/o) do '//' end - p - end - pathlist - end - - # todo: ignore case - - def var_of_format(str) - @@formats[str] || '' - end - - def var_of_suffix(str) # includes . - if @@suffixmap.key?(str) then @@formats[@@suffixmap[str]] else '' end - end - - def var_of_format_or_suffix(str) - if @@formats.key?(str) then - @@formats[str] - elsif @@suffixmap.key?(File.extname(str)) then # extname includes . - @@formats[@@suffixmap[File.extname(str)]] # extname includes . - else - '' - end - end - -end - -class KpseFast - - # test things - - def list_variables(kpseonly=true) - @variables.keys.sort.each do |k| - if kpseonly then - puts("#{k} = #{@variables[k]}") if @kpsevars[k] - else - puts("#{if @kpsevars[k] then 'K' else 'E' end} #{k} = #{@variables[k]}") - end - end - end - - def list_expansions(kpseonly=true) - @expansions.keys.sort.each do |k| - if kpseonly then - puts("#{k} = #{@expansions[k]}") if @kpsevars[k] - else - puts("#{if @kpsevars[k] then 'K' else 'E' end} #{k} = #{@expansions[k]}") - end - end - end - - def list_lsr - puts("files = #{@files.size}") - end - - def set_test_patterns - @variables["KPSE_TEST_PATTERN_A"] = "foo/{1,2}/bar//" - @variables["KPSE_TEST_PATTERN_B"] = "!!x{A,B{1,2}}y" - @variables["KPSE_TEST_PATTERN_C"] = "x{A,B//{1,2}}y" - @variables["KPSE_TEST_PATTERN_D"] = "x{A,B//{1,2,}}//y" - end - - def show_test_patterns - ['A','B','D'].each do |i| - puts "" - puts @variables ["KPSE_TEST_PATTERN_#{i}"] - puts "" - puts expand_path("KPSE_TEST_PATTERN_#{i}").split_path - puts "" - end - end - -end - -class KpseFast - - # kpse stuff - - def expand_braces(str) # output variable and brace expansion of STRING. - _expanded_path_(original_variable(str).split_path).join_path - end - - def expand_path(str) # output complete path expansion of STRING. - _expanded_path_(expanded_variable(str).split_path).join_path - end - - def expand_var(str) # output variable expansion of STRING. - expanded_variable(str) - end - - def show_path(str) # output search path for file type NAME - expanded_path(str).join_path - end - - def var_value(str) # output the value of variable $STRING. - original_variable(str) - end - -end - -class KpseFast - - def _is_cnf_?(filename) - filename == File.basename((@cnffiles.first rescue @@texmfcnf) || @@texmfcnf) - end - - def find_file(filename) - if _is_cnf_?(filename) then - @cnffiles.first rescue '' - else - [find_files(filename,true)].flatten.first || '' - end - end - - def find_files(filename,first=false) - if _is_cnf_?(filename) then - result = @cnffiles.dup - else - if @remember then - # stamp = "#{filename}--#{@format}--#{@engine}--#{@progname}" - stamp = "#{filename}--#{@engine}--#{@progname}" - return @found[stamp] if @found.key?(stamp) - end - pathlist = expanded_path(filename) - result = [] - filelist = if @files.key?(filename) then @files[filename].uniq else nil end - done = false - if pathlist.size == 0 then - if FileTest.file?(filename) then - done = true - result << '.' - end - else - pathlist.each do |path| - doscan = if path =~ /^\!\!/o then false else true end - recurse = if path =~ /\/\/$/o then true else false end - pathname = path.dup - pathname.gsub!(/^\!+/o, '') - done = false - if not done and filelist then - # checking for exact match - if filelist.include?(pathname) then - result << pathname - done = true - end - if not done and recurse then - # checking for fuzzy // - pathname.gsub!(/\/+$/o, '/.*') - # pathname.gsub!(/\/\//o,'/[\/]*/') - pathname.gsub!(/\/\//o,'/.*?/') - re = /^#{pathname}/ - filelist.each do |f| - if re =~ f then - result << f # duplicates will be filtered later - done = true - end - break if done - end - end - end - if not done and doscan then - # checking for path itself - pname = pathname.sub(/\.\*$/,'') - if not pname =~ /\*/o and FileTest.file?(File.join(pname,filename)) then - result << pname - done = true - end - end - break if done and first - end - end - if not done and @scandisk then - pathlist.each do |path| - pathname = path.dup - unless pathname.gsub!(/^\!+/o, '') then # !! prevents scan - recurse = pathname.gsub!(/\/+$/o, '') - complex = pathname.gsub!(/\/\//o,'/*/') - if recurse then - if complex then - if ok = File.glob_file("#{pathname}/**/#{filename}") then - result << File.dirname(ok) - done = true - end - elsif ok = File.locate_file(pathname,filename) then - result << File.dirname(ok) - done = true - end - elsif complex then - if ok = File.glob_file("#{pathname}/#{filename}") then - result << File.dirname(ok) - done = true - end - elsif FileTest.file?(File.join(pathname,filename)) then - result << pathname - done = true - end - break if done and first - end - end - end - result = result.uniq.collect do |pathname| - File.join(pathname,filename) - end - @found[stamp] = result if @remember - end - return result # redundant - end - -end - -class KpseFast - - class FileData - attr_accessor :tag, :name, :size, :date - def initialize(tag=0,name=nil,size=nil,date=nil) - @tag, @name, @size, @date = tag, name, size, date - end - def FileData.sizes(a) - a.collect do |aa| - aa.size - end - end - def report - case @tag - when 1 then "deleted | #{@size.to_s.rjust(8)} | #{@date.strftime('%m/%d/%Y %I:%M')} | #{@name}" - when 2 then "present | #{@size.to_s.rjust(8)} | #{@date.strftime('%m/%d/%Y %I:%M')} | #{@name}" - when 3 then "obsolete | #{' '*8} | #{' '*16} | #{@name}" - end - end - end - - def analyze_files(filter='',strict=false,sort='',delete=false) - puts("command line = #{ARGV.join(' ')}") - puts("number of files = #{@files.size}") - puts("filter pattern = #{filter}") - puts("loaded cnf files = #{@cnffiles.join(' ')}") - puts('') - if filter.gsub!(/^not:/,'') then - def the_same(filter,filename) - not filter or filter.empty? or /#{filter}/ !~ filename - end - else - def the_same(filter,filename) - not filter or filter.empty? or /#{filter}/ =~ filename - end - end - @files.keys.each do |name| - if @files[name].size > 1 then - data = Array.new - @files[name].each do |path| - filename = File.join(path,name) - # if not filter or filter.empty? or /#{filter}/ =~ filename then - if the_same(filter,filename) then - if FileTest.file?(filename) then - if delete then - data << FileData.new(1,filename,File.size(filename),File.mtime(filename)) - begin - File.delete(filename) if delete - rescue - end - else - data << FileData.new(2,filename,File.size(filename),File.mtime(filename)) - end - else - # data << FileData.new(3,filename) - end - end - end - if data.length > 1 then - if strict then - # if data.collect do |d| d.size end.uniq! then - # data.sort! do |a,b| b.size <=> a.size end - # data.each do |d| puts d.report end - # puts '' - # end - data.sort! do |a,b| - if a.size and b.size then - b.size <=> a.size - else - 0 - end - end - bunch = Array.new - done = false - data.each do |d| - if bunch.size == 0 then - bunch << d - elsif bunch[0].size == d.size then - bunch << d - else - if bunch.size > 1 then - bunch.each do |b| - puts b.report - end - done = true - end - bunch = [d] - end - end - puts '' if done - else - case sort - when 'size' then data.sort! do |a,b| a.size <=> b.size end - when 'revsize' then data.sort! do |a,b| b.size <=> a.size end - when 'date' then data.sort! do |a,b| a.date <=> b.date end - when 'revdate' then data.sort! do |a,b| b.date <=> a.date end - end - data.each do |d| puts d.report end - puts '' - end - end - end - end - end - -end - - - # k = KpseFast.new # (root) - # k.set_test_patterns - # k.load_cnf - # k.expand_variables - # k.load_lsr - - # k.show_test_patterns - - # puts k.list_variables - # puts k.list_expansions - # k.list_lsr - # puts k.expansion("$TEXMF") - # puts k.expanded_path("TEXINPUTS","context") - - # k.progname, k.engine, k.format = 'context', 'pdftex', 'tfm' - # k.scandisk = false # == must_exist - # k.expand_variables - - # 10.times do |i| puts k.find_file('texnansi-lmr10.tfm') end - - # puts "expand braces $TEXMF" - # puts k.expand_braces("$TEXMF") - # puts "expand path $TEXMF" - # puts k.expand_path("$TEXMF") - # puts "expand var $TEXMF" - # puts k.expand_var("$TEXMF") - # puts "expand path $TEXMF" - # puts k.show_path('tfm') - # puts "expand value $TEXINPUTS" - # puts k.var_value("$TEXINPUTS") - # puts "expand value $TEXINPUTS.context" - # puts k.var_value("$TEXINPUTS.context") - - # exit - - - -# kpse_merge_file: 't:/ruby/base/kpse/trees.rb' - -require 'monitor' -# kpse_merge_done: require 'base/kpsefast' - -class KpseTrees < Monitor - - def initialize - @trees = Hash.new - end - - def pattern(filenames) - filenames.join('|').gsub(/\\+/o,'/').downcase - end - - def choose(filenames,environment) - current = pattern(filenames) - load(filenames,environment) unless @trees[current] - puts "enabling tree #{current}" - current - end - - def fetch(filenames,environment) # will send whole object ! - current = pattern(filenames) - load(filenames,environment) unless @trees[current] - puts "fetching tree #{current}" - @trees[current] - end - - def load(filenames,environment) - current = pattern(filenames) - puts "loading tree #{current}" - @trees[current] = KpseFast.new - @trees[current].push_environment(environment) - @trees[current].load_cnf(filenames) - @trees[current].expand_variables - @trees[current].load_lsr - end - - def set(tree,key,value) - case key - when 'progname' then @trees[tree].progname = value - when 'engine' then @trees[tree].engine = value - when 'format' then @trees[tree].format = value - end - end - def get(tree,key) - case key - when 'progname' then @trees[tree].progname - when 'engine' then @trees[tree].engine - when 'format' then @trees[tree].format - end - end - - def load_cnf(tree) - @trees[tree].load_cnf - end - def load_lsr(tree) - @trees[tree].load_lsr - end - def expand_variables(tree) - @trees[tree].expand_variables - end - def expand_braces(tree,str) - @trees[tree].expand_braces(str) - end - def expand_path(tree,str) - @trees[tree].expand_path(str) - end - def expand_var(tree,str) - @trees[tree].expand_var(str) - end - def show_path(tree,str) - @trees[tree].show_path(str) - end - def var_value(tree,str) - @trees[tree].var_value(str) - end - def find_file(tree,filename) - @trees[tree].find_file(filename) - end - def find_files(tree,filename,first) - @trees[tree].find_files(filename,first) - end - -end - - -# kpse_merge_file: 't:/ruby/base/kpse/drb.rb' - -require 'drb' -# kpse_merge_done: require 'base/kpse/trees' - -class KpseServer - - attr_accessor :port - - def initialize(port=7000) - @port = port - end - - def start - puts "starting drb service at port #{@port}" - DRb.start_service("druby://localhost:#{@port}", KpseTrees.new) - trap(:INT) do - DRb.stop_service - end - DRb.thread.join - end - - def stop - # todo - end - -end - -class KpseClient - - attr_accessor :port - - def initialize(port=7000) - @port = port - @kpse = nil - end - - def start - # only needed when callbacks are used / slow, due to Socket::getaddrinfo - # DRb.start_service - end - - def object - @kpse = DRbObject.new(nil,"druby://localhost:#{@port}") - end - -end - - -# SERVER_URI="druby://localhost:8787" -# -# # Start a local DRbServer to handle callbacks. -# # -# # Not necessary for this small example, but will be required -# # as soon as we pass a non-marshallable object as an argument -# # to a dRuby call. -# DRb.start_service -# - - -# kpse_merge_file: 't:/ruby/base/kpseremote.rb' - -# kpse_merge_done: require 'base/kpsefast' - -case ENV['KPSEMETHOD'] - when /soap/o then # kpse_merge_done: require 'base/kpse/soap' - when /drb/o then # kpse_merge_done: require 'base/kpse/drb' - else # kpse_merge_done: require 'base/kpse/drb' -end - -class KpseRemote - - @@port = ENV['KPSEPORT'] || 7000 - @@method = ENV['KPSEMETHOD'] || 'drb' - - def KpseRemote::available? - @@method && @@port - end - - def KpseRemote::start_server(port=nil) - kpse = KpseServer.new(port || @@port) - kpse.start - end - - def KpseRemote::start_client(port=nil) # keeps object in server - kpseclient = KpseClient.new(port || @@port) - kpseclient.start - kpse = kpseclient.object - tree = kpse.choose(KpseUtil::identify, KpseUtil::environment) - [kpse, tree] - end - - def KpseRemote::fetch(port=nil) # no need for defining methods but slower, send whole object - kpseclient = KpseClient.new(port || @@port) - kpseclient.start - kpseclient.object.fetch(KpseUtil::identify, KpseUtil::environment) rescue nil - end - - def initialize(port=nil) - if KpseRemote::available? then - begin - @kpse, @tree = KpseRemote::start_client(port) - rescue - @kpse, @tree = nil, nil - end - else - @kpse, @tree = nil, nil - end - end - - def progname=(value) - @kpse.set(@tree,'progname',value) - end - def format=(value) - @kpse.set(@tree,'format',value) - end - def engine=(value) - @kpse.set(@tree,'engine',value) - end - - def progname - @kpse.get(@tree,'progname') - end - def format - @kpse.get(@tree,'format') - end - def engine - @kpse.get(@tree,'engine') - end - - def load - @kpse.load(KpseUtil::identify, KpseUtil::environment) - end - def okay? - @kpse && @tree - end - def set(key,value) - @kpse.set(@tree,key,value) - end - def load_cnf - @kpse.load_cnf(@tree) - end - def load_lsr - @kpse.load_lsr(@tree) - end - def expand_variables - @kpse.expand_variables(@tree) - end - def expand_braces(str) - clean_name(@kpse.expand_braces(@tree,str)) - end - def expand_path(str) - clean_name(@kpse.expand_path(@tree,str)) - end - def expand_var(str) - clean_name(@kpse.expand_var(@tree,str)) - end - def show_path(str) - clean_name(@kpse.show_path(@tree,str)) - end - def var_value(str) - clean_name(@kpse.var_value(@tree,str)) - end - def find_file(filename) - clean_name(@kpse.find_file(@tree,filename)) - end - def find_files(filename,first=false) - # dodo: each filename - @kpse.find_files(@tree,filename,first) - end - - private - - def clean_name(str) - str.gsub(/\\/,'/') - end - -end - - -# kpse_merge_file: 't:/ruby/base/kpsedirect.rb' - -class KpseDirect - - attr_accessor :progname, :format, :engine - - def initialize - @progname, @format, @engine = '', '', '' - end - - def expand_path(str) - clean_name(`kpsewhich -expand-path=#{str}`.chomp) - end - - def expand_var(str) - clean_name(`kpsewhich -expand-var=#{str}`.chomp) - end - - def find_file(str) - clean_name(`kpsewhich #{_progname_} #{_format_} #{str}`.chomp) - end - - def _progname_ - if @progname.empty? then '' else "-progname=#{@progname}" end - end - def _format_ - if @format.empty? then '' else "-format=\"#{@format}\"" end - end - - private - - def clean_name(str) - str.gsub(/\\/,'/') - end - -end - - -# kpse_merge_stop - - - -$mswindows = Config::CONFIG['host_os'] =~ /mswin/ -$separator = File::PATH_SEPARATOR -$version = "2.0.3" -$ownpath = File.dirname($0) - -if $mswindows then - require "win32ole" - require "Win32API" -end - -# exit if defined?(REQUIRE2LIB) - -$stdout.sync = true -$stderr.sync = true - -$applications = Hash.new -$suffixinputs = Hash.new -$predefined = Hash.new -$runners = Hash.new - -$suffixinputs['pl'] = 'PERLINPUTS' -$suffixinputs['rb'] = 'RUBYINPUTS' -$suffixinputs['py'] = 'PYTHONINPUTS' -$suffixinputs['lua'] = 'LUAINPUTS' -$suffixinputs['jar'] = 'JAVAINPUTS' -$suffixinputs['pdf'] = 'PDFINPUTS' - -$predefined['texexec'] = 'texexec.rb' -$predefined['texutil'] = 'texutil.rb' -$predefined['texfont'] = 'texfont.pl' -$predefined['texshow'] = 'texshow.pl' - -$predefined['makempy'] = 'makempy.pl' -$predefined['mptopdf'] = 'mptopdf.pl' -$predefined['pstopdf'] = 'pstopdf.rb' - -$predefined['examplex'] = 'examplex.rb' -$predefined['concheck'] = 'concheck.rb' - -$predefined['runtools'] = 'runtools.rb' -$predefined['textools'] = 'textools.rb' -$predefined['tmftools'] = 'tmftools.rb' -$predefined['ctxtools'] = 'ctxtools.rb' -$predefined['rlxtools'] = 'rlxtools.rb' -$predefined['pdftools'] = 'pdftools.rb' -$predefined['mpstools'] = 'mpstools.rb' -$predefined['exatools'] = 'exatools.rb' -$predefined['xmltools'] = 'xmltools.rb' -# $predefined['luatools'] = 'luatools.lua' -# $predefined['mtxtools'] = 'mtxtools.rb' - -$predefined['newpstopdf'] = 'pstopdf.rb' -$predefined['newtexexec'] = 'texexec.rb' -$predefined['pdftrimwhite'] = 'pdftrimwhite.pl' - -$makelist = [ - # context - 'texexec', - 'texutil', - 'texfont', - # mp/ps - 'pstopdf', - 'mptopdf', - 'makempy', - # misc - 'ctxtools', - 'pdftools', - 'xmltools', - 'textools', - 'mpstools', - 'tmftools', - 'exatools', - 'runtools', - 'rlxtools', - 'pdftrimwhite', - 'texfind', - 'texshow' - # - # no 'luatools', - # no 'mtxtools', - # no, 'texmfstart' -] - -$scriptlist = 'rb|pl|py|lua|jar' -$documentlist = 'pdf|ps|eps|htm|html' - -$editor = ENV['TEXMFSTART_EDITOR'] || ENV['EDITOR'] || ENV['editor'] || 'scite' - -$crossover = true # to other tex tools, else only local -$kpse = nil - -def set_applications(page=1) - - $applications['unknown'] = '' - $applications['ruby'] = $applications['rb'] = 'ruby' - $applications['lua'] = $applications['lua'] = 'lua' - $applications['perl'] = $applications['pl'] = 'perl' - $applications['python'] = $applications['py'] = 'python' - $applications['java'] = $applications['jar'] = 'java' - - if $mswindows then - $applications['pdf'] = ['',"pdfopen --page #{page} --file",'acroread'] - $applications['html'] = ['','netscape','mozilla','opera','iexplore'] - $applications['ps'] = ['','gview32','gv','gswin32','gs'] - else - $applications['pdf'] = ["pdfopen --page #{page} --file",'acroread'] - $applications['html'] = ['netscape','mozilla','opera'] - $applications['ps'] = ['gview','gv','gs'] - end - - $applications['htm'] = $applications['html'] - $applications['eps'] = $applications['ps'] - - $runners['lua'] = "texlua" - -end - -set_applications() - -def check_kpse - if $kpse then - # already done - else - begin - if KpseRemote::available? then - $kpse = KpseRemote.new - if $kpse.okay? then - puts("kpse : remote") if $verbose - else - $kpse = KpseDirect.new - puts("kpse : direct (forced)") if $verbose - end - else - $kpse = KpseDirect.new - puts("kpse : direct") if $verbose - end - rescue - puts("kpse : direct (fallback)") if $verbose - end - end -end - -if $mswindows then - - GetShortPathName = Win32API.new('kernel32', 'GetShortPathName', ['P','P','N'], 'N') - GetLongPathName = Win32API.new('kernel32', 'GetLongPathName', ['P','P','N'], 'N') - - def dowith_pathname (filename,filemethod) - filename = filename.gsub(/\\/o,'/') # no gsub! because filename can be frozen - case filename - when /\;/o then - # could be a path spec - return filename - when /\s+/o then - # danger lurking - buffer = ' ' * 260 - length = filemethod.call(filename,buffer,buffer.size) - if length>0 then - return buffer.slice(0..length-1) - else - # when the path or file does not exist, nothing is returned - # so we try to handle the path separately from the basename - basename = File.basename(filename) - pathname = File.dirname(filename) - length = filemethod.call(pathname,buffer,260) - if length>0 then - return buffer.slice(0..length-1) + '/' + basename - else - return filename - end - end - else - # no danger - return filename - end - end - - def longpathname (filename) - dowith_pathname(filename,GetLongPathName) - end - - def shortpathname (filename) - dowith_pathname(filename,GetShortPathName) - end - -else - - def longpathname (filename) - filename - end - - def shortpathname (filename) - filename - end - -end - -class File - - # def File.needsupdate(oldname,newname) - # begin - # if $mswindows then - # return File.stat(oldname).mtime > File.stat(newname).mtime - # else - # return File.stat(oldname).mtime != File.stat(newname).mtime - # end - # rescue - # return true - # end - # end - - @@update_eps = 1 - - def File.needsupdate(oldname,newname) - begin - oldtime = File.stat(oldname).mtime.to_i - newtime = File.stat(newname).mtime.to_i - if newtime >= oldtime then - return false - elsif oldtime-newtime < @@update_eps then - return false - else - return true - end - rescue - return true - end - end - - def File.syncmtimes(oldname,newname) - return - begin - if $mswindows then - # does not work (yet) / gives future timestamp - # t = File.mtime(oldname) # i'm not sure if the time is frozen, so we do it here - # File.utime(0,t,oldname,newname) - else - t = File.mtime(oldname) # i'm not sure if the time is frozen, so we do it here - File.utime(0,t,oldname,newname) - end - rescue - end - end - - def File.timestamp(name) - begin - "#{File.stat(name).mtime}" - rescue - return 'unknown' - end - end - -end - -# def hashed (arr=[]) - # arg = if arr.class == String then arr.split(' ') else arr.dup end - # hsh = Hash.new - # if arg.length > 0 - # hsh['arguments'] = '' - # done = false - # arg.each do |s| - # if done then - # if s =~ / / then - # hsh['arguments'] += " \"#{s}\"" # maybe split on = - # else - # hsh['arguments'] += " #{s}" - # end - # else - # kvl = s.split('=') - # if kvl[0].sub!(/^\-+/,'') then - # hsh[kvl[0]] = if kvl.length > 1 then kvl[1] else true end - # else - # hsh['file'] = s - # done = true - # end - # end - # end - # end - # return hsh -# end - -def hashed (arr=[]) - arg = if arr.class == String then arr.split(' ') else arr.dup end - hsh = Hash.new - if arg.length > 0 - hsh['arguments'] = '' - done = false - arg.each do |s| - if done then - if s =~ /\s/ then - kvl = s.split('=') - if kvl[1] and kvl[1] !~ /^[\"\']/ then - hsh['arguments'] += ' ' + kvl[0] + "=" + '"' + kvl[1] + '"' - elsif s =~ /\s/ then - hsh['arguments'] += ' "' + s + '"' - else - hsh['arguments'] += ' ' + s - end - else - hsh['arguments'] += ' ' + s - end - else - kvl = s.split('=') - if kvl[0].sub!(/^\-+/,'') then - hsh[kvl[0]] = if kvl.length > 1 then kvl[1] else true end - else - hsh['file'] = s - done = true - end - end - end - end - return hsh -end - - -def launch(filename) - if $browser && $mswindows then - filename = filename.gsub(/\.[\/\\]/) do - Dir.getwd + '/' - end - report("launching #{filename}") - ie = WIN32OLE.new("InternetExplorer.Application") - ie.visible = true - ie.navigate(filename) - return true - else - return false - end -end - -# env|environment -# rel|relative -# loc|locate|kpse|path|file - -def quoted(str) - if str =~ /^\"/ then - return str - elsif str =~ / / then - return "\"#{str}\"" - else - return str - end -end - -def expanded(arg) # no "other text files", too restricted - arg.gsub(/(env|environment)\:([a-zA-Z\-\_\.0-9]+)/o) do - method, original, resolved = $1, $2, '' - if resolved = ENV[original] then - report("environment variable #{original} expands to #{resolved}") unless $report - quoted(resolved) - else - report("environment variable #{original} cannot be resolved") unless $report - quoted(original) - end - end . gsub(/(rel|relative)\:([a-zA-Z\-\_\.0-9]+)/o) do - method, original, resolved = $1, $2, '' - ['.','..','../..'].each do |r| - if FileTest.file?(File.join(r,original)) then - resolved = File.join(r,original) - break - end - end - if resolved.empty? then - quoted(original) - else - quoted(resolved) - end - end . gsub(/(kpse|loc|locate|file|path)\:([a-zA-Z\-\_\.0-9]+)/o) do - method, original, resolved = $1, $2, '' - if $program && ! $program.empty? then - # pstrings = ["-progname=#{$program}"] - pstrings = [$program] - else - # pstrings = ['','-progname=context'] - pstrings = ['','context'] - end - # auto suffix with texinputs as fall back - if ENV["_CTX_K_V_#{original}_"] then - resolved = ENV["_CTX_K_V_#{original}_"] - report("environment provides #{original} as #{resolved}") unless $report - quoted(resolved) - else - check_kpse - pstrings.each do |pstr| - if resolved.empty? then - # command = "kpsewhich #{pstr} #{original}" - # report("running #{command}") - report("locating '#{original}' in program space '#{pstr}'") - begin - # resolved = `#{command}`.chomp - $kpse.progname = pstr - $kpse.format = '' - resolved = $kpse.find_file(original).gsub(/\\/,'/') - rescue - resolved = '' - end - end - # elsewhere in the tree - if resolved.empty? then - # command = "kpsewhich #{pstr} -format=\"other text files\" #{original}" - # report("running #{command}") - report("locating '#{original}' in program space '#{pstr}' using format 'other text files'") - begin - # resolved = `#{command}`.chomp - $kpse.progname = pstr - $kpse.format = 'other text files' - resolved = $kpse.find_file(original).gsub(/\\/,'/') - rescue - resolved = '' - end - end - end - if resolved.empty? then - original = File.dirname(original) if method =~ /path/ - report("#{original} is not resolved") unless $report - ENV["_CTX_K_V_#{original}_"] = original if $crossover - quoted(original) - else - resolved = File.dirname(resolved) if method =~ /path/ - report("#{original} is resolved to #{resolved}") unless $report - ENV["_CTX_K_V_#{original}_"] = resolved if $crossover - quoted(resolved) - end - end - end -end - -def changeddir?(path) - if path.empty? then - return true - else - oldpath = File.expand_path(path) - begin - Dir.chdir(path) if not path.empty? - rescue - report("unable to change to directory: #{path}") - else - report("changed to directory: #{path}") - end - newpath = File.expand_path(Dir.getwd) - return oldpath == newpath - end -end - -def runcommand(command) - if $locate then - command = command.split(' ').collect do |c| - if c =~ /\//o then - begin - cc = File.expand_path(c) - c = cc if FileTest.file?(cc) - rescue - end - end - c - end . join(' ') - print command # to stdout and no newline - elsif $execute then - report("using 'exec' instead of 'system' call: #{command}") - exec(command) if changeddir?($path) - else - report("using 'system' call: #{command}") - system(command) if changeddir?($path) - end -end - -def join_command(args) - args[0] = $runners[args[0]] || args[0] - [args].join(' ') -end - -def runoneof(application,fullname,browserpermitted) - if browserpermitted && launch(fullname) then - return true - else - fullname = quoted(fullname) # added because MM ran into problems - report("starting #{$filename}") unless $report - output("\n") if $report && $verbose - applications = $applications[application.downcase] - if ! applications then - output("problems with determining application type") - return true - elsif applications.class == Array then - if $report then - output(join_command([fullname,expanded($arguments)])) - return true - else - applications.each do |a| - return true if runcommand(join_command([a,fullname,expanded($arguments)])) - end - end - elsif applications.empty? then - if $report then - output(join_command([fullname,expanded($arguments)])) - return true - else - return runcommand(join_command([fullname,expanded($arguments)])) - end - else - if $report then - output(join_command([applications,fullname,expanded($arguments)])) - return true - else - return runcommand(join_command([applications,fullname,expanded($arguments)])) - end - end - return false - end -end - -def report(str) - $stdout.puts(str) if $verbose -end - -def output(str) - $stdout.puts(str) -end - -def usage - print "version : #{$version} - 2003/2006 - www.pragma-ade.com\n" - print("\n") - print("usage : texmfstart [switches] filename [optional arguments]\n") - print("\n") - print("switches : --verbose --report --browser --direct --execute --locate --iftouched --ifchanged\n") - print(" --program --file --page --arguments --batch --edit --report --clear\n") - print(" --make --lmake --wmake --path --stubpath --indirect --before --after\n") - print(" --tree --autotree --environment --showenv\n") - print("\n") - print("example : texmfstart pstopdf.rb cow.eps\n") - print(" texmfstart --locate examplex.rb\n") - print(" texmfstart --execute examplex.rb\n") - print(" texmfstart --browser examplap.pdf\n") - print(" texmfstart showcase.pdf\n") - print(" texmfstart --page=2 --file=showcase.pdf\n") - print(" texmfstart --program=yourtex yourscript.rb arg-1 arg-2\n") - print(" texmfstart --direct xsltproc kpse:somefile.xsl somefile.xml\n") - print(" texmfstart --direct ruby rel:wn-cleanup-1.rb oldfile.xml newfile.xml\n") - print(" texmfstart bin:xsltproc env:somepreset path:somefile.xsl somefile.xml\n") - print(" texmfstart --iftouched=normal,lowres downsample.rb normal lowres\n") - print(" texmfstart --ifchanged=somefile.dat --direct processit somefile.dat\n") - print(" texmfstart bin:scite kpse:texmf.cnf\n") - print(" texmfstart --exec bin:scite *.tex\n") - print(" texmfstart --edit texmf.cnf\n") - print(" texmfstart --edit kpse:texmf.cnf\n") - print(" texmfstart --serve\n") - print("\n") - print(" texmfstart --stubpath=/usr/local/bin [--make --remove] --verbose all\n") - print(" texmfstart --stubpath=auto [--make --remove] all\n") - print("\n") - check_kpse -end - -# somehow registration does not work out (at least not under windows) -# the . is also not accepted by unix as seperator - -def tag(name) - if $crossover then "_CTX_K_S_#{name}_" else "TEXMFSTART.#{name}" end -end - -def registered?(filename) - return ENV[tag(filename)] != nil -end - -def registered(filename) - return ENV[tag(filename)] || 'unknown' -end - -def register(filename,fullname) - if fullname && ! fullname.empty? then # && FileTest.file?(fullname) - ENV[tag(filename)] = fullname - report("registering '#{filename}' as '#{fullname}'") - return true - else - return false - end -end - -def find(filename,program) - begin - filename = filename.sub(/script:/o, '') # so we have bin: and script: and nothing - if $predefined.key?(filename) then - report("expanding '#{filename}' to '#{$predefined[filename]}'") - filename = $predefined[filename] - end - if registered?(filename) then - report("already located '#{filename}'") - return registered(filename) - end - # create suffix list - if filename =~ /^(.*)\.(.+)$/ then - filename = $1 - suffixlist = [$2] - else - suffixlist = [$scriptlist.split('|'),$documentlist.split('|')].flatten - end - # first we honor a given path - if filename =~ /[\\\/]/ then - report("trying to honor '#{filename}'") - suffixlist.each do |suffix| - fullname = filename+'.'+suffix - if FileTest.file?(fullname) && register(filename,fullname) - return shortpathname(fullname) - end - end - end - filename.sub!(/^.*[\\\/]/, '') - # next we look at the current path and the callerpath - pathlist = [ ] - progpath = $applications[suffixlist[0]] - threadok = registered("THREAD") !~ /unknown/ - pathlist << ['.','current'] - pathlist << [$ownpath,'caller'] if $ownpath != '.' - pathlist << ["#{$ownpath}/../#{progpath}",'caller'] if progpath - pathlist << [registered("THREAD"),'thread'] if threadok - pathlist << ["#{registered("THREAD")}/../#{progpath}",'thread'] if progpath && threadok - pathlist.each do |p| - if p && ! p.empty? && ! (p[0] == 'unknown') then - suffixlist.each do |suffix| - fname = "#{filename}.#{suffix}" - fullname = File.expand_path(File.join(p[0],fname)) - report("locating '#{fname}' in #{p[1]} path '#{p[0]}'") - if FileTest.file?(fullname) && register(filename,fullname) then - report("'#{fname}' located in #{p[1]} path") - return shortpathname(fullname) - end - end - end - end - # now we consult environment settings - fullname = nil - check_kpse - $kpse.progname = program - suffixlist.each do |suffix| - begin - break unless $suffixinputs[suffix] - environment = ENV[$suffixinputs[suffix]] || ENV[$suffixinputs[suffix]+".#{$program}"] - if ! environment || environment.empty? then - begin - # environment = `kpsewhich -expand-path=\$#{$suffixinputs[suffix]}`.chomp - environment = $kpse.expand_path("\$#{$suffixinputs[suffix]}") - rescue - environment = nil - else - if environment && ! environment.empty? then - report("using kpsewhich variable #{$suffixinputs[suffix]}") - end - end - elsif environment && ! environment.empty? then - report("using environment variable #{$suffixinputs[suffix]}") - end - if environment && ! environment.empty? then - environment.split($separator).each do |e| - e.strip! - e = '.' if e == '\.' # somehow . gets escaped - e += '/' unless e =~ /[\\\/]$/ - fullname = e + filename + '.' + suffix - report("testing '#{fullname}'") - if FileTest.file?(fullname) then - break - else - fullname = nil - end - end - end - rescue - report("environment string '#{$suffixinputs[suffix]}' cannot be used to locate '#{filename}'") - fullname = nil - else - return shortpathname(fullname) if register(filename,fullname) - end - end - return shortpathname(fullname) if register(filename,fullname) - # then we fall back on kpsewhich - suffixlist.each do |suffix| - # TDS script scripts location as per 2004 - if suffix =~ /(#{$scriptlist})/ then - begin - report("using 'kpsewhich' to locate '#{filename}' in suffix space '#{suffix}' (1)") - # fullname = `kpsewhich -progname=#{program} -format=texmfscripts #{filename}.#{suffix}`.chomp - $kpse.format = 'texmfscripts' - fullname = $kpse.find_file("#{filename}.#{suffix}").gsub(/\\/,'/') - rescue - report("kpsewhich cannot locate '#{filename}' in suffix space '#{suffix}' (1)") - fullname = nil - else - return shortpathname(fullname) if register(filename,fullname) - end - end - # old TDS location: .../texmf/context/... - begin - report("using 'kpsewhich' to locate '#{filename}' in suffix space '#{suffix}' (2)") - # fullname = `kpsewhich -progname=#{program} -format="other text files" #{filename}.#{suffix}`.chomp - $kpse.format = 'other text files' - fullname = $kpse.find_file("#{filename}.#{suffix}").gsub(/\\/,'/') - rescue - report("kpsewhich cannot locate '#{filename}' in suffix space '#{suffix}' (2)") - fullname = nil - else - return shortpathname(fullname) if register(filename,fullname) - end - end - return shortpathname(fullname) if register(filename,fullname) - # let's take a look at the path - paths = ENV['PATH'].split($separator) - suffixlist.each do |s| - paths.each do |p| - suffixedname = "#{filename}.#{s}" - report("checking #{p} for #{filename}") - if FileTest.file?(File.join(p,suffixedname)) then - fullname = File.join(p,suffixedname) - return shortpathname(fullname) if register(filename,fullname) - end - end - end - # bad luck, we need to search the tree ourselves - if (suffixlist.length == 1) && (suffixlist.first =~ /(#{$documentlist})/) then - report("aggressively locating '#{filename}' in document trees") - begin - # texroot = `kpsewhich -expand-var=$SELFAUTOPARENT`.chomp - texroot = $kpse.expand_var("$SELFAUTOPARENT") - rescue - texroot = '' - else - texroot.sub!(/[\\\/][^\\\/]*?$/, '') - end - if not texroot.empty? then - sffxlst = suffixlist.join(',') - begin - report("locating '#{filename}' in document tree '#{texroot}/doc*'") - if (result = Dir.glob("#{texroot}/doc*/**/#{filename}.{#{sffxlst}}")) && result && result[0] && FileTest.file?(result[0]) then - fullname = result[0] - end - rescue - report("locating '#{filename}.#{suffixlist.join('|')}' in tree '#{texroot}' aborted") - end - end - return shortpathname(fullname) if register(filename,fullname) - end - report("aggressively locating '#{filename}' in tex trees") - begin - # textrees = `kpsewhich -expand-var=$TEXMF`.chomp - textrees = $kpse.expand_var("$TEXMF") - rescue - textrees = '' - end - if not textrees.empty? then - textrees.gsub!(/[\{\}\!]/, '') - textrees = textrees.split(',') - if (suffixlist.length == 1) && (suffixlist.first =~ /(#{$documentlist})/) then - speedup = ['doc**','**'] - else - speedup = ['**'] - end - sffxlst = suffixlist.join(',') - speedup.each do |speed| - textrees.each do |tt| - tt.gsub!(/[\\\/]$/, '') - if FileTest.directory?(tt) then - begin - report("locating '#{filename}' in tree '#{tt}/#{speed}/#{filename}.{#{sffxlst}}'") - if (result = Dir.glob("#{tt}/#{speed}/#{filename}.{#{sffxlst}}")) && result && result[0] && FileTest.file?(result[0]) then - fullname = result[0] - break - end - rescue - report("locating '#{filename}' in tree '#{tt}' aborted") - next - end - end - end - break if fullname && ! fullname.empty? - end - end - if register(filename,fullname) then - return shortpathname(fullname) - else - return '' - end - rescue - error, trace = $!, $@.join("\n") - report("fatal error: #{error}\n#{trace}") - # report("fatal error") - end -end - -def run(fullname) - if ! fullname || fullname.empty? then - output("the file '#{$filename}' is not found") - elsif FileTest.file?(fullname) then - begin - case fullname - when /\.(#{$scriptlist})$/i then - return runoneof($1,fullname,false) - when /\.(#{$documentlist})$/i then - return runoneof($1,fullname,true) - else - return runoneof('unknown',fullname,false) - end - rescue - report("starting '#{$filename}' in program space '#{$program}' fails (#{$!})") - end - else - report("the file '#{$filename}' in program space '#{$program}' is not accessible") - end - return false -end - -def direct(fullname) - begin - return runcommand([fullname.sub(/^(bin|binary)\:/, ''),expanded($arguments)].join(' ')) - rescue - return false - end -end - -def edit(filename) - begin - return runcommand([$editor,expanded(filename),expanded($arguments)].join(' ')) - rescue - return false - end -end - -def make(filename,windows=false,linux=false,remove=false) - basename = File.basename(filename).gsub(/\.[^.]+?$/, '') - if $stubpath == 'auto' then - basename = File.dirname($0) + '/' + basename - else - basename = $stubpath + '/' + basename unless $stubpath.empty? - end - if filename == 'texmfstart' then - program = 'ruby' - command = 'kpsewhich --format=texmfscripts --progname=context texmfstart.rb' - filename = `#{command}`.chomp.gsub(/\\/, '/') - if filename.empty? then - report("failure: #{command}") - return - elsif not remove then - if windows then - ['bat','exe'].each do |suffix| - if FileTest.file?("#{basename}.#{suffix}") then - report("windows stub '#{basename}.#{suffix}' skipped (already present)") - return - end - end - elsif linux && FileTest.file?(basename) then - report("unix stub '#{basename}' skipped (already present)") - return - end - end - else - program = nil - if filename =~ /[\\\/]/ && filename =~ /\.(#{$scriptlist})$/ then - program = $applications[$1] - end - filename = "\"#{filename}\"" if filename =~ /\s/ - program = 'texmfstart' if $indirect || ! program || program.empty? - end - begin - callname = $predefined[filename.sub(/\.*?$/,'')] || filename - if remove then - if windows && (File.delete(basename+'.bat') rescue false) then - report("windows stub '#{basename}.bat' removed (calls #{callname})") - elsif linux && (File.delete(basename) rescue false) then - report("unix stub '#{basename}' removed (calls #{callname})") - end - else - if windows && f = open(basename+'.bat','w') then - f.binmode - f.write("@echo off\015\012") - f.write("#{program} #{callname} %*\015\012") - f.close - report("windows stub '#{basename}.bat' made (calls #{callname})") - elsif linux && f = open(basename,'w') then - f.binmode - f.write("#!/bin/sh\012") - f.write("#{program} #{callname} \"$@\"\012") - f.close - report("unix stub '#{basename}' made (calls #{callname})") - end - end - rescue - report("failed to make stub '#{basename}' #{$!}") - return false - else - return true - end -end - -def process(&block) - if $iftouched then - files = $directives['iftouched'].split(',') - oldname, newname = files[0], files[1] - if oldname && newname && File.needsupdate(oldname,newname) then - report("file #{oldname}: #{File.timestamp(oldname)}") - report("file #{newname}: #{File.timestamp(newname)}") - report("file is touched, processing started") - yield - File.syncmtimes(oldname,newname) - else - report("file #{oldname} is untouched") - end - elsif $ifchanged then - filename = $directives['ifchanged'] - checkname = filename + ".md5" - oldchecksum, newchecksum = "old", "new" - begin - newchecksum = MD5.new(IO.read(filename)).hexdigest.upcase - rescue - newchecksum = "new" - else - begin - oldchecksum = IO.read(checkname).chomp - rescue - oldchecksum = "old" - end - end - if $verbose then - report("old checksum #{filename}: #{oldchecksum}") - report("new checksum #{filename}: #{newchecksum}") - end - if oldchecksum != newchecksum then - report("file is changed, processing started") - begin - File.open(checkname,'w') do |f| - f << newchecksum - end - rescue - end - yield - else - report("file #{filename} is unchanged") - end - else - yield - end -end - -def checkenvironment(tree) - report('') - ENV['TMP'] = ENV['TMP'] || ENV['TEMP'] || ENV['TMPDIR'] || ENV['HOME'] - case RUBY_PLATFORM - when /(mswin|bccwin|mingw|cygwin)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-mswin' - when /(linux)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-linux' - when /(darwin|rhapsody|nextstep)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-macosx' - # when /(netbsd|unix)/i then # todo - else # todo - end - ENV['TEXOS'] = "#{ENV['TEXOS'].sub(/^[\\\/]*/, '').sub(/[\\\/]*$/, '')}" - ENV['TEXPATH'] = tree.sub(/\/+$/,'') # + '/' - ENV['TEXMFOS'] = "#{ENV['TEXPATH']}/#{ENV['TEXOS']}" - report('') - report("preset : TEXPATH => #{ENV['TEXPATH']}") - report("preset : TEXOS => #{ENV['TEXOS']}") - report("preset : TEXMFOS => #{ENV['TEXMFOS']}") - report("preset : TMP => #{ENV['TMP']}") - report('') -end - -def loadfile(filename) - begin - IO.readlines(filename).each do |line| - case line.chomp - when /^[\#\%]/ then - # comment - when /^(.*?)\s*(\>|\=|\<)\s*(.*)\s*$/ then - # = assign | > prepend | < append - key, how, value = $1, $2, $3 - begin - # $SAFE = 0 - value.gsub!(/\%(.*?)\%/) do - ENV[$1] || '' - end - # value.gsub!(/\;/,$separator) if key =~ /PATH/i then - case how - when '=', '<<' then ENV[key] = value - when '?', '??' then ENV[key] = ENV[key] || value - when '<', '+=' then ENV[key] = (ENV[key] || '') + $separator + value - when '>', '=+' then ENV[key] = value + $separator + (ENV[key] ||'') - end - rescue - report("user set failed : #{key} (#{$!})") - else - report("user set : #{key} => #{ENV[key]}") - end - end - end - rescue - report("error in reading file '#{filename}'") - end -end - -def loadtree(tree) - begin - unless tree.empty? then - if File.directory?(tree) then - setuptex = File.join(tree,'setuptex.tmf') - else - setuptex = tree.dup - end - if FileTest.file?(setuptex) then - report("tex tree definition: #{setuptex}") - checkenvironment(File.dirname(setuptex)) - loadfile(setuptex) - else - report("no setup file '#{setuptex}'") - end - end - rescue - # maybe tree is empty or boolean (no arg given) - end -end - -def loadenvironment(environment) - begin - unless environment.empty? then - filename = if $path.empty? then environment else File.expand_path(File.join($path,environment)) end - if FileTest.file?(filename) then - report("environment : #{environment}") - loadfile(filename) - else - report("no environment file '#{environment}'") - end - end - rescue - report("problem while loading '#{environment}'") - end -end - -def show_environment - if $showenv then - keys = ENV.keys.sort - size = 0 - keys.each do |k| - size = k.size if k.size > size - end - report('') - keys.each do |k| - report("#{k.rjust(size)} => #{ENV[k]}") - end - report('') - end -end - -def execute(arguments) # br global - - arguments = arguments.split(/\s+/) if arguments.class == String - $directives = hashed(arguments) - - $help = $directives['help'] || false - $batch = $directives['batch'] || false - $filename = $directives['file'] || '' - $program = $directives['program'] || 'context' - $direct = $directives['direct'] || false - $edit = $directives['edit'] || false - $page = $directives['page'] || 1 - $browser = $directives['browser'] || false - $report = $directives['report'] || false - $verbose = $directives['verbose'] || false - $arguments = $directives['arguments'] || '' - $execute = $directives['execute'] || $directives['exec'] || false - $locate = $directives['locate'] || false - - $autotree = if $directives['autotree'] then (ENV['TEXMFSTART_TREE'] || ENV['TEXMFSTARTTREE'] || '') else '' end - - $path = $directives['path'] || '' - $tree = $directives['tree'] || $autotree || '' - $environment = $directives['environment'] || '' - - $make = $directives['make'] || false - $remove = $directives['remove'] || $directives['delete'] || false - $unix = $directives['unix'] || false - $windows = $directives['windows'] || $directives['mswin'] || false - $stubpath = $directives['stubpath'] || '' - $indirect = $directives['indirect'] || false - - $before = $directives['before'] || '' - $after = $directives['after'] || '' - - $iftouched = $directives['iftouched'] || false - $ifchanged = $directives['ifchanged'] || false - - $openoffice = $directives['oo'] || false - - $crossover = false if $directives['clear'] - - $showenv = $directives['showenv'] || false - $verbose = true if $showenv - - $serve = $directives['serve'] || false - - $verbose = true if (ENV['_CTX_VERBOSE_'] =~ /(y|yes|t|true|on)/io) && ! $locate && ! $report - - set_applications($page) - - # private: - - $selfmerge = $directives['selfmerge'] || false - $selfcleanup = $directives['selfclean'] || $directives['selfcleanup'] || false - - ENV['_CTX_VERBOSE_'] = 'yes' if $verbose - - if $openoffice then - if ENV['OOPATH'] then - if FileTest.directory?(ENV['OOPATH']) then - report("using open office python") - if $mswindows then - $applications['python'] = $applications['py'] = "\"#{File.join(ENV['OOPATH'],'program','python.bat')}\"" - else - $applications['python'] = $applications['py'] = File.join(ENV['OOPATH'],'python') - end - report("python path #{$applications['python']}") - else - report("environment variable 'OOPATH' does not exist") - end - else - report("environment variable 'OOPATH' is not set") - end - end - - if $selfmerge then - output("ruby libraries are cleaned up") if SelfMerge::cleanup - output("ruby libraries are merged") if SelfMerge::merge - return true - elsif $selfcleanup then - output("ruby libraries are cleaned up") if SelfMerge::cleanup - return true - elsif $serve then - if ENV['KPSEMETHOD'] && ENV['KPSEPORT'] then - # # kpse_merge_done: require 'base/kpseremote' - begin - KpseRemote::start_server - rescue - return false - else - return true - end - else - usage - puts("") - puts("message : set 'KPSEMETHOD' and 'KPSEPORT' variables") - return false - end - elsif $help || ! $filename || $filename.empty? then - usage - loadtree($tree) - loadenvironment($environment) - show_environment() - return true - elsif $batch && $filename && ! $filename.empty? then - # todo, take commands from file and avoid multiple starts and checks - return false - else - report("texmfstart version #{$version}") - loadtree($tree) - loadenvironment($environment) - show_environment() - if $make || $remove then - if $filename == 'all' then - makelist = $makelist - else - makelist = [$filename] - end - makelist.each do |filename| - if $windows then - make(filename,true,false,$remove) - elsif $unix then - make(filename,false,true,$remove) - else - make(filename,$mswindows,!$mswindows,$remove) - end - end - return true # guess - elsif $browser && $filename =~ /^http\:\/\// then - return launch($filename) - else - begin - process do - if $direct || $filename =~ /^bin\:/ then - return direct($filename) - elsif $edit && ! $editor.empty? then - return edit($filename) - else # script: or no prefix - command = find(shortpathname($filename),$program) - if command then - register("THREAD",File.dirname(File.expand_path(command))) - return run(command) - else - report('unable to locate program') - return false - end - end - end - rescue - report('fatal error in starting process') - return false - end - end - end - -end - -if execute(ARGV) then - report("\nexecution was successful") if $verbose - exit(0) -else - report("\nexecution failed") if $verbose - exit(1) -end +../../texmf-dist/scripts/context/ruby/texmfstart.rb
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/texshow b/Master/bin/powerpc-aix/texshow new file mode 120000 index 00000000000..52a03692b74 --- /dev/null +++ b/Master/bin/powerpc-aix/texshow @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texshow
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/textools b/Master/bin/powerpc-aix/textools index 7445eac371c..d1a20375405 100755..120000 --- a/Master/bin/powerpc-aix/textools +++ b/Master/bin/powerpc-aix/textools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart textools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/textools
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/texutil b/Master/bin/powerpc-aix/texutil index 607154af059..78f249c7f02 100755..120000 --- a/Master/bin/powerpc-aix/texutil +++ b/Master/bin/powerpc-aix/texutil @@ -1,2 +1 @@ -#!/bin/sh -texmfstart texutil.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/texutil
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/tftopl b/Master/bin/powerpc-aix/tftopl Binary files differindex 42668ca915e..5fcd6ed97dc 100755 --- a/Master/bin/powerpc-aix/tftopl +++ b/Master/bin/powerpc-aix/tftopl diff --git a/Master/bin/powerpc-aix/tie b/Master/bin/powerpc-aix/tie Binary files differindex 8acf1de19ab..b443b5dbcb1 100755 --- a/Master/bin/powerpc-aix/tie +++ b/Master/bin/powerpc-aix/tie diff --git a/Master/bin/powerpc-aix/tmftools b/Master/bin/powerpc-aix/tmftools index 7531a966390..444a68a40ee 100755..120000 --- a/Master/bin/powerpc-aix/tmftools +++ b/Master/bin/powerpc-aix/tmftools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart tmftools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/tmftools
\ No newline at end of file diff --git a/Master/bin/powerpc-aix/ttf2afm b/Master/bin/powerpc-aix/ttf2afm Binary files differindex c2ec86051ca..bd01dc07880 100755 --- a/Master/bin/powerpc-aix/ttf2afm +++ b/Master/bin/powerpc-aix/ttf2afm diff --git a/Master/bin/powerpc-aix/ttf2pk b/Master/bin/powerpc-aix/ttf2pk Binary files differindex 089f5e911ba..76552b10ace 100755 --- a/Master/bin/powerpc-aix/ttf2pk +++ b/Master/bin/powerpc-aix/ttf2pk diff --git a/Master/bin/powerpc-aix/ttf2tfm b/Master/bin/powerpc-aix/ttf2tfm Binary files differindex a43f996a878..479c98dd850 100755 --- a/Master/bin/powerpc-aix/ttf2tfm +++ b/Master/bin/powerpc-aix/ttf2tfm diff --git a/Master/bin/powerpc-aix/ttftotype42 b/Master/bin/powerpc-aix/ttftotype42 Binary files differindex ea39afb7b2a..363c74e5287 100755 --- a/Master/bin/powerpc-aix/ttftotype42 +++ b/Master/bin/powerpc-aix/ttftotype42 diff --git a/Master/bin/powerpc-aix/vftovp b/Master/bin/powerpc-aix/vftovp Binary files differindex acc3b129291..226f2d4782d 100755 --- a/Master/bin/powerpc-aix/vftovp +++ b/Master/bin/powerpc-aix/vftovp diff --git a/Master/bin/powerpc-aix/vlna b/Master/bin/powerpc-aix/vlna Binary files differnew file mode 100755 index 00000000000..3474d931afa --- /dev/null +++ b/Master/bin/powerpc-aix/vlna diff --git a/Master/bin/powerpc-aix/vptovf b/Master/bin/powerpc-aix/vptovf Binary files differindex 4fee96db5a5..29b7dbdc9c8 100755 --- a/Master/bin/powerpc-aix/vptovf +++ b/Master/bin/powerpc-aix/vptovf diff --git a/Master/bin/powerpc-aix/weave b/Master/bin/powerpc-aix/weave Binary files differindex d5b8a8ae277..6f972733ed2 100755 --- a/Master/bin/powerpc-aix/weave +++ b/Master/bin/powerpc-aix/weave diff --git a/Master/bin/powerpc-aix/xdvi b/Master/bin/powerpc-aix/xdvi index 847bf4acd69..04662a62d36 100755 --- a/Master/bin/powerpc-aix/xdvi +++ b/Master/bin/powerpc-aix/xdvi @@ -17,15 +17,22 @@ test -f /bin/bsh && test -z "$RUNNING_BSH" \ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } RUNNING_BSH= -# -help and -version only work if they are the only options. Therefore, -# we cannot give the "-name xdvi" parameter in that case. -# SU: Actually, with current xdvik, they should work in any position; but -# we may keep this for compatibility with older versions and non-k xdvi. +# -help and -version only used to work if they were the only options, +# so the "-name xdvi" parameter wasn't used in that case. With current +# xdvik, it should work in any case, but we keep this logic for compatibility +# with older xdvik and plain xdvi versions. +have_basename=`basename foo/bar 2>&1 | grep -i 'not found'` +if [ "$have_basename"xxx = "xxx" ]; then + BASE_NAME=`basename $0` +else + BASE_NAME=`echo $0 | sed 's!.*/!!'` +fi + case "$#:$1" in 1:-help|1:-version) NAMEOPT=;; *) - NAMEOPT='-name xdvi';; + NAMEOPT="-name $BASE_NAME";; esac xdviappfile=`kpsewhich -progname=xdvi --format='other text files' XDvi` @@ -43,4 +50,4 @@ if test -n "$xdviappfile"; then XFILESEARCHPATH="$xdviapppath:${XFILESEARCHPATH-%D}"; export XFILESEARCHPATH fi -exec xdvi-motif.bin $NAMEOPT ${1+"$@"} +exec xdvi-motif $NAMEOPT ${1+"$@"} diff --git a/Master/bin/powerpc-aix/xdvi-motif b/Master/bin/powerpc-aix/xdvi-motif Binary files differnew file mode 100755 index 00000000000..37cb17d6e4e --- /dev/null +++ b/Master/bin/powerpc-aix/xdvi-motif diff --git a/Master/bin/powerpc-aix/xdvi-motif.bin b/Master/bin/powerpc-aix/xdvi-motif.bin Binary files differdeleted file mode 100755 index 202f401a029..00000000000 --- a/Master/bin/powerpc-aix/xdvi-motif.bin +++ /dev/null diff --git a/Master/bin/powerpc-aix/xdvipdfmx b/Master/bin/powerpc-aix/xdvipdfmx Binary files differindex a3a7a982296..b571a615543 100755 --- a/Master/bin/powerpc-aix/xdvipdfmx +++ b/Master/bin/powerpc-aix/xdvipdfmx diff --git a/Master/bin/powerpc-aix/xetex b/Master/bin/powerpc-aix/xetex Binary files differindex fed521414cd..55c0259bc84 100755 --- a/Master/bin/powerpc-aix/xetex +++ b/Master/bin/powerpc-aix/xetex diff --git a/Master/bin/powerpc-aix/xindy.mem b/Master/bin/powerpc-aix/xindy.mem Binary files differindex 89d5073d44b..1716e0f5bee 100644 --- a/Master/bin/powerpc-aix/xindy.mem +++ b/Master/bin/powerpc-aix/xindy.mem diff --git a/Master/bin/powerpc-aix/xindy.run b/Master/bin/powerpc-aix/xindy.run Binary files differindex 3aadef59a9d..f772a684e27 100755 --- a/Master/bin/powerpc-aix/xindy.run +++ b/Master/bin/powerpc-aix/xindy.run diff --git a/Master/bin/powerpc-aix/xmltools b/Master/bin/powerpc-aix/xmltools index 03086d0436b..873458dcc92 100755..120000 --- a/Master/bin/powerpc-aix/xmltools +++ b/Master/bin/powerpc-aix/xmltools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart xmltools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/xmltools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/afm2pl b/Master/bin/sparc-solaris/afm2pl Binary files differindex c468267bf9f..56954d3a4ea 100755 --- a/Master/bin/sparc-solaris/afm2pl +++ b/Master/bin/sparc-solaris/afm2pl diff --git a/Master/bin/sparc-solaris/afm2tfm b/Master/bin/sparc-solaris/afm2tfm Binary files differindex 7525bddf08f..6416bde9a2b 100755 --- a/Master/bin/sparc-solaris/afm2tfm +++ b/Master/bin/sparc-solaris/afm2tfm diff --git a/Master/bin/sparc-solaris/aleph b/Master/bin/sparc-solaris/aleph Binary files differindex d3eb46be9dc..a4e265b81ca 100755 --- a/Master/bin/sparc-solaris/aleph +++ b/Master/bin/sparc-solaris/aleph diff --git a/Master/bin/sparc-solaris/bibtex b/Master/bin/sparc-solaris/bibtex Binary files differindex 9ded07a0477..9bed128b3a5 100755 --- a/Master/bin/sparc-solaris/bibtex +++ b/Master/bin/sparc-solaris/bibtex diff --git a/Master/bin/sparc-solaris/bibtex8 b/Master/bin/sparc-solaris/bibtex8 Binary files differindex 7a39c6a86bb..a17ca1aec1e 100755 --- a/Master/bin/sparc-solaris/bibtex8 +++ b/Master/bin/sparc-solaris/bibtex8 diff --git a/Master/bin/sparc-solaris/cfftot1 b/Master/bin/sparc-solaris/cfftot1 Binary files differindex b46a6208e9d..c6b7a820de7 100755 --- a/Master/bin/sparc-solaris/cfftot1 +++ b/Master/bin/sparc-solaris/cfftot1 diff --git a/Master/bin/sparc-solaris/ctangle b/Master/bin/sparc-solaris/ctangle Binary files differindex b2949b8c74d..d6933887c81 100755 --- a/Master/bin/sparc-solaris/ctangle +++ b/Master/bin/sparc-solaris/ctangle diff --git a/Master/bin/sparc-solaris/ctie b/Master/bin/sparc-solaris/ctie Binary files differindex 4d26b3e1d03..f018f422a6a 100755 --- a/Master/bin/sparc-solaris/ctie +++ b/Master/bin/sparc-solaris/ctie diff --git a/Master/bin/sparc-solaris/ctxtools b/Master/bin/sparc-solaris/ctxtools index 84e47bbee3c..66237b28340 100755..120000 --- a/Master/bin/sparc-solaris/ctxtools +++ b/Master/bin/sparc-solaris/ctxtools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart ctxtools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/ctxtools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/cweave b/Master/bin/sparc-solaris/cweave Binary files differindex 89a964972b6..e5d97a5c0d3 100755 --- a/Master/bin/sparc-solaris/cweave +++ b/Master/bin/sparc-solaris/cweave diff --git a/Master/bin/sparc-solaris/detex b/Master/bin/sparc-solaris/detex Binary files differindex 8584e5891ca..509bbeeb7fa 100755 --- a/Master/bin/sparc-solaris/detex +++ b/Master/bin/sparc-solaris/detex diff --git a/Master/bin/sparc-solaris/devnag b/Master/bin/sparc-solaris/devnag Binary files differindex 05fb7c64d1a..7507bfe5ef8 100755 --- a/Master/bin/sparc-solaris/devnag +++ b/Master/bin/sparc-solaris/devnag diff --git a/Master/bin/sparc-solaris/dmp b/Master/bin/sparc-solaris/dmp Binary files differindex 4f292422ada..77c4a1ef427 100755 --- a/Master/bin/sparc-solaris/dmp +++ b/Master/bin/sparc-solaris/dmp diff --git a/Master/bin/sparc-solaris/dt2dv b/Master/bin/sparc-solaris/dt2dv Binary files differindex ea66566b732..5c8668a232c 100755 --- a/Master/bin/sparc-solaris/dt2dv +++ b/Master/bin/sparc-solaris/dt2dv diff --git a/Master/bin/sparc-solaris/dvicopy b/Master/bin/sparc-solaris/dvicopy Binary files differindex 019fc753566..ffd4c962d8f 100755 --- a/Master/bin/sparc-solaris/dvicopy +++ b/Master/bin/sparc-solaris/dvicopy diff --git a/Master/bin/sparc-solaris/dvilj b/Master/bin/sparc-solaris/dvilj Binary files differindex 9af8222ec02..2d43ab8d50a 100755 --- a/Master/bin/sparc-solaris/dvilj +++ b/Master/bin/sparc-solaris/dvilj diff --git a/Master/bin/sparc-solaris/dvilj2p b/Master/bin/sparc-solaris/dvilj2p Binary files differindex db6021b13d0..82b74fa4cce 100755 --- a/Master/bin/sparc-solaris/dvilj2p +++ b/Master/bin/sparc-solaris/dvilj2p diff --git a/Master/bin/sparc-solaris/dvilj4 b/Master/bin/sparc-solaris/dvilj4 Binary files differindex fb83d399bff..b148b0d1c4c 100755 --- a/Master/bin/sparc-solaris/dvilj4 +++ b/Master/bin/sparc-solaris/dvilj4 diff --git a/Master/bin/sparc-solaris/dvilj4l b/Master/bin/sparc-solaris/dvilj4l Binary files differindex 125e2f79a8a..edd5b63b34a 100755 --- a/Master/bin/sparc-solaris/dvilj4l +++ b/Master/bin/sparc-solaris/dvilj4l diff --git a/Master/bin/sparc-solaris/dvipdfm b/Master/bin/sparc-solaris/dvipdfm Binary files differindex 9098b3e370a..b87ad186cde 100755 --- a/Master/bin/sparc-solaris/dvipdfm +++ b/Master/bin/sparc-solaris/dvipdfm diff --git a/Master/bin/sparc-solaris/dvipdfmx b/Master/bin/sparc-solaris/dvipdfmx Binary files differindex 23b91ced604..99dc1a02831 100755 --- a/Master/bin/sparc-solaris/dvipdfmx +++ b/Master/bin/sparc-solaris/dvipdfmx diff --git a/Master/bin/sparc-solaris/dvipng b/Master/bin/sparc-solaris/dvipng Binary files differindex a1d898be2d6..00a10cb2123 100755 --- a/Master/bin/sparc-solaris/dvipng +++ b/Master/bin/sparc-solaris/dvipng diff --git a/Master/bin/sparc-solaris/dvipos b/Master/bin/sparc-solaris/dvipos Binary files differindex ac342aa33bf..fc6a1f1871b 100755 --- a/Master/bin/sparc-solaris/dvipos +++ b/Master/bin/sparc-solaris/dvipos diff --git a/Master/bin/sparc-solaris/dvips b/Master/bin/sparc-solaris/dvips Binary files differindex d231c8dc47e..006416932f1 100755 --- a/Master/bin/sparc-solaris/dvips +++ b/Master/bin/sparc-solaris/dvips diff --git a/Master/bin/sparc-solaris/dvitomp b/Master/bin/sparc-solaris/dvitomp Binary files differindex e76330ac294..4b0fc723262 100755 --- a/Master/bin/sparc-solaris/dvitomp +++ b/Master/bin/sparc-solaris/dvitomp diff --git a/Master/bin/sparc-solaris/dvitype b/Master/bin/sparc-solaris/dvitype Binary files differindex 4db60a70b80..8e04514bab7 100755 --- a/Master/bin/sparc-solaris/dvitype +++ b/Master/bin/sparc-solaris/dvitype diff --git a/Master/bin/sparc-solaris/exatools b/Master/bin/sparc-solaris/exatools index 50ff0f07e46..304ccdc7e15 100755..120000 --- a/Master/bin/sparc-solaris/exatools +++ b/Master/bin/sparc-solaris/exatools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart exatools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/exatools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/gftodvi b/Master/bin/sparc-solaris/gftodvi Binary files differindex bded6c6bc66..5f8ded0f66d 100755 --- a/Master/bin/sparc-solaris/gftodvi +++ b/Master/bin/sparc-solaris/gftodvi diff --git a/Master/bin/sparc-solaris/gftopk b/Master/bin/sparc-solaris/gftopk Binary files differindex 051c2bf5142..d1c60dbfa1c 100755 --- a/Master/bin/sparc-solaris/gftopk +++ b/Master/bin/sparc-solaris/gftopk diff --git a/Master/bin/sparc-solaris/gftype b/Master/bin/sparc-solaris/gftype Binary files differindex 33c7ae2bec2..403dee324c1 100755 --- a/Master/bin/sparc-solaris/gftype +++ b/Master/bin/sparc-solaris/gftype diff --git a/Master/bin/sparc-solaris/gsftopk b/Master/bin/sparc-solaris/gsftopk Binary files differindex c9684812b98..0de1fdd18e8 100755 --- a/Master/bin/sparc-solaris/gsftopk +++ b/Master/bin/sparc-solaris/gsftopk diff --git a/Master/bin/sparc-solaris/hbf2gf b/Master/bin/sparc-solaris/hbf2gf Binary files differindex 31e9e85c39c..4605cd797f3 100755 --- a/Master/bin/sparc-solaris/hbf2gf +++ b/Master/bin/sparc-solaris/hbf2gf diff --git a/Master/bin/sparc-solaris/kpseaccess b/Master/bin/sparc-solaris/kpseaccess Binary files differindex 8a5f619d140..f80c7b87d8d 100755 --- a/Master/bin/sparc-solaris/kpseaccess +++ b/Master/bin/sparc-solaris/kpseaccess diff --git a/Master/bin/sparc-solaris/kpsereadlink b/Master/bin/sparc-solaris/kpsereadlink Binary files differindex 83aae335d62..bef643ee5c6 100755 --- a/Master/bin/sparc-solaris/kpsereadlink +++ b/Master/bin/sparc-solaris/kpsereadlink diff --git a/Master/bin/sparc-solaris/kpsestat b/Master/bin/sparc-solaris/kpsestat Binary files differindex 245cb2d3429..05f86286670 100755 --- a/Master/bin/sparc-solaris/kpsestat +++ b/Master/bin/sparc-solaris/kpsestat diff --git a/Master/bin/sparc-solaris/kpsewhich b/Master/bin/sparc-solaris/kpsewhich Binary files differindex 4fda785fae6..de5acae2bf0 100755 --- a/Master/bin/sparc-solaris/kpsewhich +++ b/Master/bin/sparc-solaris/kpsewhich diff --git a/Master/bin/sparc-solaris/lualatex b/Master/bin/sparc-solaris/lualatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/sparc-solaris/lualatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/luatex b/Master/bin/sparc-solaris/luatex Binary files differindex 4cf1c8ab5d5..a105da447d7 100755 --- a/Master/bin/sparc-solaris/luatex +++ b/Master/bin/sparc-solaris/luatex diff --git a/Master/bin/sparc-solaris/luatools b/Master/bin/sparc-solaris/luatools index cb3ec1add4a..8fd68d0935a 100755..120000 --- a/Master/bin/sparc-solaris/luatools +++ b/Master/bin/sparc-solaris/luatools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart luatools.lua "$@" +../../texmf-dist/scripts/context/stubs/unix/luatools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/makeindex b/Master/bin/sparc-solaris/makeindex Binary files differindex c16a403dc04..4fc922d29fb 100755 --- a/Master/bin/sparc-solaris/makeindex +++ b/Master/bin/sparc-solaris/makeindex diff --git a/Master/bin/sparc-solaris/makempx b/Master/bin/sparc-solaris/makempx Binary files differindex 01f41ad9ffa..99dfc28e4b2 100755 --- a/Master/bin/sparc-solaris/makempx +++ b/Master/bin/sparc-solaris/makempx diff --git a/Master/bin/sparc-solaris/makempy b/Master/bin/sparc-solaris/makempy index 4bf7a1af230..a3df543b304 100755..120000 --- a/Master/bin/sparc-solaris/makempy +++ b/Master/bin/sparc-solaris/makempy @@ -1,2 +1 @@ -#!/bin/sh -texmfstart makempy.pl "$@" +../../texmf-dist/scripts/context/stubs/unix/makempy
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/metafun b/Master/bin/sparc-solaris/metafun new file mode 120000 index 00000000000..96672bbb523 --- /dev/null +++ b/Master/bin/sparc-solaris/metafun @@ -0,0 +1 @@ +mpost
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/mf b/Master/bin/sparc-solaris/mf Binary files differindex 079a7c32be4..fa7e543da31 100755 --- a/Master/bin/sparc-solaris/mf +++ b/Master/bin/sparc-solaris/mf diff --git a/Master/bin/sparc-solaris/mf-nowin b/Master/bin/sparc-solaris/mf-nowin Binary files differindex 44d13c79d69..61aa4b367be 100755 --- a/Master/bin/sparc-solaris/mf-nowin +++ b/Master/bin/sparc-solaris/mf-nowin diff --git a/Master/bin/sparc-solaris/mft b/Master/bin/sparc-solaris/mft Binary files differindex d929953d5f5..110e2eb679d 100755 --- a/Master/bin/sparc-solaris/mft +++ b/Master/bin/sparc-solaris/mft diff --git a/Master/bin/sparc-solaris/mktexlsr b/Master/bin/sparc-solaris/mktexlsr index bd9b56b1906..2c4ac96f3dd 100755 --- a/Master/bin/sparc-solaris/mktexlsr +++ b/Master/bin/sparc-solaris/mktexlsr @@ -5,26 +5,32 @@ # installation won't write this script over yours.) # # Suitable for calling from cron, as in: -# 0 * * * * cd /your/texmf/root && /usr/local/bin/mktexlsr -# unless the scripts live in a different directory than the 'kpseaccess', -# 'kpsestat', 'kpsereadlink', and 'kpsewhich' binaries. +# 0 * * * * cd /your/texmf/root && /usr/local/texlive/bin/mktexlsr # # Originally written as `texhash' by Thomas Esser # <te@dbs.uni-hannover.de>, Okt., 1994. # Public domain. -version='$Id: mktexlsr 8399 2008-05-28 22:19:34Z karl $' +version='$Id: mktexlsr 9164 2008-07-02 17:42:11Z karl $' progname=`echo $0 | sed 's%.*/%%'` usage="Usage: $progname [DIR]... -The only options are --help, --version, --verbose, --quiet, and --silent. +Rebuild ls-R filename databases. If one or more arguments DIRS are +given, these are used as the directories in which to build ls-R. Else +all directories in the search path for ls-R files (\$TEXMFDBS) are used. + +Options: + --dry-run do not actually update anything + --help display this help and exit + --quiet cancel --verbose + --silent same as --quiet + --verbose explain what is being done + --version output version information and exit + If standard input is a terminal, --verbose is on by default. ---quiet and --silent are synonyms, and cancel --verbose. -Rebuild all necessary ls-R filename databases completely. If one or -more arguments DIRS are given, these are used as texmf directories to -build ls-R for. Else all directories in the search path for ls-R files -(\$TEXMFDBS) are used." +Report bugs to tex-k@tug.org. +" # MS-DOS and MS-Windows define $COMSPEC or $ComSpec and use `;' to separate # directories in path lists whereas Unix uses `:'. Make an exception for @@ -53,6 +59,8 @@ case $dirname in esac if tty -s; then verbose=true; else verbose=false; fi +dry_run=false +trees= # A copy of some stuff from mktex.opt, so we can run in the presence of # terminally damaged ls-R files. @@ -66,9 +74,19 @@ while test $# -gt 0; do exit 0 elif test "x$1" = x--verbose || test "x$1" = x-verbose; then verbose=true + elif test "x$1" = x--dry-run || test "x$1" = x-n; then + dry_run=true elif test "x$1" = x--quiet || test "x$1" = x--silent \ || test "x$1" = x-quiet || test "x$1" = x-silent ; then verbose=false + elif test "x$1" = x--; then + : + elif echo "x$1" | grep '^x-' >/dev/null; then + echo "$progname: unknown option $1, try --help if you need it." >&2 + exit 1 + else + test -d "$1" || echo "$progname: $1 not a directory." >&2 + trees="$trees $1" # don't want to update system dirs fi shift done @@ -79,16 +97,21 @@ ls_R_magic='% ls-R -- filename database for kpathsea; do not change this line.' # The old string, which should continue to work. old_ls_R_magic='% ls-R -- maintained by MakeTeXls-R; do not change this line.' -trap 'cd / ; test -z "$db_dir_tmp" || rm -rf "$db_dir_tmp"; exit' 0 1 2 3 7 13 15 +trap 'cd /; test -z "$db_dir_tmp" || rm -rf "$db_dir_tmp"; exit' 0 1 2 3 7 13 15 # Get list of directories from $TEXMFDBS; eliminate duplicates. -test $# = 0 && { - OIFS=$IFS - IFS=' +{ + if test -n "$trees"; then + set x $trees + else + OIFS=$IFS # want just a newline + IFS=' ' - set x `kpsewhich --show-path=ls-R | tr : ' -' | sort | uniq`; shift - IFS=$OIFS + set x `kpsewhich --show-path=ls-R | tr : ' +' | sort | uniq` + IFS=$OIFS + fi + shift } for TEXMFLS_R in "$@"; do @@ -98,8 +121,8 @@ for TEXMFLS_R in "$@"; do /* | [A-z]:/*) ;; *) TEXMFLS_R="`pwd`/$TEXMFLS_R" esac - # Allow for ls-R and ls-r to exist. But create ls-R if we're working - # from scratch. + # Allow for either ls-R and ls-r to exist. But create ls-R if we're + # working from scratch. if test -f "$TEXMFLS_R/ls-R"; then db_file="$TEXMFLS_R/ls-R" elif test -f "$TEXMFLS_R/ls-r"; then @@ -117,6 +140,8 @@ for TEXMFLS_R in "$@"; do esac db_dir=`echo "$db_file" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname + # want to be silent if the directory doesn't exist, since the ls-R + # path ordinarily contains many nonexistent directories. test -d "$db_dir" || continue test -w "$db_dir" || { echo "$progname: $db_dir: directory not writable. Skipping..." >&2; continue; } @@ -141,6 +166,8 @@ for TEXMFLS_R in "$@"; do rm -f "$db_file_tmp" $verbose && echo "$progname: Updating $db_file... " >&2 + $dry_run && continue + echo "$ls_R_magic" >"$db_file_tmp" # The main task. We put ./: in the output, so top-level files can be diff --git a/Master/bin/sparc-solaris/mktextfm b/Master/bin/sparc-solaris/mktextfm index a423d0309b0..8884351d7a1 100755 --- a/Master/bin/sparc-solaris/mktextfm +++ b/Master/bin/sparc-solaris/mktextfm @@ -48,7 +48,7 @@ esac ( NAME=`basename "$1" .tfm` -MAG=1 +MAG=0 #DEST="$2" DPI=$BDPI diff --git a/Master/bin/sparc-solaris/mpost b/Master/bin/sparc-solaris/mpost Binary files differindex 97df904b0cb..e34d8cc1fc5 100755 --- a/Master/bin/sparc-solaris/mpost +++ b/Master/bin/sparc-solaris/mpost diff --git a/Master/bin/sparc-solaris/mpstools b/Master/bin/sparc-solaris/mpstools index b4c8f634548..caf4ae949f7 100755..120000 --- a/Master/bin/sparc-solaris/mpstools +++ b/Master/bin/sparc-solaris/mpstools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart mpstools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/mpstools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/mptopdf b/Master/bin/sparc-solaris/mptopdf index 980a3123d1a..83172e791cd 100755..120000 --- a/Master/bin/sparc-solaris/mptopdf +++ b/Master/bin/sparc-solaris/mptopdf @@ -1,2 +1 @@ -#!/bin/sh -texmfstart mptopdf.pl "$@" +../../texmf-dist/scripts/context/stubs/unix/mptopdf
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/mtxtools b/Master/bin/sparc-solaris/mtxtools index 2922e0b4674..d99a8081bb9 100755..120000 --- a/Master/bin/sparc-solaris/mtxtools +++ b/Master/bin/sparc-solaris/mtxtools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart mtxtools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/mtxtools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/odvicopy b/Master/bin/sparc-solaris/odvicopy Binary files differindex 2adccc52459..173d670e6c2 100755 --- a/Master/bin/sparc-solaris/odvicopy +++ b/Master/bin/sparc-solaris/odvicopy diff --git a/Master/bin/sparc-solaris/odvitype b/Master/bin/sparc-solaris/odvitype Binary files differindex 43bc92585e1..ecc5a1f5e4f 100755 --- a/Master/bin/sparc-solaris/odvitype +++ b/Master/bin/sparc-solaris/odvitype diff --git a/Master/bin/sparc-solaris/omega b/Master/bin/sparc-solaris/omega Binary files differindex 3a38a25860e..60525e15215 100755 --- a/Master/bin/sparc-solaris/omega +++ b/Master/bin/sparc-solaris/omega diff --git a/Master/bin/sparc-solaris/omfonts b/Master/bin/sparc-solaris/omfonts Binary files differindex 395afbdfb96..5dfc53c6d1e 100755 --- a/Master/bin/sparc-solaris/omfonts +++ b/Master/bin/sparc-solaris/omfonts diff --git a/Master/bin/sparc-solaris/otangle b/Master/bin/sparc-solaris/otangle Binary files differindex 96182c4f752..c9b01f7272f 100755 --- a/Master/bin/sparc-solaris/otangle +++ b/Master/bin/sparc-solaris/otangle diff --git a/Master/bin/sparc-solaris/otfinfo b/Master/bin/sparc-solaris/otfinfo Binary files differindex ca7f2fd2153..93517b70a1e 100755 --- a/Master/bin/sparc-solaris/otfinfo +++ b/Master/bin/sparc-solaris/otfinfo diff --git a/Master/bin/sparc-solaris/otftotfm b/Master/bin/sparc-solaris/otftotfm Binary files differindex 6e20717392a..b3a3b6aef2f 100755 --- a/Master/bin/sparc-solaris/otftotfm +++ b/Master/bin/sparc-solaris/otftotfm diff --git a/Master/bin/sparc-solaris/otp2ocp b/Master/bin/sparc-solaris/otp2ocp Binary files differindex 311b2440af5..7441bcc902a 100755 --- a/Master/bin/sparc-solaris/otp2ocp +++ b/Master/bin/sparc-solaris/otp2ocp diff --git a/Master/bin/sparc-solaris/outocp b/Master/bin/sparc-solaris/outocp Binary files differindex 9be2db1e9cc..7f62be70428 100755 --- a/Master/bin/sparc-solaris/outocp +++ b/Master/bin/sparc-solaris/outocp diff --git a/Master/bin/sparc-solaris/patgen b/Master/bin/sparc-solaris/patgen Binary files differindex fe9aac11173..da1a0eca27d 100755 --- a/Master/bin/sparc-solaris/patgen +++ b/Master/bin/sparc-solaris/patgen diff --git a/Master/bin/sparc-solaris/pdflualatex b/Master/bin/sparc-solaris/pdflualatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/sparc-solaris/pdflualatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/pdfluatex b/Master/bin/sparc-solaris/pdfluatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/sparc-solaris/pdfluatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/pdftex b/Master/bin/sparc-solaris/pdftex Binary files differindex c839de0a157..7b4f74cff5c 100755 --- a/Master/bin/sparc-solaris/pdftex +++ b/Master/bin/sparc-solaris/pdftex diff --git a/Master/bin/sparc-solaris/pdftools b/Master/bin/sparc-solaris/pdftools index 92ee803a868..fa012780ccc 100755..120000 --- a/Master/bin/sparc-solaris/pdftools +++ b/Master/bin/sparc-solaris/pdftools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart pdftools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/pdftools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/pdftrimwhite b/Master/bin/sparc-solaris/pdftrimwhite new file mode 120000 index 00000000000..46526e8ffcc --- /dev/null +++ b/Master/bin/sparc-solaris/pdftrimwhite @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/pdftrimwhite
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/pktogf b/Master/bin/sparc-solaris/pktogf Binary files differindex ba4536d1e95..91dc7eeb6d2 100755 --- a/Master/bin/sparc-solaris/pktogf +++ b/Master/bin/sparc-solaris/pktogf diff --git a/Master/bin/sparc-solaris/pktype b/Master/bin/sparc-solaris/pktype Binary files differindex 5c77fce0145..68f7229320d 100755 --- a/Master/bin/sparc-solaris/pktype +++ b/Master/bin/sparc-solaris/pktype diff --git a/Master/bin/sparc-solaris/pltotf b/Master/bin/sparc-solaris/pltotf Binary files differindex f728e78530a..731293244ca 100755 --- a/Master/bin/sparc-solaris/pltotf +++ b/Master/bin/sparc-solaris/pltotf diff --git a/Master/bin/sparc-solaris/pooltype b/Master/bin/sparc-solaris/pooltype Binary files differindex 44ebe6599ce..d1c56595a65 100755 --- a/Master/bin/sparc-solaris/pooltype +++ b/Master/bin/sparc-solaris/pooltype diff --git a/Master/bin/sparc-solaris/ps2pk b/Master/bin/sparc-solaris/ps2pk Binary files differindex 640b1b7443e..ddd83357731 100755 --- a/Master/bin/sparc-solaris/ps2pk +++ b/Master/bin/sparc-solaris/ps2pk diff --git a/Master/bin/sparc-solaris/pst2pdf b/Master/bin/sparc-solaris/pst2pdf new file mode 120000 index 00000000000..60a28335578 --- /dev/null +++ b/Master/bin/sparc-solaris/pst2pdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/pst2pdf/pst2pdf.pl
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/pstopdf b/Master/bin/sparc-solaris/pstopdf index 5b38ed426cb..44478ee1dd4 100755..120000 --- a/Master/bin/sparc-solaris/pstopdf +++ b/Master/bin/sparc-solaris/pstopdf @@ -1,2 +1 @@ -#!/bin/sh -texmfstart pstopdf.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/pstopdf
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/rlxtools b/Master/bin/sparc-solaris/rlxtools index 41cea40fc09..a5078af4f10 100755..120000 --- a/Master/bin/sparc-solaris/rlxtools +++ b/Master/bin/sparc-solaris/rlxtools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart rlxtools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/rlxtools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/runtools b/Master/bin/sparc-solaris/runtools index ff9a333791b..127f29a36df 100755..120000 --- a/Master/bin/sparc-solaris/runtools +++ b/Master/bin/sparc-solaris/runtools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart runtools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/runtools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/synctex b/Master/bin/sparc-solaris/synctex Binary files differindex 617d84472f3..bbfd90825b1 100755 --- a/Master/bin/sparc-solaris/synctex +++ b/Master/bin/sparc-solaris/synctex diff --git a/Master/bin/sparc-solaris/t4ht b/Master/bin/sparc-solaris/t4ht Binary files differindex 0471eced786..c80d6f042d8 100755 --- a/Master/bin/sparc-solaris/t4ht +++ b/Master/bin/sparc-solaris/t4ht diff --git a/Master/bin/sparc-solaris/tangle b/Master/bin/sparc-solaris/tangle Binary files differindex 290347e3656..0ad29c1b246 100755 --- a/Master/bin/sparc-solaris/tangle +++ b/Master/bin/sparc-solaris/tangle diff --git a/Master/bin/sparc-solaris/tex b/Master/bin/sparc-solaris/tex Binary files differindex 472b44d013e..0df7bd4dcb8 100755 --- a/Master/bin/sparc-solaris/tex +++ b/Master/bin/sparc-solaris/tex diff --git a/Master/bin/sparc-solaris/tex4ht b/Master/bin/sparc-solaris/tex4ht Binary files differindex 08b7126964a..0ee4df2ddc5 100755 --- a/Master/bin/sparc-solaris/tex4ht +++ b/Master/bin/sparc-solaris/tex4ht diff --git a/Master/bin/sparc-solaris/texexec b/Master/bin/sparc-solaris/texexec index 2158172906a..36d22caefe7 100755..120000 --- a/Master/bin/sparc-solaris/texexec +++ b/Master/bin/sparc-solaris/texexec @@ -1,2 +1 @@ -#!/bin/sh -texmfstart texexec.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/texexec
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/texfind b/Master/bin/sparc-solaris/texfind new file mode 120000 index 00000000000..e450f1060a3 --- /dev/null +++ b/Master/bin/sparc-solaris/texfind @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texfind
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/texfont b/Master/bin/sparc-solaris/texfont index a91f786e3f8..a3756e037ce 100755..120000 --- a/Master/bin/sparc-solaris/texfont +++ b/Master/bin/sparc-solaris/texfont @@ -1,2 +1 @@ -#!/bin/sh -texmfstart texfont.pl "$@" +../../texmf-dist/scripts/context/stubs/unix/texfont
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/texlinks b/Master/bin/sparc-solaris/texlinks index 48657905634..d8e51550924 100755 --- a/Master/bin/sparc-solaris/texlinks +++ b/Master/bin/sparc-solaris/texlinks @@ -149,7 +149,7 @@ install_link() esac case $src in - */cont-??|*/metafun|*/mptopdf) + */cont-??|*/mptopdf) # context includes wrapper scripts that create/run these. verbose_echo "skipped ConTeXtish symlink $src -> $dest (special case)" ;; diff --git a/Master/bin/sparc-solaris/texmfstart b/Master/bin/sparc-solaris/texmfstart index e43929213f5..db6dee0a29c 100755..120000 --- a/Master/bin/sparc-solaris/texmfstart +++ b/Master/bin/sparc-solaris/texmfstart @@ -1,2501 +1 @@ -#!/usr/bin/env ruby - -# program : texmfstart -# copyright : PRAGMA Advanced Document Engineering -# version : 1.9.0 - 2003/2006 -# author : Hans Hagen -# -# project : ConTeXt / eXaMpLe -# info : j.hagen@xs4all.nl -# www : www.pragma-pod.com / www.pragma-ade.com - -# no special requirements, i.e. no exa modules/classes used - -# texmfstart [switches] filename [optional arguments] -# -# ruby2exe texmfstart --help -> avoids stub test -# -# Of couse I can make this into a nice class, which i'll undoubtely will -# do when I feel the need. In that case it will be part of a bigger game. - -# turning this into a service would be nice, so some day ... - -# --locate => provides location -# --exec => exec instead of system -# --iftouched=a,b => only if timestamp a<>b -# --ifchanged=a,b => only if checksum changed -# -# file: path: bin: - -# texmfstart --exec bin:scite *.tex - -# we don't depend on other libs - -$: << File.expand_path(File.dirname($0)) ; $: << File.join($:.last,'lib') ; $:.uniq! - -require "rbconfig" -require "md5" - -# funny, selfmergs was suddenly broken to case problems - -# kpse_merge_done: require 'base/kpseremote' -# kpse_merge_done: require 'base/kpsedirect' -# kpse_merge_done: require 'base/kpsefast' -# kpse_merge_done: require 'base/merge' - -# kpse_merge_start - -# kpse_merge_file: 't:/ruby/base/kpsefast.rb' - -# module : base/kpsefast -# copyright : PRAGMA Advanced Document Engineering -# version : 2005 -# author : Hans Hagen -# -# project : ConTeXt / eXaMpLe -# concept : Hans Hagen -# info : j.hagen@xs4all.nl - -# todo: multiple cnf files -# - -class String - - def split_path - if self =~ /\;/o || self =~ /^[a-z]\:/io then - self.split(";") - else - self.split(":") - end - end - -end - -class Array - - def join_path - self.join(File::PATH_SEPARATOR) - end - -end - -class File - - def File.locate_file(path,name) - begin - files = Dir.entries(path) - if files.include?(name) then - fullname = File.join(path,name) - return fullname if FileTest.file?(fullname) - end - files.each do |p| - fullname = File.join(path,p) - if p != '.' and p != '..' and FileTest.directory?(fullname) and result = locate_file(fullname,name) then - return result - end - end - rescue - # bad path - end - return nil - end - - def File.glob_file(pattern) - return Dir.glob(pattern).first - end - -end - -module KpseUtil - - # to be adapted, see loading cnf file - - @@texmftrees = ['texmf-local','texmf.local','../..','texmf'] # '../..' is for gwtex - @@texmfcnf = 'texmf.cnf' - - def KpseUtil::identify - # we mainly need to identify the local tex stuff and wse assume that - # the texmfcnf variable is set; otherwise we need to expand the - # TEXMF variable and that takes time since it may involve more - ownpath = File.expand_path($0) - if ownpath.gsub!(/texmf.*?$/o, '') then - ENV['SELFAUTOPARENT'] = ownpath - else - ENV['SELFAUTOPARENT'] = '.' # fall back - # may be too tricky: - # - # (ENV['PATH'] ||'').split_path.each do |p| - # if p.gsub!(/texmf.*?$/o, '') then - # ENV['SELFAUTOPARENT'] = p - # break - # end - # end - end - filenames = Array.new - if ENV['TEXMFCNF'] && ! ENV['TEXMFCNF'].empty? then - ENV['TEXMFCNF'].to_s.split_path.each do |path| - filenames << File.join(path,@@texmfcnf) - end - elsif ENV['SELFAUTOPARENT'] == '.' then - filenames << File.join('.',@@texmfcnf) - else - @@texmftrees.each do |tree| - filenames << File.join(ENV['SELFAUTOPARENT'],tree,'web2c',@@texmfcnf) - end - end - loop do - busy = false - filenames.collect! do |f| - f.gsub(/\$([a-zA-Z0-9\_\-]+)/o) do - if (! ENV[$1]) || (ENV[$1] == $1) then - "$#{$1}" - else - busy = true - ENV[$1] - end - end - end - break unless busy - end - filenames.delete_if do |f| - ! FileTest.file?(f) - end - return filenames - end - - def KpseUtil::environment - Hash.new.merge(ENV) - end - -end - -class KpseFast - - # formats are an incredible inconsistent mess - - @@suffixes = Hash.new - @@formats = Hash.new - @@suffixmap = Hash.new - - @@texmfcnf = 'texmf.cnf' - - @@suffixes['gf'] = ['.<resolution>gf'] # todo - @@suffixes['pk'] = ['.<resolution>pk'] # todo - @@suffixes['tfm'] = ['.tfm'] - @@suffixes['afm'] = ['.afm'] - @@suffixes['base'] = ['.base'] - @@suffixes['bib'] = ['.bib'] - @@suffixes['bst'] = ['.bst'] - @@suffixes['cnf'] = ['.cnf'] - @@suffixes['ls-R'] = ['ls-R', 'ls-r'] - @@suffixes['fmt'] = ['.fmt', '.efmt', '.efm', '.ofmt', '.ofm', '.oft', '.eofmt', '.eoft', '.eof', '.pfmt', '.pfm', '.epfmt', '.epf', '.xpfmt', '.xpf', '.afmt', '.afm'] - @@suffixes['map'] = ['.map'] - @@suffixes['mem'] = ['.mem'] - @@suffixes['mf'] = ['.mf'] - @@suffixes['mfpool'] = ['.pool'] - @@suffixes['mft'] = ['.mft'] - @@suffixes['mp'] = ['.mp'] - @@suffixes['mppool'] = ['.pool'] - @@suffixes['ocp'] = ['.ocp'] - @@suffixes['ofm'] = ['.ofm', '.tfm'] - @@suffixes['opl'] = ['.opl'] - @@suffixes['otp'] = ['.otp'] - @@suffixes['ovf'] = ['.ovf'] - @@suffixes['ovp'] = ['.ovp'] - @@suffixes['graphic/figure'] = ['.eps', '.epsi'] - @@suffixes['tex'] = ['.tex'] - @@suffixes['texpool'] = ['.pool'] - @@suffixes['PostScript header'] = ['.pro'] - @@suffixes['type1 fonts'] = ['.pfa', '.pfb'] - @@suffixes['vf'] = ['.vf'] - @@suffixes['ist'] = ['.ist'] - @@suffixes['truetype fonts'] = ['.ttf', '.ttc'] - @@suffixes['web'] = ['.web', '.ch'] - @@suffixes['cweb'] = ['.w', '.web', '.ch'] - @@suffixes['enc files'] = ['.enc'] - @@suffixes['cmap files'] = ['.cmap'] - @@suffixes['subfont definition files'] = ['.sfd'] - @@suffixes['lig files'] = ['.lig'] - @@suffixes['bitmap font'] = [] - @@suffixes['MetaPost support'] = [] - @@suffixes['TeX system documentation'] = [] - @@suffixes['TeX system sources'] = [] - @@suffixes['Troff fonts'] = [] - @@suffixes['dvips config'] = [] - @@suffixes['type42 fonts'] = [] - @@suffixes['web2c files'] = [] - @@suffixes['other text files'] = [] - @@suffixes['other binary files'] = [] - @@suffixes['misc fonts'] = [] - @@suffixes['opentype fonts'] = [] - @@suffixes['pdftex config'] = [] - @@suffixes['texmfscripts'] = [] - - # replacements - - @@suffixes['fmt'] = ['.fmt'] - @@suffixes['type1 fonts'] = ['.pfa', '.pfb', '.pfm'] - @@suffixes['tex'] = ['.tex', '.xml'] - @@suffixes['texmfscripts'] = ['rb','lua','py','pl'] - - @@suffixes.keys.each do |k| @@suffixes[k].each do |s| @@suffixmap[s] = k end end - - # TTF2TFMINPUTS - # MISCFONTS - # TEXCONFIG - # DVIPDFMINPUTS - # OTFFONTS - - @@formats['gf'] = '' - @@formats['pk'] = '' - @@formats['tfm'] = 'TFMFONTS' - @@formats['afm'] = 'AFMFONTS' - @@formats['base'] = 'MFBASES' - @@formats['bib'] = '' - @@formats['bst'] = '' - @@formats['cnf'] = '' - @@formats['ls-R'] = '' - @@formats['fmt'] = 'TEXFORMATS' - @@formats['map'] = 'TEXFONTMAPS' - @@formats['mem'] = 'MPMEMS' - @@formats['mf'] = 'MFINPUTS' - @@formats['mfpool'] = 'MFPOOL' - @@formats['mft'] = '' - @@formats['mp'] = 'MPINPUTS' - @@formats['mppool'] = 'MPPOOL' - @@formats['ocp'] = 'OCPINPUTS' - @@formats['ofm'] = 'OFMFONTS' - @@formats['opl'] = 'OPLFONTS' - @@formats['otp'] = 'OTPINPUTS' - @@formats['ovf'] = 'OVFFONTS' - @@formats['ovp'] = 'OVPFONTS' - @@formats['graphic/figure'] = '' - @@formats['tex'] = 'TEXINPUTS' - @@formats['texpool'] = 'TEXPOOL' - @@formats['PostScript header'] = 'TEXPSHEADERS' - @@formats['type1 fonts'] = 'T1FONTS' - @@formats['vf'] = 'VFFONTS' - @@formats['ist'] = '' - @@formats['truetype fonts'] = 'TTFONTS' - @@formats['web'] = '' - @@formats['cweb'] = '' - @@formats['enc files'] = 'ENCFONTS' - @@formats['cmap files'] = 'CMAPFONTS' - @@formats['subfont definition files'] = 'SFDFONTS' - @@formats['lig files'] = 'LIGFONTS' - @@formats['bitmap font'] = '' - @@formats['MetaPost support'] = '' - @@formats['TeX system documentation'] = '' - @@formats['TeX system sources'] = '' - @@formats['Troff fonts'] = '' - @@formats['dvips config'] = '' - @@formats['type42 fonts'] = 'T42FONTS' - @@formats['web2c files'] = 'WEB2C' - @@formats['other text files'] = '' - @@formats['other binary files'] = '' - @@formats['misc fonts'] = '' - @@formats['opentype fonts'] = 'OPENTYPEFONTS' - @@formats['pdftex config'] = 'PDFTEXCONFIG' - @@formats['texmfscripts'] = 'TEXMFSCRIPTS' - - attr_accessor :progname, :engine, :format, :rootpath, :treepath, - :verbose, :remember, :scandisk, :diskcache, :renewcache - - @@cacheversion = '1' - - def initialize - @rootpath = '' - @treepath = '' - @progname = 'kpsewhich' - @engine = 'pdftex' - @variables = Hash.new - @expansions = Hash.new - @files = Hash.new - @found = Hash.new - @kpsevars = Hash.new - @lsrfiles = Array.new - @cnffiles = Array.new - @verbose = true - @remember = true - @scandisk = true - @diskcache = true - @renewcache = false - @isolate = false - - @diskcache = false - @cachepath = nil - @cachefile = 'tmftools.log' - - @environment = ENV - end - - def set(key,value) - case key - when 'progname' then @progname = value - when 'engine' then @engine = value - when 'format' then @format = value - end - end - - def push_environment(env) - @environment = env - end - - # {$SELFAUTOLOC,$SELFAUTODIR,$SELFAUTOPARENT}{,{/share,}/texmf{-local,}/web2c} - # - # $SELFAUTOLOC : /usr/tex/bin/platform - # $SELFAUTODIR : /usr/tex/bin - # $SELFAUTOPARENT : /usr/tex - # - # since we live in scriptpath we need a slightly different method - - def load_cnf(filenames=nil) - unless filenames then - ownpath = File.expand_path($0) - if ownpath.gsub!(/texmf.*?$/o, '') then - @environment['SELFAUTOPARENT'] = ownpath - else - @environment['SELFAUTOPARENT'] = '.' - end - unless @treepath.empty? then - unless @rootpath.empty? then - @treepath = @treepath.split(',').collect do |p| File.join(@rootpath,p) end.join(',') - end - @environment['TEXMF'] = @treepath - # only the first one - @environment['TEXMFCNF'] = File.join(@treepath.split(',').first,'texmf/web2c') - end - unless @rootpath.empty? then - @environment['TEXMFCNF'] = File.join(@rootpath,'texmf/web2c') - @environment['SELFAUTOPARENT'] = @rootpath - @isolate = true - end - filenames = Array.new - if @environment['TEXMFCNF'] and not @environment['TEXMFCNF'].empty? then - @environment['TEXMFCNF'].to_s.split_path.each do |path| - filenames << File.join(path,@@texmfcnf) - end - elsif @environment['SELFAUTOPARENT'] == '.' then - filenames << File.join('.',@@texmfcnf) - else - ['texmf-local','texmf'].each do |tree| - filenames << File.join(@environment['SELFAUTOPARENT'],tree,'web2c',@@texmfcnf) - end - end - end - # <root>/texmf/web2c/texmf.cnf - filenames = _expanded_path_(filenames) - @rootpath = filenames.first - 3.times do - @rootpath = File.dirname(@rootpath) - end - filenames.collect! do |f| - f.gsub("\\", '/') - end - filenames.each do |fname| - if FileTest.file?(fname) and f = File.open(fname) then - @cnffiles << fname - while line = f.gets do - loop do - # concatenate lines ending with \ - break unless line.sub!(/\\\s*$/o) do - f.gets || '' - end - end - case line - when /^[\%\#]/o then - # comment - when /^\s*(.*?)\s*\=\s*(.*?)\s*$/o then - key, value = $1, $2 - unless @variables.key?(key) then - value.sub!(/\%.*$/,'') - value.sub!(/\~/, "$HOME") - @variables[key] = value - end - @kpsevars[key] = true - end - end - f.close - end - end - end - - def load_lsr - @lsrfiles = [] - simplified_list(expansion('TEXMF')).each do |p| - ['ls-R','ls-r'].each do |f| - filename = File.join(p,f) - if FileTest.file?(filename) then - @lsrfiles << [filename,File.size(filename)] - break - end - end - end - @files = Hash.new - if @diskcache then - ['HOME','TEMP','TMP','TMPDIR'].each do |key| - if @environment[key] then - if FileTest.directory?(@environment[key]) then - @cachepath = @environment[key] - @cachefile = [@rootpath.gsub(/[^A-Z0-9]/io, '-').gsub(/\-+/,'-'),File.basename(@cachefile)].join('-') - break - end - end - end - if @cachepath and not @renewcache and FileTest.file?(File.join(@cachepath,@cachefile)) then - begin - if f = File.open(File.join(@cachepath,@cachefile)) then - cacheversion = Marshal.load(f) - if cacheversion == @@cacheversion then - lsrfiles = Marshal.load(f) - if lsrfiles == @lsrfiles then - @files = Marshal.load(f) - end - end - f.close - end - rescue - @files = Hash.new - end - end - end - return if @files.size > 0 - @lsrfiles.each do |filedata| - filename, filesize = filedata - filepath = File.dirname(filename) - begin - path = '.' - data = IO.readlines(filename) - if data[0].chomp =~ /% ls\-R \-\- filename database for kpathsea\; do not change this line\./io then - data.each do |line| - case line - when /^[a-zA-Z0-9]/o then - line.chomp! - if @files[line] then - @files[line] << path - else - @files[line] = [path] - end - when /^\.\/(.*?)\:$/o then - path = File.join(filepath,$1) - end - end - end - rescue - # sorry - end - end - if @diskcache and @cachepath and f = File.open(File.join(@cachepath,@cachefile),'wb') then - f << Marshal.dump(@@cacheversion) - f << Marshal.dump(@lsrfiles) - f << Marshal.dump(@files) - f.close - end - end - - def expand_variables - @expansions = Hash.new - if @isolate then - @variables['TEXMFCNF'] = @environment['TEXMFCNF'].dup - @variables['SELFAUTOPARENT'] = @environment['SELFAUTOPARENT'].dup - else - @environment.keys.each do |e| - if e =~ /^([a-zA-Z]+)\_(.*)\s*$/o then - @expansions["#{$1}.#{$2}"] = (@environment[e] ||'').dup - else - @expansions[e] = (@environment[e] ||'').dup - end - end - end - @variables.keys.each do |k| - @expansions[k] = @variables[k].dup unless @expansions[k] - end - loop do - busy = false - @expansions.keys.each do |k| - @expansions[k].gsub!(/\$([a-zA-Z0-9\_\-]*)/o) do - busy = true - @expansions[$1] || '' - end - @expansions[k].gsub!(/\$\{([a-zA-Z0-9\_\-]*)\}/o) do - busy = true - @expansions[$1] || '' - end - end - break unless busy - end - @expansions.keys.each do |k| - @expansions[k] = @expansions[k].gsub("\\", '/') - end - end - - def variable(name='') - (name and not name.empty? and @variables[name.sub('$','')]) or '' - end - - def expansion(name='') - (name and not name.empty? and @expansions[name.sub('$','')]) or '' - end - - def variable?(name='') - name and not name.empty? and @variables.key?(name.sub('$','')) - end - - def expansion?(name='') - name and not name.empty? and @expansions.key?(name.sub('$','')) - end - - def simplified_list(str) - lst = str.gsub(/^\{/o,'').gsub(/\}$/o,'').split(",") - lst.collect do |l| - l.sub(/^[\!]*/,'').sub(/[\/\\]*$/o,'') - end - end - - def original_variable(variable) - if variable?("#{@progname}.#{variable}") then - variable("#{@progname}.#{variable}") - elsif variable?(variable) then - variable(variable) - else - '' - end - end - - def expanded_variable(variable) - if expansion?("#{variable}.#{@progname}") then - expansion("#{variable}.#{@progname}") - elsif expansion?(variable) then - expansion(variable) - else - '' - end - end - - def original_path(filename='') - _expanded_path_(original_variable(var_of_format_or_suffix(filename)).split(";")) - end - - def expanded_path(filename='') - _expanded_path_(expanded_variable(var_of_format_or_suffix(filename)).split(";")) - end - - def _expanded_path_(pathlist) - i, n = 0, 0 - pathlist.collect! do |mainpath| - mainpath.gsub(/([\{\}])/o) do - if $1 == "{" then - i += 1 ; n = i if i > n ; "<#{i}>" - else - i -= 1 ; "</#{i+1}>" - end - end - end - n.times do |i| - loop do - more = false - newlist = [] - pathlist.each do |path| - unless path.sub!(/^(.*?)<(#{n-i})>(.*?)<\/\2>(.*?)$/) do - pre, mid, post = $1, $3, $4 - mid.gsub!(/\,$/,',.') - mid.split(',').each do |m| - more = true - if m == '.' then - newlist << "#{pre}#{post}" - else - newlist << "#{pre}#{m}#{post}" - end - end - end then - newlist << path - end - end - if more then - pathlist = [newlist].flatten # copy -) - else - break - end - end - end - pathlist = pathlist.uniq.collect do |path| - p = path - # p.gsub(/^\/+/o) do '' end - # p.gsub!(/(.)\/\/(.)/o) do "#{$1}/#{$2}" end - # p.gsub!(/\/\/+$/o) do '//' end - p.gsub!(/\/\/+/o) do '//' end - p - end - pathlist - end - - # todo: ignore case - - def var_of_format(str) - @@formats[str] || '' - end - - def var_of_suffix(str) # includes . - if @@suffixmap.key?(str) then @@formats[@@suffixmap[str]] else '' end - end - - def var_of_format_or_suffix(str) - if @@formats.key?(str) then - @@formats[str] - elsif @@suffixmap.key?(File.extname(str)) then # extname includes . - @@formats[@@suffixmap[File.extname(str)]] # extname includes . - else - '' - end - end - -end - -class KpseFast - - # test things - - def list_variables(kpseonly=true) - @variables.keys.sort.each do |k| - if kpseonly then - puts("#{k} = #{@variables[k]}") if @kpsevars[k] - else - puts("#{if @kpsevars[k] then 'K' else 'E' end} #{k} = #{@variables[k]}") - end - end - end - - def list_expansions(kpseonly=true) - @expansions.keys.sort.each do |k| - if kpseonly then - puts("#{k} = #{@expansions[k]}") if @kpsevars[k] - else - puts("#{if @kpsevars[k] then 'K' else 'E' end} #{k} = #{@expansions[k]}") - end - end - end - - def list_lsr - puts("files = #{@files.size}") - end - - def set_test_patterns - @variables["KPSE_TEST_PATTERN_A"] = "foo/{1,2}/bar//" - @variables["KPSE_TEST_PATTERN_B"] = "!!x{A,B{1,2}}y" - @variables["KPSE_TEST_PATTERN_C"] = "x{A,B//{1,2}}y" - @variables["KPSE_TEST_PATTERN_D"] = "x{A,B//{1,2,}}//y" - end - - def show_test_patterns - ['A','B','D'].each do |i| - puts "" - puts @variables ["KPSE_TEST_PATTERN_#{i}"] - puts "" - puts expand_path("KPSE_TEST_PATTERN_#{i}").split_path - puts "" - end - end - -end - -class KpseFast - - # kpse stuff - - def expand_braces(str) # output variable and brace expansion of STRING. - _expanded_path_(original_variable(str).split_path).join_path - end - - def expand_path(str) # output complete path expansion of STRING. - _expanded_path_(expanded_variable(str).split_path).join_path - end - - def expand_var(str) # output variable expansion of STRING. - expanded_variable(str) - end - - def show_path(str) # output search path for file type NAME - expanded_path(str).join_path - end - - def var_value(str) # output the value of variable $STRING. - original_variable(str) - end - -end - -class KpseFast - - def _is_cnf_?(filename) - filename == File.basename((@cnffiles.first rescue @@texmfcnf) || @@texmfcnf) - end - - def find_file(filename) - if _is_cnf_?(filename) then - @cnffiles.first rescue '' - else - [find_files(filename,true)].flatten.first || '' - end - end - - def find_files(filename,first=false) - if _is_cnf_?(filename) then - result = @cnffiles.dup - else - if @remember then - # stamp = "#{filename}--#{@format}--#{@engine}--#{@progname}" - stamp = "#{filename}--#{@engine}--#{@progname}" - return @found[stamp] if @found.key?(stamp) - end - pathlist = expanded_path(filename) - result = [] - filelist = if @files.key?(filename) then @files[filename].uniq else nil end - done = false - if pathlist.size == 0 then - if FileTest.file?(filename) then - done = true - result << '.' - end - else - pathlist.each do |path| - doscan = if path =~ /^\!\!/o then false else true end - recurse = if path =~ /\/\/$/o then true else false end - pathname = path.dup - pathname.gsub!(/^\!+/o, '') - done = false - if not done and filelist then - # checking for exact match - if filelist.include?(pathname) then - result << pathname - done = true - end - if not done and recurse then - # checking for fuzzy // - pathname.gsub!(/\/+$/o, '/.*') - # pathname.gsub!(/\/\//o,'/[\/]*/') - pathname.gsub!(/\/\//o,'/.*?/') - re = /^#{pathname}/ - filelist.each do |f| - if re =~ f then - result << f # duplicates will be filtered later - done = true - end - break if done - end - end - end - if not done and doscan then - # checking for path itself - pname = pathname.sub(/\.\*$/,'') - if not pname =~ /\*/o and FileTest.file?(File.join(pname,filename)) then - result << pname - done = true - end - end - break if done and first - end - end - if not done and @scandisk then - pathlist.each do |path| - pathname = path.dup - unless pathname.gsub!(/^\!+/o, '') then # !! prevents scan - recurse = pathname.gsub!(/\/+$/o, '') - complex = pathname.gsub!(/\/\//o,'/*/') - if recurse then - if complex then - if ok = File.glob_file("#{pathname}/**/#{filename}") then - result << File.dirname(ok) - done = true - end - elsif ok = File.locate_file(pathname,filename) then - result << File.dirname(ok) - done = true - end - elsif complex then - if ok = File.glob_file("#{pathname}/#{filename}") then - result << File.dirname(ok) - done = true - end - elsif FileTest.file?(File.join(pathname,filename)) then - result << pathname - done = true - end - break if done and first - end - end - end - result = result.uniq.collect do |pathname| - File.join(pathname,filename) - end - @found[stamp] = result if @remember - end - return result # redundant - end - -end - -class KpseFast - - class FileData - attr_accessor :tag, :name, :size, :date - def initialize(tag=0,name=nil,size=nil,date=nil) - @tag, @name, @size, @date = tag, name, size, date - end - def FileData.sizes(a) - a.collect do |aa| - aa.size - end - end - def report - case @tag - when 1 then "deleted | #{@size.to_s.rjust(8)} | #{@date.strftime('%m/%d/%Y %I:%M')} | #{@name}" - when 2 then "present | #{@size.to_s.rjust(8)} | #{@date.strftime('%m/%d/%Y %I:%M')} | #{@name}" - when 3 then "obsolete | #{' '*8} | #{' '*16} | #{@name}" - end - end - end - - def analyze_files(filter='',strict=false,sort='',delete=false) - puts("command line = #{ARGV.join(' ')}") - puts("number of files = #{@files.size}") - puts("filter pattern = #{filter}") - puts("loaded cnf files = #{@cnffiles.join(' ')}") - puts('') - if filter.gsub!(/^not:/,'') then - def the_same(filter,filename) - not filter or filter.empty? or /#{filter}/ !~ filename - end - else - def the_same(filter,filename) - not filter or filter.empty? or /#{filter}/ =~ filename - end - end - @files.keys.each do |name| - if @files[name].size > 1 then - data = Array.new - @files[name].each do |path| - filename = File.join(path,name) - # if not filter or filter.empty? or /#{filter}/ =~ filename then - if the_same(filter,filename) then - if FileTest.file?(filename) then - if delete then - data << FileData.new(1,filename,File.size(filename),File.mtime(filename)) - begin - File.delete(filename) if delete - rescue - end - else - data << FileData.new(2,filename,File.size(filename),File.mtime(filename)) - end - else - # data << FileData.new(3,filename) - end - end - end - if data.length > 1 then - if strict then - # if data.collect do |d| d.size end.uniq! then - # data.sort! do |a,b| b.size <=> a.size end - # data.each do |d| puts d.report end - # puts '' - # end - data.sort! do |a,b| - if a.size and b.size then - b.size <=> a.size - else - 0 - end - end - bunch = Array.new - done = false - data.each do |d| - if bunch.size == 0 then - bunch << d - elsif bunch[0].size == d.size then - bunch << d - else - if bunch.size > 1 then - bunch.each do |b| - puts b.report - end - done = true - end - bunch = [d] - end - end - puts '' if done - else - case sort - when 'size' then data.sort! do |a,b| a.size <=> b.size end - when 'revsize' then data.sort! do |a,b| b.size <=> a.size end - when 'date' then data.sort! do |a,b| a.date <=> b.date end - when 'revdate' then data.sort! do |a,b| b.date <=> a.date end - end - data.each do |d| puts d.report end - puts '' - end - end - end - end - end - -end - - - # k = KpseFast.new # (root) - # k.set_test_patterns - # k.load_cnf - # k.expand_variables - # k.load_lsr - - # k.show_test_patterns - - # puts k.list_variables - # puts k.list_expansions - # k.list_lsr - # puts k.expansion("$TEXMF") - # puts k.expanded_path("TEXINPUTS","context") - - # k.progname, k.engine, k.format = 'context', 'pdftex', 'tfm' - # k.scandisk = false # == must_exist - # k.expand_variables - - # 10.times do |i| puts k.find_file('texnansi-lmr10.tfm') end - - # puts "expand braces $TEXMF" - # puts k.expand_braces("$TEXMF") - # puts "expand path $TEXMF" - # puts k.expand_path("$TEXMF") - # puts "expand var $TEXMF" - # puts k.expand_var("$TEXMF") - # puts "expand path $TEXMF" - # puts k.show_path('tfm') - # puts "expand value $TEXINPUTS" - # puts k.var_value("$TEXINPUTS") - # puts "expand value $TEXINPUTS.context" - # puts k.var_value("$TEXINPUTS.context") - - # exit - - - -# kpse_merge_file: 't:/ruby/base/kpse/trees.rb' - -require 'monitor' -# kpse_merge_done: require 'base/kpsefast' - -class KpseTrees < Monitor - - def initialize - @trees = Hash.new - end - - def pattern(filenames) - filenames.join('|').gsub(/\\+/o,'/').downcase - end - - def choose(filenames,environment) - current = pattern(filenames) - load(filenames,environment) unless @trees[current] - puts "enabling tree #{current}" - current - end - - def fetch(filenames,environment) # will send whole object ! - current = pattern(filenames) - load(filenames,environment) unless @trees[current] - puts "fetching tree #{current}" - @trees[current] - end - - def load(filenames,environment) - current = pattern(filenames) - puts "loading tree #{current}" - @trees[current] = KpseFast.new - @trees[current].push_environment(environment) - @trees[current].load_cnf(filenames) - @trees[current].expand_variables - @trees[current].load_lsr - end - - def set(tree,key,value) - case key - when 'progname' then @trees[tree].progname = value - when 'engine' then @trees[tree].engine = value - when 'format' then @trees[tree].format = value - end - end - def get(tree,key) - case key - when 'progname' then @trees[tree].progname - when 'engine' then @trees[tree].engine - when 'format' then @trees[tree].format - end - end - - def load_cnf(tree) - @trees[tree].load_cnf - end - def load_lsr(tree) - @trees[tree].load_lsr - end - def expand_variables(tree) - @trees[tree].expand_variables - end - def expand_braces(tree,str) - @trees[tree].expand_braces(str) - end - def expand_path(tree,str) - @trees[tree].expand_path(str) - end - def expand_var(tree,str) - @trees[tree].expand_var(str) - end - def show_path(tree,str) - @trees[tree].show_path(str) - end - def var_value(tree,str) - @trees[tree].var_value(str) - end - def find_file(tree,filename) - @trees[tree].find_file(filename) - end - def find_files(tree,filename,first) - @trees[tree].find_files(filename,first) - end - -end - - -# kpse_merge_file: 't:/ruby/base/kpse/drb.rb' - -require 'drb' -# kpse_merge_done: require 'base/kpse/trees' - -class KpseServer - - attr_accessor :port - - def initialize(port=7000) - @port = port - end - - def start - puts "starting drb service at port #{@port}" - DRb.start_service("druby://localhost:#{@port}", KpseTrees.new) - trap(:INT) do - DRb.stop_service - end - DRb.thread.join - end - - def stop - # todo - end - -end - -class KpseClient - - attr_accessor :port - - def initialize(port=7000) - @port = port - @kpse = nil - end - - def start - # only needed when callbacks are used / slow, due to Socket::getaddrinfo - # DRb.start_service - end - - def object - @kpse = DRbObject.new(nil,"druby://localhost:#{@port}") - end - -end - - -# SERVER_URI="druby://localhost:8787" -# -# # Start a local DRbServer to handle callbacks. -# # -# # Not necessary for this small example, but will be required -# # as soon as we pass a non-marshallable object as an argument -# # to a dRuby call. -# DRb.start_service -# - - -# kpse_merge_file: 't:/ruby/base/kpseremote.rb' - -# kpse_merge_done: require 'base/kpsefast' - -case ENV['KPSEMETHOD'] - when /soap/o then # kpse_merge_done: require 'base/kpse/soap' - when /drb/o then # kpse_merge_done: require 'base/kpse/drb' - else # kpse_merge_done: require 'base/kpse/drb' -end - -class KpseRemote - - @@port = ENV['KPSEPORT'] || 7000 - @@method = ENV['KPSEMETHOD'] || 'drb' - - def KpseRemote::available? - @@method && @@port - end - - def KpseRemote::start_server(port=nil) - kpse = KpseServer.new(port || @@port) - kpse.start - end - - def KpseRemote::start_client(port=nil) # keeps object in server - kpseclient = KpseClient.new(port || @@port) - kpseclient.start - kpse = kpseclient.object - tree = kpse.choose(KpseUtil::identify, KpseUtil::environment) - [kpse, tree] - end - - def KpseRemote::fetch(port=nil) # no need for defining methods but slower, send whole object - kpseclient = KpseClient.new(port || @@port) - kpseclient.start - kpseclient.object.fetch(KpseUtil::identify, KpseUtil::environment) rescue nil - end - - def initialize(port=nil) - if KpseRemote::available? then - begin - @kpse, @tree = KpseRemote::start_client(port) - rescue - @kpse, @tree = nil, nil - end - else - @kpse, @tree = nil, nil - end - end - - def progname=(value) - @kpse.set(@tree,'progname',value) - end - def format=(value) - @kpse.set(@tree,'format',value) - end - def engine=(value) - @kpse.set(@tree,'engine',value) - end - - def progname - @kpse.get(@tree,'progname') - end - def format - @kpse.get(@tree,'format') - end - def engine - @kpse.get(@tree,'engine') - end - - def load - @kpse.load(KpseUtil::identify, KpseUtil::environment) - end - def okay? - @kpse && @tree - end - def set(key,value) - @kpse.set(@tree,key,value) - end - def load_cnf - @kpse.load_cnf(@tree) - end - def load_lsr - @kpse.load_lsr(@tree) - end - def expand_variables - @kpse.expand_variables(@tree) - end - def expand_braces(str) - clean_name(@kpse.expand_braces(@tree,str)) - end - def expand_path(str) - clean_name(@kpse.expand_path(@tree,str)) - end - def expand_var(str) - clean_name(@kpse.expand_var(@tree,str)) - end - def show_path(str) - clean_name(@kpse.show_path(@tree,str)) - end - def var_value(str) - clean_name(@kpse.var_value(@tree,str)) - end - def find_file(filename) - clean_name(@kpse.find_file(@tree,filename)) - end - def find_files(filename,first=false) - # dodo: each filename - @kpse.find_files(@tree,filename,first) - end - - private - - def clean_name(str) - str.gsub(/\\/,'/') - end - -end - - -# kpse_merge_file: 't:/ruby/base/kpsedirect.rb' - -class KpseDirect - - attr_accessor :progname, :format, :engine - - def initialize - @progname, @format, @engine = '', '', '' - end - - def expand_path(str) - clean_name(`kpsewhich -expand-path=#{str}`.chomp) - end - - def expand_var(str) - clean_name(`kpsewhich -expand-var=#{str}`.chomp) - end - - def find_file(str) - clean_name(`kpsewhich #{_progname_} #{_format_} #{str}`.chomp) - end - - def _progname_ - if @progname.empty? then '' else "-progname=#{@progname}" end - end - def _format_ - if @format.empty? then '' else "-format=\"#{@format}\"" end - end - - private - - def clean_name(str) - str.gsub(/\\/,'/') - end - -end - - -# kpse_merge_stop - - - -$mswindows = Config::CONFIG['host_os'] =~ /mswin/ -$separator = File::PATH_SEPARATOR -$version = "2.0.3" -$ownpath = File.dirname($0) - -if $mswindows then - require "win32ole" - require "Win32API" -end - -# exit if defined?(REQUIRE2LIB) - -$stdout.sync = true -$stderr.sync = true - -$applications = Hash.new -$suffixinputs = Hash.new -$predefined = Hash.new -$runners = Hash.new - -$suffixinputs['pl'] = 'PERLINPUTS' -$suffixinputs['rb'] = 'RUBYINPUTS' -$suffixinputs['py'] = 'PYTHONINPUTS' -$suffixinputs['lua'] = 'LUAINPUTS' -$suffixinputs['jar'] = 'JAVAINPUTS' -$suffixinputs['pdf'] = 'PDFINPUTS' - -$predefined['texexec'] = 'texexec.rb' -$predefined['texutil'] = 'texutil.rb' -$predefined['texfont'] = 'texfont.pl' -$predefined['texshow'] = 'texshow.pl' - -$predefined['makempy'] = 'makempy.pl' -$predefined['mptopdf'] = 'mptopdf.pl' -$predefined['pstopdf'] = 'pstopdf.rb' - -$predefined['examplex'] = 'examplex.rb' -$predefined['concheck'] = 'concheck.rb' - -$predefined['runtools'] = 'runtools.rb' -$predefined['textools'] = 'textools.rb' -$predefined['tmftools'] = 'tmftools.rb' -$predefined['ctxtools'] = 'ctxtools.rb' -$predefined['rlxtools'] = 'rlxtools.rb' -$predefined['pdftools'] = 'pdftools.rb' -$predefined['mpstools'] = 'mpstools.rb' -$predefined['exatools'] = 'exatools.rb' -$predefined['xmltools'] = 'xmltools.rb' -# $predefined['luatools'] = 'luatools.lua' -# $predefined['mtxtools'] = 'mtxtools.rb' - -$predefined['newpstopdf'] = 'pstopdf.rb' -$predefined['newtexexec'] = 'texexec.rb' -$predefined['pdftrimwhite'] = 'pdftrimwhite.pl' - -$makelist = [ - # context - 'texexec', - 'texutil', - 'texfont', - # mp/ps - 'pstopdf', - 'mptopdf', - 'makempy', - # misc - 'ctxtools', - 'pdftools', - 'xmltools', - 'textools', - 'mpstools', - 'tmftools', - 'exatools', - 'runtools', - 'rlxtools', - 'pdftrimwhite', - 'texfind', - 'texshow' - # - # no 'luatools', - # no 'mtxtools', - # no, 'texmfstart' -] - -$scriptlist = 'rb|pl|py|lua|jar' -$documentlist = 'pdf|ps|eps|htm|html' - -$editor = ENV['TEXMFSTART_EDITOR'] || ENV['EDITOR'] || ENV['editor'] || 'scite' - -$crossover = true # to other tex tools, else only local -$kpse = nil - -def set_applications(page=1) - - $applications['unknown'] = '' - $applications['ruby'] = $applications['rb'] = 'ruby' - $applications['lua'] = $applications['lua'] = 'lua' - $applications['perl'] = $applications['pl'] = 'perl' - $applications['python'] = $applications['py'] = 'python' - $applications['java'] = $applications['jar'] = 'java' - - if $mswindows then - $applications['pdf'] = ['',"pdfopen --page #{page} --file",'acroread'] - $applications['html'] = ['','netscape','mozilla','opera','iexplore'] - $applications['ps'] = ['','gview32','gv','gswin32','gs'] - else - $applications['pdf'] = ["pdfopen --page #{page} --file",'acroread'] - $applications['html'] = ['netscape','mozilla','opera'] - $applications['ps'] = ['gview','gv','gs'] - end - - $applications['htm'] = $applications['html'] - $applications['eps'] = $applications['ps'] - - $runners['lua'] = "texlua" - -end - -set_applications() - -def check_kpse - if $kpse then - # already done - else - begin - if KpseRemote::available? then - $kpse = KpseRemote.new - if $kpse.okay? then - puts("kpse : remote") if $verbose - else - $kpse = KpseDirect.new - puts("kpse : direct (forced)") if $verbose - end - else - $kpse = KpseDirect.new - puts("kpse : direct") if $verbose - end - rescue - puts("kpse : direct (fallback)") if $verbose - end - end -end - -if $mswindows then - - GetShortPathName = Win32API.new('kernel32', 'GetShortPathName', ['P','P','N'], 'N') - GetLongPathName = Win32API.new('kernel32', 'GetLongPathName', ['P','P','N'], 'N') - - def dowith_pathname (filename,filemethod) - filename = filename.gsub(/\\/o,'/') # no gsub! because filename can be frozen - case filename - when /\;/o then - # could be a path spec - return filename - when /\s+/o then - # danger lurking - buffer = ' ' * 260 - length = filemethod.call(filename,buffer,buffer.size) - if length>0 then - return buffer.slice(0..length-1) - else - # when the path or file does not exist, nothing is returned - # so we try to handle the path separately from the basename - basename = File.basename(filename) - pathname = File.dirname(filename) - length = filemethod.call(pathname,buffer,260) - if length>0 then - return buffer.slice(0..length-1) + '/' + basename - else - return filename - end - end - else - # no danger - return filename - end - end - - def longpathname (filename) - dowith_pathname(filename,GetLongPathName) - end - - def shortpathname (filename) - dowith_pathname(filename,GetShortPathName) - end - -else - - def longpathname (filename) - filename - end - - def shortpathname (filename) - filename - end - -end - -class File - - # def File.needsupdate(oldname,newname) - # begin - # if $mswindows then - # return File.stat(oldname).mtime > File.stat(newname).mtime - # else - # return File.stat(oldname).mtime != File.stat(newname).mtime - # end - # rescue - # return true - # end - # end - - @@update_eps = 1 - - def File.needsupdate(oldname,newname) - begin - oldtime = File.stat(oldname).mtime.to_i - newtime = File.stat(newname).mtime.to_i - if newtime >= oldtime then - return false - elsif oldtime-newtime < @@update_eps then - return false - else - return true - end - rescue - return true - end - end - - def File.syncmtimes(oldname,newname) - return - begin - if $mswindows then - # does not work (yet) / gives future timestamp - # t = File.mtime(oldname) # i'm not sure if the time is frozen, so we do it here - # File.utime(0,t,oldname,newname) - else - t = File.mtime(oldname) # i'm not sure if the time is frozen, so we do it here - File.utime(0,t,oldname,newname) - end - rescue - end - end - - def File.timestamp(name) - begin - "#{File.stat(name).mtime}" - rescue - return 'unknown' - end - end - -end - -# def hashed (arr=[]) - # arg = if arr.class == String then arr.split(' ') else arr.dup end - # hsh = Hash.new - # if arg.length > 0 - # hsh['arguments'] = '' - # done = false - # arg.each do |s| - # if done then - # if s =~ / / then - # hsh['arguments'] += " \"#{s}\"" # maybe split on = - # else - # hsh['arguments'] += " #{s}" - # end - # else - # kvl = s.split('=') - # if kvl[0].sub!(/^\-+/,'') then - # hsh[kvl[0]] = if kvl.length > 1 then kvl[1] else true end - # else - # hsh['file'] = s - # done = true - # end - # end - # end - # end - # return hsh -# end - -def hashed (arr=[]) - arg = if arr.class == String then arr.split(' ') else arr.dup end - hsh = Hash.new - if arg.length > 0 - hsh['arguments'] = '' - done = false - arg.each do |s| - if done then - if s =~ /\s/ then - kvl = s.split('=') - if kvl[1] and kvl[1] !~ /^[\"\']/ then - hsh['arguments'] += ' ' + kvl[0] + "=" + '"' + kvl[1] + '"' - elsif s =~ /\s/ then - hsh['arguments'] += ' "' + s + '"' - else - hsh['arguments'] += ' ' + s - end - else - hsh['arguments'] += ' ' + s - end - else - kvl = s.split('=') - if kvl[0].sub!(/^\-+/,'') then - hsh[kvl[0]] = if kvl.length > 1 then kvl[1] else true end - else - hsh['file'] = s - done = true - end - end - end - end - return hsh -end - - -def launch(filename) - if $browser && $mswindows then - filename = filename.gsub(/\.[\/\\]/) do - Dir.getwd + '/' - end - report("launching #{filename}") - ie = WIN32OLE.new("InternetExplorer.Application") - ie.visible = true - ie.navigate(filename) - return true - else - return false - end -end - -# env|environment -# rel|relative -# loc|locate|kpse|path|file - -def quoted(str) - if str =~ /^\"/ then - return str - elsif str =~ / / then - return "\"#{str}\"" - else - return str - end -end - -def expanded(arg) # no "other text files", too restricted - arg.gsub(/(env|environment)\:([a-zA-Z\-\_\.0-9]+)/o) do - method, original, resolved = $1, $2, '' - if resolved = ENV[original] then - report("environment variable #{original} expands to #{resolved}") unless $report - quoted(resolved) - else - report("environment variable #{original} cannot be resolved") unless $report - quoted(original) - end - end . gsub(/(rel|relative)\:([a-zA-Z\-\_\.0-9]+)/o) do - method, original, resolved = $1, $2, '' - ['.','..','../..'].each do |r| - if FileTest.file?(File.join(r,original)) then - resolved = File.join(r,original) - break - end - end - if resolved.empty? then - quoted(original) - else - quoted(resolved) - end - end . gsub(/(kpse|loc|locate|file|path)\:([a-zA-Z\-\_\.0-9]+)/o) do - method, original, resolved = $1, $2, '' - if $program && ! $program.empty? then - # pstrings = ["-progname=#{$program}"] - pstrings = [$program] - else - # pstrings = ['','-progname=context'] - pstrings = ['','context'] - end - # auto suffix with texinputs as fall back - if ENV["_CTX_K_V_#{original}_"] then - resolved = ENV["_CTX_K_V_#{original}_"] - report("environment provides #{original} as #{resolved}") unless $report - quoted(resolved) - else - check_kpse - pstrings.each do |pstr| - if resolved.empty? then - # command = "kpsewhich #{pstr} #{original}" - # report("running #{command}") - report("locating '#{original}' in program space '#{pstr}'") - begin - # resolved = `#{command}`.chomp - $kpse.progname = pstr - $kpse.format = '' - resolved = $kpse.find_file(original).gsub(/\\/,'/') - rescue - resolved = '' - end - end - # elsewhere in the tree - if resolved.empty? then - # command = "kpsewhich #{pstr} -format=\"other text files\" #{original}" - # report("running #{command}") - report("locating '#{original}' in program space '#{pstr}' using format 'other text files'") - begin - # resolved = `#{command}`.chomp - $kpse.progname = pstr - $kpse.format = 'other text files' - resolved = $kpse.find_file(original).gsub(/\\/,'/') - rescue - resolved = '' - end - end - end - if resolved.empty? then - original = File.dirname(original) if method =~ /path/ - report("#{original} is not resolved") unless $report - ENV["_CTX_K_V_#{original}_"] = original if $crossover - quoted(original) - else - resolved = File.dirname(resolved) if method =~ /path/ - report("#{original} is resolved to #{resolved}") unless $report - ENV["_CTX_K_V_#{original}_"] = resolved if $crossover - quoted(resolved) - end - end - end -end - -def changeddir?(path) - if path.empty? then - return true - else - oldpath = File.expand_path(path) - begin - Dir.chdir(path) if not path.empty? - rescue - report("unable to change to directory: #{path}") - else - report("changed to directory: #{path}") - end - newpath = File.expand_path(Dir.getwd) - return oldpath == newpath - end -end - -def runcommand(command) - if $locate then - command = command.split(' ').collect do |c| - if c =~ /\//o then - begin - cc = File.expand_path(c) - c = cc if FileTest.file?(cc) - rescue - end - end - c - end . join(' ') - print command # to stdout and no newline - elsif $execute then - report("using 'exec' instead of 'system' call: #{command}") - exec(command) if changeddir?($path) - else - report("using 'system' call: #{command}") - system(command) if changeddir?($path) - end -end - -def join_command(args) - args[0] = $runners[args[0]] || args[0] - [args].join(' ') -end - -def runoneof(application,fullname,browserpermitted) - if browserpermitted && launch(fullname) then - return true - else - fullname = quoted(fullname) # added because MM ran into problems - report("starting #{$filename}") unless $report - output("\n") if $report && $verbose - applications = $applications[application.downcase] - if ! applications then - output("problems with determining application type") - return true - elsif applications.class == Array then - if $report then - output(join_command([fullname,expanded($arguments)])) - return true - else - applications.each do |a| - return true if runcommand(join_command([a,fullname,expanded($arguments)])) - end - end - elsif applications.empty? then - if $report then - output(join_command([fullname,expanded($arguments)])) - return true - else - return runcommand(join_command([fullname,expanded($arguments)])) - end - else - if $report then - output(join_command([applications,fullname,expanded($arguments)])) - return true - else - return runcommand(join_command([applications,fullname,expanded($arguments)])) - end - end - return false - end -end - -def report(str) - $stdout.puts(str) if $verbose -end - -def output(str) - $stdout.puts(str) -end - -def usage - print "version : #{$version} - 2003/2006 - www.pragma-ade.com\n" - print("\n") - print("usage : texmfstart [switches] filename [optional arguments]\n") - print("\n") - print("switches : --verbose --report --browser --direct --execute --locate --iftouched --ifchanged\n") - print(" --program --file --page --arguments --batch --edit --report --clear\n") - print(" --make --lmake --wmake --path --stubpath --indirect --before --after\n") - print(" --tree --autotree --environment --showenv\n") - print("\n") - print("example : texmfstart pstopdf.rb cow.eps\n") - print(" texmfstart --locate examplex.rb\n") - print(" texmfstart --execute examplex.rb\n") - print(" texmfstart --browser examplap.pdf\n") - print(" texmfstart showcase.pdf\n") - print(" texmfstart --page=2 --file=showcase.pdf\n") - print(" texmfstart --program=yourtex yourscript.rb arg-1 arg-2\n") - print(" texmfstart --direct xsltproc kpse:somefile.xsl somefile.xml\n") - print(" texmfstart --direct ruby rel:wn-cleanup-1.rb oldfile.xml newfile.xml\n") - print(" texmfstart bin:xsltproc env:somepreset path:somefile.xsl somefile.xml\n") - print(" texmfstart --iftouched=normal,lowres downsample.rb normal lowres\n") - print(" texmfstart --ifchanged=somefile.dat --direct processit somefile.dat\n") - print(" texmfstart bin:scite kpse:texmf.cnf\n") - print(" texmfstart --exec bin:scite *.tex\n") - print(" texmfstart --edit texmf.cnf\n") - print(" texmfstart --edit kpse:texmf.cnf\n") - print(" texmfstart --serve\n") - print("\n") - print(" texmfstart --stubpath=/usr/local/bin [--make --remove] --verbose all\n") - print(" texmfstart --stubpath=auto [--make --remove] all\n") - print("\n") - check_kpse -end - -# somehow registration does not work out (at least not under windows) -# the . is also not accepted by unix as seperator - -def tag(name) - if $crossover then "_CTX_K_S_#{name}_" else "TEXMFSTART.#{name}" end -end - -def registered?(filename) - return ENV[tag(filename)] != nil -end - -def registered(filename) - return ENV[tag(filename)] || 'unknown' -end - -def register(filename,fullname) - if fullname && ! fullname.empty? then # && FileTest.file?(fullname) - ENV[tag(filename)] = fullname - report("registering '#{filename}' as '#{fullname}'") - return true - else - return false - end -end - -def find(filename,program) - begin - filename = filename.sub(/script:/o, '') # so we have bin: and script: and nothing - if $predefined.key?(filename) then - report("expanding '#{filename}' to '#{$predefined[filename]}'") - filename = $predefined[filename] - end - if registered?(filename) then - report("already located '#{filename}'") - return registered(filename) - end - # create suffix list - if filename =~ /^(.*)\.(.+)$/ then - filename = $1 - suffixlist = [$2] - else - suffixlist = [$scriptlist.split('|'),$documentlist.split('|')].flatten - end - # first we honor a given path - if filename =~ /[\\\/]/ then - report("trying to honor '#{filename}'") - suffixlist.each do |suffix| - fullname = filename+'.'+suffix - if FileTest.file?(fullname) && register(filename,fullname) - return shortpathname(fullname) - end - end - end - filename.sub!(/^.*[\\\/]/, '') - # next we look at the current path and the callerpath - pathlist = [ ] - progpath = $applications[suffixlist[0]] - threadok = registered("THREAD") !~ /unknown/ - pathlist << ['.','current'] - pathlist << [$ownpath,'caller'] if $ownpath != '.' - pathlist << ["#{$ownpath}/../#{progpath}",'caller'] if progpath - pathlist << [registered("THREAD"),'thread'] if threadok - pathlist << ["#{registered("THREAD")}/../#{progpath}",'thread'] if progpath && threadok - pathlist.each do |p| - if p && ! p.empty? && ! (p[0] == 'unknown') then - suffixlist.each do |suffix| - fname = "#{filename}.#{suffix}" - fullname = File.expand_path(File.join(p[0],fname)) - report("locating '#{fname}' in #{p[1]} path '#{p[0]}'") - if FileTest.file?(fullname) && register(filename,fullname) then - report("'#{fname}' located in #{p[1]} path") - return shortpathname(fullname) - end - end - end - end - # now we consult environment settings - fullname = nil - check_kpse - $kpse.progname = program - suffixlist.each do |suffix| - begin - break unless $suffixinputs[suffix] - environment = ENV[$suffixinputs[suffix]] || ENV[$suffixinputs[suffix]+".#{$program}"] - if ! environment || environment.empty? then - begin - # environment = `kpsewhich -expand-path=\$#{$suffixinputs[suffix]}`.chomp - environment = $kpse.expand_path("\$#{$suffixinputs[suffix]}") - rescue - environment = nil - else - if environment && ! environment.empty? then - report("using kpsewhich variable #{$suffixinputs[suffix]}") - end - end - elsif environment && ! environment.empty? then - report("using environment variable #{$suffixinputs[suffix]}") - end - if environment && ! environment.empty? then - environment.split($separator).each do |e| - e.strip! - e = '.' if e == '\.' # somehow . gets escaped - e += '/' unless e =~ /[\\\/]$/ - fullname = e + filename + '.' + suffix - report("testing '#{fullname}'") - if FileTest.file?(fullname) then - break - else - fullname = nil - end - end - end - rescue - report("environment string '#{$suffixinputs[suffix]}' cannot be used to locate '#{filename}'") - fullname = nil - else - return shortpathname(fullname) if register(filename,fullname) - end - end - return shortpathname(fullname) if register(filename,fullname) - # then we fall back on kpsewhich - suffixlist.each do |suffix| - # TDS script scripts location as per 2004 - if suffix =~ /(#{$scriptlist})/ then - begin - report("using 'kpsewhich' to locate '#{filename}' in suffix space '#{suffix}' (1)") - # fullname = `kpsewhich -progname=#{program} -format=texmfscripts #{filename}.#{suffix}`.chomp - $kpse.format = 'texmfscripts' - fullname = $kpse.find_file("#{filename}.#{suffix}").gsub(/\\/,'/') - rescue - report("kpsewhich cannot locate '#{filename}' in suffix space '#{suffix}' (1)") - fullname = nil - else - return shortpathname(fullname) if register(filename,fullname) - end - end - # old TDS location: .../texmf/context/... - begin - report("using 'kpsewhich' to locate '#{filename}' in suffix space '#{suffix}' (2)") - # fullname = `kpsewhich -progname=#{program} -format="other text files" #{filename}.#{suffix}`.chomp - $kpse.format = 'other text files' - fullname = $kpse.find_file("#{filename}.#{suffix}").gsub(/\\/,'/') - rescue - report("kpsewhich cannot locate '#{filename}' in suffix space '#{suffix}' (2)") - fullname = nil - else - return shortpathname(fullname) if register(filename,fullname) - end - end - return shortpathname(fullname) if register(filename,fullname) - # let's take a look at the path - paths = ENV['PATH'].split($separator) - suffixlist.each do |s| - paths.each do |p| - suffixedname = "#{filename}.#{s}" - report("checking #{p} for #{filename}") - if FileTest.file?(File.join(p,suffixedname)) then - fullname = File.join(p,suffixedname) - return shortpathname(fullname) if register(filename,fullname) - end - end - end - # bad luck, we need to search the tree ourselves - if (suffixlist.length == 1) && (suffixlist.first =~ /(#{$documentlist})/) then - report("aggressively locating '#{filename}' in document trees") - begin - # texroot = `kpsewhich -expand-var=$SELFAUTOPARENT`.chomp - texroot = $kpse.expand_var("$SELFAUTOPARENT") - rescue - texroot = '' - else - texroot.sub!(/[\\\/][^\\\/]*?$/, '') - end - if not texroot.empty? then - sffxlst = suffixlist.join(',') - begin - report("locating '#{filename}' in document tree '#{texroot}/doc*'") - if (result = Dir.glob("#{texroot}/doc*/**/#{filename}.{#{sffxlst}}")) && result && result[0] && FileTest.file?(result[0]) then - fullname = result[0] - end - rescue - report("locating '#{filename}.#{suffixlist.join('|')}' in tree '#{texroot}' aborted") - end - end - return shortpathname(fullname) if register(filename,fullname) - end - report("aggressively locating '#{filename}' in tex trees") - begin - # textrees = `kpsewhich -expand-var=$TEXMF`.chomp - textrees = $kpse.expand_var("$TEXMF") - rescue - textrees = '' - end - if not textrees.empty? then - textrees.gsub!(/[\{\}\!]/, '') - textrees = textrees.split(',') - if (suffixlist.length == 1) && (suffixlist.first =~ /(#{$documentlist})/) then - speedup = ['doc**','**'] - else - speedup = ['**'] - end - sffxlst = suffixlist.join(',') - speedup.each do |speed| - textrees.each do |tt| - tt.gsub!(/[\\\/]$/, '') - if FileTest.directory?(tt) then - begin - report("locating '#{filename}' in tree '#{tt}/#{speed}/#{filename}.{#{sffxlst}}'") - if (result = Dir.glob("#{tt}/#{speed}/#{filename}.{#{sffxlst}}")) && result && result[0] && FileTest.file?(result[0]) then - fullname = result[0] - break - end - rescue - report("locating '#{filename}' in tree '#{tt}' aborted") - next - end - end - end - break if fullname && ! fullname.empty? - end - end - if register(filename,fullname) then - return shortpathname(fullname) - else - return '' - end - rescue - error, trace = $!, $@.join("\n") - report("fatal error: #{error}\n#{trace}") - # report("fatal error") - end -end - -def run(fullname) - if ! fullname || fullname.empty? then - output("the file '#{$filename}' is not found") - elsif FileTest.file?(fullname) then - begin - case fullname - when /\.(#{$scriptlist})$/i then - return runoneof($1,fullname,false) - when /\.(#{$documentlist})$/i then - return runoneof($1,fullname,true) - else - return runoneof('unknown',fullname,false) - end - rescue - report("starting '#{$filename}' in program space '#{$program}' fails (#{$!})") - end - else - report("the file '#{$filename}' in program space '#{$program}' is not accessible") - end - return false -end - -def direct(fullname) - begin - return runcommand([fullname.sub(/^(bin|binary)\:/, ''),expanded($arguments)].join(' ')) - rescue - return false - end -end - -def edit(filename) - begin - return runcommand([$editor,expanded(filename),expanded($arguments)].join(' ')) - rescue - return false - end -end - -def make(filename,windows=false,linux=false,remove=false) - basename = File.basename(filename).gsub(/\.[^.]+?$/, '') - if $stubpath == 'auto' then - basename = File.dirname($0) + '/' + basename - else - basename = $stubpath + '/' + basename unless $stubpath.empty? - end - if filename == 'texmfstart' then - program = 'ruby' - command = 'kpsewhich --format=texmfscripts --progname=context texmfstart.rb' - filename = `#{command}`.chomp.gsub(/\\/, '/') - if filename.empty? then - report("failure: #{command}") - return - elsif not remove then - if windows then - ['bat','exe'].each do |suffix| - if FileTest.file?("#{basename}.#{suffix}") then - report("windows stub '#{basename}.#{suffix}' skipped (already present)") - return - end - end - elsif linux && FileTest.file?(basename) then - report("unix stub '#{basename}' skipped (already present)") - return - end - end - else - program = nil - if filename =~ /[\\\/]/ && filename =~ /\.(#{$scriptlist})$/ then - program = $applications[$1] - end - filename = "\"#{filename}\"" if filename =~ /\s/ - program = 'texmfstart' if $indirect || ! program || program.empty? - end - begin - callname = $predefined[filename.sub(/\.*?$/,'')] || filename - if remove then - if windows && (File.delete(basename+'.bat') rescue false) then - report("windows stub '#{basename}.bat' removed (calls #{callname})") - elsif linux && (File.delete(basename) rescue false) then - report("unix stub '#{basename}' removed (calls #{callname})") - end - else - if windows && f = open(basename+'.bat','w') then - f.binmode - f.write("@echo off\015\012") - f.write("#{program} #{callname} %*\015\012") - f.close - report("windows stub '#{basename}.bat' made (calls #{callname})") - elsif linux && f = open(basename,'w') then - f.binmode - f.write("#!/bin/sh\012") - f.write("#{program} #{callname} \"$@\"\012") - f.close - report("unix stub '#{basename}' made (calls #{callname})") - end - end - rescue - report("failed to make stub '#{basename}' #{$!}") - return false - else - return true - end -end - -def process(&block) - if $iftouched then - files = $directives['iftouched'].split(',') - oldname, newname = files[0], files[1] - if oldname && newname && File.needsupdate(oldname,newname) then - report("file #{oldname}: #{File.timestamp(oldname)}") - report("file #{newname}: #{File.timestamp(newname)}") - report("file is touched, processing started") - yield - File.syncmtimes(oldname,newname) - else - report("file #{oldname} is untouched") - end - elsif $ifchanged then - filename = $directives['ifchanged'] - checkname = filename + ".md5" - oldchecksum, newchecksum = "old", "new" - begin - newchecksum = MD5.new(IO.read(filename)).hexdigest.upcase - rescue - newchecksum = "new" - else - begin - oldchecksum = IO.read(checkname).chomp - rescue - oldchecksum = "old" - end - end - if $verbose then - report("old checksum #{filename}: #{oldchecksum}") - report("new checksum #{filename}: #{newchecksum}") - end - if oldchecksum != newchecksum then - report("file is changed, processing started") - begin - File.open(checkname,'w') do |f| - f << newchecksum - end - rescue - end - yield - else - report("file #{filename} is unchanged") - end - else - yield - end -end - -def checkenvironment(tree) - report('') - ENV['TMP'] = ENV['TMP'] || ENV['TEMP'] || ENV['TMPDIR'] || ENV['HOME'] - case RUBY_PLATFORM - when /(mswin|bccwin|mingw|cygwin)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-mswin' - when /(linux)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-linux' - when /(darwin|rhapsody|nextstep)/i then ENV['TEXOS'] = ENV['TEXOS'] || 'texmf-macosx' - # when /(netbsd|unix)/i then # todo - else # todo - end - ENV['TEXOS'] = "#{ENV['TEXOS'].sub(/^[\\\/]*/, '').sub(/[\\\/]*$/, '')}" - ENV['TEXPATH'] = tree.sub(/\/+$/,'') # + '/' - ENV['TEXMFOS'] = "#{ENV['TEXPATH']}/#{ENV['TEXOS']}" - report('') - report("preset : TEXPATH => #{ENV['TEXPATH']}") - report("preset : TEXOS => #{ENV['TEXOS']}") - report("preset : TEXMFOS => #{ENV['TEXMFOS']}") - report("preset : TMP => #{ENV['TMP']}") - report('') -end - -def loadfile(filename) - begin - IO.readlines(filename).each do |line| - case line.chomp - when /^[\#\%]/ then - # comment - when /^(.*?)\s*(\>|\=|\<)\s*(.*)\s*$/ then - # = assign | > prepend | < append - key, how, value = $1, $2, $3 - begin - # $SAFE = 0 - value.gsub!(/\%(.*?)\%/) do - ENV[$1] || '' - end - # value.gsub!(/\;/,$separator) if key =~ /PATH/i then - case how - when '=', '<<' then ENV[key] = value - when '?', '??' then ENV[key] = ENV[key] || value - when '<', '+=' then ENV[key] = (ENV[key] || '') + $separator + value - when '>', '=+' then ENV[key] = value + $separator + (ENV[key] ||'') - end - rescue - report("user set failed : #{key} (#{$!})") - else - report("user set : #{key} => #{ENV[key]}") - end - end - end - rescue - report("error in reading file '#{filename}'") - end -end - -def loadtree(tree) - begin - unless tree.empty? then - if File.directory?(tree) then - setuptex = File.join(tree,'setuptex.tmf') - else - setuptex = tree.dup - end - if FileTest.file?(setuptex) then - report("tex tree definition: #{setuptex}") - checkenvironment(File.dirname(setuptex)) - loadfile(setuptex) - else - report("no setup file '#{setuptex}'") - end - end - rescue - # maybe tree is empty or boolean (no arg given) - end -end - -def loadenvironment(environment) - begin - unless environment.empty? then - filename = if $path.empty? then environment else File.expand_path(File.join($path,environment)) end - if FileTest.file?(filename) then - report("environment : #{environment}") - loadfile(filename) - else - report("no environment file '#{environment}'") - end - end - rescue - report("problem while loading '#{environment}'") - end -end - -def show_environment - if $showenv then - keys = ENV.keys.sort - size = 0 - keys.each do |k| - size = k.size if k.size > size - end - report('') - keys.each do |k| - report("#{k.rjust(size)} => #{ENV[k]}") - end - report('') - end -end - -def execute(arguments) # br global - - arguments = arguments.split(/\s+/) if arguments.class == String - $directives = hashed(arguments) - - $help = $directives['help'] || false - $batch = $directives['batch'] || false - $filename = $directives['file'] || '' - $program = $directives['program'] || 'context' - $direct = $directives['direct'] || false - $edit = $directives['edit'] || false - $page = $directives['page'] || 1 - $browser = $directives['browser'] || false - $report = $directives['report'] || false - $verbose = $directives['verbose'] || false - $arguments = $directives['arguments'] || '' - $execute = $directives['execute'] || $directives['exec'] || false - $locate = $directives['locate'] || false - - $autotree = if $directives['autotree'] then (ENV['TEXMFSTART_TREE'] || ENV['TEXMFSTARTTREE'] || '') else '' end - - $path = $directives['path'] || '' - $tree = $directives['tree'] || $autotree || '' - $environment = $directives['environment'] || '' - - $make = $directives['make'] || false - $remove = $directives['remove'] || $directives['delete'] || false - $unix = $directives['unix'] || false - $windows = $directives['windows'] || $directives['mswin'] || false - $stubpath = $directives['stubpath'] || '' - $indirect = $directives['indirect'] || false - - $before = $directives['before'] || '' - $after = $directives['after'] || '' - - $iftouched = $directives['iftouched'] || false - $ifchanged = $directives['ifchanged'] || false - - $openoffice = $directives['oo'] || false - - $crossover = false if $directives['clear'] - - $showenv = $directives['showenv'] || false - $verbose = true if $showenv - - $serve = $directives['serve'] || false - - $verbose = true if (ENV['_CTX_VERBOSE_'] =~ /(y|yes|t|true|on)/io) && ! $locate && ! $report - - set_applications($page) - - # private: - - $selfmerge = $directives['selfmerge'] || false - $selfcleanup = $directives['selfclean'] || $directives['selfcleanup'] || false - - ENV['_CTX_VERBOSE_'] = 'yes' if $verbose - - if $openoffice then - if ENV['OOPATH'] then - if FileTest.directory?(ENV['OOPATH']) then - report("using open office python") - if $mswindows then - $applications['python'] = $applications['py'] = "\"#{File.join(ENV['OOPATH'],'program','python.bat')}\"" - else - $applications['python'] = $applications['py'] = File.join(ENV['OOPATH'],'python') - end - report("python path #{$applications['python']}") - else - report("environment variable 'OOPATH' does not exist") - end - else - report("environment variable 'OOPATH' is not set") - end - end - - if $selfmerge then - output("ruby libraries are cleaned up") if SelfMerge::cleanup - output("ruby libraries are merged") if SelfMerge::merge - return true - elsif $selfcleanup then - output("ruby libraries are cleaned up") if SelfMerge::cleanup - return true - elsif $serve then - if ENV['KPSEMETHOD'] && ENV['KPSEPORT'] then - # # kpse_merge_done: require 'base/kpseremote' - begin - KpseRemote::start_server - rescue - return false - else - return true - end - else - usage - puts("") - puts("message : set 'KPSEMETHOD' and 'KPSEPORT' variables") - return false - end - elsif $help || ! $filename || $filename.empty? then - usage - loadtree($tree) - loadenvironment($environment) - show_environment() - return true - elsif $batch && $filename && ! $filename.empty? then - # todo, take commands from file and avoid multiple starts and checks - return false - else - report("texmfstart version #{$version}") - loadtree($tree) - loadenvironment($environment) - show_environment() - if $make || $remove then - if $filename == 'all' then - makelist = $makelist - else - makelist = [$filename] - end - makelist.each do |filename| - if $windows then - make(filename,true,false,$remove) - elsif $unix then - make(filename,false,true,$remove) - else - make(filename,$mswindows,!$mswindows,$remove) - end - end - return true # guess - elsif $browser && $filename =~ /^http\:\/\// then - return launch($filename) - else - begin - process do - if $direct || $filename =~ /^bin\:/ then - return direct($filename) - elsif $edit && ! $editor.empty? then - return edit($filename) - else # script: or no prefix - command = find(shortpathname($filename),$program) - if command then - register("THREAD",File.dirname(File.expand_path(command))) - return run(command) - else - report('unable to locate program') - return false - end - end - end - rescue - report('fatal error in starting process') - return false - end - end - end - -end - -if execute(ARGV) then - report("\nexecution was successful") if $verbose - exit(0) -else - report("\nexecution failed") if $verbose - exit(1) -end +../../texmf-dist/scripts/context/ruby/texmfstart.rb
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/texshow b/Master/bin/sparc-solaris/texshow new file mode 120000 index 00000000000..52a03692b74 --- /dev/null +++ b/Master/bin/sparc-solaris/texshow @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texshow
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/textools b/Master/bin/sparc-solaris/textools index 7445eac371c..d1a20375405 100755..120000 --- a/Master/bin/sparc-solaris/textools +++ b/Master/bin/sparc-solaris/textools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart textools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/textools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/texutil b/Master/bin/sparc-solaris/texutil index 607154af059..78f249c7f02 100755..120000 --- a/Master/bin/sparc-solaris/texutil +++ b/Master/bin/sparc-solaris/texutil @@ -1,2 +1 @@ -#!/bin/sh -texmfstart texutil.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/texutil
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/tftopl b/Master/bin/sparc-solaris/tftopl Binary files differindex 790d0b0ce85..1f3f7070057 100755 --- a/Master/bin/sparc-solaris/tftopl +++ b/Master/bin/sparc-solaris/tftopl diff --git a/Master/bin/sparc-solaris/tie b/Master/bin/sparc-solaris/tie Binary files differindex 035e7c222b1..f48d13221fa 100755 --- a/Master/bin/sparc-solaris/tie +++ b/Master/bin/sparc-solaris/tie diff --git a/Master/bin/sparc-solaris/tmftools b/Master/bin/sparc-solaris/tmftools index 7531a966390..444a68a40ee 100755..120000 --- a/Master/bin/sparc-solaris/tmftools +++ b/Master/bin/sparc-solaris/tmftools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart tmftools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/tmftools
\ No newline at end of file diff --git a/Master/bin/sparc-solaris/ttf2afm b/Master/bin/sparc-solaris/ttf2afm Binary files differindex c1bdcc01601..de8bea6a90d 100755 --- a/Master/bin/sparc-solaris/ttf2afm +++ b/Master/bin/sparc-solaris/ttf2afm diff --git a/Master/bin/sparc-solaris/ttf2pk b/Master/bin/sparc-solaris/ttf2pk Binary files differindex eed8e499252..1af32459466 100755 --- a/Master/bin/sparc-solaris/ttf2pk +++ b/Master/bin/sparc-solaris/ttf2pk diff --git a/Master/bin/sparc-solaris/ttf2tfm b/Master/bin/sparc-solaris/ttf2tfm Binary files differindex 24bac60222d..49abbfeaa4d 100755 --- a/Master/bin/sparc-solaris/ttf2tfm +++ b/Master/bin/sparc-solaris/ttf2tfm diff --git a/Master/bin/sparc-solaris/ttftotype42 b/Master/bin/sparc-solaris/ttftotype42 Binary files differindex 7cbf496735e..01286a50204 100755 --- a/Master/bin/sparc-solaris/ttftotype42 +++ b/Master/bin/sparc-solaris/ttftotype42 diff --git a/Master/bin/sparc-solaris/vftovp b/Master/bin/sparc-solaris/vftovp Binary files differindex 2c0a638bd0c..5ddea981590 100755 --- a/Master/bin/sparc-solaris/vftovp +++ b/Master/bin/sparc-solaris/vftovp diff --git a/Master/bin/sparc-solaris/vlna b/Master/bin/sparc-solaris/vlna Binary files differnew file mode 100755 index 00000000000..16e4251fe12 --- /dev/null +++ b/Master/bin/sparc-solaris/vlna diff --git a/Master/bin/sparc-solaris/vptovf b/Master/bin/sparc-solaris/vptovf Binary files differindex 137c476701a..167eca7306d 100755 --- a/Master/bin/sparc-solaris/vptovf +++ b/Master/bin/sparc-solaris/vptovf diff --git a/Master/bin/sparc-solaris/weave b/Master/bin/sparc-solaris/weave Binary files differindex 19f75c75f86..ffa4b2827b3 100755 --- a/Master/bin/sparc-solaris/weave +++ b/Master/bin/sparc-solaris/weave diff --git a/Master/bin/sparc-solaris/xdvi b/Master/bin/sparc-solaris/xdvi index 847bf4acd69..04662a62d36 100755 --- a/Master/bin/sparc-solaris/xdvi +++ b/Master/bin/sparc-solaris/xdvi @@ -17,15 +17,22 @@ test -f /bin/bsh && test -z "$RUNNING_BSH" \ && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } RUNNING_BSH= -# -help and -version only work if they are the only options. Therefore, -# we cannot give the "-name xdvi" parameter in that case. -# SU: Actually, with current xdvik, they should work in any position; but -# we may keep this for compatibility with older versions and non-k xdvi. +# -help and -version only used to work if they were the only options, +# so the "-name xdvi" parameter wasn't used in that case. With current +# xdvik, it should work in any case, but we keep this logic for compatibility +# with older xdvik and plain xdvi versions. +have_basename=`basename foo/bar 2>&1 | grep -i 'not found'` +if [ "$have_basename"xxx = "xxx" ]; then + BASE_NAME=`basename $0` +else + BASE_NAME=`echo $0 | sed 's!.*/!!'` +fi + case "$#:$1" in 1:-help|1:-version) NAMEOPT=;; *) - NAMEOPT='-name xdvi';; + NAMEOPT="-name $BASE_NAME";; esac xdviappfile=`kpsewhich -progname=xdvi --format='other text files' XDvi` @@ -43,4 +50,4 @@ if test -n "$xdviappfile"; then XFILESEARCHPATH="$xdviapppath:${XFILESEARCHPATH-%D}"; export XFILESEARCHPATH fi -exec xdvi-motif.bin $NAMEOPT ${1+"$@"} +exec xdvi-motif $NAMEOPT ${1+"$@"} diff --git a/Master/bin/sparc-solaris/xdvi-motif b/Master/bin/sparc-solaris/xdvi-motif Binary files differnew file mode 100755 index 00000000000..23869e79991 --- /dev/null +++ b/Master/bin/sparc-solaris/xdvi-motif diff --git a/Master/bin/sparc-solaris/xdvi-motif.bin b/Master/bin/sparc-solaris/xdvi-motif.bin Binary files differdeleted file mode 100755 index 71221cb51f7..00000000000 --- a/Master/bin/sparc-solaris/xdvi-motif.bin +++ /dev/null diff --git a/Master/bin/sparc-solaris/xdvipdfmx b/Master/bin/sparc-solaris/xdvipdfmx Binary files differindex b00d951a2ff..689a2f00d79 100755 --- a/Master/bin/sparc-solaris/xdvipdfmx +++ b/Master/bin/sparc-solaris/xdvipdfmx diff --git a/Master/bin/sparc-solaris/xetex b/Master/bin/sparc-solaris/xetex Binary files differindex c9ebb7313cb..b197f5f176a 100755 --- a/Master/bin/sparc-solaris/xetex +++ b/Master/bin/sparc-solaris/xetex diff --git a/Master/bin/sparc-solaris/xindy.mem b/Master/bin/sparc-solaris/xindy.mem Binary files differindex f125da0bd42..edad407384f 100644 --- a/Master/bin/sparc-solaris/xindy.mem +++ b/Master/bin/sparc-solaris/xindy.mem diff --git a/Master/bin/sparc-solaris/xindy.run b/Master/bin/sparc-solaris/xindy.run Binary files differindex 7db3a322004..3ca7a9893e8 100755 --- a/Master/bin/sparc-solaris/xindy.run +++ b/Master/bin/sparc-solaris/xindy.run diff --git a/Master/bin/sparc-solaris/xmltools b/Master/bin/sparc-solaris/xmltools index 03086d0436b..873458dcc92 100755..120000 --- a/Master/bin/sparc-solaris/xmltools +++ b/Master/bin/sparc-solaris/xmltools @@ -1,2 +1 @@ -#!/bin/sh -texmfstart xmltools.rb "$@" +../../texmf-dist/scripts/context/stubs/unix/xmltools
\ No newline at end of file |