[comp.sys.amiga.tech] Ash 1.1 available

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

Ash 1.1 available
-----------------

I know it has been only a short time since 1.0, but I already have
enough bug fixes and enhancements that I felt it warrented a second
version.  Hopefully the pace will be slowing down in the future.
 
I am still considering this one a "beta" release, but it will in
all probability be the last beta version.
 
I have included the text of the 'Addendum1.1.doc' file from the
Ash1.1 distribution at the end of this note.  It lists the significant
changes; there are some others as well.

Also, thanks to everyone who sent mail with suggestions, comments, and
encouragement.  Of course I can't implement all the suggestions
immediately, but hopefully I'll have time for the important ones soon.
 
      - steve (koren@hpfela.HP.COM)

--------------------------------------------------------------------------

  [ TITLE PAGE DELETED TO SAVE SPACE ]


          Addendum to Version 1.1

            This document describes additions  and  changes  to  Ash  since
            version 1.0.

            More Filename Compleation Features

               Two  new  filename  completion  features  have  been  added.
               <esc>= will list matching filenames  and  let  you  continue
               typing, and <esc>* will insert matching filenames  into  the
               command line.  See the 'filename completion' section of  the
               Users' Guide for more details  on  the  exact  operation  of
               these new features.


            Completed rm, cp, and mv Commands

               The 'rm', 'cp',  and  'mv'  commands  have  been  completed.
               'rm'  and  'cp'  now  support  a  -r  flag   for   recursive
               operations, and all three  support  a  '-v'  (verbose)  flag
               which prints the file names as they are operated upon.

               The only remaining addition is a -c (clone) option  to  'cp'
               which keeps date stamps and file permissions  intact.   I'll
               add this as soon as I figure out how.


            Command Line Editing changes

               The word-based command line  editing  features  now  have  a
               slightly more intuitive idea of what a 'word' is.


            Return Code bug fixed

               Version 1.0 contained a bug which "lost" return  codes  from
               external commands.  This means that, for example,  the  'cmp
               -s' command could not be used in  a  test  statement.   This
               bug has been fixed in 1.1.  Also, $? is set accordingly.


            '.' (source) bug fixed

               An error in the .ashinit script has  been  fixed.   '.'  now
               can be used to 'source' a file  if  the  '.'  is  the  first
               command on the line.  This was  broken  in  1.0,  since  the
               alias definition read:

                 alias   .   ='source'

               instead of the correct:

                 alias '.'   ='source'



          ASH Amiga Shell               Page 2             Addendum to 1.1









            Superflous directory lock bug fixed

               Ash 1.0 often neglected  to  UnLock()  directories  after  a
               directory scan.  The directories could not then be  removed.
               This bug has been fixed in 1.1.


            export bug fixed

               A bug in 1.0 caused 'export' to incorrectly  set  the  value
               of the AmigaDos environment variable.  This has been fixed.

               However, a bug  in  either  the  compiler  or  OS  is  still
               preventing  'getenv'  from  working   correctly.    I   have
               isolated this bug in a 5-line test  program,  but  I  cannot
               fix it since it does not seem to be an Ash bug.


            cp acts friendlier upon file write error

               In 1.0, the 'cp' command would try to  write  all  remaining
               files even if one file had a write-error.  This  meant  that
               the 'disk  full'  requester  would  appear  multiple  times.
               This bug has been fixed in 1.1, and 'cp' gives up after  the
               first  file  write  error.   In  addition,   the   partially
               completed file is properly UnLocked.


            Break key now works during directory scan

               You can now type ^c during a directory scan,  and  Ash  will
               halt the scan.  This is useful when you a 'dir'  on  a  full
               directory and then realize you don't need the information.


            Ash is now "pure"

               Ash can now be made  resident.   This  costed  about  3K  of
               executable size, but will save  about  70k  bytes  for  each
               subsequent invokation of Ash.  In order  for  this  to  work
               correctly, Ash must be invoked from the AmigaDos 'shell'.


            Documenation updates

               The documentation has been updated to  reflect  the  changes
               in 1.1, and some documentation bugs  have  been  fixed.   In
               addition, I  added  a  'Hints.doc'  file.   I  will  include
               helpful hints and "neat" things in this file as I  encounter
               them.  For example, this 'Hints.doc.' file has  instructions
               for making  'newcli'  automatically  start  a  resident  Ash
               program, and the ash  'exit'  command  automatically  remove
               this window when Ash completes.  If you have anything  which
               you think may be helpful to other people, send it to me  and


          ASH Amiga Shell               Page 3             Addendum to 1.1









               I might include it in that file.


            Shell function memory leak bug fixed

               In version 1.0, about 90 bytes of memory were lost for  each
               function that was run.  This bug has been fixed  in  version
               1.1.


            New backward-delete word editing command

               A backard delete word editing command has  been  added.   It
               is mapped to <esc><backspace>.


            New Run function to search Ash path

               A new 'run' function has  been  defined  in  .ashinit  which
               searches  the  ash  $PATH.    This   avoides   the   awkward
               construction of:

                 run $(which command) args

               You can examine the  definition  of  this  function  in  the
               .ashinit file.


            Change to automatic non-Ash shell script detection

               Ash now accepts '/*' in addition to '#!'  and  ';!'  as  the
               first two  characters  of  a  non-Ash  shell  script.   This
               change was made  in  an  attempt  to  provide  Arexx  script
               support, but please note that I don't have Arexx and I  have
               never tried this.  I have just been  told  that  Arexx  uses
               '/*' as the begin comment character.  Something like:

                 /*rx
                 */

               At the beginning of an Arexx script *might*  work,  involing
               the Arexx script without an explicit 'rx'  call.   Again,  I
               have not tested this.


          Other Notes

            This will probably be the last 'beta'  version  of  Ash.   That
            is, consider this  version  to  still  be  in  the  'debugging'
            stages.  It is more stable than the first, but I'm  sure  there
            are still some bugs that need to be  worked  out.   I  hope  to
            find most of the serious ones by  the  next  release.   In  the
            meantime, this version is more robust then 1.0.



          ASH Amiga Shell               Page 4             Addendum to 1.1









            One final note: be sure that you re-install the  .ashinit  file
            in the s: directory, since it has  changed  from  version  1.0.
            The .ashrc file has not changed, so that one need  not  be  re-
            installed.




















































          ASH Amiga Shell               Page 5             Addendum to 1.1

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

>               However, a bug  in  either  the  compiler  or  OS  is  still
>               preventing  'getenv'  from  working   correctly.    I   have

One thing I forgot to mention; even though Ash's getenv has problems,
(since I can't get the Lattice call to work) you can still use
something like this:

   my_var=$(c:getenv my_var)

to get the value of an AmigaDos ENV: variable.  This has the same
effect, its just a little slower.

    - steve

gregg@cbnewsc.ATT.COM (gregg.g.wonderly) (11/27/89)

From article <13920014@hpfelg.HP.COM>, by koren@hpfelg.HP.COM (Steve Koren):
>>               However, a bug  in  either  the  compiler  or  OS  is  still
>>               preventing  'getenv'  from  working   correctly.    I   have
> 
> One thing I forgot to mention; even though Ash's getenv has problems,
> (since I can't get the Lattice call to work)...

The routine works fine for me under 5.02.  The documentation is just not
clear.  E.g. for the ENVariable $HOME, create the file, env:home, and
put the string value for the variable in that file as a single line.

I put the string "usr:gregg" in mine...
-- 
-----
gregg.g.wonderly@att.com   (AT&T bell laboratories)