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.1koren@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)