Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Sat, 5 Jan 2002 14:41:02 GMT From: Rodrigo Medina Message-Id: <200201051441.OAA08525@pion.ivic.ve> To: cygwin AT cygwin DOT com Subject: texconfig and ed Cc: reiner AT anl DOT gov, te AT informatik DOT uni-hannover DOT de Sorry forgot to send the modified texconfig. In any case a better solution to the "ed" missing problem is to include in /usr/bin the following shell script, with the name "ed" : #!/bin/sh vim -e $1 $2 $3 $4 $5 $6 exit Don't forget to make it executable chmod +wx ed Good luck Rodrigo Medina Centro de Fisica, IVIC rmedina AT ivic DOT ve The modified texconfig file follows: ----------------------------------------------------- #!/bin/sh ####### Modified by R.Medina 2002/04/01 ############## ### modificacion en: run_create_mf_base ### modificacion en: run_create_mp_mem ### substituido ed por ex ###################################################### 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 SAVE_ARGS=${1+"$@"} version=teTeX #version='TeX Live' case $version in "TeX Live") SILENT_TEXLINKS=true;; esac # TeX-Config version 0.9 for teTeX and TeX Live. I hope, you will love # this script :-) # More comments, more verbose messages, and better error handling are needed. # It sould give more help (e.g on ls-R and localfont) and ask a bit more # for confirmations. # Any comments, improvements, ... please via Email to: # Thomas Esser, te AT informatik DOT uni-hannover DOT de # Copyright: Thomas Esser, 1994, 1995, 1996, 1997, 1999. Public domain. # You may override DIALOG_TERMINFO and DIALOG_TERM in your environment. ## Because the distributed cygwin (2001/03/11) does not support X stuff, ## some XDvi stuff has been commented to enable `texconfig init' at least. DIALOG_TERM=${TERM:-unix} DIALOG_TERMINFO=${TERMINFO:-/usr/share/terminfo} progname=`basename $0` tmpdir=${TMP-/tmp}/texconf$$ tmpmenu="$tmpdir"/menu.out tmpans="$tmpdir"/answer.out std_pager=less xdvi_shrink_scale=75 std_editor=vi envvars=" AFMFONTS BIBINPUTS BSTINPUTS DVILJFONTS DVIPSFONTS DVIPSHEADERS GFFONTS GLYPHFONTS INDEXSTYLE MFBASES MFINPUTS MFPOOL MFTINPUTS MPINPUTS MPMEMS MPPOOL MPSUPPORT OCPINPUTS OFMFONTS OPLFONTS OTPINPUTS OVFFONTS OVPFONTS PKFONTS PSHEADERS T1FONTS T1INPUTS TEXBIB TEXCONFIG TEXDOCS TEXFONTMAPS TEXFONTS TEXFORMATS TEXINDEXSTYLE TEXINPUTS TEXMFCNF TEXMFDBS TEXMFINI TEXPICTS TEXPKS TEXPOOL TEXPSHEADERS TEXSOURCES TFMFONTS TRFONTS VFFONTS XDVIFONTS XDVIVFS " kpsevars='MetaPost support PostScript header TeX system documentation TeX system sources Troff fonts afm base bib bitmap font bst cnf dvips config fmt gf graphic/figure ist ls-R map mem mf mfpool mft mp mppool ocp ofm opl other text files otp ovf ovp pk tex texpool tfm truetype fonts type1 fonts type42 fonts vf web2c files' umask 022 PATH=$PATH:`pwd`; export PATH log="$tmpdir"/logfile unset mode || true echo_a() { echo -n "$@"; } echo_b() { echo "$@\c"; } echo_c() { echo -e "$@\c"; } echo_d() { /bin/echo -n "$@"; } echo_e() { /bin/echo "$@\c"; } echo_f() { /bin/echo -e "$@\c"; } # exit xyz does not set $? to xyz on all systems. We work around by using # exit_return instead of exit. exit_return() { setreturn "$@"; exit "$@"; }; setreturn() { return "$@"; } find_echo() { for i in a b c d e f; do test "`echo_$i c``echo_$i a`" = ca && echon=echo_$i && return done echon=echo } find_fmt() { FMT=fmt test ! -x /bin/fmt && test ! -f /usr/bin/fmt && { test -x /bin/adjust || test -x /usr/bin/adjust; } && FMT=adjust } cls() { test -z "$NO_CLEAR" && tty >/dev/null 2>&1 && clear; } # Some systems have their own dialog. Use it then and do not use # faked TERM and TERMINFO variables when calling that dialog. find_dialogtype() { { u=${OSTYPE:-`uname -s`}; } 2>/dev/null case "$u" in FreeBSD|Linux|cygwin) test -f /usr/bin/dialog && DIALOG_PROG=/usr/bin/dialog test -f /bin/dialog && DIALOG_PROG=/bin/dialog ;; esac } run_dialog() { cls if test -n "$DIALOG_PROG"; then $DIALOG_PROG --title "$version setup utility" "$@" else TERM=$DIALOG_TERM TERMINFO=$DIALOG_TERMINFO tcdialog --title "$version setup utility" "$@" fi } check_environ() { found= for i in $envvars; do eval var=\"\$$i\" if [ ! -z "$var" ]; then case $var in :*|*:|*::*) ;; *) found="$found $i" ;; esac fi done test -z "$found" && return cls cat <&2 find "$TC_TEXMFMAIN"/fonts -perm -2 -type d -exec sh -c ' chmod -t "$1" || exit_return 1; chmod go-w "$1" || exit_return 1; echo "$1" >&2; ' sh '{}' \; chmod go-w "$TC_TEXMFMAIN"/ls-R && echo "$TC_TEXMFMAIN"/ls-R >&2 echo "Done." >&2 } fonts_rw() { cls echo "Adding global write permissions in fonts tree:" >&2 find "$TC_TEXMFMAIN"/fonts/tfm "$TC_TEXMFMAIN"/fonts/pk "$TC_TEXMFMAIN"/fonts/source/jknappen "$TC_TEXMFMAIN"/fonts/source/lh "$TC_TEXMFMAIN"/fonts/source/public/cs \ -type d -exec sh -c ' case $1 in */adobe*|*/bitstrea*) exit;; esac chmod 1777 "$1" || exit; echo "$1" >&2; ' sh '{}' \; chmod 1777 "$TC_TEXMFMAIN"/fonts || exit_return 1 echo "$TC_TEXMFMAIN"/fonts >&2 chmod 666 "$TC_TEXMFMAIN"/ls-R && echo "$TC_TEXMFMAIN"/ls-R >&2 echo "Done." >&2 } check_terminal() { terminfo=${DIALOG_TERMINFO-/usr/share/terminfo} test -f $terminfo/`echo $DIALOG_TERM | sed 's/\(.\).*/\1/'`/$DIALOG_TERM \ && return cat >&2 <&2 read foo;; esac } exist_test() { type=$1 ; name=$2; what=$3 if [ ! "$type" "$name" ]; then msg="Could not find $what." if test -f "$log"; then msg="$msg\\n\\nThe programm will show you the error-log and then exit." else msg="$msg\\n\\nThe programm will exit now." fi run_dialog --msgbox "$msg" 23 80 cls if test -f "$log"; then <"$log" eval $PAGER fix_pager_more fi exit_return 1 fi } choose_editor() { run_dialog --inputbox \ "Your editor for changing config-files currently\\nis set to $EDIT.\\n\\nPress RETURN to accept this default or enter\\nthe name of the editor of your choice.\\n\\n" \ 23 80 2>"$tmpmenu" || return x=`cat "$tmpmenu"` test -z "$x" || EDIT=$x } choose_pager() { run_dialog --inputbox \ "Your pager to view the logfile currently\\nis set to $PAGER.\\n\\nPress RETURN to accept this default or enter\\nthe name of the pager of your choice.\\n\\n" \ 23 80 2>"$tmpmenu" || return x=`cat "$tmpmenu"` test -z "$x" || PAGER=$x } setup_preferences() { while true ; do run_dialog \ --menu "\\n\\nSet up your editor and pager for this texconfig session.\\n\\n" \ 23 80 4 \ RETURN 'back to main menu' \ EDITOR 'set up editor for changing config-files' \ PAGER 'set up pager to view the logfile' \ LOG 'view logfile' \ 2>"$tmpmenu" || return ans=`cat $tmpmenu` test -z "$ans" && return case "$ans" in EDITOR) choose_editor ;; PAGER) choose_pager ;; LOG) cls; <"$log" eval $PAGER; fix_pager_more ;; RETURN) return ;; esac done } config_tex() { exist_test -d "$formats" "directory for format files" cls edit_hyphen } choose_mode() { out=$1 choose_mode_msg="$2" mode=$default_mode exist_test -f "$modes" "modes.mf file" if [ ! -z "$mode" ] ; then if yesno "\\n\\nUse mode $mode as default $3?\\n\\n" 23 80 ; then : # nothing else mode= fi fi if [ -z "$mode" ] ; then #--title \"teTeX-Config: MetaFont mode\" \ eval run_dialog \ --menu \"\$choose_mode_msg\" \ 23 80 14 `list_mf_modes $modes` \ 2>"$out" else echo $mode >"$out" fi } get_default_mode() { choose_mode "$tmpans" 'Choose a default mode for xdvi, dvips and metafont. As a rule\nof thumb, choose the most commonly mode use ### substituido ed por exd for printing at your site.' default_mode=`cat "$tmpans"` test -z "$default_mode" && return cls do_set_default_mode "$default_mode" 2>&1 | tee -a "$log" } do_set_default_mode() { mode=$1 set x `find_res $mode`; shift res_x=$1; res_y=$2 dvips_conf=$dvips_conf_dir/config.ps run_setup_mf_mode "$mode" run_dvips_setup_mode "$mode" "$res_x" "$res_y" run_xdvi_setup_mode "$mode" "$res_x" config_replace "$maketex_site_file" '^: ..MODE' ": \${MODE=$mode}" config_replace "$maketex_site_file" '^: ..BDPI' ": \${BDPI=$res_x}" run_config_mf } run_config_mf() { test -d "$TC_TEXMFMAIN/metafont" || return exist_test -d "$bases" "directory for base files" exist_test -f "$modes" "modes.mf file" echo "Running mf to create plain base ..." run_create_mf_base echo "Done."; echo } run_setup_mf_mode() { mode="$1" ##################### R. Medina ########## # ed $modes >/dev/null 2>&1 </dev/null 2>&1 < mf.ini # Funciona al reves de lo esperado mf.base es el archivo y plain.base el # enlace # run_create_mf_base() { rm -f *.log *.base mf -ini mf.mf /dev/null $TC_MKTEXUPD $bases mfw.base 2>/dev/null $TC_MKTEXUPD $bases plain.base 2>/dev/null } run_config_mp() { test -d "$TC_TEXMFMAIN/metapost" || return exist_test -d "$mems" "directory for mem files" echo "Running mpost to create plain mem ..." run_create_mp_mem echo "Done."; echo } ############## R. Medina ############## # Hay que poner poner mpost.mp ---> mp.ini run_create_mp_mem() { rm -f *.log *.mem mpost -ini mpost.mp "$tmpmenu" || return formatname=`cat "$tmpmenu"` } config_dvips_paper() { eval run_dialog \ --menu \'\\n\\nChoose the default papersize definition for dvips.\\n\\n\' \ 23 80 8 `list_dvips_papers $dvips_conf` \ 2>"$tmpmenu" || return paper=`cat "$tmpmenu"` test -z "$paper" && return ; setup_dvips_paper "$paper" 2>&1 | tee -a "$log" } dvips_choose_printcmd() { run_dialog --inputbox \ "\\n\\nEnter the command to print to the printer '$printer'.\\nIn general, you need a command like 'lpr' or 'lpr -Pfoo'.\\n\\nNOTE: If you just press return, printing will be disabled\\nand the output saved to a file by default.\\n\\n" \ 23 80 2>"$tmpmenu" || return x=`cat "$tmpmenu"` if [ -z "$x" ] ; then echo save-to-file >&2 else echo $x >&2 fi } has_latex() { test -d $TC_TEXMFMAIN/tex/latex && return 0 run_dialog --msgbox \ "This funtion needs LaTeX to be installed." 23 80 return 1 } dvips_test_print() { has_latex || return cd "$tmpdir" cls latex testpage 2>&1 | tee -a "$log" case $printer in default) dvips testpage ;; *) dvips -P$printer testpage ;; esac 2>&1 | tee -a "$log" } yesno() { run_dialog --yesno "$@"; } dvips_setup_mode() { choose_mode "$tmpans" "Choose the metafont mode for printer '$printer'" "for printer $printer" mode=`cat "$tmpans"` test -z "$mode" && return run_dvips_setup_mode "$mode" 2>&1 | tee -a "$log" } run_dvips_setup_mode() { mode="$1" if test -z "$2"; then set x `find_res $mode`; shift res_x=$1; res_y=$2 else res_x=$2 res_y=${3-$2} fi config_replace "$dvips_conf" '^M' "M $mode" config_replace "$dvips_conf" '^D' "D $res_x" config_replace "$dvips_conf" '^X' "X $res_x" config_replace "$dvips_conf" '^Y' "Y $res_y" } dvips_setup_printcmd() { dvips_choose_printcmd 2>"$tmpans" printcmd=`cat "$tmpans"` test -z "$printcmd" && return do_dvips_setup_printcmd "$printcmd" 2>&1 | tee -a "$log" } do_dvips_setup_printcmd() { printcmd="$@" if test "$printcmd" = save-to-file; then config_replace "$dvips_conf" '^o' 'o' else config_replace "$dvips_conf" '^o' "o |$printcmd" fi } dvips_setup_offset() { run_dialog --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" || return x=`cat "$tmpmenu"` test -z "$x" || run_dvips_setup_offset "$x" 2>&1 | tee -a "$log" } do_dvips_setup_offset() { x="$1" if test -z "$x"; then echo "Error: no offset given to do_dvips_setup_offset. Skipped." >&2 return fi run_dvips_setup_offset "$x" } run_dvips_setup_offset() { x="$1" config_replace "$dvips_conf" '^O' "O $x" } dvips_config_local() { exist_test -d "$dvips_conf_dir" "config file for dvips (config.ps)" while true ; do run_dialog \ --menu "\\n\\n$version: set up printer '$printer' for dvips\\n\\n" \ 23 80 5 \ RETURN 'Back to dvips main menu' \ MODE 'Set up mf mode (resolution will be calculated as well)' \ CMD 'Set up the command to print on this printer' \ OFFSETS 'Set up offsets for printing' \ TEST 'Print a testpage' \ 2>"$tmpmenu" || return ans=`cat "$tmpmenu"` test -z "$ans" && return case "$ans" in MODE) dvips_setup_mode ;; CMD) dvips_setup_printcmd ;; OFFSETS) dvips_setup_offset ;; TEST) dvips_test_print ;; RETURN) return ;; esac done } dvips_config_global() { config_dvips_paper printer=default dvips_config_local } dvips_get_printername() { run_dialog --inputbox \ "Printer name" \ 23 80 2>"$tmpmenu" || return x=`cat "$tmpmenu"` test -z "$x" || echo $x >&2 } config_dvips() { while true; do run_dialog \ --menu ' dvips section: If you only have no more than one printer, you only need to go through the GLOBAL menu. 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 conversation (if you printer is supported). A definition for a printer PRINTER directly corresponds to a configuration file config.PRINTER in the $TC_VARTEXMF/dvips directory. ' \ 23 80 6 \ RETURN 'back to main menu' \ GLOBAL 'global settings' \ ADD 'add a printer configuration (to be used via -P flag)' \ DEL 'remove a printer definition' \ CHANGE 'change an existing printer definition' \ "LOG" 'view logfile' \ 2>"$tmpmenu" || return ans=`cat "$tmpmenu"` test -z "$ans" && return case "$ans" in ADD|DEL|CHANGE) dvips_get_printername 2>"$tmpans" printer=`cat "$tmpans"` test -z "$printer" && continue dvips_conf=$dvips_conf_dir/config.$printer ;; esac case "$ans" in GLOBAL) dvips_conf=$dvips_conf_dir/config.ps dvips_config_global ;; ADD) if [ -f $dvips_conf_dir/config.$printer ] ; then run_dialog --msgbox \ "Configuration for $printer already exists." 23 80 continue fi touch $dvips_conf_dir/config.$printer $TC_MKTEXUPD $dvips_conf_dir config.$printer dvips_config_local ;; DEL) rm -f $dvips_conf_dir/config.$printer $dvips_conf_dir/config.$printer.orig ;; CHANGE) if [ ! -f $dvips_conf_dir/config.$printer ] ; then run_dialog --msgbox \ "Configuration for $printer not found." 23 80 continue fi dvips_config_local ;; LOG) cls; <"$log" eval $PAGER; fix_pager_more;; RETURN) return ;; esac done } do_dvips_setup_paper() { paper="$1" list=`list_dvips_papers $dvips_conf | awk '{print $1}'` if test_in_list "$paper" $list; then setup_dvips_paper "$paper" fi } do_xdvi_setup_paper() { paper="$1" list=`list_xdvi_papers | awk '{print $1}'` if test_in_list "$paper" $list; then run_xdvi_setup_paper "$paper" fi } run_xdvi_setup_paper() { paper="$1" config_replace "$xdvi_app_file" 'paper:' "XDvi*paper: $paper" } xdvi_setup_paper() { #--title \"TeX-Config: xdvi default paper\" \ eval run_dialog \ --menu \"Choose the default papersize definition for xdvi.\" \ 23 80 15 `list_xdvi_papers` \ 2>"$tmpmenu" || return paper=`cat "$tmpmenu"` test -z "$paper" && return run_xdvi_setup_paper "$paper" 2>&1 | tee -a "$log" } do_dvips_setup_mode() { mode="$1" if test -z "$mode"; then echo "Error: no mode given to do_dvips_setup_mode. Skipped.">&2 return 1 fi list=`list_mf_modes $modes | awk '{print $1}'` if test_in_list "$mode" $list; then run_dvips_setup_mode "$mode" fi } cmd_mode_maketex() { case "$1" in vardir) if test -z "$2"; then echo "Usage: texconfig font vardir DIR" >&2 return 1 else do_setup_mt_vardir "$2" fi ;; ro) fonts_ro;; rw) fonts_rw;; options) shift if test $# = 0; then echo "Usage: texconfig options OPTIONS ..." >&2 return 1 fi if test "$*" = -; then set_mt_options else set_mt_options "$@" fi ;; *) echo "Usage: texconfig font vardir DIR" >&2 echo " texconfig font ro" >&2 echo " texconfig font rw" >&2 echo " texconfig font options OPTIONS ..." >&2 echo >&2 echo " valid OPTIONS: $all_mt_features -" >&2 echo " the special OPTION '-' can be used to disable all OPTIONS" >&2 return 1 ;; esac } cmd_mode_set_default_mode() { mode="$1" case "$mode" in "") echo "Usage: texconfig mode MODE" >&2 echo " Valid modes:" >&2 echo >&2 list_mf_modes $modes | awk '{print $1}' | $FMT >&2 echo >&2 echo "See file $modes" >&2 echo "for more information about these modes." >&2 return 1;; esac list=`list_mf_modes $modes | awk '{print $1}'` if test_in_list "$mode" $list; then do_set_default_mode "$mode" fi } run_xdvi_setup_mode() { mode="$1" res=${2-`find_res $mode 2>>"$log" | awk '{ print $1 }'`} shrink=`expr $res / $xdvi_shrink_scale` if test $res -lt 300; then b1=1; b2=2; b3=3; b4=4 else b1=`expr 1 \* $res / 300` b2=`expr 2 \* $res / 300` b3=`expr 3 \* $res / 300` b4=`expr 4 \* $res / 300` fi config_replace "$xdvi_app_file" 'mfMode:' "XDvi*mfMode: $mode" 2>&1 | tee -a "$log" config_replace "$xdvi_app_file" 'pixelsPerInch:' "XDvi*pixelsPerInch: $res" 2>&1 | tee -a "$log" config_replace "$xdvi_app_file" 'shrinkFactor:' "XDvi*shrinkFactor: $shrink" 2>&1 | tee -a "$log" config_replace "$xdvi_app_file" 'shrinkButton1:' "XDvi*shrinkButton1: $b1" 2>&1 | tee -a "$log" config_replace "$xdvi_app_file" 'shrinkButton2:' "XDvi*shrinkButton2: $b2" 2>&1 | tee -a "$log" config_replace "$xdvi_app_file" 'shrinkButton3:' "XDvi*shrinkButton3: $b3" 2>&1 | tee -a "$log" config_replace "$xdvi_app_file" 'shrinkButton4:' "XDvi*shrinkButton4: $b4" 2>&1 | tee -a "$log" } xdvi_make_test() { if [ -z "$DISPLAY" ] ; then : fi cd "$tmpdir" 2>&1 | tee -a "$log" cls tex '\input story\end' 2>&1 | tee -a "$log" cls xdvi story 2>&1 | tee -a "$log" } config_xdvi() { test -d "$xdvi_app_dir" || $TC_MKTEXDIR "$xdvi_app_dir" test -f "$xdvi_app_file" || touch "$xdvi_app_file" exist_test -f "$xdvi_app_file" "app-default file for xdvi" while true ; do run_dialog \ --menu '\n\nSet up xdvi via application ressources.\n\nNote 1: set the mode from the main menu.\nNote 2: a symbolic Link for the app-default file is no longer necessary.\n\n' \ 23 80 4 \ RETURN 'back to main menu' \ PAPER 'default papertype' \ TEST 'view a testfile' \ LOG 'view logfile' \ 2>"$tmpmenu" || return ans=`cat "$tmpmenu"` test -z "$ans" && return case "$ans" in PAPER) xdvi_setup_paper ;; TEST) xdvi_make_test ;; LOG) cls; <"$log" eval $PAGER; fix_pager_more;; RETURN) return ;; esac done } keep_mode() { yesno "\\n\\nUse mode $mode\\n\\n" 23 80; } config_replace() { config=$1 pattern=$2 replacement=$3 ################### R. Medina ########## # require_binary ed require_binary ex test -f "$config" > /dev/null 2>&1 if [ $? != 0 ]; then echo "config_replace: file '$config' not found." >&2 return fi test -w "$config" > /dev/null 2>&1 if [ $? != 0 ]; then echo "config_replace: cannot write to file '$config'." >&2 return fi egrep -e "$pattern" "$config" > /dev/null 2>&1 if [ $? != 0 ]; then echo "$replacement" >> "$config" else ################ R. Medina ################## # ed $config >/dev/null 2>&1 </dev/null 2>&1 <&2 return fi fi } find_res() { 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='"$1"'; \input ./mftmp' /dev/null 2>&1 if [ $? != 0 ]; then echo "setup_dvips_paper: global dvips config file '$config' not found." >&2 return fi test -w "$config" > /dev/null 2>&1 if [ $? != 0 ]; then echo "setup_dvips_paper: cannot write to file '$config'." >&2 return fi grep "@ $paper" "$config" > /dev/null 2>&1 if [ $? != 0 ]; then echo "setup_dvips_paper: paper '$paper' not found in file '$config'." >&2 return fi ################# R. Medina ########## # ed $config > /dev/null 2>&1 < /dev/null 2>&1 <&2 fi } cmd_mode() { case "$1" in faq) cls; test -f $FAQ && <$FAQ eval $PAGER; fix_pager_more;; conf) do_print_setup;; formats) config_formats;; hyphen) shift; do_edit_hyphen ${1+"$@"} ;; mode) shift; cmd_mode_set_default_mode ${1+"$@"} ;; xdvi) shift; cmd_mode_xdvi ${1+"$@"};; dvips) shift; cmd_mode_dvips ${1+"$@"};; font) shift; cmd_mode_maketex ${1+"$@"};; confall) do_print_all_setup;; init) init_all;; *) echo "Usage: texconfig conf" >&2 echo " texconfig confall" >&2 echo " texconfig rehash" >&2 echo " texconfig formats" >&2 echo " texconfig hyphen FORMAT" >&2 echo " texconfig mode [options]" >&2 echo " texconfig xdvi [options] ..." >&2 echo " texconfig dvips [options] ..." >&2 echo " texconfig font [options] ..." >&2 echo " texconfig faq" >&2 echo " texconfig init" >&2 echo >&2 echo "Get help with:" >&2 echo " texconfig help" >&2 echo " texconfig hyphen" >&2 echo " texconfig mode" >&2 echo " texconfig xdvi" >&2 echo " texconfig dvips" >&2 echo " texconfig font" >&2 exit_return 1;; esac exit_return 0 } cmd_mode_dvips() { printer= dvips_conf="$dvips_conf_dir/config.ps" case "$1" in -P) printer=$2; shift; shift;; -P*) printer=`echo $2 | sed 's/..//'`; shift;; esac test -z "$printer" || dvips_conf="$dvips_conf_dir/config.$printer" case "$1" in add) if test -z "$2"; then echo "Usage: texconfig dvips add PRINTER" >&2 else touch "$dvips_conf_dir/config.$2" $TC_MKTEXUPD "$dvips_conf_dir" "config.$2" fi;; del) if test -z "$2"; then echo "Usage: texconfig dvips del PRINTER" >&2 else rm -f "$dvips_conf_dir/config.$2" fi;; mode) if test -z "$2"; then echo "Usage: texconfig dvips [-P PRINTER] mode MODE" >&2 echo " Valid modes:" >&2 echo >&2 list_mf_modes $modes | awk '{print $1}' | $FMT >&2 echo >&2 echo "See file $modes" >&2 echo "for more information about these modes." >&2 else do_dvips_setup_mode "$2" fi;; printcmd) case "$2" in "") echo "Usage: dvips [-P PRINTER] printcmd CMD" >&2 echo " For printing, the output will be piped to the CMD" >&2 echo " Typically, CMD is set to 'lpr' or 'lpr -P SOME-NAME'." >&2 echo >&2 echo " Use - as CMD to disable direct drinting." >&2;; -) do_dvips_setup_printcmd save-to-file;; *) shift; do_dvips_setup_printcmd ${1+"$@"};; esac;; offset) if test -z "$2"; then echo "Usage: dvips [-P PRINTER] offset OFFSET" >&2 echo " For OFFSET choose a dimension pair, such as '0.4in,-2in'." >&2 else do_dvips_setup_offset "$2" fi;; paper) if test -z "$2"; then echo "Usage: texconfig dvips paper PAPER" >&2 echo " Valid papertypes:" >&2 echo >&2 list_dvips_papers $dvips_conf | awk '{print $1}' | $FMT >&2 else dvips_conf="$dvips_conf_dir/config.ps" do_dvips_setup_paper "$2" fi;; *) cat<<'eof' Usage: texconfig dvips add PRINTER texconfig dvips del PRINTER texconfig dvips paper PAPER texconfig dvips [-P PRINTER] mode MODE texconfig dvips [-P PRINTER] offset OFFSET texconfig dvips [-P PRINTER] printcmd CMD eof esac } cmd_mode_xdvi() { case $# in 1) do_xdvi_setup_paper "$1";; *) { echo 'Usage: texconfig xdvi PAPER' echo " recognised papersizes are:"; echo echo "`list_xdvi_papers | awk '{print $1}' | $FMT`"; } >&2 esac } test_in_list() { obj="$1"; shift test -z "$obj" && return 1 for i do test "$obj" = "$i" && return 0 done echo "Error: value '$obj' not in list '$@'." >&2 return 1 } init_tex_formats() { fmtutil --all texlinks ${SILENT_TEXLINKS+-s} } init_all() { run_config_mf init_tex_formats check_for_binary mpost >/dev/null && run_config_mp } edit_hyphen() { select_format cls test -z "$formatname" && return do_edit_hyphen "$formatname" } do_edit_hyphen() { formatname="$1" test -n "$formatname" \ && language=`fmtutil --showhyphen "$formatname"` case "${formatname}%${language}" in %*|*%) echo "Usage: texconfig hyphen FORMAT" >&2 echo " Valid formats:" >&2 echo >&2 list_formats | sed "s@.@@; s@'.*@@" | fmt >&2 return 1;; esac tmpfile=hy$$ sed 's@[%].*@@; s@^[ ]*@@; /^$/d' $language | sort > $tmpfile-1 $EDIT $language sed 's@[%].*@@; s@^[ ]*@@; /^$/d' $language | sort > $tmpfile-2 cmp $tmpfile-1 $tmpfile-2 >/dev/null 2>&1 && return fmtutil --byhyphen $language 2>&1 | tee -a "$log" } 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 } require_binary() { for this_binary do check_for_binary $this_binary >/dev/null if [ $? != 0 ]; then echo "texconfig: binary $this_binary not found. Please set up your PATH correctly" >&2 exit_return 1 fi done } echo_locate_binary() { for locate_this_bin do location=`check_for_binary $locate_this_bin` if [ $? = 0 ]; then echo "$locate_this_bin: $location" else echo "$locate_this_bin not found." fi done } echo_show_variable() { for this_var do var=$this_var eval val=\"\${$var+=}\${$var- is unset}\" echo "$var$val" done | grep -v 'is unset$' } echo_file_location() { if [ -f "$2" ]; then echo "$1: $2" else echo "$1 not found." fi } do_print_setup() { echo '==================== binaries found by searching $PATH ===================' echo_locate_binary tex etex pdftex omega mf mpost tcdialog dvips xdvi kpsewhich mktexpk mktextfm echo echo '=========================== Kpathsea variables ===========================' echo_show_variable TEXMF TEXMFMAIN VARTEXMF echo echo '=============== environment variables (ok if no output here) =============' echo_show_variable $envvars } show_path() { OIFS=$IFS IFS=' ' echo echo '============================= search paths ===============================' for i in $kpsevars do echo $i | awk '{printf("%25s: ", $0)}' kpsewhich -show-path="$i" done IFS=$OIFS } do_print_all_setup() { do_print_setup show_path $kpsevars } print_setup() { do_print_setup | eval $PAGER; fix_pager_more } all_mt_features='appendonlydir dosnames nomode stripsupplier striptypeface varfonts nomfdrivers' get_mt_options() { MT_FEATURES=`grep '^:.*MT_FEATURES' $maketex_site_file | sed 's/.*=//;s/}.*//'` for feature in $all_mt_features; do case "$MT_FEATURES" in *${feature}*) eval $feature=on;; *) eval $feature=off;; esac done } set_mt_options() { args="$*" exist_test -f "$texmfcnf" "texmf.cnf file" for feature in $all_mt_features; do eval $feature=off done set x $args; shift reslist= for i do test_in_list "$i" $all_mt_features || continue reslist="$reslist $i" done set x $reslist; shift MT_FEATURES=$1; test $# -ge 1 && shift for i do MT_FEATURES="$MT_FEATURES:$i" done config_replace "$maketex_site_file" '^: ..MT_FEATURES' ": \${MT_FEATURES=$MT_FEATURES}" } setup_mt_options() { get_mt_options run_dialog --checklist '\nSelect options for mktex scripts. Use the spacebar for enable/disable.\n\n' \ 23 80 7 \ appendonlydir "set stick bit on new directories (recommended)" $appendonlydir \ dosnames "dpiNNN/NAME.pk instead of NAME.NNNpk" $dosnames \ nomode "leave out MODE (e.g. ljfour)" $nomode \ stripsupplier "leave out SUPPLIER (e.g. ams)" $stripsupplier \ striptypeface "leave out TYPEFACE (e.g. euler)" $striptypeface \ varfonts "use \$VARTEXFONTS instead of \$TEXMFMAIN/fonts" $varfonts \ nomfdrivers "remove metafont driver after mktex{tfm,pk} run" $nomfdrivers \ 2>"$tmpmenu" || return eval set_mt_options `cat "$tmpmenu"` } setup_query_mkdir() { yesno "\\n\\nCreate directory $1?\\n\\n" 23 80; } setup_mt_vardir() { VARTEXFONTS=`kpsewhich -expand-var '$VARTEXFONTS'` run_dialog --inputbox \ "Your \$VARTEXFONTS directory currently\\nis set to $VARTEXFONTS.\\n\\nPress RETURN to accept this default or enter\\nthe name of an other directory.\\n\\n" \ 23 80 2>"$tmpmenu" || return x=`cat "$tmpmenu"` test -z "$x" && return test -d "$x" || setup_query_mkdir "$x" || return do_setup_mt_vardir "$x" 2>&1 | tee -a "$log" } do_setup_mt_vardir() { vardir=$1 test -d "$vardir" || { mkdir "$vardir" && chmod 755 "$vardir"; } || return 1 test -d "$vardir/pk" || { mkdir "$vardir/pk" && chmod 1777 "$vardir/pk"; } || return 1 test -d "$vardir/tfm" || { mkdir "$vardir/tfm" && chmod 1777 "$vardir/tfm"; } || return 1 test -d "$vardir/source" || { mkdir "$vardir/source" && chmod 1777 "$vardir/source"; } || return 1 config_replace "$texmfcnf" '^VARTEXFONTS' "VARTEXFONTS = $vardir" } setup_mt() { while true; do ex=eufm10 OIFS=$IFS IFS=': ' set x `$TC_MKTEXNAM $ex` IFS=$OIFS pk=$2 tfm=$3 run_dialog \ --menu "\nSet up target directories for font creation.\n\nExample: current settings for font $ex with default mode\\n are (tfm resp. pk):\\n\\n $tfm\\n $pk\n\n" \ 23 80 7 \ RETURN 'back to main menu' \ FONTRO 'remove global write permissions from standard fonts tree' \ FONTRW 'add global write permissions to standard fonts tree' \ OPTIONS 'set up options for mktex scripts' \ VARDIR 'directory for new fonts (if varfonts option active)' \ LOG 'view logfile' \ 2>"$tmpmenu" || return ans=`cat "$tmpmenu"` test -z "$ans" && return case "$ans" in VARDIR) setup_mt_vardir ;; OPTIONS) setup_mt_options ;; FONTRO) get_mt_options VARTEXFONTS=`kpsewhich -expand-var '$VARTEXFONTS'` if test "$varfonts" != on; then run_dialog --msgbox \ '\n\n\nPlease enable the varfonts feature (OPTIONS menue) first.' \ 23 80 continue fi if test ! -d "$VARTEXFONTS"; then run_dialog --msgbox \ '\n\n\nPlease make sure that the VARTEXFONTS directory exists and try again.' \ 23 80 continue fi if test -z "$VARTEXFONTS"; then run_dialog --msgbox \ '\n\n\nPlease set up a non-empty VARTEXFONTS directory (VARDIR menue) first.' \ 23 80 continue fi fonts_ro;; FONTRW) fonts_rw;; LOG) cls; <"$log" eval $PAGER; fix_pager_more;; RETURN) return ;; esac done } locate_files() { fmtutilcnf=`kpsewhich --format='web2c files' fmtutil.cnf` if test -z "$fmtutilcnf" || test ! -f "$fmtutilcnf"; then echo "Error: kpsewhich cannot find file fmtutil.cnf" >&2 exit_return 1 fi modes=`kpsewhich modes.mf` if test -z "$modes" || test ! -f "$modes"; then echo "Error: kpsewhich cannot find file modes.mf" >&2 exit_return 1 fi texmfcnf=`kpsewhich texmf.cnf` if test -z "$texmfcnf" || test ! -f "$texmfcnf"; then echo "Error: kpsewhich cannot find file texmf.cnf" >&2 exit_return 1 fi maketex_site_file=`kpsewhich --format='web2c files' mktex.cnf` if test -z "$maketex_site_file" || test ! -f "$maketex_site_file"; then echo "Error: kpsewhich cannot find file mktex.cnf" >&2 exit_return 1 fi xdvi_app_file=`XDVIINPUTS="$XDVIINPUTS":'$TEXMF/{xdvi,web2c}' kpsewhich -progname=xdvi --format='other text files' XDvi` ## if test -z "$xdvi_app_file" || test ! -f "$xdvi_app_file"; then ## echo "Error: kpsewhich cannot find file XDvi" >&2 ## exit_return 1 ## fi } # This function rebuilds the html index to the local documentation # By Ottavio G. Rizzo rebuild_doc() { run_dialog --inputbox \ "I assume the local TeX documentation is in\\n$doc\\n\\nPress RETURN if this is true or enter the name of the directory.\\n\\n" \ 23 80 2>"$tmpmenu" || return x=`cat "$tmpmenu"` test -z "$x" || doc=$x if test -d $doc # Did I get a meaningful directory? then ( cd $doc helpindex=`\ls -l helpindex.html 2>/dev/null | awk '{print $NF}'` case $helpindex in "") helpindex=$doc/helpindex.html;; /*) ;; *) helpindex=$doc/$helpindex;; esac \mv -f $helpindex $helpindex.BAK # Warn the user it's going to take a while run_dialog --infobox \ "This could take some time, please wait." \ 3 80 ./mkhtml > $helpindex 2>> "$log" ) else cls echo -e '\n\n\n\n' echo "$doc doesn't exist!" | tee -a "$log" echo "Press a key to continue" read foo fi } config_formats() { exist_test -f "$fmtutilcnf" "fmtutil.cnf file" tmpfile=fmt$$ sed 's@[%#].*@@; s@^[ ]*@@; /^$/d' $fmtutilcnf | sort > $tmpfile-1 cls $EDIT $fmtutilcnf sed 's@[%#].*@@; s@^[ ]*@@; /^$/d' $fmtutilcnf | sort > $tmpfile-2 comm -13 $tmpfile-1 $tmpfile-2 > $tmpfile-3 for i in `awk '{print $1}' $tmpfile-3`; do fmtutil --byfmt "$i" 2>&1 | tee -a "$log" done texlinks ${SILENT_TEXLINKS+-s} 2>&1 | tee -a "$log" } #------------------ begin: initialisation ----------------------------------- find_echo find_fmt find_dialogtype check_environ require_binary kpsewhich pwd TEXMFMAIN_environ=${TEXMFMAIN+yes} : ${TC_TEXMFMAIN=`kpsewhich --expand-var='$TEXMFMAIN' | sed 's@^!*@@'`} if test -z "$TC_TEXMFMAIN"; then echo "$0: No \$TEXMFMAIN in texmf.cnf file." >&2 echo "$0: set TEXMFCNF variable to the directory where teTeX's texmf.cnf file is in." >&2 exit_return 1 fi if test x${TEXMFMAIN_environ} = xyes; then if test ! -f "$TC_TEXMFMAIN/web2c/texmf.cnf"; then echo "Error: file texmf.cnf not found in \`\`$TC_TEXMFMAIN/web2c''." echo "Your environment variable TEXMFMAIN \`\`$TC_TEXMFMAIN'' seems to have the wrong value." exit_return 1 fi else if test ! -f "$TC_TEXMFMAIN/web2c/texmf.cnf"; then echo "Error: file texmf.cnf not found in \`\`$TC_TEXMFMAIN/web2c''." echo "TEXMFMAIN \`\`$TC_TEXMFMAIN'' seems to have the wrong value from a texmf.cnf file." exit_return 1 fi fi : ${TC_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`} test -z "$TC_MKTEX_OPT" && TC_MKTEX_OPT="$TC_TEXMFMAIN/web2c/mktex.opt" : ${TC_MKTEXDIR=`kpsewhich --format='web2c files' mktexdir`} test -z "$TC_MKTEXDIR" && TC_MKTEXDIR="$TC_TEXMFMAIN/web2c/mktexdir" : ${TC_MKTEXUPD=`kpsewhich --format='web2c files' mktexupd`} test -z "$TC_MKTEXUPD" && TC_MKTEXUPD="$TC_TEXMFMAIN/web2c/mktexupd" : ${TC_MKTEXNAM=`kpsewhich --format='web2c files' mktexnam`} test -z "$TC_MKTEXNAM" && TC_MKTEXNAM="$TC_TEXMFMAIN/web2c/mktexnam" # The texmf tree where we put generated files into. Defaults to system tree: : ${TC_VARTEXMF=`kpsewhich -expand-var='$VARTEXMF'`} test -z "$TC_VARTEXMF" && TC_VARTEXMF=$TC_TEXMFMAIN : ${TC_DFT_XDVI_APP=`XDVIINPUTS="$XDVIINPUTS":'$TEXMF/{xdvi,web2c}' kpsewhich -progname=xdvi --format='other text files' XDvi`} test -z "$TC_DFT_XDVI_APP" && TC_DFT_XDVI_APP="$TC_TEXMFMAIN/xdvi/XDvi" : ${TC_DFT_MKTEX_CNF=`kpsewhich --format='web2c files' mktex.cnf`} test -z "$TC_DFT_MKTEX_CNF" && test -f "$TC_TEXMFMAIN/web2c/mktex.cnf" && TC_DFT_MKTEX_CNF="$TC_TEXMFMAIN/web2c/mktex.cnf" : ${TC_DFT_CONFIG_PS=`kpsewhich -format='dvips config' config.ps`} test -z "$TC_DFT_CONFIG_PS" && TC_DFT_CONFIG_PS=$TC_TEXMFMAIN/dvips/config/config.ps : ${TC_DFT_LANGUAGE_DAT=`kpsewhich -format=.tex language.dat`} test -z "$TC_DFT_LANGUAGE_DAT" && TC_DFT_LANGUAGE_DAT=$TC_TEXMFMAIN/tex/generic/config/language.dat : ${TC_DFT_LANGUAGE_DEF=`kpsewhich -format=.tex -progname=etex language.def`} test -z "$TC_DFT_LANGUAGE_DEF" && TC_DFT_LANGUAGE_DEF=$TC_TEXMFMAIN/etex/plain/config/language.def : ${TC_DFT_CONT_USR=`kpsewhich -format=.tex -progname=context cont-usr.tex`} test -z "$TC_DFT_CONT_USR" && TC_DFT_CONT_USR=$TC_TEXMFMAIN/tex/context/config/cont-usr.tex : ${TC_DFT_FMTUTIL_CNF=`kpsewhich --format='web2c files' fmtutil.cnf`} test -z "$TC_DFT_FMTUTIL_CNF" && TC_DFT_FMTUTIL_CNF=$TC_TEXMFMAIN/web2c/fmtutil.cnf # The fallback directory for private scripts and config files. : ${TEXMF=`kpsewhich -expand-var '$TEXMF'`} : ${DIALOG_TERMINFO=$TC_TEXMFMAIN/texconfig} : ${DIALOG_TERM=generic} formats=$TC_VARTEXMF/web2c bases=$TC_VARTEXMF/web2c mems=$TC_VARTEXMF/web2c xdvi_app_dir=$TC_VARTEXMF/xdvi xdvi_app_file=$xdvi_app_dir/XDvi dvips_conf_dir=$TC_VARTEXMF/dvips/config pdftex_cnf_dir=$TC_VARTEXMF/pdftex/config maketex_site_dir=$TC_VARTEXMF/web2c maketex_site_file=$maketex_site_dir/mktex.cnf language_dat_dir=$TC_VARTEXMF/tex/generic/config language_dat_file=$language_dat_dir/language.dat language_def_dir=$TC_VARTEXMF/etex/plain/config language_def_file=$language_def_dir/language.def cont_usr_dir=$TC_VARTEXMF/tex/context/config cont_usr_file=$cont_usr_dir/cont-usr.tex fmtutil_cnf_dir=$TC_VARTEXMF/web2c fmtutil_cnf_file=$fmtutil_cnf_dir/fmtutil.cnf doc=$TC_TEXMFMAIN/doc FAQ=$doc/tetex/teTeX-FAQ # don't make ls-R files twice, so we check for a rehash option first: set x $SAVE_ARGS; shift case "$1" in rehash) mktexlsr; exit_return 0;; esac # no rehash option, so make sure we have all necessary ls-R files: for dir in $TC_TEXMFMAIN $TC_VARTEXMF; do if [ ! -r $dir/ls-R ]; then require_binary mktexlsr mktexlsr $dir fi done for i in "$dvips_conf_dir" "$pdftex_cnf_dir" "$formats" "$bases" "$mems" \ "$xdvi_app_dir" "$language_dat_dir" "$language_def_dir" "$cont_usr_dir" \ "$fmtutil_cnf_dir"; do test -d $i || $TC_MKTEXDIR "$i" done test -f $maketex_site_file || { if test -n "$TC_DFT_MKTEX_CNF" && test -f "$TC_DFT_MKTEX_CNF"; then cp "$TC_DFT_MKTEX_CNF" $maketex_site_file chmod u+w $maketex_site_file else touch $maketex_site_file fi $TC_MKTEXUPD $maketex_site_dir mktex.cnf } ##test -f $xdvi_app_file || { ## exist_test -f "$TC_DFT_XDVI_APP" "app-default file for xdvi" ## ## cp $TC_DFT_XDVI_APP $xdvi_app_file ## chmod u+w $xdvi_app_file ## $TC_MKTEXUPD $xdvi_app_dir XDvi ##} test -f $dvips_conf_dir/config.ps || { exist_test -f "$TC_DFT_CONFIG_PS" "default config file for dvips (config.ps)" cp $TC_DFT_CONFIG_PS $dvips_conf_dir/config.ps chmod u+w $dvips_conf_dir/config.ps $TC_MKTEXUPD $dvips_conf_dir config.ps } if test ! -f $language_dat_file; then exist_test -f "$TC_DFT_LANGUAGE_DAT" "language.dat file" cp $TC_DFT_LANGUAGE_DAT $language_dat_file chmod u+w $language_dat_file $TC_MKTEXUPD $language_dat_dir language.dat fi if test ! -f $language_def_file; then if test -f $TC_DFT_LANGUAGE_DEF; then cp $TC_DFT_LANGUAGE_DEF $language_def_file chmod u+w $language_def_file $TC_MKTEXUPD $language_def_dir language.def fi fi if test ! -f $cont_usr_file; then if test -f $TC_DFT_CONT_USR; then cp $TC_DFT_CONT_USR $cont_usr_file chmod u+w $cont_usr_file $TC_MKTEXUPD $cont_usr_dir cont-usr.tex fi fi if test ! -f $fmtutil_cnf_file; then exist_test -f "$TC_DFT_FMTUTIL_CNF" "fmtutil.cnf file" cp $TC_DFT_FMTUTIL_CNF $fmtutil_cnf_file chmod u+w $fmtutil_cnf_file $TC_MKTEXUPD $fmtutil_cnf_dir fmtutil.cnf fi locate_files test -d "$tmpdir" && { echo "$tmpdir: directory already exists."; exit_return 1; } trap ' rc=$? cd /tmp test -d "$tmpdir" && { rm -f "$tmpdir"/*; rmdir "$tmpdir"; } exit $rc ' 0 1 2 3 7 13 15 mkdir "$tmpdir" || exit_return 1 cd "$tmpdir" || exit_return 1 exist_test -d "$tmpdir" "tmpdir directory" EDIT=${VISUAL-${EDITOR-$std_editor}} PAGER=${PAGER-$std_pager} check_for_binary tcdialog >/dev/null dialogok=$? # we have called some shellfunctions, so for HP-UX's shell, we need # to set the positional parameters this again: set x $SAVE_ARGS; shift if [ $dialogok != 0 ] && [ $# = 0 ]; then set help fi #------------------ end: initialisation ----------------------------------- if test $# -ge 1; then cmd_mode ${1+"$@"} fi test -f $mems/mpost.mem || run_config_mp test -f $bases/mf.base || run_config_mf fmtutil --missing texlinks ${SILENT_TEXLINKS+-s} check_terminal cat <"$log" while true ; do #--title "TeX-Config main menu" \ run_dialog \ --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 12 \ "EXIT" 'exit' \ "CONF" 'show configuration' \ "REHASH" 'rebuild ls-R database' \ "FORMATS" 'formats' \ "HYPHEN" 'hyphenation' \ "MODE" 'default mode (xdvi/dvips/mf)' \ "XDVI" 'xdvi configuration' \ "DVIPS" 'dvips configuration' \ "FONT" 'directories for font creation' \ "DOC" 'rebuild html documentation' \ "FAQ" 'frequently asked questions + answers' \ "LOG" 'view logfile' \ 2>"$tmpmenu" case `cat "$tmpmenu"` in FAQ) cls; test -f $FAQ && <$FAQ eval $PAGER; fix_pager_more;; CONF) cls; print_setup;; PREF) setup_preferences ;; REHASH) cls; mktexlsr; locate_files ;; FORMATS) config_formats;; HYPHEN) config_tex;; MODE) get_default_mode;; XDVI) config_xdvi ;; DVIPS) config_dvips ;; FONT) setup_mt;; DOC) rebuild_doc;; LOG) cls; <"$log" eval $PAGER; fix_pager_more;; *) reset 2>/dev/null; stty sane 2>/dev/null; reset 2>/dev/null; cls; exit_return 0;; esac done -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/