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)