diff options
634 files changed, 19379 insertions, 1 deletions
diff --git a/Master/bin/amd64-freebsd/a2ping b/Master/bin/amd64-freebsd/a2ping new file mode 120000 index 00000000000..5cbfe106996 --- /dev/null +++ b/Master/bin/amd64-freebsd/a2ping @@ -0,0 +1 @@ +../../texmf/scripts/a2ping/a2ping.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/afm2afm b/Master/bin/amd64-freebsd/afm2afm new file mode 120000 index 00000000000..c242f1124f6 --- /dev/null +++ b/Master/bin/amd64-freebsd/afm2afm @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/afm2afm
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/afm2pl b/Master/bin/amd64-freebsd/afm2pl Binary files differnew file mode 100755 index 00000000000..fda0f8fb690 --- /dev/null +++ b/Master/bin/amd64-freebsd/afm2pl diff --git a/Master/bin/amd64-freebsd/afm2tfm b/Master/bin/amd64-freebsd/afm2tfm Binary files differnew file mode 100755 index 00000000000..00075bac9ee --- /dev/null +++ b/Master/bin/amd64-freebsd/afm2tfm diff --git a/Master/bin/amd64-freebsd/aleph b/Master/bin/amd64-freebsd/aleph Binary files differnew file mode 100755 index 00000000000..ff81066890f --- /dev/null +++ b/Master/bin/amd64-freebsd/aleph diff --git a/Master/bin/amd64-freebsd/allcm b/Master/bin/amd64-freebsd/allcm new file mode 100755 index 00000000000..945c7c88457 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/allec b/Master/bin/amd64-freebsd/allec new file mode 120000 index 00000000000..6d5b04d0d35 --- /dev/null +++ b/Master/bin/amd64-freebsd/allec @@ -0,0 +1 @@ +allcm
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/allneeded b/Master/bin/amd64-freebsd/allneeded new file mode 100755 index 00000000000..15c62c84adb --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/amstex b/Master/bin/amd64-freebsd/amstex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/amstex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/asy b/Master/bin/amd64-freebsd/asy Binary files differnew file mode 100755 index 00000000000..07cef668d44 --- /dev/null +++ b/Master/bin/amd64-freebsd/asy diff --git a/Master/bin/amd64-freebsd/autoinst b/Master/bin/amd64-freebsd/autoinst new file mode 120000 index 00000000000..7986da227cb --- /dev/null +++ b/Master/bin/amd64-freebsd/autoinst @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/autoinst
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/bbox b/Master/bin/amd64-freebsd/bbox Binary files differnew file mode 100755 index 00000000000..6ce7005e4b7 --- /dev/null +++ b/Master/bin/amd64-freebsd/bbox diff --git a/Master/bin/amd64-freebsd/bg5+latex b/Master/bin/amd64-freebsd/bg5+latex new file mode 120000 index 00000000000..1366a36e76c --- /dev/null +++ b/Master/bin/amd64-freebsd/bg5+latex @@ -0,0 +1 @@ +gbklatex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/bg5+pdflatex b/Master/bin/amd64-freebsd/bg5+pdflatex new file mode 120000 index 00000000000..1e0ce565ca7 --- /dev/null +++ b/Master/bin/amd64-freebsd/bg5+pdflatex @@ -0,0 +1 @@ +gbkpdflatex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/bg5conv b/Master/bin/amd64-freebsd/bg5conv Binary files differnew file mode 100755 index 00000000000..92a53f6150a --- /dev/null +++ b/Master/bin/amd64-freebsd/bg5conv diff --git a/Master/bin/amd64-freebsd/bg5latex b/Master/bin/amd64-freebsd/bg5latex new file mode 100755 index 00000000000..257a8446e21 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/bg5pdflatex b/Master/bin/amd64-freebsd/bg5pdflatex new file mode 100755 index 00000000000..80adc376a93 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/bibtex b/Master/bin/amd64-freebsd/bibtex Binary files differnew file mode 100755 index 00000000000..428a96f9606 --- /dev/null +++ b/Master/bin/amd64-freebsd/bibtex diff --git a/Master/bin/amd64-freebsd/bibtex8 b/Master/bin/amd64-freebsd/bibtex8 Binary files differnew file mode 100755 index 00000000000..e3130cc16e3 --- /dev/null +++ b/Master/bin/amd64-freebsd/bibtex8 diff --git a/Master/bin/amd64-freebsd/cachepic b/Master/bin/amd64-freebsd/cachepic new file mode 120000 index 00000000000..f51faf9afc3 --- /dev/null +++ b/Master/bin/amd64-freebsd/cachepic @@ -0,0 +1 @@ +../../texmf-dist/scripts/cachepic/cachepic.tlu
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/cef5conv b/Master/bin/amd64-freebsd/cef5conv Binary files differnew file mode 100755 index 00000000000..92eddb447b6 --- /dev/null +++ b/Master/bin/amd64-freebsd/cef5conv diff --git a/Master/bin/amd64-freebsd/cef5latex b/Master/bin/amd64-freebsd/cef5latex new file mode 100755 index 00000000000..7eda1633766 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/cef5pdflatex b/Master/bin/amd64-freebsd/cef5pdflatex new file mode 100755 index 00000000000..25fe066a53f --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/cefconv b/Master/bin/amd64-freebsd/cefconv Binary files differnew file mode 100755 index 00000000000..39cb1f85b63 --- /dev/null +++ b/Master/bin/amd64-freebsd/cefconv diff --git a/Master/bin/amd64-freebsd/ceflatex b/Master/bin/amd64-freebsd/ceflatex new file mode 100755 index 00000000000..d34244d9a5b --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/cefpdflatex b/Master/bin/amd64-freebsd/cefpdflatex new file mode 100755 index 00000000000..4c7309f2bf2 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/cefsconv b/Master/bin/amd64-freebsd/cefsconv Binary files differnew file mode 100755 index 00000000000..0cc64932cf5 --- /dev/null +++ b/Master/bin/amd64-freebsd/cefsconv diff --git a/Master/bin/amd64-freebsd/cefslatex b/Master/bin/amd64-freebsd/cefslatex new file mode 100755 index 00000000000..619d08c7577 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/cefspdflatex b/Master/bin/amd64-freebsd/cefspdflatex new file mode 100755 index 00000000000..02bf6598f71 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/cfftot1 b/Master/bin/amd64-freebsd/cfftot1 Binary files differnew file mode 100755 index 00000000000..b0c58afebb9 --- /dev/null +++ b/Master/bin/amd64-freebsd/cfftot1 diff --git a/Master/bin/amd64-freebsd/cmap2enc b/Master/bin/amd64-freebsd/cmap2enc new file mode 120000 index 00000000000..facef66a9b8 --- /dev/null +++ b/Master/bin/amd64-freebsd/cmap2enc @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/cmap2enc
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/context b/Master/bin/amd64-freebsd/context new file mode 120000 index 00000000000..fd177847393 --- /dev/null +++ b/Master/bin/amd64-freebsd/context @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/context
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/cslatex b/Master/bin/amd64-freebsd/cslatex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/cslatex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/csplain b/Master/bin/amd64-freebsd/csplain new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/csplain @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/ctangle b/Master/bin/amd64-freebsd/ctangle Binary files differnew file mode 100755 index 00000000000..59b2959bf1a --- /dev/null +++ b/Master/bin/amd64-freebsd/ctangle diff --git a/Master/bin/amd64-freebsd/ctie b/Master/bin/amd64-freebsd/ctie Binary files differnew file mode 100755 index 00000000000..030d7b095c9 --- /dev/null +++ b/Master/bin/amd64-freebsd/ctie diff --git a/Master/bin/amd64-freebsd/ctxtools b/Master/bin/amd64-freebsd/ctxtools new file mode 120000 index 00000000000..66237b28340 --- /dev/null +++ b/Master/bin/amd64-freebsd/ctxtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/ctxtools
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/cweave b/Master/bin/amd64-freebsd/cweave Binary files differnew file mode 100755 index 00000000000..ed611a28612 --- /dev/null +++ b/Master/bin/amd64-freebsd/cweave diff --git a/Master/bin/amd64-freebsd/detex b/Master/bin/amd64-freebsd/detex Binary files differnew file mode 100755 index 00000000000..eea5fa59c1a --- /dev/null +++ b/Master/bin/amd64-freebsd/detex diff --git a/Master/bin/amd64-freebsd/devnag b/Master/bin/amd64-freebsd/devnag Binary files differnew file mode 100755 index 00000000000..06d9f423c28 --- /dev/null +++ b/Master/bin/amd64-freebsd/devnag diff --git a/Master/bin/amd64-freebsd/disdvi b/Master/bin/amd64-freebsd/disdvi Binary files differnew file mode 100755 index 00000000000..8398e2e24df --- /dev/null +++ b/Master/bin/amd64-freebsd/disdvi diff --git a/Master/bin/amd64-freebsd/dt2dv b/Master/bin/amd64-freebsd/dt2dv Binary files differnew file mode 100755 index 00000000000..654772520be --- /dev/null +++ b/Master/bin/amd64-freebsd/dt2dv diff --git a/Master/bin/amd64-freebsd/dv2dt b/Master/bin/amd64-freebsd/dv2dt Binary files differnew file mode 100755 index 00000000000..c03ab61eed5 --- /dev/null +++ b/Master/bin/amd64-freebsd/dv2dt diff --git a/Master/bin/amd64-freebsd/dvi2fax b/Master/bin/amd64-freebsd/dvi2fax new file mode 100755 index 00000000000..fdfa83211eb --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/dvi2tty b/Master/bin/amd64-freebsd/dvi2tty Binary files differnew file mode 100755 index 00000000000..8a69cbb8b45 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvi2tty diff --git a/Master/bin/amd64-freebsd/dviasm b/Master/bin/amd64-freebsd/dviasm new file mode 120000 index 00000000000..2b15762a267 --- /dev/null +++ b/Master/bin/amd64-freebsd/dviasm @@ -0,0 +1 @@ +../../texmf-dist/scripts/dviasm/dviasm.py
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/dvibook b/Master/bin/amd64-freebsd/dvibook Binary files differnew file mode 100755 index 00000000000..a4f0fc02690 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvibook diff --git a/Master/bin/amd64-freebsd/dviconcat b/Master/bin/amd64-freebsd/dviconcat Binary files differnew file mode 100755 index 00000000000..47fb79dcf1c --- /dev/null +++ b/Master/bin/amd64-freebsd/dviconcat diff --git a/Master/bin/amd64-freebsd/dvicopy b/Master/bin/amd64-freebsd/dvicopy Binary files differnew file mode 100755 index 00000000000..69e0c38ecb9 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvicopy diff --git a/Master/bin/amd64-freebsd/dvidvi b/Master/bin/amd64-freebsd/dvidvi Binary files differnew file mode 100755 index 00000000000..a74bc8c32e8 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvidvi diff --git a/Master/bin/amd64-freebsd/dvigif b/Master/bin/amd64-freebsd/dvigif new file mode 120000 index 00000000000..c1eef0afe05 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvigif @@ -0,0 +1 @@ +dvipng
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/dvihp b/Master/bin/amd64-freebsd/dvihp new file mode 100755 index 00000000000..6b149517086 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/dvilj b/Master/bin/amd64-freebsd/dvilj Binary files differnew file mode 100755 index 00000000000..62ca8a54e9e --- /dev/null +++ b/Master/bin/amd64-freebsd/dvilj diff --git a/Master/bin/amd64-freebsd/dvilj2p b/Master/bin/amd64-freebsd/dvilj2p Binary files differnew file mode 100755 index 00000000000..923a7348213 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvilj2p diff --git a/Master/bin/amd64-freebsd/dvilj4 b/Master/bin/amd64-freebsd/dvilj4 Binary files differnew file mode 100755 index 00000000000..36d6fbe5629 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvilj4 diff --git a/Master/bin/amd64-freebsd/dvilj4l b/Master/bin/amd64-freebsd/dvilj4l Binary files differnew file mode 100755 index 00000000000..bb6075010f6 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvilj4l diff --git a/Master/bin/amd64-freebsd/dvilj6 b/Master/bin/amd64-freebsd/dvilj6 new file mode 120000 index 00000000000..576e6e449cd --- /dev/null +++ b/Master/bin/amd64-freebsd/dvilj6 @@ -0,0 +1 @@ +dvilj4
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/dvilualatex b/Master/bin/amd64-freebsd/dvilualatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvilualatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/dviluatex b/Master/bin/amd64-freebsd/dviluatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/amd64-freebsd/dviluatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/dvipdfm b/Master/bin/amd64-freebsd/dvipdfm new file mode 120000 index 00000000000..ab4195592f6 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvipdfm @@ -0,0 +1 @@ +dvipdfmx
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/dvipdfmx b/Master/bin/amd64-freebsd/dvipdfmx Binary files differnew file mode 100755 index 00000000000..2b099dc08f0 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvipdfmx diff --git a/Master/bin/amd64-freebsd/dvipdft b/Master/bin/amd64-freebsd/dvipdft new file mode 100755 index 00000000000..3bcd0027db1 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvipdft @@ -0,0 +1,105 @@ +#!/bin/sh +# dvipdft, completely rewritten by Thomas Esser for teTeX after an +# original script by Mark A. Wicks +# +# Thomas Esser. Public Domain. +# +# Modified by Matthias Franz for dvipdfmx (when running as dvipdfm) and +# TeX Live. + +# 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. + +progname=dvipdft +version=20090604.0046 + +# set trap for error +trap ' + echo "$progname: fatal error." >&2 + exit 1 +' 1 + +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+"$@"}'='"$@"' + +help="Usage: $progname [options] dvifile + $progname --help + $progname --version" + +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 and others" + 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$@@'` + +ls "$outBase".[1-9]* >/dev/null 2>&1 && { + echo "$progname: Please move the following files out of the way:" >&2 + ls "$outBase".[1-9]* >&2 + exit 1 +} + +# restore args 1 to (n-1): +eval set x "$s"; shift + +# set trap for cleanup +trap ' + rm -f "$outBase".[1-9]* +' 0 + +# Run dvipdfm with the fastest options for the first pass +echo "$progname: running dvipdfm $@ -z0 $dvifile" >&2 +dvipdfm ${1+"$@"} -z0 "$dvifile" + +# run gs +echo "$progname: running gs" >&2 +gs -r10 -dNOPAUSE -dBATCH -sDEVICE=png256 -sOutputFile="$outBase.%d" "$outfile" + +# run dvipdfm with the users specified options for the last pass +echo "$progname: running dvipdfm -t $@ $dvifile" >&2 +dvipdfm ${1+"$@"} -t "$dvifile" diff --git a/Master/bin/amd64-freebsd/dvipng b/Master/bin/amd64-freebsd/dvipng Binary files differnew file mode 100755 index 00000000000..323ff1aeb3d --- /dev/null +++ b/Master/bin/amd64-freebsd/dvipng diff --git a/Master/bin/amd64-freebsd/dvipos b/Master/bin/amd64-freebsd/dvipos Binary files differnew file mode 100755 index 00000000000..6653267a0c1 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvipos diff --git a/Master/bin/amd64-freebsd/dvips b/Master/bin/amd64-freebsd/dvips Binary files differnew file mode 100755 index 00000000000..a2573ececf3 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvips diff --git a/Master/bin/amd64-freebsd/dvired b/Master/bin/amd64-freebsd/dvired new file mode 100755 index 00000000000..4eb3586119d --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/dviselect b/Master/bin/amd64-freebsd/dviselect Binary files differnew file mode 100755 index 00000000000..c2ddb42cf6d --- /dev/null +++ b/Master/bin/amd64-freebsd/dviselect diff --git a/Master/bin/amd64-freebsd/dvitodvi b/Master/bin/amd64-freebsd/dvitodvi Binary files differnew file mode 100755 index 00000000000..e5ff38fddd5 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvitodvi diff --git a/Master/bin/amd64-freebsd/dvitomp b/Master/bin/amd64-freebsd/dvitomp new file mode 120000 index 00000000000..96672bbb523 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvitomp @@ -0,0 +1 @@ +mpost
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/dvitype b/Master/bin/amd64-freebsd/dvitype Binary files differnew file mode 100755 index 00000000000..5bbda3b4780 --- /dev/null +++ b/Master/bin/amd64-freebsd/dvitype diff --git a/Master/bin/amd64-freebsd/e2pall b/Master/bin/amd64-freebsd/e2pall new file mode 120000 index 00000000000..47465883225 --- /dev/null +++ b/Master/bin/amd64-freebsd/e2pall @@ -0,0 +1 @@ +../../texmf/scripts/tetex/e2pall.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/ebb b/Master/bin/amd64-freebsd/ebb new file mode 120000 index 00000000000..ab4195592f6 --- /dev/null +++ b/Master/bin/amd64-freebsd/ebb @@ -0,0 +1 @@ +dvipdfmx
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/ebong b/Master/bin/amd64-freebsd/ebong new file mode 120000 index 00000000000..b0704cb4db1 --- /dev/null +++ b/Master/bin/amd64-freebsd/ebong @@ -0,0 +1 @@ +../../texmf-dist/scripts/bengali/ebong.py
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/eplain b/Master/bin/amd64-freebsd/eplain new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/eplain @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/epsffit b/Master/bin/amd64-freebsd/epsffit Binary files differnew file mode 100755 index 00000000000..f9624d4455c --- /dev/null +++ b/Master/bin/amd64-freebsd/epsffit diff --git a/Master/bin/amd64-freebsd/epspdf b/Master/bin/amd64-freebsd/epspdf new file mode 120000 index 00000000000..0195c700955 --- /dev/null +++ b/Master/bin/amd64-freebsd/epspdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/epspdf/epspdf
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/epspdftk b/Master/bin/amd64-freebsd/epspdftk new file mode 120000 index 00000000000..ef9d117fd47 --- /dev/null +++ b/Master/bin/amd64-freebsd/epspdftk @@ -0,0 +1 @@ +../../texmf-dist/scripts/epspdf/epspdftk
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/epstopdf b/Master/bin/amd64-freebsd/epstopdf new file mode 120000 index 00000000000..2356f54942b --- /dev/null +++ b/Master/bin/amd64-freebsd/epstopdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/epstopdf/epstopdf.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/etex b/Master/bin/amd64-freebsd/etex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/etex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/extconv b/Master/bin/amd64-freebsd/extconv Binary files differnew file mode 100755 index 00000000000..eb6b9c41c2c --- /dev/null +++ b/Master/bin/amd64-freebsd/extconv diff --git a/Master/bin/amd64-freebsd/extractbb b/Master/bin/amd64-freebsd/extractbb new file mode 120000 index 00000000000..ab4195592f6 --- /dev/null +++ b/Master/bin/amd64-freebsd/extractbb @@ -0,0 +1 @@ +dvipdfmx
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/extractres b/Master/bin/amd64-freebsd/extractres new file mode 100755 index 00000000000..c54056461a2 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fig4latex b/Master/bin/amd64-freebsd/fig4latex new file mode 120000 index 00000000000..6c515e55312 --- /dev/null +++ b/Master/bin/amd64-freebsd/fig4latex @@ -0,0 +1 @@ +../../texmf-dist/scripts/fig4latex/fig4latex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/findhyph b/Master/bin/amd64-freebsd/findhyph new file mode 120000 index 00000000000..31f10c8c0de --- /dev/null +++ b/Master/bin/amd64-freebsd/findhyph @@ -0,0 +1 @@ +../../texmf-dist/scripts/findhyph/findhyph
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/fixdlsrps b/Master/bin/amd64-freebsd/fixdlsrps new file mode 100755 index 00000000000..2a1d85a654c --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fixfmps b/Master/bin/amd64-freebsd/fixfmps new file mode 100755 index 00000000000..039ac8e5a3e --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fixmacps b/Master/bin/amd64-freebsd/fixmacps new file mode 100755 index 00000000000..f4cfdb10a9e --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fixpsditps b/Master/bin/amd64-freebsd/fixpsditps new file mode 100755 index 00000000000..2a1728a8204 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fixpspps b/Master/bin/amd64-freebsd/fixpspps new file mode 100755 index 00000000000..77bba66d6b7 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fixscribeps b/Master/bin/amd64-freebsd/fixscribeps new file mode 100755 index 00000000000..bd4e9a0e3e0 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fixtpps b/Master/bin/amd64-freebsd/fixtpps new file mode 100755 index 00000000000..4239bb9dfc5 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fixwfwps b/Master/bin/amd64-freebsd/fixwfwps new file mode 100755 index 00000000000..92d88443fe1 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fixwpps b/Master/bin/amd64-freebsd/fixwpps new file mode 100755 index 00000000000..83a5fdfaf0b --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fixwwps b/Master/bin/amd64-freebsd/fixwwps new file mode 100755 index 00000000000..bfd58c086da --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fmtutil b/Master/bin/amd64-freebsd/fmtutil new file mode 100755 index 00000000000..7b212f0e212 --- /dev/null +++ b/Master/bin/amd64-freebsd/fmtutil @@ -0,0 +1,981 @@ +#!/bin/sh +# fmtutil - utility to maintain format files. +# Public domain. Originally written by Thomas Esser. + +# 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 Ma 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=20091009.0222 + +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 +} + +############################################################################### +# help() and version() +# display help (or version) message and exit +############################################################################### +help() +{ + cat <<'eof' +Usage: fmtutil [OPTION]... CMD [ARG]... + +Rebuild, manage, and otherwise manipulate TeX formats (and Metafont +bases and MetaPost mems). + +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 + --byengine ENGINENAME (re)create formats using ENGINENAME + --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 config file + --version show version info + --help show this message + +The config file is named fmtutil.cnf, and +running kpsewhich fmtutil.cnf should show the active file. +eof + cleanup 0 +} + +version() +{ + cat <<eof +$progname version $version +eof + cleanup 0 +} + +############################################################################### +# 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 +} + +############################################################################### +# 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_warnings; then + { + cat <<eof + +############################################################################### +$progname: Warning! Some warnings have been issued. +Visit the log files in directory + $destdir +for details. +############################################################################### + +This is a summary of all \`warning' messages: +$log_warning_msg +eof + } >&2 + fi + + 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: +$log_failure_msg +eof + } >&2 + cleanup 1 + else + cleanup 0 + fi +} + +############################################################################### +# init_log_warning() +# reset the list of warning messages +############################################################################### +init_log_warning() +{ + log_warning_msg= + has_warnings=false +} + +############################################################################### +# init_log_failure() +# reset the list of failure messages +############################################################################### +init_log_failure() +{ + log_failure_msg= + has_errors=false +} + +############################################################################### +# log_warning(errmsg) +# report and save warning message `errmsg' +############################################################################### +log_warning() +{ + echo "Warning: $@" >&2 + if test -z "$log_warning_msg"; then + log_warning_msg="$@" + else + OLDIFS=$IFS; IFS= + log_warning_msg="$log_warning_msg +$@" + IFS=$OLDIFS + fi + has_warnings=true +} + +############################################################################### +# 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;; + --byengine) + shift; cmd=byengine; arg=$1;; + --byengine=*) + cmd=byengine; arg=`echo "$1" | sed 's/--byengine=//'`; shift ;; + --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 + init_log_warning + # execute the desired command: + case "$cmd" in + all) + recreate_all;; + missing) + create_missing;; + refresh) + recreate_existing;; + byengine) + recreate_by_engine "$arg";; + 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="$@" + + case "$engine" in + mpost) fmtfile="$format.mem"; kpsefmt=mp; texengine=metapost;; + mf|mfw|mf-nowin) fmtfile="$format.base"; kpsefmt=mf; texengine=metafont;; + *) fmtfile="$format.fmt"; kpsefmt=tex; texengine=$engine;; + esac + + # remove any * for the sake of the kpsewhich lookup. + eval lastarg=\$$# + inifile=`echo $lastarg | sed 's%^\*%%'` + + # 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_warning "\`$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 + # + destfile=$fulldestdir/$fmtfile + if mv "$fmtfile" "$destfile" </dev/null; then + verboseMsg "$progname: $destfile installed." + # + # As a special special case, we create mplib-luatex.mem for use by + # the mplib embedded in luatex if it doesn't already exist. (We + # never update it if it does exist.) + # + # This is used by the luamplib package. This way, an expert user + # who wants to try a new version of luatex (hence with a new + # version of mplib) can manually update mplib-luatex.mem without + # having to tamper with mpost itself. + # + if test "x$format" = xmpost && test "x$engine" = xmpost; then + mplib_mem_name=mplib-luatex.mem + mplib_mem_file=$fulldestdir/$mplib_mem_name + if test \! -f $mplib_mem_file; then + verboseMsg "$progname: copying $destfile to $mplib_mem_file" + if cp "$destfile" "$mplib_mem_file" </dev/null; then + mktexupd "$fulldestdir" "$mplib_mem_name" + else + log_warning "cp $destfile $mplib_mem_file failed." + fi + else + verboseMsg "$progname: $mplib_mem_file already exists, not updating." + fi + fi + # + # Echo the (main) output filename for our caller. + $mktexfmtMode && $mktexfmtFirst \ + && echo "$destfile" && 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 hyphen file \`$hyphenfile'" +} + +############################################################################### +# recreate_by_engine(enginename) +# recreate all formats that are based on enginename +############################################################################### +recreate_by_engine() +{ + enginename=$1 + + match_cmd="test x\$engine = x$enginename" + + # No match before the loop: + setmatch false + + recreate_loop + + # Now check if there was at least one match: + getmatch || abort "no format depends on engine \`$enginename'" +} + + + +############################################################################### +# 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/amd64-freebsd/fmtutil-sys b/Master/bin/amd64-freebsd/fmtutil-sys new file mode 100755 index 00000000000..bfb52f94e1f --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/font2afm b/Master/bin/amd64-freebsd/font2afm new file mode 120000 index 00000000000..b9cc2541efe --- /dev/null +++ b/Master/bin/amd64-freebsd/font2afm @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/font2afm
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/fontinst b/Master/bin/amd64-freebsd/fontinst new file mode 100755 index 00000000000..7d1271517ad --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/fragmaster b/Master/bin/amd64-freebsd/fragmaster new file mode 120000 index 00000000000..ca1bb398b4b --- /dev/null +++ b/Master/bin/amd64-freebsd/fragmaster @@ -0,0 +1 @@ +../../texmf-dist/scripts/fragmaster/fragmaster.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/gbklatex b/Master/bin/amd64-freebsd/gbklatex new file mode 100755 index 00000000000..f799f7b6e63 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/gbkpdflatex b/Master/bin/amd64-freebsd/gbkpdflatex new file mode 100755 index 00000000000..6dd3ee3de9e --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/getafm b/Master/bin/amd64-freebsd/getafm new file mode 100755 index 00000000000..1c6cd21cf77 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/getnonfreefonts b/Master/bin/amd64-freebsd/getnonfreefonts new file mode 120000 index 00000000000..2dc7d81d482 --- /dev/null +++ b/Master/bin/amd64-freebsd/getnonfreefonts @@ -0,0 +1 @@ +../../texmf/scripts/getnonfreefonts/getnonfreefonts.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/getnonfreefonts-sys b/Master/bin/amd64-freebsd/getnonfreefonts-sys new file mode 120000 index 00000000000..d1e30f335dd --- /dev/null +++ b/Master/bin/amd64-freebsd/getnonfreefonts-sys @@ -0,0 +1 @@ +getnonfreefonts
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/gftodvi b/Master/bin/amd64-freebsd/gftodvi Binary files differnew file mode 100755 index 00000000000..4db254a35af --- /dev/null +++ b/Master/bin/amd64-freebsd/gftodvi diff --git a/Master/bin/amd64-freebsd/gftopk b/Master/bin/amd64-freebsd/gftopk Binary files differnew file mode 100755 index 00000000000..1b4419ad48b --- /dev/null +++ b/Master/bin/amd64-freebsd/gftopk diff --git a/Master/bin/amd64-freebsd/gftype b/Master/bin/amd64-freebsd/gftype Binary files differnew file mode 100755 index 00000000000..9020c315e5b --- /dev/null +++ b/Master/bin/amd64-freebsd/gftype diff --git a/Master/bin/amd64-freebsd/gsftopk b/Master/bin/amd64-freebsd/gsftopk Binary files differnew file mode 100755 index 00000000000..f51a0cf5c9d --- /dev/null +++ b/Master/bin/amd64-freebsd/gsftopk diff --git a/Master/bin/amd64-freebsd/hbf2gf b/Master/bin/amd64-freebsd/hbf2gf Binary files differnew file mode 100755 index 00000000000..b766cf65003 --- /dev/null +++ b/Master/bin/amd64-freebsd/hbf2gf diff --git a/Master/bin/amd64-freebsd/ht b/Master/bin/amd64-freebsd/ht new file mode 120000 index 00000000000..ecd829558cd --- /dev/null +++ b/Master/bin/amd64-freebsd/ht @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/ht.sh
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/htcontext b/Master/bin/amd64-freebsd/htcontext new file mode 120000 index 00000000000..d2754ae84fc --- /dev/null +++ b/Master/bin/amd64-freebsd/htcontext @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htcontext.sh
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/htlatex b/Master/bin/amd64-freebsd/htlatex new file mode 120000 index 00000000000..fe0feaa8185 --- /dev/null +++ b/Master/bin/amd64-freebsd/htlatex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htlatex.sh
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/htmex b/Master/bin/amd64-freebsd/htmex new file mode 120000 index 00000000000..29032d7b670 --- /dev/null +++ b/Master/bin/amd64-freebsd/htmex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htmex.sh
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/httex b/Master/bin/amd64-freebsd/httex new file mode 120000 index 00000000000..ece1bd19046 --- /dev/null +++ b/Master/bin/amd64-freebsd/httex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/httex.sh
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/httexi b/Master/bin/amd64-freebsd/httexi new file mode 120000 index 00000000000..aa6cd5c8561 --- /dev/null +++ b/Master/bin/amd64-freebsd/httexi @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/httexi.sh
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/htxelatex b/Master/bin/amd64-freebsd/htxelatex new file mode 120000 index 00000000000..dcaa0fc882c --- /dev/null +++ b/Master/bin/amd64-freebsd/htxelatex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htxelatex.sh
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/htxetex b/Master/bin/amd64-freebsd/htxetex new file mode 120000 index 00000000000..c6cf37bfae9 --- /dev/null +++ b/Master/bin/amd64-freebsd/htxetex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htxetex.sh
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/includeres b/Master/bin/amd64-freebsd/includeres new file mode 100755 index 00000000000..4547357cd93 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/jadetex b/Master/bin/amd64-freebsd/jadetex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/jadetex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/kpseaccess b/Master/bin/amd64-freebsd/kpseaccess Binary files differnew file mode 100755 index 00000000000..b17f8b42375 --- /dev/null +++ b/Master/bin/amd64-freebsd/kpseaccess diff --git a/Master/bin/amd64-freebsd/kpsepath b/Master/bin/amd64-freebsd/kpsepath new file mode 120000 index 00000000000..30de0e13853 --- /dev/null +++ b/Master/bin/amd64-freebsd/kpsepath @@ -0,0 +1 @@ +kpsetool
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/kpsereadlink b/Master/bin/amd64-freebsd/kpsereadlink Binary files differnew file mode 100755 index 00000000000..4dacd34d452 --- /dev/null +++ b/Master/bin/amd64-freebsd/kpsereadlink diff --git a/Master/bin/amd64-freebsd/kpsestat b/Master/bin/amd64-freebsd/kpsestat Binary files differnew file mode 100755 index 00000000000..09b6671e113 --- /dev/null +++ b/Master/bin/amd64-freebsd/kpsestat diff --git a/Master/bin/amd64-freebsd/kpsetool b/Master/bin/amd64-freebsd/kpsetool new file mode 100755 index 00000000000..463097fd4a9 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/kpsewhere b/Master/bin/amd64-freebsd/kpsewhere new file mode 100755 index 00000000000..51088ee80d6 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/kpsewhich b/Master/bin/amd64-freebsd/kpsewhich Binary files differnew file mode 100755 index 00000000000..7cf541b69ca --- /dev/null +++ b/Master/bin/amd64-freebsd/kpsewhich diff --git a/Master/bin/amd64-freebsd/kpsexpand b/Master/bin/amd64-freebsd/kpsexpand new file mode 120000 index 00000000000..30de0e13853 --- /dev/null +++ b/Master/bin/amd64-freebsd/kpsexpand @@ -0,0 +1 @@ +kpsetool
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/lacheck b/Master/bin/amd64-freebsd/lacheck Binary files differnew file mode 100755 index 00000000000..b3074f8457f --- /dev/null +++ b/Master/bin/amd64-freebsd/lacheck diff --git a/Master/bin/amd64-freebsd/lamed b/Master/bin/amd64-freebsd/lamed new file mode 120000 index 00000000000..b02b132b9c1 --- /dev/null +++ b/Master/bin/amd64-freebsd/lamed @@ -0,0 +1 @@ +aleph
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/latex b/Master/bin/amd64-freebsd/latex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/latex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/latex2man b/Master/bin/amd64-freebsd/latex2man new file mode 120000 index 00000000000..66d79f878b7 --- /dev/null +++ b/Master/bin/amd64-freebsd/latex2man @@ -0,0 +1 @@ +../../texmf-dist/scripts/latex2man/latex2man
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/latexmk b/Master/bin/amd64-freebsd/latexmk new file mode 120000 index 00000000000..4993e09a4e9 --- /dev/null +++ b/Master/bin/amd64-freebsd/latexmk @@ -0,0 +1 @@ +../../texmf-dist/scripts/latexmk/latexmk.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/listings-ext.sh b/Master/bin/amd64-freebsd/listings-ext.sh new file mode 120000 index 00000000000..943db76d879 --- /dev/null +++ b/Master/bin/amd64-freebsd/listings-ext.sh @@ -0,0 +1 @@ +../../texmf-dist/scripts/listings-ext/listings-ext.sh
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/lualatex b/Master/bin/amd64-freebsd/lualatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/amd64-freebsd/lualatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/luatangle b/Master/bin/amd64-freebsd/luatangle Binary files differnew file mode 100755 index 00000000000..15093e5fb05 --- /dev/null +++ b/Master/bin/amd64-freebsd/luatangle diff --git a/Master/bin/amd64-freebsd/luatex b/Master/bin/amd64-freebsd/luatex Binary files differnew file mode 100755 index 00000000000..bf47fe1e992 --- /dev/null +++ b/Master/bin/amd64-freebsd/luatex diff --git a/Master/bin/amd64-freebsd/luatools b/Master/bin/amd64-freebsd/luatools new file mode 120000 index 00000000000..aaf03c419a9 --- /dev/null +++ b/Master/bin/amd64-freebsd/luatools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/lua/luatools.lua
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mag b/Master/bin/amd64-freebsd/mag Binary files differnew file mode 100755 index 00000000000..baca0c30254 --- /dev/null +++ b/Master/bin/amd64-freebsd/mag diff --git a/Master/bin/amd64-freebsd/makeglossaries b/Master/bin/amd64-freebsd/makeglossaries new file mode 120000 index 00000000000..526413aa3ea --- /dev/null +++ b/Master/bin/amd64-freebsd/makeglossaries @@ -0,0 +1 @@ +../../texmf-dist/scripts/glossaries/makeglossaries
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/makeindex b/Master/bin/amd64-freebsd/makeindex Binary files differnew file mode 100755 index 00000000000..e674555619a --- /dev/null +++ b/Master/bin/amd64-freebsd/makeindex diff --git a/Master/bin/amd64-freebsd/makempy b/Master/bin/amd64-freebsd/makempy new file mode 120000 index 00000000000..a3df543b304 --- /dev/null +++ b/Master/bin/amd64-freebsd/makempy @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/makempy
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/man b/Master/bin/amd64-freebsd/man new file mode 120000 index 00000000000..9616d4ec099 --- /dev/null +++ b/Master/bin/amd64-freebsd/man @@ -0,0 +1 @@ +../../texmf/doc/man
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/metafun b/Master/bin/amd64-freebsd/metafun new file mode 120000 index 00000000000..96672bbb523 --- /dev/null +++ b/Master/bin/amd64-freebsd/metafun @@ -0,0 +1 @@ +mpost
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mex b/Master/bin/amd64-freebsd/mex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/mex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mf b/Master/bin/amd64-freebsd/mf Binary files differnew file mode 100755 index 00000000000..f45cbc6652f --- /dev/null +++ b/Master/bin/amd64-freebsd/mf diff --git a/Master/bin/amd64-freebsd/mf-nowin b/Master/bin/amd64-freebsd/mf-nowin Binary files differnew file mode 100755 index 00000000000..b39d98d3f78 --- /dev/null +++ b/Master/bin/amd64-freebsd/mf-nowin diff --git a/Master/bin/amd64-freebsd/mfplain b/Master/bin/amd64-freebsd/mfplain new file mode 120000 index 00000000000..96672bbb523 --- /dev/null +++ b/Master/bin/amd64-freebsd/mfplain @@ -0,0 +1 @@ +mpost
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mft b/Master/bin/amd64-freebsd/mft Binary files differnew file mode 100755 index 00000000000..a2385c23206 --- /dev/null +++ b/Master/bin/amd64-freebsd/mft diff --git a/Master/bin/amd64-freebsd/mk4ht b/Master/bin/amd64-freebsd/mk4ht new file mode 120000 index 00000000000..4b7480809ba --- /dev/null +++ b/Master/bin/amd64-freebsd/mk4ht @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/mk4ht.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mkgrkindex b/Master/bin/amd64-freebsd/mkgrkindex new file mode 120000 index 00000000000..2dc602dd180 --- /dev/null +++ b/Master/bin/amd64-freebsd/mkgrkindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/mkgrkindex/mkgrkindex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mkindex b/Master/bin/amd64-freebsd/mkindex new file mode 100755 index 00000000000..565f805695d --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/mkjobtexmf b/Master/bin/amd64-freebsd/mkjobtexmf new file mode 120000 index 00000000000..90b7a69f9f5 --- /dev/null +++ b/Master/bin/amd64-freebsd/mkjobtexmf @@ -0,0 +1 @@ +../../texmf-dist/scripts/mkjobtexmf/mkjobtexmf.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mkocp b/Master/bin/amd64-freebsd/mkocp new file mode 100755 index 00000000000..41ffead8bf1 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/mkofm b/Master/bin/amd64-freebsd/mkofm new file mode 100755 index 00000000000..ef820171f08 --- /dev/null +++ b/Master/bin/amd64-freebsd/mkofm @@ -0,0 +1,3 @@ +#!/bin/sh +# Initial definition. For the moment only makes .tfm files. +mktextfm $* diff --git a/Master/bin/amd64-freebsd/mkt1font b/Master/bin/amd64-freebsd/mkt1font new file mode 120000 index 00000000000..9a87e88c93a --- /dev/null +++ b/Master/bin/amd64-freebsd/mkt1font @@ -0,0 +1 @@ +../../texmf-dist/scripts/accfonts/mkt1font
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mktexfmt b/Master/bin/amd64-freebsd/mktexfmt new file mode 120000 index 00000000000..817cc8aaa1b --- /dev/null +++ b/Master/bin/amd64-freebsd/mktexfmt @@ -0,0 +1 @@ +fmtutil
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mktexlsr b/Master/bin/amd64-freebsd/mktexlsr new file mode 100755 index 00000000000..77aa99e0042 --- /dev/null +++ b/Master/bin/amd64-freebsd/mktexlsr @@ -0,0 +1,201 @@ +#!/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 14402 2009-07-23 17:09:15Z karl $' +progname=`echo $0 | sed 's%.*/%%'` +usage="Usage: $progname [OPTION]... [DIR]... + +Rebuild ls-R filename databases used by TeX. 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. + +For more information, see the ‘Filename database’ section of +Kpathsea manual available at http://tug.org/kpathsea. + +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/amd64-freebsd/mktexmf b/Master/bin/amd64-freebsd/mktexmf new file mode 100755 index 00000000000..32bb85ec3d8 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/mktexpk b/Master/bin/amd64-freebsd/mktexpk new file mode 100755 index 00000000000..baed82a83fa --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/mktextfm b/Master/bin/amd64-freebsd/mktextfm new file mode 100755 index 00000000000..e695f8ffbf4 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/mllatex b/Master/bin/amd64-freebsd/mllatex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/mllatex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mltex b/Master/bin/amd64-freebsd/mltex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/mltex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mmafm b/Master/bin/amd64-freebsd/mmafm Binary files differnew file mode 100755 index 00000000000..828648fc0d2 --- /dev/null +++ b/Master/bin/amd64-freebsd/mmafm diff --git a/Master/bin/amd64-freebsd/mmpfb b/Master/bin/amd64-freebsd/mmpfb Binary files differnew file mode 100755 index 00000000000..cfb09c49144 --- /dev/null +++ b/Master/bin/amd64-freebsd/mmpfb diff --git a/Master/bin/amd64-freebsd/mpost b/Master/bin/amd64-freebsd/mpost Binary files differnew file mode 100755 index 00000000000..64484415c49 --- /dev/null +++ b/Master/bin/amd64-freebsd/mpost diff --git a/Master/bin/amd64-freebsd/mpstools b/Master/bin/amd64-freebsd/mpstools new file mode 120000 index 00000000000..caf4ae949f7 --- /dev/null +++ b/Master/bin/amd64-freebsd/mpstools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/mpstools
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mptopdf b/Master/bin/amd64-freebsd/mptopdf new file mode 120000 index 00000000000..83172e791cd --- /dev/null +++ b/Master/bin/amd64-freebsd/mptopdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/mptopdf
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mtxrun b/Master/bin/amd64-freebsd/mtxrun new file mode 120000 index 00000000000..8825f964657 --- /dev/null +++ b/Master/bin/amd64-freebsd/mtxrun @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/lua/mtxrun.lua
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/mtxtools b/Master/bin/amd64-freebsd/mtxtools new file mode 120000 index 00000000000..d99a8081bb9 --- /dev/null +++ b/Master/bin/amd64-freebsd/mtxtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/mtxtools
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/musixflx b/Master/bin/amd64-freebsd/musixflx Binary files differnew file mode 100755 index 00000000000..9ae9aeba428 --- /dev/null +++ b/Master/bin/amd64-freebsd/musixflx diff --git a/Master/bin/amd64-freebsd/odvicopy b/Master/bin/amd64-freebsd/odvicopy Binary files differnew file mode 100755 index 00000000000..5f84bcd838c --- /dev/null +++ b/Master/bin/amd64-freebsd/odvicopy diff --git a/Master/bin/amd64-freebsd/odvitype b/Master/bin/amd64-freebsd/odvitype Binary files differnew file mode 100755 index 00000000000..49a706eff72 --- /dev/null +++ b/Master/bin/amd64-freebsd/odvitype diff --git a/Master/bin/amd64-freebsd/ofm2opl b/Master/bin/amd64-freebsd/ofm2opl new file mode 120000 index 00000000000..b1299fc008c --- /dev/null +++ b/Master/bin/amd64-freebsd/ofm2opl @@ -0,0 +1 @@ +omfonts
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/omfonts b/Master/bin/amd64-freebsd/omfonts Binary files differnew file mode 100755 index 00000000000..0e07f325329 --- /dev/null +++ b/Master/bin/amd64-freebsd/omfonts diff --git a/Master/bin/amd64-freebsd/opl2ofm b/Master/bin/amd64-freebsd/opl2ofm new file mode 120000 index 00000000000..b1299fc008c --- /dev/null +++ b/Master/bin/amd64-freebsd/opl2ofm @@ -0,0 +1 @@ +omfonts
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/ot2kpx b/Master/bin/amd64-freebsd/ot2kpx new file mode 120000 index 00000000000..c96ab52671a --- /dev/null +++ b/Master/bin/amd64-freebsd/ot2kpx @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/ot2kpx
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/otangle b/Master/bin/amd64-freebsd/otangle Binary files differnew file mode 100755 index 00000000000..c977a4ff453 --- /dev/null +++ b/Master/bin/amd64-freebsd/otangle diff --git a/Master/bin/amd64-freebsd/otfinfo b/Master/bin/amd64-freebsd/otfinfo Binary files differnew file mode 100755 index 00000000000..b9c11ac9035 --- /dev/null +++ b/Master/bin/amd64-freebsd/otfinfo diff --git a/Master/bin/amd64-freebsd/otftotfm b/Master/bin/amd64-freebsd/otftotfm Binary files differnew file mode 100755 index 00000000000..797871a0410 --- /dev/null +++ b/Master/bin/amd64-freebsd/otftotfm diff --git a/Master/bin/amd64-freebsd/otp2ocp b/Master/bin/amd64-freebsd/otp2ocp Binary files differnew file mode 100755 index 00000000000..a1dfa8538e5 --- /dev/null +++ b/Master/bin/amd64-freebsd/otp2ocp diff --git a/Master/bin/amd64-freebsd/outocp b/Master/bin/amd64-freebsd/outocp Binary files differnew file mode 100755 index 00000000000..f69a66fa08b --- /dev/null +++ b/Master/bin/amd64-freebsd/outocp diff --git a/Master/bin/amd64-freebsd/ovf2ovp b/Master/bin/amd64-freebsd/ovf2ovp new file mode 120000 index 00000000000..b1299fc008c --- /dev/null +++ b/Master/bin/amd64-freebsd/ovf2ovp @@ -0,0 +1 @@ +omfonts
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/ovp2ovf b/Master/bin/amd64-freebsd/ovp2ovf new file mode 120000 index 00000000000..b1299fc008c --- /dev/null +++ b/Master/bin/amd64-freebsd/ovp2ovf @@ -0,0 +1 @@ +omfonts
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/patgen b/Master/bin/amd64-freebsd/patgen Binary files differnew file mode 100755 index 00000000000..3adf5653490 --- /dev/null +++ b/Master/bin/amd64-freebsd/patgen diff --git a/Master/bin/amd64-freebsd/pdfannotextractor b/Master/bin/amd64-freebsd/pdfannotextractor new file mode 120000 index 00000000000..8268b4f9f7c --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfannotextractor @@ -0,0 +1 @@ +../../texmf-dist/scripts/pax/pdfannotextractor.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdfatfi b/Master/bin/amd64-freebsd/pdfatfi new file mode 120000 index 00000000000..6cd281194e9 --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfatfi @@ -0,0 +1 @@ +../../texmf-dist/scripts/oberdiek/pdfatfi.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdfclose b/Master/bin/amd64-freebsd/pdfclose Binary files differnew file mode 100755 index 00000000000..7d7700970c0 --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfclose diff --git a/Master/bin/amd64-freebsd/pdfcrop b/Master/bin/amd64-freebsd/pdfcrop new file mode 120000 index 00000000000..d5235ebbcb7 --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfcrop @@ -0,0 +1 @@ +../../texmf-dist/scripts/pdfcrop/pdfcrop.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdfcslatex b/Master/bin/amd64-freebsd/pdfcslatex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfcslatex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdfcsplain b/Master/bin/amd64-freebsd/pdfcsplain new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfcsplain @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdfetex b/Master/bin/amd64-freebsd/pdfetex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfetex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdfjadetex b/Master/bin/amd64-freebsd/pdfjadetex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfjadetex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdflatex b/Master/bin/amd64-freebsd/pdflatex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/pdflatex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdfmex b/Master/bin/amd64-freebsd/pdfmex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfmex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdfopen b/Master/bin/amd64-freebsd/pdfopen Binary files differnew file mode 100755 index 00000000000..8458e7bd8f1 --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfopen diff --git a/Master/bin/amd64-freebsd/pdftex b/Master/bin/amd64-freebsd/pdftex Binary files differnew file mode 100755 index 00000000000..103342d1464 --- /dev/null +++ b/Master/bin/amd64-freebsd/pdftex diff --git a/Master/bin/amd64-freebsd/pdfthumb b/Master/bin/amd64-freebsd/pdfthumb new file mode 120000 index 00000000000..09b8aea456f --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfthumb @@ -0,0 +1 @@ +../../texmf-dist/scripts/ppower4/pdfthumb.tlu
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdftools b/Master/bin/amd64-freebsd/pdftools new file mode 120000 index 00000000000..fa012780ccc --- /dev/null +++ b/Master/bin/amd64-freebsd/pdftools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/pdftools
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pdftosrc b/Master/bin/amd64-freebsd/pdftosrc Binary files differnew file mode 100755 index 00000000000..bf32a3cfd69 --- /dev/null +++ b/Master/bin/amd64-freebsd/pdftosrc diff --git a/Master/bin/amd64-freebsd/pdfxmltex b/Master/bin/amd64-freebsd/pdfxmltex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/pdfxmltex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/perltex b/Master/bin/amd64-freebsd/perltex new file mode 120000 index 00000000000..3edff7c32df --- /dev/null +++ b/Master/bin/amd64-freebsd/perltex @@ -0,0 +1 @@ +../../texmf-dist/scripts/perltex/perltex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pfb2pfa b/Master/bin/amd64-freebsd/pfb2pfa Binary files differnew file mode 100755 index 00000000000..49f02500e7d --- /dev/null +++ b/Master/bin/amd64-freebsd/pfb2pfa diff --git a/Master/bin/amd64-freebsd/pfm2kpx b/Master/bin/amd64-freebsd/pfm2kpx new file mode 120000 index 00000000000..70d749ac5f9 --- /dev/null +++ b/Master/bin/amd64-freebsd/pfm2kpx @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/pfm2kpx
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/physe b/Master/bin/amd64-freebsd/physe new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/physe @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/phyzzx b/Master/bin/amd64-freebsd/phyzzx new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/phyzzx @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pk2bm b/Master/bin/amd64-freebsd/pk2bm Binary files differnew file mode 100755 index 00000000000..61b8f4ad829 --- /dev/null +++ b/Master/bin/amd64-freebsd/pk2bm diff --git a/Master/bin/amd64-freebsd/pkfix b/Master/bin/amd64-freebsd/pkfix new file mode 120000 index 00000000000..028545a007c --- /dev/null +++ b/Master/bin/amd64-freebsd/pkfix @@ -0,0 +1 @@ +../../texmf-dist/scripts/pkfix/pkfix.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pkfix-helper b/Master/bin/amd64-freebsd/pkfix-helper new file mode 120000 index 00000000000..44ef5278bd4 --- /dev/null +++ b/Master/bin/amd64-freebsd/pkfix-helper @@ -0,0 +1 @@ +../../texmf-dist/scripts/pkfix-helper/pkfix-helper
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pktogf b/Master/bin/amd64-freebsd/pktogf Binary files differnew file mode 100755 index 00000000000..e1f77251ca0 --- /dev/null +++ b/Master/bin/amd64-freebsd/pktogf diff --git a/Master/bin/amd64-freebsd/pktype b/Master/bin/amd64-freebsd/pktype Binary files differnew file mode 100755 index 00000000000..2b63fc6a953 --- /dev/null +++ b/Master/bin/amd64-freebsd/pktype diff --git a/Master/bin/amd64-freebsd/pltotf b/Master/bin/amd64-freebsd/pltotf Binary files differnew file mode 100755 index 00000000000..522fed37833 --- /dev/null +++ b/Master/bin/amd64-freebsd/pltotf diff --git a/Master/bin/amd64-freebsd/pooltype b/Master/bin/amd64-freebsd/pooltype Binary files differnew file mode 100755 index 00000000000..5b9307c3633 --- /dev/null +++ b/Master/bin/amd64-freebsd/pooltype diff --git a/Master/bin/amd64-freebsd/ppower4 b/Master/bin/amd64-freebsd/ppower4 new file mode 120000 index 00000000000..0e24a1c64e9 --- /dev/null +++ b/Master/bin/amd64-freebsd/ppower4 @@ -0,0 +1 @@ +../../texmf-dist/scripts/ppower4/ppower4.tlu
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/ps2eps b/Master/bin/amd64-freebsd/ps2eps new file mode 100755 index 00000000000..7092cbb0007 --- /dev/null +++ b/Master/bin/amd64-freebsd/ps2eps @@ -0,0 +1,935 @@ +#!/usr/bin/env perl +# The expression in the previous line replaces the unix specific line +# {#!/usr/bin/perl}. +# ps2eps - convert PostScript to EPS (Encapsulated PostScript) files +# ------------------------------------------------------------------- +# $Id: ps2eps,v 1.64 2007/01/24 12:32:59 bless Exp $ +# ------------------------------------------------------- +# (C)opyright 1999-2007 Roland Bless +# +# 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 +# +# Author: Roland Bless +# Send bug reports to roland <at> bless.de +# ------------------------------------------------------------------- +# Additional filtering is performed when Windows generated PostScript files +# are processed. Some instructions will otherwise lead to bad output +# if EPS-file gets embedded into other PostScript files. +# +# Requirements: +# + perl +# + gs (ghostscript supporting pbm output) +# + bbox (a little C program [ANSI-C - should work on every platform] +# for calculation of the actual BoundingBox) + +use POSIX; + +#use warnings; + +#use Getopt package +use Getopt::Long; +Getopt::Long::Configure("no_ignore_case"); + +$prgname= "ps2eps"; + +if (! -d "/usr/bin") +{ # we assume that we are running under native windows + $ghostscriptname = "gswin32c"; + $NULLDEV = "nul"; +} +else +{ # Unix or cygwin + $ghostscriptname = "gs"; + $NULLDEV = "/dev/null 2>&1"; +} + +$bboxver=`bbox >$NULLDEV -V`; +$bboxname= ($?== -1) ? "" : "bbox"; +$version= '$Id: ps2eps,v 1.64 2007/01/24 12:32:59 bless Exp $'; #' +$insertPScode= 1; # Insert surrounding Postscript code +$infhandle = STDIN; # Standard input is the default input file +$outfhandle = STDOUT; # Standard output is default output if STDIN is input +$infname= '-'; +$outfname= '-'; +$forceoverwrite=0; # do not overwrite existing files +$ignoreBB= 0; # ignore existing Bounding Box comment +$removeDSC= 1; # remove Adobe document structure comments +$removeADO= 1; # remove Adobe printer Driver console Output [Page: ...] +$ignoreEOFDSC= 0; # ignore %%EOF DSC hint +$removePreview= 0; # remove preview +$quiet= 0; # write progress to stdout +$resolution= 144; # resolution for bounding box calculation is 2x72 dpi +$trytofixps= 1; # try to fix postscript code +$forcefixps= 0; # fix postscript code unconditionally if eq 1 +$filterorientation= 1;# filter Orientation line +$looseBB=''; # default: tight bounding box +$clip=0; # do not clip +$warnings=0; # do not print warnings concerning postscript sanity +$debuggs=0; # no debugging of ghostscript call, turn this on if you want to see the gs call +$inch=2.54; # one inch is 2.54cm +$fullcolors= 1; # use ppm format (24-bit full color) +$trailerseen= 0; # Trailer comment seen? +$PSversion="2.0"; # default Postscript Version +$PSDSCversion="2.0"; # default Postscript DSC Version +$translate_x= 0; # translate by x postscript points +$translate_y= 0; # translate by y postscript points + +$defaultext = '(ps|prn)'; # default extension +$defaultoutext = '.eps'; # default output extension +$envname_size = 'PS2EPS_SIZE'; +$envname_gsbbox = 'PS2EPS_GSBBOX'; + +$gpar=""; +$known_papersizes="11x17|ledger|legal|letter(small)?|arch[A-E]|a([0-9]|10)|isob[0-6]|b[0-5]|c[0-6]|jisb[0-6]|fls(a|e)|halfletter"; +$papersize_help="11x17,ledger,legal,letter,lettersmall,archA,archB,archC,archD,archE\ +a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,isob0,isob1,isob2,isob3,isob4,isob5,isob6,\ +b0,b1,b2,b3,b4,b5,c0,c1,c2,c3,c4,c5,c6,\ +jisb0,jisb1,jisb2,jisb3,jisb4,jisb5,jisb6,flsa,flse,halfletter\n"; +$trigger= 0; +$notsane= 0; +$dummy=""; + +@ver= split(/ /,$version); + +# filename for temporary files +if ($^O =~ /MSWin32/i or $^O =~ /cygwin/i) +{ + # it is less trouble to use the current directory if working on + # cygwin and nevertheless using gswin32c. + $tmpfname= "$prgname.$$"; + $win=1; +} +elsif (defined($ENV{'TMP'})) +{ + $tmpdir= $ENV{'TMP'}; + $filesep= ($tmpdir =~ /^?\:\\/) ? '\\' : '/'; + if ($tmpdir =~ /$filesep$/) + { $tmpfname= $tmpdir . "$prgname.$$"; } + else + { $tmpfname= $tmpdir . "$filesep$prgname.$$"; } + $win=1; +} +else #assume we're on a UNIXBOX +{ + $tmpfname= "/tmp/" . "$prgname.$$"; + $win=0; +} + + +$licensetxt= "\ + 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\n"; + +@prgidtxt= ( "$prgname - convert PostScript to EPS (Encapsulated PostScript) files\n", + "(C)opyright 1998-2007 Roland Bless\n\n" ); + +@helptxt= ("Version: $ver[2]\n", + "Operation:\n", + " Without any argument, $prgname reads from standard input\n", + " and writes to standard output.\n", + " If filenames are given as arguments they are processed\n", + " one by one and output files are written to filenames\n", + " with extension '$defaultoutext'. If input filenames have the extension\n", + " '.ps' or '.prn', this extension is replaced with '$defaultoutext'.\n", + " In all other cases '$defaultoutext' is appended to the input filename.\n", + " Please note that PostScript files for input should contain\n", + " only one single page.\n\n", + " If BoundingBox in output seems to be wrong, please try options --size or --ignoreBB.\n\n" ); + +@usagetxt= ("Syntax:\n", + " $prgname [-f] [-q] [-N] [-O] [-n] [-P] [-c] [-C] [-m] [-B] [-E] [-s <pagedim>] [-R +|-|^] [-t <x,y>] [-l] [-g] [-d] [-H] [-h|--help] [-g] [-W] [-L] [-V|--version] [--] [psfile1] [psfile2] [...]\n", + "Options:\n", + " -f, --force force overwriting existing files\n", + " -q, --quiet quiet operation (no output while processing files)\n", + " -N, --noinsert do not insert any postscript code\n", + " -O, --preserveorientation do not filter Orientation: header comment\n", + " -n, --nofix do not try to fix postscript code\n", + " -P, --removepreview remove preview image (smaller file, but no preview)\n", + " -F, --fixps fix postscript code unconditionally\n", + " -c, --comments preserve document structure comments\n", + " -C, --clip insert postscript code for clipping\n", + " -m, --mono use black/white bitmap as base for calculation\n", + " -s, --size=<pagedim> page size (a0-a10,letter,...) or in format XxY[cm|in] (default:cm), where X and Y are numbers\n", + " use --size=list to list pre-defined page sizes\n", + " -R, --rotate=<direction> rotate resulting EPS. <direction>: +=+90 (clockw.),-=-90 (counter-clockw.) ^=180 degrees\n", + " -t, --translate specify x,y offset (may be negative) in postscript points (1/72 dpi)\n", + " -r, --resolution specify dpi resolution to render with ghostscript (default 144)", + " -l, --loose expand the original bounding box by one point in each direction\n", + " -B, --ignoreBB do not use existing bounding box as page size for rendering\n", + " -E, --ignoreEOF do not use %%EOF as hint for end of file\n", + " -g, --gsbbox use internal bbox device of ghostscript\n", + " -H, --no-hires do not use a HiResBoundingBox\n", + " -h, --help help information\n", + " -L, --license show licensing information\n", + " -V, --version show version information\n", + " -d, --debuggs show ghostscript call\n", + " -W, --warnings show warnings about sanity of generated eps file\n", + " -- all following arguments are treated as files\n", + " (allows filenames starting with -)\n", + "\n", + "Arguments:\n", + " One or more names of PostScript files for input\n"); + +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +## -- argument checking -- +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +#environment variable for papersize +if (defined($ENV{"$envname_size"})) +{ + $opt_s= $ENV{"$envname_size"}; +} +else +{ + $opt_s = ''; # for s-option +} + +if (defined($ENV{"$envname_gsbbox"})) +{ + $bboxname=""; +} + +$opt_t = ''; # for t-option +$opt_R = ''; # for R-option +$opt_r = ''; # for r-option +$stopnow = 0; +die "Wrong option(s), please check usage with $prgname --help\n" unless +GetOptions('f|force' => \$forceoverwrite, + 'q|quiet' => \$quiet, + 'm|mono' => sub { $fullcolors = 0 }, + 'n|nofix' => sub { $trytofixps = 0 }, + 'F|fixps' => \$forcefixps, + 'N|noinsert' => sub { $insertPScode = 0 }, + 'O|preserveorientation' => sub { $filterorientation= 0 }, + 'P|removepreview' => \$removePreview, + 'c|comments' => sub { $removeDSC = 0 }, + 'C|clip' => \$clip, + 'l|loose' => sub { $looseBB = '-l' }, + 'B|ignoreBB' => \$ignoreBB, + 'E|ignoreEOF'=> \$ignoreEOFDSC, + 's|size=s' => \$opt_s, + 't|translate=s' => \$opt_t, + 'r|resolution=s' => \$opt_r, + 'R|rotate=s' => \$opt_R, + 'g|gsbbox' => sub { $bboxname=""; }, + 'H|nohires' => \$nohires, + 'h|help' => sub { $stopnow = 1; print @prgidtxt,@helptxt,@usagetxt,"\nAuthor: Roland Bless (roland\@bless.de)\n\n"; }, + 'L|license' => sub { $stopnow = 1; print @prgidtxt,$licensetxt,"\nAuthor: Roland Bless (roland\@bless.de)\n\n"; }, + 'd|debuggs' => \$debuggs, + 'W|warnings' => \$warnings, + 'V|version' => sub { $stopnow = 1; print @prgidtxt,"Version: $ver[2]\n"; });exit if ($stopnow); + +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +## -- wildcard processing -- +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +## internal wildcard processing for current directory, +## only used for non UNIX-based OSs (which may lack shell wildcard expansion) +@filenames = (); +foreach $object (@ARGV) { + if ($win && $object =~ m/\*/o) # asterisk is present in filename + { + $wildcard = $object; + $wildcard =~ s/\./\\\./g; # replace . in pattern with \. + $wildcard =~ s/\*/\(\.\*\)/g; # replace * in pattern with (.*) + opendir(DIR,'.') || die 'Unable to open current directory, stopped'; # open current directory + print STDERR $wildcard; + @fid = grep { /$wildcard(\.$defaultext)?/i } readdir(DIR); + foreach (@fid) { push @filenames, $_; } + closedir DIR; + } + else { push @filenames, $object; } +} # end foreach +$filenames[0]= '-' if (scalar(@filenames) == 0); # no file arguments, use STDIN as input + +print STDERR "Input files: @filenames\n" if (!$quiet); + +if ($opt_r ne '') +{ + $resolution=$opt_r; +} + +# papersize stuff +if ($opt_s ne '') +{ + # if explicit size is given, ignore existing BoundingBox always + $ignoreBB = 1; + $pagedimension = $opt_s; + if ($opt_s eq "list") + { + print STDERR "Available paper sizes: $papersize_help"; + exit 0; + } + + #explicit format XxY[cm|in] + if ($pagedimension =~ /(\d*\.?\d+)x(\d*\.?\d+)/) + { + ($x_dim, $dummy, $y_dim, $unit)= split(/(x|cm|in)/,$pagedimension); + if ( $x_dim !~ /^\d*\.?\d+$/ ) + { die "$x_dim in $arg is not a valid number, stopped"; } + if ( $y_dim !~ /^\d*\.?\d+$/ ) + { die "$y_dim in $arg is not a valid number, stopped"; } + + #print STDERR "xdim: $x_dim ydim: $y_dim unit:$unit\n" ; + if (!defined($unit) ) + { + $unit='cm'; + $opt_s=$opt_s . $unit; + } + if ( $unit ne 'in' ) # assume centimeters + { # calculate dimension in pixels (remember: resolution is in dpi) + $xpixels= int(($x_dim * $resolution) / $inch)+1; + $ypixels= int(($y_dim * $resolution) / $inch)+1; + $gpar= "-g${xpixels}x${ypixels}"; + } + else + { + $xpixels= int($x_dim * $resolution)+1; + $ypixels= int($y_dim * $resolution)+1; + $gpar= "-g${xpixels}x${ypixels}"; + } + } #endif XxY in opt_s + else + { + if ($opt_s =~ /$known_papersizes/) + { + $gpar="-sPAPERSIZE=$opt_s"; + } + else + { + print STDERR "Error: Unknown paper size: $opt_s\n Acceptable papersizes are:$papersize_help\n"; + exit 1; + } + } +} + +#translate option +if ($opt_t ne '') +{ + ($translate_x,$translate_y)= split(/\,/,$opt_t); +} + +#rotate +$rotright='-90 rotate'; +$rotleft='90 rotate'; +$rotupsidedown='180 rotate'; +$rotate=''; +if ($opt_R ne '') +{ + if ($opt_R eq '+') { $rotate=$rotright; } + elsif ($opt_R eq '-') { $rotate=$rotleft; } + elsif ($opt_R eq '^') { $rotate=$rotupsidedown; } + else { die "Wrong parameter for option -R: Valid are only +,-,^\n"; }; +} + +$device= $fullcolors ? "ppmraw" : "pbmraw"; + +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +## -- iterate over different input files -- +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +PROCESSFILE: +while ($infname= (shift @filenames)) +{ + # reset filter definitions for each file + undef $linefilter; + undef $rangefilter_begin; + undef $rangefilter_end; + $fixthisps= $trytofixps; + $fixmsgprinted= 0; + + if (!$quiet) { print STDERR "Processing: $infname\n"; } + unless (open($infhandle,"<$infname")) + { # skip over this file + print STDERR "$prgname: Can't open $infname: $!\n"; + next PROCESSFILE; + } + + # buffer input from stdin into temporary file, because it has to be read twice + # one time for ghostscript processing, the second time for generating output + if ($infname eq '-') # input is stdin + { + $tmpfhandle=''; + open($tmpfhandle,">$tmpfname") or + die "Cannot open temporary file $tmpfname for writing: $!\n"; + } + else # input is not stdin + { + undef $tmpfhandle; + #if filename ends with $defaultext usually .ps or .prn, replace the extension with $defaultoutext + if ($infname =~ /\.$defaultext$/i) + { + $outfname= $infname; $outfname =~ s/\.$defaultext$/$defaultoutext/i; + } + else # otherwise simply append the extension $defaultoutext + { + $outfname= $infname . "$defaultoutext"; + } + if (!$forceoverwrite and -s "$outfname") + { + die "$prgname: Sorry, file named $outfname already exists,", + " will not overwrite it.\n", + " You will have to use the -f option, delete it or rename it", + " before running $prgname again.\n"; + } + else + { + open($outfhandle,">$outfname") or die "Can't open file $outfname for writing: $!\n"; + } + } #end else input is not stdin + + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ## -- process input file -- + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + $linefilter= '^$'; #'# filter empty lines by default + while (<$infhandle>) + { + # get postscript and DSC version + if (/%!PS-Adobe-(\S+).*EPSF-(\S+)/) + { + $PSversion=$1; + $PSDSCversion=$2; + if (! ($PSversion =~ /\d+\.\d+/)) + { + $PSDSCversion="2.0"; + } + if (! ($PSDSCversion =~ /\d+\.\d+/)) + { + $PSDSCversion="2.0"; + } + } + + # check for existing BoundingBox parameters + if ( /^%%\s*BoundingBox:\s*(.*)/ && !defined($eBBllx) ) + { + $BBarg= $1; + # accept even negative and fractional BBs + if ( $BBarg =~ /(\-?\d+\.?\d*\s+){3,}\d+/ ) # ignore %% BoundingBox: (atend) comments + { + ($eBBllx,$eBBlly,$eBBurx,$eBBury,$dummy)= split /\s/,$BBarg; + #print STDERR "Existing BB: $eBBllx,$eBBlly,$eBBurx,$eBBury\n"; + if (int($eBBllx) < 0) { $translate_x= - int($eBBllx-0.5); } + if (int($eBBlly) < 0) { $translate_y= - int($eBBlly-0.5); } + + $xpixels= int((($eBBurx-$eBBllx) * $resolution)/72)+1; + $ypixels= int((($eBBury-$eBBlly) * $resolution)/72)+1; + if (!$ignoreBB) + { + $gpar= "-g${xpixels}x${ypixels}"; + # check for meaningful values + if (($xpixels <= 1) || ($ypixels <= 1)) + { + $gpar=""; undef $eBBllx; undef $eBBlly; + } + else + { + if (!$quiet) + { + print STDERR "Rendering with existing $_"; + if (int($eBBllx) < 0 || int($eBBlly) < 0) + { + print STDERR "WARNING: existing Bounding Box shows negative values - shifting\n"; + } + } + } + } #endif !$ignoreBB + } #endif $BBarg =~ + } + + + if ($fixthisps) # try to fix bad postscript code + { + # check for Windows 3.x output + if ( /^Win.*Dict/ ) + { + if (!$quiet && !$fixmsgprinted) + { print STDERR "Windows 3.5 generated Postscript file detected, fixing\n"; } + $linefilter= '^(EJ|RS)'; + $rangefilter_begin= '^statusdict'; + $rangefilter_end= 'cvx\ settransfer$'; #' + $fixmsgprinted= 1; # stop printing message + } + else + { + if ( /^%%Creator:\s*Wind.U\s*Xprinter/ ) + { + if (!$quiet && !$fixmsgprinted) + { print STDERR "Star/OpenOffice generated Postscript file detected, fixing\n"; } + $linefilter= '^rs'; + $fixmsgprinted= 1; # stop printing message + } + else + { + if ( $forcefixps || + /^\/NTPS/ || + /Creator:\s*(AdobePS|Pscript|.*Windows)/i ) #check for NT generated output + { + if (!$quiet && !$fixmsgprinted) + { + if ($forcefixps) + { + print STDERR "Postscript filtering requested, fixing\n"; + } + else + { + print STDERR "Windows generated Postscript file detected, fixing\n"; + } + } + $rangefilter_begin= '^((\[\{)|(featurebegin\{))$'; #' + $rangefilter_end= '^(\} stopped cleartomark|\}featurecleanup)'; + $exclude_rangefilter_begin= '^(?i)%%BeginNonPPDFeature'; #' + $exclude_rangefilter_end= '^(?i)%%EndNonPPDFeature'; + #$triggered_rangefilter_begin= ''; #' + #$triggered_rangefilter_end= ''; #' + $fixsearchpat='(^|\s)(initmatrix|initclip|initgraphics)(\s|$)'; + $fixreplacepat=' '; + $fixmsgprinted= 1; # stop printing message + } # end if NTPS + } #end else + } + } #end if trytofixps + + if (defined($tmpfhandle)) + { + print $tmpfhandle $_ or die "$prgname: Failure during writing to temporary file $tmpfname"; + } + + if (/^%%EOF\s*$/) + { + $totalEOFDSC++ + } + } #end while <$infhandle> + + if (defined($tmpfhandle)) + { + close($tmpfhandle); + } + else + { + $tmpfhandle= $infhandle; + $tmpfname= $infname; + } + + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ## -- calculate the bounding box -- + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + if ($translate_x!=0 || $translate_y!=0) + { + $translation="$translate_x $translate_y translate"; + $translatecmd="-c $translation"; + } + else + { + $translation=""; + $translatecmd=""; + } + + if (!$quiet) + { + print STDERR "Calculating Bounding Box..."; + if ($opt_s) + { + print STDERR "using page size $opt_s..."; + } + } + + $rotatecmd=''; + if ($rotate ne '') + { + $rotatecmd="-c \"$rotate\"" + } + if ($bboxname ne '') + { + $cmdline="$ghostscriptname -dSAFER -dNOPAUSE -q $gpar -r$resolution -sDEVICE=$device -sOutputFile=- $translatecmd -f $tmpfname -c showpage -c quit | $bboxname -r $resolution"; + } + else + { + if (!$quiet) { + print STDERR "...using bbox device of $ghostscriptname..."; + } + $cmdline = "$ghostscriptname -dSAFER -dBATCH -dNOPAUSE -q $gpar -r$resolution -sDEVICE=bbox -sOutputFile=- -c \"/setpagedevice {pop} def\" $translatecmd -f $tmpfname -c quit 2>&1"; + } + + if ($debuggs) { print STDERR "\nCalling: $cmdline\n"; } + + # actual ghostscript call + $boundingbox=`$cmdline`; + if ($debuggs) { print STDERR "Call result: $boundingbox"; } + + # check result of gs call + if ($boundingbox !~ /^%%BoundingBox/m) + { + print STDERR "Error: Could not determine bounding box!\n", + "I suppose $ghostscriptname had some trouble interpreting the postscript-file\n"; + } + + $boundingbox =~ /^%%HiResBoundingBox:\s*(.*)/m; + if (defined($1)) # HiResBoundingBox given + { + ($hcBBllx,$hcBBlly,$hcBBurx,$hcBBury,$dummy)= split(/\s/,$1); + $hiresboundingbox="%%HiResBoundingBox: $hcBBllx $hcBBlly $hcBBurx $hcBBury\n"; + $cBBllx = floor($hcBBllx); + $cBBlly = floor($hcBBlly); + $cBBurx = ceil($hcBBurx); + $cBBury = ceil($hcBBury); + } + else + { #use normal BoundingBox + $boundingbox =~ /^%%.*BoundingBox:\s*(.*)/; + ($cBBllx,$cBBlly,$cBBurx,$cBBury,$dummy)= split(/\s/,$1); + } + # if loose BB should be performed by ps2eps + # apply changes to resulting bounding box if needed + if ($looseBB ne '') + { + if ($cBBllx > 0) { $cBBllx--; } + if ($cBBlly > 0) { $cBBlly--; } + $cBBurx++; $cBBury++; + } + # extend clipping box by 1 point + if ($clip) + { + if ($cBBllx > 0) { $cBBllx--; } + if ($cBBlly > 0) { $cBBlly--; } + $cBBurx++; $cBBury++; + } + if ($cBBllx < 0 || $cBBlly < 0) + { + if (!$quiet) + { + print STDERR "WARNING! Your drawing had a negative Bounding Box which is deprecated and may cause problems!. I'll shift it.\n"; + } + $translate_x= -int($cBBllx); + $translate_y= -int($cBBlly); + $cBBllx=0; + $cBBurx= $cBBurx + $translate_x; + $cBBlly=0; + $cBBury= $cBBury + $translate_y; + + $hcBBurx= $hcBBurx + $hcBBllx; + $hcBBury= $hcBBury + $hcBBlly; + $hcBBllx= 0; + $hcBBlly= 0; + + $hiresboundingbox="%%HiResBoundingBox: $hcBBllx $hcBBlly $hcBBurx $hcBBury\n"; + + $translation="$translate_x $translate_y translate"; + $translatecmd="-c \'$translation\'"; + } + $boundingbox = "%%BoundingBox: $cBBllx $cBBlly $cBBurx $cBBury\n"; + + if (!$quiet) { print STDERR "ready. $boundingbox" }; + + $before_startps= 1; + $inserted_prolog= 0; + $prolog_passed= 0; + + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ## -- Create output file -- + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + if (!$quiet) { print STDERR "Creating output file $outfname..."; } + + open($tmpfhandle,"<$tmpfname") or die "Cannot open file $tmpfname for reading"; + CREATEOUTPUT: + while (<$tmpfhandle>) + { + # check whether we are in a binary section + + $binarysection=(/^(%%BeginBinary)|(beginimage)\r?\n?$/ ... /^(%%EndBinary)|^(endimage)/) || + (/^(doNimage)|(doclutimage)\r?\n?$/ ... /(^|~> )Z\r?\n?$/) || # Pscript_Win_Dib_L2 5.0 0 + (/^beginjpeg / ... /~> endjpeg\r?\n?$/) || # Pscript_Win_Dib_L2 5.0 0 + (/^pdfIm/ ... /^%-EOD-/); + + if ( !$binarysection ) + { + s/\r?\n?$//; # remove CR and/or LF at end of line if not in binary section + } + + # check where magic Postscript header starts - skip leading binary stuff, e.g., HP PCL/PJL code + if ($before_startps) + { + if ( /%!/ ) # This is usually the smallest magic sequence + { # Note: Adobe Photoshop generated a binary heading, so ^ is not applicable + # %! may be part of a binary sequence, but then control characters follow + # so skip %! if non alphanumeric characters follow + if ( ! /%!.*[^\w]{2,}/ ) + { + # some heading without two control characters found + $before_startps= 0; + if (! /%!PS-Adobe.*/i) # some strange programs use other magics + { + print STDERR "** Warning **: Weird heading line -- ",$_," -- "; + } + } + } + next CREATEOUTPUT; + } + else # we are hopefully in regular postscript code now + { + # count %%EOFs as we want to know when we got the last EOF + if ( /^%%EOF\s*$/ ) + { + $seenEOF++; + } + + # We should insert our own prologue including the newly calculated BoundingBox + if (! $inserted_prolog) + { + print $outfhandle "%!PS-Adobe-$PSversion EPSF-$PSDSCversion\n"; + # check if we need to rotate + $transrotcmd=''; + if ($rotatecmd) + { + if ($rotate eq $rotright) + { + $transrotcmd="-$cBBlly $cBBurx translate"; + $boundingbox='%%BoundingBox: 0 0 ' . ($cBBury-$cBBlly) . ' ' . ($cBBurx-$cBBllx) . "\n"; + if ($hiresboundingbox ne "") + { + $hiresboundingbox='%%HiResBoundingBox: 0 0 ' . ($hcBBury-$hcBBlly) . ' ' . ($hcBBurx-$hcBBllx) . "\n"; + } + + } + elsif ($rotate eq $rotleft) + { + $transrotcmd="$cBBury -$cBBllx translate"; + $boundingbox='%%BoundingBox: 0 0 ' . ($cBBury-$cBBlly) . ' ' . ($cBBurx-$cBBllx) . "\n"; + if ($hiresboundingbox ne "") + { + $hiresboundingbox= '%%HiResBoundingBox: 0 0 ' . ($hcBBury-$hcBBlly) . ' ' . ($hcBBurx-$hcBBllx) . "\n"; + } + } + elsif ($rotate eq $rotupsidedown) + { + $transrotcmd="$cBBurx $cBBury translate"; + $boundingbox='%%BoundingBox: 0 0 ' . ($cBBurx-$cBBllx) . ' ' . ($cBBury-$cBBlly) . "\n"; + if ($hiresboundingbox ne "") + { + $hiresboundingbox='%%HiResBoundingBox: 0 0 ' . ($hcBBurx-$hcBBllx) . ' ' . ($hcBBury-$hcBBlly) . "\n"; + } + } + } + print $outfhandle $boundingbox; + if (!defined($hiresboundingbox)) + { + $nohires=1; + } + if (defined($hiresboundingbox) && !defined($nohires)) { print $outfhandle $hiresboundingbox; } + $inserted_prolog= 1; + redo CREATEOUTPUT; + } + else # already inserted_prolog + { + if (! $prolog_passed) + { + #ignore the following lines in the prologue + if ( /^%%(HiRes)?BoundingBox/ || + /^%%Pages/ || + /^%%BeginProlog/ || + /^%%EndProlog/ || + ($filterorientation && /^%%Orientation/) || + ($removeDSC && /^%%.*: \(atend\)/) || + ($removePreview && (/^%%BeginPreview/ ... /^%%EndPreview/)) ) + { + next CREATEOUTPUT; + } + else + { + if ( /^[^%].*/ || + /^%%EndComments/ ) # line is not a comment + { + #output postscript code for proper EPS file + if ($insertPScode) + { + print $outfhandle "%%EndComments\n", + "% EPSF created by ps2eps $ver[2]\n", + "%%BeginProlog\n"; + } + # Insert own postscript code for clipping + if ($clip) + { + if (!defined($nohires)) + { + printf $outfhandle "newpath %f %f moveto %f %f lineto %f %f lineto %f %f lineto closepath clip\n",$hcBBllx-0.1,$hcBBlly-0.1,$hcBBurx+0.1,$hcBBlly-0.1,$hcBBurx+0.1,$hcBBury+0.1,$hcBBllx-0.1,$hcBBury+0.1; + } + else + { + printf $outfhandle "newpath %d %d moveto %d %d lineto %d %d lineto %d %d lineto closepath clip\n",$cBBllx,$cBBlly,$cBBurx,$cBBlly,$cBBurx,$cBBury,$cBBllx,$cBBury; + } + } #endif clip + + if ($rotate ne '') + { + print $outfhandle "$transrotcmd\n"; + print $outfhandle "$rotate\n"; + } + if ($translation ne '') + { + print $outfhandle "$translation\n"; + } + + #insert surrounding postscript code + if ($insertPScode) + { + print $outfhandle "save\n", + "countdictstack\n", + "mark\n", + "newpath\n", + "/showpage {} def\n", + "/setpagedevice {pop} def\n", + "%%EndProlog\n", + "%%Page 1 1\n"; + } + $prolog_passed= 1; + if (/^%%EndComments/) { next CREATEOUTPUT; } + } #endif line is not a comment + } #end else + } #endif (we are in the prologue section) + else #we are in the main part of postscript file + { + #end of postscript file reached? + #Usually the DSC %%EOF signifies the end + if ( eof($tmpfhandle) || + ($ignoreEOFDSC == 0 && /^%%EOF\s*$/ && $seenEOF == $totalEOFDSC) + || ( $trailerseen && /^II\*\000.*/ ) + ) + { + #do not forget to print last line if not terminated by LF + if ( eof($tmpfhandle) && !/^$/ && !/^%%EOF\s*$/ ) # do not insert %%EOF twice + { + print $outfhandle $_,"\n"; + } + #add appropriate trailer + if ($insertPScode) + { + print $outfhandle "%%Trailer\n", + "cleartomark\n", + "countdictstack\n", + "exch sub { end } repeat\n", + "restore\n", + "%%EOF\n"; + } + last CREATEOUTPUT; + } # stop output + + # Trailer comment seen? + if ( /^%%Trailer\s*$/ ) + { + $trailerseen=1; + } + else + { + if (!/^\s*$/) #non empty lines follow + { + $trailerseen=0; + } + } + + # check for trigger + if (defined($triggerstring) && /^$triggerstring$/) + { + $trigger= 1; + }; + + # remove complete lines if one of the expression matches + if ( !$binarysection # only when not in binary section + && + ( + ($removePreview && (/^%%BeginPreview/ ... /^%%EndPreview/)) + || # no preview + (defined($rangefilter_begin) && + (/$rangefilter_begin/ ... /$rangefilter_end/) && + (!(/$exclude_rangefilter_begin/ ... /$exclude_rangefilter_end/)) + ) + || + (defined($triggered_rangefilter_begin) && defined($triggered_rangefilter_end) && + $trigger && + (/$triggered_rangefilter_begin/ ... /$triggered_rangefilter_end/) + ) + || + /$linefilter/ # lines by linefilter + || + ($removeDSC && (/^%( |!)(\w )+/ || /^%%([A-Za-z]+\s)/)) # any type of structured comment + || + ($removeADO && + (/^statusdict begin.*ProductName.*print product print.*flush end\r?\n?$/ || + /^\(%%\[\s*(Page:.*|LastPage)\s*\]%%\)\s*=\s*\w*\s*\r?\n?/ )) + || + /^$/ # empty lines + ) + ) + { + next CREATEOUTPUT; + } + + # replacement + if ( defined($fixsearchpat) ) + { + #if (/$fixsearchpat/) { print STDERR "**filter** before:",$_,"\n"; } + #if (s/$fixsearchpat/$fixreplacepat/) { print STDERR "**filter** after:",$_,"\n";} + s/$fixsearchpat/$fixreplacepat/; + } + + # sanity check for potential dangerous commands + if ( /(^|\s)(clear|erasepage|initmatrix|initclip|initgraphics|startjob|cleardictstack|setmatrix|setpagedevice|copypage|grestoreall|exitserver|quit)(\s|$)/ ) + { + $notsane= 1; + #print STDERR "Warning: dangerous command in line: ",$_,"\n"; + } + } # end else (this is main part) + + # Output the postscript line to result file + print $outfhandle $_; + + if (!$binarysection) + { + print $outfhandle "\n"; # terminate line with LF + } + } # end else prolog_passed + } # end else inserted_prolog + } # end while CREATEOUTPUT + + close($tmpfhandle); + + if ($tmpfname ne $infname) { unlink "$tmpfname"; } #remove temporary file + + close ($outfhandle); + + # print warning if magic sequence not found + if ( $before_startps ) + { + print STDERR "\n ** Error!! **: could not identify begin of postscript code in file $infname, please check header line!\n First line should start with %!. No output generated.\n"; + } + + if (!$quiet) { print STDERR "ready.\n"; } + if ($warnings and $notsane and !$quiet) + { + print STDERR "** Warning **: EPS-output for $infname is not sane, at least one\n", + "of the following commands was still present:\n", + "clear erasepage initmatrix initclip initgraphics startjob\n", + "cleardictstack setmatrix setpagedevice copypage grestoreall\n", + "exitserver quit\n"; + } +} #end while PROCESSFILE + +# ---- end of perl-script ------- diff --git a/Master/bin/amd64-freebsd/ps2frag b/Master/bin/amd64-freebsd/ps2frag new file mode 100755 index 00000000000..b8e673be087 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/ps2pk b/Master/bin/amd64-freebsd/ps2pk Binary files differnew file mode 100755 index 00000000000..ef09a534ee8 --- /dev/null +++ b/Master/bin/amd64-freebsd/ps2pk diff --git a/Master/bin/amd64-freebsd/ps4pdf b/Master/bin/amd64-freebsd/ps4pdf new file mode 120000 index 00000000000..7e99e0b8d18 --- /dev/null +++ b/Master/bin/amd64-freebsd/ps4pdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/pst-pdf/ps4pdf
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/psbook b/Master/bin/amd64-freebsd/psbook Binary files differnew file mode 100755 index 00000000000..6ae19ebc51e --- /dev/null +++ b/Master/bin/amd64-freebsd/psbook diff --git a/Master/bin/amd64-freebsd/pslatex b/Master/bin/amd64-freebsd/pslatex new file mode 100755 index 00000000000..4badef0ec12 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/psmerge b/Master/bin/amd64-freebsd/psmerge new file mode 100755 index 00000000000..9500bcdf7e6 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/psnup b/Master/bin/amd64-freebsd/psnup Binary files differnew file mode 100755 index 00000000000..d70fcf2d71f --- /dev/null +++ b/Master/bin/amd64-freebsd/psnup diff --git a/Master/bin/amd64-freebsd/psresize b/Master/bin/amd64-freebsd/psresize Binary files differnew file mode 100755 index 00000000000..8b60f84d546 --- /dev/null +++ b/Master/bin/amd64-freebsd/psresize diff --git a/Master/bin/amd64-freebsd/psselect b/Master/bin/amd64-freebsd/psselect Binary files differnew file mode 100755 index 00000000000..8a54a24cd94 --- /dev/null +++ b/Master/bin/amd64-freebsd/psselect diff --git a/Master/bin/amd64-freebsd/pst2pdf b/Master/bin/amd64-freebsd/pst2pdf new file mode 120000 index 00000000000..60a28335578 --- /dev/null +++ b/Master/bin/amd64-freebsd/pst2pdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/pst2pdf/pst2pdf.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pstopdf b/Master/bin/amd64-freebsd/pstopdf new file mode 120000 index 00000000000..44478ee1dd4 --- /dev/null +++ b/Master/bin/amd64-freebsd/pstopdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/pstopdf
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/pstops b/Master/bin/amd64-freebsd/pstops Binary files differnew file mode 100755 index 00000000000..38f2457b348 --- /dev/null +++ b/Master/bin/amd64-freebsd/pstops diff --git a/Master/bin/amd64-freebsd/purifyeps b/Master/bin/amd64-freebsd/purifyeps new file mode 120000 index 00000000000..d6919b530ed --- /dev/null +++ b/Master/bin/amd64-freebsd/purifyeps @@ -0,0 +1 @@ +../../texmf-dist/scripts/purifyeps/purifyeps
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/rlxtools b/Master/bin/amd64-freebsd/rlxtools new file mode 120000 index 00000000000..a5078af4f10 --- /dev/null +++ b/Master/bin/amd64-freebsd/rlxtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/rlxtools
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/rpdfcrop b/Master/bin/amd64-freebsd/rpdfcrop new file mode 120000 index 00000000000..b915c696540 --- /dev/null +++ b/Master/bin/amd64-freebsd/rpdfcrop @@ -0,0 +1 @@ +pdfcrop
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/rubibtex b/Master/bin/amd64-freebsd/rubibtex new file mode 100755 index 00000000000..373e6e1194d --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/rumakeindex b/Master/bin/amd64-freebsd/rumakeindex new file mode 100755 index 00000000000..b7b0c072729 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/rungs b/Master/bin/amd64-freebsd/rungs new file mode 120000 index 00000000000..3efeab3b3d4 --- /dev/null +++ b/Master/bin/amd64-freebsd/rungs @@ -0,0 +1 @@ +../../texmf/scripts/texlive/rungs.tlu
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/runtools b/Master/bin/amd64-freebsd/runtools new file mode 120000 index 00000000000..127f29a36df --- /dev/null +++ b/Master/bin/amd64-freebsd/runtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/runtools
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/showchar b/Master/bin/amd64-freebsd/showchar new file mode 100755 index 00000000000..e685e99ae8c --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/showglyphs b/Master/bin/amd64-freebsd/showglyphs new file mode 120000 index 00000000000..5745ac821e0 --- /dev/null +++ b/Master/bin/amd64-freebsd/showglyphs @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/showglyphs
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/simpdftex b/Master/bin/amd64-freebsd/simpdftex new file mode 120000 index 00000000000..8b9c2132185 --- /dev/null +++ b/Master/bin/amd64-freebsd/simpdftex @@ -0,0 +1 @@ +../../texmf/scripts/simpdftex/simpdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/sjisconv b/Master/bin/amd64-freebsd/sjisconv Binary files differnew file mode 100755 index 00000000000..5163d8339ce --- /dev/null +++ b/Master/bin/amd64-freebsd/sjisconv diff --git a/Master/bin/amd64-freebsd/sjislatex b/Master/bin/amd64-freebsd/sjislatex new file mode 100755 index 00000000000..68c554e6d71 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/sjispdflatex b/Master/bin/amd64-freebsd/sjispdflatex new file mode 100755 index 00000000000..e8d070e9dc6 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/splitindex b/Master/bin/amd64-freebsd/splitindex new file mode 120000 index 00000000000..2a8232f7a9d --- /dev/null +++ b/Master/bin/amd64-freebsd/splitindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/splitindex/perl/splitindex.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/svn-multi b/Master/bin/amd64-freebsd/svn-multi new file mode 120000 index 00000000000..9f3e6f9d9b7 --- /dev/null +++ b/Master/bin/amd64-freebsd/svn-multi @@ -0,0 +1 @@ +../../texmf-dist/scripts/svn-multi/svn-multi.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/synctex b/Master/bin/amd64-freebsd/synctex Binary files differnew file mode 100755 index 00000000000..885cf7fa801 --- /dev/null +++ b/Master/bin/amd64-freebsd/synctex diff --git a/Master/bin/amd64-freebsd/t1ascii b/Master/bin/amd64-freebsd/t1ascii Binary files differnew file mode 100755 index 00000000000..493da3596d4 --- /dev/null +++ b/Master/bin/amd64-freebsd/t1ascii diff --git a/Master/bin/amd64-freebsd/t1asm b/Master/bin/amd64-freebsd/t1asm Binary files differnew file mode 100755 index 00000000000..bbb72b8523e --- /dev/null +++ b/Master/bin/amd64-freebsd/t1asm diff --git a/Master/bin/amd64-freebsd/t1binary b/Master/bin/amd64-freebsd/t1binary Binary files differnew file mode 100755 index 00000000000..7b1d0a70509 --- /dev/null +++ b/Master/bin/amd64-freebsd/t1binary diff --git a/Master/bin/amd64-freebsd/t1disasm b/Master/bin/amd64-freebsd/t1disasm Binary files differnew file mode 100755 index 00000000000..652b0ff9637 --- /dev/null +++ b/Master/bin/amd64-freebsd/t1disasm diff --git a/Master/bin/amd64-freebsd/t1dotlessj b/Master/bin/amd64-freebsd/t1dotlessj Binary files differnew file mode 100755 index 00000000000..ca11f718486 --- /dev/null +++ b/Master/bin/amd64-freebsd/t1dotlessj diff --git a/Master/bin/amd64-freebsd/t1lint b/Master/bin/amd64-freebsd/t1lint Binary files differnew file mode 100755 index 00000000000..b53e30cb586 --- /dev/null +++ b/Master/bin/amd64-freebsd/t1lint diff --git a/Master/bin/amd64-freebsd/t1mac b/Master/bin/amd64-freebsd/t1mac Binary files differnew file mode 100755 index 00000000000..40b37729be0 --- /dev/null +++ b/Master/bin/amd64-freebsd/t1mac diff --git a/Master/bin/amd64-freebsd/t1rawafm b/Master/bin/amd64-freebsd/t1rawafm Binary files differnew file mode 100755 index 00000000000..218a9b3fe46 --- /dev/null +++ b/Master/bin/amd64-freebsd/t1rawafm diff --git a/Master/bin/amd64-freebsd/t1reencode b/Master/bin/amd64-freebsd/t1reencode Binary files differnew file mode 100755 index 00000000000..2fd7f6f7b95 --- /dev/null +++ b/Master/bin/amd64-freebsd/t1reencode diff --git a/Master/bin/amd64-freebsd/t1testpage b/Master/bin/amd64-freebsd/t1testpage Binary files differnew file mode 100755 index 00000000000..150ec4fe0b2 --- /dev/null +++ b/Master/bin/amd64-freebsd/t1testpage diff --git a/Master/bin/amd64-freebsd/t1unmac b/Master/bin/amd64-freebsd/t1unmac Binary files differnew file mode 100755 index 00000000000..ff13dccc1ca --- /dev/null +++ b/Master/bin/amd64-freebsd/t1unmac diff --git a/Master/bin/amd64-freebsd/t4ht b/Master/bin/amd64-freebsd/t4ht Binary files differnew file mode 100755 index 00000000000..0c97fac7a12 --- /dev/null +++ b/Master/bin/amd64-freebsd/t4ht diff --git a/Master/bin/amd64-freebsd/tangle b/Master/bin/amd64-freebsd/tangle Binary files differnew file mode 100755 index 00000000000..9e750355399 --- /dev/null +++ b/Master/bin/amd64-freebsd/tangle diff --git a/Master/bin/amd64-freebsd/tcdialog b/Master/bin/amd64-freebsd/tcdialog Binary files differnew file mode 100755 index 00000000000..386d3174823 --- /dev/null +++ b/Master/bin/amd64-freebsd/tcdialog diff --git a/Master/bin/amd64-freebsd/teckit_compile b/Master/bin/amd64-freebsd/teckit_compile Binary files differnew file mode 100755 index 00000000000..266b7eb6b34 --- /dev/null +++ b/Master/bin/amd64-freebsd/teckit_compile diff --git a/Master/bin/amd64-freebsd/tex b/Master/bin/amd64-freebsd/tex Binary files differnew file mode 100755 index 00000000000..42a60a4c808 --- /dev/null +++ b/Master/bin/amd64-freebsd/tex diff --git a/Master/bin/amd64-freebsd/tex2xindy b/Master/bin/amd64-freebsd/tex2xindy Binary files differnew file mode 100755 index 00000000000..a26bf913c51 --- /dev/null +++ b/Master/bin/amd64-freebsd/tex2xindy diff --git a/Master/bin/amd64-freebsd/tex4ht b/Master/bin/amd64-freebsd/tex4ht Binary files differnew file mode 100755 index 00000000000..b63aa6e2aca --- /dev/null +++ b/Master/bin/amd64-freebsd/tex4ht diff --git a/Master/bin/amd64-freebsd/texconfig b/Master/bin/amd64-freebsd/texconfig new file mode 100755 index 00000000000..fe0927136e0 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/texconfig-dialog b/Master/bin/amd64-freebsd/texconfig-dialog new file mode 100755 index 00000000000..8ccda930dd7 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/texconfig-sys b/Master/bin/amd64-freebsd/texconfig-sys new file mode 100755 index 00000000000..8a88750098c --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/texcount b/Master/bin/amd64-freebsd/texcount new file mode 120000 index 00000000000..44f81a2944e --- /dev/null +++ b/Master/bin/amd64-freebsd/texcount @@ -0,0 +1 @@ +../../texmf-dist/scripts/texcount/texcount.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texdiff b/Master/bin/amd64-freebsd/texdiff new file mode 120000 index 00000000000..7964051040c --- /dev/null +++ b/Master/bin/amd64-freebsd/texdiff @@ -0,0 +1 @@ +../../texmf-dist/scripts/texdiff/texdiff
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texdirflatten b/Master/bin/amd64-freebsd/texdirflatten new file mode 120000 index 00000000000..02636a7693d --- /dev/null +++ b/Master/bin/amd64-freebsd/texdirflatten @@ -0,0 +1 @@ +../../texmf-dist/scripts/texdirflatten/texdirflatten
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texdoc b/Master/bin/amd64-freebsd/texdoc new file mode 120000 index 00000000000..90a4a24bcb0 --- /dev/null +++ b/Master/bin/amd64-freebsd/texdoc @@ -0,0 +1 @@ +../../texmf/scripts/texdoc/texdoc.tlu
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texdoctk b/Master/bin/amd64-freebsd/texdoctk new file mode 120000 index 00000000000..56729104154 --- /dev/null +++ b/Master/bin/amd64-freebsd/texdoctk @@ -0,0 +1 @@ +../../texmf/scripts/tetex/texdoctk.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texexec b/Master/bin/amd64-freebsd/texexec new file mode 120000 index 00000000000..36d22caefe7 --- /dev/null +++ b/Master/bin/amd64-freebsd/texexec @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texexec
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texfont b/Master/bin/amd64-freebsd/texfont new file mode 120000 index 00000000000..a3756e037ce --- /dev/null +++ b/Master/bin/amd64-freebsd/texfont @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texfont
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texhash b/Master/bin/amd64-freebsd/texhash new file mode 120000 index 00000000000..fe296c273bb --- /dev/null +++ b/Master/bin/amd64-freebsd/texhash @@ -0,0 +1 @@ +mktexlsr
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texindy b/Master/bin/amd64-freebsd/texindy new file mode 120000 index 00000000000..e9a29f8828c --- /dev/null +++ b/Master/bin/amd64-freebsd/texindy @@ -0,0 +1 @@ +../../texmf/scripts/xindy/texindy.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texlinks b/Master/bin/amd64-freebsd/texlinks new file mode 100755 index 00000000000..c77ceea60c0 --- /dev/null +++ b/Master/bin/amd64-freebsd/texlinks @@ -0,0 +1,333 @@ +#!/bin/sh +# $Id: texlinks 13904 2009-06-23 00:47:00Z karl $ + +# 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+"$@"}'='"$@"' + +version=20090623.0228 +progname=texlinks +cnf=fmtutil.cnf # name of the config file + +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. + -e, --exeext EXT append EXT to symlink targets (default: none) + -f, --cnffile FILE use FILE as config file (default: fmtutil.cnf) + -m, --multiplatform operate in all platform specific directories + (default: operate only in directory for this platform) + -q, --quiet silently skip existing scripts / binaries + (default: issue warning) + -s, --silent same as -q + -u, --unlink remove symlinks created by texlinks + -v, --verbose enable verbose messages (default: off) + -h, --help show this help text + --version show version string + +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, possibly adding the executable extension if +# passed on the command. +############################################################################### +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 + + # append .exe if supplied (for cygwin). + test -n "$exeext" && dest="$dest$exeext" + + 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`" && + 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 + + exeext= + 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;; + --e*|-e) shift; exeext=$1;; + --m*|-m) multiplatform=true;; + --s*|-s|--q*|-q) silent=true;; + --u*|-u) unlink=true;; + --v*|-v) verbose=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/amd64-freebsd/texloganalyser b/Master/bin/amd64-freebsd/texloganalyser new file mode 120000 index 00000000000..a0dd3486cd7 --- /dev/null +++ b/Master/bin/amd64-freebsd/texloganalyser @@ -0,0 +1 @@ +../../texmf-dist/scripts/texloganalyser/texloganalyser
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texlua b/Master/bin/amd64-freebsd/texlua new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/amd64-freebsd/texlua @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texluac b/Master/bin/amd64-freebsd/texluac new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/amd64-freebsd/texluac @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texmfstart b/Master/bin/amd64-freebsd/texmfstart new file mode 120000 index 00000000000..db6dee0a29c --- /dev/null +++ b/Master/bin/amd64-freebsd/texmfstart @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/ruby/texmfstart.rb
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texsis b/Master/bin/amd64-freebsd/texsis new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/texsis @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/textools b/Master/bin/amd64-freebsd/textools new file mode 120000 index 00000000000..d1a20375405 --- /dev/null +++ b/Master/bin/amd64-freebsd/textools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/textools
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/texutil b/Master/bin/amd64-freebsd/texutil new file mode 120000 index 00000000000..78f249c7f02 --- /dev/null +++ b/Master/bin/amd64-freebsd/texutil @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texutil
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/tftopl b/Master/bin/amd64-freebsd/tftopl Binary files differnew file mode 100755 index 00000000000..1ece71d77de --- /dev/null +++ b/Master/bin/amd64-freebsd/tftopl diff --git a/Master/bin/amd64-freebsd/thumbpdf b/Master/bin/amd64-freebsd/thumbpdf new file mode 120000 index 00000000000..98a72428616 --- /dev/null +++ b/Master/bin/amd64-freebsd/thumbpdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/thumbpdf/thumbpdf.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/tie b/Master/bin/amd64-freebsd/tie Binary files differnew file mode 100755 index 00000000000..855d51824fc --- /dev/null +++ b/Master/bin/amd64-freebsd/tie diff --git a/Master/bin/amd64-freebsd/tlmgr b/Master/bin/amd64-freebsd/tlmgr new file mode 120000 index 00000000000..dd7cddf2d67 --- /dev/null +++ b/Master/bin/amd64-freebsd/tlmgr @@ -0,0 +1 @@ +../../texmf/scripts/texlive/tlmgr.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/tmftools b/Master/bin/amd64-freebsd/tmftools new file mode 120000 index 00000000000..444a68a40ee --- /dev/null +++ b/Master/bin/amd64-freebsd/tmftools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/tmftools
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/tpic2pdftex b/Master/bin/amd64-freebsd/tpic2pdftex new file mode 100755 index 00000000000..70c1a33c7e8 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/ttf2afm b/Master/bin/amd64-freebsd/ttf2afm Binary files differnew file mode 100755 index 00000000000..978ed27be11 --- /dev/null +++ b/Master/bin/amd64-freebsd/ttf2afm diff --git a/Master/bin/amd64-freebsd/ttf2pk b/Master/bin/amd64-freebsd/ttf2pk Binary files differnew file mode 100755 index 00000000000..8f80d3e9487 --- /dev/null +++ b/Master/bin/amd64-freebsd/ttf2pk diff --git a/Master/bin/amd64-freebsd/ttf2tfm b/Master/bin/amd64-freebsd/ttf2tfm Binary files differnew file mode 100755 index 00000000000..4ba295a3d78 --- /dev/null +++ b/Master/bin/amd64-freebsd/ttf2tfm diff --git a/Master/bin/amd64-freebsd/ttfdump b/Master/bin/amd64-freebsd/ttfdump Binary files differnew file mode 100755 index 00000000000..5e3c36aa29a --- /dev/null +++ b/Master/bin/amd64-freebsd/ttfdump diff --git a/Master/bin/amd64-freebsd/ttftotype42 b/Master/bin/amd64-freebsd/ttftotype42 Binary files differnew file mode 100755 index 00000000000..c8c013e7ef5 --- /dev/null +++ b/Master/bin/amd64-freebsd/ttftotype42 diff --git a/Master/bin/amd64-freebsd/ulqda b/Master/bin/amd64-freebsd/ulqda new file mode 120000 index 00000000000..8ca9386b37d --- /dev/null +++ b/Master/bin/amd64-freebsd/ulqda @@ -0,0 +1 @@ +../../texmf-dist/scripts/ulqda/ulqda.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/updmap b/Master/bin/amd64-freebsd/updmap new file mode 100755 index 00000000000..723bde70a02 --- /dev/null +++ b/Master/bin/amd64-freebsd/updmap @@ -0,0 +1,1431 @@ +#!/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='$Id: updmap 14402 2009-07-23 17:09:15Z karl $' + +# +############################################################################### +# 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 (the one returned by running "kpsewhich +updmap.cfg"). + +Among other things, these font map files are used to determine which +fonts should be used as bitmaps and which as outlines, and to determine +which fonts are included in the output. + +By default, the TeX 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 "MAPTYPE MAPFILE" to updmap.cfg, + where MAPTYPE is either Map or MixedMap + --enable Map=MAPFILE add "Map MAPFILE" to updmap.cfg + --enable MixedMap=MAPFILE add "MixedMap MAPFILE" to updmap.cfg + --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. + +For step-by-step instructions on making new fonts known to TeX, see +http://tug.org/fonts/fontinstall.html. + +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 $orig_pwd && 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 + orig_pwd=`pwd` + + 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/amd64-freebsd/updmap-sys b/Master/bin/amd64-freebsd/updmap-sys new file mode 100755 index 00000000000..6f3c8365658 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/utf8mex b/Master/bin/amd64-freebsd/utf8mex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/utf8mex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/vftovp b/Master/bin/amd64-freebsd/vftovp Binary files differnew file mode 100755 index 00000000000..e5fb19039d2 --- /dev/null +++ b/Master/bin/amd64-freebsd/vftovp diff --git a/Master/bin/amd64-freebsd/vlna b/Master/bin/amd64-freebsd/vlna Binary files differnew file mode 100755 index 00000000000..4d1552e81cd --- /dev/null +++ b/Master/bin/amd64-freebsd/vlna diff --git a/Master/bin/amd64-freebsd/vpe b/Master/bin/amd64-freebsd/vpe new file mode 120000 index 00000000000..ed1727b6ff8 --- /dev/null +++ b/Master/bin/amd64-freebsd/vpe @@ -0,0 +1 @@ +../../texmf-dist/scripts/vpe/vpe.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/vpl2ovp b/Master/bin/amd64-freebsd/vpl2ovp new file mode 120000 index 00000000000..4588c86090a --- /dev/null +++ b/Master/bin/amd64-freebsd/vpl2ovp @@ -0,0 +1 @@ +../../texmf-dist/scripts/accfonts/vpl2ovp
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/vpl2vpl b/Master/bin/amd64-freebsd/vpl2vpl new file mode 120000 index 00000000000..e7a12e7dad4 --- /dev/null +++ b/Master/bin/amd64-freebsd/vpl2vpl @@ -0,0 +1 @@ +../../texmf-dist/scripts/accfonts/vpl2vpl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/vptovf b/Master/bin/amd64-freebsd/vptovf Binary files differnew file mode 100755 index 00000000000..c8757e12683 --- /dev/null +++ b/Master/bin/amd64-freebsd/vptovf diff --git a/Master/bin/amd64-freebsd/weave b/Master/bin/amd64-freebsd/weave Binary files differnew file mode 100755 index 00000000000..3df4d037307 --- /dev/null +++ b/Master/bin/amd64-freebsd/weave diff --git a/Master/bin/amd64-freebsd/xasy b/Master/bin/amd64-freebsd/xasy new file mode 120000 index 00000000000..06b216f0df2 --- /dev/null +++ b/Master/bin/amd64-freebsd/xasy @@ -0,0 +1 @@ +../../texmf/asymptote/GUI/xasy.py
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/xdvi b/Master/bin/amd64-freebsd/xdvi new file mode 100755 index 00000000000..29632097df1 --- /dev/null +++ b/Master/bin/amd64-freebsd/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/amd64-freebsd/xdvi-xaw b/Master/bin/amd64-freebsd/xdvi-xaw Binary files differnew file mode 100755 index 00000000000..a0d08e3a707 --- /dev/null +++ b/Master/bin/amd64-freebsd/xdvi-xaw diff --git a/Master/bin/amd64-freebsd/xdvipdfmx b/Master/bin/amd64-freebsd/xdvipdfmx Binary files differnew file mode 100755 index 00000000000..ea83d8e8b13 --- /dev/null +++ b/Master/bin/amd64-freebsd/xdvipdfmx diff --git a/Master/bin/amd64-freebsd/xelatex b/Master/bin/amd64-freebsd/xelatex new file mode 120000 index 00000000000..ef9fe406fd6 --- /dev/null +++ b/Master/bin/amd64-freebsd/xelatex @@ -0,0 +1 @@ +xetex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/xetex b/Master/bin/amd64-freebsd/xetex Binary files differnew file mode 100755 index 00000000000..951594e7759 --- /dev/null +++ b/Master/bin/amd64-freebsd/xetex diff --git a/Master/bin/amd64-freebsd/xindy b/Master/bin/amd64-freebsd/xindy new file mode 120000 index 00000000000..ddaf92f5c89 --- /dev/null +++ b/Master/bin/amd64-freebsd/xindy @@ -0,0 +1 @@ +../../texmf/scripts/xindy/xindy.pl
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/xindy.mem b/Master/bin/amd64-freebsd/xindy.mem Binary files differnew file mode 100644 index 00000000000..d5a3d552a94 --- /dev/null +++ b/Master/bin/amd64-freebsd/xindy.mem diff --git a/Master/bin/amd64-freebsd/xindy.run b/Master/bin/amd64-freebsd/xindy.run Binary files differnew file mode 100755 index 00000000000..d85b526a458 --- /dev/null +++ b/Master/bin/amd64-freebsd/xindy.run diff --git a/Master/bin/amd64-freebsd/xmltex b/Master/bin/amd64-freebsd/xmltex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/amd64-freebsd/xmltex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/amd64-freebsd/xmltools b/Master/bin/amd64-freebsd/xmltools new file mode 120000 index 00000000000..873458dcc92 --- /dev/null +++ b/Master/bin/amd64-freebsd/xmltools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/xmltools
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/a2ping b/Master/bin/i386-freebsd/a2ping new file mode 120000 index 00000000000..5cbfe106996 --- /dev/null +++ b/Master/bin/i386-freebsd/a2ping @@ -0,0 +1 @@ +../../texmf/scripts/a2ping/a2ping.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/afm2afm b/Master/bin/i386-freebsd/afm2afm new file mode 120000 index 00000000000..c242f1124f6 --- /dev/null +++ b/Master/bin/i386-freebsd/afm2afm @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/afm2afm
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/afm2pl b/Master/bin/i386-freebsd/afm2pl Binary files differnew file mode 100755 index 00000000000..f17be7bef88 --- /dev/null +++ b/Master/bin/i386-freebsd/afm2pl diff --git a/Master/bin/i386-freebsd/afm2tfm b/Master/bin/i386-freebsd/afm2tfm Binary files differnew file mode 100755 index 00000000000..462271e2361 --- /dev/null +++ b/Master/bin/i386-freebsd/afm2tfm diff --git a/Master/bin/i386-freebsd/aleph b/Master/bin/i386-freebsd/aleph Binary files differnew file mode 100755 index 00000000000..2d4f4503a18 --- /dev/null +++ b/Master/bin/i386-freebsd/aleph diff --git a/Master/bin/i386-freebsd/allcm b/Master/bin/i386-freebsd/allcm new file mode 100755 index 00000000000..945c7c88457 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/allec b/Master/bin/i386-freebsd/allec new file mode 120000 index 00000000000..6d5b04d0d35 --- /dev/null +++ b/Master/bin/i386-freebsd/allec @@ -0,0 +1 @@ +allcm
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/allneeded b/Master/bin/i386-freebsd/allneeded new file mode 100755 index 00000000000..15c62c84adb --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/amstex b/Master/bin/i386-freebsd/amstex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/amstex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/asy b/Master/bin/i386-freebsd/asy Binary files differnew file mode 100755 index 00000000000..7eb57e03fb8 --- /dev/null +++ b/Master/bin/i386-freebsd/asy diff --git a/Master/bin/i386-freebsd/autoinst b/Master/bin/i386-freebsd/autoinst new file mode 120000 index 00000000000..7986da227cb --- /dev/null +++ b/Master/bin/i386-freebsd/autoinst @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/autoinst
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/bbox b/Master/bin/i386-freebsd/bbox Binary files differnew file mode 100755 index 00000000000..30d1e8e8ade --- /dev/null +++ b/Master/bin/i386-freebsd/bbox diff --git a/Master/bin/i386-freebsd/bg5+latex b/Master/bin/i386-freebsd/bg5+latex new file mode 120000 index 00000000000..1366a36e76c --- /dev/null +++ b/Master/bin/i386-freebsd/bg5+latex @@ -0,0 +1 @@ +gbklatex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/bg5+pdflatex b/Master/bin/i386-freebsd/bg5+pdflatex new file mode 120000 index 00000000000..1e0ce565ca7 --- /dev/null +++ b/Master/bin/i386-freebsd/bg5+pdflatex @@ -0,0 +1 @@ +gbkpdflatex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/bg5conv b/Master/bin/i386-freebsd/bg5conv Binary files differnew file mode 100755 index 00000000000..0e1e6173883 --- /dev/null +++ b/Master/bin/i386-freebsd/bg5conv diff --git a/Master/bin/i386-freebsd/bg5latex b/Master/bin/i386-freebsd/bg5latex new file mode 100755 index 00000000000..257a8446e21 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/bg5pdflatex b/Master/bin/i386-freebsd/bg5pdflatex new file mode 100755 index 00000000000..80adc376a93 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/bibtex b/Master/bin/i386-freebsd/bibtex Binary files differnew file mode 100755 index 00000000000..46a166a693e --- /dev/null +++ b/Master/bin/i386-freebsd/bibtex diff --git a/Master/bin/i386-freebsd/bibtex8 b/Master/bin/i386-freebsd/bibtex8 Binary files differnew file mode 100755 index 00000000000..5d39d04145e --- /dev/null +++ b/Master/bin/i386-freebsd/bibtex8 diff --git a/Master/bin/i386-freebsd/cachepic b/Master/bin/i386-freebsd/cachepic new file mode 120000 index 00000000000..f51faf9afc3 --- /dev/null +++ b/Master/bin/i386-freebsd/cachepic @@ -0,0 +1 @@ +../../texmf-dist/scripts/cachepic/cachepic.tlu
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/cef5conv b/Master/bin/i386-freebsd/cef5conv Binary files differnew file mode 100755 index 00000000000..1b297905b25 --- /dev/null +++ b/Master/bin/i386-freebsd/cef5conv diff --git a/Master/bin/i386-freebsd/cef5latex b/Master/bin/i386-freebsd/cef5latex new file mode 100755 index 00000000000..7eda1633766 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/cef5pdflatex b/Master/bin/i386-freebsd/cef5pdflatex new file mode 100755 index 00000000000..25fe066a53f --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/cefconv b/Master/bin/i386-freebsd/cefconv Binary files differnew file mode 100755 index 00000000000..f09c2c77af9 --- /dev/null +++ b/Master/bin/i386-freebsd/cefconv diff --git a/Master/bin/i386-freebsd/ceflatex b/Master/bin/i386-freebsd/ceflatex new file mode 100755 index 00000000000..d34244d9a5b --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/cefpdflatex b/Master/bin/i386-freebsd/cefpdflatex new file mode 100755 index 00000000000..4c7309f2bf2 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/cefsconv b/Master/bin/i386-freebsd/cefsconv Binary files differnew file mode 100755 index 00000000000..66463cd98f1 --- /dev/null +++ b/Master/bin/i386-freebsd/cefsconv diff --git a/Master/bin/i386-freebsd/cefslatex b/Master/bin/i386-freebsd/cefslatex new file mode 100755 index 00000000000..619d08c7577 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/cefspdflatex b/Master/bin/i386-freebsd/cefspdflatex new file mode 100755 index 00000000000..02bf6598f71 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/cfftot1 b/Master/bin/i386-freebsd/cfftot1 Binary files differnew file mode 100755 index 00000000000..fb207d98e3d --- /dev/null +++ b/Master/bin/i386-freebsd/cfftot1 diff --git a/Master/bin/i386-freebsd/cmap2enc b/Master/bin/i386-freebsd/cmap2enc new file mode 120000 index 00000000000..facef66a9b8 --- /dev/null +++ b/Master/bin/i386-freebsd/cmap2enc @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/cmap2enc
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/context b/Master/bin/i386-freebsd/context new file mode 120000 index 00000000000..fd177847393 --- /dev/null +++ b/Master/bin/i386-freebsd/context @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/context
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/cslatex b/Master/bin/i386-freebsd/cslatex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/cslatex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/csplain b/Master/bin/i386-freebsd/csplain new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/csplain @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/ctangle b/Master/bin/i386-freebsd/ctangle Binary files differnew file mode 100755 index 00000000000..b03442ac972 --- /dev/null +++ b/Master/bin/i386-freebsd/ctangle diff --git a/Master/bin/i386-freebsd/ctie b/Master/bin/i386-freebsd/ctie Binary files differnew file mode 100755 index 00000000000..d4b896e2487 --- /dev/null +++ b/Master/bin/i386-freebsd/ctie diff --git a/Master/bin/i386-freebsd/ctxtools b/Master/bin/i386-freebsd/ctxtools new file mode 120000 index 00000000000..66237b28340 --- /dev/null +++ b/Master/bin/i386-freebsd/ctxtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/ctxtools
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/cweave b/Master/bin/i386-freebsd/cweave Binary files differnew file mode 100755 index 00000000000..799e59f3bf6 --- /dev/null +++ b/Master/bin/i386-freebsd/cweave diff --git a/Master/bin/i386-freebsd/detex b/Master/bin/i386-freebsd/detex Binary files differnew file mode 100755 index 00000000000..0f190e6025d --- /dev/null +++ b/Master/bin/i386-freebsd/detex diff --git a/Master/bin/i386-freebsd/devnag b/Master/bin/i386-freebsd/devnag Binary files differnew file mode 100755 index 00000000000..f0d59d970a5 --- /dev/null +++ b/Master/bin/i386-freebsd/devnag diff --git a/Master/bin/i386-freebsd/disdvi b/Master/bin/i386-freebsd/disdvi Binary files differnew file mode 100755 index 00000000000..c7005f5099d --- /dev/null +++ b/Master/bin/i386-freebsd/disdvi diff --git a/Master/bin/i386-freebsd/dt2dv b/Master/bin/i386-freebsd/dt2dv Binary files differnew file mode 100755 index 00000000000..577ec03e3cb --- /dev/null +++ b/Master/bin/i386-freebsd/dt2dv diff --git a/Master/bin/i386-freebsd/dv2dt b/Master/bin/i386-freebsd/dv2dt Binary files differnew file mode 100755 index 00000000000..9d83670816e --- /dev/null +++ b/Master/bin/i386-freebsd/dv2dt diff --git a/Master/bin/i386-freebsd/dvi2fax b/Master/bin/i386-freebsd/dvi2fax new file mode 100755 index 00000000000..fdfa83211eb --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/dvi2tty b/Master/bin/i386-freebsd/dvi2tty Binary files differnew file mode 100755 index 00000000000..935b66e9138 --- /dev/null +++ b/Master/bin/i386-freebsd/dvi2tty diff --git a/Master/bin/i386-freebsd/dviasm b/Master/bin/i386-freebsd/dviasm new file mode 120000 index 00000000000..2b15762a267 --- /dev/null +++ b/Master/bin/i386-freebsd/dviasm @@ -0,0 +1 @@ +../../texmf-dist/scripts/dviasm/dviasm.py
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/dvibook b/Master/bin/i386-freebsd/dvibook Binary files differnew file mode 100755 index 00000000000..7bb49afecbf --- /dev/null +++ b/Master/bin/i386-freebsd/dvibook diff --git a/Master/bin/i386-freebsd/dviconcat b/Master/bin/i386-freebsd/dviconcat Binary files differnew file mode 100755 index 00000000000..2389f7b0147 --- /dev/null +++ b/Master/bin/i386-freebsd/dviconcat diff --git a/Master/bin/i386-freebsd/dvicopy b/Master/bin/i386-freebsd/dvicopy Binary files differnew file mode 100755 index 00000000000..ff1344c61bc --- /dev/null +++ b/Master/bin/i386-freebsd/dvicopy diff --git a/Master/bin/i386-freebsd/dvidvi b/Master/bin/i386-freebsd/dvidvi Binary files differnew file mode 100755 index 00000000000..10bde540e86 --- /dev/null +++ b/Master/bin/i386-freebsd/dvidvi diff --git a/Master/bin/i386-freebsd/dvigif b/Master/bin/i386-freebsd/dvigif new file mode 120000 index 00000000000..c1eef0afe05 --- /dev/null +++ b/Master/bin/i386-freebsd/dvigif @@ -0,0 +1 @@ +dvipng
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/dvihp b/Master/bin/i386-freebsd/dvihp new file mode 100755 index 00000000000..6b149517086 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/dvilj b/Master/bin/i386-freebsd/dvilj Binary files differnew file mode 100755 index 00000000000..6242267bdd2 --- /dev/null +++ b/Master/bin/i386-freebsd/dvilj diff --git a/Master/bin/i386-freebsd/dvilj2p b/Master/bin/i386-freebsd/dvilj2p Binary files differnew file mode 100755 index 00000000000..6c54646dc42 --- /dev/null +++ b/Master/bin/i386-freebsd/dvilj2p diff --git a/Master/bin/i386-freebsd/dvilj4 b/Master/bin/i386-freebsd/dvilj4 Binary files differnew file mode 100755 index 00000000000..37cbf1ed155 --- /dev/null +++ b/Master/bin/i386-freebsd/dvilj4 diff --git a/Master/bin/i386-freebsd/dvilj4l b/Master/bin/i386-freebsd/dvilj4l Binary files differnew file mode 100755 index 00000000000..f3272517aa3 --- /dev/null +++ b/Master/bin/i386-freebsd/dvilj4l diff --git a/Master/bin/i386-freebsd/dvilj6 b/Master/bin/i386-freebsd/dvilj6 new file mode 120000 index 00000000000..576e6e449cd --- /dev/null +++ b/Master/bin/i386-freebsd/dvilj6 @@ -0,0 +1 @@ +dvilj4
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/dvilualatex b/Master/bin/i386-freebsd/dvilualatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/i386-freebsd/dvilualatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/dviluatex b/Master/bin/i386-freebsd/dviluatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/i386-freebsd/dviluatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/dvipdfm b/Master/bin/i386-freebsd/dvipdfm new file mode 120000 index 00000000000..ab4195592f6 --- /dev/null +++ b/Master/bin/i386-freebsd/dvipdfm @@ -0,0 +1 @@ +dvipdfmx
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/dvipdfmx b/Master/bin/i386-freebsd/dvipdfmx Binary files differnew file mode 100755 index 00000000000..d6f95f0cd35 --- /dev/null +++ b/Master/bin/i386-freebsd/dvipdfmx diff --git a/Master/bin/i386-freebsd/dvipdft b/Master/bin/i386-freebsd/dvipdft new file mode 100755 index 00000000000..3bcd0027db1 --- /dev/null +++ b/Master/bin/i386-freebsd/dvipdft @@ -0,0 +1,105 @@ +#!/bin/sh +# dvipdft, completely rewritten by Thomas Esser for teTeX after an +# original script by Mark A. Wicks +# +# Thomas Esser. Public Domain. +# +# Modified by Matthias Franz for dvipdfmx (when running as dvipdfm) and +# TeX Live. + +# 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. + +progname=dvipdft +version=20090604.0046 + +# set trap for error +trap ' + echo "$progname: fatal error." >&2 + exit 1 +' 1 + +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+"$@"}'='"$@"' + +help="Usage: $progname [options] dvifile + $progname --help + $progname --version" + +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 and others" + 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$@@'` + +ls "$outBase".[1-9]* >/dev/null 2>&1 && { + echo "$progname: Please move the following files out of the way:" >&2 + ls "$outBase".[1-9]* >&2 + exit 1 +} + +# restore args 1 to (n-1): +eval set x "$s"; shift + +# set trap for cleanup +trap ' + rm -f "$outBase".[1-9]* +' 0 + +# Run dvipdfm with the fastest options for the first pass +echo "$progname: running dvipdfm $@ -z0 $dvifile" >&2 +dvipdfm ${1+"$@"} -z0 "$dvifile" + +# run gs +echo "$progname: running gs" >&2 +gs -r10 -dNOPAUSE -dBATCH -sDEVICE=png256 -sOutputFile="$outBase.%d" "$outfile" + +# run dvipdfm with the users specified options for the last pass +echo "$progname: running dvipdfm -t $@ $dvifile" >&2 +dvipdfm ${1+"$@"} -t "$dvifile" diff --git a/Master/bin/i386-freebsd/dvipng b/Master/bin/i386-freebsd/dvipng Binary files differnew file mode 100755 index 00000000000..a6256032c52 --- /dev/null +++ b/Master/bin/i386-freebsd/dvipng diff --git a/Master/bin/i386-freebsd/dvipos b/Master/bin/i386-freebsd/dvipos Binary files differnew file mode 100755 index 00000000000..0bddba96e6e --- /dev/null +++ b/Master/bin/i386-freebsd/dvipos diff --git a/Master/bin/i386-freebsd/dvips b/Master/bin/i386-freebsd/dvips Binary files differnew file mode 100755 index 00000000000..fdb3d983dec --- /dev/null +++ b/Master/bin/i386-freebsd/dvips diff --git a/Master/bin/i386-freebsd/dvired b/Master/bin/i386-freebsd/dvired new file mode 100755 index 00000000000..4eb3586119d --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/dviselect b/Master/bin/i386-freebsd/dviselect Binary files differnew file mode 100755 index 00000000000..60de01ab698 --- /dev/null +++ b/Master/bin/i386-freebsd/dviselect diff --git a/Master/bin/i386-freebsd/dvitodvi b/Master/bin/i386-freebsd/dvitodvi Binary files differnew file mode 100755 index 00000000000..3755b1003e5 --- /dev/null +++ b/Master/bin/i386-freebsd/dvitodvi diff --git a/Master/bin/i386-freebsd/dvitomp b/Master/bin/i386-freebsd/dvitomp new file mode 120000 index 00000000000..96672bbb523 --- /dev/null +++ b/Master/bin/i386-freebsd/dvitomp @@ -0,0 +1 @@ +mpost
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/dvitype b/Master/bin/i386-freebsd/dvitype Binary files differnew file mode 100755 index 00000000000..387171602e0 --- /dev/null +++ b/Master/bin/i386-freebsd/dvitype diff --git a/Master/bin/i386-freebsd/e2pall b/Master/bin/i386-freebsd/e2pall new file mode 120000 index 00000000000..47465883225 --- /dev/null +++ b/Master/bin/i386-freebsd/e2pall @@ -0,0 +1 @@ +../../texmf/scripts/tetex/e2pall.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/ebb b/Master/bin/i386-freebsd/ebb new file mode 120000 index 00000000000..ab4195592f6 --- /dev/null +++ b/Master/bin/i386-freebsd/ebb @@ -0,0 +1 @@ +dvipdfmx
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/ebong b/Master/bin/i386-freebsd/ebong new file mode 120000 index 00000000000..b0704cb4db1 --- /dev/null +++ b/Master/bin/i386-freebsd/ebong @@ -0,0 +1 @@ +../../texmf-dist/scripts/bengali/ebong.py
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/eplain b/Master/bin/i386-freebsd/eplain new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/eplain @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/epsffit b/Master/bin/i386-freebsd/epsffit Binary files differnew file mode 100755 index 00000000000..661aa37ba49 --- /dev/null +++ b/Master/bin/i386-freebsd/epsffit diff --git a/Master/bin/i386-freebsd/epspdf b/Master/bin/i386-freebsd/epspdf new file mode 120000 index 00000000000..0195c700955 --- /dev/null +++ b/Master/bin/i386-freebsd/epspdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/epspdf/epspdf
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/epspdftk b/Master/bin/i386-freebsd/epspdftk new file mode 120000 index 00000000000..ef9d117fd47 --- /dev/null +++ b/Master/bin/i386-freebsd/epspdftk @@ -0,0 +1 @@ +../../texmf-dist/scripts/epspdf/epspdftk
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/epstopdf b/Master/bin/i386-freebsd/epstopdf new file mode 120000 index 00000000000..2356f54942b --- /dev/null +++ b/Master/bin/i386-freebsd/epstopdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/epstopdf/epstopdf.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/etex b/Master/bin/i386-freebsd/etex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/etex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/extconv b/Master/bin/i386-freebsd/extconv Binary files differnew file mode 100755 index 00000000000..6ae2b889a75 --- /dev/null +++ b/Master/bin/i386-freebsd/extconv diff --git a/Master/bin/i386-freebsd/extractbb b/Master/bin/i386-freebsd/extractbb new file mode 120000 index 00000000000..ab4195592f6 --- /dev/null +++ b/Master/bin/i386-freebsd/extractbb @@ -0,0 +1 @@ +dvipdfmx
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/extractres b/Master/bin/i386-freebsd/extractres new file mode 100755 index 00000000000..c54056461a2 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fig4latex b/Master/bin/i386-freebsd/fig4latex new file mode 120000 index 00000000000..6c515e55312 --- /dev/null +++ b/Master/bin/i386-freebsd/fig4latex @@ -0,0 +1 @@ +../../texmf-dist/scripts/fig4latex/fig4latex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/findhyph b/Master/bin/i386-freebsd/findhyph new file mode 120000 index 00000000000..31f10c8c0de --- /dev/null +++ b/Master/bin/i386-freebsd/findhyph @@ -0,0 +1 @@ +../../texmf-dist/scripts/findhyph/findhyph
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/fixdlsrps b/Master/bin/i386-freebsd/fixdlsrps new file mode 100755 index 00000000000..2a1d85a654c --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fixfmps b/Master/bin/i386-freebsd/fixfmps new file mode 100755 index 00000000000..039ac8e5a3e --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fixmacps b/Master/bin/i386-freebsd/fixmacps new file mode 100755 index 00000000000..f4cfdb10a9e --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fixpsditps b/Master/bin/i386-freebsd/fixpsditps new file mode 100755 index 00000000000..2a1728a8204 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fixpspps b/Master/bin/i386-freebsd/fixpspps new file mode 100755 index 00000000000..77bba66d6b7 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fixscribeps b/Master/bin/i386-freebsd/fixscribeps new file mode 100755 index 00000000000..bd4e9a0e3e0 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fixtpps b/Master/bin/i386-freebsd/fixtpps new file mode 100755 index 00000000000..4239bb9dfc5 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fixwfwps b/Master/bin/i386-freebsd/fixwfwps new file mode 100755 index 00000000000..92d88443fe1 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fixwpps b/Master/bin/i386-freebsd/fixwpps new file mode 100755 index 00000000000..83a5fdfaf0b --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fixwwps b/Master/bin/i386-freebsd/fixwwps new file mode 100755 index 00000000000..bfd58c086da --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fmtutil b/Master/bin/i386-freebsd/fmtutil new file mode 100755 index 00000000000..7b212f0e212 --- /dev/null +++ b/Master/bin/i386-freebsd/fmtutil @@ -0,0 +1,981 @@ +#!/bin/sh +# fmtutil - utility to maintain format files. +# Public domain. Originally written by Thomas Esser. + +# 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 Ma 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=20091009.0222 + +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 +} + +############################################################################### +# help() and version() +# display help (or version) message and exit +############################################################################### +help() +{ + cat <<'eof' +Usage: fmtutil [OPTION]... CMD [ARG]... + +Rebuild, manage, and otherwise manipulate TeX formats (and Metafont +bases and MetaPost mems). + +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 + --byengine ENGINENAME (re)create formats using ENGINENAME + --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 config file + --version show version info + --help show this message + +The config file is named fmtutil.cnf, and +running kpsewhich fmtutil.cnf should show the active file. +eof + cleanup 0 +} + +version() +{ + cat <<eof +$progname version $version +eof + cleanup 0 +} + +############################################################################### +# 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 +} + +############################################################################### +# 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_warnings; then + { + cat <<eof + +############################################################################### +$progname: Warning! Some warnings have been issued. +Visit the log files in directory + $destdir +for details. +############################################################################### + +This is a summary of all \`warning' messages: +$log_warning_msg +eof + } >&2 + fi + + 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: +$log_failure_msg +eof + } >&2 + cleanup 1 + else + cleanup 0 + fi +} + +############################################################################### +# init_log_warning() +# reset the list of warning messages +############################################################################### +init_log_warning() +{ + log_warning_msg= + has_warnings=false +} + +############################################################################### +# init_log_failure() +# reset the list of failure messages +############################################################################### +init_log_failure() +{ + log_failure_msg= + has_errors=false +} + +############################################################################### +# log_warning(errmsg) +# report and save warning message `errmsg' +############################################################################### +log_warning() +{ + echo "Warning: $@" >&2 + if test -z "$log_warning_msg"; then + log_warning_msg="$@" + else + OLDIFS=$IFS; IFS= + log_warning_msg="$log_warning_msg +$@" + IFS=$OLDIFS + fi + has_warnings=true +} + +############################################################################### +# 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;; + --byengine) + shift; cmd=byengine; arg=$1;; + --byengine=*) + cmd=byengine; arg=`echo "$1" | sed 's/--byengine=//'`; shift ;; + --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 + init_log_warning + # execute the desired command: + case "$cmd" in + all) + recreate_all;; + missing) + create_missing;; + refresh) + recreate_existing;; + byengine) + recreate_by_engine "$arg";; + 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="$@" + + case "$engine" in + mpost) fmtfile="$format.mem"; kpsefmt=mp; texengine=metapost;; + mf|mfw|mf-nowin) fmtfile="$format.base"; kpsefmt=mf; texengine=metafont;; + *) fmtfile="$format.fmt"; kpsefmt=tex; texengine=$engine;; + esac + + # remove any * for the sake of the kpsewhich lookup. + eval lastarg=\$$# + inifile=`echo $lastarg | sed 's%^\*%%'` + + # 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_warning "\`$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 + # + destfile=$fulldestdir/$fmtfile + if mv "$fmtfile" "$destfile" </dev/null; then + verboseMsg "$progname: $destfile installed." + # + # As a special special case, we create mplib-luatex.mem for use by + # the mplib embedded in luatex if it doesn't already exist. (We + # never update it if it does exist.) + # + # This is used by the luamplib package. This way, an expert user + # who wants to try a new version of luatex (hence with a new + # version of mplib) can manually update mplib-luatex.mem without + # having to tamper with mpost itself. + # + if test "x$format" = xmpost && test "x$engine" = xmpost; then + mplib_mem_name=mplib-luatex.mem + mplib_mem_file=$fulldestdir/$mplib_mem_name + if test \! -f $mplib_mem_file; then + verboseMsg "$progname: copying $destfile to $mplib_mem_file" + if cp "$destfile" "$mplib_mem_file" </dev/null; then + mktexupd "$fulldestdir" "$mplib_mem_name" + else + log_warning "cp $destfile $mplib_mem_file failed." + fi + else + verboseMsg "$progname: $mplib_mem_file already exists, not updating." + fi + fi + # + # Echo the (main) output filename for our caller. + $mktexfmtMode && $mktexfmtFirst \ + && echo "$destfile" && 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 hyphen file \`$hyphenfile'" +} + +############################################################################### +# recreate_by_engine(enginename) +# recreate all formats that are based on enginename +############################################################################### +recreate_by_engine() +{ + enginename=$1 + + match_cmd="test x\$engine = x$enginename" + + # No match before the loop: + setmatch false + + recreate_loop + + # Now check if there was at least one match: + getmatch || abort "no format depends on engine \`$enginename'" +} + + + +############################################################################### +# 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-freebsd/fmtutil-sys b/Master/bin/i386-freebsd/fmtutil-sys new file mode 100755 index 00000000000..bfb52f94e1f --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/font2afm b/Master/bin/i386-freebsd/font2afm new file mode 120000 index 00000000000..b9cc2541efe --- /dev/null +++ b/Master/bin/i386-freebsd/font2afm @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/font2afm
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/fontinst b/Master/bin/i386-freebsd/fontinst new file mode 100755 index 00000000000..7d1271517ad --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/fragmaster b/Master/bin/i386-freebsd/fragmaster new file mode 120000 index 00000000000..ca1bb398b4b --- /dev/null +++ b/Master/bin/i386-freebsd/fragmaster @@ -0,0 +1 @@ +../../texmf-dist/scripts/fragmaster/fragmaster.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/gbklatex b/Master/bin/i386-freebsd/gbklatex new file mode 100755 index 00000000000..f799f7b6e63 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/gbkpdflatex b/Master/bin/i386-freebsd/gbkpdflatex new file mode 100755 index 00000000000..6dd3ee3de9e --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/getafm b/Master/bin/i386-freebsd/getafm new file mode 100755 index 00000000000..1c6cd21cf77 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/getnonfreefonts b/Master/bin/i386-freebsd/getnonfreefonts new file mode 120000 index 00000000000..2dc7d81d482 --- /dev/null +++ b/Master/bin/i386-freebsd/getnonfreefonts @@ -0,0 +1 @@ +../../texmf/scripts/getnonfreefonts/getnonfreefonts.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/getnonfreefonts-sys b/Master/bin/i386-freebsd/getnonfreefonts-sys new file mode 120000 index 00000000000..d1e30f335dd --- /dev/null +++ b/Master/bin/i386-freebsd/getnonfreefonts-sys @@ -0,0 +1 @@ +getnonfreefonts
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/gftodvi b/Master/bin/i386-freebsd/gftodvi Binary files differnew file mode 100755 index 00000000000..97744aee55f --- /dev/null +++ b/Master/bin/i386-freebsd/gftodvi diff --git a/Master/bin/i386-freebsd/gftopk b/Master/bin/i386-freebsd/gftopk Binary files differnew file mode 100755 index 00000000000..544b9135fb6 --- /dev/null +++ b/Master/bin/i386-freebsd/gftopk diff --git a/Master/bin/i386-freebsd/gftype b/Master/bin/i386-freebsd/gftype Binary files differnew file mode 100755 index 00000000000..899bb3bbdd5 --- /dev/null +++ b/Master/bin/i386-freebsd/gftype diff --git a/Master/bin/i386-freebsd/gsftopk b/Master/bin/i386-freebsd/gsftopk Binary files differnew file mode 100755 index 00000000000..a84e5e4a219 --- /dev/null +++ b/Master/bin/i386-freebsd/gsftopk diff --git a/Master/bin/i386-freebsd/hbf2gf b/Master/bin/i386-freebsd/hbf2gf Binary files differnew file mode 100755 index 00000000000..ed77ca36f84 --- /dev/null +++ b/Master/bin/i386-freebsd/hbf2gf diff --git a/Master/bin/i386-freebsd/ht b/Master/bin/i386-freebsd/ht new file mode 120000 index 00000000000..ecd829558cd --- /dev/null +++ b/Master/bin/i386-freebsd/ht @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/ht.sh
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/htcontext b/Master/bin/i386-freebsd/htcontext new file mode 120000 index 00000000000..d2754ae84fc --- /dev/null +++ b/Master/bin/i386-freebsd/htcontext @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htcontext.sh
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/htlatex b/Master/bin/i386-freebsd/htlatex new file mode 120000 index 00000000000..fe0feaa8185 --- /dev/null +++ b/Master/bin/i386-freebsd/htlatex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htlatex.sh
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/htmex b/Master/bin/i386-freebsd/htmex new file mode 120000 index 00000000000..29032d7b670 --- /dev/null +++ b/Master/bin/i386-freebsd/htmex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htmex.sh
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/httex b/Master/bin/i386-freebsd/httex new file mode 120000 index 00000000000..ece1bd19046 --- /dev/null +++ b/Master/bin/i386-freebsd/httex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/httex.sh
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/httexi b/Master/bin/i386-freebsd/httexi new file mode 120000 index 00000000000..aa6cd5c8561 --- /dev/null +++ b/Master/bin/i386-freebsd/httexi @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/httexi.sh
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/htxelatex b/Master/bin/i386-freebsd/htxelatex new file mode 120000 index 00000000000..dcaa0fc882c --- /dev/null +++ b/Master/bin/i386-freebsd/htxelatex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htxelatex.sh
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/htxetex b/Master/bin/i386-freebsd/htxetex new file mode 120000 index 00000000000..c6cf37bfae9 --- /dev/null +++ b/Master/bin/i386-freebsd/htxetex @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/htxetex.sh
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/includeres b/Master/bin/i386-freebsd/includeres new file mode 100755 index 00000000000..4547357cd93 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/jadetex b/Master/bin/i386-freebsd/jadetex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/jadetex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/kpseaccess b/Master/bin/i386-freebsd/kpseaccess Binary files differnew file mode 100755 index 00000000000..7451782b002 --- /dev/null +++ b/Master/bin/i386-freebsd/kpseaccess diff --git a/Master/bin/i386-freebsd/kpsepath b/Master/bin/i386-freebsd/kpsepath new file mode 120000 index 00000000000..30de0e13853 --- /dev/null +++ b/Master/bin/i386-freebsd/kpsepath @@ -0,0 +1 @@ +kpsetool
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/kpsereadlink b/Master/bin/i386-freebsd/kpsereadlink Binary files differnew file mode 100755 index 00000000000..f5693a0d72f --- /dev/null +++ b/Master/bin/i386-freebsd/kpsereadlink diff --git a/Master/bin/i386-freebsd/kpsestat b/Master/bin/i386-freebsd/kpsestat Binary files differnew file mode 100755 index 00000000000..c23837e616c --- /dev/null +++ b/Master/bin/i386-freebsd/kpsestat diff --git a/Master/bin/i386-freebsd/kpsetool b/Master/bin/i386-freebsd/kpsetool new file mode 100755 index 00000000000..463097fd4a9 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/kpsewhere b/Master/bin/i386-freebsd/kpsewhere new file mode 100755 index 00000000000..51088ee80d6 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/kpsewhich b/Master/bin/i386-freebsd/kpsewhich Binary files differnew file mode 100755 index 00000000000..7367ce56ed2 --- /dev/null +++ b/Master/bin/i386-freebsd/kpsewhich diff --git a/Master/bin/i386-freebsd/kpsexpand b/Master/bin/i386-freebsd/kpsexpand new file mode 120000 index 00000000000..30de0e13853 --- /dev/null +++ b/Master/bin/i386-freebsd/kpsexpand @@ -0,0 +1 @@ +kpsetool
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/lacheck b/Master/bin/i386-freebsd/lacheck Binary files differnew file mode 100755 index 00000000000..aa9928f866b --- /dev/null +++ b/Master/bin/i386-freebsd/lacheck diff --git a/Master/bin/i386-freebsd/lamed b/Master/bin/i386-freebsd/lamed new file mode 120000 index 00000000000..b02b132b9c1 --- /dev/null +++ b/Master/bin/i386-freebsd/lamed @@ -0,0 +1 @@ +aleph
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/latex b/Master/bin/i386-freebsd/latex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/latex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/latex2man b/Master/bin/i386-freebsd/latex2man new file mode 120000 index 00000000000..66d79f878b7 --- /dev/null +++ b/Master/bin/i386-freebsd/latex2man @@ -0,0 +1 @@ +../../texmf-dist/scripts/latex2man/latex2man
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/latexmk b/Master/bin/i386-freebsd/latexmk new file mode 120000 index 00000000000..4993e09a4e9 --- /dev/null +++ b/Master/bin/i386-freebsd/latexmk @@ -0,0 +1 @@ +../../texmf-dist/scripts/latexmk/latexmk.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/listings-ext.sh b/Master/bin/i386-freebsd/listings-ext.sh new file mode 120000 index 00000000000..943db76d879 --- /dev/null +++ b/Master/bin/i386-freebsd/listings-ext.sh @@ -0,0 +1 @@ +../../texmf-dist/scripts/listings-ext/listings-ext.sh
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/lualatex b/Master/bin/i386-freebsd/lualatex new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/i386-freebsd/lualatex @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/luatangle b/Master/bin/i386-freebsd/luatangle Binary files differnew file mode 100755 index 00000000000..9357299616d --- /dev/null +++ b/Master/bin/i386-freebsd/luatangle diff --git a/Master/bin/i386-freebsd/luatex b/Master/bin/i386-freebsd/luatex Binary files differnew file mode 100755 index 00000000000..d4850634fb5 --- /dev/null +++ b/Master/bin/i386-freebsd/luatex diff --git a/Master/bin/i386-freebsd/luatools b/Master/bin/i386-freebsd/luatools new file mode 120000 index 00000000000..aaf03c419a9 --- /dev/null +++ b/Master/bin/i386-freebsd/luatools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/lua/luatools.lua
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mag b/Master/bin/i386-freebsd/mag Binary files differnew file mode 100755 index 00000000000..85841bffee6 --- /dev/null +++ b/Master/bin/i386-freebsd/mag diff --git a/Master/bin/i386-freebsd/makeglossaries b/Master/bin/i386-freebsd/makeglossaries new file mode 120000 index 00000000000..526413aa3ea --- /dev/null +++ b/Master/bin/i386-freebsd/makeglossaries @@ -0,0 +1 @@ +../../texmf-dist/scripts/glossaries/makeglossaries
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/makeindex b/Master/bin/i386-freebsd/makeindex Binary files differnew file mode 100755 index 00000000000..ee5596e2762 --- /dev/null +++ b/Master/bin/i386-freebsd/makeindex diff --git a/Master/bin/i386-freebsd/makempy b/Master/bin/i386-freebsd/makempy new file mode 120000 index 00000000000..a3df543b304 --- /dev/null +++ b/Master/bin/i386-freebsd/makempy @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/makempy
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/man b/Master/bin/i386-freebsd/man new file mode 120000 index 00000000000..9616d4ec099 --- /dev/null +++ b/Master/bin/i386-freebsd/man @@ -0,0 +1 @@ +../../texmf/doc/man
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/metafun b/Master/bin/i386-freebsd/metafun new file mode 120000 index 00000000000..96672bbb523 --- /dev/null +++ b/Master/bin/i386-freebsd/metafun @@ -0,0 +1 @@ +mpost
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mex b/Master/bin/i386-freebsd/mex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/mex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mf b/Master/bin/i386-freebsd/mf Binary files differnew file mode 100755 index 00000000000..c223d57ab3e --- /dev/null +++ b/Master/bin/i386-freebsd/mf diff --git a/Master/bin/i386-freebsd/mf-nowin b/Master/bin/i386-freebsd/mf-nowin Binary files differnew file mode 100755 index 00000000000..7305511eca2 --- /dev/null +++ b/Master/bin/i386-freebsd/mf-nowin diff --git a/Master/bin/i386-freebsd/mfplain b/Master/bin/i386-freebsd/mfplain new file mode 120000 index 00000000000..96672bbb523 --- /dev/null +++ b/Master/bin/i386-freebsd/mfplain @@ -0,0 +1 @@ +mpost
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mft b/Master/bin/i386-freebsd/mft Binary files differnew file mode 100755 index 00000000000..ae02c9f01a8 --- /dev/null +++ b/Master/bin/i386-freebsd/mft diff --git a/Master/bin/i386-freebsd/mk4ht b/Master/bin/i386-freebsd/mk4ht new file mode 120000 index 00000000000..4b7480809ba --- /dev/null +++ b/Master/bin/i386-freebsd/mk4ht @@ -0,0 +1 @@ +../../texmf-dist/scripts/tex4ht/mk4ht.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mkgrkindex b/Master/bin/i386-freebsd/mkgrkindex new file mode 120000 index 00000000000..2dc602dd180 --- /dev/null +++ b/Master/bin/i386-freebsd/mkgrkindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/mkgrkindex/mkgrkindex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mkindex b/Master/bin/i386-freebsd/mkindex new file mode 100755 index 00000000000..565f805695d --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/mkjobtexmf b/Master/bin/i386-freebsd/mkjobtexmf new file mode 120000 index 00000000000..90b7a69f9f5 --- /dev/null +++ b/Master/bin/i386-freebsd/mkjobtexmf @@ -0,0 +1 @@ +../../texmf-dist/scripts/mkjobtexmf/mkjobtexmf.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mkocp b/Master/bin/i386-freebsd/mkocp new file mode 100755 index 00000000000..41ffead8bf1 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/mkofm b/Master/bin/i386-freebsd/mkofm new file mode 100755 index 00000000000..ef820171f08 --- /dev/null +++ b/Master/bin/i386-freebsd/mkofm @@ -0,0 +1,3 @@ +#!/bin/sh +# Initial definition. For the moment only makes .tfm files. +mktextfm $* diff --git a/Master/bin/i386-freebsd/mkt1font b/Master/bin/i386-freebsd/mkt1font new file mode 120000 index 00000000000..9a87e88c93a --- /dev/null +++ b/Master/bin/i386-freebsd/mkt1font @@ -0,0 +1 @@ +../../texmf-dist/scripts/accfonts/mkt1font
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mktexfmt b/Master/bin/i386-freebsd/mktexfmt new file mode 120000 index 00000000000..817cc8aaa1b --- /dev/null +++ b/Master/bin/i386-freebsd/mktexfmt @@ -0,0 +1 @@ +fmtutil
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mktexlsr b/Master/bin/i386-freebsd/mktexlsr new file mode 100755 index 00000000000..77aa99e0042 --- /dev/null +++ b/Master/bin/i386-freebsd/mktexlsr @@ -0,0 +1,201 @@ +#!/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 14402 2009-07-23 17:09:15Z karl $' +progname=`echo $0 | sed 's%.*/%%'` +usage="Usage: $progname [OPTION]... [DIR]... + +Rebuild ls-R filename databases used by TeX. 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. + +For more information, see the ‘Filename database’ section of +Kpathsea manual available at http://tug.org/kpathsea. + +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-freebsd/mktexmf b/Master/bin/i386-freebsd/mktexmf new file mode 100755 index 00000000000..32bb85ec3d8 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/mktexpk b/Master/bin/i386-freebsd/mktexpk new file mode 100755 index 00000000000..baed82a83fa --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/mktextfm b/Master/bin/i386-freebsd/mktextfm new file mode 100755 index 00000000000..e695f8ffbf4 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/mllatex b/Master/bin/i386-freebsd/mllatex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/mllatex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mltex b/Master/bin/i386-freebsd/mltex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/mltex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mmafm b/Master/bin/i386-freebsd/mmafm Binary files differnew file mode 100755 index 00000000000..c46429f4636 --- /dev/null +++ b/Master/bin/i386-freebsd/mmafm diff --git a/Master/bin/i386-freebsd/mmpfb b/Master/bin/i386-freebsd/mmpfb Binary files differnew file mode 100755 index 00000000000..abeae5c4943 --- /dev/null +++ b/Master/bin/i386-freebsd/mmpfb diff --git a/Master/bin/i386-freebsd/mpost b/Master/bin/i386-freebsd/mpost Binary files differnew file mode 100755 index 00000000000..bb79af4d0c1 --- /dev/null +++ b/Master/bin/i386-freebsd/mpost diff --git a/Master/bin/i386-freebsd/mpstools b/Master/bin/i386-freebsd/mpstools new file mode 120000 index 00000000000..caf4ae949f7 --- /dev/null +++ b/Master/bin/i386-freebsd/mpstools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/mpstools
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mptopdf b/Master/bin/i386-freebsd/mptopdf new file mode 120000 index 00000000000..83172e791cd --- /dev/null +++ b/Master/bin/i386-freebsd/mptopdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/mptopdf
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mtxrun b/Master/bin/i386-freebsd/mtxrun new file mode 120000 index 00000000000..8825f964657 --- /dev/null +++ b/Master/bin/i386-freebsd/mtxrun @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/lua/mtxrun.lua
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/mtxtools b/Master/bin/i386-freebsd/mtxtools new file mode 120000 index 00000000000..d99a8081bb9 --- /dev/null +++ b/Master/bin/i386-freebsd/mtxtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/mtxtools
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/musixflx b/Master/bin/i386-freebsd/musixflx Binary files differnew file mode 100755 index 00000000000..39514b6e4d0 --- /dev/null +++ b/Master/bin/i386-freebsd/musixflx diff --git a/Master/bin/i386-freebsd/odvicopy b/Master/bin/i386-freebsd/odvicopy Binary files differnew file mode 100755 index 00000000000..8b729f90f0c --- /dev/null +++ b/Master/bin/i386-freebsd/odvicopy diff --git a/Master/bin/i386-freebsd/odvitype b/Master/bin/i386-freebsd/odvitype Binary files differnew file mode 100755 index 00000000000..dae214fd24c --- /dev/null +++ b/Master/bin/i386-freebsd/odvitype diff --git a/Master/bin/i386-freebsd/ofm2opl b/Master/bin/i386-freebsd/ofm2opl new file mode 120000 index 00000000000..b1299fc008c --- /dev/null +++ b/Master/bin/i386-freebsd/ofm2opl @@ -0,0 +1 @@ +omfonts
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/omfonts b/Master/bin/i386-freebsd/omfonts Binary files differnew file mode 100755 index 00000000000..35a6eb8f920 --- /dev/null +++ b/Master/bin/i386-freebsd/omfonts diff --git a/Master/bin/i386-freebsd/opl2ofm b/Master/bin/i386-freebsd/opl2ofm new file mode 120000 index 00000000000..b1299fc008c --- /dev/null +++ b/Master/bin/i386-freebsd/opl2ofm @@ -0,0 +1 @@ +omfonts
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/ot2kpx b/Master/bin/i386-freebsd/ot2kpx new file mode 120000 index 00000000000..c96ab52671a --- /dev/null +++ b/Master/bin/i386-freebsd/ot2kpx @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/ot2kpx
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/otangle b/Master/bin/i386-freebsd/otangle Binary files differnew file mode 100755 index 00000000000..3086bcd2a66 --- /dev/null +++ b/Master/bin/i386-freebsd/otangle diff --git a/Master/bin/i386-freebsd/otfinfo b/Master/bin/i386-freebsd/otfinfo Binary files differnew file mode 100755 index 00000000000..63652b15da0 --- /dev/null +++ b/Master/bin/i386-freebsd/otfinfo diff --git a/Master/bin/i386-freebsd/otftotfm b/Master/bin/i386-freebsd/otftotfm Binary files differnew file mode 100755 index 00000000000..f122e610326 --- /dev/null +++ b/Master/bin/i386-freebsd/otftotfm diff --git a/Master/bin/i386-freebsd/otp2ocp b/Master/bin/i386-freebsd/otp2ocp Binary files differnew file mode 100755 index 00000000000..a97a042cf62 --- /dev/null +++ b/Master/bin/i386-freebsd/otp2ocp diff --git a/Master/bin/i386-freebsd/outocp b/Master/bin/i386-freebsd/outocp Binary files differnew file mode 100755 index 00000000000..77544af3b1b --- /dev/null +++ b/Master/bin/i386-freebsd/outocp diff --git a/Master/bin/i386-freebsd/ovf2ovp b/Master/bin/i386-freebsd/ovf2ovp new file mode 120000 index 00000000000..b1299fc008c --- /dev/null +++ b/Master/bin/i386-freebsd/ovf2ovp @@ -0,0 +1 @@ +omfonts
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/ovp2ovf b/Master/bin/i386-freebsd/ovp2ovf new file mode 120000 index 00000000000..b1299fc008c --- /dev/null +++ b/Master/bin/i386-freebsd/ovp2ovf @@ -0,0 +1 @@ +omfonts
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/patgen b/Master/bin/i386-freebsd/patgen Binary files differnew file mode 100755 index 00000000000..faa32fcff6d --- /dev/null +++ b/Master/bin/i386-freebsd/patgen diff --git a/Master/bin/i386-freebsd/pdfannotextractor b/Master/bin/i386-freebsd/pdfannotextractor new file mode 120000 index 00000000000..8268b4f9f7c --- /dev/null +++ b/Master/bin/i386-freebsd/pdfannotextractor @@ -0,0 +1 @@ +../../texmf-dist/scripts/pax/pdfannotextractor.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdfatfi b/Master/bin/i386-freebsd/pdfatfi new file mode 120000 index 00000000000..6cd281194e9 --- /dev/null +++ b/Master/bin/i386-freebsd/pdfatfi @@ -0,0 +1 @@ +../../texmf-dist/scripts/oberdiek/pdfatfi.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdfclose b/Master/bin/i386-freebsd/pdfclose Binary files differnew file mode 100755 index 00000000000..4b6bf069db0 --- /dev/null +++ b/Master/bin/i386-freebsd/pdfclose diff --git a/Master/bin/i386-freebsd/pdfcrop b/Master/bin/i386-freebsd/pdfcrop new file mode 120000 index 00000000000..d5235ebbcb7 --- /dev/null +++ b/Master/bin/i386-freebsd/pdfcrop @@ -0,0 +1 @@ +../../texmf-dist/scripts/pdfcrop/pdfcrop.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdfcslatex b/Master/bin/i386-freebsd/pdfcslatex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/pdfcslatex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdfcsplain b/Master/bin/i386-freebsd/pdfcsplain new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/pdfcsplain @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdfetex b/Master/bin/i386-freebsd/pdfetex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/pdfetex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdfjadetex b/Master/bin/i386-freebsd/pdfjadetex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/pdfjadetex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdflatex b/Master/bin/i386-freebsd/pdflatex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/pdflatex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdfmex b/Master/bin/i386-freebsd/pdfmex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/pdfmex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdfopen b/Master/bin/i386-freebsd/pdfopen Binary files differnew file mode 100755 index 00000000000..f95f4b61a0e --- /dev/null +++ b/Master/bin/i386-freebsd/pdfopen diff --git a/Master/bin/i386-freebsd/pdftex b/Master/bin/i386-freebsd/pdftex Binary files differnew file mode 100755 index 00000000000..648cf5791ae --- /dev/null +++ b/Master/bin/i386-freebsd/pdftex diff --git a/Master/bin/i386-freebsd/pdfthumb b/Master/bin/i386-freebsd/pdfthumb new file mode 120000 index 00000000000..09b8aea456f --- /dev/null +++ b/Master/bin/i386-freebsd/pdfthumb @@ -0,0 +1 @@ +../../texmf-dist/scripts/ppower4/pdfthumb.tlu
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdftools b/Master/bin/i386-freebsd/pdftools new file mode 120000 index 00000000000..fa012780ccc --- /dev/null +++ b/Master/bin/i386-freebsd/pdftools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/pdftools
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pdftosrc b/Master/bin/i386-freebsd/pdftosrc Binary files differnew file mode 100755 index 00000000000..bda66555141 --- /dev/null +++ b/Master/bin/i386-freebsd/pdftosrc diff --git a/Master/bin/i386-freebsd/pdfxmltex b/Master/bin/i386-freebsd/pdfxmltex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/pdfxmltex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/perltex b/Master/bin/i386-freebsd/perltex new file mode 120000 index 00000000000..3edff7c32df --- /dev/null +++ b/Master/bin/i386-freebsd/perltex @@ -0,0 +1 @@ +../../texmf-dist/scripts/perltex/perltex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pfb2pfa b/Master/bin/i386-freebsd/pfb2pfa Binary files differnew file mode 100755 index 00000000000..bca3faf9d4d --- /dev/null +++ b/Master/bin/i386-freebsd/pfb2pfa diff --git a/Master/bin/i386-freebsd/pfm2kpx b/Master/bin/i386-freebsd/pfm2kpx new file mode 120000 index 00000000000..70d749ac5f9 --- /dev/null +++ b/Master/bin/i386-freebsd/pfm2kpx @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/pfm2kpx
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/physe b/Master/bin/i386-freebsd/physe new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/physe @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/phyzzx b/Master/bin/i386-freebsd/phyzzx new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/phyzzx @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pk2bm b/Master/bin/i386-freebsd/pk2bm Binary files differnew file mode 100755 index 00000000000..131140388b8 --- /dev/null +++ b/Master/bin/i386-freebsd/pk2bm diff --git a/Master/bin/i386-freebsd/pkfix b/Master/bin/i386-freebsd/pkfix new file mode 120000 index 00000000000..028545a007c --- /dev/null +++ b/Master/bin/i386-freebsd/pkfix @@ -0,0 +1 @@ +../../texmf-dist/scripts/pkfix/pkfix.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pkfix-helper b/Master/bin/i386-freebsd/pkfix-helper new file mode 120000 index 00000000000..44ef5278bd4 --- /dev/null +++ b/Master/bin/i386-freebsd/pkfix-helper @@ -0,0 +1 @@ +../../texmf-dist/scripts/pkfix-helper/pkfix-helper
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pktogf b/Master/bin/i386-freebsd/pktogf Binary files differnew file mode 100755 index 00000000000..45fc18221b9 --- /dev/null +++ b/Master/bin/i386-freebsd/pktogf diff --git a/Master/bin/i386-freebsd/pktype b/Master/bin/i386-freebsd/pktype Binary files differnew file mode 100755 index 00000000000..2e73b5f7105 --- /dev/null +++ b/Master/bin/i386-freebsd/pktype diff --git a/Master/bin/i386-freebsd/pltotf b/Master/bin/i386-freebsd/pltotf Binary files differnew file mode 100755 index 00000000000..bbf1b27184b --- /dev/null +++ b/Master/bin/i386-freebsd/pltotf diff --git a/Master/bin/i386-freebsd/pooltype b/Master/bin/i386-freebsd/pooltype Binary files differnew file mode 100755 index 00000000000..871a1903996 --- /dev/null +++ b/Master/bin/i386-freebsd/pooltype diff --git a/Master/bin/i386-freebsd/ppower4 b/Master/bin/i386-freebsd/ppower4 new file mode 120000 index 00000000000..0e24a1c64e9 --- /dev/null +++ b/Master/bin/i386-freebsd/ppower4 @@ -0,0 +1 @@ +../../texmf-dist/scripts/ppower4/ppower4.tlu
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/ps2eps b/Master/bin/i386-freebsd/ps2eps new file mode 100755 index 00000000000..7092cbb0007 --- /dev/null +++ b/Master/bin/i386-freebsd/ps2eps @@ -0,0 +1,935 @@ +#!/usr/bin/env perl +# The expression in the previous line replaces the unix specific line +# {#!/usr/bin/perl}. +# ps2eps - convert PostScript to EPS (Encapsulated PostScript) files +# ------------------------------------------------------------------- +# $Id: ps2eps,v 1.64 2007/01/24 12:32:59 bless Exp $ +# ------------------------------------------------------- +# (C)opyright 1999-2007 Roland Bless +# +# 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 +# +# Author: Roland Bless +# Send bug reports to roland <at> bless.de +# ------------------------------------------------------------------- +# Additional filtering is performed when Windows generated PostScript files +# are processed. Some instructions will otherwise lead to bad output +# if EPS-file gets embedded into other PostScript files. +# +# Requirements: +# + perl +# + gs (ghostscript supporting pbm output) +# + bbox (a little C program [ANSI-C - should work on every platform] +# for calculation of the actual BoundingBox) + +use POSIX; + +#use warnings; + +#use Getopt package +use Getopt::Long; +Getopt::Long::Configure("no_ignore_case"); + +$prgname= "ps2eps"; + +if (! -d "/usr/bin") +{ # we assume that we are running under native windows + $ghostscriptname = "gswin32c"; + $NULLDEV = "nul"; +} +else +{ # Unix or cygwin + $ghostscriptname = "gs"; + $NULLDEV = "/dev/null 2>&1"; +} + +$bboxver=`bbox >$NULLDEV -V`; +$bboxname= ($?== -1) ? "" : "bbox"; +$version= '$Id: ps2eps,v 1.64 2007/01/24 12:32:59 bless Exp $'; #' +$insertPScode= 1; # Insert surrounding Postscript code +$infhandle = STDIN; # Standard input is the default input file +$outfhandle = STDOUT; # Standard output is default output if STDIN is input +$infname= '-'; +$outfname= '-'; +$forceoverwrite=0; # do not overwrite existing files +$ignoreBB= 0; # ignore existing Bounding Box comment +$removeDSC= 1; # remove Adobe document structure comments +$removeADO= 1; # remove Adobe printer Driver console Output [Page: ...] +$ignoreEOFDSC= 0; # ignore %%EOF DSC hint +$removePreview= 0; # remove preview +$quiet= 0; # write progress to stdout +$resolution= 144; # resolution for bounding box calculation is 2x72 dpi +$trytofixps= 1; # try to fix postscript code +$forcefixps= 0; # fix postscript code unconditionally if eq 1 +$filterorientation= 1;# filter Orientation line +$looseBB=''; # default: tight bounding box +$clip=0; # do not clip +$warnings=0; # do not print warnings concerning postscript sanity +$debuggs=0; # no debugging of ghostscript call, turn this on if you want to see the gs call +$inch=2.54; # one inch is 2.54cm +$fullcolors= 1; # use ppm format (24-bit full color) +$trailerseen= 0; # Trailer comment seen? +$PSversion="2.0"; # default Postscript Version +$PSDSCversion="2.0"; # default Postscript DSC Version +$translate_x= 0; # translate by x postscript points +$translate_y= 0; # translate by y postscript points + +$defaultext = '(ps|prn)'; # default extension +$defaultoutext = '.eps'; # default output extension +$envname_size = 'PS2EPS_SIZE'; +$envname_gsbbox = 'PS2EPS_GSBBOX'; + +$gpar=""; +$known_papersizes="11x17|ledger|legal|letter(small)?|arch[A-E]|a([0-9]|10)|isob[0-6]|b[0-5]|c[0-6]|jisb[0-6]|fls(a|e)|halfletter"; +$papersize_help="11x17,ledger,legal,letter,lettersmall,archA,archB,archC,archD,archE\ +a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,isob0,isob1,isob2,isob3,isob4,isob5,isob6,\ +b0,b1,b2,b3,b4,b5,c0,c1,c2,c3,c4,c5,c6,\ +jisb0,jisb1,jisb2,jisb3,jisb4,jisb5,jisb6,flsa,flse,halfletter\n"; +$trigger= 0; +$notsane= 0; +$dummy=""; + +@ver= split(/ /,$version); + +# filename for temporary files +if ($^O =~ /MSWin32/i or $^O =~ /cygwin/i) +{ + # it is less trouble to use the current directory if working on + # cygwin and nevertheless using gswin32c. + $tmpfname= "$prgname.$$"; + $win=1; +} +elsif (defined($ENV{'TMP'})) +{ + $tmpdir= $ENV{'TMP'}; + $filesep= ($tmpdir =~ /^?\:\\/) ? '\\' : '/'; + if ($tmpdir =~ /$filesep$/) + { $tmpfname= $tmpdir . "$prgname.$$"; } + else + { $tmpfname= $tmpdir . "$filesep$prgname.$$"; } + $win=1; +} +else #assume we're on a UNIXBOX +{ + $tmpfname= "/tmp/" . "$prgname.$$"; + $win=0; +} + + +$licensetxt= "\ + 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\n"; + +@prgidtxt= ( "$prgname - convert PostScript to EPS (Encapsulated PostScript) files\n", + "(C)opyright 1998-2007 Roland Bless\n\n" ); + +@helptxt= ("Version: $ver[2]\n", + "Operation:\n", + " Without any argument, $prgname reads from standard input\n", + " and writes to standard output.\n", + " If filenames are given as arguments they are processed\n", + " one by one and output files are written to filenames\n", + " with extension '$defaultoutext'. If input filenames have the extension\n", + " '.ps' or '.prn', this extension is replaced with '$defaultoutext'.\n", + " In all other cases '$defaultoutext' is appended to the input filename.\n", + " Please note that PostScript files for input should contain\n", + " only one single page.\n\n", + " If BoundingBox in output seems to be wrong, please try options --size or --ignoreBB.\n\n" ); + +@usagetxt= ("Syntax:\n", + " $prgname [-f] [-q] [-N] [-O] [-n] [-P] [-c] [-C] [-m] [-B] [-E] [-s <pagedim>] [-R +|-|^] [-t <x,y>] [-l] [-g] [-d] [-H] [-h|--help] [-g] [-W] [-L] [-V|--version] [--] [psfile1] [psfile2] [...]\n", + "Options:\n", + " -f, --force force overwriting existing files\n", + " -q, --quiet quiet operation (no output while processing files)\n", + " -N, --noinsert do not insert any postscript code\n", + " -O, --preserveorientation do not filter Orientation: header comment\n", + " -n, --nofix do not try to fix postscript code\n", + " -P, --removepreview remove preview image (smaller file, but no preview)\n", + " -F, --fixps fix postscript code unconditionally\n", + " -c, --comments preserve document structure comments\n", + " -C, --clip insert postscript code for clipping\n", + " -m, --mono use black/white bitmap as base for calculation\n", + " -s, --size=<pagedim> page size (a0-a10,letter,...) or in format XxY[cm|in] (default:cm), where X and Y are numbers\n", + " use --size=list to list pre-defined page sizes\n", + " -R, --rotate=<direction> rotate resulting EPS. <direction>: +=+90 (clockw.),-=-90 (counter-clockw.) ^=180 degrees\n", + " -t, --translate specify x,y offset (may be negative) in postscript points (1/72 dpi)\n", + " -r, --resolution specify dpi resolution to render with ghostscript (default 144)", + " -l, --loose expand the original bounding box by one point in each direction\n", + " -B, --ignoreBB do not use existing bounding box as page size for rendering\n", + " -E, --ignoreEOF do not use %%EOF as hint for end of file\n", + " -g, --gsbbox use internal bbox device of ghostscript\n", + " -H, --no-hires do not use a HiResBoundingBox\n", + " -h, --help help information\n", + " -L, --license show licensing information\n", + " -V, --version show version information\n", + " -d, --debuggs show ghostscript call\n", + " -W, --warnings show warnings about sanity of generated eps file\n", + " -- all following arguments are treated as files\n", + " (allows filenames starting with -)\n", + "\n", + "Arguments:\n", + " One or more names of PostScript files for input\n"); + +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +## -- argument checking -- +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +#environment variable for papersize +if (defined($ENV{"$envname_size"})) +{ + $opt_s= $ENV{"$envname_size"}; +} +else +{ + $opt_s = ''; # for s-option +} + +if (defined($ENV{"$envname_gsbbox"})) +{ + $bboxname=""; +} + +$opt_t = ''; # for t-option +$opt_R = ''; # for R-option +$opt_r = ''; # for r-option +$stopnow = 0; +die "Wrong option(s), please check usage with $prgname --help\n" unless +GetOptions('f|force' => \$forceoverwrite, + 'q|quiet' => \$quiet, + 'm|mono' => sub { $fullcolors = 0 }, + 'n|nofix' => sub { $trytofixps = 0 }, + 'F|fixps' => \$forcefixps, + 'N|noinsert' => sub { $insertPScode = 0 }, + 'O|preserveorientation' => sub { $filterorientation= 0 }, + 'P|removepreview' => \$removePreview, + 'c|comments' => sub { $removeDSC = 0 }, + 'C|clip' => \$clip, + 'l|loose' => sub { $looseBB = '-l' }, + 'B|ignoreBB' => \$ignoreBB, + 'E|ignoreEOF'=> \$ignoreEOFDSC, + 's|size=s' => \$opt_s, + 't|translate=s' => \$opt_t, + 'r|resolution=s' => \$opt_r, + 'R|rotate=s' => \$opt_R, + 'g|gsbbox' => sub { $bboxname=""; }, + 'H|nohires' => \$nohires, + 'h|help' => sub { $stopnow = 1; print @prgidtxt,@helptxt,@usagetxt,"\nAuthor: Roland Bless (roland\@bless.de)\n\n"; }, + 'L|license' => sub { $stopnow = 1; print @prgidtxt,$licensetxt,"\nAuthor: Roland Bless (roland\@bless.de)\n\n"; }, + 'd|debuggs' => \$debuggs, + 'W|warnings' => \$warnings, + 'V|version' => sub { $stopnow = 1; print @prgidtxt,"Version: $ver[2]\n"; });exit if ($stopnow); + +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +## -- wildcard processing -- +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +## internal wildcard processing for current directory, +## only used for non UNIX-based OSs (which may lack shell wildcard expansion) +@filenames = (); +foreach $object (@ARGV) { + if ($win && $object =~ m/\*/o) # asterisk is present in filename + { + $wildcard = $object; + $wildcard =~ s/\./\\\./g; # replace . in pattern with \. + $wildcard =~ s/\*/\(\.\*\)/g; # replace * in pattern with (.*) + opendir(DIR,'.') || die 'Unable to open current directory, stopped'; # open current directory + print STDERR $wildcard; + @fid = grep { /$wildcard(\.$defaultext)?/i } readdir(DIR); + foreach (@fid) { push @filenames, $_; } + closedir DIR; + } + else { push @filenames, $object; } +} # end foreach +$filenames[0]= '-' if (scalar(@filenames) == 0); # no file arguments, use STDIN as input + +print STDERR "Input files: @filenames\n" if (!$quiet); + +if ($opt_r ne '') +{ + $resolution=$opt_r; +} + +# papersize stuff +if ($opt_s ne '') +{ + # if explicit size is given, ignore existing BoundingBox always + $ignoreBB = 1; + $pagedimension = $opt_s; + if ($opt_s eq "list") + { + print STDERR "Available paper sizes: $papersize_help"; + exit 0; + } + + #explicit format XxY[cm|in] + if ($pagedimension =~ /(\d*\.?\d+)x(\d*\.?\d+)/) + { + ($x_dim, $dummy, $y_dim, $unit)= split(/(x|cm|in)/,$pagedimension); + if ( $x_dim !~ /^\d*\.?\d+$/ ) + { die "$x_dim in $arg is not a valid number, stopped"; } + if ( $y_dim !~ /^\d*\.?\d+$/ ) + { die "$y_dim in $arg is not a valid number, stopped"; } + + #print STDERR "xdim: $x_dim ydim: $y_dim unit:$unit\n" ; + if (!defined($unit) ) + { + $unit='cm'; + $opt_s=$opt_s . $unit; + } + if ( $unit ne 'in' ) # assume centimeters + { # calculate dimension in pixels (remember: resolution is in dpi) + $xpixels= int(($x_dim * $resolution) / $inch)+1; + $ypixels= int(($y_dim * $resolution) / $inch)+1; + $gpar= "-g${xpixels}x${ypixels}"; + } + else + { + $xpixels= int($x_dim * $resolution)+1; + $ypixels= int($y_dim * $resolution)+1; + $gpar= "-g${xpixels}x${ypixels}"; + } + } #endif XxY in opt_s + else + { + if ($opt_s =~ /$known_papersizes/) + { + $gpar="-sPAPERSIZE=$opt_s"; + } + else + { + print STDERR "Error: Unknown paper size: $opt_s\n Acceptable papersizes are:$papersize_help\n"; + exit 1; + } + } +} + +#translate option +if ($opt_t ne '') +{ + ($translate_x,$translate_y)= split(/\,/,$opt_t); +} + +#rotate +$rotright='-90 rotate'; +$rotleft='90 rotate'; +$rotupsidedown='180 rotate'; +$rotate=''; +if ($opt_R ne '') +{ + if ($opt_R eq '+') { $rotate=$rotright; } + elsif ($opt_R eq '-') { $rotate=$rotleft; } + elsif ($opt_R eq '^') { $rotate=$rotupsidedown; } + else { die "Wrong parameter for option -R: Valid are only +,-,^\n"; }; +} + +$device= $fullcolors ? "ppmraw" : "pbmraw"; + +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +## -- iterate over different input files -- +## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +PROCESSFILE: +while ($infname= (shift @filenames)) +{ + # reset filter definitions for each file + undef $linefilter; + undef $rangefilter_begin; + undef $rangefilter_end; + $fixthisps= $trytofixps; + $fixmsgprinted= 0; + + if (!$quiet) { print STDERR "Processing: $infname\n"; } + unless (open($infhandle,"<$infname")) + { # skip over this file + print STDERR "$prgname: Can't open $infname: $!\n"; + next PROCESSFILE; + } + + # buffer input from stdin into temporary file, because it has to be read twice + # one time for ghostscript processing, the second time for generating output + if ($infname eq '-') # input is stdin + { + $tmpfhandle=''; + open($tmpfhandle,">$tmpfname") or + die "Cannot open temporary file $tmpfname for writing: $!\n"; + } + else # input is not stdin + { + undef $tmpfhandle; + #if filename ends with $defaultext usually .ps or .prn, replace the extension with $defaultoutext + if ($infname =~ /\.$defaultext$/i) + { + $outfname= $infname; $outfname =~ s/\.$defaultext$/$defaultoutext/i; + } + else # otherwise simply append the extension $defaultoutext + { + $outfname= $infname . "$defaultoutext"; + } + if (!$forceoverwrite and -s "$outfname") + { + die "$prgname: Sorry, file named $outfname already exists,", + " will not overwrite it.\n", + " You will have to use the -f option, delete it or rename it", + " before running $prgname again.\n"; + } + else + { + open($outfhandle,">$outfname") or die "Can't open file $outfname for writing: $!\n"; + } + } #end else input is not stdin + + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ## -- process input file -- + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + $linefilter= '^$'; #'# filter empty lines by default + while (<$infhandle>) + { + # get postscript and DSC version + if (/%!PS-Adobe-(\S+).*EPSF-(\S+)/) + { + $PSversion=$1; + $PSDSCversion=$2; + if (! ($PSversion =~ /\d+\.\d+/)) + { + $PSDSCversion="2.0"; + } + if (! ($PSDSCversion =~ /\d+\.\d+/)) + { + $PSDSCversion="2.0"; + } + } + + # check for existing BoundingBox parameters + if ( /^%%\s*BoundingBox:\s*(.*)/ && !defined($eBBllx) ) + { + $BBarg= $1; + # accept even negative and fractional BBs + if ( $BBarg =~ /(\-?\d+\.?\d*\s+){3,}\d+/ ) # ignore %% BoundingBox: (atend) comments + { + ($eBBllx,$eBBlly,$eBBurx,$eBBury,$dummy)= split /\s/,$BBarg; + #print STDERR "Existing BB: $eBBllx,$eBBlly,$eBBurx,$eBBury\n"; + if (int($eBBllx) < 0) { $translate_x= - int($eBBllx-0.5); } + if (int($eBBlly) < 0) { $translate_y= - int($eBBlly-0.5); } + + $xpixels= int((($eBBurx-$eBBllx) * $resolution)/72)+1; + $ypixels= int((($eBBury-$eBBlly) * $resolution)/72)+1; + if (!$ignoreBB) + { + $gpar= "-g${xpixels}x${ypixels}"; + # check for meaningful values + if (($xpixels <= 1) || ($ypixels <= 1)) + { + $gpar=""; undef $eBBllx; undef $eBBlly; + } + else + { + if (!$quiet) + { + print STDERR "Rendering with existing $_"; + if (int($eBBllx) < 0 || int($eBBlly) < 0) + { + print STDERR "WARNING: existing Bounding Box shows negative values - shifting\n"; + } + } + } + } #endif !$ignoreBB + } #endif $BBarg =~ + } + + + if ($fixthisps) # try to fix bad postscript code + { + # check for Windows 3.x output + if ( /^Win.*Dict/ ) + { + if (!$quiet && !$fixmsgprinted) + { print STDERR "Windows 3.5 generated Postscript file detected, fixing\n"; } + $linefilter= '^(EJ|RS)'; + $rangefilter_begin= '^statusdict'; + $rangefilter_end= 'cvx\ settransfer$'; #' + $fixmsgprinted= 1; # stop printing message + } + else + { + if ( /^%%Creator:\s*Wind.U\s*Xprinter/ ) + { + if (!$quiet && !$fixmsgprinted) + { print STDERR "Star/OpenOffice generated Postscript file detected, fixing\n"; } + $linefilter= '^rs'; + $fixmsgprinted= 1; # stop printing message + } + else + { + if ( $forcefixps || + /^\/NTPS/ || + /Creator:\s*(AdobePS|Pscript|.*Windows)/i ) #check for NT generated output + { + if (!$quiet && !$fixmsgprinted) + { + if ($forcefixps) + { + print STDERR "Postscript filtering requested, fixing\n"; + } + else + { + print STDERR "Windows generated Postscript file detected, fixing\n"; + } + } + $rangefilter_begin= '^((\[\{)|(featurebegin\{))$'; #' + $rangefilter_end= '^(\} stopped cleartomark|\}featurecleanup)'; + $exclude_rangefilter_begin= '^(?i)%%BeginNonPPDFeature'; #' + $exclude_rangefilter_end= '^(?i)%%EndNonPPDFeature'; + #$triggered_rangefilter_begin= ''; #' + #$triggered_rangefilter_end= ''; #' + $fixsearchpat='(^|\s)(initmatrix|initclip|initgraphics)(\s|$)'; + $fixreplacepat=' '; + $fixmsgprinted= 1; # stop printing message + } # end if NTPS + } #end else + } + } #end if trytofixps + + if (defined($tmpfhandle)) + { + print $tmpfhandle $_ or die "$prgname: Failure during writing to temporary file $tmpfname"; + } + + if (/^%%EOF\s*$/) + { + $totalEOFDSC++ + } + } #end while <$infhandle> + + if (defined($tmpfhandle)) + { + close($tmpfhandle); + } + else + { + $tmpfhandle= $infhandle; + $tmpfname= $infname; + } + + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ## -- calculate the bounding box -- + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + if ($translate_x!=0 || $translate_y!=0) + { + $translation="$translate_x $translate_y translate"; + $translatecmd="-c $translation"; + } + else + { + $translation=""; + $translatecmd=""; + } + + if (!$quiet) + { + print STDERR "Calculating Bounding Box..."; + if ($opt_s) + { + print STDERR "using page size $opt_s..."; + } + } + + $rotatecmd=''; + if ($rotate ne '') + { + $rotatecmd="-c \"$rotate\"" + } + if ($bboxname ne '') + { + $cmdline="$ghostscriptname -dSAFER -dNOPAUSE -q $gpar -r$resolution -sDEVICE=$device -sOutputFile=- $translatecmd -f $tmpfname -c showpage -c quit | $bboxname -r $resolution"; + } + else + { + if (!$quiet) { + print STDERR "...using bbox device of $ghostscriptname..."; + } + $cmdline = "$ghostscriptname -dSAFER -dBATCH -dNOPAUSE -q $gpar -r$resolution -sDEVICE=bbox -sOutputFile=- -c \"/setpagedevice {pop} def\" $translatecmd -f $tmpfname -c quit 2>&1"; + } + + if ($debuggs) { print STDERR "\nCalling: $cmdline\n"; } + + # actual ghostscript call + $boundingbox=`$cmdline`; + if ($debuggs) { print STDERR "Call result: $boundingbox"; } + + # check result of gs call + if ($boundingbox !~ /^%%BoundingBox/m) + { + print STDERR "Error: Could not determine bounding box!\n", + "I suppose $ghostscriptname had some trouble interpreting the postscript-file\n"; + } + + $boundingbox =~ /^%%HiResBoundingBox:\s*(.*)/m; + if (defined($1)) # HiResBoundingBox given + { + ($hcBBllx,$hcBBlly,$hcBBurx,$hcBBury,$dummy)= split(/\s/,$1); + $hiresboundingbox="%%HiResBoundingBox: $hcBBllx $hcBBlly $hcBBurx $hcBBury\n"; + $cBBllx = floor($hcBBllx); + $cBBlly = floor($hcBBlly); + $cBBurx = ceil($hcBBurx); + $cBBury = ceil($hcBBury); + } + else + { #use normal BoundingBox + $boundingbox =~ /^%%.*BoundingBox:\s*(.*)/; + ($cBBllx,$cBBlly,$cBBurx,$cBBury,$dummy)= split(/\s/,$1); + } + # if loose BB should be performed by ps2eps + # apply changes to resulting bounding box if needed + if ($looseBB ne '') + { + if ($cBBllx > 0) { $cBBllx--; } + if ($cBBlly > 0) { $cBBlly--; } + $cBBurx++; $cBBury++; + } + # extend clipping box by 1 point + if ($clip) + { + if ($cBBllx > 0) { $cBBllx--; } + if ($cBBlly > 0) { $cBBlly--; } + $cBBurx++; $cBBury++; + } + if ($cBBllx < 0 || $cBBlly < 0) + { + if (!$quiet) + { + print STDERR "WARNING! Your drawing had a negative Bounding Box which is deprecated and may cause problems!. I'll shift it.\n"; + } + $translate_x= -int($cBBllx); + $translate_y= -int($cBBlly); + $cBBllx=0; + $cBBurx= $cBBurx + $translate_x; + $cBBlly=0; + $cBBury= $cBBury + $translate_y; + + $hcBBurx= $hcBBurx + $hcBBllx; + $hcBBury= $hcBBury + $hcBBlly; + $hcBBllx= 0; + $hcBBlly= 0; + + $hiresboundingbox="%%HiResBoundingBox: $hcBBllx $hcBBlly $hcBBurx $hcBBury\n"; + + $translation="$translate_x $translate_y translate"; + $translatecmd="-c \'$translation\'"; + } + $boundingbox = "%%BoundingBox: $cBBllx $cBBlly $cBBurx $cBBury\n"; + + if (!$quiet) { print STDERR "ready. $boundingbox" }; + + $before_startps= 1; + $inserted_prolog= 0; + $prolog_passed= 0; + + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + ## -- Create output file -- + ## %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + if (!$quiet) { print STDERR "Creating output file $outfname..."; } + + open($tmpfhandle,"<$tmpfname") or die "Cannot open file $tmpfname for reading"; + CREATEOUTPUT: + while (<$tmpfhandle>) + { + # check whether we are in a binary section + + $binarysection=(/^(%%BeginBinary)|(beginimage)\r?\n?$/ ... /^(%%EndBinary)|^(endimage)/) || + (/^(doNimage)|(doclutimage)\r?\n?$/ ... /(^|~> )Z\r?\n?$/) || # Pscript_Win_Dib_L2 5.0 0 + (/^beginjpeg / ... /~> endjpeg\r?\n?$/) || # Pscript_Win_Dib_L2 5.0 0 + (/^pdfIm/ ... /^%-EOD-/); + + if ( !$binarysection ) + { + s/\r?\n?$//; # remove CR and/or LF at end of line if not in binary section + } + + # check where magic Postscript header starts - skip leading binary stuff, e.g., HP PCL/PJL code + if ($before_startps) + { + if ( /%!/ ) # This is usually the smallest magic sequence + { # Note: Adobe Photoshop generated a binary heading, so ^ is not applicable + # %! may be part of a binary sequence, but then control characters follow + # so skip %! if non alphanumeric characters follow + if ( ! /%!.*[^\w]{2,}/ ) + { + # some heading without two control characters found + $before_startps= 0; + if (! /%!PS-Adobe.*/i) # some strange programs use other magics + { + print STDERR "** Warning **: Weird heading line -- ",$_," -- "; + } + } + } + next CREATEOUTPUT; + } + else # we are hopefully in regular postscript code now + { + # count %%EOFs as we want to know when we got the last EOF + if ( /^%%EOF\s*$/ ) + { + $seenEOF++; + } + + # We should insert our own prologue including the newly calculated BoundingBox + if (! $inserted_prolog) + { + print $outfhandle "%!PS-Adobe-$PSversion EPSF-$PSDSCversion\n"; + # check if we need to rotate + $transrotcmd=''; + if ($rotatecmd) + { + if ($rotate eq $rotright) + { + $transrotcmd="-$cBBlly $cBBurx translate"; + $boundingbox='%%BoundingBox: 0 0 ' . ($cBBury-$cBBlly) . ' ' . ($cBBurx-$cBBllx) . "\n"; + if ($hiresboundingbox ne "") + { + $hiresboundingbox='%%HiResBoundingBox: 0 0 ' . ($hcBBury-$hcBBlly) . ' ' . ($hcBBurx-$hcBBllx) . "\n"; + } + + } + elsif ($rotate eq $rotleft) + { + $transrotcmd="$cBBury -$cBBllx translate"; + $boundingbox='%%BoundingBox: 0 0 ' . ($cBBury-$cBBlly) . ' ' . ($cBBurx-$cBBllx) . "\n"; + if ($hiresboundingbox ne "") + { + $hiresboundingbox= '%%HiResBoundingBox: 0 0 ' . ($hcBBury-$hcBBlly) . ' ' . ($hcBBurx-$hcBBllx) . "\n"; + } + } + elsif ($rotate eq $rotupsidedown) + { + $transrotcmd="$cBBurx $cBBury translate"; + $boundingbox='%%BoundingBox: 0 0 ' . ($cBBurx-$cBBllx) . ' ' . ($cBBury-$cBBlly) . "\n"; + if ($hiresboundingbox ne "") + { + $hiresboundingbox='%%HiResBoundingBox: 0 0 ' . ($hcBBurx-$hcBBllx) . ' ' . ($hcBBury-$hcBBlly) . "\n"; + } + } + } + print $outfhandle $boundingbox; + if (!defined($hiresboundingbox)) + { + $nohires=1; + } + if (defined($hiresboundingbox) && !defined($nohires)) { print $outfhandle $hiresboundingbox; } + $inserted_prolog= 1; + redo CREATEOUTPUT; + } + else # already inserted_prolog + { + if (! $prolog_passed) + { + #ignore the following lines in the prologue + if ( /^%%(HiRes)?BoundingBox/ || + /^%%Pages/ || + /^%%BeginProlog/ || + /^%%EndProlog/ || + ($filterorientation && /^%%Orientation/) || + ($removeDSC && /^%%.*: \(atend\)/) || + ($removePreview && (/^%%BeginPreview/ ... /^%%EndPreview/)) ) + { + next CREATEOUTPUT; + } + else + { + if ( /^[^%].*/ || + /^%%EndComments/ ) # line is not a comment + { + #output postscript code for proper EPS file + if ($insertPScode) + { + print $outfhandle "%%EndComments\n", + "% EPSF created by ps2eps $ver[2]\n", + "%%BeginProlog\n"; + } + # Insert own postscript code for clipping + if ($clip) + { + if (!defined($nohires)) + { + printf $outfhandle "newpath %f %f moveto %f %f lineto %f %f lineto %f %f lineto closepath clip\n",$hcBBllx-0.1,$hcBBlly-0.1,$hcBBurx+0.1,$hcBBlly-0.1,$hcBBurx+0.1,$hcBBury+0.1,$hcBBllx-0.1,$hcBBury+0.1; + } + else + { + printf $outfhandle "newpath %d %d moveto %d %d lineto %d %d lineto %d %d lineto closepath clip\n",$cBBllx,$cBBlly,$cBBurx,$cBBlly,$cBBurx,$cBBury,$cBBllx,$cBBury; + } + } #endif clip + + if ($rotate ne '') + { + print $outfhandle "$transrotcmd\n"; + print $outfhandle "$rotate\n"; + } + if ($translation ne '') + { + print $outfhandle "$translation\n"; + } + + #insert surrounding postscript code + if ($insertPScode) + { + print $outfhandle "save\n", + "countdictstack\n", + "mark\n", + "newpath\n", + "/showpage {} def\n", + "/setpagedevice {pop} def\n", + "%%EndProlog\n", + "%%Page 1 1\n"; + } + $prolog_passed= 1; + if (/^%%EndComments/) { next CREATEOUTPUT; } + } #endif line is not a comment + } #end else + } #endif (we are in the prologue section) + else #we are in the main part of postscript file + { + #end of postscript file reached? + #Usually the DSC %%EOF signifies the end + if ( eof($tmpfhandle) || + ($ignoreEOFDSC == 0 && /^%%EOF\s*$/ && $seenEOF == $totalEOFDSC) + || ( $trailerseen && /^II\*\000.*/ ) + ) + { + #do not forget to print last line if not terminated by LF + if ( eof($tmpfhandle) && !/^$/ && !/^%%EOF\s*$/ ) # do not insert %%EOF twice + { + print $outfhandle $_,"\n"; + } + #add appropriate trailer + if ($insertPScode) + { + print $outfhandle "%%Trailer\n", + "cleartomark\n", + "countdictstack\n", + "exch sub { end } repeat\n", + "restore\n", + "%%EOF\n"; + } + last CREATEOUTPUT; + } # stop output + + # Trailer comment seen? + if ( /^%%Trailer\s*$/ ) + { + $trailerseen=1; + } + else + { + if (!/^\s*$/) #non empty lines follow + { + $trailerseen=0; + } + } + + # check for trigger + if (defined($triggerstring) && /^$triggerstring$/) + { + $trigger= 1; + }; + + # remove complete lines if one of the expression matches + if ( !$binarysection # only when not in binary section + && + ( + ($removePreview && (/^%%BeginPreview/ ... /^%%EndPreview/)) + || # no preview + (defined($rangefilter_begin) && + (/$rangefilter_begin/ ... /$rangefilter_end/) && + (!(/$exclude_rangefilter_begin/ ... /$exclude_rangefilter_end/)) + ) + || + (defined($triggered_rangefilter_begin) && defined($triggered_rangefilter_end) && + $trigger && + (/$triggered_rangefilter_begin/ ... /$triggered_rangefilter_end/) + ) + || + /$linefilter/ # lines by linefilter + || + ($removeDSC && (/^%( |!)(\w )+/ || /^%%([A-Za-z]+\s)/)) # any type of structured comment + || + ($removeADO && + (/^statusdict begin.*ProductName.*print product print.*flush end\r?\n?$/ || + /^\(%%\[\s*(Page:.*|LastPage)\s*\]%%\)\s*=\s*\w*\s*\r?\n?/ )) + || + /^$/ # empty lines + ) + ) + { + next CREATEOUTPUT; + } + + # replacement + if ( defined($fixsearchpat) ) + { + #if (/$fixsearchpat/) { print STDERR "**filter** before:",$_,"\n"; } + #if (s/$fixsearchpat/$fixreplacepat/) { print STDERR "**filter** after:",$_,"\n";} + s/$fixsearchpat/$fixreplacepat/; + } + + # sanity check for potential dangerous commands + if ( /(^|\s)(clear|erasepage|initmatrix|initclip|initgraphics|startjob|cleardictstack|setmatrix|setpagedevice|copypage|grestoreall|exitserver|quit)(\s|$)/ ) + { + $notsane= 1; + #print STDERR "Warning: dangerous command in line: ",$_,"\n"; + } + } # end else (this is main part) + + # Output the postscript line to result file + print $outfhandle $_; + + if (!$binarysection) + { + print $outfhandle "\n"; # terminate line with LF + } + } # end else prolog_passed + } # end else inserted_prolog + } # end while CREATEOUTPUT + + close($tmpfhandle); + + if ($tmpfname ne $infname) { unlink "$tmpfname"; } #remove temporary file + + close ($outfhandle); + + # print warning if magic sequence not found + if ( $before_startps ) + { + print STDERR "\n ** Error!! **: could not identify begin of postscript code in file $infname, please check header line!\n First line should start with %!. No output generated.\n"; + } + + if (!$quiet) { print STDERR "ready.\n"; } + if ($warnings and $notsane and !$quiet) + { + print STDERR "** Warning **: EPS-output for $infname is not sane, at least one\n", + "of the following commands was still present:\n", + "clear erasepage initmatrix initclip initgraphics startjob\n", + "cleardictstack setmatrix setpagedevice copypage grestoreall\n", + "exitserver quit\n"; + } +} #end while PROCESSFILE + +# ---- end of perl-script ------- diff --git a/Master/bin/i386-freebsd/ps2frag b/Master/bin/i386-freebsd/ps2frag new file mode 100755 index 00000000000..b8e673be087 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/ps2pk b/Master/bin/i386-freebsd/ps2pk Binary files differnew file mode 100755 index 00000000000..2aa6c98f7b4 --- /dev/null +++ b/Master/bin/i386-freebsd/ps2pk diff --git a/Master/bin/i386-freebsd/ps4pdf b/Master/bin/i386-freebsd/ps4pdf new file mode 120000 index 00000000000..7e99e0b8d18 --- /dev/null +++ b/Master/bin/i386-freebsd/ps4pdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/pst-pdf/ps4pdf
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/psbook b/Master/bin/i386-freebsd/psbook Binary files differnew file mode 100755 index 00000000000..a2301faf0a3 --- /dev/null +++ b/Master/bin/i386-freebsd/psbook diff --git a/Master/bin/i386-freebsd/pslatex b/Master/bin/i386-freebsd/pslatex new file mode 100755 index 00000000000..4badef0ec12 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/psmerge b/Master/bin/i386-freebsd/psmerge new file mode 100755 index 00000000000..9500bcdf7e6 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/psnup b/Master/bin/i386-freebsd/psnup Binary files differnew file mode 100755 index 00000000000..9eee7fdac73 --- /dev/null +++ b/Master/bin/i386-freebsd/psnup diff --git a/Master/bin/i386-freebsd/psresize b/Master/bin/i386-freebsd/psresize Binary files differnew file mode 100755 index 00000000000..8f8513ef0ae --- /dev/null +++ b/Master/bin/i386-freebsd/psresize diff --git a/Master/bin/i386-freebsd/psselect b/Master/bin/i386-freebsd/psselect Binary files differnew file mode 100755 index 00000000000..8ad1b1b88d8 --- /dev/null +++ b/Master/bin/i386-freebsd/psselect diff --git a/Master/bin/i386-freebsd/pst2pdf b/Master/bin/i386-freebsd/pst2pdf new file mode 120000 index 00000000000..60a28335578 --- /dev/null +++ b/Master/bin/i386-freebsd/pst2pdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/pst2pdf/pst2pdf.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pstopdf b/Master/bin/i386-freebsd/pstopdf new file mode 120000 index 00000000000..44478ee1dd4 --- /dev/null +++ b/Master/bin/i386-freebsd/pstopdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/pstopdf
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/pstops b/Master/bin/i386-freebsd/pstops Binary files differnew file mode 100755 index 00000000000..1d289c26fd7 --- /dev/null +++ b/Master/bin/i386-freebsd/pstops diff --git a/Master/bin/i386-freebsd/purifyeps b/Master/bin/i386-freebsd/purifyeps new file mode 120000 index 00000000000..d6919b530ed --- /dev/null +++ b/Master/bin/i386-freebsd/purifyeps @@ -0,0 +1 @@ +../../texmf-dist/scripts/purifyeps/purifyeps
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/rlxtools b/Master/bin/i386-freebsd/rlxtools new file mode 120000 index 00000000000..a5078af4f10 --- /dev/null +++ b/Master/bin/i386-freebsd/rlxtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/rlxtools
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/rpdfcrop b/Master/bin/i386-freebsd/rpdfcrop new file mode 120000 index 00000000000..b915c696540 --- /dev/null +++ b/Master/bin/i386-freebsd/rpdfcrop @@ -0,0 +1 @@ +pdfcrop
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/rubibtex b/Master/bin/i386-freebsd/rubibtex new file mode 100755 index 00000000000..373e6e1194d --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/rumakeindex b/Master/bin/i386-freebsd/rumakeindex new file mode 100755 index 00000000000..b7b0c072729 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/rungs b/Master/bin/i386-freebsd/rungs new file mode 120000 index 00000000000..3efeab3b3d4 --- /dev/null +++ b/Master/bin/i386-freebsd/rungs @@ -0,0 +1 @@ +../../texmf/scripts/texlive/rungs.tlu
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/runtools b/Master/bin/i386-freebsd/runtools new file mode 120000 index 00000000000..127f29a36df --- /dev/null +++ b/Master/bin/i386-freebsd/runtools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/runtools
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/showchar b/Master/bin/i386-freebsd/showchar new file mode 100755 index 00000000000..e685e99ae8c --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/showglyphs b/Master/bin/i386-freebsd/showglyphs new file mode 120000 index 00000000000..5745ac821e0 --- /dev/null +++ b/Master/bin/i386-freebsd/showglyphs @@ -0,0 +1 @@ +../../texmf-dist/scripts/fontools/showglyphs
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/simpdftex b/Master/bin/i386-freebsd/simpdftex new file mode 120000 index 00000000000..8b9c2132185 --- /dev/null +++ b/Master/bin/i386-freebsd/simpdftex @@ -0,0 +1 @@ +../../texmf/scripts/simpdftex/simpdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/sjisconv b/Master/bin/i386-freebsd/sjisconv Binary files differnew file mode 100755 index 00000000000..9b90a93b140 --- /dev/null +++ b/Master/bin/i386-freebsd/sjisconv diff --git a/Master/bin/i386-freebsd/sjislatex b/Master/bin/i386-freebsd/sjislatex new file mode 100755 index 00000000000..68c554e6d71 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/sjispdflatex b/Master/bin/i386-freebsd/sjispdflatex new file mode 100755 index 00000000000..e8d070e9dc6 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/splitindex b/Master/bin/i386-freebsd/splitindex new file mode 120000 index 00000000000..2a8232f7a9d --- /dev/null +++ b/Master/bin/i386-freebsd/splitindex @@ -0,0 +1 @@ +../../texmf-dist/scripts/splitindex/perl/splitindex.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/svn-multi b/Master/bin/i386-freebsd/svn-multi new file mode 120000 index 00000000000..9f3e6f9d9b7 --- /dev/null +++ b/Master/bin/i386-freebsd/svn-multi @@ -0,0 +1 @@ +../../texmf-dist/scripts/svn-multi/svn-multi.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/synctex b/Master/bin/i386-freebsd/synctex Binary files differnew file mode 100755 index 00000000000..6cc7acef31f --- /dev/null +++ b/Master/bin/i386-freebsd/synctex diff --git a/Master/bin/i386-freebsd/t1ascii b/Master/bin/i386-freebsd/t1ascii Binary files differnew file mode 100755 index 00000000000..276d0d11ef3 --- /dev/null +++ b/Master/bin/i386-freebsd/t1ascii diff --git a/Master/bin/i386-freebsd/t1asm b/Master/bin/i386-freebsd/t1asm Binary files differnew file mode 100755 index 00000000000..32dcb5e649a --- /dev/null +++ b/Master/bin/i386-freebsd/t1asm diff --git a/Master/bin/i386-freebsd/t1binary b/Master/bin/i386-freebsd/t1binary Binary files differnew file mode 100755 index 00000000000..8b56716c843 --- /dev/null +++ b/Master/bin/i386-freebsd/t1binary diff --git a/Master/bin/i386-freebsd/t1disasm b/Master/bin/i386-freebsd/t1disasm Binary files differnew file mode 100755 index 00000000000..d097010c168 --- /dev/null +++ b/Master/bin/i386-freebsd/t1disasm diff --git a/Master/bin/i386-freebsd/t1dotlessj b/Master/bin/i386-freebsd/t1dotlessj Binary files differnew file mode 100755 index 00000000000..bdf675d8719 --- /dev/null +++ b/Master/bin/i386-freebsd/t1dotlessj diff --git a/Master/bin/i386-freebsd/t1lint b/Master/bin/i386-freebsd/t1lint Binary files differnew file mode 100755 index 00000000000..1f84049790e --- /dev/null +++ b/Master/bin/i386-freebsd/t1lint diff --git a/Master/bin/i386-freebsd/t1mac b/Master/bin/i386-freebsd/t1mac Binary files differnew file mode 100755 index 00000000000..9d4a786fc6b --- /dev/null +++ b/Master/bin/i386-freebsd/t1mac diff --git a/Master/bin/i386-freebsd/t1rawafm b/Master/bin/i386-freebsd/t1rawafm Binary files differnew file mode 100755 index 00000000000..9ff344d3f75 --- /dev/null +++ b/Master/bin/i386-freebsd/t1rawafm diff --git a/Master/bin/i386-freebsd/t1reencode b/Master/bin/i386-freebsd/t1reencode Binary files differnew file mode 100755 index 00000000000..37c514544d5 --- /dev/null +++ b/Master/bin/i386-freebsd/t1reencode diff --git a/Master/bin/i386-freebsd/t1testpage b/Master/bin/i386-freebsd/t1testpage Binary files differnew file mode 100755 index 00000000000..f1a4c1af168 --- /dev/null +++ b/Master/bin/i386-freebsd/t1testpage diff --git a/Master/bin/i386-freebsd/t1unmac b/Master/bin/i386-freebsd/t1unmac Binary files differnew file mode 100755 index 00000000000..7ecb2007610 --- /dev/null +++ b/Master/bin/i386-freebsd/t1unmac diff --git a/Master/bin/i386-freebsd/t4ht b/Master/bin/i386-freebsd/t4ht Binary files differnew file mode 100755 index 00000000000..f40190dafd0 --- /dev/null +++ b/Master/bin/i386-freebsd/t4ht diff --git a/Master/bin/i386-freebsd/tangle b/Master/bin/i386-freebsd/tangle Binary files differnew file mode 100755 index 00000000000..b113b4c9f4a --- /dev/null +++ b/Master/bin/i386-freebsd/tangle diff --git a/Master/bin/i386-freebsd/tcdialog b/Master/bin/i386-freebsd/tcdialog Binary files differnew file mode 100755 index 00000000000..183ee63240a --- /dev/null +++ b/Master/bin/i386-freebsd/tcdialog diff --git a/Master/bin/i386-freebsd/teckit_compile b/Master/bin/i386-freebsd/teckit_compile Binary files differnew file mode 100755 index 00000000000..10686f5306c --- /dev/null +++ b/Master/bin/i386-freebsd/teckit_compile diff --git a/Master/bin/i386-freebsd/tex b/Master/bin/i386-freebsd/tex Binary files differnew file mode 100755 index 00000000000..e4917ef6703 --- /dev/null +++ b/Master/bin/i386-freebsd/tex diff --git a/Master/bin/i386-freebsd/tex2xindy b/Master/bin/i386-freebsd/tex2xindy Binary files differnew file mode 100755 index 00000000000..ff7d527f4db --- /dev/null +++ b/Master/bin/i386-freebsd/tex2xindy diff --git a/Master/bin/i386-freebsd/tex4ht b/Master/bin/i386-freebsd/tex4ht Binary files differnew file mode 100755 index 00000000000..a0b67a69f1a --- /dev/null +++ b/Master/bin/i386-freebsd/tex4ht diff --git a/Master/bin/i386-freebsd/texconfig b/Master/bin/i386-freebsd/texconfig new file mode 100755 index 00000000000..fe0927136e0 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/texconfig-dialog b/Master/bin/i386-freebsd/texconfig-dialog new file mode 100755 index 00000000000..8ccda930dd7 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/texconfig-sys b/Master/bin/i386-freebsd/texconfig-sys new file mode 100755 index 00000000000..8a88750098c --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/texcount b/Master/bin/i386-freebsd/texcount new file mode 120000 index 00000000000..44f81a2944e --- /dev/null +++ b/Master/bin/i386-freebsd/texcount @@ -0,0 +1 @@ +../../texmf-dist/scripts/texcount/texcount.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texdiff b/Master/bin/i386-freebsd/texdiff new file mode 120000 index 00000000000..7964051040c --- /dev/null +++ b/Master/bin/i386-freebsd/texdiff @@ -0,0 +1 @@ +../../texmf-dist/scripts/texdiff/texdiff
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texdirflatten b/Master/bin/i386-freebsd/texdirflatten new file mode 120000 index 00000000000..02636a7693d --- /dev/null +++ b/Master/bin/i386-freebsd/texdirflatten @@ -0,0 +1 @@ +../../texmf-dist/scripts/texdirflatten/texdirflatten
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texdoc b/Master/bin/i386-freebsd/texdoc new file mode 120000 index 00000000000..90a4a24bcb0 --- /dev/null +++ b/Master/bin/i386-freebsd/texdoc @@ -0,0 +1 @@ +../../texmf/scripts/texdoc/texdoc.tlu
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texdoctk b/Master/bin/i386-freebsd/texdoctk new file mode 120000 index 00000000000..56729104154 --- /dev/null +++ b/Master/bin/i386-freebsd/texdoctk @@ -0,0 +1 @@ +../../texmf/scripts/tetex/texdoctk.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texexec b/Master/bin/i386-freebsd/texexec new file mode 120000 index 00000000000..36d22caefe7 --- /dev/null +++ b/Master/bin/i386-freebsd/texexec @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texexec
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texfont b/Master/bin/i386-freebsd/texfont new file mode 120000 index 00000000000..a3756e037ce --- /dev/null +++ b/Master/bin/i386-freebsd/texfont @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texfont
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texhash b/Master/bin/i386-freebsd/texhash new file mode 120000 index 00000000000..fe296c273bb --- /dev/null +++ b/Master/bin/i386-freebsd/texhash @@ -0,0 +1 @@ +mktexlsr
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texindy b/Master/bin/i386-freebsd/texindy new file mode 120000 index 00000000000..e9a29f8828c --- /dev/null +++ b/Master/bin/i386-freebsd/texindy @@ -0,0 +1 @@ +../../texmf/scripts/xindy/texindy.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texlinks b/Master/bin/i386-freebsd/texlinks new file mode 100755 index 00000000000..c77ceea60c0 --- /dev/null +++ b/Master/bin/i386-freebsd/texlinks @@ -0,0 +1,333 @@ +#!/bin/sh +# $Id: texlinks 13904 2009-06-23 00:47:00Z karl $ + +# 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+"$@"}'='"$@"' + +version=20090623.0228 +progname=texlinks +cnf=fmtutil.cnf # name of the config file + +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. + -e, --exeext EXT append EXT to symlink targets (default: none) + -f, --cnffile FILE use FILE as config file (default: fmtutil.cnf) + -m, --multiplatform operate in all platform specific directories + (default: operate only in directory for this platform) + -q, --quiet silently skip existing scripts / binaries + (default: issue warning) + -s, --silent same as -q + -u, --unlink remove symlinks created by texlinks + -v, --verbose enable verbose messages (default: off) + -h, --help show this help text + --version show version string + +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, possibly adding the executable extension if +# passed on the command. +############################################################################### +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 + + # append .exe if supplied (for cygwin). + test -n "$exeext" && dest="$dest$exeext" + + 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`" && + 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 + + exeext= + 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;; + --e*|-e) shift; exeext=$1;; + --m*|-m) multiplatform=true;; + --s*|-s|--q*|-q) silent=true;; + --u*|-u) unlink=true;; + --v*|-v) verbose=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-freebsd/texloganalyser b/Master/bin/i386-freebsd/texloganalyser new file mode 120000 index 00000000000..a0dd3486cd7 --- /dev/null +++ b/Master/bin/i386-freebsd/texloganalyser @@ -0,0 +1 @@ +../../texmf-dist/scripts/texloganalyser/texloganalyser
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texlua b/Master/bin/i386-freebsd/texlua new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/i386-freebsd/texlua @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texluac b/Master/bin/i386-freebsd/texluac new file mode 120000 index 00000000000..8d727021583 --- /dev/null +++ b/Master/bin/i386-freebsd/texluac @@ -0,0 +1 @@ +luatex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texmfstart b/Master/bin/i386-freebsd/texmfstart new file mode 120000 index 00000000000..db6dee0a29c --- /dev/null +++ b/Master/bin/i386-freebsd/texmfstart @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/ruby/texmfstart.rb
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texsis b/Master/bin/i386-freebsd/texsis new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/texsis @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/textools b/Master/bin/i386-freebsd/textools new file mode 120000 index 00000000000..d1a20375405 --- /dev/null +++ b/Master/bin/i386-freebsd/textools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/textools
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/texutil b/Master/bin/i386-freebsd/texutil new file mode 120000 index 00000000000..78f249c7f02 --- /dev/null +++ b/Master/bin/i386-freebsd/texutil @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/texutil
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/tftopl b/Master/bin/i386-freebsd/tftopl Binary files differnew file mode 100755 index 00000000000..02cedd44a3b --- /dev/null +++ b/Master/bin/i386-freebsd/tftopl diff --git a/Master/bin/i386-freebsd/thumbpdf b/Master/bin/i386-freebsd/thumbpdf new file mode 120000 index 00000000000..98a72428616 --- /dev/null +++ b/Master/bin/i386-freebsd/thumbpdf @@ -0,0 +1 @@ +../../texmf-dist/scripts/thumbpdf/thumbpdf.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/tie b/Master/bin/i386-freebsd/tie Binary files differnew file mode 100755 index 00000000000..5e9a66dd7c6 --- /dev/null +++ b/Master/bin/i386-freebsd/tie diff --git a/Master/bin/i386-freebsd/tlmgr b/Master/bin/i386-freebsd/tlmgr new file mode 120000 index 00000000000..dd7cddf2d67 --- /dev/null +++ b/Master/bin/i386-freebsd/tlmgr @@ -0,0 +1 @@ +../../texmf/scripts/texlive/tlmgr.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/tmftools b/Master/bin/i386-freebsd/tmftools new file mode 120000 index 00000000000..444a68a40ee --- /dev/null +++ b/Master/bin/i386-freebsd/tmftools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/tmftools
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/tpic2pdftex b/Master/bin/i386-freebsd/tpic2pdftex new file mode 100755 index 00000000000..70c1a33c7e8 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/ttf2afm b/Master/bin/i386-freebsd/ttf2afm Binary files differnew file mode 100755 index 00000000000..4e3278328c6 --- /dev/null +++ b/Master/bin/i386-freebsd/ttf2afm diff --git a/Master/bin/i386-freebsd/ttf2pk b/Master/bin/i386-freebsd/ttf2pk Binary files differnew file mode 100755 index 00000000000..9c73092de0d --- /dev/null +++ b/Master/bin/i386-freebsd/ttf2pk diff --git a/Master/bin/i386-freebsd/ttf2tfm b/Master/bin/i386-freebsd/ttf2tfm Binary files differnew file mode 100755 index 00000000000..9dfb626f070 --- /dev/null +++ b/Master/bin/i386-freebsd/ttf2tfm diff --git a/Master/bin/i386-freebsd/ttfdump b/Master/bin/i386-freebsd/ttfdump Binary files differnew file mode 100755 index 00000000000..912d2212aea --- /dev/null +++ b/Master/bin/i386-freebsd/ttfdump diff --git a/Master/bin/i386-freebsd/ttftotype42 b/Master/bin/i386-freebsd/ttftotype42 Binary files differnew file mode 100755 index 00000000000..b48fb53f9be --- /dev/null +++ b/Master/bin/i386-freebsd/ttftotype42 diff --git a/Master/bin/i386-freebsd/ulqda b/Master/bin/i386-freebsd/ulqda new file mode 120000 index 00000000000..8ca9386b37d --- /dev/null +++ b/Master/bin/i386-freebsd/ulqda @@ -0,0 +1 @@ +../../texmf-dist/scripts/ulqda/ulqda.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/updmap b/Master/bin/i386-freebsd/updmap new file mode 100755 index 00000000000..723bde70a02 --- /dev/null +++ b/Master/bin/i386-freebsd/updmap @@ -0,0 +1,1431 @@ +#!/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='$Id: updmap 14402 2009-07-23 17:09:15Z karl $' + +# +############################################################################### +# 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 (the one returned by running "kpsewhich +updmap.cfg"). + +Among other things, these font map files are used to determine which +fonts should be used as bitmaps and which as outlines, and to determine +which fonts are included in the output. + +By default, the TeX 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 "MAPTYPE MAPFILE" to updmap.cfg, + where MAPTYPE is either Map or MixedMap + --enable Map=MAPFILE add "Map MAPFILE" to updmap.cfg + --enable MixedMap=MAPFILE add "MixedMap MAPFILE" to updmap.cfg + --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. + +For step-by-step instructions on making new fonts known to TeX, see +http://tug.org/fonts/fontinstall.html. + +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 $orig_pwd && 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 + orig_pwd=`pwd` + + 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-freebsd/updmap-sys b/Master/bin/i386-freebsd/updmap-sys new file mode 100755 index 00000000000..6f3c8365658 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/utf8mex b/Master/bin/i386-freebsd/utf8mex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/utf8mex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/vftovp b/Master/bin/i386-freebsd/vftovp Binary files differnew file mode 100755 index 00000000000..c065cbd2b63 --- /dev/null +++ b/Master/bin/i386-freebsd/vftovp diff --git a/Master/bin/i386-freebsd/vlna b/Master/bin/i386-freebsd/vlna Binary files differnew file mode 100755 index 00000000000..9d5a6873204 --- /dev/null +++ b/Master/bin/i386-freebsd/vlna diff --git a/Master/bin/i386-freebsd/vpe b/Master/bin/i386-freebsd/vpe new file mode 120000 index 00000000000..ed1727b6ff8 --- /dev/null +++ b/Master/bin/i386-freebsd/vpe @@ -0,0 +1 @@ +../../texmf-dist/scripts/vpe/vpe.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/vpl2ovp b/Master/bin/i386-freebsd/vpl2ovp new file mode 120000 index 00000000000..4588c86090a --- /dev/null +++ b/Master/bin/i386-freebsd/vpl2ovp @@ -0,0 +1 @@ +../../texmf-dist/scripts/accfonts/vpl2ovp
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/vpl2vpl b/Master/bin/i386-freebsd/vpl2vpl new file mode 120000 index 00000000000..e7a12e7dad4 --- /dev/null +++ b/Master/bin/i386-freebsd/vpl2vpl @@ -0,0 +1 @@ +../../texmf-dist/scripts/accfonts/vpl2vpl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/vptovf b/Master/bin/i386-freebsd/vptovf Binary files differnew file mode 100755 index 00000000000..18016a73914 --- /dev/null +++ b/Master/bin/i386-freebsd/vptovf diff --git a/Master/bin/i386-freebsd/weave b/Master/bin/i386-freebsd/weave Binary files differnew file mode 100755 index 00000000000..93a6fcc9ee9 --- /dev/null +++ b/Master/bin/i386-freebsd/weave diff --git a/Master/bin/i386-freebsd/xasy b/Master/bin/i386-freebsd/xasy new file mode 120000 index 00000000000..06b216f0df2 --- /dev/null +++ b/Master/bin/i386-freebsd/xasy @@ -0,0 +1 @@ +../../texmf/asymptote/GUI/xasy.py
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/xdvi b/Master/bin/i386-freebsd/xdvi new file mode 100755 index 00000000000..29632097df1 --- /dev/null +++ b/Master/bin/i386-freebsd/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-freebsd/xdvi-xaw b/Master/bin/i386-freebsd/xdvi-xaw Binary files differnew file mode 100755 index 00000000000..ed3d1cf25b5 --- /dev/null +++ b/Master/bin/i386-freebsd/xdvi-xaw diff --git a/Master/bin/i386-freebsd/xdvipdfmx b/Master/bin/i386-freebsd/xdvipdfmx Binary files differnew file mode 100755 index 00000000000..f28821412c5 --- /dev/null +++ b/Master/bin/i386-freebsd/xdvipdfmx diff --git a/Master/bin/i386-freebsd/xelatex b/Master/bin/i386-freebsd/xelatex new file mode 120000 index 00000000000..ef9fe406fd6 --- /dev/null +++ b/Master/bin/i386-freebsd/xelatex @@ -0,0 +1 @@ +xetex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/xetex b/Master/bin/i386-freebsd/xetex Binary files differnew file mode 100755 index 00000000000..fde4e075503 --- /dev/null +++ b/Master/bin/i386-freebsd/xetex diff --git a/Master/bin/i386-freebsd/xindy b/Master/bin/i386-freebsd/xindy new file mode 120000 index 00000000000..ddaf92f5c89 --- /dev/null +++ b/Master/bin/i386-freebsd/xindy @@ -0,0 +1 @@ +../../texmf/scripts/xindy/xindy.pl
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/xindy.mem b/Master/bin/i386-freebsd/xindy.mem Binary files differnew file mode 100644 index 00000000000..a745b22e8d1 --- /dev/null +++ b/Master/bin/i386-freebsd/xindy.mem diff --git a/Master/bin/i386-freebsd/xindy.run b/Master/bin/i386-freebsd/xindy.run Binary files differnew file mode 100755 index 00000000000..1507b126b4b --- /dev/null +++ b/Master/bin/i386-freebsd/xindy.run diff --git a/Master/bin/i386-freebsd/xmltex b/Master/bin/i386-freebsd/xmltex new file mode 120000 index 00000000000..f68cc91498e --- /dev/null +++ b/Master/bin/i386-freebsd/xmltex @@ -0,0 +1 @@ +pdftex
\ No newline at end of file diff --git a/Master/bin/i386-freebsd/xmltools b/Master/bin/i386-freebsd/xmltools new file mode 120000 index 00000000000..873458dcc92 --- /dev/null +++ b/Master/bin/i386-freebsd/xmltools @@ -0,0 +1 @@ +../../texmf-dist/scripts/context/stubs/unix/xmltools
\ No newline at end of file diff --git a/Master/tlpkg/dev/README b/Master/tlpkg/dev/README index b6c7a16fbe4..34e56a51890 100644 --- a/Master/tlpkg/dev/README +++ b/Master/tlpkg/dev/README @@ -1,5 +1,8 @@ +$Id$ +(Public domain.) + lib - tlpkg libraries in other languages, none complete or usable + tlpkg libraries in other languages, none usable dev.multi-source-support.patch dev.multi-source-support.README diff --git a/Master/tlpkg/installer/wget/wget.amd64-freebsd b/Master/tlpkg/installer/wget/wget.amd64-freebsd Binary files differnew file mode 100755 index 00000000000..a54a1fe95fe --- /dev/null +++ b/Master/tlpkg/installer/wget/wget.amd64-freebsd diff --git a/Master/tlpkg/installer/wget/wget.i386-freebsd b/Master/tlpkg/installer/wget/wget.i386-freebsd Binary files differnew file mode 100755 index 00000000000..ec8f00f65fc --- /dev/null +++ b/Master/tlpkg/installer/wget/wget.i386-freebsd diff --git a/Master/tlpkg/installer/xz/xz.amd64-freebsd b/Master/tlpkg/installer/xz/xz.amd64-freebsd Binary files differnew file mode 100755 index 00000000000..daa08a9961a --- /dev/null +++ b/Master/tlpkg/installer/xz/xz.amd64-freebsd diff --git a/Master/tlpkg/installer/xz/xz.i386-freebsd b/Master/tlpkg/installer/xz/xz.i386-freebsd Binary files differnew file mode 100755 index 00000000000..f7cba888ed6 --- /dev/null +++ b/Master/tlpkg/installer/xz/xz.i386-freebsd diff --git a/Master/tlpkg/installer/xz/xzdec.amd64-freebsd b/Master/tlpkg/installer/xz/xzdec.amd64-freebsd Binary files differnew file mode 100755 index 00000000000..1441d60ff65 --- /dev/null +++ b/Master/tlpkg/installer/xz/xzdec.amd64-freebsd diff --git a/Master/tlpkg/installer/xz/xzdec.i386-freebsd b/Master/tlpkg/installer/xz/xzdec.i386-freebsd Binary files differnew file mode 100755 index 00000000000..2fc1862f44c --- /dev/null +++ b/Master/tlpkg/installer/xz/xzdec.i386-freebsd diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 15c971160a3..aa1035245c4 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -80,6 +80,7 @@ $Master = "$mydir/../.."; 'archaic', "&MAKEwilson", 'arphic', "&MAKEarphic", 'arev', "&MAKEcopy", + 'asana-math', "die 'skipping, use Asana-Math'", 'ascii', "&MAKEflatten", 'astron', "die 'skipping, nonfree license'", 'augie', "&MAKEaugie", |