Annotation of 43BSD/contrib/B/src/b/b.sh.gen, revision 1.1

1.1     ! root        1: : 'Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1984, 1985.'
        !             2: : '$Header: b.sh.gen,v 1.1 85/08/22 14:33:39 timo Exp $'
        !             3: :
        !             4: : 'Shell script to start B'
        !             5: :
        !             6: 
        !             7: IFS=
        !             8: PATH=/bin:/usr/bin:/usr/ucb:/usr/local:/usr/new
        !             9: export PATH
        !            10: 
        !            11: : 'Most variables use the construct ${var=default}, meaning that they'
        !            12: : 'are set to "default" only when they do not have a value initially.'
        !            13: : 'The user can override by setting these variables in the environment'
        !            14: 
        !            15: : 'B_LIB is the directory where b finds auxiliary binaries and data files.'
        !            16: : 'Filled in by make.'
        !            17: B_LIB=
        !            18: : 'BINT determines whether bint or bsmall will be used as interpreter.'
        !            19: : 'Filled in by ../../Setup.'
        !            20: BINT=
        !            21: 
        !            22: : 'B_INTERPRETER is the binary of the interpreter (passed to the editor)'
        !            23: : ${B_INTERPRETER=$B_LIB/$BINT}
        !            24: export B_INTERPRETER
        !            25: 
        !            26: : 'B_MESSAGES is where the interpreter finds its error messages'
        !            27: : ${B_MESSAGES=$B_LIB/Messages}
        !            28: export B_MESSAGES
        !            29: 
        !            30: : 'BEDITOR is the B editor to be used (must be a B editor, not vi etc.)'
        !            31: : ${BEDITOR=$B_LIB/bed}
        !            32: export BEDITOR
        !            33: 
        !            34: : 'BED_LIB is used by the B editor to find various files'
        !            35: : ${BED_LIB=$B_LIB}
        !            36: export BED_LIB
        !            37: 
        !            38: : 'BED_HELP is where the B editor finds its help file'
        !            39: : ${BED_HELP=$BED_LIB/Bed_help}
        !            40: export BED_HELP
        !            41: 
        !            42: : 'LPR is the lineprinter spooler'
        !            43: LPR=lpr
        !            44: 
        !            45: : 'MKSUGG makes the suggestion file for the editor'
        !            46: MKSUGG=$B_LIB/mksugg
        !            47: 
        !            48: : 'CONV creates a .b_perm with all B-units and targets found in it'
        !            49: CONV=$B_LIB/convert
        !            50: 
        !            51: : 'Test for TERMCAP.  Give default only if there is no /etc/termcap'
        !            52: case $TERMCAP in
        !            53: '')    if test -f /etc/termcap
        !            54:        then    : 'No need to set termcap'
        !            55:        else
        !            56:                TERMCAP=$B_LIB/termcap
        !            57:                export TERMCAP
        !            58:        fi;;
        !            59: esac
        !            60: 
        !            61: : 'Subroutine to print an error message for b -i/-o and exit'
        !            62: IO_ERR='echo \
        !            63: "*** There is something I don'\''t quite get in your call of $0
        !            64:     $0 $1
        !            65:     `echo $0 $1|sed s/./\ /g`^
        !            66: *** The problem is: no target where expected"
        !            67: exit 1'
        !            68: 
        !            69: : 'Convert old workspace format to new'
        !            70: if test ! -f .b_perm -a -f [\"\'\<\>=]?*
        !            71: then
        !            72:        if test -f .prmnv
        !            73:        then
        !            74:                echo '
        !            75: *** Just a moment!  It seems you have never used this version of B before in
        !            76: *** this workspace.  While you are reading this message, I will convert it
        !            77: *** to one with which the new B interpreter is more happy.
        !            78: ***
        !            79: *** One warning: the converted workspace is no longer compatible with the
        !            80: *** old version of B.  If you want to use that version in this workspace
        !            81: *** lateron, you will have to move the file ".prmnv_save" back to ".prmnv".
        !            82: *** The shell command "mv .prmnv_save .prmnv" will accomplish this.
        !            83: *** However, if you do this, you will loose any permanent targets created
        !            84: *** or modified while using the new version, so please make up your mind.
        !            85: '
        !            86:        else
        !            87:                echo '*** [Recovering lost permanent environment information]'
        !            88:        fi
        !            89:        if test -f =????????????*
        !            90:        then
        !            91:                echo '*** [Warning -- long target names may be truncated]'
        !            92:        fi
        !            93:        $CONV [\"\'\<\>=]?*
        !            94: fi
        !            95: 
        !            96: case $1 in
        !            97: '')    if test -t 0 -a -t 1 # -a -t 2
        !            98:        then
        !            99:                $MKSUGG
        !           100:                exec $BEDITOR
        !           101:        else
        !           102:                exec $B_INTERPRETER
        !           103:        fi;;
        !           104: -e)    BEDITOR=${EDITOR-/usr/ucb/vi}; export BEDITOR; exec $B_INTERPRETER;;
        !           105: -v)    BEDITOR=/usr/ucb/vi; export BEDITOR; exec $B_INTERPRETER;;
        !           106: -i)    case $2 in
        !           107:        '')     eval "$IO_ERR";;
        !           108:        *)      {
        !           109:                echo "PUT {} IN $2"
        !           110:                echo "WHILE 1=1: READ $2[#$2 + 1] RAW"
        !           111:                cat $3
        !           112:                } | $B_INTERPRETER >/dev/null 2>&1
        !           113:                : '(No output because there is always a complaint about EOF)'
        !           114:                ;;
        !           115:        esac
        !           116:        ;;
        !           117: -o)    case $2 in
        !           118:        '')     eval "$IO_ERR";;
        !           119:        *)      {
        !           120:                echo "FOR l'i'n'e\" IN $2:"
        !           121:                echo "    WRITE l'i'n'e\" /"
        !           122:                echo "DELETE l'i'n'e\""
        !           123:                } | $B_INTERPRETER >$3
        !           124:                ;;
        !           125:        esac
        !           126:        ;;
        !           127: -p)    $B_LIB/b_p|$LPR;;
        !           128: -l)    exec $B_LIB/b_p;;
        !           129: *)     if      test -f "$1"
        !           130:        then    exec $B_INTERPRETER "$@" -q
        !           131:        else
        !           132:                case $SHELL in
        !           133:                */csh) B=`basename $0`;;
        !           134:                *) B="$0";;
        !           135:                esac
        !           136:                echo 'To enter '$B' type "'$B'"
        !           137: to enter '$B' with the '`basename "${EDITOR-vi}"`' editor, type "'$B' -e"'
        !           138:                case $EDITOR in
        !           139:                ''|vi|*/vi) ;;
        !           140:                *) echo 'to enter '$B' with the vi editor, type "'$B' -v"';;
        !           141:                esac
        !           142:                echo 'to execute commands from a file, type "'$B' file"
        !           143: to input lines from a file to a text-table, type "'$B' -i table-name file"
        !           144: to output lines from a text-table to a file, type "'$B' -o table-name file"
        !           145: to print units on the line printer, type "'$B' -p"
        !           146: to print units on the terminal, type "'$B' -l"' >&2
        !           147:                exit 1
        !           148:        fi;;
        !           149: esac

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.