[comp.sys.amiga.tech] Release SKsh

koren@hpfelg.HP.COM (Steve Koren) (11/20/89)

Finally, a 'release' (non-beta) version of SKsh (which used to be called
Ash).  I have included the addendum from version 1.2 here.  I will be
sending 1.2 to Bob Page tonight.  After this, I expect the pace of new
release to slow considerably.  I am shooting for the next one in
one month, the next in three or four months, then as needed.  This
version includes a number of things that were requested so far.

        - steve (koren@hpfela.HP.COM)

 
~~~~~~~~~~~~~~~~~~~~~~~~~ CUT HERE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ title page deleted to save space ]



          Addendum to Version 1.2

            This document describes additions and  changes  to  SKsh  since
            version 1.1.

            Shell name changed

               The most obvious change is  that  the  shell  is  no  longer
               called 'Ash'.  There  are  apparently  at  least  two  other
               Amiga shells called 'Ash', so I changed the  name  to  avoid
               confusion with those shells.  It is now called  SKsh  ("ess-
               kay-shell", for Steve Koren's shell).

               This  name  change  will  cause  some  confusion  for   this
               release, but hopefully will prevent it in the  future.   For
               now, note the following:

                 1)  The  .ashrc  and  .ashinit  files   are   now   called
                     .skshinit and .skshrc.  Delete the old  .ashinit  file
                     and replace it with the new .skshinit file.   You  can
                     simply rename the old .ashrc file to .skshrc.

                 2)  Delete the old Ash binary and replace it with the  new
                     SKsh binary.


            Directory expansion bug fixed!!

               By far the most important change in 1.2 is that  I  fixed  a
               bug in the directory expansion mechanism  that  was  causing
               system crashes at times.  This was a very serious  bug,  and
               I had suspected it was there for quite  some  time,  but  it
               took me awhile to find it.  It is fixed now.  (There  was  a
               good reason I called the last two releases 'beta'  versions!
               :-)


            $LINES and $COLUMNS set automatically

               The LINES and COLUMNS variables are  now  set  automatically
               when the window is resized.  Actually, the are  set  at  the
               next interactive prompt; if  you  resize  the  window  while
               either editing a command or running a  script  or  function,
               the variables will not be set.

               The 'R' option is provided to  turn  this  behavior  off  if
               desired.  When enabled (by default), this  provides  a  very
               nice behavior when combined with the new 'ls' output  format
               which uses the COLUMNS variable.  You can resize the  window
               horizontally  and  not  have  messy  directories.   However,
               window sizes which are  too  small  will  confuse  the  line
               editor.  Also, the value set in the COLUMNS variable is  two
               less than the actual column width, since the console  device
               scrolls at less than the actual width.


          SKSH Amiga Shell             Page 2              Addendum to 1.2











            Run function changed

               The 'run' function defined in .skshinit has been changed  to
               use the new -s option to  which.   It  will  now  report  an
               error if the command to be run is not found  in  the  search
               path.


            -s (silent) option added to which

               A -s option has  been  added  to  the  which command.  which
               will exit silently if the names are not found in the  search
               path.  Without the '-s' option,  it  outputs  a  message  in
               this case.  The '-s' option is useful in test statements:

               if [ $(which -s some_file) = '' ]
               then
                  echo "some_file not found in search path"
               fi


            Command Line Editing changes

               The shift arrow  keys  can  now  be  used  to  move  to  the
               beginning of a line, the end of a line,  the  first  history
               line, or the last history line.

               Also, an <esc>-. command was added which  inserts  the  last
               parameter  of  the   previous   line.    See   the   UserMan
               documentation on command line editing for details.


            force bug fixed

               Version  1.1  contained  a  bug  which  caused  the  'force'
               command to not evaluate all its  arguments.   The  following
               function now works correctly, where it would not before:

               function cd {
                  force -b cd $*
                  dir
               }


            dir : bug fixed

               A bug in 1.1 caused a 'dir :' command to enter  an  infinite
               loop.  This has been fixed in 1.2.






          SKSH Amiga Shell             Page 3              Addendum to 1.2









            ls command enhanced

               Several enhancements were added to the 'ls'  command.   Most
               significantly, a '-F' option was added.  This option can  be
               used to change the output of the command in  a  customizable
               way.  See the entries  for  the  _FILE_S,  _FILE_E,  _DIR_S,
               _DIR_E, _EXEC_S, and  _EXEC_E  variables  in  the  Reference
               manual for details.  'ls -F' can be used  to,  for  example,
               underline file names and highlight directory  names  with  a
               different pen color.

               The short directory form now has a cleaner output.  It  will
               examine the longest file name, the  value  of  the  $COLUMNS
               variable, and adjust  its  display  accordingly.   Thus,  if
               there are mostly short file names  in  the  directory,  'ls'
               will use more columns for output.

               The '-v' option to 'ls' now prints the total  file  size  as
               well as the number of entries printed.


            .skshinit and .skshrc now movable

               The two initialization files are no longer  required  to  be
               in the s: directory.  They  are  now  searched  for  in  the
               SKSH: directory.  If SKSH: points to s:, then the result  is
               the same.  SKSH: can be changed to any legal directory.


            New tests added

               Test expressions can  now  test  for  the  script  bit,  the
               archive bit, and the pure bit by using -S, -A, or  -P.   See
               the  test  expression  section  of  the  user's  guide   for
               details.


            Break notification

               Typing the break key (^c) during an SKsh command will  cause
               '*** break' to be printed.


            Recursive copy only on -r option

               In version 1.1, the copy  command  always  did  a  recursive
               copy (ignoring the -r option).  This has been fixed.


            Touch command added

               A new 'touch' command has been added which 1) creates  files
               if  they  do  not  already  exist,  and   2)   updates   the
               modification times on files if they do exist.


          SKSH Amiga Shell             Page 4              Addendum to 1.2











            Clone (-c) option on cp

               The 'cp' command now supports  a  -c  (clone)  option  which
               duplicates the file  times  and  protection  status  on  all
               files copied.  The clone option is not the default, but  can
               be made to act like it with the following alias:

                 alias cp = 'force -b cp -c'


            quit alias added

               A 'quit' alias has been added that is like 'exit', but  does
               not execute the value of the LOGOUT first.


            cp buffer size increased

               The 'cp' buffer size has been  increased  to  32K  from  4K.
               This should reduce thrashing when copying a file to  another
               location on the  same  floppy.   Also,  the  buffer  is  now
               dynamically allocated, not placed on the stack as with  SKsh
               1.1.


            chmod command added

               SKsh now has a built-in chmod command.  Permissions  can  be
               set to an explicit value  or  added  or  subtracted.   Also,
               more than one file can be operated upon at  once.   See  the
               reference manual for details.


            Documenation updates

               The documentation has been updated to  reflect  the  changes
               in 1.2, and some documentation bugs  have  been  fixed.   In
               particular, note that  the  installation  instructions  have
               changed; please insure that  you  have  correctly  performed
               all the steps listed.














          SKSH Amiga Shell             Page 5              Addendum to 1.2












          Other Notes

            I am  considering  this  to  be  the  first  "real"  (non-beta)
            release of SKsh.  I will, of course, continue to enhance it  in
            the future.  I believe most of the  critical  bugs  are  worked
            out  now;  I'm  sure  there  are  still  some  bugs  left,  but
            hopefully nothing like the directory expansion bug  above  that
            was causing system crashes.

            One final note: be sure that you re-install the .skshinit  file
            in the s: directory, since it has  changed  from  version  1.0.
            The .skshrc file has not changed, so that one need not  be  re-
            installed.  (In fact, that is the  concept  behind  having  two
            init files; all users changes should  be  in  .skshrc  so  they
            will not be overwritten by updates of .skshinit.)






































          SKSH Amiga Shell             Page 6              Addendum to 1.2