koren@hpfelg.HP.COM (Steve Koren) (10/11/90)
This posting is the Addendum from version 1.6 of SKsh. I will be sending version 1.6 to Fred Fish this week, and also have it put on abcfd20. - steve ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ title page deleted to save space ] Addendum to Version 1.6 This document describes additions and changes to SKsh since version 1.5. 1.6 is a "small" release; there are several new features, but nothing "significant". This release is intended mainly to fix several bugs in 1.5, and to add a few minor fea- tures (such as command line cut and paste). I am making this a "small" release for the following reasons: * I wanted to get it distributed as soon as possible after 1.5 to fix the "+C" file completion bug and the ARexx port bug described below. * I am currently too busy to do another major release in a reasonable time; this will help bridge the gap until the next major release. * I am changing addresses and wanted to get the new contact address in this version. See the MiscInfo.doc manual for details. The following are changes since SKsh 1.5: cilist command added A new cilist command, similar to the dwclist and complist commands, has been added. It contains SKsh patterns which will be ignored by the file completion mechanism. For ex- ample, if this list contained '*.bak' and "*.info", all .bak and .info files would be ignored for file completion. Any pattern may be used, and the '/' character is not treated specially. When adding patterns to the cilist, they must be quoted to avoid being interpreted by the shell. Another solution is to add the cilist command to the dwclist, which allows the wildcards to be passed on unexpanded. This command is described in more detail in the reference manual. Please see that document for details. 'r' added as synonym for 'd' in complist, dwclist, cilist It was previously difficult to remember whether 'r' (for remove) was used in the above commands, or 'd' (for de- lete). Both are now accepted, and remove the supplied ar- guments from the indicated list. SKsh Amiga Shell Page 2 Addendum to 1.6 -q option added to crc command A -q option is now accepted by the crc command. This op- tion tells crc not to output the file names, but only the redundancy code information. This option actually existed in the 1.4 version, but was not documented. +C File completion fixed There was a bug in SKsh 1.5 which caused filename comple- tion to break if the +C (complist) option was unset. This has been fixed. ARexx port bug fixed A value in SKsh 1.5 was off by several orders of magnitude, causing an SKsh invoked with an ARexx port to both use large amounts of CPU time, and to cause strange side ef- fects in the system. This has been fixed. More keymapping functions added Several new key map functions have been added, including: ISM (insert mode), OVS (overstrike mode), PIO (previous in- sert/overstrike mode), YNK (yank), CEL (copy to end of line), and ERC (explicitly set repeat count). Esc-# macro fixed The Esc-# (comment out line) macro previously worked only in insert mode. In overstrike mode, it would erase the first character of the line. It now uses the new keymap functions mentioned above to operate correctly in either insert or overstrike mode. Touch bug fixed The touch command would previously update the datestamp of a file only if the file was in the current directory. This has been fixed. cp bug fixed A similar datestamp bug in "cp" has been fixed; files cop- ied to other directories now correctly retain their datestamp. This makes the "-u" (update) option to "cp" much more useful. SKsh Amiga Shell Page 3 Addendum to 1.6 head command now accepts multiple arguments The head command previously ignored multiple arguments. It no longer does this. line truncation problem fixed Certain commands, such as "history" and "set" truncate their output to the width of the window. However, they were incorrectly truncating the output even if it was redi- rected to a file or variable. This no longer happens; they output the full line width in these cases. tail buffer size change If the output of the tail command is to the console, it will output 80 byte records at a time instead of the previ- ous 16K. This allows the output to be stopped from the console device. It will still use 16K blocks to increase performance if the output is directed to a file. tail character 0 bug fixed If the 1.5 tail command was given an argument larger than the number of lines in the file, the first character would be omitted. This no longer happens. INTERACTIVE variable added A variable has been added which can be used to check whether the current SKsh invocation is an interactive one. This is in preparation for a change in the invocation model to take place in SKsh 1.7. Please see the Reference.doc entry for the INTERACTIVE variable for details on this change. It will become important to understand the INTER- ACTIVE variable in SKsh 1.7; I am adding it now to avoid making a change in the invocation model suddenly. find external command added A find command, similar to the Un*x command of the same name, has been added as an external binary. Find has many options, including the following: SKsh Amiga Shell Page 4 Addendum to 1.6 -name pattern find files matching pattern -path pattern similar to -name but for paths -comment pattern files who's comment matches pattern -type { d | f } limit to directories or files -depth perform depth first search -case make pattern matching case sensitive -exec command files for which cmd returns true -cmd command generate command list for (any) shell -hidden include "hidden" files -blocks n files n blocks in size -bigger n files n bytes or bigger -smaller n files n bytes or smaller -quiet don't print unreadable file errors -newer file files newer than given file -newer date [time] files newer than given date/time -older file files older than given file -older date [time] files older than given date/time -print print matching file names -ver print the version of find Options can be combined; for example, to find all files un- der the /usr tree larger than 10000 bytes but smaller than 50000 bytes and which contain the string "mytext": find /usr -type f -bigger 10000 -smaller 50000 \ -exec "sys:bin/fgrep -ls mytext %s" -print Or, to find all files under the /usr or /misc trees newer than 20-Aug-90 and who's file comment contains the string "foo" and ends in a "Z": find /usr /misc -newer 20-aug-90 -comment '*foo*Z' -print I believe this find is one of the more complete ones avail- able for the Amiga. The find command is described in much more detail in the ExtCmds.doc manual. Please see the en- try there for more information. New option flag added A new "H" option has been added which prints lines executed with any of the "history -e" style mechanisms (which in- clude "!" and "!!"). If there are commands in the history list which produce no visible action, the "H" option makes it easy to see what has been executed. SKsh Amiga Shell Page 5 Addendum to 1.6 [class] bug fixed A problem with using [] style classes at the beginning of a wildcard pattern has been fixed. For example, "[a-h]*" would previously not work as a wildcard pattern, but "*[a- h]" would. They both work correctly now. Note that you must surround the '[' character by spaces if you wish to use it as a separate token in a test expression. -f option added to rm command The rm command now accepts an "f" (force) flag. If given, rm will effectively do a "chmod +wd" on each file or direc- tory before deletion. This stops "rm" from issuing an er- ror if some files did not have delete permission. Minimum stack size downgraded to 6K The minimum acceptable stack size is now 6K instead of the previous 10K. rm and rmdir now accept trailing "/" The rm and rmdir commands now accept a trailing slash for directory names. This is useful, as file completion puts one there automatically. New variables added There previously existed variables named "_DIR_S", "_DIR_E", etc, which controlled the display of files and directories by the ls command with the -F option. Since these variables could be set to either printing sequences (such as a "/" at the end of directory names), or non printing sequences (such as $_ANSI_P2), there was previ- ously no way for "ls" to determine the actual printing length of the filename and special characters. Occasionaly odd effects would show up if these variables were set to printing sequences. (For example, blank lines would often be printed). Three new variables have been added to handle this problem. "_DIR_L" stores the displayed length of the _DIR_S and _DIR_E variables; _EXEC_L and _FILE_L act simi- larly for executables and files. The concept is similar to the PNPC variable. SKsh Amiga Shell Page 6 Addendum to 1.6 srun reports errors and unlocks files The srun command previously did not report an error message if it could not execute the given file, or could not open the input or output files. It will now correctly report these error conditions. It will also unlock any files it has opened if an error is encountered; this will enable those files to be deleted later. mplist command added An mplist command has been added which allows a limited form of filename mapping. A number of users had asked for the ability to, for example, map "/dh1/myfile" to "dh1:my- file". This command allows such mappings to be performed, but in a limited manner. It is only a stopgap measure un- til AmigaDos supports symbolic links. Please see the Reference.doc entry for details. info command output extended The info command now reports the disk state (read/write, read only, etc) in the report for each device. mv command resets archive bits The mv command now resets archive bits on files which have been moved. A word about .skshinit vs .skshrc A few people have been confused about the difference between these two files. The difference is that .skshinit is for my use, and .skshrc is for yours. All user modifications should go in .skshrc. That way, when I supply a new .skshinit file with each release, it won't overwrite your customizations, and you won't have to manually merge the two. The .skshrc file I have shipped since the first release is trivial and is in- tended as an example to be appended to. You do not need to re-install it after each release; you can simply use your old version. The .skshrc file sourced after the .skshinit file when SKsh is started. That way, you can override or re-define things which are set up by .skshinit. The new .skshinit file I supply (or the .pp form) should be re-installed after each release. SKsh Amiga Shell Page 7 Addendum to 1.6 Misc. Notes Don't forget that you will have to regenerate any .pp files which you produced with SKsh 1.5. This includes .pp versions of your .skshrc file. Old versions will not run and will gen- erate an error message from SKsh. The Check_1.6.sksh script should be used to check the installation of this version of SKsh. SKsh Amiga Shell Page 8 Addendum to 1.6
koren@hpfelg.HP.COM (Steve Koren) (10/15/90)
> This posting is the Addendum from version 1.6 of SKsh. I will be sending > version 1.6 to Fred Fish this week, and also have it put on abcfd20. It is on abcfd20 now under /incoming/amiga/SKsh016.zoo. - steve
angst@batserver.cs.uq.oz.au (Angst) (10/15/90)
Steve writes: >This posting is the Addendum from version 1.6 of SKsh. I will be sending >version 1.6 to Fred Fish this week, and also have it put on abcfd20. Has anyone tried this under 2.0 yet ? Steve ? If no-one has, I'll try it myself soon, and post the result. > - steve Angst --------------- The Moth: "The cow just .... ate them." The Tick: "Allright !! Bovine intervention !!" ---------------
koren@hpfelg.HP.COM (Steve Koren) (10/17/90)
> Steve writes: > >This posting is the Addendum from version 1.6 of SKsh. I will be sending > >version 1.6 to Fred Fish this week, and also have it put on abcfd20. > Has anyone tried this under 2.0 yet ? Steve ? If no-one has, I'll try it > myself soon, and post the result. Steve wishes he had a 2.0 system to try it on! Anyhow, someone emailed me yesterday saying that it worked on his 2.0 system. However, with SKsh 1.5 it seemed to work just fine for some people and crash for others, all under 2.0 on a 3000. I don't yet know what is going on. I'm going to try compiling it with Lattice 5.10 (which arrived today) and see if that makes any difference. - steve ps - sorry if this posting appeared twice; had some problems posting it.