diff options
author | Norbert Preining <preining@logic.at> | 2009-05-12 16:41:23 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2009-05-12 16:41:23 +0000 |
commit | 0f3796d4167346cf66cb3462fc18b95d33a17c9f (patch) | |
tree | 2ed6606d42259d551d06936ed20f7d068a5c2ccd /Master/bin | |
parent | 2adc57203c05867abb540950d7fc503d41cbf859 (diff) |
add i386-cygwin binaries for 2008
git-svn-id: svn://tug.org/texlive/trunk@13056 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/bin')
292 files changed, 10479 insertions, 0 deletions
diff --git a/Master/bin/i386-cygwin/a2ping b/Master/bin/i386-cygwin/a2ping new file mode 120000 index 00000000000..5cbfe106996 --- /dev/null +++ b/Master/bin/i386-cygwin/a2ping @@ -0,0 +1 @@ +../../texmf/scripts/a2ping/a2ping.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/afm2pl.exe b/Master/bin/i386-cygwin/afm2pl.exe Binary files differnew file mode 100755 index 00000000000..66e0ded0a50 --- /dev/null +++ b/Master/bin/i386-cygwin/afm2pl.exe diff --git a/Master/bin/i386-cygwin/afm2tfm.exe b/Master/bin/i386-cygwin/afm2tfm.exe Binary files differnew file mode 100755 index 00000000000..403410eae46 --- /dev/null +++ b/Master/bin/i386-cygwin/afm2tfm.exe diff --git a/Master/bin/i386-cygwin/aleph.exe b/Master/bin/i386-cygwin/aleph.exe Binary files differnew file mode 100755 index 00000000000..608c519a393 --- /dev/null +++ b/Master/bin/i386-cygwin/aleph.exe diff --git a/Master/bin/i386-cygwin/allcm b/Master/bin/i386-cygwin/allcm new file mode 100755 index 00000000000..945c7c88457 --- /dev/null +++ b/Master/bin/i386-cygwin/allcm @@ -0,0 +1,118 @@ +#!/bin/sh + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +progname=`basename $0` +tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$ + +case "$progname" in + allec) + encoding=T1;; + *) + encoding=OT1;; +esac + +case "$1" in + -r) + DVIPS=dvired + shift + ;; + *) + DVIPS=dvips + ;; +esac + +body() +{ + cat <<-'eof' + \pagestyle{empty} + \parindent0in + \hfuzz=\maxdimen + \hbadness=10000 + \textheight9.5in + \textwidth6.5in + \newcommand{\myformula}{\sum a_{b_{c_d}} = c} + \newcommand{\mytext}{text $\mathcal{\myformula}\mathrm{\myformula} + \mathbf{\myformula}\mathsf{\myformula}\mathtt{\myformula} + \mathnormal{\myformula}\mathit{\myformula}$} + + \newcommand{\TestSizes}{{% + \tiny \mytext\scriptsize \mytext\footnotesize \mytext\small \mytext + \normalsize \mytext + \large \mytext\Large \mytext\LARGE \mytext\huge \mytext\Huge \mytext}} + \newcommand{\TestRM}{rm-family: {\rmfamily\TestSizes}\newline} + \newcommand{\TestSF}{sf-family: {\sffamily\TestSizes}\newline} + \newcommand{\TestTT}{tt-family: {\ttfamily\TestSizes}\newline} + \newcommand{\TestFamilies}{\TestRM\TestSF\TestTT\newline} + \newcommand{\TestMD}{md-series: {\mdseries\TestFamilies}} + \newcommand{\TestBF}{bf-series: {\bfseries\TestFamilies}} + \newcommand{\TestSeries}{\TestBF\TestMD\par} + \newcommand{\TestUP}{up-shape: {\upshape\TestSeries}\par} + \newcommand{\TestIT}{it-shape: {\itshape\TestSeries}\par} + \newcommand{\TestSL}{sl-shape: {\slshape\TestSeries}\par} + \newcommand{\TestSC}{sc-shape: {\scshape\TestSeries}\par} + \newcommand{\TestShapes}{\TestUP\TestIT\TestSL\TestSC} + \begin{document} + \TestShapes + \end{document} +eof +} + +head() +{ + echo '\documentclass['$1'pt]{article}' + echo '\usepackage['$encoding']{fontenc}' +} + +# before we create the tmpdir, set trap for cleanup +trap ' + rm -rf $tmpdir + exit 1 +' 1 2 3 7 13 15 + +(umask 077; mkdir "$tmpdir") || { + echo "$progname: failed to create temp directory." >&2 + exit 1 +} + +cd $tmpdir || exit 1 +echo >&2 +echo "---------------------------------------------------------------------" >&2 +echo ">>>>>>>>>>> Generating testfiles for 10pt, 11pt and 12pt. <<<<<<<<<<" >&2 +echo "---------------------------------------------------------------------" >&2 +head 10 > allcm10.tex +head 11 > allcm11.tex +head 12 > allcm12.tex +body >> allcm10.tex +body >> allcm11.tex +body >> allcm12.tex + +echo >&2 +echo "---------------------------------------------------------------------" >&2 +echo ">>>>>>>>>>> Calling latex... <<<<<<<<<<" >&2 +echo "---------------------------------------------------------------------" >&2 +latex allcm10 >/dev/null +latex allcm11 >/dev/null +latex allcm12 >/dev/null + +echo >&2 +echo "---------------------------------------------------------------------" >&2 +echo ">>>>>>>>>>> Now, calling $DVIPS to make missing fonts... <<<<<<<<<<" >&2 +echo "---------------------------------------------------------------------" >&2 +$DVIPS ${1+"$@"} -V -f allcm10 > /dev/null +$DVIPS ${1+"$@"} -V -f allcm11 > /dev/null +$DVIPS ${1+"$@"} -V -f allcm12 > /dev/null + +cd / +rm -rf $tmpdir diff --git a/Master/bin/i386-cygwin/allec b/Master/bin/i386-cygwin/allec new file mode 120000 index 00000000000..6d5b04d0d35 --- /dev/null +++ b/Master/bin/i386-cygwin/allec @@ -0,0 +1 @@ +allcm
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/allneeded b/Master/bin/i386-cygwin/allneeded new file mode 100755 index 00000000000..15c62c84adb --- /dev/null +++ b/Master/bin/i386-cygwin/allneeded @@ -0,0 +1,46 @@ +#!/bin/sh + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +progname=`basename $0` +dvired=false + +case $1 in +-r) DVIPS="dvips -x707" + shift;; +*) DVIPS=dvips;; +esac + +case $# in +0) echo "Usage: $progname [-r] files ..." >&2 + exit ;; +esac + +findopt= +dvipsopt= + +for i +do + if [ -f $i ] || [ -d $i ]; then + findopt="$findopt $i" + else + dvipsopt="$dvipsopt $i" + fi +done + +find $findopt -name \*.dvi -type f -print | + while true; do + read i + test -z "$i" && exit + echo "processing file '$i' ..." + $DVIPS $dvipsopt -f "$i" >/dev/null + echo + done diff --git a/Master/bin/i386-cygwin/amstex b/Master/bin/i386-cygwin/amstex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/amstex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/bbox.exe b/Master/bin/i386-cygwin/bbox.exe Binary files differnew file mode 100755 index 00000000000..0f3ad53d060 --- /dev/null +++ b/Master/bin/i386-cygwin/bbox.exe diff --git a/Master/bin/i386-cygwin/bg5+latex b/Master/bin/i386-cygwin/bg5+latex new file mode 120000 index 00000000000..1366a36e76c --- /dev/null +++ b/Master/bin/i386-cygwin/bg5+latex @@ -0,0 +1 @@ +gbklatex
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/bg5+pdflatex b/Master/bin/i386-cygwin/bg5+pdflatex new file mode 120000 index 00000000000..1e0ce565ca7 --- /dev/null +++ b/Master/bin/i386-cygwin/bg5+pdflatex @@ -0,0 +1 @@ +gbkpdflatex
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/bg5conv.exe b/Master/bin/i386-cygwin/bg5conv.exe Binary files differnew file mode 100755 index 00000000000..20ef9d330ee --- /dev/null +++ b/Master/bin/i386-cygwin/bg5conv.exe diff --git a/Master/bin/i386-cygwin/bg5latex b/Master/bin/i386-cygwin/bg5latex new file mode 100755 index 00000000000..257a8446e21 --- /dev/null +++ b/Master/bin/i386-cygwin/bg5latex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +bg5conv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/bg5pdflatex b/Master/bin/i386-cygwin/bg5pdflatex new file mode 100755 index 00000000000..80adc376a93 --- /dev/null +++ b/Master/bin/i386-cygwin/bg5pdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] pdflatex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +bg5conv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/bibtex.exe b/Master/bin/i386-cygwin/bibtex.exe Binary files differnew file mode 100755 index 00000000000..9cda92e0502 --- /dev/null +++ b/Master/bin/i386-cygwin/bibtex.exe diff --git a/Master/bin/i386-cygwin/bibtex8.exe b/Master/bin/i386-cygwin/bibtex8.exe Binary files differnew file mode 100755 index 00000000000..8291193739b --- /dev/null +++ b/Master/bin/i386-cygwin/bibtex8.exe diff --git a/Master/bin/i386-cygwin/cef5conv.exe b/Master/bin/i386-cygwin/cef5conv.exe Binary files differnew file mode 100755 index 00000000000..1b39124a9b8 --- /dev/null +++ b/Master/bin/i386-cygwin/cef5conv.exe diff --git a/Master/bin/i386-cygwin/cef5latex b/Master/bin/i386-cygwin/cef5latex new file mode 100755 index 00000000000..7eda1633766 --- /dev/null +++ b/Master/bin/i386-cygwin/cef5latex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cef5conv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/cef5pdflatex b/Master/bin/i386-cygwin/cef5pdflatex new file mode 100755 index 00000000000..25fe066a53f --- /dev/null +++ b/Master/bin/i386-cygwin/cef5pdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] pdflatex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cef5conv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/cefconv.exe b/Master/bin/i386-cygwin/cefconv.exe Binary files differnew file mode 100755 index 00000000000..646ba9f50bb --- /dev/null +++ b/Master/bin/i386-cygwin/cefconv.exe diff --git a/Master/bin/i386-cygwin/ceflatex b/Master/bin/i386-cygwin/ceflatex new file mode 100755 index 00000000000..d34244d9a5b --- /dev/null +++ b/Master/bin/i386-cygwin/ceflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cefconv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/cefpdflatex b/Master/bin/i386-cygwin/cefpdflatex new file mode 100755 index 00000000000..4c7309f2bf2 --- /dev/null +++ b/Master/bin/i386-cygwin/cefpdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] pdflatex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cefconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/cefsconv.exe b/Master/bin/i386-cygwin/cefsconv.exe Binary files differnew file mode 100755 index 00000000000..6e4b0e42b44 --- /dev/null +++ b/Master/bin/i386-cygwin/cefsconv.exe diff --git a/Master/bin/i386-cygwin/cefslatex b/Master/bin/i386-cygwin/cefslatex new file mode 100755 index 00000000000..619d08c7577 --- /dev/null +++ b/Master/bin/i386-cygwin/cefslatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cefsconv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/cefspdflatex b/Master/bin/i386-cygwin/cefspdflatex new file mode 100755 index 00000000000..02bf6598f71 --- /dev/null +++ b/Master/bin/i386-cygwin/cefspdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +cefsconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/cfftot1.exe b/Master/bin/i386-cygwin/cfftot1.exe Binary files differnew file mode 100755 index 00000000000..6320d300c54 --- /dev/null +++ b/Master/bin/i386-cygwin/cfftot1.exe diff --git a/Master/bin/i386-cygwin/context b/Master/bin/i386-cygwin/context new file mode 120000 index 00000000000..fd177847393 --- /dev/null +++ b/Master/bin/i386-cygwin/context @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/context
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/cslatex b/Master/bin/i386-cygwin/cslatex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/cslatex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/csplain b/Master/bin/i386-cygwin/csplain new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/csplain @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/ctangle.exe b/Master/bin/i386-cygwin/ctangle.exe Binary files differnew file mode 100755 index 00000000000..6228d6a488b --- /dev/null +++ b/Master/bin/i386-cygwin/ctangle.exe diff --git a/Master/bin/i386-cygwin/ctie.exe b/Master/bin/i386-cygwin/ctie.exe Binary files differnew file mode 100755 index 00000000000..3f427e8a337 --- /dev/null +++ b/Master/bin/i386-cygwin/ctie.exe diff --git a/Master/bin/i386-cygwin/ctxtools b/Master/bin/i386-cygwin/ctxtools new file mode 120000 index 00000000000..66237b28340 --- /dev/null +++ b/Master/bin/i386-cygwin/ctxtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/ctxtools
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/cweave.exe b/Master/bin/i386-cygwin/cweave.exe Binary files differnew file mode 100755 index 00000000000..d4c2f55677c --- /dev/null +++ b/Master/bin/i386-cygwin/cweave.exe diff --git a/Master/bin/i386-cygwin/detex.exe b/Master/bin/i386-cygwin/detex.exe Binary files differnew file mode 100755 index 00000000000..3c632e7092a --- /dev/null +++ b/Master/bin/i386-cygwin/detex.exe diff --git a/Master/bin/i386-cygwin/devnag.exe b/Master/bin/i386-cygwin/devnag.exe Binary files differnew file mode 100755 index 00000000000..95a819230af --- /dev/null +++ b/Master/bin/i386-cygwin/devnag.exe diff --git a/Master/bin/i386-cygwin/disdvi.exe b/Master/bin/i386-cygwin/disdvi.exe Binary files differnew file mode 100755 index 00000000000..5fc8c3f9e56 --- /dev/null +++ b/Master/bin/i386-cygwin/disdvi.exe diff --git a/Master/bin/i386-cygwin/dmp.exe b/Master/bin/i386-cygwin/dmp.exe Binary files differnew file mode 100755 index 00000000000..b2dc96c46b3 --- /dev/null +++ b/Master/bin/i386-cygwin/dmp.exe diff --git a/Master/bin/i386-cygwin/dt2dv.exe b/Master/bin/i386-cygwin/dt2dv.exe Binary files differnew file mode 100755 index 00000000000..28698c0de44 --- /dev/null +++ b/Master/bin/i386-cygwin/dt2dv.exe diff --git a/Master/bin/i386-cygwin/dv2dt.exe b/Master/bin/i386-cygwin/dv2dt.exe Binary files differnew file mode 100755 index 00000000000..3a1219f08e2 --- /dev/null +++ b/Master/bin/i386-cygwin/dv2dt.exe diff --git a/Master/bin/i386-cygwin/dvi2fax b/Master/bin/i386-cygwin/dvi2fax new file mode 100755 index 00000000000..fdfa83211eb --- /dev/null +++ b/Master/bin/i386-cygwin/dvi2fax @@ -0,0 +1,41 @@ +#!/bin/sh +# options for dvips are passwd down + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +progname=`basename "$0"` +help() +{ + echo "Usage: $progname [-hi|-lo] file[.dvi] [options for dvips]" + echo " -hi: use high fax resolution (204x196) (default)" + echo " -lo: use low fax resolution (204x98)" + echo + echo "Example: $progname foo -l 2" +} + +dvipsconf=dfaxhigh; gsdev=dfaxhigh +case $1 in + -hi) gsdev=dfaxhigh; shift;; + -lo) gsdev=dfaxlow; shift;; +esac + +case $# in + 0) help >&2 + exit 1 + ;; +esac + +NAME=`basename "$1" .dvi` +dvips "$@" -P$dvipsconf -f | + gs -q -dSAFER -sDEVICE=$gsdev -sOutputFile="$NAME-%03d.fax" -sNOPAUSE - diff --git a/Master/bin/i386-cygwin/dvi2tty.exe b/Master/bin/i386-cygwin/dvi2tty.exe Binary files differnew file mode 100755 index 00000000000..dd4014db1b6 --- /dev/null +++ b/Master/bin/i386-cygwin/dvi2tty.exe diff --git a/Master/bin/i386-cygwin/dviasm b/Master/bin/i386-cygwin/dviasm new file mode 120000 index 00000000000..2b15762a267 --- /dev/null +++ b/Master/bin/i386-cygwin/dviasm @@ -0,0 +1 @@ +../../texmf-dist/scripts/dviasm/dviasm.py
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/dvibook.exe b/Master/bin/i386-cygwin/dvibook.exe Binary files differnew file mode 100755 index 00000000000..daa5fe0e44a --- /dev/null +++ b/Master/bin/i386-cygwin/dvibook.exe diff --git a/Master/bin/i386-cygwin/dviconcat.exe b/Master/bin/i386-cygwin/dviconcat.exe Binary files differnew file mode 100755 index 00000000000..1082e705476 --- /dev/null +++ b/Master/bin/i386-cygwin/dviconcat.exe diff --git a/Master/bin/i386-cygwin/dvicopy.exe b/Master/bin/i386-cygwin/dvicopy.exe Binary files differnew file mode 100755 index 00000000000..0d9cde83211 --- /dev/null +++ b/Master/bin/i386-cygwin/dvicopy.exe diff --git a/Master/bin/i386-cygwin/dvidvi.exe b/Master/bin/i386-cygwin/dvidvi.exe Binary files differnew file mode 100755 index 00000000000..c837526781e --- /dev/null +++ b/Master/bin/i386-cygwin/dvidvi.exe diff --git a/Master/bin/i386-cygwin/dvigif b/Master/bin/i386-cygwin/dvigif new file mode 120000 index 00000000000..955e2fb6ada --- /dev/null +++ b/Master/bin/i386-cygwin/dvigif @@ -0,0 +1 @@ +dvipng.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/dvihp b/Master/bin/i386-cygwin/dvihp new file mode 100755 index 00000000000..6b149517086 --- /dev/null +++ b/Master/bin/i386-cygwin/dvihp @@ -0,0 +1,130 @@ +#!/bin/sh +# $Id: dvihp,v 1.3 1996/12/03 19:53:56 karl Exp karl $ +# Run dvicopy, then dvilj[k]. kb@mail.tug.org, 1994. Public domain. +# Try to accept arguments a la dvips, from Thomas Esser. + +: ${DVILJ=dvilj4} # the dvilj variant to run +: ${SPOOL=lpr} # used to print an LJ file +: ${TMPDIR=${TEMP-${TMP-/tmp}}} # for the dvicopy output + +tmpdir="${TMPDIR}"/dvihp$$ +(umask 077; mkdir "$tmpdir") \ + || { echo "cannot create directory \`$tmpdir'."; exit 1; } + +trap ' + cd "${TMPDIR}" + test -d "$tmpdir" && { rm -f "$tmpdir"/*; rmdir "$tmpdir"; } + exit 0 +' 0 1 2 3 6 7 13 15 + +rcs_revision='$Revision: 1.3 $' +version=`set - $rcs_revision; echo $2` + +usage="Usage: `basename $0` [OPTIONS] [DVIFILE[.dvi]]. + Translate the given DVIFILE to Hewlett-Packard PCL by calling dvicopy + and then \$DVILJ (dvilj4 by default). + In the absence of other options, pipe the PCL to \$SPOOL (lpr by default). + + Options are recognized from dvips where possible: +-A print odd pages +-B print even pages +-d # set debug bits to # (see documentation) +-D # set resolution to # +-f run as filter +-l # don't print pages after # +-m manual feed +-n # print # pages +-O #,# set/change paper offset to #,# mm +-o s output to s instead of spooling +-p # don't print pages before # +-Ps pass directly to lpr +-v verbose operation +-x # set magnification to # + +Other options are passed to the dvilj program. + +Email bug reports to tex-k@mail.tug.org." + + +if test $# -eq 0; then + echo "`basename $0`: Missing argument(s)." >&2 + echo "Try \``basename $0` --help' for more information." >&2 + exit 0 +fi + +unset infile opt output +output_opt=-e +verbose=false + +while test $# -gt 0; do + case "$1" in + -help|--help) echo "$usage"; exit 0;; + -version|--version) + echo "`basename $0` (Dviljk 2.6) $version" + echo "There is NO warranty. This script is public domain." + exit 0;; + -A) opt="$opt -D1";; # -A => -D1 (odd pages) + -B) opt="$opt -D2";; # -B -> -D2 (even pages) + -d) shift; opt="$opt --D$1";; # -d => --D (debug) + -d*) opt="$opt `echo $1 | sed s/d/-D/`";; + -D) shift; opt="$opt -R$1";; # -D => -R (resolution) + -f) infile=; output=-;; # -f (run as filter) + -l) shift; opt="$opt -t$1";; # -l => -t (ending page) + -l*) opt="$opt `echo $1 | sed s/l/t/`";; + -m) opt="$opt -A";; # -m => -A (manual feed) + -n) shift; opt="$opt -p$1";; # -n => -p (page count) + -n*) opt="$opt `echo $1 | sed s/^-n/-p/`";; + -o) if test $# -eq 1; then # -o (output file) + # No remaining args, output to foo.lj. + output=`basename $infile .dvi`.lj + else shift; output="$1"; fi;; + -o*) output="`echo $1 | sed 's/^-o//'`";; + -O) shift; x=`echo $1 | sed 's/,.*//'` # -O => -x, -y (page offsets) + y=`echo $1 | sed 's/.*,//'`; opt="$opt -x$x -y$y";; + -O*) temp="`echo $1 | sed 's/^-O//'`" + x=`echo $temp | sed 's/,.*//'` + y=`echo $temp | sed 's/.*,//'`; + opt="$opt -x$x -y$y";; + -p) shift; opt="$opt -f$1";; # -p => -f (starting page) + -p*) opt="$opt `echo $1 | sed s/p/f/`";; + -P) shift; output=; spool_opt="-P$1";; # -Pprinter + -P*) output=; spool_opt="$1";; + -v) verbose=true; opt="$opt -v";; + -x) shift; opt="$opt -m$1";; # -x => -m (magnification) + -x*) opt="$opt `echo $1 | sed s/x/m/`";; + --) shift; infile="$1"; break;; # -- => end of options + -*) opt="$opt $1";; # pass other options through + *) infile="$1";; + esac + shift +done + +# Make sure the filenames are unique on MS-DOS +vfless_dvi="$tmpdir"/dvi$$.vf + +# Expand VF references. +# If $infile is null, this will read standard input. +# dvilj can't read from a pipe, so always write to a file. +$verbose && echo "Running dvicopy $infile >$vfless_dvi" >&2 +if dvicopy $infile >"$vfless_dvi"; then :; else + echo "$0: dvicopy $infile failed." >&2 + exit 1 +fi +$verbose && ls -l "$vfless_dvi" >&2 + +if test -z "$output"; then + output=- # output to stdout + # Doing this pipe means the true exit status might get lost, but it + # seems worth it to avoid the temporary file. (Bad enough to have one.) + maybe_spool_cmd="| $SPOOL $spool_opt" +else + maybe_spool_cmd= +fi + +# Translate DVI to LJ. +cmd="$DVILJ $opt $output_opt$output \"$vfless_dvi\" $maybe_spool_cmd" +$verbose && echo "Running $cmd" >&2 +if eval $cmd; then :; else + echo "$0: $DVILJ failed." >&2 + exit 2 +fi diff --git a/Master/bin/i386-cygwin/dvilj.exe b/Master/bin/i386-cygwin/dvilj.exe Binary files differnew file mode 100755 index 00000000000..cc054808713 --- /dev/null +++ b/Master/bin/i386-cygwin/dvilj.exe diff --git a/Master/bin/i386-cygwin/dvilj2p.exe b/Master/bin/i386-cygwin/dvilj2p.exe Binary files differnew file mode 100755 index 00000000000..05a6584fd99 --- /dev/null +++ b/Master/bin/i386-cygwin/dvilj2p.exe diff --git a/Master/bin/i386-cygwin/dvilj4.exe b/Master/bin/i386-cygwin/dvilj4.exe Binary files differnew file mode 100755 index 00000000000..6bb3bb5cea4 --- /dev/null +++ b/Master/bin/i386-cygwin/dvilj4.exe diff --git a/Master/bin/i386-cygwin/dvilj4l.exe b/Master/bin/i386-cygwin/dvilj4l.exe Binary files differnew file mode 100755 index 00000000000..0929cfbc764 --- /dev/null +++ b/Master/bin/i386-cygwin/dvilj4l.exe diff --git a/Master/bin/i386-cygwin/dvilj6 b/Master/bin/i386-cygwin/dvilj6 new file mode 120000 index 00000000000..5521efc8dc8 --- /dev/null +++ b/Master/bin/i386-cygwin/dvilj6 @@ -0,0 +1 @@ +dvilj4.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/dvipdfm.exe b/Master/bin/i386-cygwin/dvipdfm.exe Binary files differnew file mode 100755 index 00000000000..3330f059423 --- /dev/null +++ b/Master/bin/i386-cygwin/dvipdfm.exe diff --git a/Master/bin/i386-cygwin/dvipdfmx.exe b/Master/bin/i386-cygwin/dvipdfmx.exe Binary files differnew file mode 100755 index 00000000000..999080b05db --- /dev/null +++ b/Master/bin/i386-cygwin/dvipdfmx.exe diff --git a/Master/bin/i386-cygwin/dvipdft b/Master/bin/i386-cygwin/dvipdft new file mode 100755 index 00000000000..db53bd2f5a0 --- /dev/null +++ b/Master/bin/i386-cygwin/dvipdft @@ -0,0 +1,130 @@ +#!/bin/sh + +# +# dvipdft, completely rewtitten by Thomas Esser for teTeX after an +# original script by Mark A. Wicks +# +# Thomas Esser. Public Domain. +# + +# This script makes a first (fast) run with dvipdfm, then calls gs on +# the resulting pdf file to get the thumbnails and finally calls dvipdfm. + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +progname=dvipdft +version=1111942378 # seconds since `00:00:00 1970-01-01 UTC' + # date '+%s' (with GNU date) + +help="Usage: $progname [options] dvifile + $progname --help + $progname --version" + +tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$ + +quoteit() +{ + echo "x$1" | sed "s@.@@; s@'@'\\\\''@; s@^@'@; s@\$@'@" +} + +# process args 1 to (n-1) and scan for a -o argument keep a properly +# quoted backup of the options, so that they can be restored later +unset s outfile +while test $# -gt 1; do + case $1 in + -o) outfile=$2;; + esac + s="$s${s+ }"`quoteit "$1"` + shift +done + +# check for last argument +case $1 in + --help) + echo "$help" + exit 0 + ;; + --version) + echo "$progname version $version by Thomas Esser" + exit 0 + ;; + "") + echo "$help" + exit 1 + ;; +esac + +# args 1 to (n-1) are gone, last one must be the dvifile +dvifile=$1 + +# outfile comes from -o argument, else it is derived from the input file +test -n "$outfile" \ + || outfile=`echo "$dvifile" | sed 's@.*/@@; s@\.dvi$@@; s@$@.pdf@'` + +# outBase is part of the thumbname files just as dvipdfm expects them: +outBase=`echo "$outfile" | sed 's@\.pdf$@@'` + +# restore args 1 to (n-1): +eval set x "$s"; shift + +# Run dvipdfm with the fastest options for the first pass +echo "$progname: running dvipdfm $@ -e -z0 $dvifile" >&2 +dvipdfm ${1+"$@"} -e -z0 "$dvifile" || { + echo "$progname: dvipdfm failed." >&2 + exit 1 +} + +# before we create the tmpdir, set trap for cleanup +trap ' + rm -rf $tmpdir + exit 1 +' 1 2 3 7 13 15 + +mkdir "$tmpdir" || { + echo "$progname: failed to create temp directory." >&2 + exit 1 +} + +# if outBase contains a /, we might need to create a directory +case $outBase in + */*) + fq=`echo "$tmpdir/$outBase" | sed 's@//@/@g; s@/[^/]*$@@'` + test -d "$fq" || mkdir -p "$fq" || { + echo "$progname: failed to create temp thumbnail directory." >&2 + rm -rf $tmpdir + exit 1 + } + ;; +esac + +# run gs +echo "$progname: running gs" >&2 +gs -r10 -dNOPAUSE -dBATCH -sDEVICE=png256 \ + -sOutputFile="$tmpdir/$outBase.%d" "$outfile" || { + echo "$progname: gs failed." >&2 + rm -rf $tmpdir + exit 1 +} + +# run dvipdfm with the users specified options for the last pass +echo "$progname: running dvipdfm -dt $@ $dvifile" >&2 +TMP=$tmpdir dvipdfm -dt ${1+"$@"} "$dvifile" || { + echo "$progname: dvipdfm failed." >&2 + rm -rf $tmpdir + exit 1 +} + +# nothing failed, so cleanup and report success to caller +rm -rf $tmpdir +exit 0 diff --git a/Master/bin/i386-cygwin/dvipng.exe b/Master/bin/i386-cygwin/dvipng.exe Binary files differnew file mode 100755 index 00000000000..4dcb0861726 --- /dev/null +++ b/Master/bin/i386-cygwin/dvipng.exe diff --git a/Master/bin/i386-cygwin/dvipos.exe b/Master/bin/i386-cygwin/dvipos.exe Binary files differnew file mode 100755 index 00000000000..92b7e922b8c --- /dev/null +++ b/Master/bin/i386-cygwin/dvipos.exe diff --git a/Master/bin/i386-cygwin/dvips.exe b/Master/bin/i386-cygwin/dvips.exe Binary files differnew file mode 100755 index 00000000000..202535fe5a4 --- /dev/null +++ b/Master/bin/i386-cygwin/dvips.exe diff --git a/Master/bin/i386-cygwin/dvired b/Master/bin/i386-cygwin/dvired new file mode 100755 index 00000000000..4eb3586119d --- /dev/null +++ b/Master/bin/i386-cygwin/dvired @@ -0,0 +1,98 @@ +#!/bin/sh +#============================================================================== +# Version: 0.3 +# Module: dvired +# Purpose: Translate dvi-file into postscript with reduced output size. +# Two logical pages will be put on onto each physical sheet of +# paper. +# System: Linux. UNIX(tm) systems may work as well :-) +# Requires: pstops (http://www.dcs.ed.ac.uk/home/ajcd/psutils/), dvips +# Created: 19.11.1992 +# Last Change: 13.08.1999 +# Language: sh +# Author: Thomas Esser +# Address: te@dbs.uni-hannover.de +# Copyright: (c) 1994, 1999 by Thomas Esser +# Copying: GNU GENERAL PUBLIC LICENSE +#============================================================================== + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +help() +{ + cat <<eof + +Usage: dvired [options] file + +This programm behaves like dvips, execpt fot the fact that two logical +pages will be put on onto each physical sheet of paper. + +For options see dvips(1). This program only interprets the options +-o, -P and -f. All other options will directly be passed to dvips. + +If your paper is not in A4 format, you need to adjust the dimensions +in this program. + +Examples: (it is assumed that the PRINTER-variable is set) + dvired -Plw foo send output to printer lw + dvired -o foo.ps foo send output to file foo.ps + dvired -pp4-7 foo send 4 output-pages to printer + dvired foo -f | ghostview - preview output with ghostview +eof +} + +case $# in +0) help ; exit 1 ; ;; +esac + +# This will work for A4 paper. +paper=a4 ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-141.06mm)' + +# The following are *UNTESTED*. Please let me know whether they work +# or not, if you can test them. +#paper=a3 ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-202.56mm)' +#paper=letter ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-132.26mm)' +#paper=legal ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-170.36mm)' +#paper=ledger ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-132.26mm)' +#paper=tabloid ; pstopsopt='2:0(7.44mm,7.44mm)+1(7.44mm,-208.46mm)' + +of="" +lpr_opt="" + +case "$PRINTER" in +"") dvips_pre="" ;; +*) dvips_pre="-P$PRINTER" ;; +esac + +dvips_pre="$dvips_pre -t $paper -t landscape" + +while [ ! -z "$1" ] ; do + case $1 in + -P) of="" ; dvips_pre="$dvips_pre -P$2" ; lpr_opt="-P$2" + shift ;; + -P*) of="" ; dvips_pre="$dvips_pre $1" ; lpr_opt="$1" ;; + -o) of="$2" + shift ;; + -o*) of="`echo $1| sed 's/..//'`" ;; + -f) of="-" ;; + *) opt="$opt $1" + esac + shift +done + +case "$of" in +"") dvips -x707 $dvips_pre $opt -f | pstops -q $pstopsopt | lpr $lpr_opt + ;; +"-") dvips -x707 $dvips_pre $opt -f | pstops -q $pstopsopt + ;; +*) dvips -x707 $dvips_pre $opt -f | pstops -q $pstopsopt > "$of" + ;; +esac diff --git a/Master/bin/i386-cygwin/dviselect.exe b/Master/bin/i386-cygwin/dviselect.exe Binary files differnew file mode 100755 index 00000000000..0260c80812e --- /dev/null +++ b/Master/bin/i386-cygwin/dviselect.exe diff --git a/Master/bin/i386-cygwin/dvitodvi.exe b/Master/bin/i386-cygwin/dvitodvi.exe Binary files differnew file mode 100755 index 00000000000..573916e49b1 --- /dev/null +++ b/Master/bin/i386-cygwin/dvitodvi.exe diff --git a/Master/bin/i386-cygwin/dvitomp.exe b/Master/bin/i386-cygwin/dvitomp.exe Binary files differnew file mode 100755 index 00000000000..86607df6dda --- /dev/null +++ b/Master/bin/i386-cygwin/dvitomp.exe diff --git a/Master/bin/i386-cygwin/dvitype.exe b/Master/bin/i386-cygwin/dvitype.exe Binary files differnew file mode 100755 index 00000000000..fa98c5641e0 --- /dev/null +++ b/Master/bin/i386-cygwin/dvitype.exe diff --git a/Master/bin/i386-cygwin/e2pall b/Master/bin/i386-cygwin/e2pall new file mode 120000 index 00000000000..47465883225 --- /dev/null +++ b/Master/bin/i386-cygwin/e2pall @@ -0,0 +1 @@ +../../texmf/scripts/tetex/e2pall.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/ebb b/Master/bin/i386-cygwin/ebb new file mode 120000 index 00000000000..f0ee8b58516 --- /dev/null +++ b/Master/bin/i386-cygwin/ebb @@ -0,0 +1 @@ +dvipdfmx.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/ebong b/Master/bin/i386-cygwin/ebong new file mode 120000 index 00000000000..b0704cb4db1 --- /dev/null +++ b/Master/bin/i386-cygwin/ebong @@ -0,0 +1 @@ +../../texmf-dist/scripts/bengali/ebong.py
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/eplain b/Master/bin/i386-cygwin/eplain new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/eplain @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/epsffit.exe b/Master/bin/i386-cygwin/epsffit.exe Binary files differnew file mode 100755 index 00000000000..b8246f44550 --- /dev/null +++ b/Master/bin/i386-cygwin/epsffit.exe diff --git a/Master/bin/i386-cygwin/epspdf b/Master/bin/i386-cygwin/epspdf new file mode 120000 index 00000000000..0195c700955 --- /dev/null +++ b/Master/bin/i386-cygwin/epspdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/epspdf/epspdf
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/epspdftk b/Master/bin/i386-cygwin/epspdftk new file mode 120000 index 00000000000..ef9d117fd47 --- /dev/null +++ b/Master/bin/i386-cygwin/epspdftk @@ -0,0 +1 @@ +../../texmf-dist/scripts/epspdf/epspdftk
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/epstopdf b/Master/bin/i386-cygwin/epstopdf new file mode 120000 index 00000000000..3287ed667d6 --- /dev/null +++ b/Master/bin/i386-cygwin/epstopdf @@ -0,0 +1 @@ +../../texmf/scripts/epstopdf/epstopdf.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/etex b/Master/bin/i386-cygwin/etex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/etex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/exatools b/Master/bin/i386-cygwin/exatools new file mode 120000 index 00000000000..304ccdc7e15 --- /dev/null +++ b/Master/bin/i386-cygwin/exatools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/exatools
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/extconv.exe b/Master/bin/i386-cygwin/extconv.exe Binary files differnew file mode 100755 index 00000000000..8888ade4b3e --- /dev/null +++ b/Master/bin/i386-cygwin/extconv.exe diff --git a/Master/bin/i386-cygwin/extractbb b/Master/bin/i386-cygwin/extractbb new file mode 120000 index 00000000000..f0ee8b58516 --- /dev/null +++ b/Master/bin/i386-cygwin/extractbb @@ -0,0 +1 @@ +dvipdfmx.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/extractres b/Master/bin/i386-cygwin/extractres new file mode 100755 index 00000000000..c54056461a2 --- /dev/null +++ b/Master/bin/i386-cygwin/extractres @@ -0,0 +1,96 @@ +#!/usr/bin/env perl +# extractres: extract resources from PostScript file +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$prog = ($0 =~ s=.*/==); + +%resources = (); # list of resources included +%merge = (); # list of resources extracted this time +%extn = ("font", ".pfa", "file", ".ps", "procset", ".ps", # resource extns + "pattern", ".pat", "form", ".frm", "encoding", ".enc"); +%type = ("%%BeginFile:", "file", "%%BeginProcSet:", "procset", + "%%BeginFont:", "font"); # resource types + +while (@ARGV) { + $_ = shift; + if (/^-m(erge)?$/) { $merge = 1; } + elsif (/^-/) { + print STDERR "Usage: $prog [-merge] [file]\n"; + exit 1; + } else { + unshift(@ARGV, $_); + last; + } +} + +if (defined($ENV{TMPDIR})) { # set body file name + $body = "$ENV{TMPDIR}/body$$.ps"; +} else { + $body = "body$$.ps"; +} + +open(BODY, $body) && die "Temporary file $body already exists"; +open(BODY, ">$body") || die "Can't write file $body"; + +sub filename { # make filename for resource in @_ + local($name); + foreach (@_) { # sanitise name + s/[!()\$\#*&\\\|\`\'\"\~\{\}\[\]\<\>\?]//g; + $name .= $_; + } + $name =~ s@.*/@@; # drop directories + die "Filename not found for resource ", join(" ", @_), "\n" + if $name =~ /^$/; + $name; +} + +$output = STDOUT; # start writing header out +while (<>) { + if (/^%%BeginResource:/ || /^%%BeginFont:/ || /^%%BeginProcSet:/) { + local($comment, @res) = split(/\s+/); # look at resource type + local($type) = defined($type{$comment}) ? $type{$comment} : shift(@res); + local($name) = &filename(@res, $extn{$type}); # make file name + $saveout = $output; + if (!$resources{$name}) { + print "%%IncludeResource: $type ", join(" ", @res), "\n"; + if (!open(RES, $name)) { + open(RES, ">$name") || die "Can't write file $name"; + $resources{$name} = $name; + $merge{$name} = $merge; + $output = RES; + } else { # resource already exists + close(RES); + undef $output; + } + } elsif ($merge{$name}) { + open(RES, ">>$name") || die "Can't append to file $name"; + $output = RES; + } else { # resource already included + undef $output; + } + } elsif (/^%%EndResource/ || /^%%EndFont/ || /^%%EndProcSet/) { + if (defined $output) { + print $output $_; + close($output); + } + $output = $saveout; + next; + } elsif ((/^%%EndProlog/ || /^%%BeginSetup/ || /^%%Page:/)) { + $output = BODY; + } + print $output $_ + if defined $output; +} + +close(BODY); # close body output file + +open(BODY, $body); # reopen body for input +while (<BODY>) { # print it all + print $_; +} +close(BODY); + +unlink($body); # dispose of body file + diff --git a/Master/bin/i386-cygwin/fixdlsrps b/Master/bin/i386-cygwin/fixdlsrps new file mode 100755 index 00000000000..2a1d85a654c --- /dev/null +++ b/Master/bin/i386-cygwin/fixdlsrps @@ -0,0 +1,54 @@ +#!/usr/bin/env perl +# fixdlsrps: fix DviLaser/PS document to work with PSUtils +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$nesting = 0; +$page = 1; +$infont = 0; + +@fonts = (); +@body = (); +$header = 1; + +while (<>) { + if (/^XP/) { + $infont++; + push(@fonts, $_); + $infont-- if /PXL.*RP/ || /DN?F.*RP/; + } elsif ($infont) { + push(@fonts, $_); + $infont-- if /PXL.*RP/ || /DN?F.*RP/; + } elsif ((/^%%EndSetup/ || /^%%Page:/) && $header) { + print @body; + @body = ("%%EndSetup\n"); + $header = 0; + } elsif (/^%%EndProlog/ && !$nesting) { + push(@body, + "\$DviLaser begin/GlobalMode{}bdef/LocalMode{}bdef/XP{}def/RP{}def", + "/DoInitialScaling{72.0 Resolution div dup scale}bdef end\n", $_); + } elsif (/^%%BeginPageSetup/ && !$nesting) { + push(@body, "%%Page: $page $page\n", $_, + "Resolution 72 div dup scale Magnification 1000 div dup scale\n", + "/DocumentInitState where {\n", + "/DocumentInitState [ matrix currentmatrix currentlinewidth", + " currentlinecap currentlinejoin currentdash currentgray", + " currentmiterlimit] cvx put}if\n"); + $page++; + } elsif (/^%%BeginDocument:/ || /^%%BeginBinary:/ || /^%%BeginFile:/) { + push(@body, $_); + $nesting++; + } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) { + push(@body, $_); + $nesting--; + } elsif (!/^%%PageBoundingBox:/ && !/^%%Page:/) { + push(@body, $_); + } +} + +print @fonts; +print @body; + +exit 0; + diff --git a/Master/bin/i386-cygwin/fixfmps b/Master/bin/i386-cygwin/fixfmps new file mode 100755 index 00000000000..039ac8e5a3e --- /dev/null +++ b/Master/bin/i386-cygwin/fixfmps @@ -0,0 +1,21 @@ +#!/usr/bin/env perl +# fixfmps: get conforming PostScript out of FrameMaker version 2 file +# move all FMDEFINEFONTs to start of pages +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +%fonts=(); + +while (<>) { + if (/^([0-9]+) [0-9]+ .* FMDEFINEFONT$/) { + $fonts{$1} = $_; + } elsif (/^[0-9.]+ [0-9.]+ [0-9]+ FMBEGINPAGE$/) { + print $_, join('',values(%fonts)); + } elsif (m%(.*/PageSize \[paperwidth paperheight\]put )setpagedevice(.*)%) { + print "$1pop$2\n"; + } else { + print $_; + } +} + diff --git a/Master/bin/i386-cygwin/fixmacps b/Master/bin/i386-cygwin/fixmacps new file mode 100755 index 00000000000..f4cfdb10a9e --- /dev/null +++ b/Master/bin/i386-cygwin/fixmacps @@ -0,0 +1,95 @@ +#!/usr/bin/env perl +# fixmacps: swap to sanitised appledict +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$line = 0; # keep line count +$predir = `kpsewhich -progname=psutils md71_0.ps`; +$dir=`basename $predir`; +$prefix = "md"; +$default = "md71_0.ps"; + +while ($_ = shift(@ARGV)) { + if (/^-d(ir)?$/) { $dir = shift(@ARGV); } + elsif (/^-n(ame)?$/) { $prefix = shift(@ARGV); } + else { + unshift(@ARGV, $_); + last; + } +} + +%fonts = (); +$nesting = 0; + +while (<>) { + if (/^%!/) { + if (! $line) { + print; + } + } elsif (/^%%(Begin|Include)ProcSet: "?\(AppleDict md\)"? ([0-9]+) ([0-9]+)$/) { + local($inc, $mdv, $mdr) = ($1, $2, $3); + if (open(SANE, "<$dir/$prefix${mdv}_$mdr.ps") || + open(SANE, "<$dir/$default")) { + $sane = <SANE>; + local($snv, $snr) = + $sane =~ /^%%BeginProcSet: \(AppleDict md\) ([0-9]+) ([0-9]+)$/; + if ($mdv == $snv && $mdr == $snr) { + if ( $inc eq "Include" ) { + print STDERR "Inserting ProcSet \"(AppleDict md)\" $snv $snr\n"; + print $sane; + while(<SANE>) { + print; + } + close(SANE); + } + else { + print STDERR "Substituting ProcSet \"(AppleDict md)\" $snv $snr\n"; + $ignore = 1; + } + } else { + print STDERR "Unrecognised AppleDict version $mdv $mdr\n"; + print "%!\n" if !$line; + print; + } + } else { + print STDERR "Can't find sanitised AppleDict\n"; + print "%!\n" if !$line; + print; + } + } elsif (/^%%EndProcSet/) { + if ($ignore) { + $ignore = 0; + print "%!\n" if !$line; + print $sane; + while(<SANE>) { + print; + } + close(SANE); + } else { + print "%!\n" if !$line; + print; + } + } elsif (/^%%Page:/ && $nesting == 0) { + print $_; + print values(%fonts); + } elsif (/^%%BeginDocument/ || /^%%BeginBinary/ || /^%%BeginFile/) { + print $_; + $nesting++; + } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) { + print $_; + $nesting--; + } else { + if (! $ignore) { + if (/^\{\}mark .*rf$/) { + $fonts{$_} = $_; + print; + } else { + print "%!\n" if !$line; + print; + } + } + } + $line++; +} + diff --git a/Master/bin/i386-cygwin/fixpsditps b/Master/bin/i386-cygwin/fixpsditps new file mode 100755 index 00000000000..2a1728a8204 --- /dev/null +++ b/Master/bin/i386-cygwin/fixpsditps @@ -0,0 +1,25 @@ +#!/usr/bin/env perl +# fixpsditps: fix psdit output for use in psutils +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$nesting = 0; + +while (<>) { + if (/^\/p{pop showpage pagesave restore \/pagesave save def}def$/) { + print "/p{pop showpage pagesave restore}def\n"; + } elsif (/^%%BeginDocument/ || /^%%BeginBinary/ || /^%%BeginFile/ ) { + print $_; + $nesting++; + } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) { + print $_; + $nesting--; + } elsif (/^%%Page:/ && $nesting == 0) { + print $_; + print "xi\n"; + } elsif (! /^xi$/) { + print $_; + } +} + diff --git a/Master/bin/i386-cygwin/fixpspps b/Master/bin/i386-cygwin/fixpspps new file mode 100755 index 00000000000..77bba66d6b7 --- /dev/null +++ b/Master/bin/i386-cygwin/fixpspps @@ -0,0 +1,58 @@ +#!/usr/bin/env perl +# mangle PostScript produced by PSPrint to make it almost conforming +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$header = 1; $ignore = 0; +$verbose = 0; +@body = (); +%fonts = (); $font = ""; +$inchar = 0; @char = (); + +while (<>) { + if (/^\@end$/) { + $ignore = 1; + } elsif (/^[0-9]+ \@bop0$/) { + $ignore = 0; + $header = 1; + } elsif ($header) { + if (/^\/([a-z.0-9]+) \@newfont$/) { + if (! defined($fonts{$1})) { + $fonts{$1} = 1; + print; + } elsif ($verbose) { + print STDERR "$font already defined\n"; + } + } elsif (/^([a-z.0-9]+) sf$/) { + $font = $1; + print; + } elsif (/^\[</) { + $inchar = 1; + push (@char, $_); + } elsif ($inchar) { + push (@char, $_); + if (/.*\] ([0-9]+) dc$/) { + if (! defined($fonts{$font,$1})) { + $fonts{$font,$1} = 1; + print (@char); + } elsif ($verbose) { + print STDERR "$font character $1 already defined\n"; + } + $inchar = 0; + @char = (); + } + } elsif (/^([0-9]+) \@bop1$/) { + $header = 0; + push (@body, "%%Page: ? $1\n"); + push (@body, $_); + } else { + print; + } + } elsif (! $ignore) { + push (@body, $_); + } +} +print (@body); +print ("\@end\n"); + diff --git a/Master/bin/i386-cygwin/fixscribeps b/Master/bin/i386-cygwin/fixscribeps new file mode 100755 index 00000000000..bd4e9a0e3e0 --- /dev/null +++ b/Master/bin/i386-cygwin/fixscribeps @@ -0,0 +1,19 @@ +#!/usr/bin/env perl +# fixscribeps: get conforming PostScript out of Scribe +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$inepsf = 0; +$epsfn = 0; +while (<>) { + if (/^([0-9]+ [0-9]+ [0-9]+ PB) (%!.*)/) { + print "$1\n%%BeginDocument: Scribe-EPSF $epsfn 0\n$2\n"; + $inepsf++; + } elsif (/^ PE/ && $inepsf) { + print "%%EndDocument\n", $_; + } else { + print $_; + } +} + diff --git a/Master/bin/i386-cygwin/fixtpps b/Master/bin/i386-cygwin/fixtpps new file mode 100755 index 00000000000..4239bb9dfc5 --- /dev/null +++ b/Master/bin/i386-cygwin/fixtpps @@ -0,0 +1,28 @@ +#!/usr/bin/env perl +# fixtpps: fix tpscript document to work with PSUtils +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$nesting = 0; +$header = 1; + +while (<>) { + if (/^%%Page:/ && $nesting == 0) { + print $_; + print "save home\n"; + $header = 0; + } elsif (/^%%BeginDocument/ || /^%%BeginBinary/ || /^%%BeginFile/) { + print $_; + $nesting++; + } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) { + print $_; + $nesting--; + } elsif (/save home/) { + s/save home//; + print $_; + } elsif (!$header || (! /^save$/ && ! /^home$/)) { + print $_; + } +} + diff --git a/Master/bin/i386-cygwin/fixwfwps b/Master/bin/i386-cygwin/fixwfwps new file mode 100755 index 00000000000..92d88443fe1 --- /dev/null +++ b/Master/bin/i386-cygwin/fixwfwps @@ -0,0 +1,33 @@ +#!/usr/bin/env perl +# fixwfwps: fix Word for windows PostScript for printing. +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$nesting = 0; +while (<>) { + tr/\000-\010\012-\014\016-\037//d; + foreach (grep($_ ne "", split("\015"))) { + s!/SVDoc\s+save\s+def!!g; + s!SVDoc\s+restore!!g; + if (/^(%!PS-Adobe-\d*\.\d*) EPSF-/ && !$nesting) { + print "$1\n"; + $wfwepsf = 1; + } elsif (/^SS\s*$/ && $wfwepsf) { + print "%%Page: $wfwepsf $wfwepsf\n"; + $wfwepsf++; + print "$_\n"; + } elsif (/^%MSEPS Preamble/) { + print "%%BeginDocument: (Included EPSF)\n"; + print "$_\n"; + $nesting++; + } elsif (/^%MSEPS Trailer/) { + $nesting--; + print "$_\n"; + print "%%EndDocument\n"; + } elsif (! /^%%BoundingBox/) { + print "$_\n"; + } + } +} + diff --git a/Master/bin/i386-cygwin/fixwpps b/Master/bin/i386-cygwin/fixwpps new file mode 100755 index 00000000000..83a5fdfaf0b --- /dev/null +++ b/Master/bin/i386-cygwin/fixwpps @@ -0,0 +1,31 @@ +#!/usr/bin/env perl +# fixwpps: get semi-conforming PostScript out of WordPerfect 5.0 file +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$page = 1; +$nesting = 0; + +while (<>) { + s/([^\/]_t)([0-9]+)/\1 \2/g; # fix wp 5.0 bug + if (m!/_[be][dp]! || m!_bp \d+ \d+ roll!) { + print $_; + } elsif (/^(.*)(_bp.*)$/) { + print "$1\n" if $1 ne ""; + print "%%Page: $page $page\n"; + print "$2\n"; + $page++; + $nesting++; + } elsif (/_ep$/) { + print $_; + $nesting--; + } elsif (/^(.*)(_ed.*)/) { + print "$1\n" if $1 ne ""; + print "%%Trailer:\n"; + print "$2\n"; + } else { + print $_; + } +} + diff --git a/Master/bin/i386-cygwin/fixwwps b/Master/bin/i386-cygwin/fixwwps new file mode 100755 index 00000000000..bfd58c086da --- /dev/null +++ b/Master/bin/i386-cygwin/fixwwps @@ -0,0 +1,20 @@ +#!/usr/bin/env perl +# fixwwps: get semi-conforming PostScript out of Windows Write file +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$page = 1; + +while (<>) { + if (/^(%!.*) EPSF-\d.\d/) { + print $1, "\n"; + } elsif (/^SS/) { + print "%%Page: $page $page\n"; + print $_; + $page++; + } else { + print $_; + } +} + diff --git a/Master/bin/i386-cygwin/fmtutil b/Master/bin/i386-cygwin/fmtutil new file mode 100755 index 00000000000..e3cdde40f6b --- /dev/null +++ b/Master/bin/i386-cygwin/fmtutil @@ -0,0 +1,901 @@ +#!/bin/sh + +############################################################################### +# fmtutil: utility to maintain format files. +# +# Thomas Esser, public domain. +# +# Commands: +# --all recreate all format files +# --missing create all missing format files +# --refresh recreate only existing format files +# --byfmt formatname (re)create format for `formatname' +# --byhyphen hyphenfile (re)create formats that depend on `hyphenfile' +# --enablefmt formatname enable formatname in config file +# --disablefmt formatname disable formatname in config file +# --listcfg list (enabled and disabled) configurations, +# filtered to available formats +# --catcfg output the content of the config file +# --showhyphen formatname print name of hyphenfile for format `formatname' +# --edit edit fmtutil.cnf file +# --version show version info +# --help show this message +# +# Options: +# --cnffile file set configfile for fmtutil +# --fmtdir directory set destination directory for format files +# --no-engine-subdir don't use $engine subdirectory of the fmtdir +############################################################################### + +############################################################################### +# program history: +# further changes in texk/tetex/ChangeLog. +# 2007-01-04 patch by JK to support $engine subdir (enabled by default) +# Fr Apr 8 19:15:05 CEST 2005 cleanup now has an argument for the return code +# Do Mar 02 10:42:31 CET 2006 add tmpdir to TEXFORMATS +# So Mär 27 18:52:06 CEST 2005 honor $TMPDIR, $TEMP and $TMP, not just $TMP +# Sa Jan 15 18:13:46 CET 2005 avoid multiple variable assignments in one statement +# Di Jan 11 11:42:36 CET 2005 fix --byhyphen with relative hyphenfile +# Fr Dez 31 16:51:29 CET 2004 option catcfg added (for being called by texconfig) +# Do Dez 30 21:53:27 CET 2004 rename variable verbose to verboseFlag +# Sa Dez 25 12:44:23 CET 2004 implementation adopted for teTeX-3.0 (tcfmgr) +# Do Okt 28 11:09:36 CEST 2004 added --refresh +# Fr Sep 17 19:25:28 CEST 2004 save $0 in a variable before calling a function +# Sun May 9 23:24:06 CEST 2004 changes for new web2c: format names +# are now *.fmt, nothing else, disable +# "plain" symlinks +# Thu May 6 14:16:19 CEST 2004: "mv ...</dev/null" to avoid interaction. +# Sun Mar 21 19:44:36 CET 2004: support aleph +# Thu Dec 25 22:11:53 CET 2003: add version string +# Thu Dec 25 12:56:14 CET 2003: new listcfg_loop lists only supported formats +# Sun Dec 21 10:25:37 CET 2003 "mktexfmt pdflatex" did not work (if called +# as mktexfmt, an extention was mandatory) +# Mon Sep 15 13:07:31 CEST 2003 add tmpdir to TEXINPUTS +# Sun Aug 3 11:09:46 CEST 2003 special case for mptopdf +# Sun Apr 20 10:27:09 CEST 2003 allow " " as well as tab in config file +# Wed Feb 19 21:14:52 CET 2003 add eomega support +# Sat Feb 15 22:01:35 CET 2003 let mf-nowin work without mf +# Wed Dec 25 09:47:44 CET 2002 bugfix for localized pool files +# Fri Oct 25 02:29:06 CEST 2002: now more careful about find_hyphenfile() +# Tue Oct 22 22:46:48 CEST 2002: -jobname, oft extension +# Fri Oct 4 22:33:17 CEST 2002: add more cli stuff: enablefmt +# disablefmt listcfg +# Sun Jul 7 21:28:37 CEST 2002: look at log file for possible problems, +# and issue a warning +# Tue Jun 4 21:52:57 CEST 2002: trap / cleanup code from updmap +# Tue Jun 4 19:32:44 CEST 2002: be smarter about stdout / stderr +# Tue Apr 9 22:46:34 CEST 2002: pass -progname=mpost for metafun +# Tue Apr 2 00:37:39 CEST 2002: added mktexfmt functionality +# Tue Jun 5 14:45:57 CEST 2001: added support for mf / mpost +############################################################################### + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +progname=fmtutil +argv0=$0 +version=1205513038 # seconds since `00:00:00 1970-01-01 UTC' + # date '+%s' (with GNU date) + +cnf=fmtutil.cnf # name of the config file +export PATH + +############################################################################### +# cleanup() +# clean up the temp area and exit with proper exit status +############################################################################### +cleanup() +{ + rc=$1 + # for debugging, exit $rc here so $tmpdir with its logs sticks around. + $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ + && { cd / && rm -rf "$tmpdir"; } + (exit $rc); exit $rc +} + +############################################################################### +# setupTmpDir() +# set up a temp directory and a trap to remove it +############################################################################### +setupTmpDir() +{ + $needsCleanup && return + + trap 'cleanup 1' 1 2 3 7 13 15 + needsCleanup=true + (umask 077; mkdir "$tmpdir") \ + || abort "could not create directory \`$tmpdir'" +} + +############################################################################### +# configReplace(file, pattern, line) +# The first line in file that matches pattern gets replaced by line. +# line will be added at the end of the file if pattern does not match. +############################################################################### +configReplace() +{ + file=$1; pat=$2; line=$3 + + if grep "$pat" "$file" >/dev/null; then + ed "$file" >/dev/null 2>&1 <<-eof + /$pat/ + c + $line + . + w + q +eof + else + echo "$line" >> $file + fi +} + +############################################################################### +# setmatch(match) +# setting the "match state" to true or false. Used to see if there was at +# least one match. +############################################################################### +setmatch() +{ + match=$1 +} + +############################################################################### +# getmatch() +# return success if there was at least one match. +############################################################################### +getmatch() +{ + test "x$match" = xtrue +} + +############################################################################### +# initTexmfMain() +# get $MT_TEXMFMAIN from $TEXMFMAIN +############################################################################### +initTexmfMain() +{ + case $MT_TEXMFMAIN in + "") MT_TEXMFMAIN=`kpsewhich --var-value=TEXMFMAIN`;; + esac + export MT_TEXMFMAIN +} + +############################################################################### +# cache_vars() +# locate files / kpathsea variables and export variables to environment +# this speeds up future calls to e.g. mktexupd +############################################################################### +cache_vars() +{ + : ${MT_VARTEXFONTS=`kpsewhich --expand-var='$VARTEXFONTS' | sed 's%^!!%%'`} + : ${MT_MKTEXNAM=`kpsewhich --format='web2c files' mktexnam`} + : ${MT_MKTEXNAM_OPT=`kpsewhich --format='web2c files' mktexnam.opt`} + : ${MT_MKTEXDIR=`kpsewhich --format='web2c files' mktexdir`} + : ${MT_MKTEXDIR_OPT=`kpsewhich --format='web2c files' mktexdir.opt`} + : ${MT_MKTEXUPD=`kpsewhich --format='web2c files' mktexupd`} + : ${MT_MKTEX_CNF=`kpsewhich --format='web2c files' mktex.cnf`} + : ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`} + export MT_VARTEXFONTS MT_MKTEXNAM MT_MKTEXNAM_OPT MT_MKTEXDIR + export MT_MKTEXDIR_OPT MT_MKTEXUPD MT_MKTEX_CNF MT_MKTEX_OPT +} + +############################################################################### +# help() +# display help message and exit +############################################################################### +help() +{ + cat <<'eof' +Usage: fmtutil [option] ... cmd [argument] + +Valid options: + --cnffile file + --fmtdir directory + --no-engine-subdir don't use engine-specific subdir of the fmtdir + --quiet (not implemented, just for compatibility) + --test (not implemented, just for compatibility) + --dolinks (not implemented, just for compatibility) + --force (not implemented, just for compatibility) + +Valid commands: + --all recreate all format files + --missing create all missing format files + --refresh recreate only existing format files + --byfmt formatname (re)create format for `formatname' + --byhyphen hyphenfile (re)create formats that depend on `hyphenfile' + --enablefmt formatname enable formatname in config file + --disablefmt formatname disable formatname in config file + --listcfg list (enabled and disabled) configurations, + filtered to available formats + --catcfg output the content of the config file + --showhyphen formatname print name of hyphenfile for format `formatname' + --edit edit fmtutil.cnf file + --version show version info + --help show this message +eof + cleanup 0 +} + +version() +{ + cat <<eof +$progname version $version. +eof + cleanup 0 +} + +############################################################################### +# abort(errmsg) +# print `errmsg' to stderr and exit with error code 1 +############################################################################### +abort() +{ + echo "$progname: $1." >&2 + cleanup 1 +} + +############################################################################### +# verboseMsg(msg) +# print `msg' to stderr is $verbose is true +############################################################################### +verboseMsg() { + $verboseFlag && verbose echo ${1+"$@"} +} + +############################################################################### +# byebye() +# report any failures and exit the program +############################################################################### +byebye() +{ + if $has_errors; then + { + cat <<eof + +############################################################################### +$progname: Error! Not all formats have been built successfully. +Visit the log files in directory + $destdir +for details. +############################################################################### + +This is a summary of all \`failed' messages and warnings: +$log_failure_msg +eof + } >&2 + cleanup 1 + else + cleanup 0 + fi +} + +############################################################################### +# init_log_failure() +# reset the list of failure messages +############################################################################### +init_log_failure() +{ + log_failure_msg= + has_errors=false +} + +############################################################################### +# log_failure(errmsg) +# report and save failure message `errmsg' +############################################################################### +log_failure() +{ + echo "Error: $@" >&2 + if test -z "$log_failure_msg"; then + log_failure_msg="$@" + else + OLDIFS=$IFS; IFS= + log_failure_msg="$log_failure_msg +$@" + IFS=$OLDIFS + fi + has_errors=true +} + +############################################################################### +# verbose (cmd) +# execute cmd. Redirect output depending on $mktexfmtMode. +############################################################################### +verbose() +{ + $mktexfmtMode && ${1+"$@"} >&2 || ${1+"$@"} +} + +############################################################################### +# mktexdir(args) +# call mktexdir script, disable all features (to prevent sticky directories) +############################################################################### +mktexdir() +{ + initTexmfMain + MT_FEATURES=none "$MT_TEXMFMAIN/web2c/mktexdir" "$@" >&2 +} + +############################################################################### +# tcfmgr(args) +# call tcfmgr script +############################################################################### +tcfmgr() +{ + initTexmfMain + "$MT_TEXMFMAIN/texconfig/tcfmgr" "$@" +} + +############################################################################### +# mktexupd(args) +# call mktexupd script +############################################################################### +mktexupd() +{ + initTexmfMain + "$MT_TEXMFMAIN/web2c/mktexupd" "$@" +} + +############################################################################### +# main() +# parse commandline arguments, initialize variables, +# switch into temp. direcrory, execute desired command +############################################################################### +main() +{ + destdir= # global variable: where do we put the format files? + cnf_file= # global variable: full name of the config file + cmd= # desired action from command line + needsCleanup=false + need_find_hyphenfile=false + cfgparam= + cfgmaint= + tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$ + verboseFlag=true + + # mktexfmtMode: if called as mktexfmt, set to true. Will echo the + # first generated filename after successful generation to stdout then + # (and nothing else), since kpathsea can only deal with one. + mktexfmtMode=false + case $argv0 in + mktexfmt|*/mktexfmt) + mktexfmtMode=true + fullfmt=$1; shift + case $fullfmt in + *.fmt|*.mem|*.base) + set x --byfmt `echo $fullfmt | sed 's@\.[a-z]*$@@'` ${1+"$@"}; shift + ;; + *.*) + abort "unknown format type: $fullfmt" + ;; + "") + help + ;; + *) + set x --byfmt $fullfmt; shift + ;; + esac + ;; + esac + + use_engine_dir=true # whether to use web2c/$engine subdirs + while + case $1 in + --cnffile) + shift; cnf_file=$1; cfgparam=1;; + --cnffile=*) + cnf_file=`echo "$1" | sed 's/--cnffile=//'`; cfgparam=1; shift ;; + --fmtdir) + shift; destdir=$1;; + --fmtdir=*) + destdir=`echo "$1" | sed 's/--fmtdir=//'`; shift ;; + --no-engine-subdir) + use_engine_dir=false;; + --all|-a) + cmd=all;; + --edit|-e) + cmd=edit; cfgmaint=1;; + --missing|-m) + cmd=missing;; + --refresh|-r) + cmd=refresh;; + --byfmt|-f) + shift; cmd=byfmt; arg=$1;; + --byfmt=*) + cmd=byfmt; arg=`echo "$1" | sed 's/--byfmt=//'`; shift ;; + --byhyphen|-h) + shift; cmd=byhyphen; arg=$1;; + --byhyphen=*) + cmd=byhyphen; arg=`echo "$1" | sed 's/--byhyphen=//'`; shift ;; + --showhyphen|-s) + shift; cmd=showhyphen; arg=$1;; + --showhyphen=*) + cmd=showhyphen; arg=`echo "$1" | sed 's/--showhyphen=//'`; shift ;; + --help|-help) + cmd=help;; + --version) + cmd=version;; + --enablefmt) + shift; cmd=enablefmt; arg=$1; cfgmaint=1;; + --enablefmt=*) + cmd=enablefmt; arg=`echo "$1" | sed 's/--enablefmt=//'`; cfgmaint=1; shift;; + --disablefmt) + shift; cmd=disablefmt; arg=$1; cfgmaint=1;; + --disablefmt=*) + cmd=disablefmt; arg=`echo "$1" | sed 's/--disablefmt=//'`; cfgmaint=1; shift;; + --catcfg) + cmd=catcfg;; + --listcfg) + cmd=listcfg;; + --quiet|-q) + verboseFlag=false;; + --test|--dolinks|--force) + ;; + "") break;; + *) abort "$progname: unknown option \`$1'. Try $progname --help for help";; + esac + do test $# -gt 0 && shift; done + + case "$cmd" in + help|"") help;; + version) version;; + esac + + if test -n "$cfgparam"; then + test -f "$cnf_file" || abort "config file \`$cnf_file' not found" + fi + + if test -n "$cfgmaint"; then + if test -z "$cfgparam"; then + setupTmpDir + co=`tcfmgr --tmp $tmpdir --cmd co --file $cnf` + test $? = 0 || cleanup 1 + set x $co; shift + id=$1; cnf_file=$3; orig=$4 + verboseMsg "$progname: initial config file is \`$orig'" + fi + else + if test -z "$cfgparam"; then + cnf_file=`tcfmgr --cmd find --file $cnf` + test -f "$cnf_file" || abort "config file \`$cnf' not found" + fi + fi + + # showhyphen and edit do not need any temp. directory, so do it here: + case "$cmd" in + showhyphen) + show_hyphen_file "$arg" + cleanup $? + ;; + edit) + ${VISUAL-${EDITOR-vi}} $cnf_file + ;; + enablefmt|disablefmt) + $cmd $arg + ;; + catcfg) + grep -v '^ *#' "$cnf_file" | sed 's@^ *@@; s@ *$@@' | grep . | sort + cleanup $? + ;; + listcfg) + listcfg_loop + cleanup $? + ;; + esac + + if test -n "$cfgmaint"; then + if test -z "$cfgparam"; then + ci=`tcfmgr --tmp $tmpdir --cmd ci --id $id` + if test $? = 0; then + if test -n "$ci"; then + verboseMsg "$progname: configuration file updated: \`$ci'" + else + verboseMsg "$progname: configuration file unchanged." + fi + else + abort "failed to update configuration file." + fi + fi + cleanup $? + fi + + # set up destdir: + if test -z "$destdir"; then + : ${MT_TEXMFVAR=`kpsewhich -var-value=TEXMFVAR`} + destdir=$MT_TEXMFVAR/web2c + fi + test -d "$destdir" || mktexdir "$destdir" >/dev/null 2>&1 + test -d "$destdir" || abort "format directory \`$destdir' does not exist" + test -w "$destdir" || abort "format directory \`$destdir' is not writable" + + thisdir=`pwd` + + : ${KPSE_DOT=$thisdir} + export KPSE_DOT + + # due to KPSE_DOT, we don't search the current directory, so include + # it explicitly for formats that \write and later on \read + TEXINPUTS="$tmpdir:$TEXINPUTS"; export TEXINPUTS + # for formats that load other formats (e.g., jadetex loads latex.fmt), + # add the current directory to TEXFORMATS, too. Currently unnecessary + # for MFBASES and MPMEMS. + TEXFORMATS="$tmpdir:$TEXFORMATS"; export TEXFORMATS + + setupTmpDir + cd "$tmpdir" || cleanup 1 + + # make local paths absolute: + case "$destdir" in + /*) ;; + *) destdir="$thisdir/$destdir";; + esac + case "$cnf_file" in + /*) ;; + *) cnf_file="$thisdir/$cnf_file";; + esac + + cache_vars + init_log_failure + # execute the desired command: + case "$cmd" in + all) + recreate_all;; + missing) + create_missing;; + refresh) + recreate_existing;; + byfmt) + recreate_by_fmt "$arg";; + byhyphen) + recreate_by_hyphenfile "$arg";; + esac + + byebye +} + +############################################################################### +# parse_line(config_line) sets global variables: +# format: name of the format, e.g. pdflatex +# engine: name of the TeX engine, e.g. tex, etex, pdftex +# texargs: flags for initex and name of the ini file (e.g. -mltex frlatex.ini) +# fmtfile: name of the format file (without directory, but with extension) +# +# Support for building internationalized formats sets: +# pool: base name of pool file (to support translated pool files) +# tcx: translation file used when creating the format +# +# Example (for fmtutil.cnf): +# mex-pl tex mexconf.tex nls=tex-pl,il2-pl mex.ini +# +# The nls parameter (pool,tcx) can only be specified as the first argument +# inside the 4th field in fmtutil.cnf. +# +# exit code: returns error code if the ini file is not installed +############################################################################### +parse_line() +{ + case $1 in + '#!') disabled=true; shift;; + *) disabled=false;; + esac + format=$1 + engine=$2 + hyphenation=$3 + shift; shift; shift + + # handle nls support: pool + tcx + pool=; tcx= + case $1 in + nls=*) + pool=`echo $1 | sed 's@nls=@@; s@,.*@@'` + tcx=`echo $1 | sed 's@nls=[^,]*@@; s@^,@@'` + shift # nls stuff is not handled by the engine directly, + # so we shift this away + ;; + esac + + texargs="$@" + + eval lastarg=\$$# + inifile=`echo $lastarg | sed 's%^\*%%'` + + case "$engine" in + mpost) fmtfile="$format.mem"; kpsefmt=mpost; texengine=metapost;; + mf|mfw|mf-nowin) fmtfile="$format.base"; kpsefmt=mf; texengine=metafont;; + *) fmtfile="$format.fmt"; kpsefmt=tex; texengine=$engine;; + esac + + # See if we can find $inifile for return code: + kpsewhich -progname=$format -format=$kpsefmt $inifile >/dev/null 2>&1 +} + +############################################################################### +# find_hyphenfile(format, hyphenation) searches for hyphenation along +# searchpath of format +# exit code: returns error is file is not found +############################################################################### +find_hyphenfile() +{ + format="$1"; hyphenation="$2" + case $hyphenation in + -) ;; + *) kpsewhich -progname="$format" -format=tex "$hyphenation";; + esac +} + +############################################################################### +# find_info_for_name(format) +# Look up the config line for format `format' and call parse_line to set +# global variables. +############################################################################### +find_info_for_name() +{ + format="$1" + + # set x `awk '$1 == format {print; exit}' format="$format" "$cnf_file"`; shift + set x `egrep "^$format( | )" "$cnf_file" | sed q`; shift + test $# = 0 && abort "no info for format \`$format'" + parse_line "$@" +} + +############################################################################### +# run_initex() +# Calls initex. Assumes that global variables are set by parse_line. +############################################################################### +run_initex() +{ + + # install a pool file and set tcx flag if requested in lang= option: + rm -f *.pool + poolfile= + tcxflag= + test -n "$pool" \ + && poolfile=`(kpsewhich -progname=$engine $pool.pool) 2>/dev/null` + if test -n "$poolfile" && test -f "$poolfile"; then + verboseMsg "$progname: attempting to create localized format using pool=$pool and tcx=$tcx." + cp "$poolfile" $engine.pool + test -n "$tcx" && tcxflag=-translate-file=$tcx + localpool=true + else + localpool=false + fi + + jobswitch="-jobname=$format" + case "$format" in + metafun) prgswitch=-progname=mpost;; + mptopdf|cont-??) prgswitch=-progname=context;; + *) prgswitch=-progname=$format;; + esac + + rm -f $fmtfile + + # Check for infinite recursion before running the iniTeX: + case :$mktexfmt_loop: in + *:"$format/$engine":*) + abort "Infinite recursion detected, giving up!" ;; + esac + mktexfmt_loop=$mktexfmt_loop:$format/$engine + export mktexfmt_loop + + verboseMsg "$progname: running \`$engine -ini $tcxflag $jobswitch $prgswitch $texargs' ..." + + # run in a subshell to get a local effect of TEXPOOL manipulation: + ( + # If necessary, set TEXPOOL. Use absolute path, because of KPSE_DOT. + $localpool && { TEXPOOL="`pwd`:$TEXPOOL"; export TEXPOOL; } + verbose $engine -ini $tcxflag $jobswitch $prgswitch $texargs + ) </dev/null + + if test $use_engine_dir; then + fulldestdir="$destdir/$texengine" + else + fulldestdir="$destdir" + fi + mkdir -p "$fulldestdir" + if test -f $fmtfile; then + grep '^! ' $format.log >/dev/null 2>&1 && + log_failure "\`$engine -ini $tcxflag $jobswitch $prgswitch $texargs' possibly failed." + + # We don't want user-interaction for the following "mv" commands: + mv "$format.log" "$fulldestdir/$format.log" </dev/null + if mv "$fmtfile" "$fulldestdir/$fmtfile" </dev/null; then + verboseMsg "$progname: $fulldestdir/$fmtfile installed." + # + $mktexfmtMode && $mktexfmtFirst \ + && echo "$fulldestdir/$fmtfile" && mktexfmtFirst=false + # + mktexupd "$fulldestdir" "$fmtfile" + fi + else + log_failure "\`$engine -ini $tcxflag $jobswitch $prgswitch $texargs' failed" + fi +} + +############################################################################### +# recreate_loop() +# for each line in config file: check match-condition and recreate format +# if there is a match +############################################################################### +recreate_loop() +{ + OIFS=$IFS + IFS=' +' + set `echo x; sed '/^#/d; /^[ ]*$/d' "$cnf_file"`; shift + IFS=$OIFS + for line + do + parse_line $line || continue + check_match || continue + run_initex + done +} + +############################################################################### +# listcfg_loop() +# prints all format definitions in config files (enabled and disabled ones) +# for supported formats (i.e. for those which have an existing ini file) +############################################################################### +listcfg_loop() +{ + OIFS=$IFS + IFS=' +' + set `echo x; sed '/^#$/d; /^#[^!]/d; /^[ ]*$/d' "$cnf_file"`; shift + IFS=$OIFS + for line + do + parse_line $line && echo "$line" + done +} + +############################################################################### +# check_match() +# recreate all formats +############################################################################### +check_match() +{ + $need_find_hyphenfile && \ + this_hyphenfile=`find_hyphenfile "$format" "$hyphenation"` + + eval $match_cmd && setmatch true +} + +############################################################################### +# recreate_by_fmt(fmtname) +# recreate all versions of fmtname +############################################################################### +recreate_by_fmt() +{ + fmtname=$1 + match_cmd="test x\$format = x$fmtname" + recreate_loop +} + +############################################################################### +# create_missing() +# create all missing format files +############################################################################### +create_missing() +{ + # match_cmd='test ! -f $destdir/$fmtfile' + match_cmd='test ! -f "`kpsewhich -engine=$texengine -progname=$format $fmtfile`"' + recreate_loop +} + +############################################################################### +# recreate_existing() +# recreate only existing format files +############################################################################### +recreate_existing() +{ + match_cmd='test -f "`kpsewhich -engine=$texengine -progname=$format $fmtfile`"' + recreate_loop +} + +############################################################################### +# recreate_all() +# recreate all formats +############################################################################### +recreate_all() +{ + match_cmd=true + recreate_loop +} + +############################################################################### +# recreate_by_hyphenfile(hyphenfile) +# recreate all formats that depend on hyphenfile +############################################################################### +recreate_by_hyphenfile() +{ + hyphenfile=$1 + + case $hyphenfile in + /*) + : + ;; + ./*) + hyphenfile="$KPSE_DOT/"`echo "$hyphenfile" | sed 's@..@@'` + ;; + *) + hyphenfile="$KPSE_DOT/$hyphenfile" + ;; + esac + need_find_hyphenfile=true + match_cmd="test x\$this_hyphenfile = x$hyphenfile" + + # No match before the loop: + setmatch false + + recreate_loop + + # Now check if there was at least one match: + getmatch || abort "no format depends on \`$hyphenfile'" +} + + +############################################################################### +# show_hyphen_file(format) +# prints full name of the hyphenfile for format +# +# exit code: returns error code if the ini file is not installed or if +# the hyphen file cannot be found +############################################################################### +show_hyphen_file() +{ + fmtname=$1 + + find_info_for_name "$fmtname" || abort "no info for format \`$fmtname'" + if test "x$hyphenation" = x-; then + echo - + cleanup 0 + fi + find_hyphenfile "$format" "$hyphenation" \ + || abort "hyphenfile \`$hyphenation' not found" +} + +############################################################################### +# disablefmt(format) +# disables format in configuration file +############################################################################### +disablefmt() +{ + grep "^$1[ ]" $cnf_file >/dev/null || { (exit 0); return 0; } + + ed $cnf_file >/dev/null 2>&1 <<-eof + g/^$1[ ]/s/^/#! / + w + q +eof + (exit 0); return 0 +} + +############################################################################### +# enablefmt(format) +# enables format in configuration file +############################################################################### +enablefmt() +{ + grep "^#![ ]*$1[ ]" $cnf_file >/dev/null || { (exit 0); return 0; } + ed $cnf_file >/dev/null 2>&1 <<-eof + g/^#![ ]*$1[ ]/s/..[ ]*// + w + q +eof + (exit 0); return 0 +} + +main ${1+"$@"} +cleanup 0 diff --git a/Master/bin/i386-cygwin/fmtutil-sys b/Master/bin/i386-cygwin/fmtutil-sys new file mode 100755 index 00000000000..bfb52f94e1f --- /dev/null +++ b/Master/bin/i386-cygwin/fmtutil-sys @@ -0,0 +1,29 @@ +#!/bin/sh + +# fmtutil-sys: Thomas Esser, public domain. + +# wrapper script for fmtutil with TEXMFVAR and TEXMFCONFIG set to +# TEXMFSYSVAR / TEXMFSYSCONFIG + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' +export PATH + +v=`kpsewhich -var-value TEXMFSYSVAR` +c=`kpsewhich -var-value TEXMFSYSCONFIG` + +TEXMFVAR="$v" +TEXMFCONFIG="$c" +export TEXMFVAR TEXMFCONFIG + +exec fmtutil ${1+"$@"} diff --git a/Master/bin/i386-cygwin/fontinst b/Master/bin/i386-cygwin/fontinst new file mode 100755 index 00000000000..7d1271517ad --- /dev/null +++ b/Master/bin/i386-cygwin/fontinst @@ -0,0 +1,16 @@ +#!/bin/sh + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +tex -progname=fontinst \&tex ${1+"$@"} diff --git a/Master/bin/i386-cygwin/gbklatex b/Master/bin/i386-cygwin/gbklatex new file mode 100755 index 00000000000..f799f7b6e63 --- /dev/null +++ b/Master/bin/i386-cygwin/gbklatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +extconv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/gbkpdflatex b/Master/bin/i386-cygwin/gbkpdflatex new file mode 100755 index 00000000000..6dd3ee3de9e --- /dev/null +++ b/Master/bin/i386-cygwin/gbkpdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] pdflatex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +extconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/getafm b/Master/bin/i386-cygwin/getafm new file mode 100755 index 00000000000..1c6cd21cf77 --- /dev/null +++ b/Master/bin/i386-cygwin/getafm @@ -0,0 +1,358 @@ +#!/bin/sh + +if [ $# -ne 1 ]; then + echo "usage: $0 font-name | gsnd - >font-name.afm" >&2 + exit 1 +fi + +cat << EOF +%! +% produce .afm for $1 +% (c) 1993 by Robert Joop <rj@rainbow.in-berlin.de> +% inspired by two other versions of this theme which are +% getafm 1.00 (c) AJCD +% and getafm.ps by an unknown author, +% modified by J. Daniel Smith <dsmith@mailhost.aa.cad.slb.com> + +% Metrics dictionary code added by AJCD, 7/6/93 + +/getafmdict 100 dict dup begin + + /buf 256 string def + /buf2 16 string def + + /prany % dict dictname printname -> dict + { + 2 index 2 index cvn known + { + print % printname + ( ) print + 1 index exch cvn get = + } + { + (Comment /FontInfo contains no /) print + 2 copy eq + { + = % printname + pop % dictname + } + { + exch + print % dictname + (, therefore no ) print + = % printname + } + ifelse + } + ifelse + } + bind def + + /printfontname + { + (FontName)dup prany + } + bind def + + /printfontinfo + { + dup /FontInfo known + { + dup /FontInfo get + (FullName)dup prany + (FamilyName)dup prany + (Weight)dup prany + (ItalicAngle)dup prany + (isFixedPitch)(IsFixedPitch) prany + (UnderlinePosition)dup prany + (UnderlineThickness)dup prany + (Version)(version) prany + (Notice)dup prany + pop + } + { + (Comment Font lacks a /FontInfo!)= + } + ifelse + } + bind def + + /prbbox % llx lly urx ury -> - + { + 4 1 roll 3 1 roll exch % swap top 4 elements + 4 { ( ) print buf cvs print } repeat + } + bind def + + /getbbox % fontdict chardict character -> fontdict chardict llx lly urx ury + { + gsave + 2 index setfont 0 0 moveto + false charpath flattenpath pathbbox + grestore + } + bind def + + /printmiscinfo + { + dup /FontBBox known + { + (FontBBox) print + dup /FontBBox get aload pop prbbox ()= + } + { + (Comment missing required /FontBBox)= + quit + } + ifelse + 2 copy exch get + dup /H known + 1 index /x known and + 1 index /d known and + 1 index /p known and + dup /looksRoman exch def + { + (CapHeight ) print + (H) getbbox + ceiling cvi = pop pop pop + (XHeight ) print + (x) getbbox + ceiling cvi = pop pop pop + (Ascender ) print + (d) getbbox + ceiling cvi = pop pop pop + (Descender ) print + (p) getbbox + pop pop floor cvi = pop + } + { + (Comment font doesn't contain H, x, d and p; therefore no CapHeight, XHeight, Ascender and Descender)= + } + ifelse + pop + dup /Encoding get + [ + [ (ISOLatin1Encoding) /ISOLatin1Encoding ] + [ (AdobeStandardEncoding) /StandardEncoding ] + ] + { + aload pop dup where + { + exch get 2 index eq + { + (EncodingScheme ) print + buf cvs = + } + { + pop + } + ifelse + } + { + pop pop + } + ifelse + } + forall + pop + } + bind def + + /printcharmetric + { + % chardictname fontdict charnamedict encoding charindex charname + + 4 index dup length dict dup begin exch + { + 1 index /FID ne + 2 index /UniqueID ne + and + { + 1 index /Encoding eq { 256 array copy } if + def + } + { pop pop } + ifelse + } + forall + end + dup /Encoding get 32 3 index put + /f2 exch definefont + setfont + + (C ) print + 1 index buf cvs print + + ( ; WX ) print +% Metrics entries are: +% 1 number: which is the character width +% an array of 2 numbers: which are the left sidebearing and width +% an array of 4 numbers: x & y left sidebearing, width and height + dup 5 index % /charname fontdict + dup /Metrics known { + /Metrics get exch 2 copy known { + get dup type /arraytype eq { + dup length 2 eq + {1 get} {2 get} ifelse + } if + round cvi buf cvs print + } { + pop pop ( ) stringwidth pop round cvi buf cvs print + } ifelse + } { + pop pop ( ) stringwidth pop round cvi buf cvs print + } ifelse + + ( ; N ) print + dup buf cvs print + + ( ; B) print + gsave + newpath 0 0 moveto + ( ) true charpath flattenpath pathbbox + grestore + 2 { ceiling cvi 4 1 roll } repeat + 2 { floor cvi 4 1 roll } repeat + prbbox + + looksRoman + { + [ + [ /f [ /i /f /l ] ] + [ /ff [ /i /l ] ] + ] + { + aload pop 1 index 3 index eq + { + { + 1 index buf cvs + length + 1 index buf2 cvs dup length + 2 index add + buf + 4 2 roll putinterval + buf 0 + 3 -1 roll getinterval + dup cvn + 7 index + exch known + { + exch + ( ; L ) print + buf2 cvs print + ( ) print + print + } + { + pop pop + } + ifelse + } + forall + pop + } + { + pop pop + } + ifelse + } + forall + } + if + pop + + ( ;)= + } + bind def + + /printcharmetrics + { + (StartCharMetrics ) print + 2 copy exch get length 1 sub buf cvs = + + 256 dict dup begin + 1 index /Encoding get + { null def } + forall + end + % chardictname fontdict charnamedict + 1 index /Encoding get + 0 1 255 + { + % encoding index + 2 copy get + dup /.notdef eq { pop } { printcharmetric } ifelse + pop % index + } for + + -1 + 3 index 5 index get + { + pop + dup /.notdef eq + { pop } + { + % chardictname fontdict charnamedict encoding charindex charname + dup 4 index exch known + { pop } + { printcharmetric } + ifelse + } + ifelse + } + forall + % charnamedict encoding index + pop pop pop + + (EndCharMetrics)= + } + bind def + + /printfontmetrics + { + (StartFontMetrics 3.0)= + (Comment Produced by getafm 3.0 (which is by rj@rainbow.in-berlin.de))= + + printfontname + printfontinfo + printmiscinfo + printcharmetrics + + (EndFontMetrics)= + } + bind def + +end def + +/getafm +{ + getafmdict begin + save exch + findfont 1000 scalefont + + null + [ /CharDefs /CharData /CharProcs /CharStrings ] + { + 2 index 1 index known { exch } if + pop + } + forall + dup null eq + { + (can't find dictionary with character data!)= + quit + } + if + exch % dictname fontdict + + printfontmetrics + + pop pop + restore + end +} +bind def + +/$1 getafm + +EOF diff --git a/Master/bin/i386-cygwin/getnonfreefonts b/Master/bin/i386-cygwin/getnonfreefonts new file mode 120000 index 00000000000..26aadc46261 --- /dev/null +++ b/Master/bin/i386-cygwin/getnonfreefonts @@ -0,0 +1 @@ +../../texmf/scripts/texlive/getnonfreefonts.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/getnonfreefonts-sys b/Master/bin/i386-cygwin/getnonfreefonts-sys new file mode 120000 index 00000000000..d1e30f335dd --- /dev/null +++ b/Master/bin/i386-cygwin/getnonfreefonts-sys @@ -0,0 +1 @@ +getnonfreefonts
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/gftodvi.exe b/Master/bin/i386-cygwin/gftodvi.exe Binary files differnew file mode 100755 index 00000000000..b0bcbe01442 --- /dev/null +++ b/Master/bin/i386-cygwin/gftodvi.exe diff --git a/Master/bin/i386-cygwin/gftopk.exe b/Master/bin/i386-cygwin/gftopk.exe Binary files differnew file mode 100755 index 00000000000..3ae1456b396 --- /dev/null +++ b/Master/bin/i386-cygwin/gftopk.exe diff --git a/Master/bin/i386-cygwin/gftype.exe b/Master/bin/i386-cygwin/gftype.exe Binary files differnew file mode 100755 index 00000000000..ba7517a5d82 --- /dev/null +++ b/Master/bin/i386-cygwin/gftype.exe diff --git a/Master/bin/i386-cygwin/gsftopk.exe b/Master/bin/i386-cygwin/gsftopk.exe Binary files differnew file mode 100755 index 00000000000..1bcf8bdb767 --- /dev/null +++ b/Master/bin/i386-cygwin/gsftopk.exe diff --git a/Master/bin/i386-cygwin/hbf2gf.exe b/Master/bin/i386-cygwin/hbf2gf.exe Binary files differnew file mode 100755 index 00000000000..23079cd243c --- /dev/null +++ b/Master/bin/i386-cygwin/hbf2gf.exe diff --git a/Master/bin/i386-cygwin/ht b/Master/bin/i386-cygwin/ht new file mode 120000 index 00000000000..ecd829558cd --- /dev/null +++ b/Master/bin/i386-cygwin/ht @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/ht.sh
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/htcontext b/Master/bin/i386-cygwin/htcontext new file mode 120000 index 00000000000..d2754ae84fc --- /dev/null +++ b/Master/bin/i386-cygwin/htcontext @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htcontext.sh
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/htlatex b/Master/bin/i386-cygwin/htlatex new file mode 120000 index 00000000000..fe0feaa8185 --- /dev/null +++ b/Master/bin/i386-cygwin/htlatex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htlatex.sh
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/htmex b/Master/bin/i386-cygwin/htmex new file mode 120000 index 00000000000..29032d7b670 --- /dev/null +++ b/Master/bin/i386-cygwin/htmex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htmex.sh
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/httex b/Master/bin/i386-cygwin/httex new file mode 120000 index 00000000000..ece1bd19046 --- /dev/null +++ b/Master/bin/i386-cygwin/httex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/httex.sh
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/httexi b/Master/bin/i386-cygwin/httexi new file mode 120000 index 00000000000..aa6cd5c8561 --- /dev/null +++ b/Master/bin/i386-cygwin/httexi @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/httexi.sh
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/htxelatex b/Master/bin/i386-cygwin/htxelatex new file mode 120000 index 00000000000..dcaa0fc882c --- /dev/null +++ b/Master/bin/i386-cygwin/htxelatex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htxelatex.sh
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/htxetex b/Master/bin/i386-cygwin/htxetex new file mode 120000 index 00000000000..c6cf37bfae9 --- /dev/null +++ b/Master/bin/i386-cygwin/htxetex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htxetex.sh
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/includeres b/Master/bin/i386-cygwin/includeres new file mode 100755 index 00000000000..4547357cd93 --- /dev/null +++ b/Master/bin/i386-cygwin/includeres @@ -0,0 +1,46 @@ +#!/usr/bin/env perl +# includeres: include resources in PostScript file +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$prog = ($0 =~ s=.*/==); + +%extn = ("font", ".pfa", "file", ".ps", "procset", ".ps", # resource extns + "pattern", ".pat", "form", ".frm", "encoding", ".enc"); +%type = ("%%BeginFile:", "file", "%%BeginProcSet:", "procset", + "%%BeginFont:", "font"); # resource types + +sub filename { # make filename for resource in @_ + local($name); + foreach (@_) { # sanitise name + s/[!()\$\#*&\\\|\`\'\"\~\{\}\[\]\<\>\?]//g; + $name .= $_; + } + $name =~ s@.*/@@; # drop directories + die "Filename not found for resource ", join(" ", @_), "\n" + if $name =~ /^$/; + $name; +} + +while (<>) { + if (/^%%IncludeResource:/ || /^%%IncludeFont:/ || /^%%IncludeProcSet:/) { + local($comment, @res) = split(/\s+/); + local($type) = defined($type{$comment}) ? $type{$comment} : shift(@res); + local($name) = &filename(@res); + local($inc) = ""; # system include directory + if (open(RES, $name) || open(RES, "$name$extn{$type}") || + open(RES, "$inc/$name") || open(RES, "$inc/$name$extn{$type}")) { + while (<RES>) { + print $_; + } + close(RES); + } else { + print "%%IncludeResource: ", join(" ", $type, @res), "\n"; + print STDERR "Resource $name not found\n"; + } + } else { + print $_; + } +} + diff --git a/Master/bin/i386-cygwin/info.exe b/Master/bin/i386-cygwin/info.exe Binary files differnew file mode 100755 index 00000000000..1ad6d8baaca --- /dev/null +++ b/Master/bin/i386-cygwin/info.exe diff --git a/Master/bin/i386-cygwin/infokey.exe b/Master/bin/i386-cygwin/infokey.exe Binary files differnew file mode 100755 index 00000000000..5a9473ec2e2 --- /dev/null +++ b/Master/bin/i386-cygwin/infokey.exe diff --git a/Master/bin/i386-cygwin/install-info.exe b/Master/bin/i386-cygwin/install-info.exe Binary files differnew file mode 100755 index 00000000000..b54a4b8f2d1 --- /dev/null +++ b/Master/bin/i386-cygwin/install-info.exe diff --git a/Master/bin/i386-cygwin/jadetex b/Master/bin/i386-cygwin/jadetex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/jadetex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/kpseaccess.exe b/Master/bin/i386-cygwin/kpseaccess.exe Binary files differnew file mode 100755 index 00000000000..3dc58d87afd --- /dev/null +++ b/Master/bin/i386-cygwin/kpseaccess.exe diff --git a/Master/bin/i386-cygwin/kpsepath b/Master/bin/i386-cygwin/kpsepath new file mode 120000 index 00000000000..30de0e13853 --- /dev/null +++ b/Master/bin/i386-cygwin/kpsepath @@ -0,0 +1 @@ +kpsetool
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/kpsereadlink.exe b/Master/bin/i386-cygwin/kpsereadlink.exe Binary files differnew file mode 100755 index 00000000000..1f25da4cec0 --- /dev/null +++ b/Master/bin/i386-cygwin/kpsereadlink.exe diff --git a/Master/bin/i386-cygwin/kpsestat.exe b/Master/bin/i386-cygwin/kpsestat.exe Binary files differnew file mode 100755 index 00000000000..a5a941dbd7d --- /dev/null +++ b/Master/bin/i386-cygwin/kpsestat.exe diff --git a/Master/bin/i386-cygwin/kpsetool b/Master/bin/i386-cygwin/kpsetool new file mode 100755 index 00000000000..463097fd4a9 --- /dev/null +++ b/Master/bin/i386-cygwin/kpsetool @@ -0,0 +1,118 @@ +#!/bin/sh + +# kpsetool. Script to make teTeX-style kpsetool, kpsexpand and kpsepath +# available. Web2C's kpsewhich offers a superset of the functionality. +# For compatibilty with old versions of teTeX, this script provides the +# old command line interface of kpsetool, kpsexpand and kpsepath. All the +# real work is done inside Web2C's kpsewhich. +# Thomas Esser <te@dbs.uni-hannover.de>, Mar 1997, public domain. + +export PATH + +usage=" +Usage: kpsexpand [options] string +Usage: kpsetool -w [options] pathtype filename +Usage: kpsepath [options] pathtype + +Valid options are the following: + -n progname : pretend to be progname to kpathsea + -m mode : set Metafont mode + -w : locate files (similar to kpsewhich) + -p : act like kpsepath + -v : act like kpsexpand + +Valid pathtypes are: + gf : generic font bitmap + pk : packed bitmap font + base : Metafont memory dump + bib : BibTeX bibliography source + bst : BibTeX style files + cnf : Kpathsea runtime configuration files + fmt : TeX memory dump + mem : MetaPost memory dump + mf : Metafont source + mfpool : Metafont program strings + mp : MetaPost source + mppool : MetaPost program strings + mpsupport : MetaPost support files + pict : Other kinds of figures + tex : TeX source + texpool : TeX program strings + tfm : TeX font metrics + vf : virtual font + dvips_config : dvips config files + dvips_header : dvips header files + troff_font : troff fonts +" + +action=kpsexpand +case $0 in + */kpsewhich) action=kpsewhich;; + */kpsepath) action=kpsepath;; +esac + +progname=`echo $0 | sed 's@.*/@@'` +flags='' + +while true; do + case x"$1" in + x-n) + if test $# = 1; then + echo "$progname: missing argument for -n." + echo "$usage"; exit 1 + else + flags="$flags -progname=$2"; shift; shift + fi;; + x-m) + if test $# = 1; then + echo "$progname: missing argument for -m." + echo "$usage"; exit 1 + else + flags="$flags -mode=$2"; shift; shift + fi;; + x-w) action=kpsewhich; shift;; + x-p) action=kpsepath; shift;; + x-v) action=kpsexpand; shift;; + *) break;; + esac +done + +case "$action" in + kpsewhich|kpsepath) + case "$1" in + gf) format='gf';; + pk) format='pk';; + base) format='.base';; + bib) format='.bib';; + bst) format='.bst';; + cnf) format='.cnf';; + fmt) format='.fmt';; + mem) format='.mem';; + mf) format='.mf';; + mfpool) format='.pool';; + mp) format='.mp';; + mppool) format='.pool';; + mpsupport) format='MetaPost support';; + pict) format='.eps';; + tex) format='.tex';; + texpool) format='.pool';; + tfm) format='.tfm';; + vf) format='.vf';; + dvips_config) format='dvips config';; + dvips_header) format='.pro';; + troff_font) format='Troff fonts';; + *) echo "$progname: $1: unknown format"; echo "$usage"; exit 1;; + esac + shift;; +esac + +case "$action" in + kpsewhich) + test $# = 1 || { echo "$progname: missing filename"; echo "$usage"; exit 1; } + kpsewhich $flags -format="$format" "$1";; + kpsepath) + kpsewhich $flags -show-path="$format";; + kpsexpand) + test $# = 1 || { echo "$progname: missing string"; echo "$usage"; exit 1; } + kpsewhich $flags -expand-var="$1";; +esac diff --git a/Master/bin/i386-cygwin/kpsewhere b/Master/bin/i386-cygwin/kpsewhere new file mode 100755 index 00000000000..51088ee80d6 --- /dev/null +++ b/Master/bin/i386-cygwin/kpsewhere @@ -0,0 +1,63 @@ +#!/bin/sh +# +# Thomas Esser, Hans Fredrik Nordhaug, 2003, 2004. +# Public domain. +# +# kpsewhere is an extension to kpsewhich (as where is for which in tcsh). +# The intention is to provide a way to check for conflicts/shadowed +# files. +# +# Original version by Hans Fredrik Nordhaug <hans.fredrik@nordhaug.no> +# +# Bugs / limitations: +# conflicts/shadowed files whithin each texmf tree are not found. +# + + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +export PATH + +help='Usage: kpsewhere [OPTION]... [FILENAME]... + Expanding kpsewhich to iterate over each texmf tree listed in $TEXMF + separately. + + See kpsewhich for help on options. + + --help show this help' + +options= +while + case $1 in + -h|-help|--help) + echo "$help" >&2 + exit 0;; + -*) options="${options} '${1}'";; + *) break;; + esac +do shift; done + +case $# in + 0) + echo "$help" >&2 + exit 1 + ;; +esac + +IFS=':' +for file +do + for path in `kpsewhich --expand-path='$TEXMF'` + do + eval TEXMF=\$path kpsewhich $options \"\$file\" + done +done +exit 0 diff --git a/Master/bin/i386-cygwin/kpsewhich.exe b/Master/bin/i386-cygwin/kpsewhich.exe Binary files differnew file mode 100755 index 00000000000..554532f762c --- /dev/null +++ b/Master/bin/i386-cygwin/kpsewhich.exe diff --git a/Master/bin/i386-cygwin/kpsexpand b/Master/bin/i386-cygwin/kpsexpand new file mode 120000 index 00000000000..30de0e13853 --- /dev/null +++ b/Master/bin/i386-cygwin/kpsexpand @@ -0,0 +1 @@ +kpsetool
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/lacheck.exe b/Master/bin/i386-cygwin/lacheck.exe Binary files differnew file mode 100755 index 00000000000..b0c18fd706c --- /dev/null +++ b/Master/bin/i386-cygwin/lacheck.exe diff --git a/Master/bin/i386-cygwin/lambda b/Master/bin/i386-cygwin/lambda new file mode 120000 index 00000000000..d80ff31d92b --- /dev/null +++ b/Master/bin/i386-cygwin/lambda @@ -0,0 +1 @@ +omega.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/lamed b/Master/bin/i386-cygwin/lamed new file mode 120000 index 00000000000..95aea7dc434 --- /dev/null +++ b/Master/bin/i386-cygwin/lamed @@ -0,0 +1 @@ +aleph.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/latex b/Master/bin/i386-cygwin/latex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/latex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/lualatex b/Master/bin/i386-cygwin/lualatex new file mode 120000 index 00000000000..2f4735ef4fe --- /dev/null +++ b/Master/bin/i386-cygwin/lualatex @@ -0,0 +1 @@ +luatex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/luatex.exe b/Master/bin/i386-cygwin/luatex.exe Binary files differnew file mode 100755 index 00000000000..2e45a84eec1 --- /dev/null +++ b/Master/bin/i386-cygwin/luatex.exe diff --git a/Master/bin/i386-cygwin/luatools b/Master/bin/i386-cygwin/luatools new file mode 120000 index 00000000000..8fd68d0935a --- /dev/null +++ b/Master/bin/i386-cygwin/luatools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/luatools
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mag.exe b/Master/bin/i386-cygwin/mag.exe Binary files differnew file mode 100755 index 00000000000..7b8ff1ff704 --- /dev/null +++ b/Master/bin/i386-cygwin/mag.exe diff --git a/Master/bin/i386-cygwin/makeglossaries b/Master/bin/i386-cygwin/makeglossaries new file mode 120000 index 00000000000..526413aa3ea --- /dev/null +++ b/Master/bin/i386-cygwin/makeglossaries @@ -0,0 +1 @@ +../../texmf-dist/scripts/glossaries/makeglossaries
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/makeindex.exe b/Master/bin/i386-cygwin/makeindex.exe Binary files differnew file mode 100755 index 00000000000..5f5f074b21a --- /dev/null +++ b/Master/bin/i386-cygwin/makeindex.exe diff --git a/Master/bin/i386-cygwin/makeinfo.exe b/Master/bin/i386-cygwin/makeinfo.exe Binary files differnew file mode 100755 index 00000000000..74778832798 --- /dev/null +++ b/Master/bin/i386-cygwin/makeinfo.exe diff --git a/Master/bin/i386-cygwin/makempx.exe b/Master/bin/i386-cygwin/makempx.exe Binary files differnew file mode 100755 index 00000000000..de0f2349185 --- /dev/null +++ b/Master/bin/i386-cygwin/makempx.exe diff --git a/Master/bin/i386-cygwin/makempy b/Master/bin/i386-cygwin/makempy new file mode 120000 index 00000000000..a3df543b304 --- /dev/null +++ b/Master/bin/i386-cygwin/makempy @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/makempy
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/metafun b/Master/bin/i386-cygwin/metafun new file mode 120000 index 00000000000..0789e627968 --- /dev/null +++ b/Master/bin/i386-cygwin/metafun @@ -0,0 +1 @@ +mpost.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mex b/Master/bin/i386-cygwin/mex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/mex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mf-nowin.exe b/Master/bin/i386-cygwin/mf-nowin.exe Binary files differnew file mode 100755 index 00000000000..606eb3928ac --- /dev/null +++ b/Master/bin/i386-cygwin/mf-nowin.exe diff --git a/Master/bin/i386-cygwin/mf.exe b/Master/bin/i386-cygwin/mf.exe Binary files differnew file mode 100755 index 00000000000..186c8672f76 --- /dev/null +++ b/Master/bin/i386-cygwin/mf.exe diff --git a/Master/bin/i386-cygwin/mft.exe b/Master/bin/i386-cygwin/mft.exe Binary files differnew file mode 100755 index 00000000000..5502871f5ec --- /dev/null +++ b/Master/bin/i386-cygwin/mft.exe diff --git a/Master/bin/i386-cygwin/mk4ht b/Master/bin/i386-cygwin/mk4ht new file mode 120000 index 00000000000..4b7480809ba --- /dev/null +++ b/Master/bin/i386-cygwin/mk4ht @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/mk4ht.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mkindex b/Master/bin/i386-cygwin/mkindex new file mode 100755 index 00000000000..565f805695d --- /dev/null +++ b/Master/bin/i386-cygwin/mkindex @@ -0,0 +1,39 @@ +#!/bin/sh + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +progname=`basename $0` +case $# in + 0) + echo "usage: `basename $0` file[.idx] ..." 1>&2 + exit 1 + ;; +esac + +gind=gind.ist +gglo=gglo.ist + +# remember starting directory +dir=`pwd` + +# loop over all files +for i +do + destdir=`echo $i | sed 's/^[^\/]*$/./; s/\/[^\/]*$//'` + test -d "$destdir"||continue + cd "$destdir" + FILENAME=`basename $i .idx` + test -f "$FILENAME".idx \ + && makeindex -s $gind "$FILENAME" + test -f "$FILENAME".glo \ + && makeindex -s $gglo -o "$FILENAME".gls "$FILENAME".glo + cd "$dir" +done diff --git a/Master/bin/i386-cygwin/mkjobtexmf b/Master/bin/i386-cygwin/mkjobtexmf new file mode 120000 index 00000000000..90b7a69f9f5 --- /dev/null +++ b/Master/bin/i386-cygwin/mkjobtexmf @@ -0,0 +1 @@ +../../texmf-dist/scripts/mkjobtexmf/mkjobtexmf.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mkocp b/Master/bin/i386-cygwin/mkocp new file mode 100755 index 00000000000..41ffead8bf1 --- /dev/null +++ b/Master/bin/i386-cygwin/mkocp @@ -0,0 +1,6 @@ +#!/bin/sh +# Initial definition. Will leave the .ocp file in the local directory. +( +otp2ocp `basename "$1" .ocp` || exit 1 +) 1>&2 </dev/null +echo `basename "$1" .ocp`.ocp diff --git a/Master/bin/i386-cygwin/mkofm b/Master/bin/i386-cygwin/mkofm new file mode 100755 index 00000000000..ef820171f08 --- /dev/null +++ b/Master/bin/i386-cygwin/mkofm @@ -0,0 +1,3 @@ +#!/bin/sh +# Initial definition. For the moment only makes .tfm files. +mktextfm $* diff --git a/Master/bin/i386-cygwin/mktexfmt b/Master/bin/i386-cygwin/mktexfmt new file mode 120000 index 00000000000..817cc8aaa1b --- /dev/null +++ b/Master/bin/i386-cygwin/mktexfmt @@ -0,0 +1 @@ +fmtutil
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mktexlsr b/Master/bin/i386-cygwin/mktexlsr new file mode 100755 index 00000000000..2c4ac96f3dd --- /dev/null +++ b/Master/bin/i386-cygwin/mktexlsr @@ -0,0 +1,197 @@ +#!/bin/sh +# original mktexlsr -- create or rebuild ls-R. +# +# (If you change or delete the word `original' on the previous line, +# installation won't write this script over yours.) +# +# Suitable for calling from cron, as in: +# 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 9164 2008-07-02 17:42:11Z karl $' +progname=`echo $0 | sed 's%.*/%%'` +usage="Usage: $progname [DIR]... + +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. + +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 +# Cygwin, which pretends to be UNIX. +# Create a variable that holds the right character to be used by the scripts. +DOSISH=no +case `uname -s` in + CYGWIN*|Cygwin*|cygwin*) ;; + *) if test -n "$COMSPEC" || test -n "$ComSpec"; then DOSISH=yes; fi +esac +if test "$DOSISH" = "no"; then SEP=':'; else SEP=';';fi + +# Add the location of the script to the PATH if necessary. This must +# be done before kpsewhich can be called, and thus cannot be put into +# mktex.opt. +dirname=`echo $0 | sed 's%/*[^/][^/]*$%%'` +case $dirname in + "") # Do nothing + ;; + /* | [A-z]:/*) # Absolute name + PATH="$dirname$SEP$PATH" + export PATH ;; + *) # Relative name + PATH="`pwd`/$dirname$SEP$PATH" + export PATH ;; +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. +while test $# -gt 0; do + if test "x$1" = x--help || test "x$1" = x-help; then + echo "$usage" + exit 0 + elif test "x$1" = x--version || test "x$1" = x-version; then + echo "`basename $0` $version" + kpsewhich --version + 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 + +# mktexupd and mktexlsr make sure they're coordinated via this. A copy +# is found mktex.opt. +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 + +# Get list of directories from $TEXMFDBS; eliminate duplicates. +{ + 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` + IFS=$OIFS + fi + shift +} + +for TEXMFLS_R in "$@"; do + # Prepend cwd if the directory was relative. + case "$TEXMFLS_R" in + "") continue ;; # Strictly speaking, it is an error if this case is taken. + /* | [A-z]:/*) ;; + *) TEXMFLS_R="`pwd`/$TEXMFLS_R" + esac + # 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 + db_file="$TEXMFLS_R/ls-r" + else + db_file="$TEXMFLS_R/ls-R" + fi + # Follow a possible symlink to get the right filesystem. + # The '|| true' construct prevents an sh -e aborting. + db_readlink=`kpsereadlink "$TEXMFLS_R/ls-R" 2>/dev/null` || true + case "$db_readlink" in + "") ;; + /* | [A-z]:/*) db_file="$db_readlink" ;; + *) db_file="$TEXMFLS_R/$db_readlink" + 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; } + + if test ! -f "$db_file"; then + cp /dev/null "$db_file" + # Use same permissions as parent directory, minus x,s, or t bits. + chmod `kpsestat -xst "$db_dir"` "$db_file" + elif test -s "$db_file" \ + && test "x`sed '1s/
$//;1q' \"$db_file\"`" != "x$ls_R_magic" \ + && test "x`sed '1s/
$//;1q' \"$db_file\"`" != "x$old_ls_R_magic"; then + echo "$progname: $db_file lacks magic string. Skipping..." >&2 + continue + fi + + # Skip if we cannot write the file: + kpseaccess -w "$db_file" || { echo "$progname: $db_file: no write permission. Skipping..." >&2; continue; } + + db_dir_tmp="$db_dir/lsR$$.tmp" + (umask 077 && mkdir "$db_dir_tmp" ) \ + || { echo "$progname: could not create directory '$db_dir_tmp'. Skipping..." >&2; continue; } + db_file_tmp="$db_dir_tmp/lsR$$.tmp" + 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 + # found via ls-R. Probably irrelevant in practice. The sed command + # inserts the leading ./ for directory names, and removes ., .., and + # version control entries from the list. Also omit contents of any + # the version directories; sed apparently requires that we do that + # operation in a separate invocation. We do not try to support colons + # in directory names. + # + echo "./:" >>"$db_file_tmp" + vc_dirs='\.\(bzr\|git\|hg\|svn\)\|CVS\|RCS\|_darcs' + (cd "$TEXMFLS_R" && \ls -LRa 2>/dev/null) \ + | sed -e '/^$/{n;s%^\./%%;s%^%./%;}; /^\.$/d; /^\.\.$/d; /^'$vc_dirs'$/d;' \ + -e '/^[\.\/]*lsR[0-9]*\.tmp:*$/d' \ + | sed -e /$vc_dirs'.*:$/,/^$/d' \ + >>"$db_file_tmp" + + # To be really safe, a loop. + until PERMS=`kpsestat = "$db_file"`; do sleep 1; done + chmod $PERMS "$db_file_tmp" + rm -f "$db_file" + mv "$db_file_tmp" "$db_file" + rm -rf "$db_dir_tmp" +done +$verbose && echo "$progname: Done." >&2 +exit 0 diff --git a/Master/bin/i386-cygwin/mktexmf b/Master/bin/i386-cygwin/mktexmf new file mode 100755 index 00000000000..32bb85ec3d8 --- /dev/null +++ b/Master/bin/i386-cygwin/mktexmf @@ -0,0 +1,139 @@ +#!/bin/sh +# original mktexmf -- make a new MF file, because one wasn't found. +# +# (If you change or delete the word `original' on the previous line, +# installation won't write this script over yours.) +# +# te@dbs.uni-hannover.de, kb@mail.tug.org, and infovore@xs4all.nl. +# Public domain. + +version='$Id: mktexmf,v 1.27 2005/01/25 17:39:21 olaf Exp $' +progname=`echo $0 | sed 's%.*/%%'` +usage="Usage: $progname FONT. + +Makes the Metafont source file for FONT, if possible. For example, +\`ecr12' or \`cmr11'." + +# Common code for all scripts. +: ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`} +: ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`} +test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt" +if test ! -f "$MT_MKTEX_OPT"; then + echo "$progname: Cannot find mktex.opt; check your installation." >&2 + exit 1 +fi + +. "$MT_MKTEX_OPT" + +( +# See comments in mktexpk. +name="`echo $1 | sed 's%.*/%%; s%\.mf$%%'`" +rootname=`echo "$name" | sed 's/[0-9]*$//'` +pointsize=`echo "$name" | sed "s/^$rootname//"` + +sauterroot=`kpsewhich b-$rootname.mf 2>/dev/null` +if test -n "$sauterroot"; then + rootfile=$sauterroot + rootname=b-$rootname +else + case $rootname in + # csso12[0-5][0-9] from CJK package; unsupported by mktexmf + csso12[0-5][0-9]) + rootfile=;; + cs*|lcsss*|icscsc*|icstt*|ilcsss*) + rootfile=`kpsewhich cscode.mf`;; + wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]|l[abcdhl][bcdfiorstuvx]*) + lhprefix=`echo "$name" | sed 's/^\(..\).*/\1/'` + rootfile=`kpsewhich ${lhprefix}codes.mf 2>/dev/null`;; + *) + rootfile=`kpsewhich $rootname.mf 2>/dev/null`;; + esac +fi +{ test -z "$rootfile" || test ! -f "$rootfile"; } && exit 1 + +#if test -z "$MT_MFNAME"; then +OIFS=$IFS; IFS=$SEP +set x `"$MT_MKTEXNAM" $name`; shift +IFS=$OIFS +MT_MFNAME="$3" +#fi + +destdir=`echo "$MT_MFNAME" | sed 's%/[^/][^/]*$%%'` +test -d "$destdir" || "$MT_MKTEXDIR" "$destdir" || exit 1 +cd "$destdir" || exit 1 + +case "$pointsize" in + "") echo "$progname: no pointsize."; exit 1;; + 11) realsize=10.95;; # \magstephalf + 14) realsize=14.4;; # \magstep2 + 17) realsize=17.28;; # \magstep3 + 20) realsize=20.74;; # \magstep4 + 25) realsize=24.88;; # \magstep5 + 30) realsize=29.86;; # \magstep6 + 36) realsize=35.83;; # \magstep7 + # The new convention is to have three or four letters for the + # font name and four digits for the pointsize. The number is + # pointsize * 100. We effectively divide by 100 by ignoring the + # last two digits. + ????|?????) realsize=`echo "$pointsize" | sed 's/\(..\)$/.\1/'`;; + *) realsize="$pointsize";; +esac + +mfname="$name.mf" +if test -r "$mfname"; then + echo "$progname: $destdir/$mfname already exists." + echo "$destdir/$mfname" >$STDOUT + "$MT_MKTEXUPD" "$destdir" "$mfname" + exit 0 +fi + +case "$name" in + ec*|tc*) + cat > "mf$$.tmp" <<END +if unknown exbase: input exbase fi; +gensize:=$realsize; +generate $rootname; +END + ;; + dc*) + cat > "mf$$.tmp" <<END +if unknown dxbase: input dxbase fi; +gensize:=$realsize; +generate $rootname; +END + ;; + cs*|lcsss*|icscsc*|icstt*|ilcsss*) + cat > "mf$$.tmp" <<END +input cscode +use_driver; +END + ;; + wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]*|l[abcdhl][bcdfiorstuvx]*) + cat > "mf$$.tmp" <<END +input fikparm; +END + ;; + g[lmorst][bijmtwx][cilnoru]*) + # A small superset of the names of the cbgreek fonts. + cat > "mf$$.tmp" <<END +% generated by mktexmf +input cbgreek; +END + ;; + *) + cat > "mf$$.tmp" <<END +design_size := $realsize; +input $rootname; +END + ;; +esac + +chmod `kpsestat -xst,go-w .` "mf$$.tmp" +rm -f "$mfname" +mv "mf$$.tmp" "$mfname" + +echo "$destdir/$mfname" >$STDOUT +echo "$progname: $destdir/$mfname: successfully generated." >&2 +"$MT_MKTEXUPD" "$destdir" "$mfname" +exit 0 +) 1>&2 </dev/null diff --git a/Master/bin/i386-cygwin/mktexpk b/Master/bin/i386-cygwin/mktexpk new file mode 100755 index 00000000000..baed82a83fa --- /dev/null +++ b/Master/bin/i386-cygwin/mktexpk @@ -0,0 +1,265 @@ +#!/bin/sh +# original mktexpk -- make a new PK font, because one wasn't found. +# +# (If you change or delete the word `original' on the previous line, +# installation won't write this script over yours.) +# +# Originally written by Thomas Esser, Karl Berry, and Olaf Weber. +# Report bugs to tex-k@tug.org. +# Public domain. + +version='$Id: mktexpk,v 1.34 2005/06/21 10:49:10 olaf Exp $' +progname=`echo $0 | sed 's%.*/%%'` +usage="Usage: $progname [OPTIONS] NAME [REDIRECT], + Create a PK font. + +--dpi DPI use resolution DPI. +--bdpi BDPI use base resolution BDPI. +--mag MAG use magnificiation MAG. +--mfmode MODE use MODE as the METAFONT mode. +--destdir DESTDIR write fonts in DESTDIR. + +Try to create a PK file for NAME at resolution DPI, with an assumed +device base resolution of BDPI, and a Metafont \`mag' of MAG. Use MODE +for the METAFONT mode. Use DESTDIR for the root of where to install +into, either the absolute directory name to use (if it starts with a +/) or relative to the default DESTDIR (if not). REDIRECT, if supplied, +is a string of the form '>&n', where n is the number of the file +descriptor which is to receive, instead of stdout, the name of the +newly created pk file." + +# Handle non-positional options, except for --version/--help +while test $# -gt 0; do + case "$1" in + --destdir) shift; DEST="$1"; shift ;; + --destdir=*) DEST=`echo "$1" | sed 's/--destdir=//'`; shift ;; + --dpi) shift; DPI="$1"; shift ;; + --dpi=*) DPI=`echo "$1" | sed 's/--dpi=//'`; shift ;; + --bdpi) shift; BDPI="$1"; shift ;; + --bdpi=*) BDPI=`echo "$1" | sed 's/--bdpi=//'`; shift ;; + --mfmode) shift; test "x$1" != "x/" && MODE="$1"; shift ;; + --mfmode=*) test "x$1" != "x--mfmode/" \ + && MODE=`echo "$1" | sed 's/--mfmode=//'`; shift ;; + --mag) shift; MAG="$1"; shift;; + --mag=*) MAG=`echo "$1" | sed '/s--mag=//'`; shift;; + --version|-version) break ;; + --help|-help) break ;; + *) break ;; + esac +done + +if test "x$2" != x; then + tail="`echo \"x$2\" | sed 's/^x>&//' | grep '^[0-9]*$'`" + if test -z "$tail"; then + echo "$progname: argument '$2' ignored - bad file number" >&2 + elif test "$tail" != 1; then + eval 'exec 1>&$tail' + fi +fi + +mt_max_args=2 + +# Common code for all scripts. +: ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`} +: ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`} +test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt" +if test ! -f "$MT_MKTEX_OPT"; then + echo "$progname: Cannot find mktex.opt; check your installation." >&2 + exit 1 +fi + +. "$MT_MKTEX_OPT" + +# Where do potential driver files belong? +case "$MT_FEATURES" in + *nomfdrivers*) + : ${MT_MFDESTDIR=`pwd`} + export MT_MFDESTDIR;; +esac + +# Since we want to pass the generated filename and only that filename +# back to the caller on standard output, we do some redirections so +# regular echo's will end up on stderr, and do an echo >$STDOUT at the end. +# Then the contents of $STDOUT will be echoed to stdout by a trap. + +# start of redirection stdout -> stderr, stdin <- /dev/null +( + +NAME=$1 + +if kpsewhich $NAME.mf >/dev/null 2>&1 || mktexmf $NAME >/dev/null 2>&1; then + # determine the progname of metafont to use; prefer mf-nowin. + if (mf-nowin --version) >/dev/null 2>&1; then + MF="mf-nowin -progname=mf" + else + MF=mf + fi + + # Check that $BDPI and $MODE are consistent; if not, ignore the mode and + # hope we can correctly guess it from bdpi. (People like to specify the + # resolution on the command line, not the mode so much.) + if test -n "$MODE"; then + mf_bdpi=`$MF \ +'\mode:='$MODE';mode_setup;message"BDPI= "&decimal round pixels_per_inch;end.'\ + </dev/null \ + | awk '/DPI=/ {print $2}'` + if test "x$mf_bdpi" != x$BDPI; then + echo "$progname: Mismatched mode $MODE and resolution $BDPI; ignoring mode." >&2 + MODE= + fi + fi + + # If an explicit mode is not supplied, try to guess. You can get a + # list of extant modes from ftp://ftp.tug.org/tex/modes.mf. + if test -z "$MODE" || test "x$MODE" = xdefault; then + case "$BDPI" in + 85) MODE=sun;; + 100) MODE=nextscrn;; + 180) MODE=toshiba;; + 300) MODE=cx;; + 360) MODE=epstylus;; + 400) MODE=nexthi;; + 600) MODE=ljfour;; + 720) MODE=epscszz;; + 1200) MODE=ultre;; + 1270) MODE=linoone;; + 8000) MODE=dpdfezzz;; + *) echo "$progname: Can't guess mode for $BDPI dpi devices." >&2 + echo "$progname: Use a config file or option to specify the mode; see:" >&2 + echo "$progname: http://tug.org/texinfohtml/kpathsea.html#Unable-to-generate-fonts" >&2 + exit 1 + esac + fi + + # Run Metafont. Always use plain Metafont, since reading cmbase.mf + # does not noticeably slow things down. + cmd="$MF \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME" +else + MODE=modeless + # ps_to_pk is set in mktex.opt + case $ps_to_pk in + gsftopk) + if $ps_to_pk -t "$NAME"; then + cmd="$ps_to_pk $NAME $DPI" + fi;; + ps2pk) + # grep for the font in $PSMAPFILE. These are base font names, such as + # rpplr (the original) or pplr0 (an interim step) or pplr8r (current). + : ${PSMAPFILE=`kpsewhich --format=map psfonts.map ps2pk.map`} + pattern="^$NAME"'([ ]|$)' + psline=`egrep "$pattern" $PSMAPFILE | tail -1` + if test -n "$psline"; then + set x `echo "$psline" | sed 's%[<["]%%g'` + shift; shift; shift; + encoding=; psname=; slant=; extend= + while test ! -z "$1"; do + case "$1" in + *.enc) encoding="-e $1";; + *.pf[ab]) psname="$1";; + *SlantFont) slant="-S $lastopt";; + *ExtendFont) extend="-E $lastopt";; + esac + lastopt="$1" + shift + done + # Guessing the name of the type1 font file as fallback: + ANAME=`echo $NAME | sed 's/8r$/8a/'` + for i in $NAME.pfa $NAME.pfb $ANAME.pfa $ANAME.pfb; do + if kpsewhich $i >/dev/null 2>&1; then + psname=$i + break + fi + done + + if [ -n "$psname" ]; then + cmd="ps2pk -v -X$DPI -R$BDPI $slant $extend $encoding $psname $NAME.${DPI}pk" + else + if gsftopk -t "$NAME"; then + echo "$progname: cannot find $NAME.pfa or $NAME.pfb. Trying gsftopk." >&2 + cmd="gsftopk $NAME $DPI" + fi + fi + fi;; + esac + + # unsupported by $ps_to_pk, try other conversions: + if test -z "$cmd"; then + if (ttf2pk -t -q $NAME) >/dev/null 2>&1; then + cmd="ttf2pk -q $NAME $DPI" + elif (hbf2gf -t -q $NAME) >/dev/null 2>&1; then + cmd="hbf2gf -q -p $NAME $DPI" + else + echo "$progname: don't know how to create bitmap font for $NAME." >&2 + exit 1 + fi + fi +fi + +OIFS=$IFS; IFS=$SEP +set x `"$MT_MKTEXNAM" $NAME $DPI $MODE $DEST`; shift +IFS=$OIFS + +PKDEST="$1" +PKDESTDIR=`echo "$PKDEST" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname +PKNAME=`basename "$PKDEST"` +GFNAME=$NAME.${DPI}gf + +if test -r "$PKDESTDIR/$PKNAME"; then + echo "$progname: $PKDESTDIR/$PKNAME already exists." >&2 + echo "$PKDESTDIR/$PKNAME" >$STDOUT + "$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME + exit 0 +fi + +"$MT_MKTEXDIR" "$PKDESTDIR" +if test ! -d "$PKDESTDIR"; then + echo "$progname: $MT_MKTEXDIR $PKDESTDIR failed." >&2 + exit 1 +fi + +echo "$progname: Running $cmd" +$cmd </dev/null || { + # Don't abort if only "Strange path", "bad pos" or "angle(0,0)" + # errors occurr. + grep '^!' $NAME.log | sort >$$.errs 2>/dev/null + grep '^! Strange path' $$.errs >$$.strange 2>/dev/null + grep '^! bad pos.' $$.errs >$$.badpos 2>/dev/null + grep '^! angle(0,0) is taken as zero.' $$.errs >$$.angle 2>/dev/null + cat $$.badpos $$.strange $$.angle | sort > $$.errs_accept + if cmp $$.errs $$.errs_accept >/dev/null 2>&1; then + test -s $$.strange >/dev/null 2>&1 \ + && echo "$progname: warning: \`$cmd' caused strange path errors." >&2 + test -s $$.badpos >/dev/null 2>&1 \ + && echo "$progname: warning: \`$cmd' caused bad pos errors." >&2 + test -s $$.angle >/dev/null 2>&1 \ + && echo "$progname: warning: \`$cmd' caused angle(0,0) errors." >&2 + else + echo "$progname: \`$cmd' failed." >&2 + test -s $NAME.log && mv -f $NAME.log "$KPSE_DOT" + exit 1; + fi +} + +test -r $GFNAME && { gftopk ./$GFNAME $PKNAME || exit 1; } +test ! -f $PKNAME && test -f $NAME.${DPI}pk && mv $NAME.${DPI}pk $PKNAME +if test ! -s $PKNAME; then + echo "$progname: \`$cmd' failed to make $PKNAME." >&2 + exit 1 +fi + +# Install the PK file carefully, since others may be working simultaneously. +# Use cp when mv fails, since DOS will fail mv for deeply-nested directories. +mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \ + || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1 +cd "$PKDESTDIR" || exit 1 +chmod `kpsestat -xst,go-w .` pk$$.tmp +test -r $PKNAME || mv pk$$.tmp $PKNAME || exit 1 + +# Update ls-R if necessary. +"$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME + +# If this line (or an equivalent) is not present, dvipsk/xdvik/dviljk +# will think mktexpk failed. Any other output to stdout will also lose. +echo "$PKDESTDIR/$PKNAME" >$STDOUT +echo "$progname: $PKDESTDIR/$PKNAME: successfully generated." >&2 +) 1>&2 </dev/null diff --git a/Master/bin/i386-cygwin/mktextfm b/Master/bin/i386-cygwin/mktextfm new file mode 100755 index 00000000000..e695f8ffbf4 --- /dev/null +++ b/Master/bin/i386-cygwin/mktextfm @@ -0,0 +1,152 @@ +#!/bin/sh +# original mktextfm -- make a new TFM file, because one wasn't found. +# +# (If you change or delete the word `original' on the previous line, +# installation won't write this script over yours.) +# +# te@dbs.uni-hannover.de, kb@mail.tug.org, and infovore@xs4all.nl. +# Public domain. + +version='$Id: mktextfm,v 1.27 2004/07/03 19:25:15 olaf Exp $' +progname=`echo $0 | sed 's%.*/%%'` +usage="Usage: $progname [--destdir DESTDIR] FONT. + +Makes a TFM file for FONT, if possible. Use DESTDIR for the root of where +to install into, either the absolute directory name to use (if it starts +with a /) or relative to the default DESTDIR (if not)." + +# Handle non-positional options, except for --version/--help +while test $# -gt 0; do + case "$1" in + --destdir) shift; DEST="$1"; shift ;; + --destdir=*) DEST=`echo "$1" | sed 's/--destdir=//'`; shift ;; + --version|-version) break ;; + --help|-help) break ;; + *) break ;; + esac +done + +# Common code for all scripts. +: ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`} +: ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`} +test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt" +if test ! -f "$MT_MKTEX_OPT"; then + echo "$progname: Cannot find mktex.opt; check your installation." >&2 + exit 1 +fi + +. "$MT_MKTEX_OPT" + +# Where do potential mf driver files go? +case "$MT_FEATURES" in + *nomfdrivers*) + : ${MT_MFDESTDIR=`pwd`} + export MT_MFDESTDIR;; +esac + +# start of redirection stdout -> stderr, stdin <- /dev/null +( + +NAME=`basename "$1" .tfm` +MAG=1 # mag=0 fails with larm1000.mf +#DEST="$2" +DPI=$BDPI + +OIFS=$IFS; IFS=$SEP +set x `"$MT_MKTEXNAM" $NAME $DPI $MODE $DEST`; shift +IFS=$OIFS + +PKDEST="$1" +TFMDEST="$2" +PKDESTDIR=`echo "$PKDEST" | sed 's%/[^/][^/]*$%%'` # can't rely on dirname +TFMDESTDIR=`echo "$TFMDEST" | sed 's%/[^/][^/]*$%%'` +PKNAME=`basename "$PKDEST"` +TFMNAME=$NAME.tfm +GFNAME=$NAME.$DPI'gf' + +if test -r "$TFMDESTDIR/$TFMNAME"; then + echo "$progname: $TFMDESTDIR/$TFMNAME already exists." >&2 + echo "$TFMDESTDIR/$TFMNAME" >$STDOUT + "$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME + exit +fi + +# Try to create the destdir first. Do not create fonts, if this fails. +"$MT_MKTEXDIR" "$TFMDESTDIR" +if test ! -d "$TFMDESTDIR"; then + echo "$progname: mktexdir $TFMDESTDIR failed." + exit 1 +fi + +# Check if this font is supported by hbf2gf else use metafont. +if (hbf2gf -q -t $NAME) >/dev/null 2>&1; then + cmd="hbf2gf -g $NAME $DPI" +else + # determine the progname of metafont to use; prefer mf-nowin. + if (mf-nowin --version) >/dev/null 2>&1; then + MF="mf-nowin -progname=mf" + else + MF=mf + fi + + cmd="$MF \mode:=$MODE; mag:=$MAG; nonstopmode; input $NAME" +fi + +echo "$progname: Running $cmd" +$cmd </dev/null || { + # Don't abort if only "Strange path", "bad pos" or "angle(0,0)" + # errors occurr. + grep '^!' $NAME.log | sort >$$.errs 2>/dev/null + grep '^! Strange path' $$.errs >$$.strange 2>/dev/null + grep '^! bad pos.' $$.errs >$$.badpos 2>/dev/null + grep '^! angle(0,0) is taken as zero.' $$.errs >$$.angle 2>/dev/null + cat $$.badpos $$.strange $$.angle | sort > $$.errs_accept + if cmp $$.errs $$.errs_accept >/dev/null 2>&1; then + test -s $$.strange >/dev/null 2>&1 \ + && echo "$progname: warning: \`$cmd' caused strange path errors." >&2 + test -s $$.badpos >/dev/null 2>&1 \ + && echo "$progname: warning: \`$cmd' caused bad pos errors." >&2 + test -s $$.angle >/dev/null 2>&1 \ + && echo "$progname: warning: \`$cmd' caused angle(0,0) errors." >&2 + else + echo "$progname: \`$cmd' failed." >&2 + test -s $NAME.log && mv -f $NAME.log "$KPSE_DOT" + exit 1; + fi +} + +# hbf2gf just produces a .pl file: +test -r ./$NAME.pl && pltotf ./$NAME.pl $TFMNAME +test -r $TFMNAME || { echo "$progname: \`$cmd' failed to make $TFMNAME."; exit 1; } + +# Install the TFM file carefully, since others may be working simultaneously. +# Use cp when mv fails, since DOS will fail mv for deeply-nested directories. +mv $TFMNAME "$TFMDESTDIR/tfm$$.tmp" 2>/dev/null \ + || cp $TFMNAME "$TFMDESTDIR/tfm$$.tmp" || exit 1 +cd "$TFMDESTDIR" || exit 1 +chmod `kpsestat -xst,go-w .` tfm$$.tmp +test -r $TFMNAME || mv tfm$$.tmp $TFMNAME || exit 1 + +# OK, success with the TFM. +"$MT_MKTEXUPD" "$TFMDESTDIR" $TFMNAME +echo "$TFMDESTDIR/$TFMNAME" >$STDOUT +echo "$progname: $TFMDESTDIR/$TFMNAME: successfully generated." >&2 + +# Since we probably made a GF(->PK) file, too, may as well install it if +# it's needed. +cd $TEMPDIR +if test -r $GFNAME && test ! -f "$PKDESTDIR/$PKNAME"; then + gftopk ./$GFNAME $PKNAME || exit 1 + "$MT_MKTEXDIR" "$PKDESTDIR" + mv $PKNAME "$PKDESTDIR/pk$$.tmp" 2>/dev/null \ + || cp $PKNAME "$PKDESTDIR/pk$$.tmp" || exit 1 + cd "$PKDESTDIR" || exit 1 + if test -f $PKNAME; then + rm -f pk$$.tmp + else + chmod `kpsestat -xst,go-w .` pk$$.tmp + mv pk$$.tmp $PKNAME + "$MT_MKTEXUPD" "$PKDESTDIR" $PKNAME + fi +fi +) 1>&2 </dev/null diff --git a/Master/bin/i386-cygwin/mllatex b/Master/bin/i386-cygwin/mllatex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/mllatex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mltex b/Master/bin/i386-cygwin/mltex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/mltex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mmafm.exe b/Master/bin/i386-cygwin/mmafm.exe Binary files differnew file mode 100755 index 00000000000..3104952c1a6 --- /dev/null +++ b/Master/bin/i386-cygwin/mmafm.exe diff --git a/Master/bin/i386-cygwin/mmpfb.exe b/Master/bin/i386-cygwin/mmpfb.exe Binary files differnew file mode 100755 index 00000000000..cbeacb9c0bf --- /dev/null +++ b/Master/bin/i386-cygwin/mmpfb.exe diff --git a/Master/bin/i386-cygwin/mpost.exe b/Master/bin/i386-cygwin/mpost.exe Binary files differnew file mode 100755 index 00000000000..0c13adfe2fb --- /dev/null +++ b/Master/bin/i386-cygwin/mpost.exe diff --git a/Master/bin/i386-cygwin/mpstools b/Master/bin/i386-cygwin/mpstools new file mode 120000 index 00000000000..caf4ae949f7 --- /dev/null +++ b/Master/bin/i386-cygwin/mpstools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/mpstools
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mpto.exe b/Master/bin/i386-cygwin/mpto.exe Binary files differnew file mode 100755 index 00000000000..59c3a5e40a8 --- /dev/null +++ b/Master/bin/i386-cygwin/mpto.exe diff --git a/Master/bin/i386-cygwin/mptopdf b/Master/bin/i386-cygwin/mptopdf new file mode 120000 index 00000000000..83172e791cd --- /dev/null +++ b/Master/bin/i386-cygwin/mptopdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/mptopdf
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mtxrun b/Master/bin/i386-cygwin/mtxrun new file mode 120000 index 00000000000..d368fd83ea1 --- /dev/null +++ b/Master/bin/i386-cygwin/mtxrun @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/mtxrun
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/mtxtools b/Master/bin/i386-cygwin/mtxtools new file mode 120000 index 00000000000..d99a8081bb9 --- /dev/null +++ b/Master/bin/i386-cygwin/mtxtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/mtxtools
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/musixflx.exe b/Master/bin/i386-cygwin/musixflx.exe Binary files differnew file mode 100755 index 00000000000..c986bbfdc75 --- /dev/null +++ b/Master/bin/i386-cygwin/musixflx.exe diff --git a/Master/bin/i386-cygwin/newer.exe b/Master/bin/i386-cygwin/newer.exe Binary files differnew file mode 100755 index 00000000000..93bc0dd21fa --- /dev/null +++ b/Master/bin/i386-cygwin/newer.exe diff --git a/Master/bin/i386-cygwin/odvicopy.exe b/Master/bin/i386-cygwin/odvicopy.exe Binary files differnew file mode 100755 index 00000000000..64dd7ca49c0 --- /dev/null +++ b/Master/bin/i386-cygwin/odvicopy.exe diff --git a/Master/bin/i386-cygwin/odvips b/Master/bin/i386-cygwin/odvips new file mode 120000 index 00000000000..2326feeedc7 --- /dev/null +++ b/Master/bin/i386-cygwin/odvips @@ -0,0 +1 @@ +dvips.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/odvitype.exe b/Master/bin/i386-cygwin/odvitype.exe Binary files differnew file mode 100755 index 00000000000..35a031b8be3 --- /dev/null +++ b/Master/bin/i386-cygwin/odvitype.exe diff --git a/Master/bin/i386-cygwin/ofm2opl b/Master/bin/i386-cygwin/ofm2opl new file mode 120000 index 00000000000..1de020bf190 --- /dev/null +++ b/Master/bin/i386-cygwin/ofm2opl @@ -0,0 +1 @@ +omfonts.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/omega.exe b/Master/bin/i386-cygwin/omega.exe Binary files differnew file mode 100755 index 00000000000..63f8e3f4428 --- /dev/null +++ b/Master/bin/i386-cygwin/omega.exe diff --git a/Master/bin/i386-cygwin/omfonts.exe b/Master/bin/i386-cygwin/omfonts.exe Binary files differnew file mode 100755 index 00000000000..b1e9dc59e37 --- /dev/null +++ b/Master/bin/i386-cygwin/omfonts.exe diff --git a/Master/bin/i386-cygwin/opl2ofm b/Master/bin/i386-cygwin/opl2ofm new file mode 120000 index 00000000000..1de020bf190 --- /dev/null +++ b/Master/bin/i386-cygwin/opl2ofm @@ -0,0 +1 @@ +omfonts.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/otangle.exe b/Master/bin/i386-cygwin/otangle.exe Binary files differnew file mode 100755 index 00000000000..c5e3df678ca --- /dev/null +++ b/Master/bin/i386-cygwin/otangle.exe diff --git a/Master/bin/i386-cygwin/otfinfo.exe b/Master/bin/i386-cygwin/otfinfo.exe Binary files differnew file mode 100755 index 00000000000..d610f600906 --- /dev/null +++ b/Master/bin/i386-cygwin/otfinfo.exe diff --git a/Master/bin/i386-cygwin/otftotfm.exe b/Master/bin/i386-cygwin/otftotfm.exe Binary files differnew file mode 100755 index 00000000000..4836ffc88ff --- /dev/null +++ b/Master/bin/i386-cygwin/otftotfm.exe diff --git a/Master/bin/i386-cygwin/otp2ocp.exe b/Master/bin/i386-cygwin/otp2ocp.exe Binary files differnew file mode 100755 index 00000000000..bfee9b3495b --- /dev/null +++ b/Master/bin/i386-cygwin/otp2ocp.exe diff --git a/Master/bin/i386-cygwin/outocp.exe b/Master/bin/i386-cygwin/outocp.exe Binary files differnew file mode 100755 index 00000000000..18f596666fd --- /dev/null +++ b/Master/bin/i386-cygwin/outocp.exe diff --git a/Master/bin/i386-cygwin/ovf2ovp b/Master/bin/i386-cygwin/ovf2ovp new file mode 120000 index 00000000000..1de020bf190 --- /dev/null +++ b/Master/bin/i386-cygwin/ovf2ovp @@ -0,0 +1 @@ +omfonts.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/ovp2ovf b/Master/bin/i386-cygwin/ovp2ovf new file mode 120000 index 00000000000..1de020bf190 --- /dev/null +++ b/Master/bin/i386-cygwin/ovp2ovf @@ -0,0 +1 @@ +omfonts.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/oxdvi b/Master/bin/i386-cygwin/oxdvi new file mode 120000 index 00000000000..cf7065c02ca --- /dev/null +++ b/Master/bin/i386-cygwin/oxdvi @@ -0,0 +1 @@ +xdvi
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/patgen.exe b/Master/bin/i386-cygwin/patgen.exe Binary files differnew file mode 100755 index 00000000000..b05d277be98 --- /dev/null +++ b/Master/bin/i386-cygwin/patgen.exe diff --git a/Master/bin/i386-cygwin/pdfatfi b/Master/bin/i386-cygwin/pdfatfi new file mode 120000 index 00000000000..6cd281194e9 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfatfi @@ -0,0 +1 @@ +../../texmf-dist/scripts/oberdiek/pdfatfi.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdfclose.exe b/Master/bin/i386-cygwin/pdfclose.exe Binary files differnew file mode 100755 index 00000000000..2aabf0fc4c2 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfclose.exe diff --git a/Master/bin/i386-cygwin/pdfcrop b/Master/bin/i386-cygwin/pdfcrop new file mode 120000 index 00000000000..d5235ebbcb7 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfcrop @@ -0,0 +1 @@ +../../texmf-dist/scripts/pdfcrop/pdfcrop.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdfcslatex b/Master/bin/i386-cygwin/pdfcslatex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfcslatex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdfcsplain b/Master/bin/i386-cygwin/pdfcsplain new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfcsplain @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdfetex b/Master/bin/i386-cygwin/pdfetex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfetex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdfjadetex b/Master/bin/i386-cygwin/pdfjadetex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfjadetex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdflatex b/Master/bin/i386-cygwin/pdflatex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/pdflatex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdflualatex b/Master/bin/i386-cygwin/pdflualatex new file mode 120000 index 00000000000..2f4735ef4fe --- /dev/null +++ b/Master/bin/i386-cygwin/pdflualatex @@ -0,0 +1 @@ +luatex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdfluatex b/Master/bin/i386-cygwin/pdfluatex new file mode 120000 index 00000000000..2f4735ef4fe --- /dev/null +++ b/Master/bin/i386-cygwin/pdfluatex @@ -0,0 +1 @@ +luatex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdfmex b/Master/bin/i386-cygwin/pdfmex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfmex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdfopen.exe b/Master/bin/i386-cygwin/pdfopen.exe Binary files differnew file mode 100755 index 00000000000..522c7c6a083 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfopen.exe diff --git a/Master/bin/i386-cygwin/pdftex.exe b/Master/bin/i386-cygwin/pdftex.exe Binary files differnew file mode 100755 index 00000000000..05475209ba5 --- /dev/null +++ b/Master/bin/i386-cygwin/pdftex.exe diff --git a/Master/bin/i386-cygwin/pdftexi2dvi b/Master/bin/i386-cygwin/pdftexi2dvi new file mode 100755 index 00000000000..a030a74ed9f --- /dev/null +++ b/Master/bin/i386-cygwin/pdftexi2dvi @@ -0,0 +1,19 @@ +#!/bin/sh +# $Id: texi2pdf,v 1.2 2005/01/28 01:52:04 karl Exp $ +# Written by Thomas Esser. Public domain. +# Execute texi2dvi --pdf. + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +texi2dvi --pdf ${1+"$@"} diff --git a/Master/bin/i386-cygwin/pdfthumb b/Master/bin/i386-cygwin/pdfthumb new file mode 120000 index 00000000000..cfb7d400fa8 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfthumb @@ -0,0 +1 @@ +../../texmf-dist/scripts/ppower4/pdfthumb.texlua
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdftools b/Master/bin/i386-cygwin/pdftools new file mode 120000 index 00000000000..fa012780ccc --- /dev/null +++ b/Master/bin/i386-cygwin/pdftools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/pdftools
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdftosrc.exe b/Master/bin/i386-cygwin/pdftosrc.exe Binary files differnew file mode 100755 index 00000000000..32e7e5fc23f --- /dev/null +++ b/Master/bin/i386-cygwin/pdftosrc.exe diff --git a/Master/bin/i386-cygwin/pdftrimwhite b/Master/bin/i386-cygwin/pdftrimwhite new file mode 120000 index 00000000000..46526e8ffcc --- /dev/null +++ b/Master/bin/i386-cygwin/pdftrimwhite @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/pdftrimwhite
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pdfxmltex b/Master/bin/i386-cygwin/pdfxmltex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/pdfxmltex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/perltex b/Master/bin/i386-cygwin/perltex new file mode 120000 index 00000000000..d135aa6f8e4 --- /dev/null +++ b/Master/bin/i386-cygwin/perltex @@ -0,0 +1 @@ +../../texmf-dist/scripts/perltex/perltex.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pfb2pfa.exe b/Master/bin/i386-cygwin/pfb2pfa.exe Binary files differnew file mode 100755 index 00000000000..3278fa2158b --- /dev/null +++ b/Master/bin/i386-cygwin/pfb2pfa.exe diff --git a/Master/bin/i386-cygwin/physe b/Master/bin/i386-cygwin/physe new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/physe @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/phyzzx b/Master/bin/i386-cygwin/phyzzx new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/phyzzx @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pk2bm.exe b/Master/bin/i386-cygwin/pk2bm.exe Binary files differnew file mode 100755 index 00000000000..e6fda694e83 --- /dev/null +++ b/Master/bin/i386-cygwin/pk2bm.exe diff --git a/Master/bin/i386-cygwin/pkfix b/Master/bin/i386-cygwin/pkfix new file mode 120000 index 00000000000..7d1c767c21f --- /dev/null +++ b/Master/bin/i386-cygwin/pkfix @@ -0,0 +1 @@ +../../texmf/scripts/pkfix/pkfix.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pktogf.exe b/Master/bin/i386-cygwin/pktogf.exe Binary files differnew file mode 100755 index 00000000000..370ef0a74e3 --- /dev/null +++ b/Master/bin/i386-cygwin/pktogf.exe diff --git a/Master/bin/i386-cygwin/pktype.exe b/Master/bin/i386-cygwin/pktype.exe Binary files differnew file mode 100755 index 00000000000..067152f0079 --- /dev/null +++ b/Master/bin/i386-cygwin/pktype.exe diff --git a/Master/bin/i386-cygwin/pltotf.exe b/Master/bin/i386-cygwin/pltotf.exe Binary files differnew file mode 100755 index 00000000000..a78cbe799d6 --- /dev/null +++ b/Master/bin/i386-cygwin/pltotf.exe diff --git a/Master/bin/i386-cygwin/pooltype.exe b/Master/bin/i386-cygwin/pooltype.exe Binary files differnew file mode 100755 index 00000000000..d4a5149e6a7 --- /dev/null +++ b/Master/bin/i386-cygwin/pooltype.exe diff --git a/Master/bin/i386-cygwin/ppower4 b/Master/bin/i386-cygwin/ppower4 new file mode 120000 index 00000000000..a407a5af300 --- /dev/null +++ b/Master/bin/i386-cygwin/ppower4 @@ -0,0 +1 @@ +../../texmf-dist/scripts/ppower4/ppower4.texlua
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/ps2eps b/Master/bin/i386-cygwin/ps2eps new file mode 120000 index 00000000000..81d5f53cfde --- /dev/null +++ b/Master/bin/i386-cygwin/ps2eps @@ -0,0 +1 @@ +../../texmf/scripts/ps2eps/ps2eps.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/ps2frag b/Master/bin/i386-cygwin/ps2frag new file mode 100755 index 00000000000..b8e673be087 --- /dev/null +++ b/Master/bin/i386-cygwin/ps2frag @@ -0,0 +1,11 @@ +#!/bin/sh + +tty -s && { + echo + echo "Warning: the ps2frag script is not needed with this version of psfrag." + echo "Please read the manpage ps2frag(1) and the documentation of the" + echo "psfrag package." + echo +} >&2 + +exit 0 diff --git a/Master/bin/i386-cygwin/ps2pk.exe b/Master/bin/i386-cygwin/ps2pk.exe Binary files differnew file mode 100755 index 00000000000..b78e40b552c --- /dev/null +++ b/Master/bin/i386-cygwin/ps2pk.exe diff --git a/Master/bin/i386-cygwin/ps4pdf b/Master/bin/i386-cygwin/ps4pdf new file mode 120000 index 00000000000..7e99e0b8d18 --- /dev/null +++ b/Master/bin/i386-cygwin/ps4pdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/pst-pdf/ps4pdf
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/psbook.exe b/Master/bin/i386-cygwin/psbook.exe Binary files differnew file mode 100755 index 00000000000..8c791505b51 --- /dev/null +++ b/Master/bin/i386-cygwin/psbook.exe diff --git a/Master/bin/i386-cygwin/pslatex b/Master/bin/i386-cygwin/pslatex new file mode 100755 index 00000000000..4badef0ec12 --- /dev/null +++ b/Master/bin/i386-cygwin/pslatex @@ -0,0 +1,46 @@ +#!/bin/sh + +# Copyright 1994 David Carlisle +# This file may be redistributed and/or modified under the terms of the +# LaTeX Project Public License distributed from CTAN archives in directory +# macros/latex/base/lppl.txt; either version 1 of the License, or (at +# your option) any later version. + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +# we want to be able to use options to latex: +while :; do + case $1 in + -*) + latexoptions="$latexoptions \"$1\"" + shift;; + *) + break;; + esac +done + +echo +echo "*************************************" +echo "* Using LaTeX, with pslatex package *" +echo "*************************************" +echo + +# messing around with \PSLATEXTMP is for AUCTeX which calls +# documents via latex \nonstopmode \input{file} + +latex $latexoptions \ + "\AtBeginDocument{\RequirePackage{pslatex}}"\ + "\def\PSLATEXTMP{\futurelet\PSLATEXTMP\PSLATEXTMPB}"\ + "\def\PSLATEXTMPB{\ifx\PSLATEXTMP\nonstopmode\else\input\fi}"\ + "\PSLATEXTMP" ${1+"$@"} diff --git a/Master/bin/i386-cygwin/psmerge b/Master/bin/i386-cygwin/psmerge new file mode 100755 index 00000000000..9500bcdf7e6 --- /dev/null +++ b/Master/bin/i386-cygwin/psmerge @@ -0,0 +1,85 @@ +#!/usr/bin/env perl +# psmerge: merge PostScript files produced by same application and setup +# usage: psmerge [-oout.ps] [-thorough] file1.ps file2.ps ... +# +# Copyright (C) Angus J. C. Duggan 1991-1995 +# See file LICENSE for details. + +$prog = ($0 =~ s=.*/==); + +while ($ARGV[0] =~ /^-/) { + $_ = shift; + if (/^-o(.+)/) { + if (!close(STDOUT) || !open(STDOUT, ">$1")) { + print STDERR "$prog: can't open $1 for output\n"; + exit 1; + } + } elsif (/^-t(horough)?$/) { + $thorough = 1; + } else { + print STDERR "Usage: $prog [-oout] [-thorough] file...\n"; + exit 1; + } +} + +$page = 0; +$first = 1; +$nesting = 0; + +@header = (); +$header = 1; + +@trailer = (); +$trailer = 0; + +@pages = (); +@body = (); + +@resources = (); +$inresource = 0; + +while (<>) { + if (/^%%BeginFont:/ || /^%%BeginResource:/ || /^%%BeginProcSet:/) { + $inresource = 1; + push(@resources, $_); + } elsif ($inresource) { + push(@resources, $_); + $inresource = 0 if /^%%EndFont/ || /^%%EndResource/ || /^%%EndProcSet/; + } elsif (/^%%Page:/ && $nesting == 0) { + $header = $trailer = 0; + push(@pages, join("", @body)) if @body; + $page++; + @body = ("%%Page: ($page) $page\n"); + } elsif (/^%%Trailer/ && $nesting == 0) { + push(@trailer, $_); + push(@pages, join("", @body)) if @body; + @body = (); + $trailer = 1; + $header = 0; + } elsif ($header) { + push(@trailer, $_); + push(@pages, join("", @body)) if @body; + @body = (); + $trailer = 1; + $header = 0; + } elsif ($trailer) { + if (/^%!/ || /%%EOF/) { + $trailer = $first = 0; + } elsif ($first) { + push(@trailer, $_); + } + } elsif (/^%%BeginDocument/ || /^%%BeginBinary/ || /^%%BeginFile/) { + push(@body, $_); + $nesting++; + } elsif (/^%%EndDocument/ || /^%%EndBinary/ || /^%%EndFile/) { + push(@body, $_); + $nesting--; + } else { + print $_ if $print; + } +} + +print @trailer; + +exit 0; + diff --git a/Master/bin/i386-cygwin/psnup.exe b/Master/bin/i386-cygwin/psnup.exe Binary files differnew file mode 100755 index 00000000000..8c77b37d0dc --- /dev/null +++ b/Master/bin/i386-cygwin/psnup.exe diff --git a/Master/bin/i386-cygwin/psresize.exe b/Master/bin/i386-cygwin/psresize.exe Binary files differnew file mode 100755 index 00000000000..8a70d73dc2e --- /dev/null +++ b/Master/bin/i386-cygwin/psresize.exe diff --git a/Master/bin/i386-cygwin/psselect.exe b/Master/bin/i386-cygwin/psselect.exe Binary files differnew file mode 100755 index 00000000000..72a96ef2e44 --- /dev/null +++ b/Master/bin/i386-cygwin/psselect.exe diff --git a/Master/bin/i386-cygwin/pst2pdf b/Master/bin/i386-cygwin/pst2pdf new file mode 120000 index 00000000000..60a28335578 --- /dev/null +++ b/Master/bin/i386-cygwin/pst2pdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/pst2pdf/pst2pdf.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pstopdf b/Master/bin/i386-cygwin/pstopdf new file mode 120000 index 00000000000..44478ee1dd4 --- /dev/null +++ b/Master/bin/i386-cygwin/pstopdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/pstopdf
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/pstops.exe b/Master/bin/i386-cygwin/pstops.exe Binary files differnew file mode 100755 index 00000000000..2d328096158 --- /dev/null +++ b/Master/bin/i386-cygwin/pstops.exe diff --git a/Master/bin/i386-cygwin/rlxtools b/Master/bin/i386-cygwin/rlxtools new file mode 120000 index 00000000000..a5078af4f10 --- /dev/null +++ b/Master/bin/i386-cygwin/rlxtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/rlxtools
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/rubibtex b/Master/bin/i386-cygwin/rubibtex new file mode 100755 index 00000000000..373e6e1194d --- /dev/null +++ b/Master/bin/i386-cygwin/rubibtex @@ -0,0 +1,110 @@ +#!/bin/sh + +# rubibtex, based on the original version contained in the t2 bundle. +# Thomas Esser, Public Domain. + +progname=rubibtex +tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$ +job=$1 +backup="$tmpdir/orig.aux" + +case $job in + "") + echo "usage: $progname file" >&2 + exit 1 +esac + +if test ! -f "$job.aux"; then + echo "$progname: file \`$job.aux' does not exist." >&2 + exit 1 +fi + +trap ' + rm -rf "$tmpdir" + exit 1 +' 1 2 3 7 13 15 +(umask 077; mkdir "$tmpdir") \ + || { echo "$progname: could not create directory \`$tmpdir'" >&2; exit 1; } + +cat <"$job.aux" >"$backup" || { + echo "$progname: could not create backup of file \`$job.aux' as \`$backup'." >&2 + rm -rf "$tmpdir" + exit 1 +} + +sed ' + /^\\citation/ { + s/\\IeC {\\CYRA }/á/g + s/\\IeC {\\CYRB }/â/g + s/\\IeC {\\CYRV }/÷/g + s/\\IeC {\\CYRG }/ç/g + s/\\IeC {\\CYRD }/ä/g + s/\\IeC {\\CYRE }/å/g + s/\\IeC {\\CYRYO }/³/g + s/\\IeC {\\CYRZH }/ö/g + s/\\IeC {\\CYRZ }/ú/g + s/\\IeC {\\CYRI }/é/g + s/\\IeC {\\CYRISHRT }/ê/g + s/\\IeC {\\CYRK }/ë/g + s/\\IeC {\\CYRL }/ì/g + s/\\IeC {\\CYRM }/í/g + s/\\IeC {\\CYRN }/î/g + s/\\IeC {\\CYRO }/ï/g + s/\\IeC {\\CYRP }/ð/g + s/\\IeC {\\CYRR }/ò/g + s/\\IeC {\\CYRS }/ó/g + s/\\IeC {\\CYRT }/ô/g + s/\\IeC {\\CYRU }/õ/g + s/\\IeC {\\CYRF }/æ/g + s/\\IeC {\\CYRH }/è/g + s/\\IeC {\\CYRC }/ã/g + s/\\IeC {\\CYRCH }/þ/g + s/\\IeC {\\CYRSH }/û/g + s/\\IeC {\\CYRSHCH }/ý/g + s/\\IeC {\\CYRHRDSN }/ÿ/g + s/\\IeC {\\CYRERY }/ù/g + s/\\IeC {\\CYRSFTSN }/ø/g + s/\\IeC {\\CYREREV }/ü/g + s/\\IeC {\\CYRYU }/à/g + s/\\IeC {\\CYRYA }/ñ/g + s/\\IeC {\\cyra }/Á/g + s/\\IeC {\\cyrb }/Â/g + s/\\IeC {\\cyrv }/×/g + s/\\IeC {\\cyrg }/Ç/g + s/\\IeC {\\cyrd }/Ä/g + s/\\IeC {\\cyre }/Å/g + s/\\IeC {\\cyryo }/£/g + s/\\IeC {\\cyrzh }/Ö/g + s/\\IeC {\\cyrz }/Ú/g + s/\\IeC {\\cyri }/É/g + s/\\IeC {\\cyrishrt }/Ê/g + s/\\IeC {\\cyrk }/Ë/g + s/\\IeC {\\cyrl }/Ì/g + s/\\IeC {\\cyrm }/Í/g + s/\\IeC {\\cyrn }/Î/g + s/\\IeC {\\cyro }/Ï/g + s/\\IeC {\\cyrp }/Ð/g + s/\\IeC {\\cyrr }/Ò/g + s/\\IeC {\\cyrs }/Ó/g + s/\\IeC {\\cyrt }/Ô/g + s/\\IeC {\\cyru }/Õ/g + s/\\IeC {\\cyrf }/Æ/g + s/\\IeC {\\cyrh }/È/g + s/\\IeC {\\cyrc }/Ã/g + s/\\IeC {\\cyrch }/Þ/g + s/\\IeC {\\cyrsh }/Û/g + s/\\IeC {\\cyrshch }/Ý/g + s/\\IeC {\\cyrhrdsn }/ß/g + s/\\IeC {\\cyrery }/Ù/g + s/\\IeC {\\cyrsftsn }/Ø/g + s/\\IeC {\\cyrerev }/Ü/g + s/\\IeC {\\cyryu }/À/g + s/\\IeC {\\cyrya }/Ñ/g + } +' <"$backup" >"$job.aux" + +bibtex "$job" + +cat "$backup" > "$job.aux" +rm -rf "$tmpdir" +exit 0 diff --git a/Master/bin/i386-cygwin/rumakeindex b/Master/bin/i386-cygwin/rumakeindex new file mode 100755 index 00000000000..b7b0c072729 --- /dev/null +++ b/Master/bin/i386-cygwin/rumakeindex @@ -0,0 +1,77 @@ +#!/bin/sh + +BASE=`basename "$1" .idx` +IDX=$BASE.idx +IND=$BASE.ind +ILG=$BASE.ilg + +sed ' +/^\\indexentry{/ { +s/\\IeC {\\CYRA }/¾/g +s/\\IeC {\\cyra }/¿/g +s/\\IeC {\\CYRB }/À/g +s/\\IeC {\\cyrb }/Á/g +s/\\IeC {\\CYRV }/Â/g +s/\\IeC {\\cyrv }/Ã/g +s/\\IeC {\\CYRG }/Ä/g +s/\\IeC {\\cyrg }/Å/g +s/\\IeC {\\CYRD }/Æ/g +s/\\IeC {\\cyrd }/Ç/g +s/\\IeC {\\CYRE }/È/g +s/\\IeC {\\cyre }/É/g +s/\\IeC {\\CYRYO }/Ê/g +s/\\IeC {\\cyryo }/Ë/g +s/\\IeC {\\CYRZH }/Ì/g +s/\\IeC {\\cyrzh }/Í/g +s/\\IeC {\\CYRZ }/Î/g +s/\\IeC {\\cyrz }/Ï/g +s/\\IeC {\\CYRI }/Ð/g +s/\\IeC {\\cyri }/Ñ/g +s/\\IeC {\\CYRISHRT }/Ò/g +s/\\IeC {\\cyrishrt }/Ó/g +s/\\IeC {\\CYRK }/Ô/g +s/\\IeC {\\cyrk }/Õ/g +s/\\IeC {\\CYRL }/Ö/g +s/\\IeC {\\cyrl }/×/g +s/\\IeC {\\CYRM }/Ø/g +s/\\IeC {\\cyrm }/Ù/g +s/\\IeC {\\CYRN }/Ú/g +s/\\IeC {\\cyrn }/Û/g +s/\\IeC {\\CYRO }/Ü/g +s/\\IeC {\\cyro }/Ý/g +s/\\IeC {\\CYRP }/Þ/g +s/\\IeC {\\cyrp }/ß/g +s/\\IeC {\\CYRR }/à/g +s/\\IeC {\\cyrr }/á/g +s/\\IeC {\\CYRS }/â/g +s/\\IeC {\\cyrs }/ã/g +s/\\IeC {\\CYRT }/ä/g +s/\\IeC {\\cyrt }/å/g +s/\\IeC {\\CYRU }/æ/g +s/\\IeC {\\cyru }/ç/g +s/\\IeC {\\CYRF }/è/g +s/\\IeC {\\cyrf }/é/g +s/\\IeC {\\CYRH }/ê/g +s/\\IeC {\\cyrh }/ë/g +s/\\IeC {\\CYRC }/ì/g +s/\\IeC {\\cyrc }/í/g +s/\\IeC {\\CYRCH }/î/g +s/\\IeC {\\cyrch }/ï/g +s/\\IeC {\\CYRSH }/ð/g +s/\\IeC {\\cyrsh }/ñ/g +s/\\IeC {\\CYRSHCH }/ò/g +s/\\IeC {\\cyrshch }/ó/g +s/\\IeC {\\CYRHRDSN }/ô/g +s/\\IeC {\\cyrhrdsn }/õ/g +s/\\IeC {\\CYRERY }/ö/g +s/\\IeC {\\cyrery }/÷/g +s/\\IeC {\\CYRSFTSN }/ø/g +s/\\IeC {\\cyrsftsn }/ù/g +s/\\IeC {\\CYREREV }/ú/g +s/\\IeC {\\cyrerev }/û/g +s/\\IeC {\\CYRYU }/ü/g +s/\\IeC {\\cyryu }/ý/g +s/\\IeC {\\CYRYA }/þ/g +s/\\IeC {\\cyrya }/ÿ/g +}' $IDX | makeindex -t $ILG | tr '¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ' \ + 'áÁâÂ÷×çÇäÄåų£öÖúÚéÉêÊëËìÌíÍîÎïÏðÐòÒóÓôÔõÕæÆèÈãÃþÞûÛýÝÿßùÙøØüÜàÀñÑ' > $IND diff --git a/Master/bin/i386-cygwin/rungs b/Master/bin/i386-cygwin/rungs new file mode 120000 index 00000000000..3efeab3b3d4 --- /dev/null +++ b/Master/bin/i386-cygwin/rungs @@ -0,0 +1 @@ +../../texmf/scripts/texlive/rungs.tlu
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/runtools b/Master/bin/i386-cygwin/runtools new file mode 120000 index 00000000000..127f29a36df --- /dev/null +++ b/Master/bin/i386-cygwin/runtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/runtools
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/showchar b/Master/bin/i386-cygwin/showchar new file mode 100755 index 00000000000..e685e99ae8c --- /dev/null +++ b/Master/bin/i386-cygwin/showchar @@ -0,0 +1,118 @@ +#!/bin/sh +# showchar: show character with information +# usage: +# showchar Font-Name Char-Name | lpr -Pprinter + +if [ $# != 2 ]; then + echo "Usage: `basename $0` Font-Name Char-Name" >&2 + exit 1 +fi + +cat <<EOF +%! +% Get character metrics and bounding box for $1 +/ns 30 string def +/fname /$1 def +/cname /$2 def +/fn fname findfont 1000 scalefont def +/thin 0.7 def +/reduction 2.0 def + +/sn { ns cvs show } def +/sc { (\()show exch sn (,)show sn (\))show } def + +/Times-Roman findfont 10 scalefont setfont + +72 242 translate % one inch in, 3 1/2 inch up +newpath 0 0 moveto +gsave % print character name + 0 468 rmoveto + ($2 from font $1 displayed on `date` by `basename $0` 1.00 (C) AJCD 1991) + show +grestore + +gsave + thin setlinewidth % cross hairs + -9 0 rmoveto 18 0 rlineto + -9 -9 rmoveto 0 18 rlineto + stroke % position info + -9 -9 moveto ((0,0)) stringwidth pop neg 0 rmoveto + ((0,0)) show +grestore + +% create encoding with a single character at all positions +/MyEncoding 256 array def + +0 1 255 { % fill out with notdefs + MyEncoding exch cname put +} for + +fn dup length dict begin + {1 index /FID ne {def} {pop pop} ifelse} forall + /Encoding MyEncoding def + currentdict +end /newfont exch definefont +/fn exch def +/en MyEncoding def + +gsave % draw character (enlarged) + .75 setgray + fn 1 reduction div scalefont setfont + (\000) show +grestore + +% show character info +fn /Metrics known { + dup fn /Metrics get exch get + dup type /arraytype eq { + dup length 2 eq + {1 get 0} {dup 2 get exch 3 get} ifelse + } { + round 0 + } ifelse +} { + gsave + fn setfont (\000) stringwidth round exch round exch + grestore +} ifelse +gsave % show width + thin setlinewidth + 2 copy + reduction div exch reduction div exch rlineto + gsave + 1 1 rmoveto sc + grestore + -4 -3 rlineto 0 6 rmoveto 4 -3 rlineto + stroke +grestore + +gsave + gsave % get bounding box + fn setfont + (\000) true charpath flattenpath pathbbox + grestore + thin setlinewidth + 3 index reduction div % put coords on top of stack + 3 index reduction div + 3 index reduction div + 3 index reduction div + 3 index 3 index moveto + gsave % llx lly + 0 -9 rmoveto 7 index 7 index sc + grestore + 1 index 3 index lineto + gsave % urx lly + 0 -9 rmoveto 5 index 7 index sc + grestore + 1 index 1 index lineto + gsave % urx ury + 0 9 rmoveto 5 index 5 index sc + grestore + 3 index 1 index lineto + gsave % llx ury + 0 9 rmoveto 7 index 5 index sc + grestore + closepath stroke +grestore +showpage +EOF diff --git a/Master/bin/i386-cygwin/simpdftex b/Master/bin/i386-cygwin/simpdftex new file mode 120000 index 00000000000..8b9c2132185 --- /dev/null +++ b/Master/bin/i386-cygwin/simpdftex @@ -0,0 +1 @@ +../../texmf/scripts/simpdftex/simpdftex
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/sjisconv.exe b/Master/bin/i386-cygwin/sjisconv.exe Binary files differnew file mode 100755 index 00000000000..3e67d4495a9 --- /dev/null +++ b/Master/bin/i386-cygwin/sjisconv.exe diff --git a/Master/bin/i386-cygwin/sjislatex b/Master/bin/i386-cygwin/sjislatex new file mode 100755 index 00000000000..68c554e6d71 --- /dev/null +++ b/Master/bin/i386-cygwin/sjislatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +sjisconv < "$tex" > "$aux" && eval latex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/sjispdflatex b/Master/bin/i386-cygwin/sjispdflatex new file mode 100755 index 00000000000..e8d070e9dc6 --- /dev/null +++ b/Master/bin/i386-cygwin/sjispdflatex @@ -0,0 +1,43 @@ +#! /bin/sh + +# Copyright (C) 1994-2006 Werner Lemberg <wl@gnu.org> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program in doc/COPYING; if not, write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301 USA + +n=1 +argv= + +# get last argument +while test 1 -lt $#; do + eval argv$n=\$1 + argv="$argv \"\$argv$n\"" + n=`expr $n + 1` + shift +done + +# replace extension with .cjk or append .cjk if there is no extension +tex=$1 +case $tex in +""|*.cjk) + echo >&2 "Usage: $0 [options] latex-file" + exit 1;; +*) + aux=`expr "X$tex" : 'X\(.*\)\.[^/]*$' \| "X$tex" : 'X\(.*\)'`.cjk;; +esac + +sjisconv < "$tex" > "$aux" && eval pdflatex "$argv" "\$aux" + +# EOF diff --git a/Master/bin/i386-cygwin/synctex.exe b/Master/bin/i386-cygwin/synctex.exe Binary files differnew file mode 100755 index 00000000000..6cde381d211 --- /dev/null +++ b/Master/bin/i386-cygwin/synctex.exe diff --git a/Master/bin/i386-cygwin/t1ascii.exe b/Master/bin/i386-cygwin/t1ascii.exe Binary files differnew file mode 100755 index 00000000000..178958f7bb8 --- /dev/null +++ b/Master/bin/i386-cygwin/t1ascii.exe diff --git a/Master/bin/i386-cygwin/t1asm.exe b/Master/bin/i386-cygwin/t1asm.exe Binary files differnew file mode 100755 index 00000000000..a60ef129b45 --- /dev/null +++ b/Master/bin/i386-cygwin/t1asm.exe diff --git a/Master/bin/i386-cygwin/t1binary.exe b/Master/bin/i386-cygwin/t1binary.exe Binary files differnew file mode 100755 index 00000000000..f117a4a201b --- /dev/null +++ b/Master/bin/i386-cygwin/t1binary.exe diff --git a/Master/bin/i386-cygwin/t1disasm.exe b/Master/bin/i386-cygwin/t1disasm.exe Binary files differnew file mode 100755 index 00000000000..b6fc4159c73 --- /dev/null +++ b/Master/bin/i386-cygwin/t1disasm.exe diff --git a/Master/bin/i386-cygwin/t1dotlessj.exe b/Master/bin/i386-cygwin/t1dotlessj.exe Binary files differnew file mode 100755 index 00000000000..cdac1694933 --- /dev/null +++ b/Master/bin/i386-cygwin/t1dotlessj.exe diff --git a/Master/bin/i386-cygwin/t1lint.exe b/Master/bin/i386-cygwin/t1lint.exe Binary files differnew file mode 100755 index 00000000000..e16e1055e70 --- /dev/null +++ b/Master/bin/i386-cygwin/t1lint.exe diff --git a/Master/bin/i386-cygwin/t1mac.exe b/Master/bin/i386-cygwin/t1mac.exe Binary files differnew file mode 100755 index 00000000000..64c7e2f1c8c --- /dev/null +++ b/Master/bin/i386-cygwin/t1mac.exe diff --git a/Master/bin/i386-cygwin/t1reencode.exe b/Master/bin/i386-cygwin/t1reencode.exe Binary files differnew file mode 100755 index 00000000000..c059b95587e --- /dev/null +++ b/Master/bin/i386-cygwin/t1reencode.exe diff --git a/Master/bin/i386-cygwin/t1testpage.exe b/Master/bin/i386-cygwin/t1testpage.exe Binary files differnew file mode 100755 index 00000000000..b21e359b83e --- /dev/null +++ b/Master/bin/i386-cygwin/t1testpage.exe diff --git a/Master/bin/i386-cygwin/t1unmac.exe b/Master/bin/i386-cygwin/t1unmac.exe Binary files differnew file mode 100755 index 00000000000..b56ae662933 --- /dev/null +++ b/Master/bin/i386-cygwin/t1unmac.exe diff --git a/Master/bin/i386-cygwin/t4ht.exe b/Master/bin/i386-cygwin/t4ht.exe Binary files differnew file mode 100755 index 00000000000..482b3661964 --- /dev/null +++ b/Master/bin/i386-cygwin/t4ht.exe diff --git a/Master/bin/i386-cygwin/tangle.exe b/Master/bin/i386-cygwin/tangle.exe Binary files differnew file mode 100755 index 00000000000..d4ab5c3e0e7 --- /dev/null +++ b/Master/bin/i386-cygwin/tangle.exe diff --git a/Master/bin/i386-cygwin/tcdialog.exe b/Master/bin/i386-cygwin/tcdialog.exe Binary files differnew file mode 100755 index 00000000000..911a01d7463 --- /dev/null +++ b/Master/bin/i386-cygwin/tcdialog.exe diff --git a/Master/bin/i386-cygwin/tex.exe b/Master/bin/i386-cygwin/tex.exe Binary files differnew file mode 100755 index 00000000000..0a333e34aa2 --- /dev/null +++ b/Master/bin/i386-cygwin/tex.exe diff --git a/Master/bin/i386-cygwin/tex4ht.exe b/Master/bin/i386-cygwin/tex4ht.exe Binary files differnew file mode 100755 index 00000000000..383d74d046b --- /dev/null +++ b/Master/bin/i386-cygwin/tex4ht.exe diff --git a/Master/bin/i386-cygwin/texconfig b/Master/bin/i386-cygwin/texconfig new file mode 100755 index 00000000000..fe0927136e0 --- /dev/null +++ b/Master/bin/i386-cygwin/texconfig @@ -0,0 +1,1439 @@ +#!/bin/sh + +# TeXConfig version 3.0 +# Originally written by Thomas Esser. Public domain. +# Now maintained as part of TeX Live; correspondence to tex-live@tug.org. + +# invoke the right shell: + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +export PATH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +# initializations... +progname=texconfig + +# the version string +version=20080708.1050 + +envVars=" + AFMFONTS BIBINPUTS BSTINPUTS CMAPFONTS CWEBINPUTS ENCFONTS GFFONTS + GLYPHFONTS INDEXSTYLE LIGFONTS MFBASES MFINPUTS MFPOOL MFTINPUTS + MISCFONTS MPINPUTS MPMEMS MPPOOL MPSUPPORT OCPINPUTS OFMFONTS + OPENTYPEFONTS OPLFONTS OTPINPUTS OVFFONTS OVPFONTS PDFTEXCONFIG PKFONTS + PSHEADERS SFDFONTS T1FONTS T1INPUTS T42FONTS TEXBIB TEXCONFIG TEXDOCS + TEXFONTMAPS TEXFONTS TEXFORMATS TEXINDEXSTYLE TEXINPUTS TEXMFCNF + TEXMFDBS TEXMFINI TEXMFSCRIPTS TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS + TEXSOURCES TFMFONTS TRFONTS TTFONTS VFFONTS WEB2C WEBINPUTS +" +tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tctmp.$$ +needsCleanup=false +lastUpdatedFile= + +# +############################################################################### +# setupFMT(void) - find a suitable version of fmt / adjust +# +setupFMT() +{ + case $FMT in + "") + FMT=fmt + test ! -x /bin/fmt && test ! -f /usr/bin/fmt && + { test -x /bin/adjust || test -x /usr/bin/adjust; } && FMT=adjust + ;; + *) + return + ;; + esac +} + +############################################################################### +# myFmt(args) - run $FMT +# +myFmt() +{ + setupFMT + $FMT ${1+"$@"} +} + +############################################################################### +# echoShowVariable(args ...) +# show environment variables which names are as args and their values +# +echoShowVariable() +{ + for esv + do + var=$esv + eval val=\"\${$var+=}\${$var- is unset}\" + echo "$var$val" + done | grep -v 'is unset$' +} + +############################################################################### +# echoShowKpseVariable(args ...) +# show kpathsea variables which names are as args and their values +# +echoShowKpseVariable() +{ + for eskv + do + var=$eskv + val=`kpsewhich -var-value="$eskv"` + echo "$var=$val" + done +} + +############################################################################### +# echoLocateBinary(args ...) - show where programs actually exist +# +echoLocateBinary() +{ + for elb + do + elbLoc=`checkForBinary "$elb"` + if test -n "$ELB_PATH_ONLY"; then + test -n "$elbLoc" && echo "$elbLoc" + else + case $elbLoc in + "") echo "$elb: not found";; + *) echo "$elb: $elbLoc";; + esac + fi + done +} + +############################################################################### +# echoLocateCfgfile(args ...) - show where files actually exist +# +echoLocateCfgfile() +{ + for elc + do + case $elc in + texmf.cnf) elcLoc=`kpsewhich $elc`;; + *) elcLoc=`tcfmgr --cmd find --file "$elc"`;; + esac + case $elcLoc in + "") echo "$elc: not found";; + *) echo "$elcLoc";; + esac + done +} + +############################################################################### +# checkForBinary(prog) - echo full path of prog +# +checkForBinary() +{ + cfbBinary=$1 + + OLDIFS=$IFS + IFS=: + set x `echo "$PATH" | sed 's/^:/.:/; s/:$/:./; s/::/:.:/g'`; shift + found=false + for pathElem + do + case $pathElem in + "") continue;; + *) test -f "$pathElem/$cfbBinary" && { echo "$pathElem/$cfbBinary"; found=true; break; } + esac + done + IFS=$OLDIFS + case $found in + true) (exit 0); return 0;; + false) (exit 1); return 1;; + esac +} + +############################################################################### +# cleanup() - clean up the temp area and exit with proper exit status +# +cleanup() +{ + rc=$1 + $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ + && { cd / && rm -rf "$tmpdir"; } + (exit $rc); exit $rc +} + +############################################################################### +# setupTmpDir() - set up a temp directory and a trap to remove it +# +setupTmpDir() +{ + case $needsCleanup in + true) return;; + esac + + trap 'cleanup 1' 1 2 3 7 13 15 + needsCleanup=true + (umask 077; mkdir "$tmpdir") \ + || abort "could not create directory \`$tmpdir'" +} + +############################################################################### +# setupTexmfmain() - get value for MT_TEXMFMAIN (with caching) +# +setupTexmfmain() +{ + case $MT_TEXMFMAIN in + "") MT_TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`;; + *) return;; + esac +} + +############################################################################### +# setupTexmfmain() - get value for MT_TEXMFDIST (with caching) +# +setupTexmfdist() +{ + case $MT_TEXMFDIST in + "") MT_TEXMFDIST=`kpsewhich -var-value=TEXMFDIST`;; + *) return;; + esac +} + +############################################################################### +# setupTexmfvar() - get value for MT_TEXMFVAR (with caching) +# +setupTexmfvar() +{ + case $MT_TEXMVAR in + "") MT_TEXMVAR=`kpsewhich -var-value=TEXMFVAR`;; + *) return;; + esac +} + +############################################################################### +# setupSystexmf() - get value for MT_SYSTEXMF (with caching) +# +setupSystexmf() +{ + case $MT_SYSTEXMF in + "") MT_SYSTEXMF=`kpsewhich -var-value=SYSTEXMF`;; + *) return;; + esac +} + +############################################################################### +# abort(errmsg) +# print `errmsg' to stderr and exit with error code 1 +# +abort() +{ + echo "$progname: $1." >&2 + cleanup 1 +} + +############################################################################### +# mktexdir(args) +# call mktexdir script, disable all features (to prevent sticky directories) +# +mktexdir() +{ + setupTexmfmain + MT_FEATURES=none "$MT_TEXMFMAIN/web2c/mktexdir" "$@" >&2 +} + +############################################################################### +# tcfmgr(args) - call tcfmgr script +# +tcfmgr() +{ + setupTexmfmain + "$MT_TEXMFMAIN/texconfig/tcfmgr" "$@" +} + +############################################################################### +# mktexupd(args) - call mktexupd script +# +mktexupd() +{ + setupTexmfmain + "$MT_TEXMFMAIN/web2c/mktexupd" "$@" +} + +############################################################################### +# getRelDir(file) +# matches file against SYSTEXMF. Returns relative directory of file within +# a texmf tree in variable relPart. +# +getRelDir() +{ + file=$1 + relPart= + + setupSystexmf + OLDIFS=$IFS + IFS=' +' + set x `echo "$MT_SYSTEXMF" | tr : ' +'`; shift + IFS=$OLDIFS + + # now loop over all components of SYSTEXMF + for dir + do + test -n "$dir" || continue + case "$file" in + $dir/*) + relPart=`echo "$file" | sed "s%$dir/*%%"` + break + ;; + esac + done + + # now check for success / failure + case $relPart in + ""|$file) + # empty or full filename -> getRelDir failed! + (exit 1); return 1 + ;; + *) + # relPart should just have the "dirname" part: + relPart=`echo "$relPart" | sed 's%/*[^/]*$%%'` + (exit 0); return 0 + ;; + esac +} + +############################################################################### +# configReplace(file pattern line) +# The first line in file that matches pattern gets replaced by line. +# line will be added at the end of the file if pattern does not match. +# +configReplace() +{ + configReplaceFile=$1; configReplacePat=$2; configReplaceLine=$3 + + if grep "$configReplacePat" "$configReplaceFile" >/dev/null; then + ed "$configReplaceFile" >/dev/null 2>&1 <<-eof + /$configReplacePat/c + $configReplaceLine + . + w + q +eof + else + echo "$configReplaceLine" >> $configReplaceFile + fi +} + +############################################################################### +# fmgrConfigReplace (file regex value) +# replaces line matching regex by value in file +# +fmgrConfigReplace() +{ + fmgrConfigReplaceChanged=false + + moreArgs="" + while + case $1 in + --*) moreArgs="$moreArgs $1 $2";; + *) break;; + esac + do shift; shift; done + fmgrConfigReplaceFile=$1 + fmgrConfigReplaceRegex=$2 + fmgrConfigReplaceValue=$3 + + setupTmpDir + co=`tcfmgr $moreArgs --tmp $tmpdir --cmd co --file $fmgrConfigReplaceFile` + if test $? != 0; then + echo "$progname: fmgrConfigReplace co failed for \`$fmgrConfigReplaceFile'" >&2 + (exit 1); return 1 + fi + set x $co; shift + fmgrConfigReplaceID=$1; fmgrConfigReplaceCfgFile=$3; fmgrConfigReplaceOrigFile=$4 + configReplace "$fmgrConfigReplaceCfgFile" "$fmgrConfigReplaceRegex" "$fmgrConfigReplaceValue" + ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$fmgrConfigReplaceID"` + if test $? != 0; then + echo "$progname: fmgrConfigReplace ci failed for \`$fmgrConfigReplaceFile'" >&2 + (exit 1); return 1 + fi + case $ci in + "") :;; + $lastUpdatedFile) + fmgrConfigReplaceChanged=true;; + *) echo "$progname: updated configuration saved as file \`$ci'" >&2 + fmgrConfigReplaceChanged=true + lastUpdatedFile=$ci;; + esac + (exit 0); return 0 +} + +############################################################################### +# setupDvipsPaper(paper) +# rearranges config.ps to make paper the first paper definition +# +setupDvipsPaper() +{ + setupDvipsPaperChanged=false + setupDvipsPaperFile=config.ps + setupDvipsPaperDftPaper=$1 + + setupTmpDir + co=`tcfmgr --tmp $tmpdir --cmd co --file $setupDvipsPaperFile` + if test $? != 0; then + echo "$progname: setupDvipsPaper co failed for \`$setupDvipsPaperFile'" >&2 + (exit 1); return 1 + fi + set x $co; shift + setupDvipsPaperID=$1; setupDvipsPaperCfgFile=$3; setupDvipsPaperOrigFile=$4 + + ed "$setupDvipsPaperCfgFile" > /dev/null 2>&1 <<-eof + /@ /ka + \$a + @ + . + /@ $setupDvipsPaperDftPaper /;/@ /-1m'a-1 + \$d + w + q +eof + + ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$setupDvipsPaperID"` + if test $? != 0; then + echo "$progname: setupDvipsPaper ci failed for \`$setupDvipsPaperFile'" >&2 + (exit 1); return 1 + fi + case $ci in + "") :;; + $lastUpdatedFile) + setupDvipsPaperChanged=true;; + *) echo "$progname: updated configuration saved as file \`$ci'" >&2 + setupDvipsPaperChanged=true + lastUpdatedFile=$ci;; + esac + (exit 0); return 0 +} + +############################################################################### +# setupModesMfFile(void) - find modes.mf file (with caching) +# +setupModesMfFile() +{ + case $modesMfFile in + "") + modesMfFile=`tcfmgr --cmd find --file modes.mf` + ;; + *) + return + ;; + esac +} + +############################################################################### +# locateConfigPsFile(void) - find config.ps file (with caching) +# +locateConfigPsFile() +{ + case $configPsFile in + "") + configPsFile=`tcfmgr --cmd find --file config.ps` + ;; + *) + return + ;; + esac +} + +############################################################################### +# listMfModes(file) - list modes from modes.mf file +# +listMfModes() +{ + grep mode_def "$modesMfFile" | + sed -e "s/mode_def //" \ + -e "s/ .*%[^ ]* / '/" \ + -e "s/\$/' /" | + egrep -v "^(help|%)" | sort +} + +############################################################################### +# listDvipsPapers(void) - list paper definitions from config.ps +# +listDvipsPapers() +{ + grep '@ ' $configPsFile | sed "s/..//;s/ / '/;s/\$/' /" +} + +############################################################################### +# getFormatsForHyphen(void) +# list all formats which have customizable hyphenation +# +getFormatsForHyphen() +{ + fmtutil --catcfg | awk '$3 != "-" {print $1}' | sort +} + +############################################################################### +# getRes(mode) - print resolution (both X and Y axis) to metafont mode +# +getRes() +{ + getResMode=$1 + ( + cd $tmpdir + cat >mftmp.mf <<-'eof' + let myexit = primitive_end_; + mode_setup; + string xdpi; + xdpi := decimal round pixels_per_inch; + message "XDPI = " & xdpi; + string ydpi; + ydpi := decimal round (pixels_per_inch * aspect_ratio); + message "YDPI = " & ydpi; + fontmaking := 0; + myexit; +eof + mf '\mode='"$getResMode"'; \input ./mftmp' </dev/null \ + | awk '$1 == "XDPI" || $1 == "YDPI" { print $3 }' + ) +} + +############################################################################### +# checkElemInList(elem, list) +# check if element exists in list +############################################################################### +checkElemInList() +{ + checkElemInListElem=$1; shift + checkElemInListFound=false + for checkElemInListIter + do + case "x$checkElemInListElem" in + x$checkElemInListIter) + checkElemInListFound=true + break + ;; + esac + done + case $checkElemInListFound in + true) (exit 0); return 0;; + esac + (exit 1); return 1 +} + + +# show version information from the distribution, if we have any. +showDistVersionInfo() +{ + # TeX Live file. + test -f $MT_TEXMFMAIN/../release-texlive.txt \ + && sed 1q $MT_TEXMFMAIN/../release-texlive.txt + + # no harm in continuing to look for the teTeX files. + test -f $MT_TEXMFMAIN/release-tetex-src.txt \ + && "teTeX-src release: `cat $MT_TEXMFMAIN/release-tetex-src.txt`" + test -f $MT_TEXMFDIST/release-tetex-texmf.txt \ + && "teTeX-texmf release: `cat $MT_TEXMFDIST/release-tetex-texmf.txt`" +} + +# +############################################################################### +# tcBatch(args) +# handle batch mode +############################################################################### +tcBatch() +{ + help="texconfig supports adjusting and updating many aspects of +the TeX installation. + +Usage: $progname conf (show configuration information) + $progname dvipdfmx paper PAPER (dvipdfmx paper size) + $progname dvipdfm paper PAPER (dvipdfm paper size) + $progname dvips [OPTION...] (dvips options) + $progname faq (show teTeX faq) + $progname findprog PROG... (show locations of PROGs, a la which) + $progname font vardir DIR + $progname font ro + $progname font rw + $progname formats (edit fmtutil.cnf) + $progname help (or --help; show this help) + $progname hyphen FORMAT (edit hyphenation config for FORMAT) + $progname init [FORMAT]... (rebuild FORMATs, or all formats + plus run texlinks and updmap) + $progname mode MODE (set Metafont MODE) + $progname paper PAPER (set default paper size to PAPER) + $progname pdftex [OPTION]... (pdftex options) + $progname rehash (rebuild ls-R files with mktexlsr) + $progname version (or --version; show version info) + $progname xdvi paper PAPER (xdvi paper size) + +Get more help with: + $progname dvipdfmx + $progname dvipdfm + $progname dvips + $progname font + $progname hyphen + $progname mode + $progname paper + $progname pdftex + $progname xdvi + +See http://tug.org/texlive/ for other documentation, etc. +Report bugs to <tex-k@tug.org>." + + case $1 in + # texconfig conf + conf|confall) + setupTexmfmain + setupTexmfdist + echo '=========================== version information ==========================' + showDistVersionInfo + echo + echo '==================== binaries found by searching $PATH ===================' + echo "PATH=$PATH" + echoLocateBinary kpsewhich updmap fmtutil texconfig tex pdftex mktexpk dvips dvipdfm + echo + echo '=========================== active config files ==========================' + echoLocateCfgfile texmf.cnf updmap.cfg fmtutil.cnf config.ps mktex.cnf XDvi pdftexconfig.tex config | sort -k 2 + echo + echo '============================= font map files =============================' + for m in psfonts.map pdftex.map ps2pk.map dvipdfm.map; do + echo "$m: `kpsewhich $m`" + done + echo + echo '=========================== kpathsea variables ===========================' + echoShowKpseVariable TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG TEXMFVAR TEXMFCONFIG TEXMFHOME VARTEXFONTS TEXMF SYSTEXMF TEXMFDBS WEB2C TEXPSHEADERS TEXCONFIG ENCFONTS TEXFONTMAPS + + echo + echo '==== kpathsea variables from environment only (ok if no output here) ====' + echoShowVariable $envVars + ;; + + # texconfig dvipdfm + dvipdfm) + help="Usage: $progname dvipdfm paper PAPER + +Valid PAPER settings: + letter legal ledger tabloid a4 a3" + case $2 in + # texconfig dvipdfm paper + paper-list) + for p in letter legal ledger tabloid a4 a3; do echo $p; done + ;; + paper) + case $3 in + letter|legal|ledger|tabloid|a4|a3) + fmgrConfigReplace config '^p' "p $3";; + "") echo "$help" >&2; rc=1;; + *) + echo "$progname: unknown PAPER \`$3' given as argument for \`$progname dvipdfm paper'" >&2 + echo "$progname: try \`$progname dvipdfm paper' for help" >&2 + rc=1 ;; + esac ;; + # texconfig dvipdfm "" + "") + echo "$help" >&2; rc=1 ;; + # texconfig dvipdfm <unknown> + *) + echo "$progname: unknown option \`$2' given as argument for \`$progname dvipdfm'" >&2 + echo "$progname: try \`$progname dvipdfm' for help" >&2 + rc=1 + ;; + esac + ;; + + # texconfig dvipdfmx + dvipdfmx) + help="Usage: $progname dvipdfmx paper PAPER + +Valid PAPER settings: + letter legal ledger tabloid a4 a3" + case $2 in + # texconfig dvipdfmx paper + paper-list) + for p in letter legal ledger tabloid a4 a3; do echo $p; done + ;; + paper) + case $3 in + letter|legal|ledger|tabloid|a4|a3) + fmgrConfigReplace dvipdfmx.cfg '^p' "p $3";; + "") echo "$help" >&2; rc=1;; + *) + echo "$progname: unknown PAPER \`$3' given as argument for \`$progname dvipdfmx paper'" >&2 + echo "$progname: try \`$progname dvipdfmx paper' for help" >&2 + rc=1 ;; + esac ;; + # texconfig dvipdfmx "" + "") + echo "$help" >&2; rc=1 ;; + # texconfig dvipdfmx <unknown> + *) + echo "$progname: unknown option \`$2' given as argument for \`$progname dvipdfmx'" >&2 + echo "$progname: try \`$progname dvipdfmx' for help" >&2 + rc=1 + ;; + esac + ;; + + # texconfig dvips + dvips) + shift + help="Usage: $progname dvips add PRINTER + $progname dvips del PRINTER + $progname dvips paper PAPER + $progname dvips [-P PRINTER] mode MODE + $progname dvips [-P PRINTER] offset OFFSET + $progname dvips [-P PRINTER] printcmd CMD" + case $1 in + -P) + case $2 in + "") + echo "$progname: missing arg for parameter -P" >&2 + rc=1; (exit $rc); return $rc + ;; + *) + otherPrinter=true + otherPrinterName=$2 + otherPrinterFile=`kpsewhich -format='dvips config' "config.$otherPrinterName"` + case $otherPrinterFile in + "") + echo "$progname: configuration file \`config.$otherPrinterName' for printer \`$otherPrinterName' not found" >&2 + rc=1; (exit $rc); return $rc + ;; + *) shift; shift;; + esac + ;; + esac + ;; + *) + otherPrinter=false + ;; + esac + case $otherPrinter in + true) + tcBatchDvipsPrinter=$otherPrinterName + moreFmgrArgs="--reldir dvips/config --infile $otherPrinterFile" + ;; + *) + tcBatchDvipsPrinter=ps + ;; + esac + case $1 in + add) + case $2 in + "") + echo "Usage: $progname dvips add PRINTER" >&2 + rc=1 + ;; + *) + printerName=$2 + pFile=`kpsewhich -format='dvips config' "config.$printerName"` + case $pFile in + "") + setupTmpDir + tcfRet=`tcfmgr --emptyinfile --reldir dvips/config --cmd co --tmp $tmpdir --file "config.$printerName"` + if test $? != 0; then + echo "$progname: failed to add new configuration file \`config.$printerName'" >&2 + rc=1 + else + set x $tcfRet; shift + tcBatchDvipsAddID=$1; tcBatchDvipsAddFile=$3 + echo "% file config.$printerName; added by texconfig" > "$tcBatchDvipsAddFile" + tcfRet=`tcfmgr --tmp $tmpdir --id "$tcBatchDvipsAddID" --cmd ci` + if test $? != 0; then + echo "$progname: failed to add new configuration file \`config.$printerName'" >&2 + rc=1 + else + echo "$progname: file $tcfRet added" >&2 + fi + fi + ;; + *) + echo "$progname: configuration file for printer \`$printerName' already exists (\`$pFile')" >&2 + rc=1 + ;; + esac + ;; + esac + ;; + del) + case $2 in + "") + echo "Usage: $progname dvips del PRINTER" >&2 + rc=1 + ;; + *) + printerName=$2 + pFile=`kpsewhich -format='dvips config' "config.$printerName"` + case $pFile in + "") + echo "$progname: configuration file for printer \`$printerName' (config.$printerName) not found" >&2 + rc=1 + ;; + *) + if rm "$pFile"; then + echo "$progname: file \`$pFile' removed" >&2 + else + echo "$progname: failed to remove file \`$pFile'" >&2 + rc=1 + fi + ;; + esac + ;; + esac + ;; + paper-list) + locateConfigPsFile + listDvipsPapers + ;; + paper) + case $2 in + "") + echo "Usage: $progname dvips paper PAPER" >&2 + echo >&2; echo "Valid PAPER settings:" >&2 + locateConfigPsFile + listDvipsPapers | sed 's@ .*@@; s@^@ @' | myFmt + rc=1 + ;; + *) + tcBatchDvipsPaper=$2 + locateConfigPsFile + case "$configPsFile" in + "") + echo "$progname: file config.ps not found" >&2; rc=1 + ;; + *) + if grep "@ $tcBatchDvipsPaper " $configPsFile >/dev/null 2>&1; then + setupDvipsPaper "$tcBatchDvipsPaper" + else + echo "$progname: paper \`$tcBatchDvipsPaper' not found in file \`$configPsFile'" >&2; rc=1 + fi + ;; + esac + ;; + esac + ;; + mode) + case $2 in + "") + echo "Usage: $progname dvips mode MODE + +Valid MODE settings:" + setupModesMfFile + listMfModes | sed 's@ .*@@; s@^@ @' | myFmt + rc=1 + ;; + *) + tcBatchDvipsMode=$2 + setupTmpDir + setupModesMfFile + if checkElemInList "$tcBatchDvipsMode" `listMfModes | sed 's@ .*@@'`; then + set x `getRes "$tcBatchDvipsMode"`; shift + resX=$1; resY=$2 + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^M' "M $tcBatchDvipsMode" + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^D' "D $resX" + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^X' "X $resX" + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^Y' "Y $resY" + else + echo "$progname: unknown MODE \`$tcBatchDvipsMode' given as argument for \`$progname dvips mode'" >&2 + echo "$progname: try \`$progname dvips mode' for help" >&2 + rc=1 + fi + ;; + esac + ;; + offset) + offset=$2 + case $offset in + "") + echo "Usage: $progname dvips offset OFFSET" + rc=1 + ;; + *) + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^O' "O $offset" + esac + ;; + printcmd) + printcmd=$2 + case $printcmd in + "") + echo "Usage: $progname dvips printcmd CMD" + rc=1 + ;; + -) + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^o' o + ;; + *) + fmgrConfigReplace $moreFmgrArgs config.$tcBatchDvipsPrinter '^o' "o |$printcmd" + ;; + esac + ;; + "") + echo "$help" >&2; rc=1 + ;; + *) + echo "$progname: unknown option \`$1' given as argument for \`$progname dvips'" >&2 + echo "$progname: try \`$progname dvips' for help" >&2 + rc=1 + ;; + esac + ;; + + faq) + setupTexmfmain + if test -f $MT_TEXMFMAIN/doc/tetex/teTeX-FAQ; then + <$MT_TEXMFMAIN/doc/tetex/teTeX-FAQ eval ${PAGER-more} + else + echo "$progname: faq not found (usually in \$TEXMFMAIN/doc/tetex/teTeX-FAQ)" >&2 + rc=1 + fi + ;; + + findprog) + shift + ELB_PATH_ONLY=1 echoLocateBinary "$@" + ;; + + # handle "texconfig font" + font) + help="Usage: $progname font vardir DIR + $progname font ro + $progname font rw + +The vardir option changes the VARTEXFONTS variable in the texmf.cnf file. + +The rw option makes the VARTEXFONTS directory (and subtrees pk, tfm, +source) world writable and sets the features appendonlydir:varfonts +in mktex.cnf. + +The ro option makes the VARTEXFONTS directory (and subtrees pk, tfm, +source) writable for the owner only and sets the feature texmfvar in +mktex.cnf. + +For more information about these \`features', consult the teTeX manual +(e.g. by running \`texdoc TETEXDOC')." + + case $2 in + vardir) + case $3 in + "") + echo "$help" >&2 + rc=1 + ;; + *) + tcBatchFontVardir=$3 + tfc=`kpsewhich texmf.cnf` + if test -n "$tfc"; then + if test -w "$tfc"; then + configReplace "$tfc" '^VARTEXFONTS' "VARTEXFONTS = $tcBatchFontVardir" + else + echo "$progname: setting up vardir failed. Reason: no permission to write file \`$tfc'" >&2 + rc=1 + fi + else + echo "$progname: setting up vardir failed. Reason: failed to find file texmf.cnf" >&2 + rc=1 + fi + ;; + esac + ;; + rw) + MT_VARTEXFONTS=`kpsewhich -var-value VARTEXFONTS` + if test -z "$MT_VARTEXFONTS"; then + echo "$progname: failed to set \`font rw'; reason: could not determine VARTEXFONTS variable." >&2; rc=1 + return + fi + test -d "$MT_VARTEXFONTS" || mktexdir "$MT_VARTEXFONTS" + if test ! -d "$MT_VARTEXFONTS"; then + echo "$progname: failed to set \`font rw'; reason: directory \`$MT_VARTEXFONTS' does not exist." >&2; rc=1 + return + fi + chmod 1777 "$MT_VARTEXFONTS" || { + echo "$progname: failed to modify permissions in \`$MT_VARTEXFONTS'." >&2; rc=1 + return; + } + ( + cd "$MT_VARTEXFONTS" || exit + echo "$progname: modifying permissions in \`$MT_VARTEXFONTS' ..." >&2 + for d in pk tfm source; do + test -d "$d" && find $d -type d -exec chmod 1777 '{}' \; + done + echo "$progname: all permissions set." >&2 + ) + setupTmpDir + fmgrConfigReplace mktex.cnf '^: ..MT_FEATURES=' ": \${MT_FEATURES=appendonlydir:varfonts}" + ;; + ro) + MT_VARTEXFONTS=`kpsewhich -var-value VARTEXFONTS` + if test -z "$MT_VARTEXFONTS"; then + echo "$progname: failed to set \`font ro'; reason: could not determine VARTEXFONTS variable." >&2; rc=1 + return + fi + test -d "$MT_VARTEXFONTS" || mktexdir "$MT_VARTEXFONTS" + if test ! -d "$MT_VARTEXFONTS"; then + echo "$progname: failed to set \`font ro'; reason: directory \`$MT_VARTEXFONTS' does not exist." >&2; rc=1 + return + fi + chmod 755 "$MT_VARTEXFONTS" || { + echo "$progname: failed to modify permissions in \`$MT_VARTEXFONTS'." >&2; rc=1 + return; + } + ( + cd "$MT_VARTEXFONTS" || exit + echo "$progname: modifying permissions in \`$MT_VARTEXFONTS' ..." >&2 + for d in pk tfm source; do + test -d "$d" && find "$d" -type d -exec chmod 755 '{}' \; + done + echo "$progname: all permissions set." >&2 + ) + setupTmpDir + fmgrConfigReplace mktex.cnf '^: ..MT_FEATURES=' ": \${MT_FEATURES=texmfvar}" + ;; + "") echo "$help" >&2; rc=1;; + *) echo "$progname: unknown option \`$2' given as argument for \`$progname font'" >&2 + echo "$progname: try \`$progname font' for help" >&2 + rc=1 + ;; + esac + ;; + + formats) + cat >&2 <<EOM +texconfig formats is no longer supported, because manual edits of +fmtutil.cnf will be overwritten by the new TeX Live package manager, +tlmgr, which regenerates that file as needed upon package changes. +Thus, to add or remove formats, the recommended method is to use tlmgr +to add or remove the appropriate package. + +If you need to make manual additions, you can edit the file +fmtutil-local.cnf under TEXMFLOCAL. Further information with +tlmgr --help and at http://tug.org/texlive/tlmgr.html. + +Exiting. +EOM + exit 1 # but leave the real code for posterity + + setupTmpDir + echo "$progname: analyzing old configuration..." >&2 + fmtutil --catcfg > $tmpdir/pre + fmtutil --edit + echo "$progname: analyzing new configuration..." >&2 + fmtutil --catcfg > $tmpdir/post + + if cmp $tmpdir/pre $tmpdir/post >/dev/null 2>&1; then + echo "$progname: no new/updated formats available ..." >&2 + else + echo "$progname: updating formats ..." >&2 + comm -13 $tmpdir/pre $tmpdir/post > $tmpdir/addOrChange + for i in `awk '{print $1}' $tmpdir/addOrChange`; do + fmtutil --byfmt "$i" || rc=1 + done + texlinks --multiplatform || rc=1 + fi + ;; + + help|--help|-h) + echo "$help" + ;; + + # "hyphen FORMAT" + hyphen) + cat >&2 <<EOM +texconfig hyphen is no longer supported, because manual edits of +language.dat (or language.def) will be overwritten by the new TeX Live +package manager, tlmgr, which regenerates those configuration files as +needed upon package changes. Thus, to add or remove hyphenation +patterns, the recommended method is to use tlmgr to add or remove the +appropriate package. + +If you need to make manual additions, you can edit the files +language-local.dat and language-local.def under TEXMFLOCAL. Further +information with tlmgr --help and at http://tug.org/texlive/tlmgr.html. + +Exiting. +EOM + exit 1 # but leave the real code for posterity + + tcBatchHyphenFormat=$2 + formatsForHyphen=`getFormatsForHyphen` + formatsForHyphenFmt=`echo "$formatsForHyphen" | myFmt | sed 's@^@ @'` + help="Usage: $progname hyphen FORMAT + +Valid FORMATs are: +$formatsForHyphenFmt" + case $tcBatchHyphenFormat in + "") + echo "$help" >&2; rc=1 + ;; + *) + if checkElemInList "$tcBatchHyphenFormat" $formatsForHyphen; then + + tcBatchHyphenFile=`fmtutil --showhyphen "$tcBatchHyphenFormat"` + case $tcBatchHyphenFile in + "") + echo "$progname: could not find hyphen setup file for format \`$tcBatchHyphenFormat'" >&2 + rc=1 + return + ;; + esac + + getRelDir "$tcBatchHyphenFile" + case $relPart in + "") + # edit tcBatchHyphenFile directly + tcBatchHFID= + setupTmpDir + tcBatchHFEdit=$tcBatchHyphenFile + tcBatchHFOrig=$tmpdir/hforig + cp "$tcBatchHyphenFile" "$tcBatchHFOrig" + ;; + *) + # use tcfmgr + tcBatchHyphenFileBasename=`echo "$tcBatchHyphenFile" | sed 's@.*/@@'` + setupTmpDir + co=`tcfmgr --tmp $tmpdir --cmd co --file "$tcBatchHyphenFileBasename" --reldir "$relPart" --infile "$tcBatchHyphenFile"` + if test $? != 0; then + echo "$progname: failed to check out file \`$tcBatchHyphenFile'" >&2 + rc=1 + return 1 + else + set x $co; shift + tcBatchHFID=$1; tcBatchHFEdit=$3; tcBatchHFOrig=$4 + fi + ;; + esac + ${VISUAL-${EDITOR-vi}} "$tcBatchHFEdit" + if cmp "$tcBatchHFEdit" "$tcBatchHFOrig" >/dev/null 2>&1; then + echo "$progname: configuration unchanged." >&2 + else + case $tcBatchHFID in + "") + tcBatchHFOut=$tcBatchHFEdit + echo "$progname: updated configuration saved as file \`$tcBatchHFOut'" >&2 + lastUpdatedFile=$ci + ;; + *) + ci=`tcfmgr --tmp $tmpdir --cmd ci --id "$tcBatchHFID"` + if test $? != 0; then + echo "$progname: failed to check in file \`$tcBatchHyphenFileBasename'" >&2 + rc=1 + return + else + tcBatchHFOut=$ci + echo "$progname: updated configuration saved as file \`$tcBatchHFOut'" >&2 + lastUpdatedFile=$ci + fi + ;; + esac + fmtutil --byhyphen "$tcBatchHFOut" + fi + else + echo "$progname: invalid format \`$tcBatchHyphenFormat' specified as argument for \`$progname hyphen'" >&2 + echo "$progname: for getting help, try \`$progname hyphen'" >&2 + rc=1 + fi + ;; + esac + ;; + + hyphen-list) + getFormatsForHyphen + ;; + + init) + if test -n "$texconfig_sys"; then # set by texconfig-sys + fmtutil=fmtutil-sys + updmap=updmap-sys + else + fmtutil=fmtutil + updmap=updmap + fi + + case $2 in + "") + if $fmtutil --all \ + && texlinks --multiplatform \ + && $updmap; then + : + else + rc=1 + fi + ;; + *) + shift 1 + for i in "$@"; do + $fmtutil --byfmt "$i" || rc=1 + done + ;; + esac + ;; + + mode-list) + setupModesMfFile + listMfModes + ;; + + mode) + case $2 in + "") + echo "Usage: $progname mode MODE + +Valid MODE settings:" + setupModesMfFile + listMfModes | sed 's@ .*@@; s@^@ @' | myFmt + rc=1 + ;; + *) + tcBatchMode=$2 + setupModesMfFile + if checkElemInList $tcBatchMode `listMfModes | sed 's@ .*@@'`; then + + # modify mktex.cnf + setupTmpDir + fmgrConfigReplace mktex.cnf '^: ..MODE=' ": \${MODE=$tcBatchMode}" + set x `getRes "$tcBatchMode"`; shift + tcBatchRes=$1 + fmgrConfigReplace mktex.cnf '^: ..BDPI=' ": \${BDPI=$tcBatchRes}" + + if checkForBinary dvips >/dev/null && tcfmgr --cmd find --file config.ps >/dev/null 2>&1; then + tcBatch dvips mode "$tcBatchMode" + fi + if checkForBinary pdftex >/dev/null && tcfmgr --cmd find --file pdftexconfig.tex >/dev/null 2>&1; then + tcBatch pdftex mode "$tcBatchMode" + fi + else + echo "$progname: unknown mode \`$tcBatchMode' specified as argument for \`$progname mode'" >&2; rc=1 + fi + ;; + esac + ;; + + paper) + help="Usage: $progname paper PAPER + +Valid PAPER settings: + letter a4" + + p=$2; pXdvi=$2; pDvips=$2 + case $2 in + letter) + pXdvi=us;; + a4) + pXdvi=a4;; + "") echo "$help" >&2; rc=1; return;; + *) + echo "$progname: unknown PAPER \`$2' given as argument for \`$progname paper'" >&2 + echo "$progname: try \`$progname paper' for help" >&2 + rc=1 + return;; + esac + if checkForBinary dvips >/dev/null && tcfmgr --cmd find --file config.ps >/dev/null 2>&1; then + tcBatch dvips paper $pDvips + fi + if checkForBinary dvipdfm >/dev/null && tcfmgr --cmd find --file config >/dev/null 2>&1; then + tcBatch dvipdfm paper $p + fi + if checkForBinary dvipdfmx >/dev/null && tcfmgr --cmd find --file dvipdfmx.cfg >/dev/null 2>&1; then + tcBatch dvipdfmx paper $p + fi + if checkForBinary xdvi >/dev/null && tcfmgr --cmd find --file XDvi >/dev/null 2>&1; then + tcBatch xdvi paper $pXdvi + fi + if checkForBinary pdftex >/dev/null && tcfmgr --cmd find --file pdftexconfig.tex >/dev/null 2>&1; then + tcBatch pdftex paper $p + fi + ;; + + pdftex) + help="Usage: $progname pdftex paper PAPER + +Valid PAPER settings: + a4 letter" + case $2 in + + mode) + case $3 in + "") + echo "Usage: $progname pdftex mode MODE" + rc=1 + ;; + *) + tcBatchPdftexMode=$3 + setupTmpDir + setupModesMfFile + if checkElemInList "$tcBatchPdftexMode" `listMfModes | sed 's@ .*@@'`; then + set x `getRes "$tcBatchPdftexMode"`; shift + fmgrConfigReplace pdftexconfig.tex 'pdfpkresolution' "\\pdfpkresolution=$1" + if $fmgrConfigReplaceChanged; then + fmtutil --refresh + fi + else + echo "$progname: unknown MODE \`$tcBatchPdftexMode' given as argument for \`$progname pdftex mode'" >&2 + rc=1 + fi + ;; + esac + ;; + + paper) + case $3 in + letter) + w="8.5 true in"; h="11 true in" + setupTmpDir + fmgrConfigReplace pdftexconfig.tex pdfpagewidth '\pdfpagewidth='"$w" + wChanged=$fmgrConfigReplaceChanged + fmgrConfigReplace pdftexconfig.tex pdfpageheight '\pdfpageheight='"$h" + if $wChanged || $fmgrConfigReplaceChanged; then + fmtutil --refresh + fi + ;; + a4) + w="210 true mm"; h="297 true mm" + fmgrConfigReplace pdftexconfig.tex pdfpagewidth '\pdfpagewidth='"$w" + wChanged=$fmgrConfigReplaceChanged + fmgrConfigReplace pdftexconfig.tex pdfpageheight '\pdfpageheight='"$h" + if $wChanged || $fmgrConfigReplaceChanged; then + fmtutil --refresh + fi + ;; + "") echo "$help" >&2; rc=1;; + *) + echo "$progname: unknown PAPER \`$3' given as argument for \`$progname pdftex paper'" >&2 + echo "$progname: try \`$progname pdftex paper' for help" >&2 + rc=1 ;; + esac ;; + "") + echo "$help" >&2; rc=1;; + *) + echo "$progname: unknown option \`$2' given as argument for \`$progname pdftex'" >&2 + echo "$progname: try \`$progname pdftex' for help" >&2 + rc=1 + ;; + esac + ;; + + rehash) + mktexlsr + ;; + + # + version|--version) + echo "$progname version $version" + setupTexmfmain + setupTexmfdist + showDistVersionInfo + (exit 0); exit 0;; + + # handle "xdvi paper PAPER" + xdvi) + tcBatchXdviPapers='us "8.5x11" +usr "11x8.5" +legal "8.5x14" +foolscap "13.5x17.0" +a1 "59.4x84.0cm" +a2 "42.0x59.4cm" +a3 "29.7x42.0cm" +a4 "21.0x29.7cm" +a5 "14.85x21.0cm" +a6 "10.5x14.85cm" +a7 "7.42x10.5cm" +a1r "84.0x59.4cm" +a2r "59.4x42.0cm" +a3r "42.0x29.7cm" +a4r "29.7x21.0cm" +a5r "21.0x14.85cm" +a6r "14.85x10.5cm" +a7r "10.5x7.42cm" +b1 "70.6x100.0cm" +b2 "50.0x70.6cm" +b3 "35.3x50.0cm" +b4 "25.0x35.3cm" +b5 "17.6x25.0cm" +b6 "13.5x17.6cm" +b7 "8.8x13.5cm" +b1r "100.0x70.6cm" +b2r "70.6x50.0cm" +b3r "50.0x35.3cm" +b4r "35.3x25.0cm" +b5r "25.0x17.6cm" +b6r "17.6x13.5cm" +b7r "13.5x8.8cm" +c1 "64.8x91.6cm" +c2 "45.8x64.8cm" +c3 "32.4x45.8cm" +c4 "22.9x32.4cm" +c5 "16.2x22.9cm" +c6 "11.46x16.2cm" +c7 "8.1x11.46cm" +c1r "91.6x64.8cm" +c2r "64.8x45.8cm" +c3r "45.8x32.4cm" +c4r "32.4x22.9cm" +c5r "22.9x16.2cm" +c6r "16.2x11.46cm" +c7r "11.46x8.1cm"' + help="Usage: $progname xdvi paper PAPER + +Valid PAPER settings: + a1 a1r a2 a2r a3 a3r a4 a4r a5 a5r a6 a6r a7 a7r + b1 b1r b2 b2r b3 b3r b4 b4r b5 b5r b6 b6r b7 b7r + c1 c1r c2 c2r c3 c3r c4 c4r c5 c5r c6 c6r c7 c7r + foolscap legal us usr" + case $2 in + paper-list) + echo "$tcBatchXdviPapers" + ;; + paper) + case $3 in + a1|a1r|a2|a2r|a3|a3r|a4|a4r|a5|a5r|a6|a6r|a7|a7r|b1|b1r|b2|b2r|b3|b3r|b4|b4r|b5|b5r|b6|b6r|b7|b7r|c1|c1r|c2|c2r|c3|c3r|c4|c4r|c5|c5r|c6|c6r|c7|c7r|foolscap|legal|us|usr) + fmgrConfigReplace XDvi paper: "*paper: $3" + ;; + "") echo "$help" >&2; rc=1;; + *) + echo "$progname: unknown PAPER \`$3' given as argument for \`$progname xdvi paper'" >&2 + echo "$progname: try \`$progname xdvi paper' for help" >&2 + rc=1 ;; + esac ;; + "") + echo "$help" >&2; rc=1;; + *) + echo "$progname: unknown option \`$2' given as argument for \`$progname xdvi'" >&2 + echo "$progname: try \`$progname xdvi' for help" >&2 + rc=1 + ;; + esac + ;; + *) + echo "$progname: unknown option \`$1' given as argument for \`$progname'" >&2 + echo "$progname: try \`$progname help' for help" >&2 + rc=1 + esac +} + +############################################################################### +# tcInteractive(void) +# handle interactive mode +############################################################################### +tcInteractive() +{ + texconfig-dialog +} + +############################################################################### +# main() +############################################################################### +rc=0 +case $# in + 0) tcInteractive;; + *) tcBatch "$@";; +esac + +cleanup $rc diff --git a/Master/bin/i386-cygwin/texconfig-dialog b/Master/bin/i386-cygwin/texconfig-dialog new file mode 100755 index 00000000000..8ccda930dd7 --- /dev/null +++ b/Master/bin/i386-cygwin/texconfig-dialog @@ -0,0 +1,495 @@ +#!/bin/sh + +# TeX-Config version 3.0 +# Thomas Esser, te@dbs.uni-hannover.de. Public domain. + +# invoke the right shell: + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +export PATH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +# the version string +version=1184605103 # seconds since `00:00:00 1970-01-01 UTC' + # date '+%s' (with GNU date) + +: ${PAGER=more} +progname=texconfig-dialog +tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/tcdtmp.$$ +log=$tmpdir/log +tmpmenu=$tmpdir/tmpmenu +needsCleanup=false + +############################################################################### +# cleanup() +# clean up the temp area and exit with proper exit status +############################################################################### +cleanup() +{ + rc=$1 + $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ + && { cd / && rm -rf "$tmpdir"; } + termCtl reset + (exit $rc); exit $rc +} + +############################################################################### +# setupTmpDir() +# set up a temp directory and a trap to remove it +############################################################################### +setupTmpDir() +{ + case $needsCleanup in + true) return;; + esac + + trap 'cleanup 1' 1 2 3 7 13 15 + needsCleanup=true + (umask 077; mkdir "$tmpdir") \ + || abort "could not create directory \`$tmpdir'" +} + +############################################################################### +# abort(errmsg) +# print `errmsg' to stderr and exit with error code 1 +############################################################################### +abort() +{ + echo "$progname: $1." >&2 + cleanup 1 +} + +logexec() +{ + (echo; echo ">>> Executing \`$@' <<<") >> $log + "$@" 2>&1 | tee -a $log +} + +############################################################################### +# runDialog(args, ...) +# execute the right dialog program with the right default parameters +############################################################################### +runDialog() +{ + termCtl clear + if test -n "$DIALOG_PROG"; then + $DIALOG_PROG --title "TeX setup utility" ${1+"$@"} + runDialogRc=$? + else + TERM=$DIALOG_TERM TERMINFO=$DIALOG_TERMINFO \ + tcdialog --title "TeX setup utility" ${1+"$@"} + runDialogRc=$? + fi + termCtl clear + (exit $runDialogRc) + return $runDialogRc +} + +############################################################################### +# findDialog(void) +# Some systems have their own dialog. Use it then and do not use +# faked TERM and TERMINFO variables when calling that dialog. +############################################################################### +findDialog() +{ + for bin in whiptail dialog + do + binLoc=`texconfig findprog $bin` + case $binLoc in + "") DIALOG_PROG="";; + *) DIALOG_PROG=$binLoc; break;; + esac + done + case $DIALOG_PROG in + "") + : ${DIALOG_TERMINFO=$TEXMFMAIN/texconfig} + : ${DIALOG_TERM=generic} + esac +} + +############################################################################### +# mktexdir(args) +# call mktexdir script, disable all features (to prevent sticky directories) +############################################################################### +mktexdir() +{ + MT_FEATURES=none "$TEXMFMAIN/web2c/mktexdir" "$@" >&2 +} + +############################################################################### +# termCtl(arg) +# some convenience utilities for terminal control +############################################################################### +termCtl() +{ + case $1 in + clear) + test -n "$NO_CLEAR" && return + tty >/dev/null 2>&1 && clear + ;; + reset) + test -n "$NO_CLEAR" && return + reset 2>/dev/null + stty sane 2>/dev/null + reset 2>/dev/null + termCtl clear + ;; + readln) + echo + echo "press return to continue..." + read a + ;; + esac +} + +############################################################################### +# menuMain(void) +# the main menu +############################################################################### +menuMain() +{ + cat <<-'eof' + The interactive texconfig utility will be started now. Make sure + your screen has at least 24 rows and 80 columns. If texconfig + crashes now, you can still set up your teTeX system using the + batch mode of texconfig. Try 'texconfig help' to get a list + of options. + + The interactive mode works best with a real vt100 terminal or + inside an xterm window. +eof + termCtl readln + + while :; do + logMessage='view logfile' + + runDialog \ + --menu " +Hint: all output of external commands (e.g. tex) is logged into +a file. You can look at this file using "LOG". If cursor keys make +trouble, you may have more luck with +/- and TAB. +" \ + 23 80 14 \ + EXIT 'exit' \ + PAPER 'default paper: A4 or letter (us)' \ + MODE 'default metafont mode and resolution' \ + REHASH 'rebuild filename databases' \ + FORMATS 'edit format definitions' \ + HYPHENATION 'customize hyphenation' \ + DVIPS 'dvips configuration' \ + FAQ 'view frequently asked questions + answers' \ + CONF 'show configuration' \ + LOG "$logMessage" \ + 2>"$tmpmenu" || break + + case `cat "$tmpmenu"` in + EXIT) + break + ;; + PAPER) + menuPaper + ;; + MODE) + menuMode + ;; + REHASH) + logexec texconfig rehash + termCtl readln + ;; + FORMATS) + texconfig formats + termCtl readln + ;; + HYPHENATION) + menuHyphenation + ;; + DVIPS) + menuDvips + ;; + FAQ) + texconfig faq + termCtl readln + ;; + CONF) + logexec texconfig conf + termCtl readln + ;; + LOG) + <"$log" eval $PAGER + termCtl readln + ;; + esac + done +} + +menuGetMode() +{ + # we need eval to get the command line right... :-( + eval \ + runDialog \ + --menu \"" +Chosse a mode to be used when metafont generates font bitmaps. The resolution is the most important point, but there might +be differences between modes of the same resolution. See the comments in the file modes.mf for more details. +\"" \ + 23 80 14 \ + `texconfig mode-list` 2>"$tmpmenu" +} + +menuMode() +{ + menuGetMode + mode=`cat "$tmpmenu"` + + if test -n "$mode"; then + logexec texconfig mode "$mode" + termCtl readln + fi +} + +menuDvips() +{ + menuDvipsDest=ps + + while :; do + case $menuDvipsDest in + ps) + menuDvipsPrinterOpt= + menuDvipsMsg=" +dvips GLOBAL section. Define the most common default settings (config.ps). +To define settings for a specific printer, first ADD a printer definition, +then CHANGE it. +" + ;; + *) + menuDvipsPrinterOpt="-P $menuDvipsDest" + menuDvipsMsg=" +dvips settings for printer $menuDvipsDest (config.$menuDvipsDest). Define +local settings for this printer. To switch back to global settings mode, +select GLOBAL. +" + ;; + esac + + runDialog \ + --menu "$menuDvipsMsg +You can use dvips for non PostScript printers, if you can setup your +printing system to convert PostScript to a format that your printer can +handle. Maybe, you can use GhostScript to do the conversion (if your +printer is supported)." \ + 23 80 9 \ + RETURN 'back to the main menu' \ + DEST 'define default destination of the generated Postscript' \ + MODE 'change metafont mode/resolution' \ + OFFSET 'shift output by some offset' \ + PAPER 'define the default paper' \ + GLOBAL 'change global settings (config.ps)' \ + CHANGE 'change printer settings (config.$PRINTER)' \ + ADD 'add a printer configuration' \ + DEL 'remove a printer configuration' \ + 2>"$tmpmenu" || break + + menuDvipsAns=`cat "$tmpmenu"` + case $menuDvipsAns in + RETURN) + break + ;; + DEST) + runDialog --inputbox "Enter the command to print. + +In general, you need a command like 'lpr' or 'lpr -Pfoo'. + +NOTE: If you just press return, printing will be disabled and the output saved to a file by default. +" 23 80 2>"$tmpmenu" + if test $? = 0; then + menuDvipsAns=`cat "$tmpmenu"` + case $menuDvipsAns in + "") + menuDvipsPrintOpt=- + ;; + *) + menuDvipsPrintOpt=$menuDvipsAns + ;; + esac + logexec texconfig dvips $menuDvipsPrinterOpt printcmd "$menuDvipsPrintOpt" + termCtl readln + fi + ;; + MODE) + menuGetMode + mode=`cat "$tmpmenu"` + + if test -n "$mode"; then + logexec texconfig dvips $menuDvipsPrinterOpt mode "$mode" + termCtl readln + fi + ;; + OFFSET) + runDialog --inputbox "Enter a dimension pair (a rightwards offset and a downwards +offset), e.g. 2mm,-0.5in (right 2mm and up .5in):" 23 80 2>"$tmpmenu"; menuDvipsAns=`cat "$tmpmenu"` + case $menuDvipsAns in + "") : ;; + *) + logexec texconfig dvips $menuDvipsPrinterOpt offset "$menuDvipsAns" + termCtl readln + ;; + esac + ;; + PAPER) + eval runDialog \ + --menu \'\\n\\nChoose the default papersize definition for dvips.\\n\\n\' \ + 23 80 8 `texconfig dvips paper-list` \ + 2>"$tmpmenu" + paper=`cat "$tmpmenu"` + if test -n "$paper"; then + logexec texconfig dvips paper "$paper" + termCtl readln + fi + ;; + GLOBAL) + menuDvipsDest=ps + ;; + CHANGE) + runDialog --inputbox "Printer name (for future settings of DEST / MODE / OFFSET)" 23 80 2>"$tmpmenu" + menuDvipsAns=`cat $tmpmenu` + case $menuDvipsAns in + "") : ;; + *) menuDvipsDest=$menuDvipsAns;; + esac + ;; + ADD) + runDialog --inputbox "Printer name (for printer to add)" 23 80 2>"$tmpmenu" + menuDvipsAns=`cat $tmpmenu` + case $menuDvipsAns in + "") : ;; + *) + logexec texconfig dvips add $menuDvipsAns + termCtl readln + ;; + esac + ;; + DEL) + runDialog --inputbox "Printer name (for printer to delete)" 23 80 2>"$tmpmenu" + menuDvipsAns=`cat $tmpmenu` + case $menuDvipsAns in + "") : ;; + *) + logexec texconfig dvips del $menuDvipsAns + termCtl readln + ;; + esac + ;; + esac + done +} + +menuPaper() +{ + runDialog \ + --menu " +Select your default paper format. +" \ + 23 80 14 \ + RETURN 'return to the main menu' \ + A4 'ISO A4 (210x297mm)' \ + LETTER 'US (8.5x11in)' 2>"$tmpmenu" + + p=`cat "$tmpmenu"` + case $p in + A4) + logexec texconfig paper a4 + termCtl readln + ;; + LETTER) + logexec texconfig paper letter + termCtl readln + ;; + esac +} + +menuHyphenation() +{ + runDialog \ + --menu " +Choose format to set up hyphenation for. +" \ + 23 80 14 \ + `texconfig hyphen-list | sed 's@\(.*\)@\1 \1@'` 2>"$tmpmenu" + p=`cat "$tmpmenu"` + case $p in + "") + return + ;; + *) + texconfig hyphen "$p" + termCtl readln + esac +} + +# main() + +case $1 in + help|--help) + cat <<-eof + Usage: $progname [--help|--version] +eof + exit 0 + ;; + --version) + cat <<-eof + $progname version $version. +eof + exit 0 + ;; +esac + + +: ${TEXMFCONFIG=`kpsewhich -var-value=TEXMFCONFIG`} +: ${TEXMFVAR=`kpsewhich -var-value=TEXMFVAR`} +: ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`} +export TEXMFCONFIG TEXMFVAR TEXMFMAIN + +setupTmpDir +echo "$progname: started `date`" > $log +findDialog + +test -d "$TEXMFCONFIG" \ + || mktexdir "$TEXMFCONFIG" >/dev/null 2>&1 \ + || echo "$progname: directory \`$TEXMFCONFIG' (from TEXMFCONFIG variable) does not exist and cannot be created" >&2 + +canWriteConfig=false +if test -d "$TEXMFCONFIG"; then + if test -w "$TEXMFCONFIG"; then + canWriteConfig=true + else + echo "$progname: directory \`$TEXMFCONFIG' (from TEXMFCONFIG variable) is not writable." + echo "$progname: configuration data cannot be changed." >&2 + fi +fi + +test -d "$TEXMFVAR" \ + || mktexdir "$TEXMFVAR" >/dev/null 2>&1 \ + || echo "$progname: directory \`$TEXMFVAR' (from TEXMFVAR variable) does not exist and cannot be created" >&2 + +canWriteVardata=false +if test -d "$TEXMFVAR"; then + if test -w "$TEXMFVAR"; then + canWriteVardata=true + else + echo "$progname: directory \`$TEXMFVAR' (from TEXMFVAR variable) is not writable." + echo "$progname: cached variable runtime data files cannot be written." >&2 + fi +fi + +menuMain +cleanup 0 diff --git a/Master/bin/i386-cygwin/texconfig-sys b/Master/bin/i386-cygwin/texconfig-sys new file mode 100755 index 00000000000..8a88750098c --- /dev/null +++ b/Master/bin/i386-cygwin/texconfig-sys @@ -0,0 +1,32 @@ +#!/bin/sh +# $Id: texconfig-sys 5067 2007-09-30 18:06:26Z karl $ + +# texconfig-sys: Thomas Esser, public domain. + +# wrapper script for texconfig with TEXMFVAR and TEXMFCONFIG set to +# TEXMFSYSVAR / TEXMFSYSCONFIG + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +export PATH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +v=`kpsewhich -var-value TEXMFSYSVAR` +c=`kpsewhich -var-value TEXMFSYSCONFIG` + +TEXMFVAR="$v" +TEXMFCONFIG="$c" +texconfig_sys=1 +export TEXMFVAR TEXMFCONFIG + +exec texconfig ${1+"$@"} diff --git a/Master/bin/i386-cygwin/texcount b/Master/bin/i386-cygwin/texcount new file mode 120000 index 00000000000..dedfa7d2c3e --- /dev/null +++ b/Master/bin/i386-cygwin/texcount @@ -0,0 +1 @@ +../../texmf-dist/scripts/texcount/TeXcount.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texdoc b/Master/bin/i386-cygwin/texdoc new file mode 120000 index 00000000000..821fdbaa30e --- /dev/null +++ b/Master/bin/i386-cygwin/texdoc @@ -0,0 +1 @@ +../../texmf/scripts/texlive/texdoc.tlu
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texdoctk b/Master/bin/i386-cygwin/texdoctk new file mode 120000 index 00000000000..56729104154 --- /dev/null +++ b/Master/bin/i386-cygwin/texdoctk @@ -0,0 +1 @@ +../../texmf/scripts/tetex/texdoctk.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texexec b/Master/bin/i386-cygwin/texexec new file mode 120000 index 00000000000..36d22caefe7 --- /dev/null +++ b/Master/bin/i386-cygwin/texexec @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texexec
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texfind b/Master/bin/i386-cygwin/texfind new file mode 120000 index 00000000000..e450f1060a3 --- /dev/null +++ b/Master/bin/i386-cygwin/texfind @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texfind
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texfont b/Master/bin/i386-cygwin/texfont new file mode 120000 index 00000000000..a3756e037ce --- /dev/null +++ b/Master/bin/i386-cygwin/texfont @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texfont
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texhash b/Master/bin/i386-cygwin/texhash new file mode 120000 index 00000000000..fe296c273bb --- /dev/null +++ b/Master/bin/i386-cygwin/texhash @@ -0,0 +1 @@ +mktexlsr
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texi2dvi b/Master/bin/i386-cygwin/texi2dvi new file mode 100755 index 00000000000..877ea9599dd --- /dev/null +++ b/Master/bin/i386-cygwin/texi2dvi @@ -0,0 +1,1791 @@ +#! /bin/sh +# texi2dvi --- produce DVI (or PDF) files from Texinfo (or (La)TeX) sources. +# $Id: texi2dvi,v 1.133 2008/08/11 00:18:29 karl Exp $ +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, +# or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# Original author: Noah Friedman. +# +# Please send bug reports, etc. to bug-texinfo@gnu.org. +# If possible, please send a copy of the output of the script called with +# the `--debug' option when making a bug report. + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +# No failure shall remain unpunished. +set -e + +# This string is expanded by rcs automatically when this file is checked out. +rcs_revision='$Revision: 1.133 $' +rcs_version=`set - $rcs_revision; echo $2` +program=`echo $0 | sed -e 's!.*/!!'` + +build_mode=${TEXI2DVI_BUILD_MODE:-local} +build_dir=${TEXI2DVI_BUILD_DIRECTORY:-.} + +# Initialize variables for option overriding and otherwise. +# Don't use `unset' since old bourne shells don't have this command. +# Instead, assign them an empty value. +action=compile +batch=false # true for batch mode +debug=false +escape="\\" +expand= # t for expansion via makeinfo +includes= +line_error=true # Pass --file-line-error to TeX. +no_line_error=false # absolutely do not pass --file-line-error to TeX +oname= # --output +out_lang=dvi +quiet=false # by default let the tools' message be displayed +recode=false +set_language= +src_specials= +textra= # Extra TeX commands to insert in the input file. +txiprereq=19990129 # minimum texinfo.tex version with macro expansion +verb=false # true for verbose mode +translate_file= # name of charset translation file +recode_from= # if not empty, recode from this encoding to @documentencoding + +orig_pwd=`pwd` + +# We have to initialize IFS to space tab newline since we save and +# restore IFS and apparently POSIX allows stupid/broken behavior with +# empty-but-set IFS. +# http://lists.gnu.org/archive/html/automake-patches/2006-05/msg00008.html +# We need space, tab and new line, in precisely that order. And don't leave +# trailing blanks. +space=' ' +tab=' ' +newline=' +' +IFS="$space$tab$newline" + +# In case someone pedantic insists on using grep -E. +: ${EGREP=egrep} + +# Systems which define $COMSPEC or $ComSpec use semicolons to separate +# directories in TEXINPUTS -- except for Cygwin et al., where COMSPEC +# might be inherited, but : is used. +if test -n "$COMSPEC$ComSpec" \ + && uname | $EGREP -iv 'cygwin|mingw|djgpp' >/dev/null; then + path_sep=";" +else + path_sep=":" +fi + +# Pacify verbose cds. +CDPATH=${ZSH_VERSION+.}$path_sep + +# If $TEX is set to a directory, don't use it. +test -n "$TEX" && test -d "$TEX" && unset TEX + +# +## --------------------- ## +## Auxiliary functions. ## +## --------------------- ## + +# In case `local' is not supported by the shell, provide a function +# that simulates it by simply performing the assignments. This means +# that we must not expect `local' to work, i.e., we must not (i) rely +# on it during recursion, and (ii) have two local declarations of the +# same variable. (ii) is easy to check statically, and our test suite +# does make sure there is never twice a static local declaration of a +# variable. (i) cannot be checked easily, so just be careful. +# +# Note that since we might use a function simulating `local', we can +# no longer rely on the fact that no IFS-splitting is performed. So, +# while +# +# foo=$bar +# +# is fine (no IFS-splitting), never write +# +# local foo=$bar +# +# but rather +# +# local foo="$bar" +( + foo=bar + test_local () { + local foo=foo + } + test_local + test $foo = bar +) || local () { + case $1 in + *=*) eval "$1";; + esac +} + + +# cd_orig +# ------- +# Return to the original directory. +cd_orig () +{ + # In case $orig_pwd is on a different drive (for DOS). + cd / + + # Return to the original directory so that + # - the next file is processed in correct conditions + # - the temporary file can be removed + cd "$orig_pwd" || exit 1 +} + +# func_dirname FILE +# ----------------- +# Return the directory part of FILE. +func_dirname () +{ + dirname "$1" 2>/dev/null \ + || { echo "$1" | sed 's!/[^/]*$!!;s!^$!.!'; } +} + + +# absolute NAME -> ABS-NAME +# ------------------------- +# Return an absolute path to NAME. +absolute () +{ + case $1 in + [\\/]* | ?:[\\/]*) + # Absolute paths don't need to be expanded. + echo "$1" + ;; + *) local slashes + slashes=`echo "$1" | sed -n 's,.*[^/]\(/*\)$,\1,p'` + local rel + rel=$orig_pwd/`func_dirname "$1"` + if test -d "$rel"; then + (cd "$rel" 2>/dev/null && + local n + n=`pwd`/`basename "$1"`"$slashes" + echo "$n") + else + error 1 "not a directory: $rel" + fi + ;; + esac +} + + +# ensure_dir DIR1 DIR2... +# ----------------------- +# Make sure the directories exist. +ensure_dir () +{ + for dir + do + test -d "$dir" \ + || mkdir "$dir" \ + || error 1 "cannot create directory: $dir" + done +} + + +# error EXIT_STATUS LINE1 LINE2... +# -------------------------------- +# Report an error and exit with failure if EXIT_STATUS is non null. +error () +{ + local s="$1" + shift + report "$@" + if test "$s" != 0; then + exit $s + fi +} + + +# findprog PROG +# ------------- +# Return true if PROG is somewhere in PATH, else false. +findprog () +{ + local saveIFS="$IFS" + IFS=$path_sep # break path components at the path separator + for dir in $PATH; do + IFS=$saveIFS + # The basic test for an executable is `test -f $f && test -x $f'. + # (`test -x' is not enough, because it can also be true for directories.) + # We have to try this both for $1 and $1.exe. + # + # Note: On Cygwin and DJGPP, `test -x' also looks for .exe. On Cygwin, + # also `test -f' has this enhancement, bot not on DJGPP. (Both are + # design decisions, so there is little chance to make them consistent.) + # Thusly, it seems to be difficult to make use of these enhancements. + # + if { test -f "$dir/$1" && test -x "$dir/$1"; } || + { test -f "$dir/$1.exe" && test -x "$dir/$1.exe"; }; then + return 0 + fi + done + return 1 +} + +# report LINE1 LINE2... +# --------------------- +# Report some information on stderr. +report () +{ + for i in "$@" + do + echo >&2 "$0: $i" + done +} + + +# run COMMAND-LINE +# ---------------- +# Run the COMMAND-LINE verbosely, and catching errors as failures. +run () +{ + verbose "Running $@" + "$@" 2>&5 1>&2 || + error 1 "$1 failed" +} + + +# usage +# ----- +# Display usage and exit successfully. +usage () +{ + # We used to simply have `echo "$usage"', but coping with the + # changing behavior of `echo' is much harder than simply using a + # here-doc. + # + # echo '\noto' echo '\\noto' echo -e '\\noto' + # bash 3.1 \noto \\noto \noto + # bash 3.2 %oto \noto -e \noto + # + # where % denotes the eol character. + cat <<EOF +Usage: $program [OPTION]... FILE... + +Run each Texinfo or (La)TeX FILE through TeX in turn until all +cross-references are resolved, building all indices. The directory +containing each FILE is searched for included files. The suffix of FILE +is used to determine its language ((La)TeX or Texinfo). To process +(e)plain TeX files, set the environment variable LATEX=tex. + +In order to make texi2dvi a drop-in replacement of TeX/LaTeX in AUC-TeX, +the FILE may also be composed of the following simple TeX commands. + \`\\input{FILE}' the actual file to compile + \`\\nonstopmode' same as --batch + +Makeinfo is used to perform Texinfo macro expansion before running TeX +when needed. + +General options: + -b, --batch no interaction + -D, --debug turn on shell debugging (set -x) + -h, --help display this help and exit successfully + -o, --output=OFILE leave output in OFILE (implies --clean); + only one input FILE may be specified in this case + -q, --quiet no output unless errors (implies --batch) + -s, --silent same as --quiet + -v, --version display version information and exit successfully + -V, --verbose report on what is done + +TeX tuning: + -@ use @input instead of \input for preloaded Texinfo + --dvi output a DVI file [default] + --dvipdf output a PDF file via DVI (using dvipdf) + -e, -E, --expand force macro expansion using makeinfo + -I DIR search DIR for Texinfo files + -l, --language=LANG specify LANG for FILE, either latex or texinfo + --no-line-error do not pass --file-line-error to TeX + -p, --pdf use pdftex or pdflatex for processing + -r, --recode call recode before TeX to translate input + --recode-from=ENC recode from ENC to the @documentencoding + --src-specials pass --src-specials to TeX + -t, --command=CMD insert CMD in copy of input file + or --texinfo=CMD multiple values accumulate + --translate-file=FILE use given charset translation file for TeX + +Build modes: + --build=MODE specify the treatment of auxiliary files [$build_mode] + --tidy same as --build=tidy + -c, --clean same as --build=clean + --build-dir=DIR specify where the tidy compilation is performed; + implies --tidy; + defaults to TEXI2DVI_BUILD_DIRECTORY [$build_dir] + --mostly-clean remove the auxiliary files and directories + but not the output + +The MODE specifies where the TeX compilation takes place, and, as a +consequence, how auxiliary files are treated. The build mode +can also be set using the environment variable TEXI2DVI_BUILD_MODE. + +Valid MODEs are: + \`local' compile in the current directory, leaving all the auxiliary + files around. This is the traditional TeX use. + \`tidy' compile in a local *.t2d directory, where the auxiliary files + are left. Output files are copied back to the original file. + \`clean' same as \`tidy', but remove the auxiliary directory afterwards. + Every compilation therefore requires the full cycle. + +Using the \`tidy' mode brings several advantages: + - the current directory is not cluttered with plethora of temporary files. + - clutter can be even reduced using --build-dir=dir: all the *.t2d + directories are stored there. + - clutter can be reduced to zero using, e.g., --build-dir=/tmp/\$USER.t2d + or --build-dir=\$HOME/.t2d. + - the output file is updated after every succesful TeX run, for + sake of concurrent visualization of the output. In a \`local' build + the viewer stops during the whole TeX run. + - if the compilation fails, the previous state of the output file + is preserved. + - PDF and DVI compilation are kept in separate subdirectories + preventing any possibility of auxiliary file incompatibility. + +On the other hand, because \`tidy' compilation takes place in another +directory, occasionally TeX won't be able to find some files (e.g., when +using \\graphicspath): in that case use -I to specify the additional +directories to consider. + +The values of the BIBTEX, LATEX (or PDFLATEX), MAKEINDEX, MAKEINFO, +TEX (or PDFTEX), TEXINDEX, and THUMBPDF environment variables are used +to run those commands, if they are set. Any CMD strings are added +after @setfilename for Texinfo input, in the first line for LaTeX input. + +Email bug reports to <bug-texinfo@gnu.org>, +general questions and discussion to <help-texinfo@gnu.org>. +Texinfo home page: http://www.gnu.org/software/texinfo/ +EOF + exit 0 +} + + +# verbose WORD1 WORD2 +# ------------------- +# Report some verbose information. +verbose () +{ + if $verb; then + echo >&2 "$0: $@" + fi +} + + +# version +# ------- +# Display version info and exit succesfully. +version () +{ + cat <<EOF +texi2dvi (GNU Texinfo 4.12+) $rcs_version + +Copyright (C) 2008 Free Software Foundation, Inc. +License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law. +EOF + exit 0 +} + + +## ---------------- ## +## Handling lists. ## +## ---------------- ## + + +# list_append LIST-NAME ELEM +# -------------------------- +# Set LIST-NAME to its former contents, with ELEM appended. +list_append () +{ + local la_l="$1" + shift + eval set X \$$la_l "$@" + shift + eval $la_l=\""$@"\" +} + + +# list_concat_dirs LIST-NAME DIR-LIST +# ----------------------------------- +# Append to LIST-NAME all the components (included empty) from +# the $path_sep separated list DIR-LIST. Make the paths absolute. +list_concat_dirs () +{ + local lcd_list="$1" + # Empty path components are meaningful to tex. We rewrite them as + # `EMPTY' so they don't get lost when we split on $path_sep. + # Hopefully no one will have an actual directory named EMPTY. + local replace_EMPTY="-e 's/^$path_sep/EMPTY$path_sep/g' \ + -e 's/$path_sep\$/${path_sep}EMPTY/g' \ + -e 's/$path_sep$path_sep/${path_sep}EMPTY:/g'" + save_IFS=$IFS + IFS=$path_sep + set x `echo "$2" | eval sed $replace_EMPTY`; shift + IFS=$save_IFS + local dir + for dir + do + case $dir in + EMPTY) + list_append $lcd_list "" + ;; + *) + if test -d $dir; then + dir=`absolute "$dir"` + list_append $lcd_list "$dir" + fi + ;; + esac + done +} + + +# list_prefix LIST-NAME SEP -> STRING +# ----------------------------------- +# Return a string that is composed of the LIST-NAME with each item +# preceded by SEP. +list_prefix () +{ + local lp_p="$2" + eval set X \$$1 + shift + local lp_res + for i + do + lp_res="$lp_res \"$lp_p\" \"$i\"" + done + echo "$lp_res" +} + +# list_infix LIST-NAME SEP -> STRING +# ---------------------------------- +# Same as list_prefix, but a separator. +list_infix () +{ + eval set X \$$1 + shift + local la_IFS="$IFS" + IFS=$path_sep + echo "$*" + IFS=$la_IFS +} + +# list_dir_to_abs LIST-NAME +# ------------------------- +# Convert the list to using only absolute dir names. +# Currently unused, but should replace absolute_filenames some day. +list_dir_to_abs () +{ + local ld_l="$1" + eval set X \$$ld_l + shift + local ld_res + for dir + do + dir=`absolute "$dir"` + test -d "$dir" || continue + ld_res="$ld_res \"$dir\"" + done + set X $ld_res; shift + eval $ld_l=\"$@\" +} + + +## ------------------------------ ## +## Language auxiliary functions. ## +## ------------------------------ ## + +# out_lang_tex +# ------------ +# Return the tex output language (DVI or PDF) for $OUT_LANG. +out_lang_tex () +{ + case $out_lang in + dvi | ps | dvipdf ) echo dvi;; + pdf ) echo $out_lang;; + html | info | text ) echo $out_lang;; + *) error 1 "$0: invalid out_lang: $1";; + esac +} + + +# out_lang_ext +# ------------ +# Return the extension for $OUT_LANG. +out_lang_ext () +{ + case $out_lang in + dvipdf ) echo pdf;; + dvi | html | info | pdf | ps | text ) echo $out_lang;; + *) error 1 "$0: invalid out_lang: $1";; + esac +} + + +## ------------------------- ## +## TeX auxiliary functions. ## +## ------------------------- ## + +# Save TEXINPUTS so we can construct a new TEXINPUTS path for each file. +# Likewise for bibtex and makeindex. +tex_envvars="BIBINPUTS BSTINPUTS DVIPSHEADERS INDEXSTYLE MFINPUTS MPINPUTS \ +TEXINPUTS TFMFONTS" +for var in $tex_envvars; do + eval ${var}_orig=\$$var + export $var +done + + +# absolute_filenames TEX-PATH -> TEX-PATH +# --------------------------------------- +# Convert relative paths to absolute paths, so we can run in another +# directory (e.g., in tidy build mode, or during the macro-support +# detection). Prepend ".". +absolute_filenames () +{ + # Empty path components are meaningful to tex. We rewrite them as + # `EMPTY' so they don't get lost when we split on $path_sep. + # Hopefully no one will have an actual directory named EMPTY. + local replace_empty="-e 's/^$path_sep/EMPTY$path_sep/g' \ + -e 's/$path_sep\$/${path_sep}EMPTY/g' \ + -e 's/$path_sep$path_sep/${path_sep}EMPTY:/g'" + local res + res=`echo "$1" | eval sed $replace_empty` + save_IFS=$IFS + IFS=$path_sep + set x $res; shift + res=. + for dir + do + case $dir in + EMPTY) + res=$res$path_sep + ;; + *) + if test -d "$dir"; then + res=$res$path_sep`absolute "$dir"` + else + # Even if $dir is not a directory, preserve it in the path. + # It might contain metacharacters that TeX will expand in + # turn, e.g., /some/path/{a,b,c}. This will not get the + # implicit absolutification of the path, but we can't help that. + res=$res$path_sep$dir + fi + ;; + esac + done + echo "$res" +} + + +# output_base_name FILE +# --------------------- +# The name of FILE, possibly renamed to satisfy --output. +output_base_name () +{ + case $oname in + '') echo "$1";; + *) local out_noext + out_noext=`echo "$oname" | sed 's/\.[^.]*$//'` + local file_ext + file_ext=`echo "$1" | sed 's/^.*\.//'` + echo "$out_noext.$file_ext" + ;; + esac +} + + +# move_to_dest FILE... +# -------------------- +# Move FILE to the place where the user expects it. Truly move it, that +# is, it must not remain in its build location unless that is also the +# output location. (Otherwise it might appear as an extra file in make +# distcheck.) +# +# FILE can be the principal output (in which case -o directly applies), or +# an auxiliary file with the same base name. +move_to_dest () +{ + local dest + local destfile + local destdir + local destbase + local sourcedir + local sourcebase + + for file + do + case $tidy:$oname in + true:) dest=$orig_pwd;; + false:) dest=;; + *:*) dest=`output_base_name "$file"`;; + esac + if test ! -f "$file"; then + error 1 "no such file or directory: $file" + fi + if test -n "$dest"; then + # We need to know whether $dest is a directory. + if test -d "$dest"; then + destdir=$dest + destfile=$dest/$file + else + destdir="`dirname $dest`" + destfile=$dest + fi + # We want to compare the source location and the output location, + # and if they are different, do the move. But if they are the + # same, we must preserve the source. Since we can't assume + # stat(1) or test -ef is available, resort to comparing the + # directory names, canonicalized with pwd. We can't use cmp -s + # since the output file might not actually change from run to run; + # e.g., TeX DVI output is timestamped to only the nearest minute. + destdir=`cd $destdir && pwd` + destbase=`basename $destfile` + # + sourcedir=`dirname $file` + sourcedir=`cd $sourcedir && pwd` + sourcebase=`basename $file` + # + if test "$sourcedir/$sourcebase" != "$destdir/$destbase"; then + verbose "Moving $file to $destfile" + rm -f "$destfile" + mv "$file" "$destfile" + fi + fi + done +} + + +## --------------------- ## +## Managing xref files. ## +## --------------------- ## + +# aux_file_p FILE +# --------------- +# Return with success with FILE is an aux file. +aux_file_p () +{ + test -f "$1" || return 1 + case $1 in + *.aux) return 0;; + *) return 1;; + esac +} + +# bibaux_file_p FILE +# ------------------ +# Return with success with FILE is an aux file containing citation +# requests. +bibaux_file_p () +{ + test -s "$1" || return 1 + if (grep '^\\bibstyle[{]' "$1" \ + && grep '^\\bibdata[{]' "$1" \ + ## The following line is suspicious: fails when there + ## are citations in sub aux files. We need to be + ## smarter in this case. + ## && grep '^\\citation[{]' "$f" + ) >&6 2>&1; + then + return 0 + fi + return 1 +} + +# index_file_p FILE +# ----------------- +# Return with success with FILE is an index file. +# When index.sty is used, there is a space before the brace. +index_file_p () +{ + test -f "$1" || return 1 + case `sed '1q' "$1"` in + "\\entry{"*|"\\indexentry{"*|"\\indexentry {"*) return 0;; + *) return 1;; + esac +} + +# xref_file_p FILE +# ---------------- +# Return with success if FILE is an xref file (indexes, tables and lists). +xref_file_p () +{ + test -f "$1" || return 1 + # If the file is not suitable to be an index or xref file, don't + # process it. It's suitable if the first character is a + # backslash or right quote or at, as long as the first line isn't + # \input texinfo. + case `sed '1q' "$1"` in + "\\input texinfo"*) return 1;; + [\\''@]*) return 0;; + *) return 1;; + esac +} + + +# generated_files_get FILENAME-NOEXT [PREDICATE-FILTER] +# ----------------------------------------------------- +# Return the list of files generated by the TeX compilation of FILENAME-NOEXT. +generated_files_get () +{ + local filter=true + if test -n "$2"; then + filter=$2 + fi + + # Gather the files created by TeX. + ( + if test -f "$1.log"; then + sed -n -e "s,^\\\\openout.* = \`\\(.*\\)'\\.,\\1,p" "$1.log" + fi + echo "$1.log" + ) | + # Depending on these files, infer outputs from other tools. + while read file; do + echo $file + case $in_lang in + texinfo) + # texindex: texinfo.cp -> texinfo.cps + if index_file_p $file; then + echo ${file}s + fi + ;; + latex) + if aux_file_p $file; then + # bibtex: *.aux -> *.bbl and *.blg. + echo $file | sed 's/^\(.*\)\.aux$/\1.bbl/' + echo $file | sed 's/^\(.*\)\.aux$/\1.blg/' + # -recorder: .fls + echo $file | sed 's/^\(.*\)\.aux$/\1.fls/' + fi + ;; + esac + done | + # Filter existing files matching the criterion. + # + # With an input file name containing a space, this produces a + # "command not found" message (and filtering is ineffective). + # The situation with a newline is presumably even worse. + while read file; do + if $filter "$file"; then + echo $file + fi + done | + sort | + # Some files are opened several times, e.g., listings.sty's *.vrb. + uniq +} + + +# xref_files_save +# --------------- +# Save the xref files. +xref_files_save () +{ + # Save copies of auxiliary files for later comparison. + xref_files_orig=`generated_files_get "$in_noext" xref_file_p` + if test -n "$xref_files_orig"; then + verbose "Backing up xref files: $xref_files_orig" + # The following line improves `cp $xref_files_orig "$work_bak"' + # by preserving the directory parts. Think of + # cp chap1/main.aux chap2/main.aux $work_bak. + # + # Users may have, e.g., --keep-old-files. Don't let this interfere. + # (Don't use unset for the sake of ancient shells.) + TAR_OPTIONS=; export TAR_OPTIONS + tar cf - $xref_files_orig | (cd "$work_bak" && tar xf -) + fi +} + + +# xref_files_changed +# ------------------ +# Whether the xref files were changed since the previous run. +xref_files_changed () +{ + # LaTeX (and the package changebar) report in the LOG file if it + # should be rerun. This is needed for files included from + # subdirs, since texi2dvi does not try to compare xref files in + # subdirs. Performing xref files test is still good since LaTeX + # does not report changes in xref files. + if grep "Rerun to get" "$in_noext.log" >&6 2>&1; then + return 0 + fi + + # If old and new lists don't at least have the same file list, + # then one file or another has definitely changed. + xref_files_new=`generated_files_get "$in_noext" xref_file_p` + verbose "Original xref files = $xref_files_orig" + verbose "New xref files = $xref_files_new" + if test "x$xref_files_orig" != "x$xref_files_new"; then + return 0 + fi + + # Compare each file until we find a difference. + for this_file in $xref_files_new; do + verbose "Comparing xref file `echo $this_file | sed 's|\./||g'` ..." + # cmp -s returns nonzero exit status if files differ. + if cmp -s "$this_file" "$work_bak/$this_file"; then :; else + verbose "xref file `echo $this_file | sed 's|\./||g'` differed ..." + if $debug; then + diff -u "$work_bak/$this_file" "$this_file" + fi + return 0 + fi + done + + # No change. + return 1 +} + + + +## ----------------------- ## +## Running the TeX suite. ## +## ----------------------- ## + + + +# run_tex () +# ---------- +# Run TeX as "$tex $in_input", taking care of errors and logs. +run_tex () +{ + case $in_lang:`out_lang_tex` in + latex:dvi) tex=${LATEX:-latex};; + latex:pdf) tex=${PDFLATEX:-pdflatex};; + texinfo:dvi) + # MetaPost also uses the TEX environment variable. If the user + # has set TEX=latex for that reason, don't bomb out. + case $TEX in + *latex) tex=tex;; # don't bother trying to find etex + *) tex=$TEX + esac;; + texinfo:pdf) tex=$PDFTEX;; + + *) error 1 "$0: $out_lang not supported for $in_lang";; + esac + + # Beware of aux files in subdirectories that require the + # subdirectory to exist. + case $in_lang:$tidy in + latex:true) + sed -n 's|^[ ]*\\include{\(.*\)/.*}.*|\1|p' "$in_input" | + sort -u | + while read d + do + ensure_dir "$work_build/$d" + done + ;; + esac + + # Note that this will be used via an eval: quote properly. + local cmd="$tex" + + # If possible, make TeX report error locations in GNU format. + if test "${tex_help:+set}" != set; then + # Go to a temporary directory to try --help, since old versions that + # don't accept --help will generate a texput.log. + tex_help_dir=$t2ddir/tex_help + ensure_dir "$tex_help_dir" + tex_help=`cd "$tex_help_dir" >&6 && $tex --help </dev/null 2>&1` + fi + if $no_line_error; then :; else + # The mk program and perhaps others want to parse TeX's + # original error messages. + case $line_error:$tex_help in + true:*file-line-error*) cmd="$cmd --file-line-error";; + esac + fi + + # Tell TeX about TCX file, if specified. + test -n "$translate_file" && cmd="$cmd --translate-file=$translate_file" + + # Tell TeX to make source specials (for backtracking from output to + # source, given a sufficiently smart editor), if specifed. + test -n "$src_specials" && cmd="$cmd $src_specials" + + # Tell TeX to be batch if requested. + if $batch; then + # \batchmode does not show terminal output at all, so we don't + # want that. And even in batch mode, TeX insists on having input + # from the user. Close its stdin to make it impossible. + cmd="$cmd </dev/null '${escape}nonstopmode' '${escape}input'" + fi + + # we'd like to handle arbitrary input file names, such as a~b.tex. + # This isn't a general way to do it :), though it does work, kind of. + # cmd="$cmd '${escape}catcode126=12 \input '" + + # TeX's \input does not (easily or reliably) support whitespace + # characters or other special characters in file names. Our intensive + # use of absolute file names makes this worse: the enclosing directory + # names may include white spaces. Improve the situation using a + # symbolic link to the filename in the current directory, in tidy mode + # only. Do not alter in_input. + # + # The filename is almost always tokenized using plain TeX conventions + # (the exception would be if the user made a texinfo.fmt file). Not + # all the plain TeX special characters cause trouble, but there's no + # harm in making the link. + # + case $tidy:`func_dirname "$in_input"` in + true:*["$space$tab$newline\"#\$%\\^_{}"]*) + _run_tex_file_name=`basename "$in_input"` + if test ! -f "$_run_tex_file_name"; then + # It might not be a file, clear it. + run rm -f "$_run_tex_file_name" + run ln -s "$in_input" + fi + cmd="$cmd '$_run_tex_file_name'" + ;; + + *) + cmd="$cmd '$in_input'" + ;; + esac + + verbose "$0: Running $cmd ..." + if eval "$cmd" >&5; then + case $out_lang in + dvi | pdf ) move_to_dest "$in_noext.$out_lang";; + esac + else + error 1 "$tex exited with bad status, quitting." + fi +} + +# run_bibtex () +# ------------- +# Run bibtex on current file. +# - If its input (AUX) exists. +# - If some citations are missing (LOG contains `Citation'). +# or the LOG complains of a missing .bbl +# +# Don't try to be too smart: +# +# 1. Running bibtex only if the bbl file exists and is older than +# the LaTeX file is wrong, since the document might include files +# that have changed. +# +# 3. Because there can be several AUX (if there are \include's), +# but a single LOG, looking for missing citations in LOG is +# easier, though we take the risk to match false messages. +run_bibtex () +{ + case $in_lang in + latex) bibtex=${BIBTEX:-bibtex};; + texinfo) return;; + esac + + # "Citation undefined" is for LaTeX, "Undefined citation" for btxmac.tex. + # The no .aux && \bibdata test is also for btxmac, in case it was the + # first run of a bibtex-using document. Otherwise, it's possible that + # bibtex would never be run. + if test -r "$in_noext.aux" \ + && test -r "$in_noext.log" \ + && (grep 'Warning:.*Citation.*undefined' "$in_noext.log" \ + || grep '.*Undefined citation' "$in_noext.log" \ + || grep 'No file .*\.bbl\.' "$in_noext.log") \ + || (grep 'No \.aux file' "$in_noext.log" \ + && grep '^\\bibdata' "$in_noext.aux") \ + >&6 2>&1; \ + then + for f in `generated_files_get "$in_noext" bibaux_file_p` + do + run $bibtex "$f" + done + fi +} + +# run_index () +# ------------ +# Run texindex (or makeindex) on current index files. If they already +# exist, and after running TeX a first time the index files don't +# change, then there's no reason to run TeX again. But we won't know +# that if the index files are out of date or nonexistent. +run_index () +{ + case $in_lang in + latex) texindex=${MAKEINDEX:-makeindex};; + texinfo) texindex=${TEXINDEX:-texindex};; + esac + index_files=`generated_files_get $in_noext index_file_p` + if test -n "$texindex" && test -n "$index_files"; then + run $texindex $index_files + fi +} + + +# run_thumbpdf () +# --------------- +run_thumbpdf () +{ + if test `out_lang_tex` = pdf \ + && test -r "$in_noext.log" \ + && grep 'thumbpdf\.sty' "$in_noext.log" >&6 2>&1; \ + then + thumbpdf=${THUMBPDF:-thumbpdf} + verbose "Running $thumbpdf $in_noext ..." + if $thumbpdf "$in_noext" >&5; then + run_tex + else + report "$thumbpdf exited with bad status." \ + "Ignoring its output." + fi + fi +} + + +# run_dvipdf FILE.dvi +# ------------------- +# Convert FILE.dvi to FILE.pdf. +run_dvipdf () +{ + # Find which dvi->pdf program is available. + if test -z "$dvipdf"; then + for i in "$DVIPDF" dvipdfmx dvipdfm dvipdf dvi2pdf dvitopdf; + do + if findprog $i; then + dvipdf=$i + fi + done + fi + # These tools have varying interfaces, some 'input output', others + # 'input -o output'. They all seem to accept 'input' only, + # outputting using the expected file name. + run $dvipdf "$1" + if test ! -f `echo "$1" | sed -e 's/\.dvi$/.pdf/'`; then + error 1 "$0: cannot find output file" + fi +} + +# run_tex_suite () +# ---------------- +# Run the TeX tools until a fix point is reached. +run_tex_suite () +{ + # Move to the working directory. + if $tidy; then + verbose "cd $work_build" + cd "$work_build" || exit 1 + fi + + # Count the number of cycles. + local cycle=0 + + while :; do + cycle=`expr $cycle + 1` + verbose "Cycle $cycle for $command_line_filename" + + xref_files_save + + # We run bibtex first, because I can see reasons for the indexes + # to change after bibtex is run, but I see no reason for the + # converse. + run_bibtex + run_index + run_core_conversion + + xref_files_changed || break + done + + # If we were using thumbpdf and producing PDF, then run thumbpdf + # and TeX one last time. + run_thumbpdf + + # Install the result if we didn't already (i.e., if the output is + # dvipdf or ps). + case $out_lang in + dvipdf) + run_dvipdf "$in_noext.`out_lang_tex`" + move_to_dest "$in_noext.`out_lang_ext`" + ;; + ps) + dvips -o "$in_noext.`out_lang_ext`" "$in_noext.`out_lang_tex`" + move_to_dest "$in_noext.`out_lang_ext`" + ;; + esac + + cd_orig +} + +## -------------------------------- ## +## TeX processing auxiliary tools. ## +## -------------------------------- ## + + +# A sed script that preprocesses Texinfo sources in order to keep the +# iftex sections only. We want to remove non TeX sections, and comment +# (with `@c texi2dvi') TeX sections so that makeinfo does not try to +# parse them. Nevertheless, while commenting TeX sections, don't +# comment @macro/@end macro so that makeinfo does propagate them. +# Unfortunately makeinfo --iftex --no-ifinfo doesn't work well enough +# (yet), makeinfo can't parse the TeX commands, so work around with sed. +# +comment_iftex=\ +'/^@tex/,/^@end tex/{ + s/^/@c texi2dvi/ +} +/^@iftex/,/^@end iftex/{ + s/^/@c texi2dvi/ + /^@c texi2dvi@macro/,/^@c texi2dvi@end macro/{ + s/^@c texi2dvi// + } +} +/^@ifnottex/,/^@end ifnottex/{ + s/^/@c (texi2dvi)/ +} +/^@ifinfo/,/^@end ifinfo/{ + /^@node/p + /^@menu/,/^@end menu/p + t + s/^/@c (texi2dvi)/ +} +s/^@ifnotinfo/@c texi2dvi@ifnotinfo/ +s/^@end ifnotinfo/@c texi2dvi@end ifnotinfo/' + +# Uncommenting is simple: Remove any leading `@c texi2dvi'. +uncomment_iftex='s/^@c texi2dvi//' + + +# run_makeinfo () +# --------------- +# Expand macro commands in the original source file using Makeinfo. +# Always use `end' footnote style, since the `separate' style +# generates different output (arguably this is a bug in -E). Discard +# main info output, the user asked to run TeX, not makeinfo. +run_makeinfo () +{ + test $in_lang = texinfo \ + || return 0 + + # Unless required by the user, makeinfo expansion is wanted only + # if texinfo.tex is too old. + if test "$expand" = t; then + makeinfo=${MAKEINFO:-makeinfo} + else + # Check if texinfo.tex performs macro expansion by looking for + # its version. The version is a date of the form YEAR-MO-DA. + # We don't need to use [0-9] to match the digits since anyway + # the comparison with $txiprereq, a number, will fail with non + # digits. + # Run in a temporary directory to avoid leaving files. + version_test_dir=$t2ddir/version_test + ensure_dir "$version_test_dir" + ( + cd "$version_test_dir" + echo '\input texinfo.tex @bye' >txiversion.tex + # Be sure that if tex wants to fail, it is not interactive: + # close stdin. + $TEX txiversion.tex </dev/null >txiversion.out 2>txiversion.err + ) + if test $? != 0; then + cat "$version_test_dir/txiversion.out" + cat "$version_test_dir/txiversion.err" >&2 + error 1 "texinfo.tex appears to be broken, quitting." + fi + eval `sed -n 's/^.*\[\(.*\)version \(....\)-\(..\)-\(..\).*$/txiformat=\1 txiversion="\2\3\4"/p' "$version_test_dir/txiversion.out"` + verbose "texinfo.tex preloaded as \`$txiformat', version is \`$txiversion' ..." + if test "$txiprereq" -le "$txiversion" >&6 2>&1; then + makeinfo= + else + makeinfo=${MAKEINFO:-makeinfo} + fi + # As long as we had to run TeX, offer the user this convenience: + if test "$txiformat" = Texinfo; then + escape=@ + fi + fi + + if test -n "$makeinfo"; then + # in_src: the file with macros expanded. + # Use the same basename to generate the same aux file names. + work_src=$workdir/src + ensure_dir "$work_src" + in_src=$work_src/$in_base + local miincludes + miincludes=`list_prefix includes -I` + verbose "Macro-expanding $command_line_filename to $in_src ..." + # eval $makeinfo because it might be defined as something complex + # (running missing) and then we end up with things like '"-I"', + # and "-I" (including the quotes) is not an option name. This + # happens with gettext 0.14.5, at least. + sed "$comment_iftex" "$command_line_filename" \ + | eval $makeinfo --footnote-style=end -I "$in_dir" $miincludes \ + -o /dev/null --macro-expand=- \ + | sed "$uncomment_iftex" >"$in_src" + # Continue only if everything succeeded. + if test $? -ne 0 \ + || test ! -r "$in_src"; then + verbose "Expansion failed, ignored..."; + else + in_input=$in_src + fi + fi +} + +# insert_commands () +# ------------------ +# Used most commonly for @finalout, @smallbook, etc. +insert_commands () +{ + local textra_cmd + case $in_lang in + latex) textra_cmd=1i;; + texinfo) textra_cmd='/^@setfilename/a';; + *) error 1 "internal error, unknown language: $in_lang";; + esac + + if test -n "$textra"; then + # _xtr. The file with the user's extra commands. + work_xtr=$workdir/xtr + in_xtr=$work_xtr/$in_base + ensure_dir "$work_xtr" + verbose "Inserting extra commands: $textra" + sed "$textra_cmd\\ +$textra" "$in_input" >"$in_xtr" + in_input=$in_xtr + fi +} + +# run_recode () +# ------------- +# If this is a Texinfo file with a specified input encoding, and +# recode is available, then recode to plain 7 bit Texinfo. +run_recode () +{ + local from + local to + + if test $in_lang = texinfo; then + pgm='s/^ *@documentencoding *\([^ ][^ ]*\) *$/\1/ + t found + d + :found + q' + encoding=`sed -e "$pgm" "$in_input"` + if $recode && test -n "$encoding" && findprog recode; then + if test -n "$recode_from"; then + from=$recode_from + to=$encoding + else + from=$encoding + to=$texinfo + fi + verbose "Recoding from $from to $to." + # _rcd. The Texinfo file recoded in 7bit. + work_rcd=$workdir/recode + in_rcd=$work_rcd/$in_base + ensure_dir "$work_rcd" + if recode "$encoding..$to" <"$in_input" >"$in_rcd" \ + && test -s "$in_rcd"; then + in_input=$in_rcd + else + verbose "Recoding failed, using original input." + fi + fi + fi +} + +# compute_language FILENAME +# ------------------------- +# Return the short string describing the language in which FILENAME +# is written: `texinfo' or `latex'. +compute_language () +{ + # If the user explicitly specified the language, use that. + # Otherwise, if the first line is \input texinfo, assume it's texinfo. + # Otherwise, guess from the file extension. + if test -n "$set_language"; then + echo $set_language + elif sed 1q "$1" | grep 'input texinfo' >&6; then + echo texinfo + else + # Get the type of the file (latex or texinfo) from the given language + # we just guessed, or from the file extension if not set yet. + case $1 in + *.ltx | *.tex | *.drv | *.dtx) echo latex;; + *) echo texinfo;; + esac + fi +} + + +# run_hevea (MODE) +# ---------------- +# Convert to HTML/INFO/TEXT. +# +# Don't pass `-noiso' to hevea: it's useless in HTML since anyway the +# charset is set to latin1, and troublesome in other modes since +# accented characters loose their accents. +# +# Don't pass `-o DEST' to hevea because in that case it leaves all its +# auxiliary files there too... Too bad, because it means we will need +# to handle images some day. +run_hevea () +{ + local hevea="${HEVEA:-hevea}" + local run_hevea="$hevea" + + case $1 in + html) ;; + text|info) run_hevea="$run_hevea -$1";; + *) error 1 "run_hevea: invalid argument: $1";; + esac + + # Compiling to the tmp directory enables to preserve a previous + # successful compilation. + run_hevea="$run_hevea -fix -O -o '$out_base'" + run_hevea="$run_hevea `list_prefix includes -I` -I '$orig_pwd' " + run_hevea="$run_hevea '$in_input'" + + if $debug; then + run_hevea="$run_hevea -v -v" + fi + + verbose "running $run_hevea" + if eval "$run_hevea" >&5; then + # hevea leaves trailing white spaces, this is annoying. + case $1 in text|info) + perl -pi -e 's/[ \t]+$//g' "$out_base"*;; + esac + case $1 in + html|text) move_to_dest "$out_base";; + info) # There can be foo.info-1, foo.info-2 etc. + move_to_dest "$out_base"*;; + esac + else + error 1 "$hevea exited with bad status, quitting." + fi +} + + +# run_core_conversion () +# ---------------------- +# Run the TeX (or HeVeA). +run_core_conversion () +{ + case $in_lang:`out_lang_tex` in + *:dvi|*:pdf) + run_tex;; + latex:html|latex:text|latex:info) + run_hevea $out_lang;; + *) + error 1 "invalid input/output combination: $in_lang/$out_lang";; + esac +} + + +# compile () +# ---------- +# Run the full compilation chain, from pre-processing to installation +# of the output at its expected location. +compile () +{ + # Source file might include additional sources. + # We want `.:$orig_pwd' before anything else. (We'll add `.:' later + # after all other directories have been turned into absolute paths.) + # `.' goes first to ensure that any old .aux, .cps, + # etc. files in ${directory} don't get used in preference to fresher + # files in `.'. Include orig_pwd in case we are in clean build mode, where + # we've cd'd to a temp directory. + txincludes=`list_infix includes $path_sep` + common="$orig_pwd$path_sep$in_dir$path_sep$txincludes$path_sep" + for var in $tex_envvars; do + eval val="\$common\$${var}_orig" + # Convert relative paths to absolute paths, so we can run in another + # directory (e.g., in clean build mode, or during the macro-support + # detection). ".:" is added here. + val=`absolute_filenames "$val"` + eval $var="\"$val\"" + export $var + eval verbose \"$var=\'\$${var}\'\" + done + + # --expand + run_makeinfo + + # --command, --texinfo + insert_commands + + # --recode + run_recode + + # Run until a fix point is reached. + run_tex_suite +} + + +# remove FILES +# ------------ +remove () +{ + verbose "Removing" "$@" + rm -rf "$@" +} + + +# mostly_clean +# ------------ +# Remove auxiliary files and directories. Changes the current directory. +mostly_clean () +{ + cd_orig + set X "$t2ddir" + shift + $tidy || { + local log="$work_build/$in_noext.log" + set X ${1+"$@"} "$log" `generated_files_get "$work_build/$in_noext"` + shift + } + remove ${1+"$@"} +} + + +# cleanup () +# ---------- +# Remove what should be removed according to options. +# Called at the end of each compilation cycle, and at the end of +# the script. Changes the current directory. +cleanup () +{ + case $build_mode in + local) cd_orig; remove "$t2ddir";; + clean) mostly_clean;; + tidy) ;; + esac +} + + + +## ---------------------- ## +## Command line parsing. ## +## ---------------------- ## + +# Push a token among the arguments that will be used to notice when we +# ended options/arguments parsing. +# Use "set dummy ...; shift" rather than 'set - ..." because on +# Solaris set - turns off set -x (but keeps set -e). +# Use ${1+"$@"} rather than "$@" because Digital Unix and Ultrix 4.3 +# still expand "$@" to a single argument (the empty string) rather +# than nothing at all. +arg_sep="$$--$$" +set dummy ${1+"$@"} "$arg_sep"; shift + +# +# Parse command line arguments. +while test x"$1" != x"$arg_sep"; do + + # Handle --option=value by splitting apart and putting back on argv. + case "$1" in + --*=*) + opt=`echo "$1" | sed -e 's/=.*//'` + val=`echo "$1" | sed -e 's/[^=]*=//'` + shift + set dummy "$opt" "$val" ${1+"$@"}; shift + ;; + esac + + # This recognizes --quark as --quiet. So what. + case "$1" in + -@ ) escape=@;; + # Silently and without documentation accept -b and --b[atch] as synonyms. + -b | --batch) batch=true;; + --build) shift; build_mode=$1;; + --build-dir) shift; build_dir=$1; build_mode=tidy;; + -c | --clean) build_mode=clean;; + -D | --debug) debug=true;; + --dvi) out_lang=dvi;; + --dvipdf) out_lang=dvipdf;; + -e | -E | --expand) expand=t;; + -h | --help) usage;; + --html) out_lang=html;; + -I) shift; list_concat_dirs includes "$1";; + --info) out_lang=info;; + -l | --lang | --language) shift; set_language=$1;; + --mostly-clean) action=mostly-clean;; + --no-line-error) no_line_error=true;; + -o | --out | --output) + shift + # Make it absolute, just in case we also have --clean, or whatever. + oname=`absolute "$1"`;; + -p | --pdf) out_lang=pdf;; + --ps) out_lang=ps;; + -q | -s | --quiet | --silent) quiet=true; batch=true;; + -r | --recode) recode=true;; + --recode-from) shift; recode=true; recode_from="$1";; + --src-specials) src_specials=--src-specials;; + -t | --texinfo | --command ) shift; textra="$textra\\ +"`echo "$1" | sed 's/\\\\/\\\\\\\\/g'`;; + --text) out_lang=text;; + --translate-file ) shift; translate_file="$1";; + --tidy) build_mode=tidy;; + -v | --vers*) version;; + -V | --verb*) verb=true;; + --) # What remains are not options. + shift + while test x"$1" != x"$arg_sep"; do + set dummy ${1+"$@"} "$1"; shift + shift + done + break;; + -*) + error 1 "Unknown or ambiguous option \`$1'." \ + "Try \`--help' for more information." + ;; + *) set dummy ${1+"$@"} "$1"; shift;; + esac + shift +done +# Pop the token +shift + +# $tidy: compile in a t2d directory. +# $clean: remove all the aux files. +case $build_mode in + local) clean=false; tidy=false;; + tidy) clean=false; tidy=true;; + clean) clean=true; tidy=true;; + *) error 1 "invalid build mode: $build_mode";; +esac + +# Interpret remaining command line args as filenames. +case $# in + 0) + error 2 "Missing file arguments." "Try \`--help' for more information." + ;; + 1) ;; + *) + if test -n "$oname"; then + error 2 "Can't use option \`--output' with more than one argument." + fi + ;; +esac + + +# We can't do much without tex. +# +if findprog ${TEX:-tex}; then :; else cat <<EOM +You don't have a working TeX binary (${TEX:-tex}) installed anywhere in +your PATH, and texi2dvi cannot proceed without one. If you want to use +this script, you'll need to install TeX (if you don't have it) or change +your PATH or TEX environment variable (if you do). See the --help +output for more details. + +For information about obtaining TeX, please see http://www.tug.org. If +you happen to be using Debian, you can get it with this command: + apt-get install tetex-bin +EOM + exit 1 +fi + + +# We want to use etex (or pdftex) if they are available, and the user +# didn't explicitly specify. We don't check for elatex and pdfelatex +# because (as of 2003), the LaTeX team has asked that new distributions +# use etex by default anyway. +# +# End up with the TEX and PDFTEX variables set to what we are going to use. +if test -z "$TEX"; then + if findprog etex; then TEX=etex; else TEX=tex; fi +fi +# +if test -z "$PDFTEX"; then + if findprog pdfetex; then PDFTEX=pdfetex; else PDFTEX=pdftex; fi +fi + + +# File descriptor usage: +# 0 standard input +# 1 standard output (--verbose messages) +# 2 standard error +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 5 tools output (turned off by --quiet) +# 6 tracing/debugging (set -x output, etc.) + + +# Main tools' output (TeX, etc.) that TeX users are used to seeing. +# +# If quiet, discard, else redirect to the message flow. +if $quiet; then + exec 5>/dev/null +else + exec 5>&1 +fi + + +# Enable tracing, and auxiliary tools output. +# +# Should be used where you'd typically use /dev/null to throw output +# away. But sometimes it is convenient to see that output (e.g., from +# a grep) to aid debugging. Especially debugging at distance, via the +# user. +if $debug; then + exec 6>&1 + set -x +else + exec 6>/dev/null +fi + +# + +# input_file_name_decode +# ---------------------- +# Decode COMMAND_LINE_FILENAME, and compute: +# - COMMAND_LINE_FILENAME clean of TeX commands +# - IN_DIR +# The directory to the input file, possibly absolute if needed. +# - IN_DIR_ABS +# The absolute directory of the input file. +# - IN_BASE +# The input file base name (no directory part). +# - IN_NOEXT +# The input file name without extensions (nor directory part). +# - IN_INPUT +# Defaults to COMMAND_LINE_FILENAME, but might change if the +# input is preprocessed (recode etc.). With directory, possibly absolute. +input_file_name_decode () +{ + # See if we are run from within AUC-Tex, in which case we are + # passed `\input{FOO.tex}' or even `\nonstopmode\input{FOO.tex}'. + case $command_line_filename in + *\\nonstopmode*) + batch=true;; + esac + case $command_line_filename in + *\\input{*}*) + # Let AUC-TeX error parser deal with line numbers. + line_error=false + command_line_filename=`\ + expr X"$command_line_filename" : X'.*input{\([^}]*\)}'` + ;; + esac + + # If the COMMAND_LINE_FILENAME is not absolute (e.g., --debug.tex), + # prepend `./' in order to avoid that the tools take it as an option. + echo "$command_line_filename" | $EGREP '^(/|[A-z]:/)' >&6 \ + || command_line_filename="./$command_line_filename" + + # See if the file exists. If it doesn't we're in trouble since, even + # though the user may be able to reenter a valid filename at the tex + # prompt (assuming they're attending the terminal), this script won't + # be able to find the right xref files and so forth. + test -r "$command_line_filename" || + error 1 "cannot read $command_line_filename, skipping." + + # Get the name of the current directory. + in_dir=`func_dirname "$command_line_filename"` + in_dir_abs=`absolute "$in_dir"` + # In a clean build, we `cd', so get an absolute file name. + if $tidy; then + in_dir=$in_dir_abs + fi + + # Strip directory part but leave extension. + in_base=`basename "$command_line_filename"` + # Strip extension. + in_noext=`echo "$in_base" | sed 's/\.[^.]*$//'` + + # The normalized file name to compile. Must always point to the + # file to actually compile (in case of recoding, macro-expansion etc.). + in_input=$in_dir/$in_base + + + # Compute the output file name. + if test x"$oname" != x; then + out_name=$oname + else + out_name=$in_noext.`out_lang_ext` + fi + out_dir=`func_dirname "$out_name"` + out_dir_abs=`absolute "$out_dir"` + out_base=`basename "$out_name"` + out_noext=`echo "$out_base" | sed 's/\.[^.]*$//'` +} + + +## -------------- ## +## TeXify files. ## +## -------------- ## + +for command_line_filename +do + verbose "Processing $command_line_filename ..." + + input_file_name_decode + + # `texinfo' or `latex'? + in_lang=`compute_language "$command_line_filename"` + + # An auxiliary directory used for all the auxiliary tasks involved + # in compiling this document. + case $build_dir in + '' | . ) t2ddir=$out_noext.t2d ;; + *) # Avoid collisions between multiple occurrences of the same + # file. The sed expression is fragile if the cwd has + # active characters. + t2ddir=$build_dir/`echo "$out_dir_abs/$out_noext.t2d" | + sed "s,^$orig_pwd/,," | + sed 's,/,!,g'` + esac + # Remove it at exit if clean mode. + trap "cleanup" 0 1 2 15 + + ensure_dir "$build_dir" "$t2ddir" + + # We will change directory, better work with an absolute path... + t2ddir=`absolute "$t2ddir"` + # Sometimes there are incompatibilities between auxiliary files for + # DVI and PDF. The contents can also change whether we work on PDF + # and/or DVI. So keep separate spaces for each. + workdir=$t2ddir/`out_lang_tex` + ensure_dir "$workdir" + + # _build. In a tidy build, where the auxiliary files are output. + if $tidy; then + work_build=$workdir/build + else + work_build=. + fi + + # _bak. Copies of the previous auxiliary files (another round is + # run if they differ from the new ones). + work_bak=$workdir/bak + + # Make those directories. + ensure_dir "$work_build" "$work_bak" + + case $action in + compile) + # Compile the document. + compile + cleanup + ;; + + mostly-clean) + mostly_clean + ;; + esac +done + +verbose "done." +exit 0 # exit successfully, not however we ended the loop. diff --git a/Master/bin/i386-cygwin/texi2pdf b/Master/bin/i386-cygwin/texi2pdf new file mode 100755 index 00000000000..a030a74ed9f --- /dev/null +++ b/Master/bin/i386-cygwin/texi2pdf @@ -0,0 +1,19 @@ +#!/bin/sh +# $Id: texi2pdf,v 1.2 2005/01/28 01:52:04 karl Exp $ +# Written by Thomas Esser. Public domain. +# Execute texi2dvi --pdf. + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +texi2dvi --pdf ${1+"$@"} diff --git a/Master/bin/i386-cygwin/texindex.exe b/Master/bin/i386-cygwin/texindex.exe Binary files differnew file mode 100755 index 00000000000..ebbd7878382 --- /dev/null +++ b/Master/bin/i386-cygwin/texindex.exe diff --git a/Master/bin/i386-cygwin/texlinks b/Master/bin/i386-cygwin/texlinks new file mode 100755 index 00000000000..d8e51550924 --- /dev/null +++ b/Master/bin/i386-cygwin/texlinks @@ -0,0 +1,324 @@ +#!/bin/sh + +# Thomas Esser, 1999, 2002, 2003. public domain. + +# texlinks: script to maintain symlinks from format to engine. Interprets +# the lines given in fmtutil.cnf. + +# History: +# (Further changes in ChangeLog.) +# Tue Oct 9 14:23:01 BST 2007 +# Added unlink option (-u) to aid OpenBSD package uninstall +# Edd Barrett <vext01@gmail.com> +# Sun Aug 28 21:41:06 CEST 2005 +# remove special cases for csplain,cslatex,pdfcslatex,pdfcsplain +# Fr Apr 8 19:15:05 CEST 2005 +# cleanup now has an argument for the return code +# So Mar 27 18:52:06 CEST 2005 +# honor $TMPDIR, $TEMP and $TMP, not just $TMP +# Mon May 10 20:52:48 CEST 2004 +# kpseaccess instead of access +# Thu Dec 25 22:11:53 CET 2003, te: +# add version string +# Tue Apr 9 22:46:34 CEST 2002, te: +# do not create symlinks for cont-??, metafun and mptopdf + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +unset RUNNING_SH5 + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +export PATH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +cnf=fmtutil.cnf # name of the config file +version=20080528.1847 # utc timestamp +progname=texlinks + +usage='Usage: texlinks [OPTION]... [DIRECTORY]... + +Create symbolic links format -> engine according to fmtutil setup. + +Mandatory arguments to long options are mandatory for short options too. + -h, --help show this help text + --version show version string + -f, --cnffile FILE use FILE as config file (default: fmtutil.cnf) + -v, --verbose enable verbose messages (default: off) + -m, --multiplatform operate in all platform specific directories + (default: operate only in directory for this platform) + -s, --silent silently skip existing scripts / binaries + (default: issue warning) + -u, --unlink remove symlinks created by texlinks + +The DIRECTORY arguments are an optional list of directories in which to +operate. If no directories are specified and --multiplatform is +likewise not specified, the directory of this script itself is used. +With --multiplatform, all child dirs of an upper-level bin/ dir are used. + +Report bugs to tex-k@tug.org.' + +############################################################################### +# abort(errmsg) +# print `errmsg' to stderr and exit with error code 1 +############################################################################### +abort() { errmsg "texlinks: $1."; cleanup 1; } + +# error message to stderr: +errmsg() { echo "$@" >&2; } + +# give message to stderr only if "verbose" mode is on: +verbose_echo() { $verbose && errmsg "$@"; } + +# in verbose mode: show command that is executed: +verbose_do() { verbose_echo "$@"; "$@"; } + +############################################################################### +# cleanup() +# clean up the temp area and exit with proper exit status +############################################################################### +cleanup() +{ + rc=$1 + $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ + && { rm -f "$tmpdir"/*; cd /; rmdir "$tmpdir"; } + exit $rc +} + +############################################################################### +# setupTmpDir() +# set up a temp directory and a trap to remove it +############################################################################### +setupTmpDir() +{ + $needsCleanup && return + + trap 'cleanup 1' 1 2 3 7 13 15 + needsCleanup=true + (umask 077; mkdir "$tmpdir") \ + || abort "could not create directory \`$tmpdir'" +} + + +# search a binary along $PATH: +check_for_binary() +{ + testbin=$1 + set x `echo "$PATH" | sed 's/^:/.:/; s/:$/:./; s/::/:.:/g; s/:/ /g'`; shift + for i + do + if [ -x "$i/$testbin" ]; then + echo "$i/$testbin" + return 0 + fi + done + return 1 +} + + +############################################################################### +# install_link(dest src) +# create a symlink like ln -s dest src, but make sure that src is not +# an existing binary +############################################################################### +install_link() +{ + # make symlink src -> dest + dest=$1; src=$2 + + case $src in + */mf) + if test "$dest" = mf-nowin; then + if test -f $selfautoloc/mfw; then + dest=mfw # name for windows-enabled mf, once upon a time + verbose_echo "both mfw and mf-nowin exists, $src linked to $dest" + fi + if test -f $selfautoloc/mf && test -f $selfautoloc/mf-nowin; then + # have both mf and mf-nowin binaries. no link. + verbose_echo "skipped metafont symlink $src -> $dest (special case)" + return + fi + fi + ;; + esac + + case $src in + */cont-??|*/mptopdf) + # context includes wrapper scripts that create/run these. + verbose_echo "skipped ConTeXtish symlink $src -> $dest (special case)" + ;; + *) + test "x$src" != "x`(ls -ld $src | awk '{print $NF}') 2>/dev/null`" && + verbose_do rm -f "$src" + + if test -f "$src"; then + case $silent in + true) + ;; + *) + errmsg "install_link $src -> $dest failed: file already exists." + ;; + esac + else + verbose_do ln -s "$dest" "$src" + fi + ;; + esac +} + +############################################################################### +# search_symlinkdir() +# look if $PATH has only symlinks to the real binaries and find that +# directory. Also check if this directory is writable. +############################################################################### +search_symlinkdir() +{ + kpsewhich=`check_for_binary kpsewhich` + test -z "$kpsewhich" && return 1 + symlinkdir=`echo $kpsewhich | sed 's@/*kpsewhich$@@'` + kpseaccess -w "$symlinkdir" || return 1 + touch "$symlinkdir/tl$$" + if test -f "$selfautoloc/tl$$"; then + rm -f "$symlinkdir/tl$$" + return 1 + else + rm -f "$symlinkdir/tl$$" + return 0 + fi +} + +############################################################################### +# upd_symlinkdir() +# if $PATH has only symlinks to the real binaries, update that directory +# that holds the symlinks +############################################################################### +upd_symlinkdir() +{ + search_symlinkdir || return 0 + for i in `sed 's@ .*@@' cnf_file_ln.$$`; do + install_link "$selfautoloc/$i" "$symlinkdir/$i" + done +} + +############################################################################### +# rm_link() +# Delete a previously installed link +############################################################################### +rm_link() +{ + link=$1; + if test -e $link; then + if test -h $link; then + verbose_do rm -Rf $link + else + verbose_echo "kept $link, since not a symlink" + fi + else + verbose_echo "skipped $link, non-existent" + fi +} + +############################################################################### +# main() +# parse commandline arguments, initialize variables, +# switch into temp. direcrory, execute desired command +############################################################################### +main() +{ + cnf_file= # global variable: full name of the config file + dirs= + needsCleanup=false + + multiplatform=false + verbose=false + unlink=false + silent=false + thisdir=`pwd` + : ${KPSE_DOT=$thisdir}; export KPSE_DOT + selfautoloc=`kpsewhich --expand-var='$SELFAUTOLOC'` + while + case $1 in + --h*|-h) + echo "$usage"; exit 0;; + --version) + echo "$progname version $version."; exit 0;; + --cnffile|-f) + shift; cnf_file=$1;; + --v*|-v) verbose=true;; + --s*|-s) silent=true;; + --m*|-m) multiplatform=true;; + --u*|-u) unlink=true;; + -*) errmsg "fmtutil: unknown option \`$1' ignored.";; + *) break;; + esac + do test $# -gt 0 && shift; done + dirs="$*" + + # if no cnf_file from command-line, look it up with kpsewhich: + test -z "$cnf_file" && cnf_file=`kpsewhich --format='web2c files' $cnf` + test -f "$cnf_file" || abort "config file \`$cnf' not found" + + + tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/texlinks.$$ + setupTmpDir + cd "$tmpdir" || cleanup 1 + + sed '/^[ ]*#/d; /^[ ]*$/d' $cnf_file \ + | awk '{print $1, $2}' > cnf_file_ln.$$ + + if test -z "$dirs"; then + if test $multiplatform = true; then + case $selfautoloc in + */bin) dirs=$selfautoloc;; + *) parent=`kpsewhich --expand-var='$SELFAUTODIR'` + dirs=`find $parent -type f -name kpsewhich -print \ + | sed 's@/kpsewhich$@@'`;; + esac + else + dirs=$selfautoloc + fi + fi + + for d in $dirs; do + kpseaccess -w $d \ + || { errmsg "$d: no write permissions. Skipping..."; continue; } + # cnf_file_ln.$$ has lines with "format engine" pairs + set x `cat cnf_file_ln.$$`; shift + while test $# != 0; do + fmt=$1; engine=$2; shift; shift + + # Some broken shells destroy the positional arguments when calling a + # shellfunction. Therefore, we save and restore them "by hand" in the + # main_args_while variable. + main_args_while="$@" + + test "x$fmt" = "x$engine" && continue + if test -f "$d/$engine"; then + case $unlink in + true) + rm_link "$d/$fmt";; + *) + install_link "$engine" "$d/$fmt";; + esac + else + verbose_echo "skipped $d/$engine, engine does not exist" + fi + + # restore positional arguments: + set x $main_args_while; shift + + done + done + upd_symlinkdir +} + +main ${1+"$@"} + +# set successful return code +cleanup 0 diff --git a/Master/bin/i386-cygwin/texlua b/Master/bin/i386-cygwin/texlua new file mode 120000 index 00000000000..2f4735ef4fe --- /dev/null +++ b/Master/bin/i386-cygwin/texlua @@ -0,0 +1 @@ +luatex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texluac b/Master/bin/i386-cygwin/texluac new file mode 120000 index 00000000000..2f4735ef4fe --- /dev/null +++ b/Master/bin/i386-cygwin/texluac @@ -0,0 +1 @@ +luatex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texmfstart b/Master/bin/i386-cygwin/texmfstart new file mode 120000 index 00000000000..db6dee0a29c --- /dev/null +++ b/Master/bin/i386-cygwin/texmfstart @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/ruby/texmfstart.rb
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texshow b/Master/bin/i386-cygwin/texshow new file mode 120000 index 00000000000..52a03692b74 --- /dev/null +++ b/Master/bin/i386-cygwin/texshow @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texshow
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texsis b/Master/bin/i386-cygwin/texsis new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/texsis @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/textools b/Master/bin/i386-cygwin/textools new file mode 120000 index 00000000000..d1a20375405 --- /dev/null +++ b/Master/bin/i386-cygwin/textools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/textools
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/texutil b/Master/bin/i386-cygwin/texutil new file mode 120000 index 00000000000..78f249c7f02 --- /dev/null +++ b/Master/bin/i386-cygwin/texutil @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texutil
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/tftopl.exe b/Master/bin/i386-cygwin/tftopl.exe Binary files differnew file mode 100755 index 00000000000..7d7b5f3649f --- /dev/null +++ b/Master/bin/i386-cygwin/tftopl.exe diff --git a/Master/bin/i386-cygwin/thumbpdf b/Master/bin/i386-cygwin/thumbpdf new file mode 120000 index 00000000000..98a72428616 --- /dev/null +++ b/Master/bin/i386-cygwin/thumbpdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/thumbpdf/thumbpdf.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/tie.exe b/Master/bin/i386-cygwin/tie.exe Binary files differnew file mode 100755 index 00000000000..79c5fb71de3 --- /dev/null +++ b/Master/bin/i386-cygwin/tie.exe diff --git a/Master/bin/i386-cygwin/tlmgr b/Master/bin/i386-cygwin/tlmgr new file mode 120000 index 00000000000..dd7cddf2d67 --- /dev/null +++ b/Master/bin/i386-cygwin/tlmgr @@ -0,0 +1 @@ +../../texmf/scripts/texlive/tlmgr.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/tmftools b/Master/bin/i386-cygwin/tmftools new file mode 120000 index 00000000000..444a68a40ee --- /dev/null +++ b/Master/bin/i386-cygwin/tmftools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/tmftools
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/tpic2pdftex b/Master/bin/i386-cygwin/tpic2pdftex new file mode 100755 index 00000000000..70c1a33c7e8 --- /dev/null +++ b/Master/bin/i386-cygwin/tpic2pdftex @@ -0,0 +1,407 @@ +#!/bin/sh - +# +# $Id: tpic2pdftex,v 1.94 2007/01/14 19:05:32 hahe Exp $ +# +# Experimental awk-script for conversion of tpic \specials as produced +# by (groff-)pic into pdfTeX \pdfliteral sections for further processing +# by pdftex. +# +# Usage: +# $ pic -t somefile.pic | tpic2pdftex > somefile.tex +# +# Process somefile.tex by pdftex/pdflatex. +# +# tpic \special desciption see e. g.: +# Goossens, Rahtz, Mittelbach: The LaTeX Graphics Companion, +# Addison-Wesley, 1997, pp. 464. +# +# Bugs: +# Spline curve shapes not fully authentic (unknown algorithm). +# Bounding box does not care for line thickness (groff pic feature). +# Splines might be outside bounding box. +# +# Copyright (C) 2002--2004 by Hartmut Henkel +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# +# The author may be contacted via the e-mail address +# +# hartmut_henkel@gmx.de +# +# NEWS: +# 14 Jan. 2007 - make it executable shell script, calling awk +# 16 Dec. 2004 - Replaced // {print} by {print} (some AWKs did choke) +# 09 Apr. 2004 - Locale check: Decimal point in float numbers? +# 30 Oct. 2003 - Replaced print statements by printf to avoid +# underflow numbers like 1e-14 in \pdfliterals. Remove trailing +# zeroes of floating point numbers. +# 02 May 2003 - Lines starting with \ allow TeX insertions, +# e. g. of pdfTeX \pdfliteral{} +# 29 Apr. 2003 - Changed for pic of groff 1.19 +# 16 Mar. 2003 - Bug corrected: Dashed lines shorter than minimum +# dash-pause length now drawn solid. +# 11 Nov. 2002 - Spline drawing improved: First half of first and last +# half of last spline segments are drawn by straight lines. +# 28 Nov. 2002 - Arc and circle drawing cleaned up. Full circle is now +# drawn by 4 Bezier curves, as is common use. Arcs split evenly into +# Bezier curves, to minimize max. error. +# 02 Dec. 2002 - Experimental pic (groff > 1.18.1) with improved +# vertical picture positioning supported. +# 04 Dec. 2002 - Experiment with modified pic (\vtop -> \vbox), +# Formula for Bezier constant c reduced. +# +######################################################################## + +AWK=${AWK:-gawk} +export LANG="C" + +AWKPROG=' +# begin of awk input file + +function qprintf(a) { + gsub(/0* /," ", a); # trailing zeroes in %f + gsub(/\. /," ", a); # orphaned decimal dots + gsub(/0*]/,"]", a); # trailing zeroes in brackets + gsub(/0X/,"0", a); # guard integer zeroes + gsub(/-0 /,"0 ", a); # correct -0 to 0 + print a; +} + +function startpdfliteral() { + if (pdfliteral == 0) { + print "\\pdfliteral{"; + printf("q [] 0 d %d J %d j\n", linecap, linejoin); # no qprintf! + qprintf(sprintf("%f w", linethickness * wscale)); + } + pdfliteral = 1; +} + +function stoppdfliteral() { + if (pdfliteral == 1) { + print "Q"; + print "}%"; + } + pdfliteral = 0; +} + +######################################################################## + +BEGIN{ + wscale = 72.0 / 1000; + tpicmode = 0; + pdfliteral = 0; + pointbuf = 0; + filled = 0; + fillval = 0; + linecap = 1; + linejoin = 1; + defaultlinethickness = 8; + drawarc = 0; + pi = atan2(0, -1); + if (match(sprintf("%f", 0.5), /\./) == 0) { + print "ERROR: Floating point numbers miss decimal point. Do" + print " export LANG=\"C\"" + print "before calling awk." + print "ERROR: Floating point numbers miss decimal point. Do" > "/dev/stderr" + print " export LANG=\"C\"" > "/dev/stderr" + print "before calling awk." > "/dev/stderr" + exit 1; + } +} + +######################################################################## + +# the following expression triggers tpic processing for pic <= 1.18.1 + +/^\\setbox\\graph=\\vtop{/ { + pdfliteral = 0; + tpicmode = 1; + linethickness = defaultlinethickness; +} + +# the following expression triggers tpic processing for pic = 1.19 + +/^\\expandafter\\setbox\\csname graph\\endcsname/ { + pdfliteral = 0; + tpicmode = 1; + linethickness = defaultlinethickness; +} + +# TeX parts end \pdfliteral, and also TeX parts embedded in .PS ... .PE +# section end \pdfliteral + +/^ *\\graphtemp|^ *\\rlap|^ *\\advance|^\\|^ *\\hbox/ { + if(tpicmode == 1) + stoppdfliteral(); +} + +/^}%/ { + if(tpicmode == 1) + tpicmode = 0; +} + +######################################################################## + +# all specials handling + +/^ *\\special/ { + if(tpicmode == 1) + startpdfliteral(); +} + +# <pn> set pen size + +/^ *\\special{pn/ { + gsub(/[{}]/, " "); + linethickness = $3 + 0; + qprintf(sprintf("%f w", linethickness * wscale)); + next; +} + +# <pa> add point to path + +/^ *\\special{pa/ { + gsub(/[{}]/, " "); + x[pointbuf] = $3 + 0; + y[pointbuf] = $4 + 0; + pointbuf++; + next; +} + +# <fp> print path as straight lines + +/^ *\\special{fp/ { + if (filled == 1) + qprintf(sprintf("q %f g", 1 - fillval)); + qprintf(sprintf("%f %f m", x[0] * wscale, -y[0] * wscale)); + for (i = 1; i < pointbuf; i++) + qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale)); + if (filled == 1) + print "B Q"; + else + print "S"; + pointbuf = 0; + filled = 0; + next; +} + +# <da> print path as straight dashed lines + +/^ *\\special{da/ { + gsub(/[{}]/, " "); + don = ($3 + 0) * 1000; + if (filled == 1) { + qprintf(sprintf("q %f g", 1 - fillval)); + qprintf(sprintf("%f %f m", x[0] * wscale, -y[0] * wscale)); + for (i = 1; i < pointbuf; i++) + qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale)); + print "f Q"; + } + for (i = 1; i < pointbuf; i++) { + dx = x[i] - x[i - 1]; + dy = y[i] - y[i - 1]; + len = sqrt(dx * dx + dy * dy); + non = int(0.5 * len / don + 0.75); + noff = non - 1; + lon = don * non; + loff = len - lon; + if(noff > 0) { + doff = loff / noff; + qprintf(sprintf("q [%f %f] 0X d", don * wscale, doff * wscale)); + } else { + print "q [] 0 d"; + } + qprintf(sprintf("%f %f m", x[i - 1] * wscale, -y[i - 1] * wscale)); + qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale)); + print "S Q"; + } + pointbuf = 0; + filled = 0; + next; +} + +# <dt> print path as straight dotted lines + +/^ *\\special{dt/ { + gsub(/[{}]/, " "); + dt = ($3 + 0) * 1000; + if (filled == 1) { + qprintf(sprintf("q %f g", 1 - fillval)); + qprintf(sprintf("%f %f m", x[0] * wscale, -y[0] * wscale)); + for (i = 1; i < pointbuf; i++) + qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale)); + print "f Q"; + } + for (i = 1; i < pointbuf; i++) { + dx = x[i] - x[i - 1]; + dy = y[i] - y[i - 1]; + len = sqrt(dx * dx + dy * dy); + dl = int (len / dt + 0.5); + if (!dl) + dtl = len; + else + dtl = len / dl; + qprintf(sprintf("q [0X %f] 0X d", dtl * wscale)); + qprintf(sprintf("%f %f m", x[i - 1] * wscale, -y[i - 1] * wscale)); + qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale)); + print "S Q"; + } + pointbuf = 0; + filled = 0; + next; +} + +# <ip> like <fp>, but path actually not drawn + +/^ *\\special{ip/ { + if (filled == 1) + qprintf(sprintf("q %f g", 1 - fillval)); + qprintf(sprintf("%f %f m", x[0] * wscale, -y[0] * wscale)); + for (i = 1; i < pointbuf; i++) + qprintf(sprintf("%f %f l", x[i] * wscale, -y[i] * wscale)); + if (filled == 1) + print "f Q"; + else + print "f"; + pointbuf = 0; + filled = 0; + next; +} + +# <sp> like <fp>, but path printed as splines + +/^ *\\special{sp/ { + gsub(/[{}]/, " "); + don = ($3 + 0) * 1000; + a = 0.68; # fudge, visually optimized + x[pointbuf] = x[pointbuf - 1]; + y[pointbuf] = y[pointbuf - 1]; + + if (don > 0) + qprintf(sprintf("q [%f] 0X d", don * wscale)); + if (don < 0) + qprintf(sprintf("q [0X %f] 0X d", -don * wscale)); + + qprintf(sprintf("%f %f m", x[0] * wscale, -y[0] * wscale)); + + if(pointbuf < 3) + qprintf(sprintf("%f %f l", x[pointbuf - 1] * wscale, -y[pointbuf - 1] * wscale)); + else { + qprintf(sprintf("%f %f l", 0.5 * (x[0] + x[1]) * wscale, \ + -0.5 * (y[0] + y[1]) * wscale)); # start straight, see cstr116.ps + for (i = 1; i < pointbuf - 1; i++) + qprintf(sprintf("%f %f %f %f %f %f c", \ + (a * x[i] + (1 - a) * 0.5 * (x[i] + x[i - 1])) * wscale, \ + -(a * y[i] + (1 - a) * 0.5 * (y[i] + y[i - 1])) * wscale, \ + (a * x[i] + (1 - a) * 0.5 * (x[i] + x[i + 1])) * wscale, \ + -(a * y[i] + (1 - a) * 0.5 * (y[i] + y[i + 1])) * wscale, \ + 0.5 * (x[i] + x[i + 1]) * wscale, -0.5 * (y[i] + y[i + 1]) * wscale)); + qprintf(sprintf("%f %f l", x[pointbuf - 1] * wscale, -y[pointbuf - 1] * wscale)); + } + if (filled == 1) { + qprintf(sprintf("q %f g", 1 - fillval)); + print "B Q"; + } + else + print "S"; + if (don != 0) + print "Q"; + pointbuf = 0; + filled = 0; + next; +} + +# <sh> prepare shading of object interior + +/^ *\\special{sh/ { + gsub(/[{}]/, " "); + fillval = $3 + 0; + filled = 1; + next; +} + +# <ar> draw arc +# <ia> like <ar>, but arc actually not drawn + +/^ *\\special{ar/ { + drawarc = 1; +} + +/^ *\\special{ar|^ *\\special{ia/ { + gsub(/[{}]/, " "); + xc = $3 + 0; + yc = $4 + 0; + rx = $5 + 0; + ry = $6 + 0; + s = $7 + 0; + e = $8 + 0; + if (e - s > 2 * pi) e = s + 2 * pi; + if (s - e > 2 * pi) e = s - 2 * pi; + curvespercircle = 4; # max. number Bezier curves per circle + phi_max = 1.001 * 2 * pi / curvespercircle; + if (e > s) + imax = int ((e - s) / phi_max) + 1; + else + imax = int ((s - e) / phi_max) + 1; + phi = (e - s) / imax; + + # parameter for Bezier control vectors, c(90 deg.) = 0.55228...: + c = 4 * (1 - cos(0.5 * phi)) / (3 * sin(0.5 * phi)); + + x0 = rx * cos(s) + xc; + y0 = ry * sin(s) + yc; + qprintf(sprintf("%f %f m", x0 * wscale, -y0 * wscale)); + for (i = 0; i < imax; i++) { + x1 = x0 - rx * c * sin(s + i * phi); + y1 = y0 + ry * c * cos(s + i * phi); + x3 = rx * cos(s + (i + 1) * phi) + xc; + y3 = ry * sin(s + (i + 1) * phi) + yc; + x2 = x3 + rx * c * sin(s + (i + 1) * phi); + y2 = y3 - ry * c * cos(s + (i + 1) * phi); + qprintf(sprintf("%f %f %f %f %f %f c", x1 * wscale, -y1 * wscale, \ + x2 * wscale, -y2 * wscale, x3 * wscale, -y3 * wscale)); + x0 = x3; + y0 = y3; + } + if(drawarc == 1) { + if (filled == 1) { + qprintf(sprintf("h q %f g", 1 - fillval)); + print "B Q"; + } + else + print "S"; + } else { + if (filled == 1) { + qprintf(sprintf("h q %f g", 1 - fillval)); + print "f Q"; + } + else + print "f"; + } + filled = 0; + drawarc = 0; + next; +} + +######################################################################## + +{print} + +######################################################################## +' +# end of awk input file + +$AWK "$AWKPROG" "$@" diff --git a/Master/bin/i386-cygwin/ttf2afm.exe b/Master/bin/i386-cygwin/ttf2afm.exe Binary files differnew file mode 100755 index 00000000000..d9bbac436ff --- /dev/null +++ b/Master/bin/i386-cygwin/ttf2afm.exe diff --git a/Master/bin/i386-cygwin/ttf2pk.exe b/Master/bin/i386-cygwin/ttf2pk.exe Binary files differnew file mode 100755 index 00000000000..2ed76236f3b --- /dev/null +++ b/Master/bin/i386-cygwin/ttf2pk.exe diff --git a/Master/bin/i386-cygwin/ttf2tfm.exe b/Master/bin/i386-cygwin/ttf2tfm.exe Binary files differnew file mode 100755 index 00000000000..67fe84c1479 --- /dev/null +++ b/Master/bin/i386-cygwin/ttf2tfm.exe diff --git a/Master/bin/i386-cygwin/ttftotype42.exe b/Master/bin/i386-cygwin/ttftotype42.exe Binary files differnew file mode 100755 index 00000000000..f76043719e4 --- /dev/null +++ b/Master/bin/i386-cygwin/ttftotype42.exe diff --git a/Master/bin/i386-cygwin/updmap b/Master/bin/i386-cygwin/updmap new file mode 100755 index 00000000000..e09c817451b --- /dev/null +++ b/Master/bin/i386-cygwin/updmap @@ -0,0 +1,1424 @@ +#!/bin/sh +# updmap: utility to maintain map files for outline fonts. +# Thomas Esser. Public domain. +# Run with --help for usage. + +############################################################################### +# program history: +# Sun May 25 21:05:32 CEST 2008 (Reinhard Kotucha) +# add function symlink_or_copy needed by tl-portable. +# Post-te retirement, now maintained in TeX Live; see +# Build/texk/tetex/ChangeLog for further changes. +# Fr Jul 22 07:22:38 CEST 2005 +# write hint about log file into output files +# Fr Apr 8 19:15:05 CEST 2005 +# cleanup now has an argument for the return code +# So Mär 27 18:52:06 CEST 2005 +# honor $TMPDIR, $TEMP and $TMP, not just $TMP +# Do Mär 10 19:31:39 CET 2005 +# add a few quotes for $cnfFile with whitespace +# Sa Jan 15 18:13:46 CET 2005 +# avoid multiple variable assignments in one statement +# Sa Dez 25 12:44:23 CET 2004 +# implementaion adopted for teTeX-3.0 (tcfmgr) +# Mi Nov 3 16:33:22 CET 2004 +# add "--setoption option=value" syntax +# Fr Okt 29 21:05:53 CEST 2004 +# add --enable Map=... / --enable MixedMap=... +# Mi Okt 20 19:17:19 CEST 2004 +# transcript added; even better warnings / error messages +# So Okt 17 19:07:17 CEST 2004 +# improved warnings / error messages +# added --syncwithtrees +# added --listavailablemaps +# Mi Okt 6 16:37:49 CEST 2004 +# commenty may start with any of *#;% +# Sun Aug 1 11:42:14 CEST 2004, te +# remove pdftex related hacks; pdftex no longer needs them! +# Thu May 13 22:04:23 CEST 2004, te +# support user with new map file locations +# Fri Mar 19 15:22:55 CET 2004, te +# output "xxx yyy" instead of " xxx yyy " (less blanks) +# Fri Jan 2 22:41:11 CET 2004, te: +# add version string +# Wed Aug 20 18:51:47 CEST 2003 +# store map files to fonts/map, add options for dvipsoutputdir, +# pdftexoutputdir, dvipdfmoutputdir +# Mon Mar 24 13:40:55 CET 2003 +# fix fmex[789] for dvipdfm (no -r option) +# Sun Mar 23 18:58:00 CET 2003 +# make the script robust against whitespace in filenames +# Mon Jan 27 22:38:44 CET 2003 +# don't call a function before processOptions; we may loose our +# argument list with some broken shells +# Mon Jan 27 06:55:28 CET 2003 +# fix unportable egrep / sed +# Sat Jan 18 10:10:26 CET 2003 +# use $tmp8 in dvips2dvipdfm() +# Thu Jan 2 23:14:34 CET 2003 +# add umask 022, so generated files are always world-readable +# Sun Oct 27 11:33:04 CET 2002 +# write output in normalized format +# add support for dvipdfm +# Mon Sep 22 19:18:57 CEST 2002 +# fix typo: buildin -> builtin +# Mon Sep 2 19:18:57 CEST 2002 +# fix condensed <-> narrow mapping +# Sun Sep 1 15:02:28 CEST 2002 +# add dvipsDownloadBase35 / pdftexDownloadBase14 options +# Wed May 22 20:00:13 CEST 2002 +# listmaps option added by Gerben Wierda +# Tue May 21 05:27:37 CEST 2002 +# now removing map files before rewriting them; fixes permission problems +# Tue May 21 05:05:34 CEST 2002: +# cli options added: showoptions, setoption, enable, disable, nomkmap +# now even more verbose; now reporting non-existing map files +# fixing trap for MAC OS/X compatibility +# Fri May 17 22:38:37 CEST 2002: +# rewritten from teTeX-1.0 version; Completely new designed. +############################################################################### + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +export PATH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +# the version string +version=1211742332 # seconds since `00:00:00 1970-01-01 UTC' + # date '+%s' (with GNU date) + +# +############################################################################### +# help() +# display help message and exit +############################################################################### +help() +{ + cat <<eof +Usage: updmap [OPTION]... [COMMAND]... + +Update the default font map files used by pdftex, dvips, and dvipdfm, as +determined by updmap.cfg. Among other things, these font map files are +used to determine which fonts should be found as bitmaps and which as +outlines, and to determine which fonts are included in the output. + +By default, the filename database is also rebuilt (with mktexlsr). + +Valid options: + --cnffile FILE read FILE for the updmap configuration + --pdftexoutputdir DIR specify output directory (pdftex syntax) + --dvipsoutputdir DIR specify output directory (dvips syntax) + --dvipdfmoutputdir DIR specify output directory (dvipdfm syntax) + --outputdir DIR specify output directory (for all files) + --copy cp generic files rather than using symlinks + --nomkmap do not recreate map files + --nohash do not run texhash + -n, --dry-run only show the configuration, no output + --quiet reduce verbosity + +Valid commands: + --help show this message + --edit edit $cnfFileShort file + --showoptions ITEM show alternatives for options + --setoption OPTION VALUE set option, where OPTION is one of: + dvipsPreferOutline LW35 dvipsDownloadBase35 + pdftexDownloadBase14 dvipdfmDownloadBase14 + --setoption OPTION=VALUE see above, just different syntax + --enable MAPTYPE MAPFILE add MAPFILE as a MAPTYPE, one of: Map MixedMap + --enable Map=MAPFILE add MAPFILE as a Map + --enable MixedMap=MAPFILE add or enable MAPFILE as a MixedMap + --disable MAPFILE disable MAPFILE, whether Map or MixedMap + --syncwithtrees entries with unavailable map files will be + disabled in the config file + --listmaps list all active and inactive maps + --listavailablemaps same as --listmaps, but without + unavailable map files + +Explanation of the map types: the (only) difference between Map and +MixedMap is that MixedMap entries are not added to psfonts_pk.map. The +purpose is to help users with printers that render Type 1 outline fonts +worse than mode-tuned Type 1 bitmap fonts. So MixedMap is used for +fonts that are available as both Type 1 and Metafont. + +To see the precise locations of the various files that will be read and +written, run updmap -n. + +Report bugs to <tex-k@tug.org>. +eof + (exit 0); exit +} + +############################################################################### +# verboseMsg(msg) +# print `msg' to stderr is $verbose is true +############################################################################### +verboseMsg() { + test -n "$log" && echo ${1+"$@"} >> "$log" + $verbose && echo ${1+"$@"} >&2 +} + +############################################################################### +# verboseCat() +# cat to stderr is $verbose is true +############################################################################### +verboseCat() { + if $verbose; then + if test -n "$log"; then + cat ${1+"$@"} | tee -a "$log" >&2 + else + cat ${1+"$@"} >&2 + fi + else + test -n "$log" && cat ${1+"$@"} >> "$log" + fi +} + +############################################################################### +# warn(msg) +# print `msg' to stderr +############################################################################### +warn() +{ + test -n "$log" && echo ${1+"$@"} >> "$log" + echo ${1+"$@"} >&2 +} + +############################################################################### +# abort(errmsg) +# print `errmsg' to stderr and exit with error code 1 +############################################################################### +abort() +{ + warn "$progname: $1." + cleanup 1 +} + +############################################################################### +# cfgval(variable) +# read variable ($1) from config file, first match wins +############################################################################### +cfgval() +{ + cat "$cnfFile" | sed -n 's/^'"$1"'[ =][ =]*//p' | sed q +} + +############################################################################### +# symlink_or_copy() +# if --copy is not set, try to create a symlink. If this fails, write +# a message to stderr and copy the file instead. +############################################################################### +symlink_or_copy() +{ + if $copy; then + $copy_cmd "$1" "$2" + else + $link_cmd "$1" "$2" || + { + echo "Creating symbolic link failed, the file is copied instead." 1>&2 && + $copy_cmd "$1" "$2" + } + fi +} + +############################################################################### +# setupSymlinks() +# set symlink (or copy) +# for psfonts.map according to dvipsPreferOutline variable, +# and for pdftex.map and dvipdfm.map according to pdftexDownloadBase14. +############################################################################### +setupSymlinks() +{ + ( + cd "$dvipsoutputdir" || exit 1 + rm -f psfonts.map + if test "x$dvipsPreferOutline" = xtrue; then + symlink_or_copy psfonts_t1.map psfonts.map + else + symlink_or_copy psfonts_pk.map psfonts.map + fi + + cd "$pdftexoutputdir" || exit 1 + rm -f pdftex.map + if test "x$pdftexDownloadBase14" = xtrue; then + symlink_or_copy pdftex_dl14.map pdftex.map + else + symlink_or_copy pdftex_ndl14.map pdftex.map + fi + + cd "$dvipdfmoutputdir" || exit 1 + rm -f dvipdfm.map + if test "x$dvipdfmDownloadBase14" = xtrue; then + symlink_or_copy dvipdfm_dl14.map dvipdfm.map + else + symlink_or_copy dvipdfm_ndl14.map dvipdfm.map + fi + ) +} + +############################################################################### +# transLW35(args ...) +# transform fontname and filenames according to transformation specified +# by mode +############################################################################### +transLW35() +{ + case $mode in + ""|URWkb) + cat ${1+"$@"} + ;; + URW) + fileURW ${1+"$@"} + ;; + ADOBE|ADOBEkb) + psADOBE ${1+"$@"} | file$mode + ;; + esac +} + +############################################################################### +# catMaps(regex) +# filter config file by regex for map lines and extract the map filenames. +# These are then looked up (by kpsewhich in locateMap) and the content of +# all map files is send to stdout. +############################################################################### +catMaps() +{ + rm -f $catMapsFailed + egrep "$1" "$cnfFile" \ + | sed 's@#.*@@' \ + | awk '{print $2}' \ + | sort \ + | uniq \ + | grep . > $tmp4 + + while read map; do + file=`locateMap "$map"` || { touch $catMapsFailed; break; } + + # output the file; also output a newline, because the final newline + # might be missing in the map file; Empty lines are filtered out later, + # so it does not really hurt do do this here. + test -n "$file" && { cat "$file"; echo; } + done < $tmp4 + if test -f $catMapsFailed; then + false; return 1 + else + true; return 0 + fi +} + +############################################################################### +# configReplace(file, pattern, line) +# The first line in file that matches pattern gets replaced by line. +# line will be added at the end of the file if pattern does not match. +############################################################################### +configReplace() +{ + file=$1; pat=$2; line=$3 + + if grep "$pat" "$file" >/dev/null; then + ed "$file" >/dev/null 2>&1 <<-eof + /$pat/ + c + $line + . + w + q +eof + else + echo "$line" >> "$file" + fi +} + +############################################################################### +# setOption (option, value) +# sets option to value in the config file (replacing the existing setting +# or by adding a new line to the config file). +############################################################################### +setOption() +{ + opt=$1 + val=$2 + case "$opt" in + LW35) + case "$val" in + URWkb|URW|ADOBE|ADOBEkb) + ;; + *) + abort "invalid value $val for option $opt" + ;; + esac + ;; + dvipsPreferOutline|dvipsDownloadBase35|pdftexDownloadBase14|dvipdfmDownloadBase14) + case "$val" in + true|false) + ;; + *) + abort "invalid value $val for option $opt" + esac + ;; + *) + abort "unsupported option $opt" + ;; + esac + + configReplace "$cnfFile" "^$opt[ ]" "$opt $val" +} + +############################################################################### +# enableMap (type, map) +# enables an entry in the config file for map with a given type. +############################################################################### +enableMap() +{ + case $1 in + Map|MixedMap) + ;; + *) + abort "invalid mapType $1" + ;; + esac + + # a map can only have one type, so we carefully disable everything + # about map here: + disableMap "$2" + + # now enable with the right type: + configReplace "$cnfFile" "^#![ ]*$1[ ]*$2" "$1 $2" +} + +############################################################################### +# disableMap (map) +# disables map in config file (any type) +############################################################################### +disableMap() +{ + #mapType=`awk '($1 == "MixedMap" || $1 == "Map") && $2 == map { print $1 }' \ + # map=$1 <"$cnfFile" | sort | uniq` + map=$1 + mapType=`egrep "^(MixedMap|Map)[ ]*$map( | |$)" "$cnfFile" | awk '{print $1}' | sort | uniq` + for type in $mapType; do + configReplace "$cnfFile" "^$type[ ]*$1" "#! $type $1" + done +} + +############################################################################### +# psADOBE() +# transform fontnames from URW to Adobe +############################################################################### +psADOBE() +{ + sed \ + -e 's/ URWGothicL-Demi / AvantGarde-Demi /' \ + -e 's/ URWGothicL-DemiObli / AvantGarde-DemiOblique /' \ + -e 's/ URWGothicL-Book / AvantGarde-Book /' \ + -e 's/ URWGothicL-BookObli / AvantGarde-BookOblique /' \ + -e 's/ URWBookmanL-DemiBold / Bookman-Demi /' \ + -e 's/ URWBookmanL-DemiBoldItal / Bookman-DemiItalic /' \ + -e 's/ URWBookmanL-Ligh / Bookman-Light /' \ + -e 's/ URWBookmanL-LighItal / Bookman-LightItalic /' \ + -e 's/ NimbusMonL-Bold / Courier-Bold /' \ + -e 's/ NimbusMonL-BoldObli / Courier-BoldOblique /' \ + -e 's/ NimbusMonL-Regu / Courier /' \ + -e 's/ NimbusMonL-ReguObli / Courier-Oblique /' \ + -e 's/ NimbusSanL-Bold / Helvetica-Bold /' \ + -e 's/ NimbusSanL-BoldCond / Helvetica-Narrow-Bold /' \ + -e 's/ NimbusSanL-BoldItal / Helvetica-BoldOblique /' \ + -e 's/ NimbusSanL-BoldCondItal / Helvetica-Narrow-BoldOblique /' \ + -e 's/ NimbusSanL-Regu / Helvetica /' \ + -e 's/ NimbusSanL-ReguCond / Helvetica-Narrow /' \ + -e 's/ NimbusSanL-ReguItal / Helvetica-Oblique /' \ + -e 's/ NimbusSanL-ReguCondItal / Helvetica-Narrow-Oblique /' \ + -e 's/ CenturySchL-Bold / NewCenturySchlbk-Bold /' \ + -e 's/ CenturySchL-BoldItal / NewCenturySchlbk-BoldItalic /' \ + -e 's/ CenturySchL-Roma / NewCenturySchlbk-Roman /' \ + -e 's/ CenturySchL-Ital / NewCenturySchlbk-Italic /' \ + -e 's/ URWPalladioL-Bold / Palatino-Bold /' \ + -e 's/ URWPalladioL-BoldItal / Palatino-BoldItalic /' \ + -e 's/ URWPalladioL-Roma / Palatino-Roman /' \ + -e 's/ URWPalladioL-Ital / Palatino-Italic /' \ + -e 's/ StandardSymL / Symbol /' \ + -e 's/ NimbusRomNo9L-Medi / Times-Bold /' \ + -e 's/ NimbusRomNo9L-MediItal / Times-BoldItalic /' \ + -e 's/ NimbusRomNo9L-Regu / Times-Roman /' \ + -e 's/ NimbusRomNo9L-ReguItal / Times-Italic /' \ + -e 's/ URWChanceryL-MediItal / ZapfChancery-MediumItalic /' \ + -e 's/ Dingbats / ZapfDingbats /' \ + ${1+"$@"} +} + +############################################################################### +# fileADOBEkb() +# transform filenames from URW to ADOBE (both berry names) +############################################################################### +fileADOBEkb() +{ + sed \ + -e 's/\([^A-Za-z]\)uagd8a.pfb/\1pagd8a.pfb/' \ + -e 's/\([^A-Za-z]\)uagdo8a.pfb/\1pagdo8a.pfb/' \ + -e 's/\([^A-Za-z]\)uagk8a.pfb/\1pagk8a.pfb/' \ + -e 's/\([^A-Za-z]\)uagko8a.pfb/\1pagko8a.pfb/' \ + -e 's/\([^A-Za-z]\)ubkd8a.pfb/\1pbkd8a.pfb/' \ + -e 's/\([^A-Za-z]\)ubkdi8a.pfb/\1pbkdi8a.pfb/' \ + -e 's/\([^A-Za-z]\)ubkl8a.pfb/\1pbkl8a.pfb/' \ + -e 's/\([^A-Za-z]\)ubkli8a.pfb/\1pbkli8a.pfb/' \ + -e 's/\([^A-Za-z]\)ucrb8a.pfb/\1pcrb8a.pfb/' \ + -e 's/\([^A-Za-z]\)ucrbo8a.pfb/\1pcrbo8a.pfb/' \ + -e 's/\([^A-Za-z]\)ucrr8a.pfb/\1pcrr8a.pfb/' \ + -e 's/\([^A-Za-z]\)ucrro8a.pfb/\1pcrro8a.pfb/' \ + -e 's/\([^A-Za-z]\)uhvb8a.pfb/\1phvb8a.pfb/' \ + -e 's/\([^A-Za-z]\)uhvb8ac.pfb/\1phvb8an.pfb/' \ + -e 's/\([^A-Za-z]\)uhvbo8a.pfb/\1phvbo8a.pfb/' \ + -e 's/\([^A-Za-z]\)uhvbo8ac.pfb/\1phvbo8an.pfb/' \ + -e 's/\([^A-Za-z]\)uhvr8a.pfb/\1phvr8a.pfb/' \ + -e 's/\([^A-Za-z]\)uhvr8ac.pfb/\1phvr8an.pfb/' \ + -e 's/\([^A-Za-z]\)uhvro8a.pfb/\1phvro8a.pfb/' \ + -e 's/\([^A-Za-z]\)uhvro8ac.pfb/\1phvro8an.pfb/' \ + -e 's/\([^A-Za-z]\)uncb8a.pfb/\1pncb8a.pfb/' \ + -e 's/\([^A-Za-z]\)uncbi8a.pfb/\1pncbi8a.pfb/' \ + -e 's/\([^A-Za-z]\)uncr8a.pfb/\1pncr8a.pfb/' \ + -e 's/\([^A-Za-z]\)uncri8a.pfb/\1pncri8a.pfb/' \ + -e 's/\([^A-Za-z]\)uplb8a.pfb/\1pplb8a.pfb/' \ + -e 's/\([^A-Za-z]\)uplbi8a.pfb/\1pplbi8a.pfb/' \ + -e 's/\([^A-Za-z]\)uplr8a.pfb/\1pplr8a.pfb/' \ + -e 's/\([^A-Za-z]\)uplri8a.pfb/\1pplri8a.pfb/' \ + -e 's/\([^A-Za-z]\)usyr.pfb/\1psyr.pfb/' \ + -e 's/\([^A-Za-z]\)utmb8a.pfb/\1ptmb8a.pfb/' \ + -e 's/\([^A-Za-z]\)utmbi8a.pfb/\1ptmbi8a.pfb/' \ + -e 's/\([^A-Za-z]\)utmr8a.pfb/\1ptmr8a.pfb/' \ + -e 's/\([^A-Za-z]\)utmri8a.pfb/\1ptmri8a.pfb/' \ + -e 's/\([^A-Za-z]\)uzcmi8a.pfb/\1pzcmi8a.pfb/' \ + -e 's/\([^A-Za-z]\)uzdr.pfb/\1pzdr.pfb/' \ + ${1+"$@"} +} + +############################################################################### +# fileURW() +# transform filenames from URWkb (berry names) to URW (vendor names) +############################################################################### +fileURW() +{ + sed \ + -e 's/\([^A-Za-z]\)uagd8a.pfb/\1a010015l.pfb/' \ + -e 's/\([^A-Za-z]\)uagdo8a.pfb/\1a010035l.pfb/' \ + -e 's/\([^A-Za-z]\)uagk8a.pfb/\1a010013l.pfb/' \ + -e 's/\([^A-Za-z]\)uagko8a.pfb/\1a010033l.pfb/' \ + -e 's/\([^A-Za-z]\)ubkd8a.pfb/\1b018015l.pfb/' \ + -e 's/\([^A-Za-z]\)ubkdi8a.pfb/\1b018035l.pfb/' \ + -e 's/\([^A-Za-z]\)ubkl8a.pfb/\1b018012l.pfb/' \ + -e 's/\([^A-Za-z]\)ubkli8a.pfb/\1b018032l.pfb/' \ + -e 's/\([^A-Za-z]\)ucrb8a.pfb/\1n022004l.pfb/' \ + -e 's/\([^A-Za-z]\)ucrbo8a.pfb/\1n022024l.pfb/' \ + -e 's/\([^A-Za-z]\)ucrr8a.pfb/\1n022003l.pfb/' \ + -e 's/\([^A-Za-z]\)ucrro8a.pfb/\1n022023l.pfb/' \ + -e 's/\([^A-Za-z]\)uhvb8a.pfb/\1n019004l.pfb/' \ + -e 's/\([^A-Za-z]\)uhvb8ac.pfb/\1n019044l.pfb/' \ + -e 's/\([^A-Za-z]\)uhvbo8a.pfb/\1n019024l.pfb/' \ + -e 's/\([^A-Za-z]\)uhvbo8ac.pfb/\1n019064l.pfb/' \ + -e 's/\([^A-Za-z]\)uhvr8a.pfb/\1n019003l.pfb/' \ + -e 's/\([^A-Za-z]\)uhvr8ac.pfb/\1n019043l.pfb/' \ + -e 's/\([^A-Za-z]\)uhvro8a.pfb/\1n019023l.pfb/' \ + -e 's/\([^A-Za-z]\)uhvro8ac.pfb/\1n019063l.pfb/' \ + -e 's/\([^A-Za-z]\)uncb8a.pfb/\1c059016l.pfb/' \ + -e 's/\([^A-Za-z]\)uncbi8a.pfb/\1c059036l.pfb/' \ + -e 's/\([^A-Za-z]\)uncr8a.pfb/\1c059013l.pfb/' \ + -e 's/\([^A-Za-z]\)uncri8a.pfb/\1c059033l.pfb/' \ + -e 's/\([^A-Za-z]\)uplb8a.pfb/\1p052004l.pfb/' \ + -e 's/\([^A-Za-z]\)uplbi8a.pfb/\1p052024l.pfb/' \ + -e 's/\([^A-Za-z]\)uplr8a.pfb/\1p052003l.pfb/' \ + -e 's/\([^A-Za-z]\)uplri8a.pfb/\1p052023l.pfb/' \ + -e 's/\([^A-Za-z]\)usyr.pfb/\1s050000l.pfb/' \ + -e 's/\([^A-Za-z]\)utmb8a.pfb/\1n021004l.pfb/' \ + -e 's/\([^A-Za-z]\)utmbi8a.pfb/\1n021024l.pfb/' \ + -e 's/\([^A-Za-z]\)utmr8a.pfb/\1n021003l.pfb/' \ + -e 's/\([^A-Za-z]\)utmri8a.pfb/\1n021023l.pfb/' \ + -e 's/\([^A-Za-z]\)uzcmi8a.pfb/\1z003034l.pfb/' \ + -e 's/\([^A-Za-z]\)uzdr.pfb/\1d050000l.pfb/' \ + ${1+"$@"} +} + +############################################################################### +# fileADOBE() +# transform filenames from URWkb (berry names) to ADOBE (vendor names) +############################################################################### +fileADOBE() +{ + sed \ + -e 's/\([^A-Za-z]\)uagd8a.pfb/\1agd_____.pfb/' \ + -e 's/\([^A-Za-z]\)uagdo8a.pfb/\1agdo____.pfb/' \ + -e 's/\([^A-Za-z]\)uagk8a.pfb/\1agw_____.pfb/' \ + -e 's/\([^A-Za-z]\)uagko8a.pfb/\1agwo____.pfb/' \ + -e 's/\([^A-Za-z]\)ubkd8a.pfb/\1bkd_____.pfb/' \ + -e 's/\([^A-Za-z]\)ubkdi8a.pfb/\1bkdi____.pfb/' \ + -e 's/\([^A-Za-z]\)ubkl8a.pfb/\1bkl_____.pfb/' \ + -e 's/\([^A-Za-z]\)ubkli8a.pfb/\1bkli____.pfb/' \ + -e 's/\([^A-Za-z]\)ucrb8a.pfb/\1cob_____.pfb/' \ + -e 's/\([^A-Za-z]\)ucrbo8a.pfb/\1cobo____.pfb/' \ + -e 's/\([^A-Za-z]\)ucrr8a.pfb/\1com_____.pfb/' \ + -e 's/\([^A-Za-z]\)ucrro8a.pfb/\1coo_____.pfb/' \ + -e 's/\([^A-Za-z]\)uhvb8a.pfb/\1hvb_____.pfb/' \ + -e 's/\([^A-Za-z]\)uhvb8ac.pfb/\1hvnb____.pfb/' \ + -e 's/\([^A-Za-z]\)uhvbo8a.pfb/\1hvbo____.pfb/' \ + -e 's/\([^A-Za-z]\)uhvbo8ac.pfb/\1hvnbo___.pfb/' \ + -e 's/\([^A-Za-z]\)uhvr8a.pfb/\1hv______.pfb/' \ + -e 's/\([^A-Za-z]\)uhvr8ac.pfb/\1hvn_____.pfb/' \ + -e 's/\([^A-Za-z]\)uhvro8a.pfb/\1hvo_____.pfb/' \ + -e 's/\([^A-Za-z]\)uhvro8ac.pfb/\1hvno____.pfb/' \ + -e 's/\([^A-Za-z]\)uncb8a.pfb/\1ncb_____.pfb/' \ + -e 's/\([^A-Za-z]\)uncbi8a.pfb/\1ncbi____.pfb/' \ + -e 's/\([^A-Za-z]\)uncr8a.pfb/\1ncr_____.pfb/' \ + -e 's/\([^A-Za-z]\)uncri8a.pfb/\1nci_____.pfb/' \ + -e 's/\([^A-Za-z]\)uplb8a.pfb/\1pob_____.pfb/' \ + -e 's/\([^A-Za-z]\)uplbi8a.pfb/\1pobi____.pfb/' \ + -e 's/\([^A-Za-z]\)uplr8a.pfb/\1por_____.pfb/' \ + -e 's/\([^A-Za-z]\)uplri8a.pfb/\1poi_____.pfb/' \ + -e 's/\([^A-Za-z]\)usyr.pfb/\1sy______.pfb/' \ + -e 's/\([^A-Za-z]\)utmb8a.pfb/\1tib_____.pfb/' \ + -e 's/\([^A-Za-z]\)utmbi8a.pfb/\1tibi____.pfb/' \ + -e 's/\([^A-Za-z]\)utmr8a.pfb/\1tir_____.pfb/' \ + -e 's/\([^A-Za-z]\)utmri8a.pfb/\1tii_____.pfb/' \ + -e 's/\([^A-Za-z]\)uzcmi8a.pfb/\1zcmi____.pfb/' \ + -e 's/\([^A-Za-z]\)uzdr.pfb/\1zd______.pfb/' \ + ${1+"$@"} +} + +############################################################################### +# locateWeb2c (file ...) +# apply kpsewhich with format 'web2c files' +############################################################################### +locateWeb2c() +{ + kpsewhich --format='web2c files' ${1+"$@"} +} + +############################################################################### +# locateMap (file ...) +# apply kpsewhich with format 'map' +############################################################################### +locateMap() +{ + + # Always use the "migration checking version". This might become + # consigurable, but for now, we always want to check. + if :; then + locateMapMigrate "$@" + return $? + fi + + # The old version of the code; not used at the moment. + for map + do + file=`kpsewhich --format=map "$map"` + if test -f "$file"; then + verboseMsg "$progname: using map file \`$file'" + echo "$file" + else + warn "map file \`$map' not found." + fi + done +} + +############################################################################### +# locateMapMigrate (file ...) +# look for map file; assist user with possibly files in wrong locations; +# also watch out for possibly hidden conflicts +############################################################################### +locateMapMigrate() +{ + for map + do + # look up using the new search path + file=`kpsewhich --format=map "$map"` + + # look up using the old search path + file2=`kpsewhich --format='dvips config' "$map"` + + # Well, the search paths should not overlap. If they do, and if + # file1 = file2, we don't want to complain about file2, so: + test "x$file" = "x$file2" && file2= + + if test -f "$file"; then + + verboseMsg "$progname: using map file \`$file'" + echo "$file" + + # we have found the file where we should. If we have additional + # ones: complain! + if test -f "$file2"; then + mapCmp "$file" "$file2" \ + && mapWarn obsoleteCopy "$map" "$file2" \ + || mapWarn manualResolve "$map" "$file" "$file2" + fi + + else + if test -f "$file2"; then + # bad: map file exists in the wrong location only + mapWarn badLocation "$map" "$file2" + else + # bad: map file does not exist at all + mapWarn notFound "$map" + fi + false; return 1 + fi + done + true; return 0 +} + +############################################################################### +# mapCmp(file, file2) +# compare two map files like cmp; but less strict, so changes regarding +# whitespaces, comments etc. are tolerated. Important is only the +# return value here. +############################################################################### +mapCmp() +{ + file=$1; file2=$2 + + # For reasons of speed only. Avoid normalizeLines if files are 100% + # the same. + cmp "$file" "$file2" >/dev/null 2>&1 && return 0 + + normalizeLines <"$file" >"$tmpdir/mapCmp-1" + normalizeLines <"$file2" >"$tmpdir/mapCmp-2" + cmp "$tmpdir/mapCmp-1" "$tmpdir/mapCmp-2" >/dev/null 2>&1 +} + +############################################################################### +# mapWarn() +############################################################################### +mapWarn() +{ + + case $1 in + obsoleteCopy) + warn " +!!! WARNING: Identical copy of used file for \`$2' + exists in obsolete location + $3 + Please, consider removing this file. +" + touch $mapWarnCalled + ;; + manualResolve) + warn " +!!! WARNING: While searching for the right map file for \`$2', we have + found the file + $3 + in the right location and we are using this + file. However, a map file with different content has been found in + the obsolete location + $4 + Please, see which version you want to use and eventually update the + content of the used map file. Additionally, consider removing the + obsolete file. +" + touch $mapWarnCalled + ;; + badLocation) + map=$2 + location=$3 + + m=" +!!! ERROR: The right location for map files has been + changed for this release and the map file \`$map' has + not been found in the right location, but in the obsolete + location + $location + instead. + + To fix this, please move this file into an appropriate + subdirectory of fonts/map in one of your texmf trees. + + For more information about the changed search paths, see + the release notes section in the teTeX manual. You probably + can read this document by executing the command + texdoc TETEXDOC + else visit the web page + http://tug.org/texlive/mapenc.html +" + warn "$m" + false; return 1 + ;; + notFound) + warn " +!!! ERROR! The map file \`$2' has not been found at all. + + Either put this file into the right place or remove the + reference from the configuration file. An automatic way + to disable unavailable map files is to call + $progname --syncwithtrees + + For manual editing, call + $progname --edit +" + + false; return 1 + ;; + esac +} + +############################################################################### +# cleanup() +# clean up the temp area and exit with proper exit status +############################################################################### +cleanup() +{ + rc=$1 + $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \ + && { cd / && rm -rf "$tmpdir"; } + (exit $rc); exit $rc +} + +############################################################################### +# setupTmpDir() +# set up a temp directory and a trap to remove it +############################################################################### +setupTmpDir() +{ + $needsCleanup && return + + trap 'cleanup 1' 1 2 3 7 13 15 + needsCleanup=true + mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'" +} + +############################################################################### +# showOptions(item) +# show Options for an item +############################################################################### +showOptions() +{ + item=$1 + + case "$item" in + LW35) + echo "URWkb URW ADOBE ADOBEkb" + ;; + dvipsPreferOutline|pdftexDownloadBase14|dvipdfmDownloadBase14|dvipsDownloadBase35) + echo "true false" + ;; + *) + abort "Unknown item \"$item\". Choose one of LW35, dvipsPreferOutline, dvipsDownloadBase35, pdftexDownloadBase14 or dvipdfmDownloadBase14" + ;; + esac + + (exit 0); exit 0 +} + +############################################################################### +# mktexdir(args) +# call mktexdir script, disable all features (to prevent sticky directories) +############################################################################### +mktexdir() +{ + MT_FEATURES=none "$TEXMFMAIN/web2c/mktexdir" "$@" >&2 +} + +############################################################################### +# setupDestDir() +# Assign output directories which are not yet assigned. Always use +# the TEXMFVAR for this. +############################################################################### +setupDestDir() +{ + vartexmf=`kpsewhich -var-value=TEXMFVAR` + + # dvips + if test -z "$dvipsoutputdir"; then + dvipsoutputdir=$vartexmf/fonts/map/dvips/updmap + fi + + # pdftex + if test -z "$pdftexoutputdir"; then + pdftexoutputdir=$vartexmf/fonts/map/pdftex/updmap + fi + + # dvipdfm + if test -z "$dvipdfmoutputdir"; then + dvipdfmoutputdir=$vartexmf/fonts/map/dvipdfm/updmap + fi + + mktexdir "$dvipsoutputdir" "$pdftexoutputdir" "$dvipdfmoutputdir" >/dev/null 2>&1 + for d in "$dvipsoutputdir" "$pdftexoutputdir" "$dvipdfmoutputdir"; do + test -d "$d" || abort "output directory \`$d' does not exist" + test -w "$d" || abort "output directory \`$d' is not writable" + done + +} + +############################################################################### +# setupLog(cfgFile) +# try to set up a log file in $TEXMFVAR/web2c +############################################################################### +setupLog() +{ + vartexmf=`kpsewhich -var-value=TEXMFVAR` + dir=$vartexmf/web2c + mktexdir "$dir" >/dev/null 2>&1 + log="$dir/$progname.log" + if test -d "$dir" && test -w "$dir"; then + rm -f "$log" + > "$log" + fi + if test -w "$log"; then + if $chicken_mode; then + log= + else + date > "$log" + verboseMsg "$progname: This is $progname, version $version" + verboseMsg "$progname: using transcript file \`$log'" + fi + else + log= + verboseMsg "$progname: This is $progname, version $version" + verboseMsg "$progname: no permissions for writing $dir/$progname.log', so no transcript" + fi +} + +############################################################################### +# setupCfgFile() +# find config file if none specified on cmd line. +############################################################################### +setupCfgFile() +{ + case "$cnfFile" in + "") cnfFile=`locateWeb2c $cnfFileShort` + case "$cnfFile" in + "") abort "config file $cnfFileShort not found" + esac;; + esac + setupLog +} + +############################################################################### +# processOptions() +# process cmd line options +############################################################################### +processOptions() +{ + while + case $1 in + --quiet|-q) + verbose=false;; + --cnffile) + cfgparam=1; cnfFile=$2; shift;; + --cnffile=*) + cfgparam=1; cnfFile=`echo "$1" | sed 's/--cnffile=//'`;; + --copy) + copy=true;; + --dry-run|-n) + chicken_mode=true;; + --dvipsoutputdir) + dvipsoutputdirparam=1; dvipsoutputdir=$2; shift;; + --dvipsoutputdir=*) + dvipsoutputdirparam=1; dvipsoutputdir=`echo "$1" | sed 's/--dvipsoutputdir=//'`;; + --pdftexoutputdir) + pdftexoutputdirparam=1; pdftexoutputdir=$2; shift;; + --pdftexoutputdir=*) + pdftexoutputdirparam=1; pdftexoutputdir=`echo "$1" | sed 's/--pdftexoutputdir=//'`;; + --dvipdfmoutputdir) + dvipdfmoutputdirparam=1; dvipdfmoutputdir=$2; shift;; + --dvipdfmoutputdir=*) + dvipdfmoutputdirparam=1; dvipdfmoutputdir=`echo "$1" | sed 's/--dvipdfmoutputdir=//'`;; + --outputdir) + dvipsoutputdirparam=1; dvipsoutputdir=$2 + pdftexoutputdirparam=1; pdftexoutputdir=$2 + dvipdfmoutputdirparam=1; dvipdfmoutputdir=$2 + shift + ;; + --outputdir=*) + outputdir=`echo "$1" | sed 's/--outputdir=//'` + dvipsoutputdirparam=1; dvipsoutputdir=$outputdir + pdftexoutputdirparam=1; pdftexoutputdir=$outputdir + dvipdfmoutputdirparam=1; dvipdfmoutputdir=$outputdir + ;; + --setoption) + cfgmaint=1 + cmd=setoption + case $2 in + *=*) + setoptionOpt=`echo $2 | sed 's@=.*@@'` + setoptionVal=`echo $2 | sed 's@[^=]*=@@'` + shift + ;; + *) + test $# -ge 3 || { abort "--setoption needs two parameters: option value"; } + setoptionOpt=$2; setoptionVal=$3; shift; shift + ;; + esac + ;; + --enable) + cfgmaint=1 + cmd=enable + case $2 in + Map=*) + enableMapType=Map; enableMapFile=`echo "$2" | sed 's/Map=//'`; shift;; + MixedMap=*) + enableMapType=MixedMap; enableMapFile=`echo "$2" | sed 's/MixedMap=//'`; shift;; + Map|MixedMap) + test $# -ge 3 || { abort "--enable needs two parameters: mapType mapFile"; } + enableMapType=$2; enableMapFile=$3; shift; shift;; + *) + abort "--enable needs two parameters mapType mapFile";; + esac + ;; + --syncwithtrees) + cfgmaint=1 + cmd=syncwithtrees;; + --disable) + cfgmaint=1 + cmd=disable; disableMapFile=$2; shift + ;; + --disable=*) + cfgmaint=1 + disableMapFile=`echo "$1" | sed 's/--disable=//'` + cmd=disable + ;; + --edit|-e) + cfgmaint=1 + cmd=edit;; + --listmaps|-l) + cmd=listmaps;; + --listavailablemaps) + cmd=listavailablemaps;; + --showoptions) + cmd=showoptions; showoptionsItem=$2; shift;; + --showoptions=*) + cmd=showoptions; showoptionsItem=`echo "$1" | sed 's/--showoptions=//'`;; + + --nohash) + texhashEnabled=false;; + --nomkmap) + mkmapEnabled=false;; + --help|-help|-h) + help;; + --version) + echo "$progname version $version."; (exit 0); exit 0;; + "") break;; + *) abort "$progname: unknown option \`$1'. Try $progname --help for help";; + esac + do test $# -gt 0 && shift; done + + if test -n "$cfgparam"; then + if test -z "$cnfFile" || test ! -f "$cnfFile"; then + abort "config file \`$cnfFileShort' not found" + fi + fi + + if test -n "$dvipdoutputdirparam"; then + if test -z "$dvipdoutputdir" || test ! -d "$dvipdoutputdir"; then + abort "dvips output directory \`$1' not found" + fi + fi + if test -n "$pdftexoutputdirparam"; then + if test -z "$pdftexoutputdir" || test ! -d "$pdftexoutputdir"; then + abort "pdftex output directory \`$1' not found" + fi + fi + if test -n "$dvipdfmoutputdirparam"; then + if test -z "$dvipdfmoutputdir" || test ! -d "$dvipdfmoutputdir"; then + abort "dvipdfm output directory \`$1' not found" + fi + fi + +} + +############################################################################### +# listMaps() +# list all maps mentioned in the config file +############################################################################### +listMaps() +{ + egrep '^(#! *)?(Mixed)?Map' "$cnfFile" +} + +############################################################################### +# listAvailableMaps() +# list maps mentioned in the config file if they are available +############################################################################### +listAvailableMaps() +{ + # loop over each possible line in the config file (-> $line) + # extract the name of the map file (-> $m) + # check if the map file exists and in that case echo the line + OLDIFS=$IFS + IFS=' +' + for line in `egrep '^(#! *)?(Mixed)?Map' "$cnfFile"`; do + m=`echo "$line" | sed 's@[ ]*$@@; s@.*[ ]@@'` + kpsewhich --format=map "$m" >/dev/null && echo "$line" + done + IFS=$OLDIFS +} + +############################################################################### +# syncWithTrees() +# update the config file: uncomment all lines which refer to map files that +# are unavailabe in the texmf trees +############################################################################### +syncWithTrees() +{ + for i in `egrep '^(Mixed)?Map' "$cnfFile" | sed 's@.* @@'`; do + kpsewhich --format=map "$i" >/dev/null || echo "$i" + done > $tmp1 + { + sed 's@/@\\/@g; s@^@/^MixedMap[ ]*@; s@$@$/s/^/#! /@' <$tmp1 + sed 's@/@\\/@g; s@^@/^Map[ ]*@; s@$@$/s/^/#! /@' <$tmp1 + } > $tmp2 + sed -f $tmp2 "$cnfFile" > $tmp3 && cat $tmp3 > "$cnfFile" +} + +############################################################################### +# normalizeLines() +# remove comments, whitespace is exactly one space, no empty lines, +# no whitespace at end of line, one space before and after ", +# no CR's (as in skaknew). +############################################################################### +normalizeLines() +{ + sed \ + -e '/^[*#;%]/d' \ + -e 's@[ ][ ]*@ @g' \ + -e '/^ *$/d' \ + -e 's@ $@@' \ + -e 's@ *" *@ " @g' \ + -e 's@" \([^"]*\) "@"\1"@g' \ + | tr -d '\r' \ + | sort | uniq +} + +############################################################################### +# dvips2dvipdfm() +# reads from stdin, writes to stdout. It transforms "dvips"-like syntax into +# "dvipdfm"-like syntax. It is a very ugly hack. +############################################################################### +dvips2dvipdfm() +{ + sed -e 's@$@ %@' \ + -e 's@^\(\([^ ]*\).*\)@\1\2@' \ + -e 's@\(.*<\[* *\([^ ]*\)\.enc\(.*\)\)@\1 \2@' \ + -e '/%[^ ]*$/s@$@ default@' \ + -e 's@\(.*<<* *\([^ ]*\)\.pf[ab].*\)@\1 \2@' \ + -e '/%[^ ]* [^ ]*$/s@\( \([^ ]*\).*\)$@\1 \2@' \ + -e 's@\(.*[" ]\([.0-9-][.0-9-]*\) *ExtendFont.*\)@\1 -e \2@' \ + -e 's@\(.*[" ]\([.0-9-][.0-9-]*\) *SlantFont.*\)@\1 -s \2@' \ + -e 's@.*%@@' | + awk '$1 == $3 && $2 == "default" {$2=""; $3=""} {print}' > $tmp8 + + egrep '^(cm|eu|la|lc|line|msam|xy)' $tmp8 \ + | sed 's@$@ -r@; s@\(fmex[789]\) -r$@\1@' + egrep -v '^(cm|eu|la|lc|line|msam|xy)' $tmp8 +} + + +############################################################################### +# mkMaps() +# the main task of this script: create the output files +############################################################################### +mkMaps() +{ + newline=' +' + mode=`cfgval LW35` + dvipsPreferOutline=`cfgval dvipsPreferOutline` + dvipsDownloadBase35=`cfgval dvipsDownloadBase35` + pdftexDownloadBase14=`cfgval pdftexDownloadBase14` + dvipdfmDownloadBase14=`cfgval dvipdfmDownloadBase14` + + # defaults + test -z "$mode" && mode=URWkb + test -z "$dvipsPreferOutline" && dvipsPreferOutline=true + test -z "$dvipsDownloadBase35" && dvipsDownloadBase35=false + test -z "$pdftexDownloadBase14" && pdftexDownloadBase14=false + test -z "$dvipdfmDownloadBase14" && dvipdfmDownloadBase14=false + + outputFiles="$dvipsoutputdir/download35.map +$dvipsoutputdir/builtin35.map +$dvipsoutputdir/psfonts_t1.map +$dvipsoutputdir/psfonts_pk.map +$pdftexoutputdir/pdftex_dl14.map +$pdftexoutputdir/pdftex_ndl14.map +$dvipdfmoutputdir/dvipdfm_dl14.map +$dvipdfmoutputdir/dvipdfm_ndl14.map +$dvipsoutputdir/ps2pk.map" + + outputLinks="$dvipsoutputdir/psfonts.map +$pdftexoutputdir/pdftex.map +$dvipdfmoutputdir/dvipdfm.map" + + allOutput="$outputFiles +$outputLinks" + + notfound=false + OLDIFS=$IFS; IFS=$newline + for o in $allOutput; do + test -f "$o" || notfound=true + done + IFS=$OLDIFS + $notfound || texhashEnabled=false + + verboseCat <<-eof + updmap is creating new map files using the following configuration: + + config file: \`$cnfFile' + dvips output directory: \`$dvipsoutputdir' + pdftex output directory: \`$pdftexoutputdir' + dvipdfm output directory: \`$dvipdfmoutputdir' + + prefer outlines: \`$dvipsPreferOutline' + texhash enabled: \`$texhashEnabled' + download standard fonts (dvips): \`$dvipsDownloadBase35' + download standard fonts (pdftex): \`$pdftexDownloadBase14' + download standard fonts (dvipdfm): \`$dvipdfmDownloadBase14' +eof + + verboseMsg + verboseMsg "$progname: scanning for LW35 support files" + dvips35=`locateMap dvips35.map` || cleanup 1 + pdftex35=`locateMap pdftex35.map` || cleanup 1 + dvipdfm35=`locateMap dvipdfm35.map` || cleanup 1 + ps2pk35=`locateMap ps2pk35.map` || cleanup 1 + + if $chicken_mode; then + echo + echo "$progname: chicken mode, skipping all output generation, goodbye." + exit 0 + fi + + verboseMsg + verboseMsg "$progname: Scanning for MixedMap entries:" + catMaps '^MixedMap' > $tmp1 || cleanup 1 + + verboseMsg + verboseMsg "$progname: Scanning for Map entries:" + catMaps '^Map' > $tmp2 || cleanup 1 + verboseMsg + + # files should be world-readable + umask 022 + + OLDIFS=$IFS; IFS=$newline + for file in $allOutput; do + rm -f "$file" + cat > "$file" <<-eof + % $file: maintained by the script updmap. + % Don't change this file directly. Edit texmf/web2c/$cnfFileShort + % and run updmap to recreate this file. +eof + if test -n "$log"; then + cat >> "$file" <<-eof + % A log of the updmap run that has created this file is available here: + % $log +eof + fi + done + IFS=$OLDIFS + + verboseMsg "$progname: Generating output for ps2pk..." + { transLW35 "$ps2pk35"; cat $tmp1 $tmp2; } \ + | normalizeLines >> "$dvipsoutputdir/ps2pk.map" + + verboseMsg "$progname: Generating output for dvips..." + { transLW35 "$ps2pk35"; } \ + | normalizeLines >> "$dvipsoutputdir/download35.map" + { transLW35 "$dvips35"; } \ + | normalizeLines >> "$dvipsoutputdir/builtin35.map" + + if test "x$dvipsDownloadBase35" = xtrue; then + dftdvips=$ps2pk35 + else + dftdvips=$dvips35 + fi + { transLW35 "$dftdvips"; cat $tmp1 $tmp2; } \ + | normalizeLines >> "$dvipsoutputdir/psfonts_t1.map" + { transLW35 "$dftdvips"; cat $tmp2; } \ + | normalizeLines >> "$dvipsoutputdir/psfonts_pk.map" + + verboseMsg "$progname: Generating output for pdftex..." + # remove PaintType due to Sebastian's request + { transLW35 "$pdftex35"; cat $tmp1 $tmp2; } \ + | grep -v PaintType | grep . > $tmp3 + { transLW35 "$dvipdfm35"; cat $tmp1 $tmp2; } \ + | grep -v PaintType | grep . > $tmp6 + { transLW35 "$ps2pk35"; cat $tmp1 $tmp2; } \ + | grep -v PaintType | grep . > $tmp7 + + <$tmp3 normalizeLines >> "$pdftexoutputdir/pdftex_ndl14.map" + <$tmp7 normalizeLines >> "$pdftexoutputdir/pdftex_dl14.map" + + verboseMsg "$progname: Generating output for dvipdfm..." + <$tmp7 normalizeLines | dvips2dvipdfm | normalizeLines >> "$dvipdfmoutputdir/dvipdfm_dl14.map" + <$tmp6 normalizeLines | dvips2dvipdfm | normalizeLines >> "$dvipdfmoutputdir/dvipdfm_ndl14.map" + verboseMsg "$progname: All output generated." + verboseMsg + + setupSymlinks + $texhashEnabled && { $verbose && texhash || texhash >/dev/null 2>&1; } + + verboseMsg + verboseMsg "$progname: Files generated:" + OLDIFS=$IFS; IFS=$newline + ls -l $outputFiles | verboseCat + IFS=$OLDIFS + verboseMsg + + verboseMsg "$progname: Map file links or copies:" + ls -l "$dvipsoutputdir"/psfonts.map \ + "$pdftexoutputdir"/pdftex.map \ + "$dvipdfmoutputdir"/dvipdfm.map | verboseCat + + if test -f $mapWarnCalled; then + m=" + +!!! NOTICE: + + With this release, the search paths for map files have been changed + and we have found that some files exist in the new path as well as + in the obsolete path. + + This is not an error per se, but please consider removing duplicates + from the old location and search the above output" + + test -n "$log" && m="$m or the transcript file + $log + " + + m="$m for warnings. + + For more information about the changed search paths, see + the release notes section in the teTeX manual. You probably + can read this document by executing the command + texdoc TETEXDOC + else visit the web page + http://tug.org/texlive/mapenc.html +" + warn "$m" + fi + + verboseMsg + verboseMsg "$progname: Done." + return 0 +} + +############################################################################### +# main() +# execution starts here +############################################################################### +main() +{ + # initialize global variables + progname=updmap + cmd= + log= + chicken_mode=false + link_cmd="ln -s" + copy_cmd="cp" + copy=false + + cfgparam= + outputdirparam= + cfgmaint= + texhashEnabled=true + mkmapEnabled=true + verbose=true + needsCleanup=false + + cnfFileShort=updmap.cfg + cnfFile= + dvipsoutputdir=; pdftexoutputdir=; dvipdfmoutputdir= + : ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`} + + tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$ + tmp1=$tmpdir/a + tmp2=$tmpdir/b + tmp3=$tmpdir/c + tmp4=$tmpdir/d + tmp5=$tmpdir/e + tmp6=$tmpdir/f + tmp7=$tmpdir/g + tmp8=$tmpdir/h + mapWarnCalled=$tmpdir/mapWarnCalled + catMapsFailed=$tmpdir/catMapsFailed + + processOptions ${1+"$@"} + + case "$cmd" in + showoptions) showOptions "$showoptionsItem"; (exit 0); exit;; + help) help; (exit 0); exit;; + esac + + setupCfgFile + case "$cmd" in + listmaps) listMaps; (exit 0); exit;; + listavailablemaps) listAvailableMaps; (exit 0); exit;; + esac + + # keep a copy of config file, so that we can see if the file was modified + setupTmpDir + + if test -n "$cfgmaint"; then + if test -z "$cfgparam"; then + co=`"$TEXMFMAIN/texconfig/tcfmgr" --tmp $tmpdir --cmd co --file $cnfFileShort` + test $? = 0 || cleanup 1 + set x $co; shift + id=$1; cnfFile=$3; orig=$4 + verboseMsg "$progname: initial config file is \`$orig'" + else + verboseMsg "$progname: config file is \`$cnfFile'" + cp "$cnfFile" $tmp5 + fi + + case "$cmd" in + edit) + ${VISUAL-${EDITOR-vi}} "$cnfFile";; + setoption) + setOption "$setoptionOpt" "$setoptionVal";; + enable) + enableMap "$enableMapType" "$enableMapFile";; + disable) + disableMap "$disableMapFile";; + syncwithtrees) + syncWithTrees;; + esac + + unchanged=true + if test -z "$cfgparam"; then + ci=`"$TEXMFMAIN/texconfig/tcfmgr" --tmp $tmpdir --cmd ci --id $id` + test $? = 0 || cleanup 1 + case "$ci" in + "") : ;; + *) unchanged=false + cnfFile=$ci + ;; + esac + else + cmp "$cnfFile" $tmp5 >/dev/null 2>&1 || unchanged=false + fi + case $unchanged in + true) if $mkmapEnabled; then + verboseMsg "$progname: configuration (updmap.cfg) unchanged. Map files will not be recreated." + mkmapEnabled=false + else + verboseMsg "$progname: configuration (updmap.cfg) unchanged." + fi;; + *) + verboseMsg "$progname: configuration file updated: \`$cnfFile'";; + esac + fi + + $mkmapEnabled || return + setupDestDir + mkMaps +} + +main ${1+"$@"} +cleanup 0 diff --git a/Master/bin/i386-cygwin/updmap-sys b/Master/bin/i386-cygwin/updmap-sys new file mode 100755 index 00000000000..6f3c8365658 --- /dev/null +++ b/Master/bin/i386-cygwin/updmap-sys @@ -0,0 +1,30 @@ +#!/bin/sh + +# updmap-sys: Thomas Esser, public domain. + +# wrapper script for updmap with TEXMFVAR and TEXMFCONFIG set to +# TEXMFSYSVAR / TEXMFSYSCONFIG + +test -f /bin/ksh && test -z "$RUNNING_KSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xULTRIX; } 2>/dev/null \ + && { RUNNING_KSH=true; export RUNNING_KSH; exec /bin/ksh $0 ${1+"$@"}; } +unset RUNNING_KSH + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && { UNAMES=`uname -s`; test "x$UNAMES" = xAIX; } 2>/dev/null \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +unset RUNNING_BSH + +export PATH + +# hack around a bug in zsh: +test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' + +v=`kpsewhich -var-value TEXMFSYSVAR` +c=`kpsewhich -var-value TEXMFSYSCONFIG` + +TEXMFVAR="$v" +TEXMFCONFIG="$c" +export TEXMFVAR TEXMFCONFIG + +exec updmap ${1+"$@"} diff --git a/Master/bin/i386-cygwin/utf8mex b/Master/bin/i386-cygwin/utf8mex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/utf8mex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/vftovp.exe b/Master/bin/i386-cygwin/vftovp.exe Binary files differnew file mode 100755 index 00000000000..930ef5a03dc --- /dev/null +++ b/Master/bin/i386-cygwin/vftovp.exe diff --git a/Master/bin/i386-cygwin/vlna.exe b/Master/bin/i386-cygwin/vlna.exe Binary files differnew file mode 100755 index 00000000000..709e4ec26ca --- /dev/null +++ b/Master/bin/i386-cygwin/vlna.exe diff --git a/Master/bin/i386-cygwin/vpe b/Master/bin/i386-cygwin/vpe new file mode 120000 index 00000000000..ed1727b6ff8 --- /dev/null +++ b/Master/bin/i386-cygwin/vpe @@ -0,0 +1 @@ +../../texmf-dist/scripts/vpe/vpe.pl
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/vptovf.exe b/Master/bin/i386-cygwin/vptovf.exe Binary files differnew file mode 100755 index 00000000000..22b0dfd0492 --- /dev/null +++ b/Master/bin/i386-cygwin/vptovf.exe diff --git a/Master/bin/i386-cygwin/weave.exe b/Master/bin/i386-cygwin/weave.exe Binary files differnew file mode 100755 index 00000000000..36315b64924 --- /dev/null +++ b/Master/bin/i386-cygwin/weave.exe diff --git a/Master/bin/i386-cygwin/xdvi b/Master/bin/i386-cygwin/xdvi new file mode 100755 index 00000000000..29632097df1 --- /dev/null +++ b/Master/bin/i386-cygwin/xdvi @@ -0,0 +1,53 @@ +#!/bin/sh + +# This is the xdvi wrapper script for teTeX, version 0.2. +# Copyright Thomas Esser, 1998. Permission to distribute under the terms +# of the GNU general public license version 2 or later. + +# This script sets some environment variables to make sure that xdvi's +# resource file in $XDVIINPUTS/xdvi is read by xdvi.bin. + +test -f /bin/sh5 && test -z "$RUNNING_SH5" \ + && test x"`(uname -s) 2>&1`" = xULTRIX \ + && { RUNNING_SH5=true; export RUNNING_SH5; exec /bin/sh5 $0 ${1+"$@"}; } +RUNNING_SH5= + +test -f /bin/bsh && test -z "$RUNNING_BSH" \ + && test x"`(uname -s) 2>&1`" = xAIX \ + && { RUNNING_BSH=true; export RUNNING_BSH; exec /bin/bsh $0 ${1+"$@"}; } +RUNNING_BSH= + +# -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 $BASE_NAME";; +esac + +xdviappfile=`kpsewhich -progname=xdvi --format='other text files' XDvi` +if test -n "$xdviappfile"; then + xdviappdir=`dirname "$xdviappfile"` + xdviapppath="${xdviappdir}/%l_%t/%N:${xdviappdir}/%N" + + # For R3, we have to set XAPPLRESDIR. + ### SU: removed, xdvik won't work with R3 anyway, and XAPPLRESDIR is + ### for user customizations in current X + ### XAPPLRESDIR="$xdviappdir"; export XAPPLRESDIR + + # For R4 or later, we have to set XFILESEARCHPATH, since XAPPLRESDIR might + # be ignored (if XUSERFILESEARCHPATH is set) + XFILESEARCHPATH="$xdviapppath:${XFILESEARCHPATH-%D}"; export XFILESEARCHPATH +fi + +exec xdvi-xaw $NAMEOPT ${1+"$@"} diff --git a/Master/bin/i386-cygwin/xdvi-xaw.exe b/Master/bin/i386-cygwin/xdvi-xaw.exe Binary files differnew file mode 100755 index 00000000000..c6c9f6a5abe --- /dev/null +++ b/Master/bin/i386-cygwin/xdvi-xaw.exe diff --git a/Master/bin/i386-cygwin/xdvipdfmx.exe b/Master/bin/i386-cygwin/xdvipdfmx.exe Binary files differnew file mode 100755 index 00000000000..8d5d4566554 --- /dev/null +++ b/Master/bin/i386-cygwin/xdvipdfmx.exe diff --git a/Master/bin/i386-cygwin/xelatex b/Master/bin/i386-cygwin/xelatex new file mode 120000 index 00000000000..0778769767d --- /dev/null +++ b/Master/bin/i386-cygwin/xelatex @@ -0,0 +1 @@ +xetex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/xetex.exe b/Master/bin/i386-cygwin/xetex.exe Binary files differnew file mode 100755 index 00000000000..58f74d5bbe8 --- /dev/null +++ b/Master/bin/i386-cygwin/xetex.exe diff --git a/Master/bin/i386-cygwin/xmltex b/Master/bin/i386-cygwin/xmltex new file mode 120000 index 00000000000..c9c63b15f24 --- /dev/null +++ b/Master/bin/i386-cygwin/xmltex @@ -0,0 +1 @@ +pdftex.exe
\ No newline at end of file diff --git a/Master/bin/i386-cygwin/xmltools b/Master/bin/i386-cygwin/xmltools new file mode 120000 index 00000000000..873458dcc92 --- /dev/null +++ b/Master/bin/i386-cygwin/xmltools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/xmltools
\ No newline at end of file |