diff options
Diffstat (limited to 'Master/bin/hppa-hpux/fmtutil')
-rwxr-xr-x | Master/bin/hppa-hpux/fmtutil | 80 |
1 files changed, 41 insertions, 39 deletions
diff --git a/Master/bin/hppa-hpux/fmtutil b/Master/bin/hppa-hpux/fmtutil index e061f4f20af..ae04f067201 100755 --- a/Master/bin/hppa-hpux/fmtutil +++ b/Master/bin/hppa-hpux/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 @@ -81,7 +83,7 @@ test -n "${ZSH_VERSION+set}" && alias -g '${1+"$@"}'='"$@"' progname=fmtutil argv0=$0 -version=1112981053 # seconds since `00:00:00 1970-01-01 UTC' +version=1168729197 # seconds since `00:00:00 1970-01-01 UTC' # date '+%s' (with GNU date) cnf=fmtutil.cnf # name of the config file @@ -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) @@ -359,8 +362,9 @@ main() tmpdir=${TMPDIR-${TEMP-${TMP-/tmp}}}/$progname.$$ verboseFlag=true - # mktexfmtMode: if called as mktexfmt, set to true. Will echo the generated - # filename after successful generation to stdout then (and nothing else). + # 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) @@ -383,6 +387,7 @@ main() ;; esac + use_engine_dir=true # whether to use web2c/$engine subdirs while case $1 in --cnffile) @@ -393,6 +398,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 +554,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 +609,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 +686,33 @@ 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 && $mktexfmtFirst \ + && echo "$fulldestdir/$fmtfile" && mktexfmtFirst=false + # + 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 +727,6 @@ recreate_loop() do parse_line $line || continue check_match || continue - echo; echo run_initex done } @@ -759,15 +762,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 +779,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 +789,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 +864,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 +879,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 |