rsalz@bbn.com (Rich Salz) (12/21/90)
Submitted-by: Steven Pemberton <steven@cwi.nl> Posting-number: Volume 23, Issue 103 Archive-name: abc/part24 #! /bin/sh # This is a shell archive. Remove anything before this line, then feed it # into a shell via "sh file" or similar. To overwrite existing files, # type "sh file -c". # The tool that generated this appeared in the comp.sources.unix newsgroup; # send mail to comp-sources-unix@uunet.uu.net if you want that tool. # Contents: abc/b/DEP abc/bed/e1code.c abc/bed/e1lexi.c # abc/bhdrs/bedi.h abc/bhdrs/bfil.h abc/bint2/i2tar.c # abc/bio/i4bio.c abc/bio/i4bio.h abc/bio/i4out.c abc/boot/lang.h # abc/btr/e1etex.c abc/ch_all abc/ch_install abc/ch_messages # abc/doc/BugReport abc/doc/Structure abc/ehdrs/cell.h # abc/ehdrs/erro.h abc/ehdrs/trm.h abc/ex/README abc/ex/TryEditor # abc/ex/generate.out abc/ihdrs/i2exp.h abc/ihdrs/i3env.h # abc/ihdrs/i3int.h abc/scripts/Change abc/scripts/Collect # abc/stc/DEP abc/tc/Makefile abc/tc/tc2.c abc/uhdrs/conf.h # abc/uhdrs/dir.h abc/ukeys/abckeys_2621 abc/ukeys/abckeys_5620 # abc/ukeys/abckeys_5620-2 abc/ukeys/abckeys_5620-e # abc/ukeys/abckeys_adm31 abc/unix/u1edit.c abc/unix/u1os.c # Wrapped by rsalz@litchi.bbn.com on Mon Dec 17 13:28:28 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH echo If this archive is complete, you will see the following message: echo ' "shar: End of archive 24 (of 25)."' if test -f 'abc/b/DEP' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/b/DEP'\" else echo shar: Extracting \"'abc/b/DEP'\" \(1069 characters\) sed "s/^X//" >'abc/b/DEP' <<'END_OF_FILE' Xb1file.o: b1file.c Xb1file.o: ../bhdrs/b.h Xb1file.o: ../uhdrs/osconf.h Xb1file.o: ../uhdrs/os.h Xb1file.o: ../uhdrs/conf.h Xb1file.o: ../uhdrs/config.h Xb1file.o: ../bhdrs/bfil.h Xb1file.o: ../bhdrs/bmem.h Xb1grab.o: b1grab.c Xb1grab.o: ../bhdrs/b.h Xb1grab.o: ../uhdrs/osconf.h Xb1grab.o: ../uhdrs/os.h Xb1grab.o: ../uhdrs/conf.h Xb1grab.o: ../uhdrs/config.h Xb1grab.o: ../bhdrs/bint.h Xb1grab.o: ../bhdrs/bedi.h Xb1grab.o: ../bhdrs/bmem.h Xb1grab.o: ../bhdrs/bobj.h Xb1memo.o: b1memo.c Xb1memo.o: ../bhdrs/b.h Xb1memo.o: ../uhdrs/osconf.h Xb1memo.o: ../uhdrs/os.h Xb1memo.o: ../uhdrs/conf.h Xb1memo.o: ../uhdrs/config.h Xb1memo.o: ../bhdrs/bmem.h Xb1mess.o: b1mess.c Xb1mess.o: ../bhdrs/b.h Xb1mess.o: ../uhdrs/osconf.h Xb1mess.o: ../uhdrs/os.h Xb1mess.o: ../uhdrs/conf.h Xb1mess.o: ../uhdrs/config.h Xb1mess.o: ../bhdrs/bfil.h Xb1mess.o: ../bhdrs/bmem.h Xb1mess.o: ../bhdrs/bobj.h Xb1outp.o: b1outp.c Xb1outp.o: ../bhdrs/b.h Xb1outp.o: ../uhdrs/osconf.h Xb1outp.o: ../uhdrs/os.h Xb1outp.o: ../uhdrs/conf.h Xb1outp.o: ../uhdrs/config.h Xb1outp.o: ../bhdrs/bmem.h Xgetopt.o: getopt.c Xgetopt.o: ../uhdrs/os.h END_OF_FILE if test 1069 -ne `wc -c <'abc/b/DEP'`; then echo shar: \"'abc/b/DEP'\" unpacked with wrong size! fi # end of 'abc/b/DEP' fi if test -f 'abc/bed/e1code.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/bed/e1code.c'\" else echo shar: Extracting \"'abc/bed/e1code.c'\" \(833 characters\) sed "s/^X//" >'abc/bed/e1code.c' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1988. */ X X/* X * Compaction scheme for characters to save space in grammar tables X * by combining characters with similar properties (digits, l.c. letters). X */ X X#include "b.h" X#include "code.h" X XVisible char code_array[RANGE]; XVisible char invcode_array[RANGE]; XVisible int lastcode= 0; X XVisible Procedure initcodes() { X int c; X X code_array['\n'] = ++lastcode; X invcode_array[lastcode] = '\n'; X for (c = ' '; c <= '0'; ++c) { X code_array[c] = ++lastcode; X invcode_array[lastcode] = c; X } X for (; c <= '9'; ++c) X code_array[c] = lastcode; X for (; c <= 'a'; ++c) { X code_array[c] = ++lastcode; X invcode_array[lastcode] = c; X } X for (; c <= 'z'; ++c) X code_array[c] = lastcode; X for (; c < RANGE; ++c) { X code_array[c] = ++lastcode; X invcode_array[lastcode] = c; X } X} END_OF_FILE if test 833 -ne `wc -c <'abc/bed/e1code.c'`; then echo shar: \"'abc/bed/e1code.c'\" unpacked with wrong size! fi # end of 'abc/bed/e1code.c' fi if test -f 'abc/bed/e1lexi.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/bed/e1lexi.c'\" else echo shar: Extracting \"'abc/bed/e1lexi.c'\" \(1145 characters\) sed "s/^X//" >'abc/bed/e1lexi.c' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1986. */ X X/* X * B editor -- Lexical elements (identifiers, keywords, numbers etc.) X */ X X#include "b.h" X#include "bedi.h" X#include "bobj.h" X#include "node.h" X#include "tabl.h" X X/* X * Table defining lexical elements is generated by 'mktable' in e1tabl.c. X * X * ********** Indexed by (symbol-LEXICAL). X */ X X X/* X * Test whether character `c' may start a lexical element with X * symbolic name `lex'. X */ X XVisible bool maystart(c, ilex) char c; int ilex; { X string cp; X X ilex-= LEXICAL; X Assert(0 <= ilex && ilex < NLEX); X if (!isascii(c) || c != ' ' && !isprint(c)) X return No; X cp= lextab[ilex].l_start; X if (*cp == '^') X return (strchr(cp+1, c) == NULL); X return (strchr(cp, c) != NULL); X} X X X/* X * Test whether character `c' may continue a lexical element with X * symbolic name `ilex'. X */ X XVisible bool maycontinue(c, ilex) char c; int ilex; { X string cp; X X ilex-= LEXICAL; X Assert(0 <= ilex && ilex < NLEX); X if (!isascii(c) || c != ' ' && !isprint(c)) X return No; X cp= lextab[ilex].l_continue; X if (*cp == '^') X return (strchr(cp+1, c) == NULL); X return (strchr(cp, c) != NULL); X} END_OF_FILE if test 1145 -ne `wc -c <'abc/bed/e1lexi.c'`; then echo shar: \"'abc/bed/e1lexi.c'\" unpacked with wrong size! fi # end of 'abc/bed/e1lexi.c' fi if test -f 'abc/bhdrs/bedi.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/bhdrs/bedi.h'\" else echo shar: Extracting \"'abc/bhdrs/bedi.h'\" \(1100 characters\) sed "s/^X//" >'abc/bhdrs/bedi.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1988. */ X X#define CMDPROMPT ">>> " /* Prompt user for immediate command */ X X/* Types */ X X#define Nod 'N' X#define Pat 'P' X#define Etex 'E' X /* text values in the kernel of the editor are stored X * according to the lineair model. X */ X X#define Is_Node(n) (Type(n) == Nod) X#define Is_Pat(p) (Type(p) == Pat) X#define Is_etext(v) (Type(v) == Etex) X Xtypedef struct node *node; Xtypedef struct path *path; Xtypedef int markbits; X Xstruct node { X HEADER; X markbits n_marks; X intlet n_width; X intlet n_symbol; X node n_child[1]; X}; X X#define Nnil ((node) Vnil) X X#define NodOffset (sizeof(int) + 2*sizeof(intlet)) X Xstruct path { X HEADER; X path p_parent; X node p_tree; X intlet p_ichild; X intlet p_ycoord; X intlet p_xcoord; X intlet p_level; X markbits p_addmarks; X markbits p_delmarks; X}; X X#define NilPath ((path) Vnil) X X Xextern int doctype; /* type of document edited by editdocument() */ X#define D_perm 0 /* a how-to definition or permanent location */ X#define D_input 1 /* input for READ or question */ X#define D_immcmd 2 /* editing immediate command */ END_OF_FILE if test 1100 -ne `wc -c <'abc/bhdrs/bedi.h'`; then echo shar: \"'abc/bhdrs/bedi.h'\" unpacked with wrong size! fi # end of 'abc/bhdrs/bedi.h' fi if test -f 'abc/bhdrs/bfil.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/bhdrs/bfil.h'\" else echo shar: Extracting \"'abc/bhdrs/bfil.h'\" \(1010 characters\) sed "s/^X//" >'abc/bhdrs/bfil.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1988. */ X X/* MESSFILE and HELPFILE in ../?hdrs/dest.h. */ X X#define KEYSFILE "abc.key" X X#define PERMFILE "perm.abc" X#define SUGGFILE "suggest.abc" X#define POSFILE "position.abc" X#define TYPESFILE "types.abc" X X#define BUFFILE "copybuf.abc" X X#define WSGROUPFILE "wsgroup.abc" X#define CURWSFILE "curws.abc" X X#define TEMPFILE "temp.abc" X#define TEMP1FILE "temp1.abc" X X#ifndef BWSNAME X#define BWSNAME "abc" X#endif X Xextern string messfile; Xextern string keysfile; Xextern string helpfile; X Xextern string permfile; Xextern string suggfile; Xextern string posfile; Xextern string typesfile; Xextern string buffile; X Xextern string wsgroupfile; Xextern string curwsfile; X Xextern string tempfile; Xextern string temp1file; X Xextern string editor; X Xextern char *makepath(); Xextern char *savepath(); X/* extern Procedure freepath(); */ X Xextern char *startdir; Xextern char *bwsdefault; Xextern char *curdir(); X Xchar *f_getline(); /* return line from file including \n */ END_OF_FILE if test 1010 -ne `wc -c <'abc/bhdrs/bfil.h'`; then echo shar: \"'abc/bhdrs/bfil.h'\" unpacked with wrong size! fi # end of 'abc/bhdrs/bfil.h' fi if test -f 'abc/bint2/i2tar.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/bint2/i2tar.c'\" else echo shar: Extracting \"'abc/bint2/i2tar.c'\" \(701 characters\) sed "s/^X//" >'abc/bint2/i2tar.c' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1986. */ X X#include "b.h" X#include "bint.h" X#include "bobj.h" X#include "i2par.h" X#include "i2nod.h" X XForward parsetree singtarg(); X XVisible parsetree targ(q) txptr q; { X return collateral(q, singtarg); X} X XHidden parsetree singtarg(q) txptr q; { X parsetree v; value t; X skipsp(&tx); X if (nothing(q, MESS(2500, "nothing where address expected"))) X return NilTree; X if (open_sign) v= compound(q, targ); X else if (is_tag(&t)) v= node2(TAG, t); X else { X parerr(MESS(2501, "no address where expected")); X tx= q; X return NilTree; X } X selection(q, &v); X trim_target(q, &v); X upto1(q, MESS(2502, "something unexpected in address")); X return v; X} END_OF_FILE if test 701 -ne `wc -c <'abc/bint2/i2tar.c'`; then echo shar: \"'abc/bint2/i2tar.c'\" unpacked with wrong size! fi # end of 'abc/bint2/i2tar.c' fi if test -f 'abc/bio/i4bio.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/bio/i4bio.c'\" else echo shar: Extracting \"'abc/bio/i4bio.c'\" \(745 characters\) sed "s/^X//" >'abc/bio/i4bio.c' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1988. */ X X#include "b.h" X#include "bint.h" X#include "bmem.h" X#include "bobj.h" X#include "i2par.h" X#include "i3scr.h" X#include "i3sou.h" X#include "i4bio.h" X XVisible Procedure abcio(option, name_arg) char option, *name_arg; { X sv_ifile= ifile= stdin; X X switch (option) { X case 'i': X abcinput(name_arg); X break; X case 'o': X abcoutput(name_arg); X break; X case 'l': X abclist(stdout); X break; X case 'r': X if (!ws_recovered) X rec_workspace(); X break; X case 'R': X if (!gr_recovered) X rec_wsgroup(); X break; X } X} X XVisible Procedure bioerr(m) int m; { X putmess(errfile, m); X} X XVisible Procedure bioerrV(m, v) int m; value v; { X putSmess(errfile, m, strval(v)); X} END_OF_FILE if test 745 -ne `wc -c <'abc/bio/i4bio.c'`; then echo shar: \"'abc/bio/i4bio.c'\" unpacked with wrong size! fi # end of 'abc/bio/i4bio.c' fi if test -f 'abc/bio/i4bio.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/bio/i4bio.h'\" else echo shar: Extracting \"'abc/bio/i4bio.h'\" \(1189 characters\) sed "s/^X//" >'abc/bio/i4bio.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1988. */ X Xvalue get_names(); Xbool abcfile(); Xbool abcworkspace(); Xbool unitfile(); Xbool targetfile(); Xchar *base_fname(); Xbool typeclash(); X Xextern bool ws_recovered; Xextern bool gr_recovered; X X#define IO_NAME MESS(4600, "*** %s isn't the name of a location\n") X#define O_INIT MESS(4601, "*** %s hasn't been initialised\n") X#define O_TABLE MESS(4602, "*** %s isn't a table\n") X#define R_ERROR MESS(4603, "*** Errors while recovering workspace:\n") X#define R_TNAME MESS(4604, "*** %s: cannot derive a location name\n") X#define R_FREAD MESS(4605, "*** %s: cannot read this file\n") X#define R_UNAME MESS(4606, "*** %s: cannot derive a how-to name\n") X#define R_RENAME MESS(4607, "*** %s: cannot rename this file\n") X#define R_EXIST MESS(4608, "*** %s: the ABC name for this file is already in use\n") X#define R_FWRITE MESS(4609, "*** %s: cannot create this file\n") X#define G_ERROR MESS(4610, "*** Errors while recovering the workspace index\n") X#define G_DNAME MESS(4611, "*** %s: cannot derive an ABC name for this workspace\n") X#define G_EXIST MESS(4612, "*** %s: the ABC name for this workspace is already in use\n") END_OF_FILE if test 1189 -ne `wc -c <'abc/bio/i4bio.h'`; then echo shar: \"'abc/bio/i4bio.h'\" unpacked with wrong size! fi # end of 'abc/bio/i4bio.h' fi if test -f 'abc/bio/i4out.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/bio/i4out.c'\" else echo shar: Extracting \"'abc/bio/i4out.c'\" \(953 characters\) sed "s/^X//" >'abc/bio/i4out.c' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1988. */ X X#include "b.h" X#include "bint.h" X#include "bmem.h" X#include "bobj.h" X#include "i3env.h" X#include "i3scr.h" X#include "i3sou.h" X#include "i4bio.h" X X/* write_table_of_texts */ X XVisible Procedure abcoutput(name_arg) char *name_arg; { X value name, pname; X value *aa; X value v; X intlet k, len; X X name= mk_text(name_arg); X if (!is_abcname(name)) { X bioerrV(IO_NAME, name); X release(name); X return; X } X pname= permkey(name, Tar); X if (!p_exists(pname, &aa)) { X bioerrV(O_INIT, name); X release(name); X release(pname); X return; X } X release(pname); X v= getval(*aa, In_tarval); X if (!still_ok) { X release(name); X release(v); X return; X } X if (!Is_table(v)) { X bioerrV(O_TABLE, name); X release(name); X release(v); X return; X } X at_nwl= Yes; X len= length(v); X for (k= 0; k<len && !Interrupted(); ++k) { X wri(*assoc(v, k), No, Yes, No); X newline(); X } X release(name); X release(v); X} END_OF_FILE if test 953 -ne `wc -c <'abc/bio/i4out.c'`; then echo shar: \"'abc/bio/i4out.c'\" unpacked with wrong size! fi # end of 'abc/bio/i4out.c' fi if test -f 'abc/boot/lang.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/boot/lang.h'\" else echo shar: Extracting \"'abc/boot/lang.h'\" \(1192 characters\) sed "s/^X//" >'abc/boot/lang.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1987. */ X X/* If you change this file, don't forget ../bhdrs/b0lan.h and bint2/i2dis.c */ X X#define R_HOW_TO "HOW TO " X#define R_PASS "PASS" X#define R_PUT "PUT " X#define R_IN_put " IN " X#define R_INSERT "INSERT " X#define R_IN_insert " IN " X#define R_REMOVE "REMOVE " X#define R_FROM_remove " FROM " X#define R_SET_RANDOM "SET RANDOM " X#define R_DELETE "DELETE " X#define R_CHECK "CHECK " X#define R_SHARE "SHARE " X#define R_WRITE "WRITE " X#define R_READ "READ " X#define R_EG " EG " X#define R_RAW " RAW" X#define R_IF "IF " X#define R_WHILE "WHILE " X#define R_FOR "FOR " X#define R_IN_for " IN " X#define R_SELECT "SELECT: " X#define R_ELSE "ELSE" X#define R_QUIT "QUIT" X#define R_RETURN "RETURN " X#define R_REPORT "REPORT " X#define R_SUCCEED "SUCCEED" X#define R_FAIL "FAIL" X#define R_AND "AND " X#define R_OR "OR " X#define R_NOT "NOT " X#define R_SOME "SOME " X#define R_EACH "EACH " X#define R_NO "NO " X#define R_IN_quant " IN " X#define R_PARSING " PARSING " X#define R_HAS " HAS " X X#ifdef GFX X#define R_SPACE "SPACE " X#define R_TO_space " TO " X#define R_LINE "LINE " X#define R_TO_line " TO " X#define R_CLEAR "CLEAR" X#endif END_OF_FILE if test 1192 -ne `wc -c <'abc/boot/lang.h'`; then echo shar: \"'abc/boot/lang.h'\" unpacked with wrong size! fi # end of 'abc/boot/lang.h' fi if test -f 'abc/btr/e1etex.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/btr/e1etex.c'\" else echo shar: Extracting \"'abc/btr/e1etex.c'\" \(1152 characters\) sed "s/^X//" >'abc/btr/e1etex.c' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1986. */ X X#include "b.h" X#include "bedi.h" X#include "bobj.h" X#include "etex.h" X#include "bmem.h" X XVisible int e_length(v) value v; { X return Length(v); X} X XVisible value mk_etext(m) string m; { X value v; intlet len= strlen(m); X v= grab(Etex, len); X strcpy(Str(v), m); X return v; X} X XVisible char e_ncharval(n, v) int n; value v; { X return *(Str(v)+n-1); X} X XVisible string e_strval(v) value v; { X return Str(v); X} X X XVisible string e_sstrval(v) value v; { X return (string) savestr(Str(v)); X} X XVisible Procedure e_fstrval(s) string s; { X freestr(s); X} X X XVisible value e_icurtail(v, k) value v; int k; { X value w= grab(Etex, k); X strncpy(Str(w), Str(v), k); X *(Str(w) + k)= '\0'; X return w; X} X X XVisible value e_ibehead(v, k) value v; int k; { X value w= grab(Etex, Length(v) - (k - 1)); X strcpy(Str(w), Str(v) + k - 1); X return w; X} X X X XVisible value e_concat(s, t) value s, t; { X value v= grab(Etex, Length(s) + Length(t)); X strcpy(Str(v), Str(s)); X strcpy(Str(v) + Length(s), Str(t)); X return v; X} X XVisible Procedure e_concto(s, t) value *s, t; { X value v= *s; X *s= e_concat(*s, t); X release(v); X} END_OF_FILE if test 1152 -ne `wc -c <'abc/btr/e1etex.c'`; then echo shar: \"'abc/btr/e1etex.c'\" unpacked with wrong size! fi # end of 'abc/btr/e1etex.c' fi if test -f 'abc/ch_all' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ch_all'\" else echo shar: Extracting \"'abc/ch_all'\" \(753 characters\) sed "s/^X//" >'abc/ch_all' <<'END_OF_FILE' X: 'Check if make all went allright.' X Xmsg="$1" Xhlp="$2" Xdestroot="$3" X Xerrors="no" X Xecho " " X Xfor f in abc abckeys Xdo X if test ! -s $f X then X echo "*** Failed to make $f" X errors="yes" X fi Xdone X Xcase $msg in Xabc.mse) X if test ! -s abc.mse X then X echo "*** Failed to make messages file abc.mse" X errors="yes" X fi;; Xesac X Xcase $hlp in Xabc.hlp) X if test ! -s abc.hlp X then X echo "*** Failed to make help file abc.hlp" X errors="yes" X fi;; Xesac X Xcase $errors in Xyes) X exit 1 X ;; Xno) X case $destroot in X '') echo "The 'abc' command should now work." X echo "You can test the ABC interpreter with 'make examples'." X ;; X *) echo "That 'make all' went well." X echo "Say 'make install' to install the ABC system in $destroot." X ;; X esac X exit 0 X ;; Xesac END_OF_FILE if test 753 -ne `wc -c <'abc/ch_all'`; then echo shar: \"'abc/ch_all'\" unpacked with wrong size! fi chmod +x 'abc/ch_all' # end of 'abc/ch_all' fi if test -f 'abc/ch_install' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ch_install'\" else echo shar: Extracting \"'abc/ch_install'\" \(1009 characters\) sed "s/^X//" >'abc/ch_install' <<'END_OF_FILE' X: 'Check if make install went allright.' X Xmsg="$1" Xhlp="$2" Xabcdir="$3" Xlibdir="$4" Xmandir="$5" Xdestroot="$6" X Xerrors="no" X Xecho " " X Xfor f in abc abckeys Xdo X if test ! -s $destroot$abcdir/$f X then X echo "*** Failed to install '$f' in $destroot$abcdir" X errors="yes" X fi Xdone Xfor f in $msg $hlp Xdo X if test ! -s $destroot$libdir/$f X then X echo "*** Failed to install '$f' in $destroot$libdir" X errors="yes" X fi Xdone X Xif test ! -s $destroot$mandir/abc.1 Xthen X echo "*** Failed to install 'abc.1' manual in $destroot$mandir" X errors="yes" Xfi X Xcase $errors in Xyes) X exit 1 X ;; Xno) X echo "The ABC system is installed." X case $destroot in X '') echo "You can clean up with 'make clean'.";; X *) echo "You can copy from $destroot to the target machine." X echo "To test ABC there also copy ./ex there," X echo "and use ./ex/DoExamples and ./ex/TryEditor" X echo "to test the interpreter and the editor, respectively." X echo "If all is well, you can clean up here with 'make clean'." X ;; X esac X exit 0 X ;; Xesac END_OF_FILE if test 1009 -ne `wc -c <'abc/ch_install'`; then echo shar: \"'abc/ch_install'\" unpacked with wrong size! fi chmod +x 'abc/ch_install' # end of 'abc/ch_install' fi if test -f 'abc/ch_messages' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ch_messages'\" else echo shar: Extracting \"'abc/ch_messages'\" \(722 characters\) sed "s/^X//" >'abc/ch_messages' <<'END_OF_FILE' X: Check whether makefile is properly edited X Xcase $1 in Xabc.msg) X echo "First redefine MESSAGES=abc.mse in the Makefile." >&2 X echo "Otherwise 'make all' would still use the distributed abc.msg." >&2 X exit 1;; Xabc.mse) X echo "Collecting error messages from source files to abc.mse." >&2 X echo "After completion use 'make all' to incorporate them into abc." >&2 X exit 0;; X*) X if test -s "$1" X then X echo "Use 'make all' to incorporate your own messages file $1 into abc." >&2 X else X echo "I see no messages file '$1' here." >&2 X echo "You must create it yourself." >&2 X fi X echo " " >&2 X echo "Or redefine MESSAGES=abc.mse in the makefile" >&2 X echo "if you want a new messages file from the source." >&2 X exit 1;; Xesac END_OF_FILE if test 722 -ne `wc -c <'abc/ch_messages'`; then echo shar: \"'abc/ch_messages'\" unpacked with wrong size! fi chmod +x 'abc/ch_messages' # end of 'abc/ch_messages' fi if test -f 'abc/doc/BugReport' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/doc/BugReport'\" else echo shar: Extracting \"'abc/doc/BugReport'\" \(720 characters\) sed "s/^X//" >'abc/doc/BugReport' <<'END_OF_FILE' XBug Report X XFROM X XName: X XFirm/Institute: X XAddress: X X X XTelephone: X XInternet network address: X XMachine Type: O Vax O Sun O PDP O other: ....... X XOperating System: O 4.3 BSD O Version 7 O System V O other: ....... X X========================================================================== XABC Release 1.02.01. X========================================================================== X XFAULTY PROGRAM: X XDESCRIPTION OF FAULT: X X X X X X X X X XREPEAT BY: X X X X X X X X X========================================================================== X XSend to X X ABC Group X CWI / AA X POB 4079 X 1009 AB Amsterdam X The Netherlands X Xor by electronic mail to X X abc@cwi.nl X XFor older mailers use: X X mcvax!abc.uucp X END_OF_FILE if test 720 -ne `wc -c <'abc/doc/BugReport'`; then echo shar: \"'abc/doc/BugReport'\" unpacked with wrong size! fi # end of 'abc/doc/BugReport' fi if test -f 'abc/doc/Structure' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/doc/Structure'\" else echo shar: Extracting \"'abc/doc/Structure'\" \(1254 characters\) sed "s/^X//" >'abc/doc/Structure' <<'END_OF_FILE' X# Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1988. X X=========================================================================== X= The Directory Structure of Release 1.00 of the Implementation of ABC. = X=========================================================================== X X= X= editor-interpreter directories: X= X Xb low level support (memory grabbing, option handling, etc) X Xbhdrs interface include files for same X Xbed editor source files X Xehdrs editor include files X Xbint1 interpreter module for compound and number values X Xbtr module for text, list and table values, using B trees X Xlin module for text, list and table values, using linear structures X Xbint2 interpreter parser X Xstc static type check X Xbint3 interpreter runtime system X Xihdrs interpreter include files X Xbio support for -[iolrR] options (interface with operating system) X Xuhdrs unix specific header files X Xunix unix specific source files X X= X= other directories: X= X Xkeys source for utility abckeys (abc -k) X Xukeys default keys definition files for some terminals X Xscripts shell scripts for installation X Xboot booting editor source files with grammar info X Xex example B workspaces X Xdoc documentation X Xtc public domain sources for the termcap library needed by the editor END_OF_FILE if test 1254 -ne `wc -c <'abc/doc/Structure'`; then echo shar: \"'abc/doc/Structure'\" unpacked with wrong size! fi # end of 'abc/doc/Structure' fi if test -f 'abc/ehdrs/cell.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ehdrs/cell.h'\" else echo shar: Extracting \"'abc/ehdrs/cell.h'\" \(893 characters\) sed "s/^X//" >'abc/ehdrs/cell.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1986. */ X X/* X * B editor -- Definitions for linked lists of screen lines, baptized `cells'. X * (This is NOT an abstract data type!) X */ X Xstruct cell { X struct cell *c_link; X node c_data; X short c_onscreen; X short c_oldindent; X short c_newindent; X short c_length; X char c_oldvhole; X char c_newvhole; /* Yes if this line contains a `vhole' */ X char c_oldfocus; X char c_newfocus; /* Yes if this line contains underlining */ X}; X Xtypedef struct cell cell; X X#define Cnil ((cell*) NULL) X X#define Nowhere (-9999) X X#define SpaceRound(x) ((indent + (x) + llength - 1) / llength) X#define Space(p) \ X SpaceRound((p)->c_length + (p)->c_newindent + (p)->c_newvhole) X#define Oldspace(p) \ X SpaceRound((p)->c_length + (p)->c_oldindent + (p)->c_oldvhole) X Xcell *replist(); Xcell *build(); X Xextern int llength; Xextern int winheight; Xextern int indent; END_OF_FILE if test 893 -ne `wc -c <'abc/ehdrs/cell.h'`; then echo shar: \"'abc/ehdrs/cell.h'\" unpacked with wrong size! fi # end of 'abc/ehdrs/cell.h' fi if test -f 'abc/ehdrs/erro.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ehdrs/erro.h'\" else echo shar: Extracting \"'abc/ehdrs/erro.h'\" \(970 characters\) sed "s/^X//" >'abc/ehdrs/erro.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1986. */ X X/* X * B editor -- User (error) messages collected together. X */ X X#define COPY_EMPTY MESS(6000, "Empty copy buffer") X#define READ_BAD MESS(6001, "Trouble with your how-to, see last line. Hit [interrupt] if you don't want this") X#define EDIT_TABS MESS(6002, "Spaces and tabs mixed for indentation; check your program layout") X#define EXIT_HOLES MESS(6003, "There are still holes left. Please fill or delete these first.") X#define GOTO_BAD MESS(6004, "I cannot [goto] that position") X#define GOTO_OUT MESS(6005, "Sorry, I could not [goto] that position") X#define GOTO_REC MESS(6006, "You can't use [goto] in recording mode") X#define INS_BAD MESS(6007, "Cannot insert '%c'") X#define PLB_NOK MESS(6008, "No keystrokes recorded") X#define REC_OK MESS(6009, "Keystrokes recorded, use [play] to play back") X#define REDO_OLD MESS(6010, "This redo brought you to an older version. Use [undo] to cancel") X END_OF_FILE if test 970 -ne `wc -c <'abc/ehdrs/erro.h'`; then echo shar: \"'abc/ehdrs/erro.h'\" unpacked with wrong size! fi # end of 'abc/ehdrs/erro.h' fi if test -f 'abc/ehdrs/trm.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ehdrs/trm.h'\" else echo shar: Extracting \"'abc/ehdrs/trm.h'\" \(938 characters\) sed "s/^X//" >'abc/ehdrs/trm.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1986. */ X X/* X * Terminal capabilities. These correspond to bits set by trmstart in its X * parameter flags parameter. X */ X X#define HAS_STANDOUT 1 /* Terminal has inverse video or underline */ X#define CAN_SCROLL 2 /* Terminal can insert/delete lines */ X#define CAN_OPTIMISE 4 /* Terminal can insert/delete characters */ X#define CAN_SENSE 8 /* Terminal can send cursor position */ X X/* X * Error codes returned by trmstart. X */ X X#define TE_OK 0 /* No errors */ X#define TE_TWICE 1 /* Trmstart called again */ X#define TE_NOTERM 2 /* $TERM not set or empty */ X#define TE_BADTERM 3 /* $TERM not found in termcap database */ X#define TE_DUMB 4 /* Terminal too dumb */ X#define TE_NOTTY 5 /* Stdin not a tty or cannot open "/etc/tty" */ X#define TE_NOMEM 6 /* Can't get enough memory */ X#define TE_BADSCREEN 7 /* Bad $SCREEN */ X#define TE_OTHER 8 /* This and higher are reserved errors */ END_OF_FILE if test 938 -ne `wc -c <'abc/ehdrs/trm.h'`; then echo shar: \"'abc/ehdrs/trm.h'\" unpacked with wrong size! fi # end of 'abc/ehdrs/trm.h' fi if test -f 'abc/ex/README' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ex/README'\" else echo shar: Extracting \"'abc/ex/README'\" \(793 characters\) sed "s/^X//" >'abc/ex/README' <<'END_OF_FILE' XThe subdirectories here represent ABC workspaces, with example ABC how-to's. X XWith DoExamples, the ABC interpreter in .. is tested (via the shell Xcommand '../abc') on the following four examples: X X generate generates new sentences based on those supplied X by the user; X hanoi the towers of hanoi; X pi calculates the value of pi, using the unbounded X arithmetic of ABC; X xref a cross reference generator. X XFor more information on these programs, see the B Newsletter, Issue 2. X XThe ABC editor can only be tested by calling ../abc interactively, as Xis done by TryEditor. XFor this the 'try' workspace has been created from the 'generate' example, Xso you can always regenerate it with: X X cd ./generate X cp * ../try X XThe file ../README2 tells you how to try the ABC editor. END_OF_FILE if test 793 -ne `wc -c <'abc/ex/README'`; then echo shar: \"'abc/ex/README'\" unpacked with wrong size! fi # end of 'abc/ex/README' fi if test -f 'abc/ex/TryEditor' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ex/TryEditor'\" else echo shar: Extracting \"'abc/ex/TryEditor'\" \(973 characters\) sed "s/^X//" >'abc/ex/TryEditor' <<'END_OF_FILE' X: 'test ABC editor' X Xcase $1 in Xlocal) abc=../abc;; X*) abc=abc;; Xesac X Xcat <<EOF XYou're about to try the ABC editor. X XFirst wait for the prompt '>>> ?' to appear. XThen press 's' to get 'S?ELECT:'. XNext press 't' to see 'ST?ART'. XNow press the [TAB]-key to accept this suggestion. XFinally press the [RETURN]-key to start execution. X XABC will prompt with '?' for some lines of text, until you type an empty line. XAfter some time it will then generate a small poem from your twisted text. X XYou can undo any change by pressing [BACKSPACE]. XYou can get help with ? or [ESC]-?. XYou can leave the ABC editor with [ESC]-[ESC]. XYou can leave 'abc' by typing QUIT. X XSee 'HOW TO TRY THE ABC EDITOR' in README2 for more information. X XLoading ABC ... X XEOF X X$abc -W `pwd` -w try X Xecho " " Xecho "If you are satisfied about the ABC editor" Xcase $1 in Xlocal) echo "you can make ABC public with 'make install'.";; X*) echo "you can clean on the compilation machine with 'make clean'.";; Xesac END_OF_FILE if test 973 -ne `wc -c <'abc/ex/TryEditor'`; then echo shar: \"'abc/ex/TryEditor'\" unpacked with wrong size! fi chmod +x 'abc/ex/TryEditor' # end of 'abc/ex/TryEditor' fi if test -f 'abc/ex/generate.out' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ex/generate.out'\" else echo shar: Extracting \"'abc/ex/generate.out'\" \(441 characters\) sed "s/^X//" >'abc/ex/generate.out' <<'END_OF_FILE' XMary had a little lamb, XIts fleece was white as snow, XAnd everywhere that Mary went, XThat lamb was sure to go. X XIts whittle as whittle that lamb, XMarywhittleece to go. XIts sure as snow, XThat Mary wherywhery was went, X XThat Mary hat Marywhere to go. XIts was sure that lamb was fle lamb, XIts snow, XIts sure lite to go. X XAnd a lite went, XAnd evere a lite to go. XAnd evere where thad every was was where to go. XMary where thad a lamb was went, X END_OF_FILE if test 441 -ne `wc -c <'abc/ex/generate.out'`; then echo shar: \"'abc/ex/generate.out'\" unpacked with wrong size! fi # end of 'abc/ex/generate.out' fi if test -f 'abc/ihdrs/i2exp.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ihdrs/i2exp.h'\" else echo shar: Extracting \"'abc/ihdrs/i2exp.h'\" \(1136 characters\) sed "s/^X//" >'abc/ihdrs/i2exp.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1986. */ X X/* General definitions for parsing expressions */ X X#ifdef macintosh X/* Avoid conflict with extra reserved word: */ X#define comp b_comp X#endif X Xtypedef struct { X parsetree *stack; X parsetree *sp; X parsetree *top; X int nextend; X char level; /* PARSER or FIXER */ X char /* bool */ prop; /* Yes while fixing left expr dya pred */ X intlet nfield; /* fieldnr unparsed node during fixing */ X} expadm; X X#define Stack(adm) (adm->stack) X#define Sp(adm) (adm->sp) X#define Top(adm) (adm->top) X#define Nextend(adm) (adm->nextend) X#define Level(adm) (adm->level) X#define Prop(adm) (adm->prop) X#define Nfld(adm) (adm->nfield) X X#define N_EXP_STACK 15 X#define N_LTA_STACK 100 X X#define Pop(adm) *--Sp(adm) X X#define PARSER 'p' X#define FIXER 'f' X X#define Bottom "$" X X#define Dya_opr(v) (Valid(v) && Is_compound(v)) X X/************************************************************************/ X Xstruct prio { X string fun; X char adic; X int L, H; X}; X X#define P_mon '1' X#define P_dya '2' X X#define dprio(i) pprio(i, P_dya) X#define mprio(i) pprio(i, P_mon) X Xstruct prio * pprio(); X X END_OF_FILE if test 1136 -ne `wc -c <'abc/ihdrs/i2exp.h'`; then echo shar: \"'abc/ihdrs/i2exp.h'\" unpacked with wrong size! fi # end of 'abc/ihdrs/i2exp.h' fi if test -f 'abc/ihdrs/i3env.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ihdrs/i3env.h'\" else echo shar: Extracting \"'abc/ihdrs/i3env.h'\" \(872 characters\) sed "s/^X//" >'abc/ihdrs/i3env.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1986. */ X X/* environments and context */ X Xtypedef struct { X value uname; X env curnv; X value r_names, *bndtgs; X literal cntxt, resexp; X parsetree cur_line; X value cur_lino; X} context; X X#define Enil ((env) NULL) X X/* contexts: */ X#define In_command 'c' X#define In_read '?' X#define In_unit 'u' X#define In_edval 'e' X#define In_tarval 't' X#define In_prmnv 'p' X#define In_wsgroup 'w' X X/* results */ X#define Ret 'V' X#define Rep '+' X#define Voi ' ' X Xvalue* envassoc(); X Xextern env curnv; extern value *bndtgs; Xextern literal cntxt, resexp; extern value uname; Xextern value errtname; Xextern intlet lino; Xextern intlet f_lino; Xextern intlet i_lino; X Xextern context read_context; X Xextern envtab prmnvtab; Xextern envchain prmnvchain; Xextern env prmnv; X Xextern intlet errlino; Xextern parsetree curline; Xextern value curlino; X END_OF_FILE if test 872 -ne `wc -c <'abc/ihdrs/i3env.h'`; then echo shar: \"'abc/ihdrs/i3env.h'\" unpacked with wrong size! fi # end of 'abc/ihdrs/i3env.h' fi if test -f 'abc/ihdrs/i3int.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ihdrs/i3int.h'\" else echo shar: Extracting \"'abc/ihdrs/i3int.h'\" \(698 characters\) sed "s/^X//" >'abc/ihdrs/i3int.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1986. */ X X/* Interpreter */ X Xvalue pop(); X/* Procedure push(); */ X X#define Stop ((parsetree)zero) /* Legal stop */ X#define Halt NilTree /* Illegal stop (loose end of code) */ X Xextern int call_level; X X#define _Thread(t) *Branch(t, Nbranches(t)) /* Next instruction */ X#define _Thread2(t) *Branch(t, Nbranches(t)+1) /* Alternate next instr. or flag */ X X#ifdef MSDOS X#ifdef M_I86LM X X#define Thread(t) (*_thread(t)) X#define Thread2(t) (*_thread2(t)) Xparsetree *_thread(); Xparsetree *_thread2(); X X#endif /* M_I86LM */ X#endif /* MSDOS */ X X#ifndef Thread X#define Thread(t) _Thread(t) X#endif X#ifndef Thread2 X#define Thread2(t) _Thread2(t) X#endif END_OF_FILE if test 698 -ne `wc -c <'abc/ihdrs/i3int.h'`; then echo shar: \"'abc/ihdrs/i3int.h'\" unpacked with wrong size! fi # end of 'abc/ihdrs/i3int.h' fi if test -f 'abc/scripts/Change' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/scripts/Change'\" else echo shar: Extracting \"'abc/scripts/Change'\" \(1083 characters\) sed "s/^X//" >'abc/scripts/Change' <<'END_OF_FILE' X: 'Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. ' X X: 'Change error messages in limited number of files' X X: 'This should be called locally in the directory of the concerning files!' X Xcase $1 in X''|-*) echo "Usage: $0 [start [step]] file ..." 1>&2; exit 1;; X[0-9]*) start=$1; shift; X case $1 in X [0-9]*) step=$1; shift;; X *) step=100;; X esac;; X*) start=100; step=100;; Xesac X Xfor file Xdo X if test -f $file.orig X then X echo $file.orig already exists, $file skipped X else X mv $file $file.orig || exit X echo $file $start X sed 's/MESS([0-9]*/MESS($/' $file.orig | X awk "BEGIN {messnum=$start}"' X /MESS\(/ {n=split($0, field, "$"); X for (i=1; i<= n; i++) { X if (i==2) {printf "%d", messnum; ++messnum} X if (i>2) printf "$" X printf "%s", field[i] X } X printf "\n" X } X !/MESS\(/ {print}' >$file X if test -s $file X then X if cmp -s $file.orig $file X then X mv $file.orig $file X echo $file unchanged X else X start=`expr $start + $step` X fi X else X mv $file.orig $file X echo $file clobbered, old version put back X fi X fi Xdone END_OF_FILE if test 1083 -ne `wc -c <'abc/scripts/Change'`; then echo shar: \"'abc/scripts/Change'\" unpacked with wrong size! fi chmod +x 'abc/scripts/Change' # end of 'abc/scripts/Change' fi if test -f 'abc/scripts/Collect' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/scripts/Collect'\" else echo shar: Extracting \"'abc/scripts/Collect'\" \(1178 characters\) sed "s/^X//" >'abc/scripts/Collect' <<'END_OF_FILE' X: sh or ksh script X X# Collect error messages from source files. X# X# Messages must have the form MESS(number, "string") and be contained X# on one line. They are output in the form X# number [star] tab string X# where [star] is a * after the number, present for system errors. X# System errors are those lines that also contain the text "syserr" or X# "SMESS"; the message number is repeated in the message text. X# There are some more conventions for error messages, in particular X# \n is replaced by a newline character, and %s may be replaced by X# a parameter (e.g., ("you haven't yold me HOW TO %s"). X# X# This script is called from the Makefile. Its arguments are the files X# from which messages must be collected. The list of messages, sorted X# by number, appears on the output. X# X# Since this script is somewhat naive, the output should be inspected X# carefully (you might do a 'diff abc.msg abc.mse'). X# There is a companion script, Change, which assigns new numbers to X# messages. X Xgrep 'MESS([0-9]' $* | Xsed '/syserr/s/.*MESS(\([0-9]*\), *"\(.*\)").*/\1* \2 (\1)/ X /SMESS/s/.*MESS(\([0-9]*\), *"\(.*\)").*/\1* \2 (\1)/ X s/.*MESS(\([0-9]*\), *"\(.*\)").*/\1 \2/' | Xsort -n END_OF_FILE if test 1178 -ne `wc -c <'abc/scripts/Collect'`; then echo shar: \"'abc/scripts/Collect'\" unpacked with wrong size! fi chmod +x 'abc/scripts/Collect' # end of 'abc/scripts/Collect' fi if test -f 'abc/stc/DEP' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/stc/DEP'\" else echo shar: Extracting \"'abc/stc/DEP'\" \(971 characters\) sed "s/^X//" >'abc/stc/DEP' <<'END_OF_FILE' Xi2tca.o: i2tca.c Xi2tca.o: ../bhdrs/b.h Xi2tca.o: ../uhdrs/osconf.h Xi2tca.o: ../uhdrs/os.h Xi2tca.o: ../uhdrs/conf.h Xi2tca.o: ../uhdrs/config.h Xi2tca.o: ../bhdrs/bmem.h Xi2tca.o: ../bhdrs/bfil.h Xi2tca.o: ../bhdrs/bint.h Xi2tca.o: ../bhdrs/bobj.h Xi2tca.o: ../bhdrs/b0lan.h Xi2tca.o: ../ihdrs/i2nod.h Xi2tca.o: ../ihdrs/i2par.h Xi2tca.o: ./i2stc.h Xi2tca.o: ../ihdrs/i3env.h Xi2tca.o: ../ihdrs/i3sou.h Xi2tce.o: i2tce.c Xi2tce.o: ../bhdrs/b.h Xi2tce.o: ../uhdrs/osconf.h Xi2tce.o: ../uhdrs/os.h Xi2tce.o: ../uhdrs/conf.h Xi2tce.o: ../uhdrs/config.h Xi2tce.o: ../bhdrs/bobj.h Xi2tce.o: ./i2stc.h Xi2tce.o: ../ihdrs/i2nod.h Xi2tcp.o: i2tcp.c Xi2tcp.o: ../bhdrs/b.h Xi2tcp.o: ../uhdrs/osconf.h Xi2tcp.o: ../uhdrs/os.h Xi2tcp.o: ../uhdrs/conf.h Xi2tcp.o: ../uhdrs/config.h Xi2tcp.o: ../bhdrs/bobj.h Xi2tcp.o: ./i2stc.h Xi2tcu.o: i2tcu.c Xi2tcu.o: ../bhdrs/b.h Xi2tcu.o: ../uhdrs/osconf.h Xi2tcu.o: ../uhdrs/os.h Xi2tcu.o: ../uhdrs/conf.h Xi2tcu.o: ../uhdrs/config.h Xi2tcu.o: ../bhdrs/bobj.h Xi2tcu.o: ./i2stc.h END_OF_FILE if test 971 -ne `wc -c <'abc/stc/DEP'`; then echo shar: \"'abc/stc/DEP'\" unpacked with wrong size! fi # end of 'abc/stc/DEP' fi if test -f 'abc/tc/Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/tc/Makefile'\" else echo shar: Extracting \"'abc/tc/Makefile'\" \(882 characters\) sed "s/^X//" >'abc/tc/Makefile' <<'END_OF_FILE' XCFLAGS = -O -DCM_N -DCM_GT -DCM_B -DCM_D X XDEST = .. X XETC = .. X XHDRS = X XLIBRARY = libtermcap.a X XMAKEFILE = Makefile X XOBJS = termcap.o tgoto.o tputs.o X XPRINT = print X XSRCS = tc1.c tc2.c tc3.c \ X termcap.c tgoto.c tputs.c X Xall: $(LIBRARY) X X$(LIBRARY): $(OBJS) X ar cru $(LIBRARY) $(OBJS) X ranlib $(LIBRARY) X Xclean:; @rm -f $(OBJS) $(LIBRARY) tc1 tc2 tc3 tc1.o tc2.o tc3.o X Xindex:; @ctags -wx $(HDRS) $(SRCS) X Xinstall: library termcap X Xtermcap: X cp termcap $(ETC) X Xlibrary: $(LIBRARY) X cp $(LIBRARY) $(DEST) X Xdatabase: X cp termcap $(ETC) X Xprint:; @$(PRINT) $(HDRS) $(SRCS) X Xtags: $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS) X Xtc1: tc1.o $(LIBRARY) X cc $(CFLAGS) tc1.o $(LIBRARY) -o tc1 Xtc2: tc1.o $(LIBRARY) X cc $(CFLAGS) tc1.o $(LIBRARY) -o tc2 Xtc3: tc1.o $(LIBRARY) X cc $(CFLAGS) tc1.o $(LIBRARY) -o tc3 END_OF_FILE if test 882 -ne `wc -c <'abc/tc/Makefile'`; then echo shar: \"'abc/tc/Makefile'\" unpacked with wrong size! fi # end of 'abc/tc/Makefile' fi if test -f 'abc/tc/tc2.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/tc/tc2.c'\" else echo shar: Extracting \"'abc/tc/tc2.c'\" \(814 characters\) sed "s/^X//" >'abc/tc/tc2.c' <<'END_OF_FILE' X/* X * tc2 [term] X * Dummy program to test out termlib. X * Commands are "tcc\n" where t is type (s for string, f for flag, X * or n for number) and cc is the name of the capability. X */ X#include <stdio.h> Xchar buf[1024]; Xchar *getenv(), *tgetstr(); X Xmain(argc, argv) char **argv; { X char *p, *q; X int rc; X char b[3], c; X char area[200]; X X if (argc < 2) X p = getenv("TERM"); X else X p = argv[1]; X rc = tgetent(buf,p); X for (;;) { X c = getchar(); X if (c < 0) X exit(0); X b[0] = getchar(); X if (b[0] < ' ') X exit(0); X b[1] = getchar(); X b[2] = 0; X getchar(); X switch(c) { X case 'f': X printf("%s: %d\n",b,tgetflag(b)); X break; X case 'n': X printf("%s: %d\n",b,tgetnum(b)); X break; X case 's': X q = area; X printf("%s: %s\n",b,tgetstr(b,&q)); X break; X default: X exit(0); X } X } X} END_OF_FILE if test 814 -ne `wc -c <'abc/tc/tc2.c'`; then echo shar: \"'abc/tc/tc2.c'\" unpacked with wrong size! fi # end of 'abc/tc/tc2.c' fi if test -f 'abc/uhdrs/conf.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/uhdrs/conf.h'\" else echo shar: Extracting \"'abc/uhdrs/conf.h'\" \(867 characters\) sed "s/^X//" >'abc/uhdrs/conf.h' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1986. */ X X/* Most machine-dependent changes are done automatically by mkconfig, */ X/* the results of which can be found in config.h. */ X/* You only need to change this file conf.h under rare circumstances. */ X X/* Miscellaneous definitions*/ Xtypedef int expint; /*The 2nd argument of frexp points to this */ X /*(see manual page frexp(3)). */ X /*On some 68K systems must be short (foo!) */ X X#define Maxtrig 1e16 /*Max x for sin(x), cos(x), tan(x) */ X /*(Can anybody find a way to compute this */ X /*automatically?) */ X X#define MaxSmallInt (BASE-1) /* This must be so! */ X#define MinSmallInt (-BASE) /* This must be so!!! */ X X#define SEED getpid() /*Any suitable random int (eg date or time) */ X /*to start the random number generator with */ END_OF_FILE if test 867 -ne `wc -c <'abc/uhdrs/conf.h'`; then echo shar: \"'abc/uhdrs/conf.h'\" unpacked with wrong size! fi # end of 'abc/uhdrs/conf.h' fi if test -f 'abc/uhdrs/dir.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/uhdrs/dir.h'\" else echo shar: Extracting \"'abc/uhdrs/dir.h'\" \(1070 characters\) sed "s/^X//" >'abc/uhdrs/dir.h' <<'END_OF_FILE' X/* slightly edited for ABC from public domain source */ X X#ifndef DEV_BSIZE X#define DEV_BSIZE 512 X#endif X#define DIRBLKSIZ DEV_BSIZE X#define MAXNAMLEN 255 X Xstruct direct { X long d_ino; /* inode number of entry */ X short d_reclen; /* length of this record */ X short d_namlen; /* length of string in d_name */ X char d_name[MAXNAMLEN + 1]; /* name must be no longer than this */ X}; X X/* X * The DIRSIZ macro gives the minimum record length which will hold X * the directory entry. This requires the amount of space in struct direct X * without the d_name field, plus enough space for the name with a terminating X * null byte (dp->d_namlen+1), rounded up to a 4 byte boundary. X */ X#undef DIRSIZ X#define DIRSIZ(dp) \ X ((sizeof (struct direct) - (MAXNAMLEN+1)) + (((dp)->d_namlen+1 + 3) &~ 3)) X X/* X * Definitions for library routines operating on directories. X */ Xtypedef struct _dirdesc { X int dd_fd; X long dd_loc; X long dd_size; X char dd_buf[DIRBLKSIZ]; X} DIR; X#ifndef NULL X#define NULL 0 X#endif Xextern DIR *opendir(); Xextern struct direct *readdir(); Xextern closedir(); END_OF_FILE if test 1070 -ne `wc -c <'abc/uhdrs/dir.h'`; then echo shar: \"'abc/uhdrs/dir.h'\" unpacked with wrong size! fi # end of 'abc/uhdrs/dir.h' fi if test -f 'abc/ukeys/abckeys_2621' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ukeys/abckeys_2621'\" else echo shar: Extracting \"'abc/ukeys/abckeys_2621'\" \(668 characters\) sed "s/^X//" >'abc/ukeys/abckeys_2621' <<'END_OF_FILE' X# HP2621 terminal X# display screen labels f1-f8 upon startup, config-edit after exit: X[term-init] = "\033&jB" = "" X[term-done] = "\033&jA" = "" X# use first four standard: X[widen] = "\033p\015" = "f1" X[extend] = "\033q\015" = "f2" X[first] = "\033r\015" = "f3" X[last] = "\033s\015" = "f4" X# because arrow keys are drawn on the keyboards keys: X[up] = "\033t\015" = "f5" X[left] = "\033u\015" = "f6" X[right] = "\033v\015" = "f7" X[down] = "\033w\015" = "f8" X# which makes rebind for following four necessary: X[previous] = "\033[" = "ESC-[" X[next] = "\033]" = "ESC-]" X[upline] = "\033k" = "ESC-k" X[downline] = "\033j" = "ESC-j" END_OF_FILE if test 668 -ne `wc -c <'abc/ukeys/abckeys_2621'`; then echo shar: \"'abc/ukeys/abckeys_2621'\" unpacked with wrong size! fi # end of 'abc/ukeys/abckeys_2621' fi if test -f 'abc/ukeys/abckeys_5620' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ukeys/abckeys_5620'\" else echo shar: Extracting \"'abc/ukeys/abckeys_5620'\" \(696 characters\) sed "s/^X//" >'abc/ukeys/abckeys_5620' <<'END_OF_FILE' X# Key bindings for the BLIT (TERM=5620). X# Warning: this resets your function keys! X X# Initialize the function keys. X X[term-init]="[5620 PF keys]\r\n\e[1;2q\ew\e[2;2q\ee\e[3;2q\ef\e[4;2q\el\e[5;2q\ep\e[6;2q\en\e[7;2q\eu\e[8;2q\ed" = "" X X# Function key bindings are as in b(1) manual. X# (Should reorder because of 3-2-3 lay-out?) X X[widen] = "\ew" = "f1" X[extend] = "\ee" = "f2" X[first] = "\ef" = "f3" X[last] = "\el" = "f4" X[previous] = "\ep" = "f5" X[next] = "\en" = "f6" X[upline] = "\eu" = "f7" X[downline] = "\ed" = "f8" X X# Find some use for HOME and HOME DOWN keys. X X[upline] = "\e[H" = "Arrow-Home" X[downline] = "\e[70;1H" = "Arrow-Home-Down" X X# Ignore CLEAR key. X X[ignore] = "\e[2J" = "" END_OF_FILE if test 696 -ne `wc -c <'abc/ukeys/abckeys_5620'`; then echo shar: \"'abc/ukeys/abckeys_5620'\" unpacked with wrong size! fi # end of 'abc/ukeys/abckeys_5620' fi if test -f 'abc/ukeys/abckeys_5620-2' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ukeys/abckeys_5620-2'\" else echo shar: Extracting \"'abc/ukeys/abckeys_5620-2'\" \(707 characters\) sed "s/^X//" >'abc/ukeys/abckeys_5620-2' <<'END_OF_FILE' X# Key bindings for the 5620-2 (5620 with new ROMs), my personal preferences. X# (Guido) X X# Initialize the function keys. X X[term-init]="[Changing PF keys!]\r\n\e[1;2q\eW\e[2;2q\eF\e[3;2q\eL\e[4;2q\eb\e[5;2q\ef\e[6;2q\es\e[7;2q\er\e[8;2q\ep" = "" X X# 5 function key bindings are the same as for BE, F6-F8 are different. X X[widen] = "\eW" = "f1" X[first] = "\eF" = "f2" X[last] = "\eL" = "f3" X X[previous] = "\eb" = "f4" X[next] = "\ef" = "f5" X X[copy] = "\es" = "f6" X[redo] = "\er" = "f7" X[extend] = "\ep" = "f8" X X# Find some use for CLEAR, HOME and HOME DOWN keys. X X[upline] = "\e[H" = "HOME" X[downline] = "\e[70;1H" = "HOME-DOWN" X[look] = "\e[2J" = "CLEAR" X X# Bind DEL to [delete] X X[delete] = "\177" = "DEL" END_OF_FILE if test 707 -ne `wc -c <'abc/ukeys/abckeys_5620-2'`; then echo shar: \"'abc/ukeys/abckeys_5620-2'\" unpacked with wrong size! fi # end of 'abc/ukeys/abckeys_5620-2' fi if test -f 'abc/ukeys/abckeys_5620-e' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ukeys/abckeys_5620-e'\" else echo shar: Extracting \"'abc/ukeys/abckeys_5620-e'\" \(799 characters\) sed "s/^X//" >'abc/ukeys/abckeys_5620-e' <<'END_OF_FILE' X# Key bindings for the BLIT when using Steven's 'btty' driver. X# Function keys are compatible with BE, not with the 'standard B' function X# key numbering, which looks odd with the 3-2-3 arrangement of the DMD's function keys. X# Warning: this resets your function keys! X X# Initialize the function keys. X X[term-init]="[5620-e PF keys]\r\n\e[1;3q\ep\r\e[2;3q\eq\r\e[3;3q\er\r\e[4;3q\eu\r\e[5;3q\ev\r\e[6;1q\3\e[7;1q\25\e[8;3q\es\r" = "" X X[widen] = "\ep\r" = "f1" X[first] = "\eq\r" = "f2" X[last] = "\er\r" = "f3" X X[previous] = "\eu\r" = "f4" X[next] = "\ev\r" = "f5" X X[upline] = "\et\r" = "f7" X[downline] = "\ew\r" = "f8" X X# Find some use for HOME, HOME DOWN, DEL and CLEAR keys. X X[upline] = "\e[H" = "HOME" X[downline] = "\e[70;1H" = "HOME-DOWN" X[delete] = "\177" = "DEL" X[look] = "\e[2J" = "CLEAR" END_OF_FILE if test 799 -ne `wc -c <'abc/ukeys/abckeys_5620-e'`; then echo shar: \"'abc/ukeys/abckeys_5620-e'\" unpacked with wrong size! fi # end of 'abc/ukeys/abckeys_5620-e' fi if test -f 'abc/ukeys/abckeys_adm31' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/ukeys/abckeys_adm31'\" else echo shar: Extracting \"'abc/ukeys/abckeys_adm31'\" \(781 characters\) sed "s/^X//" >'abc/ukeys/abckeys_adm31' <<'END_OF_FILE' X[widen] = "\027" = "Cmnd-W" X[extend] = "\005" = "Cmnd-E" X[first] = "\006" = "Cmnd-F" X[last] = "\014" = "Cmnd-L" X[previous] = "\020" = "Cmnd-P" X[next] = "\016" = "Cmnd-N" X[upline] = "\025" = "Cmnd-U" X[downline] = "\004" = "Cmnd-D" X[up] = "\017" = "Cmnd-Uparrow" X[down] = "\035" = "Cmnd-Downarrow" X[left] = "\013" = "Cmnd-Leftarrow" X[right] = "\012" = "Cmnd-Rightarrow" X[redo] = "\001" = "Cmnd-A" X[copy] = "\026" = "Cmnd-V" X[copy] = "\031" = "Cmnd-Y" X[copy] = "\002" = "Cmnd-B" X[delete] = "\030" = "Cmnd-X" X[record] = "\022" = "Cmnd-R" X[playback] = "\024" = "Cmnd-T" X[look] = "\033l" = "ESC-l" X[term-init] = "" = "" X[term-done] = "" = "" END_OF_FILE if test 781 -ne `wc -c <'abc/ukeys/abckeys_adm31'`; then echo shar: \"'abc/ukeys/abckeys_adm31'\" unpacked with wrong size! fi # end of 'abc/ukeys/abckeys_adm31' fi if test -f 'abc/unix/u1edit.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/unix/u1edit.c'\" else echo shar: Extracting \"'abc/unix/u1edit.c'\" \(698 characters\) sed "s/^X//" >'abc/unix/u1edit.c' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1988. */ X X/* edit via another editor */ X X#include "b.h" X#include "bfil.h" X X#define COML 200 XHidden char com_line[COML]; X#define At_eos(s) ((s)+= strlen(s)) X XVisible Procedure ed_file(fname, line) string fname; intlet line; { X string cl= com_line; X strcpy(cl, editor); X if (*(cl+strlen(cl)-1) == '+') { X if (line != 0) sprintf(At_eos(cl), "%d", line); X else *(cl+strlen(cl)-1)= ' '; X } X app_fname(At_eos(cl), fname); X system(com_line); X} X XHidden Procedure app_fname(ceos, fname) string ceos; string fname; { X intlet k, len= strlen(fname); X *ceos++= ' '; X for (k= 0; k<len; ++k) { X *ceos++= '\\'; X *ceos++= *fname++; X } X *ceos= '\0'; X} END_OF_FILE if test 698 -ne `wc -c <'abc/unix/u1edit.c'`; then echo shar: \"'abc/unix/u1edit.c'\" unpacked with wrong size! fi # end of 'abc/unix/u1edit.c' fi if test -f 'abc/unix/u1os.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'abc/unix/u1os.c'\" else echo shar: Extracting \"'abc/unix/u1os.c'\" \(976 characters\) sed "s/^X//" >'abc/unix/u1os.c' <<'END_OF_FILE' X/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1988. */ X X#include "b.h" X#include "feat.h" X X#ifndef NDEBUG X X/* Assertion error */ X XVisible Procedure asserr(file, line) string file; int line; { X X putSDstr(errfile, "Assertion failed: file %s, line %d\n", file, line); X trmend(); /* quick hack to reset ttymodes */ X bye(-1); X} X X#endif /* !NDEBUG */ X X#ifndef HAS_GETWD X X/* getwd - get working directory */ X XVisible char *getwd(buf) char *buf; { X FILE *fp; X X *buf = 0; X if ((fp=popen("pwd", "r")) == 0 ) { X strcpy(buf, "cannot execute pwd"); X return(0); X } X if (fgets(buf, 1024, fp) ) X buf[strlen(buf)-1] = 0; X pclose(fp); X if (*buf == '/') X return buf; X else X return (char*) NULL; X} X X#endif /* !HAS_GETWD */ X X#ifndef HAS_RENAME X X/* rename - rename a file */ X XVisible Procedure rename(from, to) char *from, *to; { X int i; X X if( (i=link(from, to)) < 0 ) return(i); X if( (i=unlink(from)) < 0 ) { X unlink(to); X return(i); X } X return(0); X} X X#endif /* !HAS_RENAME */ END_OF_FILE if test 976 -ne `wc -c <'abc/unix/u1os.c'`; then echo shar: \"'abc/unix/u1os.c'\" unpacked with wrong size! fi # end of 'abc/unix/u1os.c' fi echo shar: End of archive 24 \(of 25\). cp /dev/null ark24isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 25 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still must unpack the following archives: echo " " ${MISSING} fi exit 0 # Just in case... -- Please send comp.sources.unix-related mail to rsalz@uunet.uu.net. Use a domain-based address or give alternate paths, or you may lose out.