summaryrefslogtreecommitdiff
path: root/Master/bin/i386-solaris/fmtutil
diff options
context:
space:
mode:
Diffstat (limited to 'Master/bin/i386-solaris/fmtutil')
-rwxr-xr-xMaster/bin/i386-solaris/fmtutil70
1 files changed, 34 insertions, 36 deletions
diff --git a/Master/bin/i386-solaris/fmtutil b/Master/bin/i386-solaris/fmtutil
index e061f4f20af..9342c679aaf 100755
--- a/Master/bin/i386-solaris/fmtutil
+++ b/Master/bin/i386-solaris/fmtutil
@@ -24,10 +24,12 @@
# Options:
# --cnffile file set configfile for fmtutil
# --fmtdir directory set destination directory for format files
+# --no-engine-subdir don't use $engine subdirectory of the fmtdir
###############################################################################
###############################################################################
# program history:
+# 2007-01-04 patch by JK to support $engine subdir (enabled by default)
# Fr Apr 8 19:15:05 CEST 2005 cleanup now has an argument for the return code
# Do Mar 02 10:42:31 CET 2006 add tmpdir to TEXFORMATS
# So Mär 27 18:52:06 CEST 2005 honor $TMPDIR, $TEMP and $TMP, not just $TMP
@@ -198,6 +200,7 @@ Usage: fmtutil [option] ... cmd [argument]
Valid options:
--cnffile file
--fmtdir directory
+ --no-engine-subdir don't use engine-specific subdir of the fmtdir
--quiet (not implemented, just for compatibility)
--test (not implemented, just for compatibility)
--dolinks (not implemented, just for compatibility)
@@ -383,6 +386,7 @@ main()
;;
esac
+ use_engine_dir=true # whether to use web2c/$engine subdirs
while
case $1 in
--cnffile)
@@ -393,6 +397,8 @@ main()
shift; destdir=$1;;
--fmtdir=*)
destdir=`echo "$1" | sed 's/--fmtdir=//'`; shift ;;
+ --no-engine-subdir)
+ use_engine_dir=false;;
--all|-a)
cmd=all;;
--edit|-e)
@@ -547,31 +553,11 @@ main()
refresh)
recreate_existing;;
byfmt)
- create_one_format "$arg";;
+ recreate_by_fmt "$arg";;
byhyphen)
recreate_by_hyphenfile "$arg";;
esac
- # install the log files and format files:
- for i in *.log; do
- test -f "$i" || continue
- rm -f "$destdir/$i"
-
- # We don't want user-interaction for the following "mv" command:
- mv "$i" "$destdir/$i" </dev/null
- done
- for i in *.fmt *.mem *.base; do
- test -f "$i" || continue
- rm -f "$destdir/$i"
-
- # We don't want user-interaction for the following "mv" command:
- if mv "$i" "$destdir/$i" </dev/null; then
- verboseMsg "$progname: $destdir/$i installed."
- $mktexfmtMode && echo "$destdir/$i"
- fi
- mktexupd "$destdir" "$i"
- done
-
byebye
}
@@ -622,9 +608,9 @@ parse_line()
inifile=`echo $lastarg | sed 's%^\*%%'`
case "$engine" in
- mpost) fmtfile="$format.mem"; kpsefmt=mpost;;
- mf|mfw|mf-nowin) fmtfile="$format.base"; kpsefmt=mf;;
- *) fmtfile="$format.fmt"; kpsefmt=tex;;
+ mpost) fmtfile="$format.mem"; kpsefmt=mpost; texengine=metapost;;
+ mf|mfw|mf-nowin) fmtfile="$format.base"; kpsefmt=mf; texengine=metafont;;
+ *) fmtfile="$format.fmt"; kpsefmt=tex; texengine=$engine;;
esac
# See if we can find $inifile for return code:
@@ -699,16 +685,30 @@ run_initex()
verbose $engine -ini $tcxflag $jobswitch $prgswitch $texargs
) </dev/null
+ if test $use_engine_dir; then
+ fulldestdir="$destdir/$texengine"
+ else
+ fulldestdir="$destdir"
+ fi
+ mkdir -p $fulldestdir
if test -f $fmtfile; then
grep '^! ' $format.log >/dev/null 2>&1 &&
log_failure "\`$engine -ini $tcxflag $jobswitch $prgswitch $texargs' possibly failed."
+ rm -f "$fulldestdir/$format.log"
+ # We don't want user-interaction for the following "mv" commands:
+ mv "$format.log" "$fulldestdir/$format.log" </dev/null
+ if mv "$fmtfile" "$fulldestdir/$fmtfile" </dev/null; then
+ verboseMsg "$progname: $fulldestdir/$fmtfile installed."
+ $mktexfmtMode && echo "$fulldestdir/$fmtfile"
+ mktexupd "$fulldestdir" "$fmtfile"
+ fi
else
log_failure "\`$engine -ini $tcxflag $jobswitch $prgswitch $texargs' failed"
fi
}
###############################################################################
-# recreate_loop(hyphenfile)
+# recreate_loop()
# for each line in config file: check match-condition and recreate format
# if there is a match
###############################################################################
@@ -723,7 +723,6 @@ recreate_loop()
do
parse_line $line || continue
check_match || continue
- echo; echo
run_initex
done
}
@@ -759,15 +758,14 @@ check_match()
}
###############################################################################
-# create_one_format(fmtname)
-# (re)create the format file for the format `fmtname'
+# recreate_by_fmt(fmtname)
+# recreate all versions of fmtname
###############################################################################
-create_one_format()
+recreate_by_fmt()
{
fmtname=$1
-
- find_info_for_name $fmtname || abort "format \`$fmtname' not available"
- run_initex
+ match_cmd="test x\$format = x$fmtname"
+ recreate_loop
}
###############################################################################
@@ -777,7 +775,7 @@ create_one_format()
create_missing()
{
# match_cmd='test ! -f $destdir/$fmtfile'
- match_cmd='test ! -f "`kpsewhich -progname=$format $fmtfile`"'
+ match_cmd='test ! -f "`kpsewhich -engine=$texengine -progname=$format $fmtfile`"'
recreate_loop
}
@@ -787,7 +785,7 @@ create_missing()
###############################################################################
recreate_existing()
{
- match_cmd='test -f "`kpsewhich -progname=$format $fmtfile`"'
+ match_cmd='test -f "`kpsewhich -engine=$texengine -progname=$format $fmtfile`"'
recreate_loop
}
@@ -862,7 +860,7 @@ disablefmt()
grep "^$1[ ]" $cnf_file >/dev/null || { (exit 0); return 0; }
ed $cnf_file >/dev/null 2>&1 <<-eof
- /^$1[ ]/s/^/#! /
+ g/^$1[ ]/s/^/#! /
w
q
eof
@@ -877,7 +875,7 @@ enablefmt()
{
grep "^#![ ]*$1[ ]" $cnf_file >/dev/null || { (exit 0); return 0; }
ed $cnf_file >/dev/null 2>&1 <<-eof
- /^#![ ]*$1[ ]/s/..[ ]*//
+ g/^#![ ]*$1[ ]/s/..[ ]*//
w
q
eof