[net.micro.amiga] Newest SHELL

dillon@CORY (Matt Dillon) (10/23/86)

	I *Finally* got BCPL redirection working right.  Also contains 
various bug fixes.  Again, if you want the source just drop me a note.
Unless a thousand bugs popup, this will be the last major revision until
1.2 becomes established.

					-Matt


#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create:
#	instructions.txt
#	NOTES.txt
#	examples.txt
#	shell.uue
# This archive created: Wed Oct 22 23:52:26 1986
export PATH; PATH=/bin:/usr/bin:$PATH
echo shar: "extracting 'instructions.txt'" '(17742 characters)'
if test -f 'instructions.txt'
then
	echo shar: "will not over-write existing file 'instructions.txt'"
else
cat << \!Funky!Stuff! > 'instructions.txt'

INSTRUCTIONS FOR SHELL 2.03

      (A)   Compiling
      (B)   Overview
      (C)   Quicky tech notes on implimentation.

      (D)   Command pre-processor
      (E)   Command-list
      (F)   special SET variables

      (G)   example .login file.


(A) COMPILING:

   NOTE: An executable is provided as compilation instructions are
   difficult AND because there is a good change this version will not
   compile correctly using Manx.  For you Manx hackers: Beware the
   C/Assembly interface when you convert.  There is also a good chance
   you will not have the latest version of MY.LIB.

   This version of my shell MUST be compiled with Lattice. You must use
   the Provided Startup Module rather than Lstartup.obj or Astartup.obj.
   The startup module is equivalent to Astartup.obj except that I have added
   a little code at the beginning to save the BCPL startup state.

   Link using the provided startup module and the following libraries in
   this order:

      MY.LIB AMIGA.LIB LC.LIB

   MY.LIB is my own library which has been posted (but feel free to ask
   me to send it to you if you haven't got it).

   lc1 -i$incdir/ -i$incdir/lattice/ $y
   lc2 -s -v $y

      where $incdir is the include directory for C, and '$y' stands for
      each .C file.  At this point you have nothing but object modules and
      must now link them together:

      NOTE: you MUST use the LC2 options.


   a/blink c.o+main.o+...+run.o library $libdir/my.lib+$libdir/amiga.lib+$libs+$libdir/lc.lib to ram:shell

      NOTE: c.o is provided, do not use standard startups (I said this
      above)


   Executable Size should be around 30K.


(B) OVERVIEW:

   PROBLEMS

   -None that I know of.  Note that you should not redirect the RUN command.
    to redirect the command the RUN command is running, embed a standard
    CLI redirection in the command string:

    RUN ">file" command


   OVERVIEW of the major features:

   -simple history
   -redirection
   -piping
   -command search path 
   -aliases
   -variables & variable handling (embedded variables)
   -file name expansion via '?' and '*'
   -conditionals
   -source files  (w/ gotos and labels)
   -many built in commands to speed things up

   NEW FEATURES IN 2.03.  Thanks to Steve Drew who suggested a '_path'
   variable.  The other difference with this version is that BCPL
   output redirection works properly.  Additionaly, alias loops are
   detected (this is what is known as a hack).

   NEW FEATURES IN 2.02.  I would like to thank Dave Wecker and Steve Drew
   for their numerous comments on the previous version of my shell.

   -Return code and error handling
      (A) retrieve return code
      (B) Manual or Automatic error handling.
   -Control C-F now passed to external commands.
   -can execute shell 

jvkelley@watdragon.UUCP (Jeff Kelley) (10/25/86)

Matt's posting of his latest shell got chopped after the first hundred
lines or so here.  Could someone please e-mail me a copy?

	Thanks,  Jeff Kelley
	         {...!ihnp4!watmath!watdragon!jvkelley}