home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d3xx
/
d381
/
sksh.lha
/
SKsh
/
Addendum1.6.doc
< prev
next >
Wrap
Text File
|
1990-10-20
|
15KB
|
529 lines
Addendum for Version 1.6
SKsh
A ksh-like Shell for the Amiga
Version 1.6
(Copyright) 1989, 1990
Steve Koren
October 4, 1990
Addendum to Version 1.6
This document describes additions and changes to SKsh since
version 1.6. 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